Это копия, сохраненная 30 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Литература вторым постом
1. Ресурсы:
— https://dotnet.microsoft.com/learn
— https://docs.microsoft.com/ru-ru/dotnet/csharp/
— https://metanit.com/
2. Онлайн-компиляторы:
— https://ideone.com/
— https://dotnetfiddle.net/
3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае с WinForms делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# активно развивается, недавно вышел .NET 5 и С# 9.0. Дотнет стал полностью опенсорсным и кроссплатформенным. В том же энтерпрайзе он очень даже востребован.
5. Какую IDE выбрать?
Для Windows самым очевидным вариантом будет Visual Studio ( https://visualstudio.microsoft.com/ru/downloads/ ). Бесплатной Community-версии более, чем достаточно для большинства задач. Также есть версия для macOS.
Кроссплатформенный полуредактор/полуIDE VS Code ( https://code.visualstudio.com/ ).
Кроссплатформенный IDE Rider ( https://www.jetbrains.com/rider/ ).
Также существуют C#-плагины для Atom и Sublime Text, но функциональность там достаточно сильно урезана.
6. С# для мобильной разработки
https://dotnet.microsoft.com/apps/xamarin
Новые возможности C# 9.0: https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/
Текст шапки: https://pastebin.com/pbK8CGqw
— The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.
— C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price) — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь.
— C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen) — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином.
— C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari) — просто выжимка из книги сверху, можно всегда держать рукой.
— Pro C# 8 with .NET Core 3 (Andrew Troelsen) — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
8. Более хардкорный материал
— CLR via C# (Jeffrey Richter) — это классика, это знать надо.
— C# in Depth (Jon Skeet) — написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
— Writing High Performance .NET Code (Ben Watson) — отличная книга. Фокусируется на методах оптимизации приложений, профилировании. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче всё, что нужно, чтобы вам перезвонили.
9. Литература по WPF
— Pro WPF 4.5 in C# (Matthew MacDonald)
— Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
10. Литература по ASP.NET
— Pro ASP.NET Core 3 (Adam Freeman)
— Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
11. Литература по асинхронности и параллелизму
— Concurrency in C# Cookbook (Stephen Cleary) — книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции.
— Multithreading with C# Cookbook (Eugene Agafonov) — в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная.
— Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) — опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg.
12. Литература по мобильной разработке
— Creating Mobile Apps with Xamarin.Forms (Charles Petzold)
— Xamarin.Forms Projects (Johan Karlsson, Daniel Hindrikes)
— Mastering Xamarin.Forms (Ed Snider)
13. Литература по машинному обучению
— Introduction to Neural Networks for C# (Jeff Heaton) — изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
— Machine Learning Using C# Succinctly (James D. McCaffrey) — довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
14. Разработка игр
Unity-тред в /gd/
15. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако зачастую эти переводы неактуальны и/или содержат неточности. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в программировании без знания английского делать нечего. Если очень хочется, то гуглить по запросам: "C# 7.0. Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#".
16. Что еще нужно знать, чтобы взяли работать за еду?
— Базы данных — подойдет любая книга по MSSQL/MySQL/PostgreSQL. DDL, DML. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper.
— Системы контроля версий — обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote, diff, разрешение конфликтов.
— GitHub — issues, пулл-реквесты, теги, релизы, Actions.
— Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
— Структуры данных — связанные списки, деревья (бинарные, красно-чёрные, b-деревья), хеш-таблицы, графы.
— Если идти в веб — HTML, CSS, JavaScript, веб-сокеты, REST, JS-фреймворки (Angular, React, Vue).
— Паттерны проектирования, стиль кода, архитектура приложения, внедрение зависимостей, MVVM (если хочется в WPF), SOLID.
17. Я не умею читать, что посмотреть?
— C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
— Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
— Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
— The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.
— C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price) — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь.
— C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen) — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином.
— C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari) — просто выжимка из книги сверху, можно всегда держать рукой.
— Pro C# 8 with .NET Core 3 (Andrew Troelsen) — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
8. Более хардкорный материал
— CLR via C# (Jeffrey Richter) — это классика, это знать надо.
— C# in Depth (Jon Skeet) — написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
— Writing High Performance .NET Code (Ben Watson) — отличная книга. Фокусируется на методах оптимизации приложений, профилировании. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче всё, что нужно, чтобы вам перезвонили.
9. Литература по WPF
— Pro WPF 4.5 in C# (Matthew MacDonald)
— Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
10. Литература по ASP.NET
— Pro ASP.NET Core 3 (Adam Freeman)
— Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
11. Литература по асинхронности и параллелизму
— Concurrency in C# Cookbook (Stephen Cleary) — книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции.
— Multithreading with C# Cookbook (Eugene Agafonov) — в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная.
— Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) — опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg.
12. Литература по мобильной разработке
— Creating Mobile Apps with Xamarin.Forms (Charles Petzold)
— Xamarin.Forms Projects (Johan Karlsson, Daniel Hindrikes)
— Mastering Xamarin.Forms (Ed Snider)
13. Литература по машинному обучению
— Introduction to Neural Networks for C# (Jeff Heaton) — изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
— Machine Learning Using C# Succinctly (James D. McCaffrey) — довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
14. Разработка игр
Unity-тред в /gd/
15. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако зачастую эти переводы неактуальны и/или содержат неточности. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в программировании без знания английского делать нечего. Если очень хочется, то гуглить по запросам: "C# 7.0. Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#".
16. Что еще нужно знать, чтобы взяли работать за еду?
— Базы данных — подойдет любая книга по MSSQL/MySQL/PostgreSQL. DDL, DML. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper.
— Системы контроля версий — обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote, diff, разрешение конфликтов.
— GitHub — issues, пулл-реквесты, теги, релизы, Actions.
— Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
— Структуры данных — связанные списки, деревья (бинарные, красно-чёрные, b-деревья), хеш-таблицы, графы.
— Если идти в веб — HTML, CSS, JavaScript, веб-сокеты, REST, JS-фреймворки (Angular, React, Vue).
— Паттерны проектирования, стиль кода, архитектура приложения, внедрение зависимостей, MVVM (если хочется в WPF), SOLID.
17. Я не умею читать, что посмотреть?
— C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
— Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
— Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
В каком смысле как?
Юнит-тест это просто метод вида:
Arrange, Act, Assert
В Arange - ты просто берешь и читаешь из файла нужные тебе данные.
Другое дело - что так делать не нужно.
Юнит-тесты должны быть быстрыми и не особо зависеть от окружения. Так вот, если у тебя, допустим 10к тестов, все читают из файлов, при этом ты не можешь знать - все ли тестовые файлы вообще есть, имеют нужный формат и т.д. Т.е. в таком сценарии ты просто добавил лишней работы себе и тем кто поддерживать эти тесты будет, потому что теперь тебе нужно дополнительно отлаживать тесты и следить за соблюдением окружения, да плюс еще и файлы с тестовыми данными держать в актуальном состоянии. Это же просто уже работа ради хуй пойми чего.
inb4: шапку читал
Привет, программач. Я только поступаю в универ, готов кодить до посинения, ибо программирование - единственное, что доставляет в жизни. Но вот встал вопрос: хочу связать свою жизнь с бэком на C#. Актуально ли это всё будет, когда я универ кончу? Может стоит изучать что-то более востребованное, или ASPNET Core неплохо котируется? В общем, хотелось бы услышать экспертное мнение.
> ибо программирование - единственное, что доставляет в жизни
и чем же ты в жизни занимался до кодинга?
Какое отношение имеет к вопросу?
Хотел вкатиться в международные отношения, стать кулинаром, космонавтом лол, открыть свой бизнес и т.д. Часть - глупые детские мечты, другая - вещи, которые не приносят какого-то удовольствия.
https://ideone.com/Twnueq
Вот задачка https://www.codewars.com/kata/54acc128329e634e9a000362
Чего критиковать? Ты бы еще хелоу ворлд кинул. Задача решается тупым свитч кейсом: https://dotnetfiddle.net/Vxpdqp
Можно еще выкинуть энамки. Если бы ката позволяла либы подключать, можно было бы подключить любую либу для парсинга и упростить прогу еще сильнее + избавить свои глаза от необходимости сверять входящие/выходящие параметры.
Ну, эт фишки 9 версии языка. Хотя да, у тебя красивше выходит. Хех.
Ну а насчет хелловорлда. Будто кто-то станет рассматривать код из 5к+ строк. Я бы вот не стал.
актуально, котируется хорошо
но только в больших проектах, для остально лучше сразу js выучить
Я же не указываю нигде путь до контроллера TodoController.cs.
В самом начале файла cshtml есть @model который ссылается не на контроллер, а на обычный класс Todo.cs в котором нет никакой логики взаимодействия с БД
по роуту
ты, вероятно, находишься в /Todo
вот и контроллер с таким роутом
по-крайней мере, думаю, так это работает
Что лучше, что перспективнее?
Где сахарнее синтаксис?
Где лаконичнее конструкции?
Где проще писать обобщённые и абстрактные конструкции без потери перформанса?
Есть ли в Rust аналог LINQ?
Хочется пару либ перенести с шарпа на что-нибудь компилируемое, чтобы любой васян, которому я выдам бинарники, не ковырялся в моих торчащих наружу исходниках?
>Что скажете на тему C# vs Rust?
Ничего.
>Что лучше, что перспективнее?
Для чего?
>Где сахарнее синтаксис?
В расте.
>Где лаконичнее конструкции?
Нигде.
>Где проще писать обобщённые и абстрактные конструкции без потери перформанса?
Ты сравниваешь языки разного назначения.
>Есть ли в Rust аналог LINQ?
Есть, называется итератор.
>с шарпа на что-нибудь компилируемое
Шарп компилируемый язык.
Актуально и котируется. Сейчас на толковых дотнетчиков большой спрос, а т.к. платформа активно развивается, то в дальнейшем этот спрос сохранится.
Пока что придумал только что-то в духе: Tick(); Ну и при создании сессии - в на Tick() - смотрим что в сессии последний полученный пакет - был давно, а значит пора убивать. Но как-то это не очень элегантно как по мне. Может быть есть какие-то более красивые решения.
Оно не работает если Receive/Send - асинхронный. Сессия просто повиснет. Можешь сам проверить.
Тогда только свой таймер.
>Есть ли вообще жизнь на c#? Есть ли работа?
В РФ, несмотря на все потуги в виде неткоров, .net 5, .net 6 итд, дотнет постепенно сдувается. Просто он и взлетел у нас изначально из-за хоршей заточенности под винду - винформы, впф на современном развивающемся языке с няшной вижуалстудией, можно чуть ли не мышкой было программировать. Тогда из конкурентов была жаба с ее не сильно удобным свингом и жирной jre, которую приходилось ставить отдельно, умирающие делфи и c++ builder, либо дрочево с MFC и WinAPI. Qt был еще не так популярен.
Сейчас же десктоп полностью вымер нахуй, все крутится в хромиуме, либо на мобилках. И смысла писать на жирном дотнете нет никому. На серверах шарп не особо взлетел, а сейчас походу и вовсе подыхает, потому что с джавы переписывать огромный энтерпрайз никто не хочет, а новые небольшие проекты стартуют на го, пыхе, питуне и ноде. Шарп просто не вписался в нынешние реалии разработки, хотя денег было потрачено прилично, но и похуй, покойся с миром, чудесный дотнет.
Как-то страшно ты все написал.
Хотя в интернете люди говорят обратное. Java падает в позициях.
C# гораздо медленнее падает, а где-то даже растет.
Топ 10 языков. Топ 5 языков. Топ языков общего назначения.
Современные плюхи, в ногу со временем, пока ява стоит на месте.
Портируем все что угодно и куда угодно. Отличная документация, все штуки нативные и из коробки.
По вакансиям сегодня смотрел, вроде все на своих местах, на яву почти в 2 раза больше. Но отчасти там какая-то миксованная хуита по типу мы ищем на питон, но как бы можо и яву знать и кресты. Также можно и у шарпа отметить процент от геймдева. Короче все достаточно идентично в этом плане.
Для вкатывальщика там тоже нужно знать стеки и прочие доп фреймворки, формочки эти ваши, а если ты с вебом работаешь то жсы обязательны. И они обязательны везде, что в шарпе, что в пыхостеках, что в яве, что в питоне да везде.
Я не понимаю почему >>070588 выделил шарп в плане рыночка, рыночек у всех сосет.
Я наоборот захотел вкатится в шарп.
работа есть. уходи от впф формочек на бэкенд и всё.
никакой заточенности под винду нет, работаю с мака и радуюсь жизни
все плюшки по зарплате имеются 150+ и ДМС со стоматологом
aspnet core, rabbit, redis, mysql. mongo, elastic
Спасибо за ответ.
В джаве чтобы вкатиться жс знать вовсе не обязательно. Достаточно спринга, хибернейта и sql.
Ну и падает она не сильно, точнее я бы вообще не сказал что падает - да, ее вытесняет котлин в андроид мире, но в энтерпрайзе она как была, так и будет еще не один десяток лет походу, тем более что новый синтаксичесий сахар туда тоже завозят постепенно.
Ну в жабу самое очевидное, но я бы еще советовал смотреть в сторону go, на нем сейчас тоже много бекенда пишут (по крайней мере в ДС).
А так смотри что нужно в твоем регионе, может у вас только пыха нужна, тогда ее стоит учить.
>Портируем все что угодно и куда угодно
Напомнишь про победы xamarin в мире андроида и айос?)
>Я не понимаю почему >>070588 выделил шарп в плане рыночка
Ну хз. Шарп еще почему-то не популярен во всех этих фаангах и крупных конторах с хуйлоадом и просто огромных размеров проектами. Поэтому имхо лучше начинать учить что-то более моложедное, например то же goвно неплохо закрепилось в бекенде в последние годы. Ну или котлин, на нем тоже бекенд пишут вместе с джавой. А экосистема шарпа она хз, ну мертвая какая-то, вроде мс и пытается разивать, но как-то жидко выходит - только один шарп и f#, ничего нового не появляется уже годы.
>150+
А вот это вообще нормальная зп считается в 2к21? Я помню времена, когда такая зп считалась достойной для мужчины. Тогда это равнялось 5к баксам. А Навальный ещё даже лес не успел украсть.
Ты просто как бы хвалишься, и мне не понятно.
По факту с такой зп тебе надо почти целый ГОД копить, откладывая ВСЮ зп до копейки, чтобы купить сраный пикрил.
Я когда-то думал о перекате в айти, но смотрю на ваши айтишные зп, и понимаю, что вы уже днище. И васян из шиномонтажа в сезон зарабатывает больше. Ушлый пахлавон из точикистона даже на аредне в ДС будет поднимать больше солидного миддла+ на дот.нете.
я далеко не из ДС, работаю в местной неизвестной конторе
и да, пикрил уже купил первой тачкой
>>071083
Так Го это же хайп прост, топ по старапам, как всякие рубироиды.
Специально вечер потратил читая про го, у него в фичах оптимизации определннных вещей, но что касается остального он очень сильно сосет. И если челики из гугола его не починяют в близжайшее время, то хз, язык-червь, язык-пидар. В этом плане у Шарпа все идеально, с комплексными нагрузками он справляется гораздо лучше, в нем не надо ничего менять.
Вот яву чтоль учить...но там такой уебанский синтаксис, так не хочется на каждый пук писать пук.пук.пук.пук.пук.пук().
Научно доказано что чтобы написать какой-нибудь код на яве, это займет в 3 раза больше времени чем на других языках.
Еще я почитал как устроены андроиды и политику гугла - да вообщем-то это заблуждение что дроид прямо зависит от явки, там всякие котлины и прочая скорее, а от явки они не против в будущем вообще уйти.
Так не хочется учить язык дедов((((хотя у меня родственник работает на яве
а еще я охуел с дизайна документации го, такое-то говно, текста от майков красивее
>>070895
150k рублей - это зп довольно посредственного и неопытного мидла в ДС с 1.5-2 года максимум. На той же жабе неплохой мидл может вполне получать 200, а то 250к на руки. У сеньоров до 350к вилки, тимлиды по разному, но в интервал 300-500к попадают как правило. Ну и еще годовые премии у сеньоров и тимлидов оче жирные, в некоторых случаях вплоть до трети - половины всего годового оклада.
Если на западного барина работать, хорошо уметь в английский, то 5-8к долларов можно выторговать. Ну это опять же, при правильном стеке, при хорошем опыте и хорошим резюме. Какой-нибудь миддл с пятилетним опытом WPF/Winforms/ASP.NET может только отсосать в нынешних реалиях рыночка.
>но там такой уебанский синтаксис, так не хочется на каждый пук писать пук.пук.пук.пук.пук.пук()
Как будто бы в шарпе синтаксис сильно отличается.
>Еще я почитал как устроены андроиды и политику гугла - да вообщем-то это заблуждение что дроид прямо зависит от явки, там всякие котлины и прочая скорее, а от явки они не против в будущем вообще уйти.
Ну андроид разработка постепенно переходит на Kotlin. Но стоит учитывать, что котлин - jvm язык и исполняется он на той же виртульной машине, что и джава. И для нормальной работы на котлине, желательно иметь минимальный опыт с джавой.
>Так не хочется учить язык дедов
Неприятных вещей в джаве довольно много, особенно что касается дженериков и работы с коллекциями. Зато очень хорошая экосистема, которая как раз включает и систему сборки, и пакетный менеджер, ИДЕ, ну и тот же котлин вместе со скалой.
>Так Го это же хайп прост, топ по старапам, как всякие рубироиды.
Специально вечер потратил читая про го, у него в фичах оптимизации определннных вещей, но что касается остального он очень сильно сосет. И если челики из гугола его не починяют в близжайшее время, то хз, язык-червь, язык-пидар
Разве джаваскрипту его черверпидорность помешала стать топ1 используемым языком в мире? Ну или тому же пхп? В то время как много других хорошо спроектированных языков просто вымерли, так как не вписались в рыночек.
>отличается
Я в 2017 работая щеглом в забегаловках начинал учить погромирование через создание игр, думал что на мобилки проще делать(заблуждение типичное), гайд был на яве, я не зная даже базовых принципов программирования знатно охеревал со всех этих строчек. Потрогал пару недель и больше никогда не касался. Можно сказать вьетнамские флешбеки. Надеюсь это просто неудачный опыт был.
>иде экосистема
Оо помню как страдал пытаясь понять эти ваши эклипсы и интелидеи, у меня еще ноут был полумертвый, все лагало жесть. У меня прям отвращение ко всему этому появилось.
Можно сказать психологическая травма осталась.
>разве жс
Так альтернатив не было же?
>пыхыпы
А что не так с пыхыпы?
>рыночек
Везде клятий рыночек ><
150к в мухосранях вполне норм зарплата. Если не на двачах опрос делать, то 120к вообще будет выше рынка в миллионниках
Лучше пердолить wpf, чем круды для вэба. А вакансий на десктоп нету. Есть unity, но геймдев, да на готовом движке, это далеко не десктоп, да и шарп в unity вроде бы какой-то кривой.
>unity
Нормальный там шарп, там от шарпа-то тебе надо практически ничего.
Другое дело что за геймдев отстой и не то о чем думают люди.
По сравнению с чем она нормальная?
Даже в регионах мелкие пыновники ездят на бехах и мерсах, которые стоят сейчас как 4 твоих годовых зарплаты.
А это ведь просто машина. А человеку ещё нужно жить где-то, на моря ездить.
150к - это просто уровень выживания. Да, холостяку с квартирой от родителей норм. Но семейнокун с ипотекой будет экономить на макарошках.
Понаберут ипотек, потом содержат разведенок с наебышами и затирают про достойные зп.
>>071510
Ты, зная впф, на юнити нехуя не напишешь. Разрабы юнити конвертируют шарп в плюсы при компиляции. В вебе круды зависят от вшивости проекта. У меня на проекте вообще стейт машины, давно традиционный веб и декстоп в глаза не видел.
Так вот. А как делать-то правильно? У меня сейчас просто:
even EventHandler<MessageSentEventArgs> MessgaeSent;
ну и при срабатывании события - делаем:
db.Entry(eventArg.User).State = EntityState.Modified
await db.SaveChangesAsync();
это вот приводит при, пусть и моделированной, но вполне реальной ситуации в случае если пользователей будет много, к тому что я описал выше.
Как сделать нормально - я чет не знаю. Пока что думаю о том чтобы какой-то класс ContextHolder сделать, в котором уже будет этот апдейт происходить, а по таймеру - сохранять изменения, но чет мне кажется я придумываю какую-то хуйню.
Выкидываешь эф, пишешь на адо+даппер. Может тебе база вообще не нужна, твое описание задачи хуйня. Звучит как вообще захуячивание каких-неть акка/эластиков в кластере.
> Может тебе база вообще не нужна, твое описание задачи хуйня. Звучит как вообще захуячивание каких-неть акка/эластиков в кластере.
Вот есть табличка Device, в ней поле LastSentMessageTimestamp, оно нужно, т.к. это все делается небольшой хуйни на малинке и общение по UDP с другими устройствами в моем умном огороде, внезапно малинка может ребутнуться из-за того что свет моргнул и нужно бы проверить в таком случае - не истекло ли время с последнего сообщения чтобы пингануть и проверить - живо ли еще устройство и нужно ли какие-то меры предпринимать.
Наверное не следовало тащить .net в милинку.
Чел, это не описание задачи. Я у тебя еще раз спрашиваю, нахуя тебе база данных? Чтобы свет не моргал, ставишь упс.
Тогда получается, что тебе не нужна консистентность и 100 запросов в секунду.
>The instance of entity type cannot be tracked because another instance of this type with the same key is already being tracked
Т.е. у тебя еще и код нерабочий. А про новый контекст ты напиздел.
Эф проксирует сущности, навешивает на них трекинг и сохраняет ченжи в контексте. В некоторых областях называется агрегатом. При SaveChangesAsync эф сохраняет конечное состояние всех сущностей в контексте в базу данных.
Если ты имеешь 2+ сущности с одинаковым ключем в трекинге и пытаешься их сохранить, получишь эту ошибку. Никакой пул соединений тебе не поможет.
> А про новый контекст ты напиздел.
Ничего я не пиздел.
По сути такой вот весь код с которым у меня проблема:
public class MessageSentListener
{
private readonly MessageSentEventProvider _eventProvider;
private readonly IDbContextFactory<ApplicationDbContext> _dbContextFactory ;
public MessageSentListener(MessageSentEventProvider eventProvider, IDbContextFactory<ApplicationDbContext> dbContextFactory)
{
_eventProvider = eventProvider;
_dbContextFactory = dbContextFactory;
_eventProvider.MessgaeSent += OnMessageSent;
}
public async void OnMessageSent(object sender, MessageSentEventArgs eventArgs)
{
try{
using var db = _dbContextFactory.CreateContext();
db.Entry(eventArg.User).State = EntityState.Modified
await db.SaveChangesAsync();
}catch(Exception ex){Log.LogError(ex);}
}
}
> А про новый контекст ты напиздел.
Ничего я не пиздел.
По сути такой вот весь код с которым у меня проблема:
public class MessageSentListener
{
private readonly MessageSentEventProvider _eventProvider;
private readonly IDbContextFactory<ApplicationDbContext> _dbContextFactory ;
public MessageSentListener(MessageSentEventProvider eventProvider, IDbContextFactory<ApplicationDbContext> dbContextFactory)
{
_eventProvider = eventProvider;
_dbContextFactory = dbContextFactory;
_eventProvider.MessgaeSent += OnMessageSent;
}
public async void OnMessageSent(object sender, MessageSentEventArgs eventArgs)
{
try{
using var db = _dbContextFactory.CreateContext();
db.Entry(eventArg.User).State = EntityState.Modified
await db.SaveChangesAsync();
}catch(Exception ex){Log.LogError(ex);}
}
}
Ты долбоеб, который не отвязав сущность от чужого контекста, пытаешься сохранить его в новом. Бить код на слои ведь для слабаков.
Когда читаешь сущность из контекста, читай сразу отвязанную (https://docs.microsoft.com/en-us/ef/core/querying/tracking) и сохраняй в DTO. Эф по умолчанию создает враппер над сущностью, внутри которого сидит трекинг.
Хм. Чет как-то сложно. Ну да ладно, сам виноват что почитал только вводные статьи и решил использовать.
У нас asp.net core проект и типа слоёная архитектура + EF Core, ну т.е. запросы из контроллеров обрабатываются в сервисах, в сервисах бизнес логика, а данные получаются из репозиториев. И вот с репозиториями вопрос. Мы в них стараемся держать по минимуму методов по сути по экземпляру CRUD с разницей лишь в параметрах фильтрации для гета, но вот инклюдов со временем становится очень много, но не все они нужны в каждом месте, где сервис получает данные. Как можно в сервисах элегантно инклюдить только те таблицы, которые нужны в конкретном методе, не таща эти детали т.е. прописывать .Include у IQueryable прямо в сервисах в сами сервисы? Пока в голову приходит только в репозиториях плодить методы GetEntityForPurpose1(), GetEntityForPurpose2 и иже с ними, но чё то это гавной попахивает
Посмотрите в сторону паттерна спецификация
Спецификации можно обьединять
И вообще, с ef репозиторий особо не нужен. Сам dbset это уже репозиторий
Значение может отсутствовать. Поэтому геттеры возврающат Nullable<double>.
К структуре может быть много обращений, их может быть много.
Навангуйте, стоит ли оптимизировать по памяти, храня приватные double без nullable, а отстутсвие значений помечать как NaN. А геттеры уже бы обрабатывали это как надо и оборачивают в нуллабл.
Тесты лень писать, да и нет пока кода по реальной загрузке.
Мне кажется необходимо явно писать явно имена переменных при передаче их в функцию, если аргументов функции больше двух, и если они одного типа.
Типа вот так:
double x = 1, y = 2, z = 3;
z = Math.Clamp(value: z, min: x, max: y);
Потому что порядок аргументов может быть перепутан, неочевиден или изменён.
Но в сорсах и на гитхабе, что я листаю, что-то никто нихуя так не пишет, а я уже который раз словил баг на этом и решил, что надо так и только так.
по ситуации. если видишь, что можно запутаться, намеренно уточняй.
>У нас
судя по тому высеру, что ты навалял у тебя раздвоение личности с твоим пет проектом.
>GetEntityForPurpose1()
за такое тебе любой интерн-джун в ебало плюнет. Проснись, Маня, ты серишь
>>072290
>Есть структура, которая хранит 4 double
>Значение может отсутствовать
ебать тут элитные кодеры сидят я смотрю.
>отстутсвие значений помечать как NaN.
default: "NaN"?
>>072292
>функцию
ты ошибся разделом, js тред дальше
>необходимо явно писать
если у тебя сигнатура метода с однотипные параметрами, как компилятор поймет, что ты хочешь?
>словил баг
еще один elite crew member
>если у тебя сигнатура метода с однотипные параметрами, как компилятор поймет, что ты хочешь
если перегрузка всего одна, то поймет
какое отношение перегруженне методы имеют к явной передачи параметров в метод? При нормальной реализации перегрузки порядок параметров сохраняется
>z = Math.Clamp(value: z, min: x, max: y)
заместо 10, 1, 15 ты напишешь 1, 10, 15, как железяка поймет, что у тебя value 10, а не 1?
https://docs.microsoft.com/en-us/dotnet/csharp/methods#optional-parameters-and-arguments
читай и еби мозги такой плевой хуйней
У меня с последний апдейтами постоянные отвалы частей 2019. Например, в простеньком консольном хелоу ворлде очень часто умирает интелесенс (раз в полчаса). Помогает только ребут. Или юнит тесты уйдут в бесконечный ран. Еще и к процессам служб перестало атачиться. Перейду на райдер, в пизду.
Вот к примеру есть асп нет приложение, в нем есть ВьюМодел которая содержит 3 модели. Я так понимаю правильно будет сделать ServiceClass для конвертации этой ВьюМодел в 3 модели. А что делать со значениями? В классе создать 3 объекта и вернуть их кортежем? Или в контролере создать 3 объекта и передать их по ссылке что бы в методе их заполнить?
А как потом добавить их в дб? Просто db.model1.add(model) либо создать статический класс в котором будут методы сразу сохранения в бд любых моделей, типо перезагрузка методов в зависимости от того какую модель в него передали?
Кроме как удалять его по ключу, а затем снова добавлять?
Может быть есть реализация словаря, которая возвращает значимый тип как ref?
Ну смысл в том, что сначала я проверяю, есть ли нужный ключ, например, через TryGetValue. Если ключа нет, то просто добавляю ключ и новое значение.
Если такой ключ уже был добавлен, то я использую соответствующее ключу значение, полученное через TryGetValue, для расчёта нового значения, а потом мне надо вернуть его обратно в словарь.
Если я сделаю это через MyDictionary[key] = value, то на каждую итерацию будет два поиска в словаре. Сначала в TryGetValue, потом в MyDictionary[ key] = value.
Я бы хотел, чтобы было нечто вроде TryGetRefValue. Тогда я бы просто обновил значение по ссылке, имея один поиск в словаре на одну итерацию.
И на самом деле, пару месяцев назад я читал, что это есть, это было добавлено в .NET 6, а может быть даже в .NET 5, как раз для таких случаев. Но где я это читал я не могу найти, и заново ничего подобного не гуглится.
С начало проверять есть ли такая стринга и если нет то добавлять либо например после 100 добавленных строк просто удалять повторы?
использовать HashSet<string>
Дело оказалось в названии asp-action и двух методов Create() в классе CarsController.
Грубо говоря asp-action не понимал какую из перегрузок вызывать. Я переименовал оба метода Create на void AddCar([Bind("Id,Name,Price")] Car car) и IActionResult GoToCreateView(). Для перехода на страницу добавления вызываю метод GoToCreateView(), а в самой странице добавления в asp-action передаю метод AddCar.
>Еще и с сажей пишешь.
Думаю в тематических тредах на это поебать. Всё равно кто захочет тот найдет шарпотред
Форумы никуда не делись. Есть в сру сегменте киберфорум с дохуище рекламы. Таких дерьмовых ответов на этом форуме навалом или однотипных вопросов ака как сложить две матрицы. Без форума даже жопу себе самостоятельно от говна вытереть не могу.
Майлсру - это не форум.
>Ну андроид разработка постепенно переходит на Kotlin. Но стоит учитывать, что котлин - jvm язык
пиши хоть на чём, хоть на js, хоть на c#, хоть на python, без разницы. Там приложения 3-4 экрана плюс немного gui, из платформо- специфичного, ничего такого особенного. И куча приложений пишется как оффлайн одностраничник на базе Webview, причём это приложения топовые, которые на первых строчках рейтингов и скачиваний. Как то попробовал, и действительно на тексте webview уделывает textview в десятки раз, и получается андроидо- независимый дизайн приложений.
Нах вообще тогда писать на ведройде, если показываешь все в вебвью? Дефолтный браузер + свой сайт.
Вот и ответ на мой вопрос:
>8 апреля Microsoft выпустила новую превью версию .NET 6 - .NET 6 Preview 3. Как отмечается, этот релиз посвящен по большей части повышению производительности низкоуровневой функциональности.
>Кроме того, была добавлена поддержка для ряда ОС: Android, iOS, Mac и Mac Catalyst (для архитектуры x64 и Apple Silicon, известной как M1), Windows Arm64 (в частности, Windows Desktop).
>Также добавлено новый API — CollectionsMarshal.GetValueRef, который позволяет быстрее работать со структурами как с объектами словарей. В частности, он возвращает ссылку на структуру и позволяет быстрее обновлять ее значения.
>ref MyStruct value = CollectionsMarshal.GetValueRef(dictionary, key);
>if (!Unsafe.IsNullRef(ref value)) { value.MyInt++; }
Написал ответ, потому что вот этот >>074175 прав.
>Нах вообще тогда писать на ведройде, если показываешь все в вебвью?
нах не надо, 90% этих псевдо- приложений, ещё быстрее и лучше работают, когда просто страничка в браузере открывается. Это как раз то что из топа, аппы всех известных сервисов и т.п. А вообще, webview хорошо оптимизирован, там еще с андроида 2.0 нативные либы на всё, уже готовые, поэтому и быстро и стабильно. А поделия которые у андроида платформенные, ну там gui шки и прочее, ничего кроме смеха не вызывают, это какой то дебильный шлак, который переделывали уже несколько раз. Вот, всякие там флюттеры и реакты с той же целью завезли, чтобы в эту говнину специфичную не вникать.
Я часто пишу через Span и ReadOnlySpan, когда надо обработать не весь массив, а его участок. Удобно использовать Span, чтобы не таскать везде начало массива и количество. Но производительность не прыгнет выше, чем у массива. Ещё можно указатели в него оборачивать, но они всё равно не работают быстрее обычных массивов (во всяком случае я это тестировал, надеясь, что указатель будет быстрее из-за отсутствия проверок выхода за границу массива, но разницы в скорости не было).
Поэтому рассматриваю о каком росте перформанса речь не очень понимаю. Поэтому скинь что ли ссылку, где мне про это расскажут.
>ряя врьоооти тупой тим кэк и стив блубджобс были тупыми
>нужно пейсать на гуях вертясь на хуях никакое веб-приложение не нужно я скозал
ну по фактам разметка на вебвиеве она быстро рендерится, там хоть 100 000 строк можно запехнуть, так как всё в нативной либе, а TextView и подобное LnearLayout на каждое подсвеченное слово, а иногда и на букву- оно прямо на java написано, можешь посмотреть в исходниках андроида. Но может оно и лучше стало, я 9 смотрел, новее пока не смотрел, надоело в этом говне колупаться. Но извращаются все, как посмотришь по движениям этим, т.к. активно дрочат флуттеры, реакты и остальную такую подобную хуету.
на уровне рантайма есть методанные виртуальных типов и унаследованных типов. Метод Callvirt обращается именно к виртуальным типам. Следовательно, когда ты переопределяешь из унаследовательного типа виртуальный, тем самым base рекурсивно вызывал бы сам себя
Ага, то-есть callvirt просто не может вызвать метод из базового класса, а всегда вызывает метод из наследника?
не обязательно. Callvirt - только для методов из таблицы виртуальных типов. Call - может быть и базовый класс и статик. Гугли короче difference between call and callvirt
call вызывает функцию конкретно у базы
callvirt бы пошел искать ToString у this, нашел бы этот самый оверрайднутый метод и так бы и вызывал себе по кругу.
нахуя, если есть райдер?
ахтунг, говнарь в треде
Я принципы того же mvc немного понимаю(на словах все просто), приложения на шарпе(не веб) делал.
И раз так все просто то почему бы просто не взять и не сделать проектик-другой? Но когда я читаю типичный гайд, он выглядит как - ну берем вообщем, модель, контроль, тут у нас короче добавим такую библиотеку, тут сякую, ой тут не забывайте рефересны, вот вам кусок кода - копипастье и готово. И я просто закопипастил, но мне это не дало никаких знаний, ни фундаментальных, ни по языку, ни по чему.
Вот сейчас у меня авторизация не работает. А я даже не могу понять почему, прыгаю со скрипта в скрипт, вроде все аккуратно, вроде все понятно, а вроде ничего не понятно по сути.
Не. ну конечно я пытаюсь сам из крупиц информации все пошагово гуглить, что такое атрибуты, как работают куки, ну и всякое такое. Это основной способ обучения или я что-то важное упустил?
Вот именно по этому программистов самоучек-любителей, не прошедших и не получивших сертификата солидных платных курсов, нигде не любят и не берут на нормальные работы.
Это никогда не было правдой, что в интернете можно освоить профессию, даже такую, как программист. Нужно системное обучение, а оно только платное, потому что время профессионалов стоит денег.
А гайды в интернете пишут двачеры, которые сами знают ещё меньше.
> Вот именно по этому программистов самоучек-любителей, не прошедших и не получивших сертификата солидных платных курсов, нигде не любят и не берут на нормальные работы.
Хуйня полная, пошел нахуй тролль.
охуенно толкуешь, зеленый. Сам я ни закончил тех. вышки, ни одни курсы не проходил, все мои инвестиции - 3 книги в сумму ~$40. Итог - выиграл конкурс из 30 человек на позицию джуна. Вопросы?
Что рвёшься-то?
>>076607
По существу-то что? Сейчас каждый первый у мамы программист. Запустил хелловорд и уже лезет на форумы учить новичков, а то и на ютубе видосы пилит.
Особенно радуют расплодившиеся ресурсы с ПОЛНЫМИ КУРСАМИ чуть ли не по всем модным ЯП, от одного автора, который настолько преисполнился в своих познаниях, что не может удержать в себе этот поток.
>>076613
>3 книги
Нет ни одной книги, ПРОЧИТАВ которую ты научишься программировать. С ними надо работать, как в ВУЗе. Теория, практика, контроль усвоенного. Это можно пройти одному, обложившись учебниками. Но это не эффективно, т.к. ты будешь тыкаться во все стороны как слепой котёнок. Нужен преподаватель, учитель, который тебя проведёт.
Прошел курс, значит настроен серьезно, и есть гарантия, что твои знания соответствуют стандартам отрасли. Потому что чудиков среди самоучек очень много. И если C# за счёт системы типов ещё не особо позволяет куролесить, то уж в скриптовых языков буйный творец легко найдёт себе простор.
>И если C# за счёт системы типов ещё не особо позволяет куролесить, то уж в скриптовых языков буйный творец легко найдёт себе простор.
что за хуйню ты несешь? Есть конвенции, есть best practice, есть принципы, по которым пишется код. Эта фраза
>системы типов ещё не особо позволяет куролесить
выдает в тебе студента шараги на мнении, что окончив ее ты сможешь устроиться на работу с преимуществом над самоучками. Я тебя хочу разочаровать. У самоучек есть охуенное преимущество - искать самостоятельно решение и находить их. Это основной скилл, которым должен обладать любой разработчик не зависимо от стэка и технологии. У студентоты этот скилл как правило отсутствует, что делает их пососами как минимум до того времени, как освоят SOF и гугл.
Студентам шараг это может показаться смешным, но те, кто ступал на порог галер понимают о чем я
И так понятно что в идеале и условия, и мастера который пинок даст, и самому надо учить, в идеале.
Но я просто спросил про конкретный случай и вопрос, есть ли особые best practice который прям прям обязательно. Если нет, то это абсолютно нормально, я просто делаю то что делал бы в любом случае, просто захотел узнать не упускаю ли я чего.
>Прошел курс, значит настроен серьезно,
нихуя не значит, 80% разработчиков это долбоёбы и копипастеры, сами вряд ли могут сортировку написать или какую нибудь хеш таблицу.
>и есть гарантия, что твои знания соответствуют стандартам отрасли.
какие ещё стандарты, везде фреймворки и винегрет-солянка из техник, а тупые макакеры обмазывают эти штуки лапшекодом, под бодрые песенки о прогрессивных методологиях. Там нету стандартов, ни на уровне библиотек ни на уровне архитектур, все пишут как попало, лишь бы это выглядело как работа. Потому что если это похоже на работу, то за это платят.
>есть ли особые best practice
конечно есть, ты Стива Макконела читал? Чистый код книжка называется, может немножко устарела, но там довольно внятно расписано почему надо делать так а не иначе.
да, гуглинг главный навык перед постижением дзена. для любого яп.
плюсую.
>>076647
Боба Мартина еще добавь
>>076658
бест практис - читаемость
если через 1-2 месяца, глянув в код, ты сразу понимаешь что там происходит - это хороший код. и похуй сократил ты или нет - не похуй только если есть код стайл
но всегда есть нюансы в виде перформанса. в некоторых случаях, т.н. "синтаксический сахар", под капотом, нихуево так оптимизирует код, теряя при этом часть читабельности.
это нужно знать и каждый раз делать выбор.
C# Code Convention тебе все объяснит.
> Что рвёшься-то?
Тому шо ты хуйню полную несешь.
Ты приводишь в пример курсы, курсы блять, ты же понимаешь, насколько все эти курсы хуйня или ты проплаченный и пришел их тут пиарить? Если они что-то и могут дать, то это максимально обобщенные и базовые знания.
Ни один курс по программированию не даст тебе больше знаний, чем тот же Рихтер.
Я вот чего не понимаю, так это использование префикса "_" у приватных полей. Мол, так можно отличить поле от локальной переменной. Охуительные истории. Что-то я ничего не путал. Даже в чужом коде, где не используют это говно "_".
И такие же охуительные истории про фигурные скобки. Мол, если фигурных скобок нет, то легко совершить ошибку и дописать код, который окажется за пределами оператора. Ага, если ты умственно отсталый, то конечно можно.
- Если if состоит из 2 и более строк, тогда ставим скобки для повышения читабельности. Еще лучше сократить if за счет выделения дополнительных переменных.
- Если после if/for/foreach/while идут другие операторы, тогда ставим скобки для повышения читабельности.
- Если внутри if/for/foreach/while уже используются скобки, например для инициализации или для лямбды, тогда не ставим скобки.
в asp.net core 5 на полях входных моделей контроллера используются стандартные атрибуты валидации типа [EmailAddress], если входные данные не проходят валидацию - автоматом вылетает 400 ошибка с какой-то инфой в body,
вопрос такой - как в такой ситуации возвращать в ответе кастомную модель вместо дефолтной?
типа вместо {"error" : "..." }сделать {"result" : "isError": true, "errors" : ...}
через миддвару не получается, ибо httpContext.Response.body содержит нечитаемый поток
пс замену httpContext.Response.body на читаемый поток не предлагать, это вообще всё нахуй ломает
САМООТВЕТ
нашёл такую фишку, можно задавать поведение при нарушении условий валидации вот так
services.Configure<ApiBehaviorOptions>(options =>
{
options.InvalidModelStateResponseFactory = c =>
{
//раз два три соси
};
});
теперь вопрос лишь в том, почему это говно работает в тестовом проекте, но не прокатывает в боевом здоровом сервисе
(способ с 1 кратинки не работает)
ещё один самоответ
Configure<ApiBehaviorOptions> не работает без services.AddMvc, для web api можно использовать AddControllers
Спасибо конечно, но не робит. (1 балл потерять не страшно)
Может это потому, что элементы у меня из текстового файла загружаются?
Model - C# классы
View - xaml + класс реализующий окно (наследуется от Window)
ViewModel - кто это нахуй такой и зачем он тут нужен?
> ViewModel - кто это нахуй такой и зачем он тут нужен?
На словах это куча текста. Просто напиши чертов toDo и поймешь что это и что оно делает. А надо, чтобы обеспечить прослойку между бизнес-уровнем и UI.
>ViewModel - кто это нахуй такой и зачем он тут нужен?
Связь это модель для вью.
ВПФ не учил но в asp net это для того что бы привязать странице вью модель.
Например на странице отображается юзеры и их автомобили. У юзеров и авто свою Model во ViewModel мы их соединяем и привязываем к странице.
Model - вообще не трогай, если где то тебе надо использовать модель и в этом месте тебе нужны только поля которые есть в Model то все равно создай дублирующую ViewModel так как в дальнейшем если будешь что то добавлять на страницу то не надо будет трогать Model.
Есть один datagridview на винформах, как ему сделать корректный row multiselect при dragdrop'e (строка анселектится при нажатии мыши во время переноса, а нужно при отпускании кнопки мыши)?
Уровень бизнес-логики же. Тот, что описывают собственно логику предметной области, взаимосвязь компонентов, всяких правил валидности сущностей и т.д.
На grid mousedown:
if (_isCtrlPressed)
{
LeftDataGridView.Rows[_selectedCurrentRowIndex].Selected = false;
}
Пиздец, а я полдня как обезьяна головой об стенку пытался тыкать true на разные ивенты, а selected видимо где-то под коробкой просто перетыкается.
>>077960
Просто в РУ языке оно не так понимается.
https://ru.stackoverflow.com/questions/548021/Бизнес-логика-что-это-такое/548208
Вот хороший ответ.
data = (byte)((data & 0x0F) | value << 4
Например, у класса Socket есть свойство Connected. Если я захочу добавить событие, которые вызывается после подключения, то может возникнуть путаница. Или аналогично со свойством Authenticated.
В общем. Я просто пользуюсь правилом: Булево свойство, поле или переменная - должно именем говорить, что диапазон значений это да-нет. CanExecute, ShouldStop, IsCompleted и т.д. Т.е. не обязательно Is, но какую-то приставку, которая бы явно говорила что это булево значение - считаю нужно.
Ну и да, пример с некоторым апи, особенно таким старым как сокеты - не катит, их 1. Пилили под копирку с того что уже в других языках было. 2. Пилили давно, когда и кодстайлы были другие. 3. Ну банально сам посмотри var a = soc.Connected; Вот тебе понятно что это? Может быть это число подключенных? Хуй знает - наводи мышкой и смотри. А было бы var a = soc.IsConnected - сразу понятно что это булево значение
У меня есть числодробилка. На каждой итерации расчёта проверяется набор ограничений. Некоторый целевой параметр должен быть больше, либо меньше ограничения. Если управляющее ограничение нарушено, рабочий режим корректируется коэффициентом. Всего возможных ограничений порядка 30 , но установлены обычно 2-3, но они могут быть установлены в любом сочетании.
В текущем тестовом варианте я сделал все ограничения как nullable float, и проверяю их все. В принципе можно сделать неустановленные ограничения столь большими или столь малыми, чтобы они никогда не срабатывали. Но это всё равно 30 условных операторов.
Как написать код так, чтобы проверялись только установленные ограничения?
ViewModel содержит свойства, который готовят данные для отображения во View и принимает данные введенные пользователм.
Все это работает в WPF через Databinding.
Также ViewModel может содержать свойтсва типа ICommand которые обозначают действия, которые можно произвести с данными вьюмодели.
Эти свойства также биндятся через Databinding, например у кнопки есть специальное DependencyProperty Command к которому ты можешь забиндить свою команду из вьюмодели. Таким образом при нажатии кнопки будет вызывать код твоей команды. Помимо этого команда еще инкапсилирует в себе булевое свойство, что отвечает за доступность команды. На деле это будет означать активна кнопка или нет в зависимости от значения этого свойства.
Веба в десятки раз больше чем десктопа
Менюайтем потерял возможность открывать подменю, потому что ты затер весь шаблон своей кнопкой
Тебе нужно скопировать изначальный шаблон MenuItem целиком и его редактировать
Шаблон можно скопировать правой кнопокой по MenuItem в дизайнере EditTemplate
Или отсюда
https://docs.microsoft.com/ru-ru/dotnet/desktop/wpf/controls/menu-styles-and-templates?view=netframeworkdesktop-4.8
Выглядит страшно
У меня скоро будет собес, в контору, куда я хочу попасть с первого раза.
По куче собесов ради практики шароебиться нет времени, вот и спрашиваю, чтобы примерно представлять, к чему готовиться.
Не, сеньор, но именно по шарпу опыт не особо большой, чуть меньше пары лет, до этого на других языках писал.
Сейчас вот разбираюсь с async/await, как там конечные автоматы под капотом работают. Еще по сборщику мусора посмотрю, что там как.
Ну и по asp.net core надо будет глянуть, наверное, rest апишки пилил на нём, но чё там как под капотом особо не разбирался.
Что еще посмотреть, может есть еще must have темы, классы из стандартной либы?
Про коллекции всякие наверное смогу рассказать, про линк, хуинк всякий.
Что там еще обычно спрашивают?
>сеньор, но именно по шарпу опыт не особо большой,
Земля тебе пухом. Выебут так, что будешь как сучка кричать.
>Выебут так
Как?
Приведи пример вопросов, а я прикину хуй к носу, смог бы ответить или нет.
Я за этим сюда и пришел, чтобы узнать, как меня будут ебать.
бля, жирнота конечно, студент-выпердыш пытается выклянчить вопросы уровня сеньера. Хочу тебе сказать, сынок, что сеньер - это знание и опыт в проектировании архитектур, компонентов (типо оркестратора или диспетчера), управление командами, знание от А до Я тонкостей языка и богатый опыт программирования на смежных языках/технологиях. Это тебе блять не статьи на Dou читать, как обсоски 19 летние становяться сеньерами.
По вопросам, что могут спросить по языку (сеньер - до уровня распределения в памяти):
1. GC - поколения, SOH, LOH, принципы работы;
2. Паттерны - архитектурные, GOF, перфоманс;
3. GAPs/Leaks/Lazy<T>;
4. Многопоточка, очень глубоко, временами со сравнением паттерном разных версий языка;
5. Работа Compile mashine/Reflection (must have to know)/RunTime;
Долго все вспоминать, это я только за # написал. По БД простыня будет ебать, ебать. И про инглиш B2/C1 не забудь.
Если по сабжу - нормальные галеры могут на позицию сеньера 3 шкуры спустить с учетом портфолио/известности кандидата. А были такие случаи, что запуливали реально бичей, которые хуй от пальца отличить не могли.
>GC - поколения, SOH, LOH
Ну это ок, посмотрю как работает. Но правда не понимаю, нахуя это знать.
Все, что мне надо знать - если ссылок на объект нет, он освободится.
Зачем мне надо знать поколения?
Что-то типа дедовщины в армии - "не жрал говно - не мужик, все жрали и ты должен пожрать"?
>GOF
Допотопное говно мамонта, неактуальное в нынешнем тысячелении.
Когда в девяностых пилили монолиты на лям LOC, эта вся ебала была актуальная, в эру микросервисов - уже давно нет, что и подтверждает успех таких языков как Go, где вообще нет ООП и наследования, тем не менее, на нём пилят большие и сложные системы типа кубернетеса.
Но упоротые долбоёбы продолжают учить эту хуйню по инерции, и требовать на собесах, найс.
>GAPs
Чё это? Надо пояснить за ГЭПЧИК в стаже?
>Leaks
А это чё? Утечки памяти что ли?
>Lazy<T>
А это зачем? 2 года писал на шарпе и ни разу не встречал.
>со сравнением паттерном разных версий языка;
Нахуя? Я пишу на одной актуальной версии языка, мне похуй, что там 5-10 лет назад было.
>Compile mashine
А это чё такое? Первый раз слышу, ничего не гуглится.
>Reflection (must have to know)
А чё там знать надо? Открыл доки по System.Reflection и ебашишь.
Атрибуты кастомные доводилось делать, получать классы из сборки, свойства доступные перебирать, вроде никакого рокет саенса, всё просто.
>RunTime
А что рантайм? Что про него надо знать, кроме того, что он есть?
>По БД простыня будет ебать, ебать
Это я смогу, с бд вроде нет проблем, вопрос чисто по шарпу был.
Мне даже лучше будет, если будут по БД дрочить, а не по .net.
> И про инглиш B2/C1 не забуд
Нахуя? Если галера российская, со своим продуктом для российского сегмента.
>GC - поколения, SOH, LOH
Ну это ок, посмотрю как работает. Но правда не понимаю, нахуя это знать.
Все, что мне надо знать - если ссылок на объект нет, он освободится.
Зачем мне надо знать поколения?
Что-то типа дедовщины в армии - "не жрал говно - не мужик, все жрали и ты должен пожрать"?
>GOF
Допотопное говно мамонта, неактуальное в нынешнем тысячелении.
Когда в девяностых пилили монолиты на лям LOC, эта вся ебала была актуальная, в эру микросервисов - уже давно нет, что и подтверждает успех таких языков как Go, где вообще нет ООП и наследования, тем не менее, на нём пилят большие и сложные системы типа кубернетеса.
Но упоротые долбоёбы продолжают учить эту хуйню по инерции, и требовать на собесах, найс.
>GAPs
Чё это? Надо пояснить за ГЭПЧИК в стаже?
>Leaks
А это чё? Утечки памяти что ли?
>Lazy<T>
А это зачем? 2 года писал на шарпе и ни разу не встречал.
>со сравнением паттерном разных версий языка;
Нахуя? Я пишу на одной актуальной версии языка, мне похуй, что там 5-10 лет назад было.
>Compile mashine
А это чё такое? Первый раз слышу, ничего не гуглится.
>Reflection (must have to know)
А чё там знать надо? Открыл доки по System.Reflection и ебашишь.
Атрибуты кастомные доводилось делать, получать классы из сборки, свойства доступные перебирать, вроде никакого рокет саенса, всё просто.
>RunTime
А что рантайм? Что про него надо знать, кроме того, что он есть?
>По БД простыня будет ебать, ебать
Это я смогу, с бд вроде нет проблем, вопрос чисто по шарпу был.
Мне даже лучше будет, если будут по БД дрочить, а не по .net.
> И про инглиш B2/C1 не забуд
Нахуя? Если галера российская, со своим продуктом для российского сегмента.
Ты сеньор помидор что-ли?
>Зачем мне надо знать поколения?
Я бы такое спрашивал на умение пользоваться профилировщиками. Чтобы могли заоптимайзить хот пасы и чтобы не делали боксинг на любой чих, например передача интератора в метод вместо коллекции. А если начнешь хуярить везде спаны, жалоба на тебя, пидораса, и пинок под зад на мороз.
>в эру микросервисов
Даже в эру микросервисов хуярят паттерны, ты не сам работаешь. Скажешь "фасад" и не надо объяснять долго что это за хуйня и на кой хуй она вообще нужна. Причем не обязательно из списка гофа - луковая архитектура + ддд + всякие медиатры, что в разы лучше 9000-tier архитектуры.
>Я пишу на одной актуальной версии языка
Легаси код не переписывают каждый год на новую версию языка. Любителей переписывать тоже пинком под зад на мороз. Банально, есть какая-то древняя хуйня, которую никто несколько лет не саппортит и надо асапом починить баг, иде предложила заинлайнить out параметр и потом выясниться, что ты сломал билд.
Почему код не переписывается? Потому что на проекте ты работаешь не сам. Ты либо обосновываешь причину переписывания, делаешь пруф оф концепт и закладываешь в эстимейт, либо идешь нахуй. Потому что после переписывания ты можешь что-то сломать, что не понимаешь как работает, и после тебя нужна полная регрессия на несколько недель.
Допустим ты обосновал. Но и тут ты можешь пойти нахуй, потому что переписывание сопряженного с риском снежного кома. Когда переписание одной хуйни, заставляет переписывать другую хуйню, она в свою очередь третью и так далее. Точечно переписывать еще уметь надо, если это вообще возможно. И надо отдавать себе отчет, что ты точечным переписыванием порождаешь еще большее говно, потому что в итоге будет 2+ стилей (не код стайлы) написания кода: древнющее говно, чуть новее, еще чуть новее и так далее. И надо саппортить все стили. Причем пока ты переписывал, появилась новая ебанейм и давай переписывать по новой.
Да и ваще, знание нового языка не гарантирует, что твой мозг осилит переписать старый код на новый формат. Надо знать не только новый язык, такое в книгах по типу рихтеров не пишут.
>А чё там знать надо? Открыл доки по System.Reflection и ебашишь.
Я бы бежал с проекта, где требуется знать рефлексию. Этими вопросами проверяют объем знаний, чтобы когда ты пришел на проект, понимал как работает хуйня нейм пронизанная рефлексией и не задавал вопросы другим, чем проебывал их и свое рабочее время. Обычно это какая-то дрянь, которую опасно трогать или опасно изменять что-то в зависимостях (особенно весело, когда зависимость подкидывается из вообще другого репозитория бинарником во время билда), а баги фиксить надо.
>А что рантайм? Что про него надо знать, кроме того, что он есть?
Я бы спрашивал про жит и потом про ту новую хуйню, которую добавят с .net 6, с точки зрения профилировщиков.
>будут по БД дрочить, а не по .net
На позиции помидора обычно за язык почти не спрашивают, только если ты совсем долбаеб, который не может рассказать интересно про себя, как ты ракеты в космос запускал.
>со своим продуктом для российского сегмента
От таких проектов надо бежать так, чтобы аж пятки сверкали. + все передовые знания - это или английские статьи/блоги (не книги), или конференции в каком-нибудь сиднее. Да даже если не в сиднее или еще где, в рашке на конфу от жетбреинсов часто приходят инглиш спикеры, субтитров нет, соре, или жди видос на тытрубе полгода, пока знания пылью покроются.
мимо мамкин говнокодер
>Зачем мне надо знать поколения?
Я бы такое спрашивал на умение пользоваться профилировщиками. Чтобы могли заоптимайзить хот пасы и чтобы не делали боксинг на любой чих, например передача интератора в метод вместо коллекции. А если начнешь хуярить везде спаны, жалоба на тебя, пидораса, и пинок под зад на мороз.
>в эру микросервисов
Даже в эру микросервисов хуярят паттерны, ты не сам работаешь. Скажешь "фасад" и не надо объяснять долго что это за хуйня и на кой хуй она вообще нужна. Причем не обязательно из списка гофа - луковая архитектура + ддд + всякие медиатры, что в разы лучше 9000-tier архитектуры.
>Я пишу на одной актуальной версии языка
Легаси код не переписывают каждый год на новую версию языка. Любителей переписывать тоже пинком под зад на мороз. Банально, есть какая-то древняя хуйня, которую никто несколько лет не саппортит и надо асапом починить баг, иде предложила заинлайнить out параметр и потом выясниться, что ты сломал билд.
Почему код не переписывается? Потому что на проекте ты работаешь не сам. Ты либо обосновываешь причину переписывания, делаешь пруф оф концепт и закладываешь в эстимейт, либо идешь нахуй. Потому что после переписывания ты можешь что-то сломать, что не понимаешь как работает, и после тебя нужна полная регрессия на несколько недель.
Допустим ты обосновал. Но и тут ты можешь пойти нахуй, потому что переписывание сопряженного с риском снежного кома. Когда переписание одной хуйни, заставляет переписывать другую хуйню, она в свою очередь третью и так далее. Точечно переписывать еще уметь надо, если это вообще возможно. И надо отдавать себе отчет, что ты точечным переписыванием порождаешь еще большее говно, потому что в итоге будет 2+ стилей (не код стайлы) написания кода: древнющее говно, чуть новее, еще чуть новее и так далее. И надо саппортить все стили. Причем пока ты переписывал, появилась новая ебанейм и давай переписывать по новой.
Да и ваще, знание нового языка не гарантирует, что твой мозг осилит переписать старый код на новый формат. Надо знать не только новый язык, такое в книгах по типу рихтеров не пишут.
>А чё там знать надо? Открыл доки по System.Reflection и ебашишь.
Я бы бежал с проекта, где требуется знать рефлексию. Этими вопросами проверяют объем знаний, чтобы когда ты пришел на проект, понимал как работает хуйня нейм пронизанная рефлексией и не задавал вопросы другим, чем проебывал их и свое рабочее время. Обычно это какая-то дрянь, которую опасно трогать или опасно изменять что-то в зависимостях (особенно весело, когда зависимость подкидывается из вообще другого репозитория бинарником во время билда), а баги фиксить надо.
>А что рантайм? Что про него надо знать, кроме того, что он есть?
Я бы спрашивал про жит и потом про ту новую хуйню, которую добавят с .net 6, с точки зрения профилировщиков.
>будут по БД дрочить, а не по .net
На позиции помидора обычно за язык почти не спрашивают, только если ты совсем долбаеб, который не может рассказать интересно про себя, как ты ракеты в космос запускал.
>со своим продуктом для российского сегмента
От таких проектов надо бежать так, чтобы аж пятки сверкали. + все передовые знания - это или английские статьи/блоги (не книги), или конференции в каком-нибудь сиднее. Да даже если не в сиднее или еще где, в рашке на конфу от жетбреинсов часто приходят инглиш спикеры, субтитров нет, соре, или жди видос на тытрубе полгода, пока знания пылью покроются.
мимо мамкин говнокодер
> все передовые знания - это или английские статьи/блоги (не книги), или конференции в каком-нибудь сиднее
Так статьи и видосы с конференций никак не разовьют разговорный английский.
Вот я без проблем понимаю на слух английский, читать могу даже художественный текст, письменный английский более менее, когда есть время подумать над тем что собираешься написать, но разговорный английский посредственный.
К тому же я еще и асоциален, у меня и с разговорным русским проблемы, лол.
bump
>Так статьи и видосы с конференций никак не разовьют разговорный английский.
Я про необходимость знать инглиш, а не про его развитие. В случае с конфами, я имел ввиду конфу в живую, когда есть возможность задать спикеру вопрос и нет возможности поставить конфу на паузу или перемотать.
>Вот я без проблем понимаю на слух английский
Не верю, так как была такая же проблема. Легко проверяется попыткой повторить несколько реплик слово в слово по памяти из какого-нибудь видео типа https://www.youtube.com/watch?v=-uPaSOD7Dvk особенно с 1:30. Обычно такие видосики используются при проверке листенинга на аппера. Так это еще чистый инглиш, что уж говорить, когда это какой-нибудь швед или поляк.
Я никогда не запоминаю слово в слово что говорят, не важно какой язык
Я только общий смысл того что говорят для себя улавливаю и все.
Даже если бы видео было на русском, я не вспомню, что там дословно говорилось в середине видео
Своими словами рассказать, это я могу, но не дословно
Смысл в повторении. Прослушал фразу и сразу повторил, прослушал следующую фразу. Значит ты не понимаешь на слух английский, все просто. В случае с русским, плохая аналогия, на английском ты пропустишь мимо ушей всю фразу с непонятыми словами и посчитаешь, что ты понял смысл, что, впрочем, ты сделал тоже самое с моим постом выше дважды.
> Смысл в повторении.
Да, возможно такая практика помогает улучшить разговорный, ту я не спорю.
Но это не отменяет того, что Listening и Speaking это два независимых скилла, не случайно они разделяются при изучении английского.
Незнакомых слов я для себя в этом видео не встретил, даже более того, я попробовал синхронно переводить на русский и у меня это получилось. Что подтверждает, что понимание всего что там говорится есть. Иначе бы я не нашел подходящих слов в своем родном языке сразу же.
Листенинг и спикинг - разные умения, да. Спикинг только повседневными разговорами можно затрейнить.
> Я про необходимость знать инглиш, а не про его развитие. В случае с конфами, я имел ввиду конфу в живую, когда есть возможность задать спикеру вопрос и нет возможности поставить конфу на паузу или перемотать.
Ты хуйню несёшь, конфы нахуй никому не нужны, все написано в статьх книгах и уж тем более задавать дебильные вопросы из зала это вообще пушка.
Вообще съебите уже отседа в собес тред, а то засрали все тут своим оффтопом.
Учитывая то, что майкрософт сейчас сконцентрировал внимание разрабов на своем майкрософт сторе в вин 11, форсит свою экосистему и по сути, привязывает железо к своей продукции со своим tpm и угрожает полностью уничтожить пиратство на винде, то, перспективнее всего наверное вкатываться в С#?
Так хоть как-то бампаем мертвый тред.
Скорее наоборот, лул. Бегите глупцы!
Чел, если ты чего-то не знаешь/не умеешь, это не значит, что все вокруг обязательно такие же. Прекращай проецировать. В твоём видео не встретил ни одного непонятного слова, слушаю точно так же, как русский язык. Учись, тренируйся, а не придумывай себе оправдания.
>майкрософт сейчас сконцентрировал внимание разрабов на своем майкрософт сторе в вин 11
Ты хуйню несешь, съеби от сюда.
Это ты бумер ебаный не в теме последних новостей и вообще не знаешь ничего о том, что в современном мире ИТ происходит.
Съеби в свою пещеру, шлюха старая
Ловите ньюфага.
Ты уже умаялся, без члена, без амбиций и желаний. Потому, что ты обрубок
Почему? А ТС?
И? Райдер на жабе написан, вскод на жс, докер на го. Где концентрация внимания на сторе, болезненный? У рядового пользователя и компа-то нет. Ты из какого года вылез?
Так вопрос до какого процента в итоге эта ниша скукожится... Дриснятку-то наоборот чуть ли не бесплатно на арифмометры проталкивали только бери, и то хуй там.
> А если начнешь хуярить везде спаны, жалоба на тебя, пидораса, и пинок под зад на мороз.
Ну охуеть. И с хуя? Вот банально я веселюсь с сокетами. Ты мне предлагаешь вместо божественных Span использовать массивчики? Да иди ты нахуй, Span удобнее на уровне парсинга пакетов, плюс я могу использовать пайпы и если пакет не до конца собран - не двигать буффер, я попарсил - собрал запрос, передал его на уровень приложения, получил респонс, ответил. Что тебе в спанах-то не нравится, ирод? Удобная вещь же.
джун
>я попарсил
>собрал запрос
>передал его
>получил респонс
>ответил
Тебе делать больше нехуй в этой жизни?
Всмысле. Как ты предлагаешь мне кастомный бинарный протокол иначе обрабатывать? Как? Я вот не знаю. Если бы был готовый - я бы с радостью взял, но нету. Остается - бреть сокеты в руки и пилить.
>кастомный бинарный протокол
Тебе делать нехуй что ли?
Всё уже до тебя изобретено 1000 раз.
https://github.com/c80k/capnproto-dotnetcore
https://github.com/chronoxor/FastBinaryEncoding
https://google.github.io/flatbuffers/
https://developers.google.com/protocol-buffers/docs/csharptutorial
причем я ничего не нашел в нете, мне кажется что это настолько просто что никто даже не не обсуждает это но у меня конкретно затуп, смотрите, у меня есть обжект, он представляет из мебя массив втрингов НО когдая пытаюсь получить доступ к елементу массивана втором скрине компилятор возвращает ошибку!
ЭТО КАК ТАК-ТО?
типа массив есть но его как бы нет?
что за чушь?
как это побороть?
Ты может код скинешь?
Или думаешь, что тут Ванги собрались, которые сейчас примерно почувствуют, что там у тебя?
на скринах же, код как у меня повторить все равно не получиться, я использую DevExpress
Так это все не то.
Есть протокол, у него несколько уровней вложенности:
Канальный - который позволяет разбить поток байт на отдельные сообщения.
Какой-нибудь - дополнительный, который содержит хеш для проверки того что сообщение не повреждено
Прикладной - уже содержит сообщение для приложения, типа длина сообщения, команда, и дополнительные данные, если команда их предполагает. В байтовом виде оно как-то так выглядит:
[байт начала, [[длина, [прикладной уровень]], хеш], байт конца]
И так заложено в железках, с которыми предполагается коммуницировать моей программулиной. Допустим у меня сервер коррекции времени устройства, команда от устройства - одна : 0x01 - скорректируй время данные, данные которые передает устройство - текущее время +отклонение которое считается нормальным, в ответ я должен послать 0x02 и число секунд на которое необходимо скорректировать время, при этом первый байт - 0 если числ положительное, 0xff - если отрицательное, второй - секунды.
И таких сообщений на самом деле много может быть, всякие запросы на получение идентификатора устройства, передача каких-то сообщений о попытке взлома, сообщение о том что батарея садится и т.д. Каким образом твои решения помогут мне? И если таки они должны помочь, то почему те кто Modbus реализуют в шарпе - не пользуются ими, а пилят так же с сокетов/компортов?
попробовал
Похоже ты толковый разраб верхнего уровня. Дай посмотреть как ты это делаешь? Особенно инетерусет частичная сборка пакета.
Я ЗАЕБАЛСЯ!
> как ты это делаешь
Всмысле как? Майки сделали System.IO.Pipelines.Pipe. У Pipe есть PipeReader-PipeWriter. PipeReader- для потребления того что там написали, PipeWriter - для наполнения. Сокет пишет в Writer что получил, Из ридера мы читаем, получаем ReadResult, у него есть буффер. Этот буффер в SequenceReader и отадем это в парсер. В парсере - магия. Если распарсили - передвигаем буффер на количество байт которое было потреблено(читай длину сообщения), если не распарсили - не передвигаем и ждем пока получим новую порцию данных. Собственно все.
Код показать не могу, сорьки.
Бля, как стыдно, я зациклился на том, что это какая-то доктрина типа SOLID.
> IParameter.Value
https://docs.devexpress.com/CoreLibraries/DevExpress.Data.IParameter.Value
Судя по докам это Object. Почему вообще ты хочешь его к массиву строк привести?
Ну и про
> Parameters
https://docs.devexpress.com/Dashboard/DevExpress.DashboardCommon.DataLoadingEventArgs.Parameters
IEnumerable<IParameter>
У IEnumerable нет возможности по индексу получить доступ к элементу.
Теперь скажи что ты хотел вообще этим кодом сделать.
не понимаю, у меня есть там внутри список параметров, буквально, "параметр1" "параметр2" и так далее, мне нужно их достать, нахуя делать тогда апи с которым никак не можно взаимоджествовать, нахуя это этот сраный девекспрес тогда вообще нужен если я даже сраные фильтры прочитать не могу которые мне НЕОБХОДИМЫ
Ну, смотри, как я понял внутри Object - массив каких-то параметров.
Вот - простой способ достать это в виде массивчика.
Ты вызываешь дженерик метод
Укажи в треугольных скобочках, после названия метода тип, в твоем случае string
Правада что в Enterprise шарп лече вкат чем джава?
320x296, 0:03
Ты что волшебник? ты знаешь что нельзя магию вне Хогвартса использовать, что это за заклинание такое странное?
да оно работает ИДЕАЛЬНО!
горахдо лучше того костиля что я накотилял с динамиком но я ВООБЩЕ не понимаю как оно работет, для меня это реально магия какая-то, можешь обяснить в чем суть заклинания и как оно работает?
мусор который выбрасывают и переписывают наново так как через час не ебут чо оно делает и как
Чувак я уже очень давно в теме, если ты не видишь логики в этом
Ну тот анон как-то кастанул это заклинание, значит он примерно понимает что это и как оно работает, и вот что бы не езнуть случайно потом я тоже хочу быть посвещенным в это тайное знание
Там нет магии же. Паттернматчинг + дженерик.
Ну и да, прочитай про дженерики и этот самый паттернматчинг, если не понимаешь
https://docs.microsoft.com/ru-ru/dotnet/csharp/fundamentals/types/generics
https://docs.microsoft.com/en-us/archive/msdn-magazine/2019/may/csharp-8-0-pattern-matching-in-csharp-8-0
Языке позор, язык обрубок. Что тут ещё сказать.
Я просто предпочитаю использовать то, что есть из коробки и что майки сами используют(пайпы они в кестрелле используют, например), чтобы свести к минимуму ситуацию, когда автору надоело, контора что развивала - разорилась и прочее.
>>080108
Просто я не хочу распинаться про парсер(вопрос то был про работу с буффером), достаточно было сказать, что он парсит последовательность байт. Любой, у кого в вузе была теория автоматов, понимает как работает парсер, да и без вуза, кто пытался что-то сграббить и писал свой граббер - тоже понимает.
over что
Это троллинг чтоле?
>В 21 году.
>В треде шарпа.
>Анон не знает дженерики и воспринимает как магию.
>В то время, как дженерики даже на самых уёбищных метанитах сразу же преподают.
Неее... Это жирнющий троллинг.
Не обязательно. Вполне вероятно, что челу никогда не приходилось работать с таким. Особенно учитывая что шарп умеет часто догадываться о типе дженерика из контекста.
Я как дед, перекатившийся с С, до сих пор хуею с таких вот оборотов.
Вам там на перформанс вообще похуй?
Не похуй, но нужно понимать, когда стоит, а когда нет за ним гнаться. Этот метод я не думаю что будет вызываться миллионы раз в секунду.
Ну и да, я там тупанул чутка. Не обязательно было городить метод, в случае того анона достаточно было as string[] использовать, правда тогда бы дополнительно нужно проверять на null.
Ну а так - предложи свое решение, няша. Я же даже не джун, студент обычный, первый курс только закончил, могу чего-то не знать.
В этих настройках есть string поля, они нужны для замены в тексте.
Пример: Если это поле string заполнено то мы производим замену в тексте, если поле пустое то замену не делаем.
Вот вопрос у меня возник как правильно это все сделать.
Вот такие варианты придумал:
Вариант как я описал выше.
Еще одна модель с 2 полями bool и string если тру то проводим замену.
Вообще некоторые настройки можно с натяжкой объединить в другие модели, стоит ли это делать*?
Короче, делаешь вот так:
//интерфейс для разных обработчиков текста, может быть ты захочешь его резать, или переводить или еще что-то
public interface ITextHandler
{
public string HandleText(string input);
}
//если не хочешь создавать отдельную фабрику и менять свою модель
public static class MyModelExtension
{
public static TextReplacerSettings CreateTextReplacerSettings(this MyModelSettingName )
//тут создаешь настройку для замены текста в зависимости от твоей модели, как тебе нравится
return new TextReplacerSettings()
}
//класс который заменяет что ты там хочешь на что тебе там надо в зависимости от настройки
public class TextReplacer : ITextHandler
{
private readonly TextReplacerSettings _settings
public TextReplacer(TextReplacerSettings settings)
{
_settings = settings;
}
public string HandleText(string input)
{
StringBuilder out = new();
//тут твоя логика по замене текста
return out.ToString();
}
}
Почему так? Прост)))
Короче, делаешь вот так:
//интерфейс для разных обработчиков текста, может быть ты захочешь его резать, или переводить или еще что-то
public interface ITextHandler
{
public string HandleText(string input);
}
//если не хочешь создавать отдельную фабрику и менять свою модель
public static class MyModelExtension
{
public static TextReplacerSettings CreateTextReplacerSettings(this MyModelSettingName )
//тут создаешь настройку для замены текста в зависимости от твоей модели, как тебе нравится
return new TextReplacerSettings()
}
//класс который заменяет что ты там хочешь на что тебе там надо в зависимости от настройки
public class TextReplacer : ITextHandler
{
private readonly TextReplacerSettings _settings
public TextReplacer(TextReplacerSettings settings)
{
_settings = settings;
}
public string HandleText(string input)
{
StringBuilder out = new();
//тут твоя логика по замене текста
return out.ToString();
}
}
Почему так? Прост)))
Каждый вызов линк, а их там три, создаёт объект енумератор, и каждый из них делает перебор массива.
Можно же было сделать один перебор массива, добавляя нужные элементы в буфер, и вернуть его как span, если не весь заполнится.
Типа:
public override string ToString() => $"{fname} {lname}".Trim();
У меня такое ощущение, что лучше вообще НИКОГДА. Только для свойств/индексаторов.
Всегда по возможности так пишу, потому что кратко.
Ну, я тоже пришел к такому выводу. Раньше думал - ну, если ванлайнер - то норм, но блядь, потом оказывается, что ванлайнеру что-то добавить нужно или поставить брейкпоинт. И заебывает каждый раз убирать эту стрелку и добавлять скобки. Уууууу, реально, потому в настройках студии стоит как ошибка.
То же кстати и с однострочными if, foreach и т.д. Лучше будут скобки везде, чем потом их добавлять каждый раз.
Кек. Ну давай, что там не так?
Как со своими коллегами добазаришься делать так и будет.
В своем проекте можешь как угодно делать
Всем похуй.
>или поставить брейкпоинт. И заебывает каждый раз убирать эту стрелку и добавлять скобки.
Ты совсем ебанутый? Брейкпоинт нормально работает на стрелке. Скобки добавляет/убирает иде.
var result = context.Entities
.FromSqlRaw(SqlString)
.Select(e => e.Id)
.ToList();
(в SqlString Entitу отсортированы по некоторому параметру)
сохранится ли порядок в result? (так-то он сохраняется, но меня интересует гарантировано ли это или мне просто везет).
И если нет, то какие варианты? Я конечно могу сделать так
var result = context.Set<Id>()
.FromSqlRaw(SqlString)
.ToList();
но не хочется засорять context лишними сущностями.
>сохранится ли порядок в result?
Без сортировки зависит от количества элементов, типа провайдера и определений таблиц. С сортировкой должно вернуть с сохранением порядка, но зависит от ограничений провайдера.
Имеется некий общий ресурс string buffer;
Есть два потока которые используют этот ресурс следующий образом:
Первый поток в цикле while() ожидает ввода из Console.ReadLine() и записывает эти данные в буффер.
Второй поток держит сервер и слушает входящие соединения, при поступлении запроса он отсылает буффер клиенту и очищает его.
Вот код, что бы было понятнее: https://pastebin.com/EZtnW5cD
Так вот, я опасаюсь что когда второй поток будет очищать буффер, произойдёт переключение контекста, и туда запишутся важные данные, которые смогут быть утеряны при обратном переключении контекста.
Как мне приостановить работу первого потока, на время пока я отсылаю данные из буффера и очищаю его?
Заранее благодарю за помощь, в C# и .NET только осваиваюсь.
Какая-то хуйня, а не код.
1. Начни с критической секции на чтении и записи в буфер. У слушателя обнуляй сразу буфер как записал в другую переменную значение, чтобы уменьшить зону критической секции.
2. Переделай все на событийную модель с использованием Rx или MQ.
Я не знаю что там тебе нужно, но я бы как-то так вот сделал для прототипа, а дальше - в зависимости от того что надо.
https://pastebin.com/80ChXCj2
А относительно твоего вопроса. Схороняй просто перед тем как ты собираешься преобразовать строку - длину отправленного и чисть не весь буффер а только длину отправленного, обмазовшись критической секцией.
Какой лучше шифр юзать? Rijndael ещё не поломали?
Ты его проблему не решил. lock должен быть с 49 по 58 строку включительно. Или делай чистку сразу после 49 строки, о чем я выше написал.
помохитэ помохитэ помохитэ
https://pastebin.com/i4sNVP3s
В общем, есть одна форма, на которой должно сравниваться значение в текстбоксе (строка, которую вводит пользователь) со значением определённой строки в файле, и если ввод пользователя идентичен этой строке, то значение у RightAnswers должно увеличиваться, если нет, то увеличиваться уже у WrongAnswers; но почему-то во всех случаях, что бы я не вбивал в текстбокс, значение увеличивается только у WrongAnswers. Где я долбоеб?
Сап.
В чём разница между WPF Application и WPF App (.Net Framework)?
Или между Windows Forms App и Windows Forms App (.Net Framework)?
Неужели один из них не имеет поддержки .Net Framework? Бред же какой-то
Те у которых написано .Net Framework это под .Net Framework, те у которых не написано .Net Framework это под .Net Core
Боже, а в чем разница между .Net и .Net Framework?
Я думал, что первое - это платформа, которая включает в себя второе. В этом говне черт ногу сломит. учитывая ахуительную точность определений, через которые это описывается.
>Неужели один из них не имеет поддержки .Net Framework?
Кор умеет запускать .NET Framework напрямую в обход .NET Standard. Начинать проект на .NET Framework будет только на голову отбитый.
>Начинать проект на .NET Framework будет только на голову отбитый.
А НАХУЙ ОН ТОГДА НУЖЕН БЛЯДЬ
КАК У МЕНЯ ЖОПА ГОРИТ С ЭТОГО НЕОЧЕВИДНОГО ГОВНА
.NET - это переписанный на кроссплатформу и заоптимайзанный .NET Framework. Только WPF и WinForms - это виндоуз онли + писать что-то сложнее хелоу ворлда на оных на .NET - плохая идея, технология сырая.
Для обратной совместимости и легаси говна, которое дорого/ненужно переписывать на .NET.
Алсо разве WPF и WinForms не чисто под винду? Зачем может понадобиться запускать их на .net core, то есть кросплатформенной технологии?
>Боже, а в чем разница между .Net и .Net Framework?
Так это разные рантаймы, фреймворк это уже говно мамонта прибитое гвоздями к винде. Net Core (а теперь просто .Net) это новая стильная молодежная кроссплатформенная опенсорс платформа (но винформс и впф все равно, очевидно, прибиты к винде).
Ради перформанса и новых фич платформы. Сложный гуи все равно на плюсы будет переписан, а для гуи уровня хелоу ворлд сгодится и такая нестабильная связка как WinForms/WPF + .NET.
То есть мне .Net5 лучше выбирать, чем кор 3.1 как таргет?
>>081529
>(но винформс и впф все равно, очевидно, прибиты к винде).
Но ведь кроме них для десктопа остаётся только UWP......
>>081532
>Сложный гуи все равно на плюсы будет переписан
Это что за гуй такой должен быть, что ради перформанса его на плюсы переписывают?
> такая нестабильная связка как WinForms/WPF + .NET.
Как она может быть нестабильной, если это технология той же ультра копро рации Майкрософт, которая и винду делает?
Я уже ничего в ентой жизни не понимаю
>То есть мне .Net5 лучше выбирать, чем кор 3.1 как таргет?
Да, рано или поздно все легаси или перепишут на актуальную версию платформы или выкинут. В .NET низкий шанс, что ты хоть как-то будешь касаться декстопа или делать что-то сложное на декстопе. Автокад например запилить.
>остаётся только UWP
Забудь про UWP. Жди MAUI, если он выстрелит. Или пиши гуи на другом языке.
>Это что за гуй такой должен быть, что ради перформанса его на плюсы переписывают?
Игры, моделирование зданий, обработка звука/видео, анализ данных. Пример с Unity не канает, разработчики Unity запилили компилятор C# в C++.
>Как она может быть нестабильной
Да запросто. Я перевел очень простецкую программу на WPF из .NET Framework 4.8 на .NET Core 3.1 и получил другое поведение + падение перформанса + баги. .NET 5 особо картину не поменял, к тому же он не LTS (Long Term Support).
> .Net5 лучше выбирать, чем кор 3.1 как таргет?
Если нет причин выбрать кор3, то да, по умолчанию выбирай Net5. А коль у тебя не мегапроект живущий в экосистеме, где все на кор3, то у тебя причин выбрать кор3 не будет.
>Но ведь кроме них для десктопа остаётся только UWP
Ты не представляешь на сколько глубока кроличья нора. Xamarian, Avalonia, а теперь еще пилят MAU, WinUI и еще про какие-то слышал, и кто из них кому родня, кто продолжение, а кто параллельная ветка я хз, давно ничего под десктоп не писал.
>ради перформанса его на плюсы переписывают?
>Как она может быть нестабильной
Не обращай внимание на плюсодурочка
Тяжко тебе будет, если ты в процессе нажатия трех кнопок уже что-то поломал
У него проперти из AssemblyInfo.cs берутся и прописаны в csproj. У меня и шаблон проекта иначе называется.
Как лично я мог что-то поломать, если визуалка создала мне проект, а я нажал кнопку, чтобы визуалка же его собрала?
Тебе достаточно было удалить AssemblyInfo.cs или дублирующие свойства в csproj. Это проблема твоего шаблона проекта. Ты можешь свой шаблон создать, если хочешь.
>Где я долбоеб?
1. Ты когда читаешь файл, не указал кодировку файла.
2. Стрим надо диспозить, а не клоузить.
3. Нахуй ты в цикле обновляешь UI? Твой вайл зафризит UI, пока обработка не закончится.
4. Комментарии врут. Особенно комментарий на сплите. Другие комментарии - капитан очевидность.
5. Строчка 13 не учитывает культуру. ToLower ведет себя по разному в зависимости от языка и текущей культуры.
6. Код надо разделять на слой отображения и слой обработки, а не писать все в одном супер классе.
7. Ты можешь поставить брейкпоинт на строки 4 и 13 и найти что не так. Или логи добавить.
8. Конкатенция строк в цикле - это вообще пушка.
Да, спасибо.
Но в .csproj не было таких свойств, туда надо было просто добавить строку:
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
640x360, 5:42
Получить юзера - GetUser(string id).
Получить юзеров - GetUsers(string[] ids).
То, что ты описал, говнокод.
Вопрос удобства - это ддд и GetUser(UserId id) и GetUsers(UserId[] ids).
>.NET низкий шанс, что ты хоть как-то будешь касаться декстопа или делать что-то сложное на декстопе
Этот голос с веб-параши постоянно раздаётся. Но это просто у тебя инфо-пузырь такой. Пикрил например написан на дот.нете, а лицензия на одно рабочее место жирненького нефтяного кабанчика без допов стоит 300 тысяч баксов для нищего СНГ-рынка (с доп. модулями, без которых никуда, и больше 2 лямов можно нагрузить) + тех. поддержка 20% в год. Как я сейчас вижу, b2b приложений под винду на дотнете пишется очень много и денег там просто дохуя, на порядки больше, чем во всей веб-помойке для нищих жадных миллиардов ноунеймов.
Продать 3 лицензии крупному кабану, а затем стричь его, получая ежегодный почти пассивный доход, проще, чем пытаться покорить сотни тысяч школьников и безработных бездельников, которые капризны, но при этом и доллар хер тебе заплатят.
согласен, тоже кекаю с продажи нищему говну хуеты, так можно опустится до уровня сяоми с экономией всего и на всему вместо заниматся тем что нравится без урезаний бюджетов и прочего и делая это красиво плюс не ебешь мозг себе антифрродом и что твою программу или игру хакнут шкальники шоп надюпать там олмазов
типо да не буду я платить 100 ре за шеколад, вон мне вася обещал за 10 ррублей насрать на миску, цвет похож, вкус не похож зато я могу набрать 10 васей что высрут мне 10 мисок с говном
>Этот голос с веб-параши постоянно раздаётся.
Я говорю про .NET и что он сырой для WinForms/WPF. Чел мне приводит аргументом софт, написанный на .NET Framework 4.5. Совсем ебобо?
Еще вопрос, чем рисуется этот 3D window. Написать такое можно, используя интероп типа мертвого SharpDX или еще более мертвого SlimDX. Или, что более вероятно, это итероп говна мамонта - OpenGL. Вероятность вулкана около нуля. Скорее всего, если это вообще WinForms, а не кастомная херь, компонент напедален как сторонний пакет кем-то другим, не важно на чем, хоть на C#.
Про веб я ничего не говорил. Но раз ты начал за веб, то:
>под винду на дотнете пишется очень много и денег там просто дохуя
Вакансий под веб в несколько раз больше, чем под декстоп. Декстоп надо знать даже педаля под веб. Денег в декстопе дохуя, бесспорно, но саппортить надо очень страшное легаси говно. Еще больше денег в документообороте, но тебе жить не захочется.
похуй на чем оно высрано, хоть на блекбоксе, вопрос в нужности и актиуальности, бизнесу всегда нужен софт, а шкальникам, не дала мамка денег на новый премиальный хуй за 20 ре - 10 ре комиса и все удоляетт нахуй игру
>похуй на чем оно высрано
Так ты тему вообще в другое русло увел.
>не дала мамка денег на новый премиальный хуй за 20 ре
Занятно, что у примитивной гача-мобилке выручка за 15 дней составляет 14 миллионов долларов. Напедалено, вроде, на юнити. https://www.reddit.com/r/gachagaming/comments/bwwti5/global_revenue_of_games_vs_cn_arknights_release/
Из которых ты половину тратишь на всякие антифроды, а если еще и ебонут нахуй экономику в игре то пизда.
А потратил ты на маня-игру и ее разработку не ебу сколько но дохуя не меньше 5млн точно.
Через годик про игру забудут и будешь тратить только на поддержание ее, играть будут все меньше.
В целом играть с говноедами и иму гождать смысла ноль учитывая фрагментацию платформы, дохуя корявого железа и ноль способов это все отладить
>не меньше 5млн точно
Из которых разработчику перепадет нихуя. Даже если потом надо будет саппортить эту игру, не важно какая прибыль, у разработчика ставка не изменится. Поэтому я хуярю IaaS.
>Через годик про игру забудут
Новости два года. Эта игра выбилась в топы на китайском рынке. На недавнем стриме годовщины смотрело 10 млн людей. Если про игру забудут, овнер сделает редизайн под другим логотипом, если ему бабки еще будут нужны.
Ты уже определись какой софт хочешь педалить. Где больше шекелей отваливают, где интересные задачи или где нужен пассивный доход (это вообще не про разработчика, лол, и ты увел тему вообще в бизнес, к языку разработки это не имеет отношение).
Разрешите доебаться.
>Стрим надо диспозить, а не клоузить
Rly? (см. пик) Если уж и советовать поменять close, то на использование using, чтоб было меньше шансов проебаться.
>не указал кодировку файла
А зачем, если все равно utf-8? Нет смысла указывать значение, которое и так будет по дефолту. Тут вам не там.
> Строчка 13 не учитывает культуру
Ну справедливости ради, как раз учитывает. Но да, лучше тут через инвариантную сделать.
>то на использование using, чтоб было меньше шансов проебаться
Я хуево выражаюсь.
>А зачем, если все равно utf-8?
У кого? У файла? Одному богу известно, какая у него кодировка. UTF-8 еще бывает с бомом.
>Ну справедливости ради, как раз учитывает.
Это я снова хуево выражаюсь. Культура должна быть задана явно.
>Но да, лучше тут через инвариантную сделать.
Почему не Ordinal? Это от задачи зависит.
Планируется ли внедрить такое в нет6?
Такое уже есть, но только для волшебных структур.
Ты инкапсуляцией огораживаешь пользователя от внутренних детали реализации. Забор можно построить разной высоты.
VS была еще со времен XP. Есть другие IDE. Кор запускается на любой винде. Хелоу ворлд можешь в блокноте написать.
Если не брать в рассчет замарин и формы - VSCode - покрывает все. Плюс, есть райдер.
Правильно ли я понимаю что с интервалом в 1 секунду код постоянно запускает функцию go?
просто у меня в какой-то момент прога будто вырубается, первую минуту работает а потом всё
у меня эта ошибка 'instance failure'
читаю стак
https://stackoverflow.com/questions/17650482/instance-failure-error-while-connection-string-is-correct и там ВЕЗДЕ ПИШЕТ что надо поменять двойной слеш на одинарный, НО ОНО БЛЯТЬ НЕ МОЖЕТ В ПРИНЦИПЕ РАБОТАТЬ!! ну вот вообще, ну вот в принципе, при попытке использовать одинарный слеш компилятор возвращает синтетическую ошибку,
ТАК А КАКОГО ХЕРА?
а в чем проблема может возникнуть? ты хотя бы загугли работу с пикселями си шарп.
Я не нашёл как работать с пикселями в си шарп. Возможно, он и не может выводить пиксели как мне надо.
>Правильно ли я понимаю что с интервалом в 1 секунду код постоянно запускает функцию go?
Нет. Говнокод единожды запустит go через textbox3 секунд
Да. уже разобрался, почему-то прогер тут стоп поставил, логику его не вдуплил, в итоге чтобы потоками не загружать я просто вайл тру прикрутил.
Сук фрилансеры бля, 5к отдал за то что сам пофиксил
Ну да. Принцип рисовальных объектов был ещё в дельфи, в нулевых, если ты и дельфи не знаешь, то тебе не меньше 50-ти лет!
Дело в том, что уже ранее так делалось и никаких проблем не возникало по какой-то причине. Никаким разделением доступа я отдельно не занимался, оно просто работало.
Значит админ в твоей сети поменял те или иные настройки. Обратитесь к администратору сети.
> ннно админ йааа...
>> ннно админ йааа...
Не я, слава Богу. Старые проги работают как и работали, при этом лежат прям в этой же директории.
Сделай утилиту (или загугли одну из сотен имеющихся) которая синхронизирует файлы в локальной директории с серверной директорией, при запуске синхронизируй и запускай своё говно локально, не еби мозги ни себе, ни людям.
А, ну и да, если люди копирую прогу себе локально, то у них всё нормально работает, разумеется
Вот есть string.Split, я скармливаю перечисление char символов, и он возвращает мне массив без этих символов, но я все еще хочу засплитить пробелы.
Вот пример: "хуй пизда (джигурда)", я хочу "хуй", "пизда", "(", "джигурда", ")".
При желании - можно. Другое дело что нужно помнить, что VS For Mac - это бывшая моностудия. Не критично, но придется в различиях в этом плане придется разбираться.
Как уже говорил чел выкидываешь ef и пихаешь такие данные в редис или монгу, ты знаешь, что поддержание консистентности бд довольно таки много времени сжирает, открывает дохулярьен физических потоков, я бы не сказал, что это хорошее решение. Ты даже можешь использовать свой ef в другом модуле бд. Он будет вытягивать данные из редиса с какой-то периодичностью и сохранять в sql базе данных.
>хочу засплитить пробелы
Так добавь пробел в массив разделителей
>(джигурда)
регэкспом сплить \s+|(?=\))|(?<=\()
Лучше райдер.
Экзамен длится около 3 часов, есть возможность оспорить результат если спрашивали не по теме
Собственно вопрос, синьйоры реально всё это знают или меня пытаются развести на время чтобы просто не апать зп? Как по мне, так проще заново устроиться на синьйора чем пробовать сдать экзамен здесь
Я хуй знает. Но то что ты перечислил - у меня спрашивали для джуна. Для человека с вышкой - это пройденный этап, вне вузовской программы только деплой находится.
По твоему вопросу. Получить прибавку и грейд на другом месте обычно проще, чем на текущем. Но, если тебя самого хотят протестировать и дали список тем, я не думаю что это обязательно чтобы развести, в некоторых конторах просто есть формальные процедуры, просто уточни у коллег - как оно происходит и насколько жестко и подготовься.
Ты нихуя не понял, а я уже сделал все руками, но за ответ спасибо.
Завод.
Блядь. Откуда же я знаю что ты не так делаешь?
Попробую в Вангу поиграть. textBox - не массив или список.
Ну все на скрине. Вот я вроде пытаюсь превратить их в массив и все равно ошибку выдает.
А что делать то тогда? Обязательно каждую вручную заполнять?
Ты создал массив TextBox'ов.
TextBox - ссылочный тип.
Массив при создании - заполняется значеним по-умолчанию. Для Ссылочных типов - это Null
Таким образом у тебя при попытке обратиться по индексу - получается NullRefirenceExeption.
Суть, заполни массив значениями для начала.
var txtBxArray = Enumerable
.Range(0,5)
.Select(_ => new TextBox())
.ToArray();
Чет все равно ту же ошибку выдает.
>заполни массив значениями для начала
Так я и пытаюсь их заполнить значениями от 1 до 5. Не выходит.
Можешь как дебилу пояснить, я совсем нубас.
>>085555
Во твой вариант тоже компилиться без ошибок. Только на форме значения не меняются увы.
> Неужели никак нельзя упростить эту запись?
Цикл
>Только на форме значения не меняются увы
А ты их на форму как добавляешь?
Пиздец говнокод, однако.
А понял, у тебя же все через жопу. Если это единственные текстбоксы на форме, то можно их получить так
this.Controls.OfType<TextBox>().ToList();
и по ним идти циклом (new TextBox уже не нужен). Если это НЕ единственные текстбоксы, то можешь их закинуть на панель и достать так:
panel1.Controls.OfType<TextBox>().ToList();
p.s. мог в синтаксисе ошибится, но студия тебя поправит
Проиграл — плати!
> правильно будет перенести все поля из модели А в ViewModel
Если в данной вьюмодел нужны все поля .
Суть-то MVVM в том, что ты вполне можешь делать несколько вьюмоделей для одной и той же модели, можешь сделать фассад из нескольких вьюмоделей и т.д.
Ну, допустим, у тебя есть класс Car у него может быть набор свойств, который может быть сгруппирован, допустим - у тебя сайт по продаже машины, ты можешь сделать CarOwnerContactInfoViewModel - где от всей модели ты будешь доставать только то что касается информации о текущем владельце машины(его телефон, почта, телега и т.д.), CarTechnicalDescriptionViewModel - с характеристиками машины(пробег, двигатель, попадала ли в аварию и т.д.) и т.д. а потом, если тебе нужно, это все - спрятать в фасад DefaultCarViewMpdel который наружу прокидывает свойства нужные, а внутри использует уже эти вот более специфичные ViewModel'и.
Есть пара вопросов и домыслов, вытекающих из вопросов. Будет здорово, если ответите.
1. Стоит ли учить c# сейчас? Пестрят новости о вин11, которая запускается на мобилках, а это значит, что андроид может заглотнуть огромный болт и десктоп приложения будут запускаться и на мобилах (написанные на c#)
2. Устроился работать в контору (в техподдержку). Через год тут есть варик стать шарпистом (зп от 110к, как мне сказали). Как обычно происходит перекат из техподдержки в разработку? (сам на данный момент знаю базовый синтаксис многих ЯПов, т.к. в вузе прогали). Думаю, весь этот год буду задротить c# + .net.
3. С чего начать изучение c# и полноценного программирования (ооп, solid, mvc, mvvm и прочую хуетень). Как понять, что такое .bet и чем отличаются версии? Хочу учить c# исключительно по книге, может подскажете годную? (параллельно, естественно, буду гуглить)
Файловый стрим позволяет побайтово читать и устанавливать позицию где хошь.
Делаешь свой велосипед в виде FileReader, делаешь обертку над потоком FileStream и как тебе удобно читаешь.
> Стоит ли учить c# сейчас?
Почему нет?
> Как обычно происходит перекат из техподдержки в разработку?
В душе не ебу, я после вуза сразу пошел в разрабы
> С чего начать изучение c# и полноценного программирования
Если общие концепции(переменные, ветвления, циклы, функции и т.д.) понимаешь и в состоянии написать калькулятор с порядком действий - с изучения особенностей языка на котором собираешься прогать. Про солид и прочее - практика. Только реальные проекты покажут нахуя оно вообще нужно, т.к. если ты кодишь в вакууме - ты будешь постоянно натыкаться на непонимание: А нахуя мне так делать, если вроде как проще сделать вот так. Попробовав сделать те же крестики-нолики, а после этого добавить кастомные правила, ввести игру по сети, добавить лидерборд и т.д. - помогают понять нахуя оно вообще нужно, когда что применять. Свои проекты - не меньше 10к строк кода, чтобы прочувствовать нарастающаю сложность и понять, что кодить как раньше - не получится(конечно если у тебя нет синдрома яндере-дева, если таки заметил что оно проявляется (добавление новой функциональности приводит к тому что тебе приходится менять существующий код и занимает все больше времени) - остановись и погугли всякие бест-практис и посмотри как умные люди делают, для примера - смотри исходники Nancy - это наверное одна из самых красивых вещей что вообще может быть). Так вот, кодя свои вещи - разовьешь чувство прекрасного, а именно это чувство позволяет после того как ты наговнокодил остановиться, взглянуть на все это, проверить работает ли, и после того как понял что работает - сделать красиво.
Про книги - второй пост этого треда.
>Через год тут есть варик стать шарпистом
>как мне сказали
>Как обычно происходит перекат из техподдержки в разработку?
чувачок, так всем говорят, чтоб сидели, заявочки закрывали и не кукарекали. придёшь к начальству через год - скажут, что тебя некем заменить и пока придётся поработать ещё годик, потом ещё...
хочешь кодить - пиздуй в разрабы сразу!
>Стоит ли учить c# сейчас?
Если начинать учить ЯП, то желательно с целью возможного трудоустройства, на решетках шанс крайне низок и то, придеться выгребать тонны говна из под легаси
>Как обычно происходит перекат из техподдержки в разработку?
Никак. Были мифы, что QA переходят в девов, такой же пиздежь, как и саппорт. Ты же блять не пишешь код, как ты перекатываться собрался? Или объясняя кастомеру, как работает бизнес в приложении ты научишься писать? Где блять логика?
> С чего начать изучение c#
Двачую этого >>086586 но идея с крестик-ноликами - хуета. Лучше начни писать клон твоего проекта, над которым будешь сидеть пропердывая штаны в саппорте. Или то, что хотел реализовать.
>Хочу учить c# исключительно по книге
максимально тупая идея. Тех литература - это не худ. произведение и не читается упорядоченно.
Могу посоветовать задрачивать Code wars, алгоритмические задачи, дискретку и прочие штуки, которые развивают логику, т.к. это универсальный инструмент и это то, на чем тонет любой июнь.
И да, 100 раз подумай, прежде чем браться за #. Время - самый ценный ресурс.
Эх как же хочется писать просто на девственном языке, без всяких помойных фреймворков...
>Ты же блять не пишешь код, как ты перекатываться собрался? Или объясняя кастомеру, как работает бизнес в приложении ты научишься писать? Где блять логика?
Я ранее написал, что буду учить ЯП. На работе тем более заинтересованны в развитии сотрудника. Это не та контора, где набирают долбоёбов, чтобы закрывали тикеты, просто потому что их мало очень.
>И да, 100 раз подумай, прежде чем браться за #. Время - самый ценный ресурс.
А что такого? Ну буду копаться в легаси за 150к, для меня это очень ахуенная зп (для моего региона). Недалеко от дома стоит заводик, где всегда требуется шарп разраб, просто wpf клепать и всё. ЗП 80к, работы на полтора часа в день. Да и в тп я уже на 60к со старта сижу. Через год либо грейд до 85к зп, либо переход на шарп разраба.
Что это было?
Привет тебе из 2001 года.
>Microsoft признала историческую ошибку в отношении open source
>Президент Microsoft Брэд Смит (Brad Smith), выступая в MIT, заявил: «Microsoft заняла неверную сторону, когда open source «выстрелил» в начале века; то же самое я могу сказать и о своей личной позиции». Смит работает в компании более 25 лет, он один из ведущих юристов компании, лично участвовал в юридическом соперничестве с открытым ПО.
>В 2001 году экс-глава Microsoft Стив Балмер (Steve Ballmer) обозвал Linux «раком, который пожирает всё чего касается в смысле интеллектуальной собственности» (правда, спустя 15 лет он смягчил свою позицию, заявив, что в 2016 угроза от Linux – «в зеркале заднего вида»).
C# Полностью отошёл от винды, теперь это кроссплатформенный язык.
>хуй-лид
>На мой вопрос, нахуй
Очевидно, токсик-дурачок не подошел их компании (культурно). А вакансия не на асп.нет коре была?
Вот я и не понимаю. Я делаю что-то не так?
Деды забивают на принцип единой ответственности.
А новички наоборот разбивают все что можно разбить.
Я думаю должна быть золотая середина.
У меня у самого дохуя классов получается когда что то делаю.
>буду учить
>заинтересованны в развитии сотрудника
Я когда-то был таким молодым и глупым
>буду копаться в легаси за 150к
>ахуенная зп
>ЗП
>60к со старта
>зп
Программирование 2k21 - ЗП, а что дальше - хоть на голову срите. Ну удачи, хули. С твоим WPF и легаси хуйней. Свидимся в батхерд треде, где ты будешь сопли пускать, как въебал 2 года на дрочке формочек для Шindows и в итоге получил нихуя
>>086726
да много нормальных языков есть, рынок чекаешь и выбираешь. C# в какой-то мере хорош, но спрос на него - не очень. А тред бампается только потому, что студенты шараг бегут решать свои задачи
Хуй знает. Мне после года работы - постоянно звонят с предложением пройти собес, при том что я даже не бампаю резюме. Это я к тому, что работа есть.
Вот то что на шарпе скучно, это другое дело, не чувствуешь что находишься в каком-то мейнстриме и вместе со всеми, а просто в стороне что-то клепаешь, получаешь денежку, что в мире IT, за исключением .net - узнаешь в нерабочее время, когда читаешь статейки и дайджесты.
>постоянно звонят с предложением пройти собес
Так это их работа. Сейчас чел, который вообще не пишет может создать страничку в LinkedIn, написать, что владеет языком, который пользуется спросом на рынку и ему будут писать каждый день по 30 человек. Хочу сказать больше, HH даже блять не разбираются особо, кому они пишут. Приколы, когда не могли JS от Java отличить все еще актуален.
>>086789
>Удачи
долбоебу саппорту, который будет сидеть на телефоне и тыкать по GUI готового приложения в надежде перекатиться в девы - удача точно пригодиться. Видел я уже таких, которые "Да главное вкатиться, дальше перескочишь на девы и пойдет". Можешь еще кстати в уборщики вкатиться - порог меньше, кастомеры мозги ебать не будут, гляди, перекатишься.
Хотя что я тут распыляюсь, мне же похуй на тебя
>У меня же - классов 50-100 бывает в микросервисе
Тебе кажется, что это круто, модно, молодежно.
Но на самом деле ужасная практика при формальном её применении (как у тебя), и все кто так когда-то начинал, со временем отходят от этого. Нормальный класс и должен занимать 3-5к строк или больше.
Скажем один большой класс легко прочитать, обычно даже просто сверху вниз, и понять, что он делает. Весь комплект подаётся как одна структурная единица, обычно даже в одном файле. Конспект на одном листке А3 прочитать, понять и поправить проще, чем кашу заметок на сотне стикеров.
Когда ты создаёшь кучу классов, тебе может казаться, что ты дал им всем и всем их методам прекрасные названия, что даже читать их не надо, сразу всё само предвосхищается. Но на самом деле в подобных макаронах даже от крепкого сеньора невозможно разобраться без избыточных для такой задачи когнитивных усилий. Когда приходится скакать по куче классов и методов, реально устаешь. Если же всё это ещё и писал мидл из вкатышей, который относится к коду, как просто к работе, а не как к Творению, который и английский нихуя не знает, поэтому его названия классов и методов не читаемы, даже не смотря на то, что на русском он имел ввиду всё как надо.
Вот эти вот супер-мелкие классы - это доведение некоторого разумного принципа до абсурда.
Удивляюсь кстати когда кодеры упорно пытаются перевести на английский названия исключительно русской специфики, которые русским названиям из предметной области понятны всем, а английским переводом непонятны вообще никому, кроме возможно 1 человека-автора, пока он ещё помнит контекст.
>золотая середина
This. Я лично держу максимальную планку в одном классе - 1к строк, когда этот порог превышен и вижу что уже поднимаюсь выше - начинаю рефакторить сам класс, если не получается опуститься к 1к - начинаю разбивать класс. В среднем обычно выходит по 300-400 на класс.
>>086723
> классов 50-100 бывает в микросервисе, пусть это все еще те же 2-10к строк
Ну это уже шиза, потом когда проект смотришь, да - всё разложено по полочкам, но начинаются бешеные скачки по всем этим файлам раскиданым.
>не чувствуешь что находишься в каком-то мейнстриме и вместе со всеми
Что шарп, что всё остальное современное и хайповое в массах - это никакой не мейнстрим, а днище и простое ремесло для прокорма и сведения концов с концами. И это не от языка зависит.
Вот поцики, которые для коллайдеров, марсоходов и автопилотов говнокодят на С или фортране - вот они на острие, а ты со своим ООП и чистым кодом никогда из болота и не вылезешь. Кто-то должен делать грязную работу.
Да я заметил, как тебе на меня похуй, раз пелену текста такую пишешь. Из-за таких как ты, многие и не вкатятся, потому что ты чухан обосрался когда-то во вкате, теперь всем говоришь, что они не вкатятся. Такие чуханы и дальше на саппорте остаются :)
Главное почаще это пиши.
>html и css я сделал, есть данные, которые должны быть в БД
Наиболее безболезенно все это собрать будет через путхон или пшп, Ты удивишся когда увидишь сколько кода нужно для того что бы просто сделать страницу с регистрацией и с добавлением просто строчки текста и выводом стой строки.
Ну а вообще читай метанит, там все коротко и без воды.
Из книг фримена рекомендую. Ну а так можно на ютубе посмотреть уроки. Если попроще тебе.
> Наиболее безболезенно все это собрать будет через путхон или пшп
Мне это в портфолио нужно, я .net разраб буду
> Ты удивишся когда увидишь сколько кода нужно для того что бы просто сделать страницу
Так этот код для понимания нужен и для того чтобы легко расширять функционал
> читай метанит
Спасибо
>>086852
> Из книг фримена
Большая книга, ладно начну с метанита
Что там можно не понять-то? Чтение автоматически сдвигает текущую позицию в стриме. Можно задать позицию без чтения через свойство Position.
Ну, допустим, я создал объект класса FileStream. Какие методы мне позволить сделать то, о чём ты пишешь? Position только возвращает/устанавливает каретку? А считать данные как?
>обосрался когда-то во вкате
>они не вкатятся
>Такие чуханы и дальше на саппорте остаются
твоя судьба в 3 строчках
>>086898
выше есть простыня с вопросами. Готовься к вопросам по работе CLR, GC, Reflection. Если будешь в норм компанию устраиваться, будут алгоритмы, могут по лит/code wars спросить. А вообще, спрашивают везде по разоному, могут по сиквету задрочить, могут по фронту заебать. Стэк ныне очень широкий.
Я другой анон, правильно понимаю в шары сейчас сложнее вкатиться? Какие альтернативы адекватные альтернативы шарпу порекомендуешь?
Какие подводные?
высокий порог вхождения
У меня тоже самое...
Рынок переполнен, конкуренция за еду
если я что-то и порекомендую, то это может не взлететь в твоем конкретно регионе. Без шуток и смеха, я хотел вкатиться в RoR, но залетел в Java, потом перешел на .NET. Мое имо, почему в .NET не следует вкатываться:
1. 90% всего мира разработки построенно на пропретарном ПО, а как нам известно, мелкомягкие открыли сорсы появлением Core и возможность деплоить на линух (жидко обосравшись, как обычно);
2. СНГ рынок пропитан ссаными WPF/WinForms/ASP.NET (дада, который даже не MVC5 и не Core) - это дичайшей воды хуйня. Кто разрабатывал на ASP.NET < 5 понимает мою боль;
3. Место C# почетно заняло ныне покойного Делфи в шарагах и универах (плохой знак кста), что делает порог вхождения выше, чем без них;
4. Сложности в деплое - линух наше все, деплоить Core на него будет стоить тебе 7 кругов ада.
5. Хоть бы что графики не рисовали, но .NET как курил хуйца, так и курит. По поводу остальных языков - это ни их популярность падает, это рынок расширяется. Если собрать по кускам части .NET5, то в вебе будет мелкомягкие будут в жопе.
Выбирай язык, от которого шишка будет стоять и как минимум несколько вакансий джуна/интерна в твоем регионе. Советую не гнаться за деньгами, как этот додик >>086706, иначе всю жизнь будешь в сапортах сидеть
>>086998
>Какие подводные?
ух ебать ты попал. Это с ++ на # прыгнуть нехуй делать, а тут тебя ждет много сюрпризов. Готов работать с unmanagemend code? Хочу тебе представить InteropServices либу, загняли как нибудь на досуге, теперь, JS-нику, она понравится. Marshal класс пощупай, через тильду попиши что ни будь.
Правильно ли я понимаю ТВОИ НАМЕКИ: ты предлагаешь пересилить себя, изучить порашаTML/css и развиваться в вебе?
Учись пользоваться MSDN
https://docs.microsoft.com/ru-ru/dotnet/api/system.io.filestream?view=net-5.0
https://docs.microsoft.com/ru-ru/dotnet/api/system.io.filestream.position?view=net-5.0
https://docs.microsoft.com/ru-ru/dotnet/api/system.io.filestream.read?view=net-5.0
Да, если хочешь посимвольно при этом читать а не байтами:
https://docs.microsoft.com/ru-ru/dotnet/api/system.io.streamreader?view=net-5.0
> путь фронтенда теперь для меня закрыт
> Решил перекатиться в C#
Нашел куда катиться. Блять как же меня бесят что в вакансиях требуют ASP .NET и вместе с ним html css js сука.
кроме веба работы нигде больше нет. Если совсем мучают html+css, советую посмотреть в сторону ведроида. На крайняк будешь Java знать (различие только в стандарте, J2ME/J2EE/SE). Там работы хватает.
Если бы я сейчас начинал, наверное пошел бы в Swift (я не фанат мака, просто это один из немногих языков, которые я не щупал).
> Язык позор, язык урод
Не согласен. Сам язык мне очень нравится
> растоман
Как тебе найти работу в принципе?
Маня, какие только в стандартах, различия там капитальные. Ведроид и интерпрайсопараша буквально два разных мира, где из общего у них только никому не нужные стд либы.
>кроме веба работы нигде больше нет
Я бы за такую жирноту тебе бы личико почикал в реале на Петровско-Разумовской.
Работы на шарпе ПОЛНО.
Тоже такие мысли есть у меня, ну хз думаю пых оптимальнее, но он язык урод, заебался от неопреленности
> могу решить проблему
А чему тот скрин тогда?
>интересует, что после
Cколько раз еще тебе написать про Read и Position?
И мобильные pay-to-win дрочильни на unity!
var list = (await foo.Bar(param)).ToList();
Что за фронтенд скажешь? Верстать много приходится? И ты упоминал лунукс, из под винды работаешь, или из линукса?
>3 места на инженегра winforms
Лол, а ты супер-прогер типа или что? На двачах такие не сидят. Ты выблядок уровня Jun+ максимум. Если что-то абстрактное дадут, то обосрёшься на раз-два.
Что плохого в том, чтобы за более-менее бабки (100-150к) копаться в легаси и писать хуету, которая просто должна работать? Это самая простая работа. А уже дома пиши тот код, который хочешь.
Ты пишешь словно об идеальном коде/программировании, а по факту ты обсеришься перед каким-нибудь помидором с опытом от 10 лет в разработке, который будет тебя собеседовать.
Просто блять есть два стула.
1: пишешь говнокод за 150к в месяц, тратя 2 часа из 8 рабочих, а остальное время сидишь в соц.сетях
2: в ебейше крутой конторе работаешь за 200к, но въёбываешь все 8 часов, приходя домой ахуеваешь от такой жизни и выгораешь за год-два.
Что именно на шарпах делаешь?
Что именно на шарпах делаешь?
Какое нахуй после ME. Сука ещё раз подобную хуйню спизданешь я тебя выебу в жопу.
если вообще базы нет, то можешь идти. Но там сразу laravel/Yi2 нужно знать, плюс as i know пыхи и верстать могут и в WP могут напрячь и хуй что еще придумают. Но ООП там уебищное, что глаза на лоб вылазят. К примеру - нет дженериков и перегрузок методов, динамическая типизация
>>087137
я же написал, angular
>Верстать много приходится?
У нас есть верстальщики, мне повезло. А вообще, сейчас для фронта это норма.
>упоминал лунукс
На последнем # проекте, до того как он умер, хотели переводить микросервисы на линух, до этого дело не дошло. Пишу на винде
>>087155
от чего ты подгорел? от того, что на десктопе мало вакансий? Так это правда.
>что-то абстрактное дадут
ну давай, посмотрим. А то кроме как пердежа со стороны параши ничего не вижу
>копаться в легаси и писать хуету
тем, что ты хуемразь только о деньгах думаешь. Ты выгоришь и будешь прокликать свою работу, в очередной раз в течении нескольких недель делая правку в одной лишь кнопке.
Хотя если ты в маке где-то работаешь, то тебе не привыкать
>тратя 2 часа из 8 рабочих, а остальное время сидишь в соц.сетях
не пиши пожалуйста, у меня что ни посещение этого треда, так одно разочарование. То тупорылые студенты, то жлобы, которым ойти - это манная небесная за 300кк и 2 часами работы в день.
Если вы идете в ойти за бабками - это не лучшее решение, только зря время и деньги проебете.
Можно ли как-то объявить сразу несколько переменных из массива, как в питоне:
>name, age, country, career = ('Diana',32,'Canada','CompSci')
или на F#
>let (f, b, fu, stfu) = ("foo", "bar", "FU", "WTF?")
Чтобы не писать 4 строки подряд, вместе с типами?
Когда тестишь код, так заёбует строчить, пиздец просто.
Где-то тут покопайся https://libgen.rs/search.php?req=C#9.0+Albahari
Только там на ангельском, а не на понятном.
В переводе, вижу, только продаётся, вот здесь:
https://www.ozon.ru/product/c-9-0-karmannyy-spravochnik-albahari-ben-albahari-dzhozef-251632157/
я думаю не проблема намайнить капиталистоблядкам 1000 р, раз они хотят эти ихние, капиталистоблядские р.
Напиши только, как Read может читать из файла int и char и всё, большего мне не надо. В C++ я могу сделать это очень легко и просто, а тут хуй. В C++ вот так: myFile >> intA >> charB, а в C# какие-то нагромождения для этого надо придумывать или как, я хз.
два чая адеквату
>сли вы идете в ойти за бабками - это не лучшее решение, только зря время и деньги проебете.
В голос. Я пришел в IT ТОЛЬКО за деньгами. Работаю уже 5 лет. Деньги - лучший мотиватор. Программирование вообще не люблю, но у меня получается писать код. Так что свои мантры оставь при себе.
В шарпе ты можешь сделать свои обёртки над читалками файлов и перегрузки операторов и сделать как нравится.
>> myFile >> intA >> charB
Это привычная для крестодауна, но в целом ебически дебильная конструкция, за которую многие кресты и не любят, потому что я вот пытаюсь сейчас понять, как это вообще работает, каков порядок выполнения операторов, что они возвращают, и это нихуя не очевидно, если ты позабыл кресты и долго пишешь на нормальных языках.
Почему ты не можешь сразу написать что тебе надо? Read может читать байты - char это два байта, инт - 4. Но что б не ебаться в стандартной библиотеке есть BinaryReader, у которого есть методы (ReadChar, ReadInt32 т.д.) для чтения примитивных типов из любого стрима.
>А сразу весь файл в стринг можно прочитать?
А если в файле не только строка? Изначальный вопрос был
>Как считывать данные из файла в C#, чтобы при считывании каких-то данных каретка сдвигалась, без записи всего файла в массив?
потом оказалось надо
>читать из файла int и char и всё, большего мне не надо
Удобно и понятно человеку с любым бекграундом по языкам - это то, как сделано в шарпе. ReadInt, ReadDouble и т.п.
А как в крестах - это вкусовщина, доставшаяся в наследство от дедов.
>Если вы идете в ойти за бабками - это не лучшее решение, только зря время и деньги проебете.
Обычно те, кто любит программировать не всегда становятся коммерческими разрабами. Они прогают для себя, лол (знаю таких своих бывших одногруппников двух).
Остальные идут за бабками. А зачем тогда вообще пиздовать в айти?
Я на шарпе сейчас имею жирного клиента на винформс. Зп 120к. Я ПРОСТО НЕДЕЛЮ МЕНЯЮ КНОПКИ, РАБОТАЯ ПО ТРИ ЧАСА В ДЕНЬ, ОСТАЛЬНОЕ ВРЕМЯ ПРОЁБЫВАЮСЬ В ТЫРНЕТАХ, ГЛЯДЯ СЕРИАЛЫ. Спокойно могу пойти работать за 150-200к и выше, но там я буду въёбывать фулл день + после работы буду ахуевать. Нахуй мне лишние 80к, если при своих тратах, я оставляю 90к в копилке? За год лям откладывается. Этого более чем достаточно.
А ты и дальше думай, тугосеря, что разрабы это те, кто со всей душой работают на своих работах. Больше не хочу с тобой общаться, извини.
В сисярпе объекты на объектах и объектами погоняют. Никакой свободы, даже указатели запрещены, а я без них жить не могу. И вообще, в сисярпе просто полностью другая логика.
>даже указатели запрещены, а я без них жить не могу
Указатели там есть и активно используются по необходимости.
Но в целом они не нужны, т.к. есть ref и Span, например.
В целом как-то даже сходу не могу придумать код, который требовал бы именно указателей, и не мог бы быть эквивалентно написан другими средствами языка.
>В сисярпе объекты на объектах и объектами погоняют.
Там есть структуры, синтаксис которых намного приятнее, чем в крестах. И всю логику можно построить на них вместо классов.
Можно вообще писать в стиле С, выделив память под все структуры, которые понадобятся, безо всяких аллокаций классов в непонятных местах в куче. Работать только через стек и рефы и вообще не выделять и не освобождать память до завершения программы.
Учить шарп и развиваться в этом направлении? (десктоп разработка)
Учить пыху и ларавельку и развиваться уже там?
Изучив C# и .NET можно заниматься хоть чем: и десктопом, и мобайлом, и геймдевом, и вебом.
Изучив php с ларавелью ты пропишешь себя онли в вебе.
>Я пришел в IT ТОЛЬКО за деньгами.
На самом деле, это весьма сильное заблуждение, что в IT платят нормальные деньги. Потому что нормальные эти деньги только относительно кассира в пятерочке.
Распространяется это вкатышами из днищевых низкоквалифицированных работ. Но даже хитрый таксист, каблук из достависты или шиномонтажник в сезон уже по деньгам крепко задумается, а стоит ли в айти перекатываться. Потому что вальяжно крутить баранку по своему графику и по деньгам и по личному комфорту зачастую лучше, чем пыхтеть в офисе над легаси и говнокодом вкатышей, упиваясь кофе.
В реальности в IT специалистам платят меньше, чем на аналогичных должностях людям с техническим или медицинским образованием.
Сеньоры в веб-парашах получают 150-200к. Это вроде бы неплохо, вроде бы деньги. Но.
Всякие ведущие инженеры и главные специалисты в нефтянке и нефтехимии, в автопроме, в ростехе и росатоме, ИТРы на нормальных заводах и производствах с опытом 5+ лет, всякие специализированные врачи в частных клиниках получают 300-400к с учётом всех годовых премий и бонусов.
Изучив C++ можно заниматься хоть чем: и десктопом, и мобайлом, и геймдевом, и вебом.
Можно. Но C++ сложнее C#. К C++ лучше приступать имея хотя бы 5 лет опыта на другом языке.
После C# писать на C++ просто неприятно.
Реально как из новой топовой теслы с автопилотом уровня 4++ пересел в дедушкин запор на механике, заводимый толкачем.
Тут соглы, у нас на потоке был хуяндекс таксист, который застал рассвет хуяндекс такси. Он в неделю по 50к делал на батеной калине.
Вкатывальщики в айти такие деньги увидят только после съебывания в дс1, испытательного срока и трёх пересмотров зп.
Мы в вузе с 1 курса начали с плюсов. К тому же ещё и дискретку (которую я ненавидел) прогали на плюсах (которые вообще все ненавидели) и из-за этого у всех отпало желание прогать. Сейчас мне 25 и я вкатываюсь заново! Пиздато, наверно
Согласен, эстетическая красота кода для меня тоже важна. Но я считаю, что если человек берёт под задачу C++, он понимает, зачем он это делает. Выбор инструмента осознанно, а не потому что модно или ниибаццокруто.
>>087529
C++ - самый сложный язык на данный момент, если брать все его возможности. Математику обычно на питоне объясняют.
Если вообще с прогингом не был знаком до вуза, то желание отбивают всякие нафталиновые бабки которые ещё застали перфокарты. У меня норм попался препод, сразу без хуйни на правой паре сказал будете дрочить opengl на плюсах и рисовать треугольники. И весь год делали йоба 3д штуки, что по сути не оторвано от реальной области, хоть и специфичной. А то некоторые начнут сразу про солид, инкапсуляцию и прочее ооп говно затирать людям, которые больше чем лаба1.cpp в своей жизни ничего не видели
блядь, неужели я один такой дегрод что проебал на освоение интерфейсов полтора часа?
Вот есть 2 модели.
public class Company
{
public int Id { get; set; }
public string Name { get; set; }
public List<User> Users { get; set; }
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int CompanyId { get; set; }
public Company Company { get; set; }
}
Вот к примеру у меня есть обьект компании
ид - 1
Наме - Хуепуталы
усерс - пусто
Как мне добавить юзера в такой список?
Подрастешь поймешь
Это же по ЕФ вопрос? Тогда похуй, либо добавляй юзера в лист компании, либо установи юзеру свойство Кампани или КампаниИд. При вызове SaveChanges() все разрулится автоматически.
Да
Типо вот так.
var com = db.Company.Where(x => 1 == x.id).FirstOrDefault();
com.User.Add(usr);
db.Company.Update(usr);
db.SaveChanges();
Так да?
Щас не дома не могу проверить, с мобилы пишу
>А то некоторые начнут сразу про солид, инкапсуляцию и прочее ооп говно затирать
У нас в универе как раз вот так всё и происходит. Сначала было не понятно, ибо даже халло ворлд максимум мог написать языке только на Русском, но потом прикипел и к C, а потом к C++, с ужасом посдавал лабы на ассемблере для интелов, а потом начался ассемблер уже для реалтиме ЦП и немного C# и по остальным предметом уже сам выбираешь, на каком языке лабораторки программировать. Графики никакой не было, только математика и логика.
Но у меня по всей видимости компилятор какого-то хуя думает, что я после base в скобках пытаюсь передать не параметры родительского конструктора, а одноимённые поля родительского класса, раз пишет какую-то хуйню про ссылку на объект для нестатического поля. Пробовал переименовывать поля класса, оставив в покое параметры конструктора, но тогда он выдаёт, что имени в текущем контексте не существует.
Что я блядь делаю не так?
Ну типа. Только если тебе нужно получить сущность по первичному ключу, то лучше делать так:
var com = db.Company.Find(1);
И Update тут по идее не нужне.
>делается это в Шарпе примерно пикрелейтед.
Именно так и делается.
>думает, что я после base в скобках пытаюсь передать не параметры родительского конструктора
Нет не думает, у аргументов метода приоритет выше, именно поэтому при совпадении имен надо писать this, чтобы достучаться до поля.
>пишет какую-то хуйню
Он тебе пишет в чем ошибка, если ты не умеешь читать - твои проблемы.
> ссылку на объект для нестатического поля
Не путай статические поля типа и поля экземпляра типа.
>Пробовал переименовывать поля класса
Методом тыка можно долго тыкать без результата.
>Что я блядь делаю не так?
Не приводишь код, в котором ошибка и текст ошибки. Видимо думаешь, что тут у людей хрустальные шары в которых видно где ты накосоебил.
Дурачишка, формочки твои есть от декстопа до тыпрайза, они везде епт.
Только вместо штмла будешь зубрить его клон- хамл.
Ты убежал не туда, лол.
И кстати, мне надо сделать ввод из одного и того же файла в разные методы, а эта залупа не поволяет мне открыть файл вне методов.
А куда убегать?
Вот есть у меня к примеру Асп нет приложение.
Как писать тесты?
Через вебДривер? Ну типо открываем браузер заполняем форму и посылаем? А дальше получить инфу из контрелера? Все ли прошло хорошо.
Или это совсем разные вещи тестировать фронт и бек?
Я еще не писал тесты но примерно представляю как тестировать контролеры, а вот как тестировать вью и контролеры я не представляю совсем.
Можно мне просто рабочий код, который просто позволит мне считать 7 чисел из первой строки файла в первом методе, 7 чисел из второй строки во втором методе и так далее? Я уже заебался разгребать это говно. Где же мой родной iostream...
2 Ночи я пьян, задача кажется легкой. Но я не понимаю.
7 Чисел из первой строки?
Я так понял нужно взять 7мой символ из каждой строки?
Да. И семь чисел из строк чтобы можно было присвоить ячейкам массивов разных методов. Не числа одной строки, а 1 строка 1 метод, 2 строка 2 метод и и так далее.
Я убей не понимаю.
Ты мб не туда суешь то что хочешь получить.
Ты получаешь стрингу а хочешь массив.
Есть несколько тестирующих функцию методов. Для каждого из них предназначена собственная строка в текстовике. Ввод тестовых данных только файловый. Методов-тестов может быть сколько угодно, но если строк в текстовике меньше, чем методов, то недополучившие данных методы сообщат об ошибке — этот случай обрабатывать не нужно, так и должно быть.
Что такое функция методов?
Я дохуя после пхп переучивался называть функцию методом, и вот опять это во все.
Вот код берет из файла строки и их перечесляет.
А там уже в форъич можно делать что хочешь.
Просто не пойму если нужно просто взять строки нахуй вот это вот все? Сплит линку и все прочие.
Вот недавно читал про Lazy - охуеть, классно, но сегодня мне это нигде не надо, а через полгода я забуду про эту вещь (впрочем я реально не понимаю, нахуя оно, ведь если я не хочу юзать, я просто не выделю память)
И вообще мне иногда кажется что в шарпе фичи добавляют ради фич. Чего стоит 7 способов инициализации массива (ну я столько насчитал).
При том что для кодинга оно нахуй и не надо.. Но вот на собесах не хочется краснеть когда будут за синтаксис спрашивать
и не только язык - еще и эти фреймворки, которых настолько дохуя что даже не знаешь что изучать
Функция в программировании, или подпрограмма — фрагмент программного кода, к которому можно обратиться из другого места программы.
В Москве на для бэкенда-шарписта-джуна выставлено всего две вакансии. Во всех остальных требуют смежные технологии из веба (js, верстка, php и т.д.).
asp.net веб-макаки?
Я хз, что предлагать. Но факт остается фактом: с чистым C# ты нахуй никому не нужен. Чистый шарп вообще никому не сдался. Рынок не тот. Возможно, есть варианты за рубежом, но не в России.
Варианты:
1) Ты идешь в какую-то узкоспециализированную хуйню, где тебе нужна алгоритмическая и математическая база (тогда вопрос, нахуй тебе C#, если ты можешь пойти в DS или аналитики на бОльшую ЗП, работая с более лаконичным и понятным Python).
2) Идешь в гейдев, где опять-таки чаще всего требуется математика, а еще и кучу смежных технологий. В том числе здесь нередко требуют знание других языков (опять-таки вопрос, нахуя ты тогда учил C#?).
3) Работа с базами данных. Нужно очень хорошее знание СУБД (PostgreSQL, MySQL и т.д.) + сопутствующие технологии. Такие вакансии можно по пальцам пересчитать. Плюс максимально тупая, рутинная, профильная (банки, склады и т.д.) работа.
4) Тестирование. В данном случае шарп является лишь небольшим инструментом для написания кода. С таким же успехом тут используется Java, Python и т.д. Здесь вообще не про программирование на C#.
5) Веб. Ну, тут всё понятно. Знание других языков и их фреймворков. Шарп идет как дополнительная галочка, потому что компания пилила проект на нем.
Вы не замечаете одного охуенно здорового слона в лавке, для освоения которого ваш бэкграунд в решетках очень поможет
Ну и нахуя тогда учить решетки, если можно сразу схватить слона за яйца и войтивайти в 2-3 раза быстрее?
слон, это пыха что ли?
нахуй кому этот проект нужон, всем подавай коммершеский опат, как вот ты анон получил опыт?
Так об этом и речь, дебилушка. Нахуя уделять время C#, если в подавляющем большинстве случаев требуется js, php?
Почитай на досуге. Знаю, что это статья на хуйкабу, но там тоже опытные программисты встречаются.
https://pikabu.ru/story/krik_dushi_programmista_vkhod_v_it_8196511
тоже задумался, об этом, на йух этот сисярп
Ну и что, блядь, делать? Забить хуй на шарп?
В любом бэке ты будешь сталкивался с фронтом, дело не в языке.
От города же зависит. Жава это васянские конторы на пыльных васянских стеках
А шарп не васянские конторы? Как там дела обстоят?
Питер.
Чего там запоминать? Пишешь - оно само запоминается.
>>088159
>>088197
>>088262
да ебана, поскрольте вы тред, посмотри в предыдущий. Сколько анонов уже писало, что C# дудка уже спета. Новые делают на более прогрессивных технологиях, старые адаптируют под новую среду. Осталось только говно мамонта и фанатили мелкософта, чтобы влезать в эту залупу.
Учите нормальные ЯП-ы и не ебите мозги, все равно же будете перекатываться, когда пожрать захочется
Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) - мне чот не очень нравится
именно, от конкурентов нужно избавляться
ебало завали чорт
А после использования в одном методе и получении только первой строки, как при использовании во втором методе получить только вторую строку?
https://dotnet.microsoft.com/learn
https://docs.microsoft.com/ru-ru/learn/browse/?products=dotnet
Сейчас я сделал данные в виде текстовых файлов, которые подключаются как ресурсы. Когда данные нужны, они парсятся и используются.
Можно ли как-то сделать так, чтобы парсинг осуществлялся на этапе компиляции? И в коде сразу были бы готовые классы со всеми нужными данными?
Хуй знает чего ты хочешь.
Если ты хочешь получить типа набора каких-то констант - пишешь маленький "компилятор" своих ресурсов, который парсит и потом собирается тебе в .cs - используешь это.
Только вот нахуя? Тем более что каждый раз меняя текстовый файл - ты должен будешь пересобирать свое добро.
Скорее всего, ты хочешь получить некие данные и потом не парсить каждый раз. Если так - просто кешируй и доставай из кеша по мере необходимости.
Собственно, на пике примерно что у меня происходит. Т.е. есть некий "сервер", он занимается типичными штуками сервера: принял соединение, определил протокол, начал обрабатывать соединение, спарсил пакет - кинул его в очередь обработки, если сокет порвался или завершился graceful - отбиндил клиента и закрыл сокет.
Собственно. В чем хуйня. В том, что нужно много писать в базу: пришел пакет - нужно обновить информацию о том что у этого клиента пришел новый пакет. Клиент отключился - нужно обновить информацию, что отключился. И я не представляю как делать это правильно.
Я сделал такую вот залупу: IOContext - это обертка над сокетом - к оно под капотом - хранит сокет и содержит цепочку фильтров. Вокруг этого уже контекста - я создаю ClientContext - он - он в себе хранит сущность из БД которая и должна создаваться-обновляться, короче типа оборачивать логику приложения, чтобы мы не думали ни о каких сокетах.
Собственно - очередями я таки победил перегрузы из-за "ДДОСА", но вот хуйня происходит, если куча клиентов разом обрываются - они все разом ломятся - начинается постоянное обновление базы ыыыы, пизда, может пару минут это дело "висеть", начинаются лететь ошибки по таймауту обновления и т.д. В общем. Как умные люди подобную хуйню решают-то? Что делать? Как быть?
Увидел в паре вот такую вот фигню(прикриплейд). И чет мне оно понравилось концептуально, типа контроллер только маршрутизацией занимается, внутри фичи - можем определить формат запроса, формат ответа, ну и, допустим ту же логику паггинации реализовать, не делая этого в контроллере.
Но возникают вопросы относительно доставки зависимостей. В общем, как я понял в репках - использовался автомапер и MediatR. Я их пока трогать не хочу. С другой стороны - не хочется и засорять Startup - самими этими вот "фичами". Можно конечно - создавать инстансы этих вот List, Add, Update, etc - в конструкторе контроллера, но как-то тоже не хочется.
В общем, как вы, аноны делаете-то?
Как один из вариантов.
Но на постгре - не сильно лучше.
Плюс, допустим для логов и статистики конкретно используется Sqlite но там я логи/статистику кидаю в очередь и отдельный поток раз в секунду достает из очереди и пишет сразу здоровый кусок(до 5000 записей за раз). В таком вот сценарии - вообще никаких проблем не возникает.
Я подозреваю что дело в том, что я чего-то совсем не понимаю и делаю не так.
Знаю, что без кода сложно что-то говорить, но код на работке и его низя показывать.
Мне кажется тебе нужна нормальная серверная бд. У меня было подобное когда я еще в юности пытался реализовать бд файлом на общем сетевом диске и пытался открыть свою программу на несколько компах. Потом я уже узнал что такое в принципе нереально реализовать, только очередью как это сделано в серверных бд.
уже который раз пишу этот пост и я все еще не понимаю как это работает
мне надо например использовать встроенный в кор логгер, ес ли в контролерре например все понятно, просто передаем в конструктор ilogger и у нас магическим образом появляется экземпляр объекта то когда я делаю то же самое в любом другом моем классе я получаю ошибку компилляции Потому что у меня нету блять его! и каким образом спрашивается я должен взять сервис с любого места в программе?v
https://stackoverflow.com/questions/56938429/get-implementing-type-during-asp-net-core-dependency-injection
"So simply add ILogger<CustomClass> to its constructor "
да нихуя блять, нихуя это не работает
>>088209
Вход в IT в 30+ - это нормально само по себе.
Однозначно нет каких-то когнитивных препятствий для усвоения новых знаний. Я бы сказал, что мне сейчас в 35 учиться проще, чем в 20, потому что я более усидчивый, я больше понимаю как это дело правильно организовать, у меня намного больше понимания, зачем это нужно и где это применить.
Но проблема тут в другом. В IT на самом деле нет повышенных зп относительно других сфер. Ведущий специалист, мидл, старший менеджер и т.п. в любой сфере в пределах одного города (1кк+ жителей) будет получать примерно одинаково. Тут речь конечно не про номинальное название должности, а про наличие опыта, навыков и компетенций эквивалентных 3-5 годам работы на данной специальности.
И если ты в 30 лет не смог добиться ничего в своей текущей сфере деятельности, то скорее всего у тебя очень серьезные проблемы в части интеллектуальных способностей, характера, софт. скиллов или каких-то базовых навыков личной эффективности (способности сосредоточиться на задаче, собранности, способности к планированию и выполнению запланированного). В наиболее безобидном виде это выражается в том, что человек полдня сидит на работе в интернете, но потом всё же приступает к делу. Но кто-то не способен заняться делом, пока не получит сапогом по жопе. И как только образ сапога забудится, забросится и дело. То, что кажется элементарным и посильным даже школьникам средних классов, даже для многих взрослых людей часто оказывается невыполнимым. Реально, есть не мало людей, которые по каким-то причинам не способны приходить на работу не опаздывая. Есть люди, которые просто не способны ни записать, ни запомнить задачи, которые им ставят. Им можно дать одну задачу, чтобы он её делал и контролировать ход выполнения (не реже 1 раза в 2-3 часа), но если попытаться дать такому человеку 2-3 задачи, чтобы он сам спланировал их выполнение, он не справится, он забудет часть задач, он забудет сроки или приоритетность, он забудет детали. Он не способен записать их. Даже если ему сказать пиши, он будет что-то писать, сам не понимая что, но явно не то что надо. И это не какие-то умственно отсталые. Серьезно, есть люди не способные к этому и среди людей с ВО в крупных компаниях. Есть люди, не понимающие организацию и субординацию, не понимающие кому и что можно говорить.
Может быть ты всё это время занимался не тем, а IT - это твоё. Может быть. Но скорее всего ты неудачник, необученный жизни.
>>088209
Вход в IT в 30+ - это нормально само по себе.
Однозначно нет каких-то когнитивных препятствий для усвоения новых знаний. Я бы сказал, что мне сейчас в 35 учиться проще, чем в 20, потому что я более усидчивый, я больше понимаю как это дело правильно организовать, у меня намного больше понимания, зачем это нужно и где это применить.
Но проблема тут в другом. В IT на самом деле нет повышенных зп относительно других сфер. Ведущий специалист, мидл, старший менеджер и т.п. в любой сфере в пределах одного города (1кк+ жителей) будет получать примерно одинаково. Тут речь конечно не про номинальное название должности, а про наличие опыта, навыков и компетенций эквивалентных 3-5 годам работы на данной специальности.
И если ты в 30 лет не смог добиться ничего в своей текущей сфере деятельности, то скорее всего у тебя очень серьезные проблемы в части интеллектуальных способностей, характера, софт. скиллов или каких-то базовых навыков личной эффективности (способности сосредоточиться на задаче, собранности, способности к планированию и выполнению запланированного). В наиболее безобидном виде это выражается в том, что человек полдня сидит на работе в интернете, но потом всё же приступает к делу. Но кто-то не способен заняться делом, пока не получит сапогом по жопе. И как только образ сапога забудится, забросится и дело. То, что кажется элементарным и посильным даже школьникам средних классов, даже для многих взрослых людей часто оказывается невыполнимым. Реально, есть не мало людей, которые по каким-то причинам не способны приходить на работу не опаздывая. Есть люди, которые просто не способны ни записать, ни запомнить задачи, которые им ставят. Им можно дать одну задачу, чтобы он её делал и контролировать ход выполнения (не реже 1 раза в 2-3 часа), но если попытаться дать такому человеку 2-3 задачи, чтобы он сам спланировал их выполнение, он не справится, он забудет часть задач, он забудет сроки или приоритетность, он забудет детали. Он не способен записать их. Даже если ему сказать пиши, он будет что-то писать, сам не понимая что, но явно не то что надо. И это не какие-то умственно отсталые. Серьезно, есть люди не способные к этому и среди людей с ВО в крупных компаниях. Есть люди, не понимающие организацию и субординацию, не понимающие кому и что можно говорить.
Может быть ты всё это время занимался не тем, а IT - это твоё. Может быть. Но скорее всего ты неудачник, необученный жизни.
блять да ответе хотя бы кто нибудь, хотя бы что-то ответе наконец хотя бы что "не это не работет" потому что у меня уже шиза развивается, везде я вижу те же посты, везде пишет что это работает ВОТ ТАК но когда пробую низхуя не работает, вижy примеры, повторяю они не работаю, я блять не понимаю что происходит вообще
Ты должен то что тебе нужно добавить в список используемых сервисов. В asp - в классе стартап конфигуреАппликатион в коллекцию сервисов добавь нужное.
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped<IMyDependency1, MyDependency1>();
services.AddSingletone<IMyDependency2, MyDependency2>();
//Etc...
}
ну я сделал, ничего не поменялось, у меня все еще ошибка компиляции
>>089399
Ты троллишь?
Ты понимаешь, что DI в любом виде это не магическая штука, которая просто так сама все везде разрулит?
Прочитай про сервис-локатор, что это, как работает, зачем нужно и как его делают руками. Там, блин, никакой магии нет. Особенно в реализации от майков, там просто несколько коллекций и через рефлексию достаются зависимости, потом в коллекции ищется нужная, если ее нет - кидаем исключение, есть - в зависимости от лайфтайма - создаем объект, который будет жить вечно, или не очень.
Есть много задач, где нужно опрашивать какой-то сервис в фоне с определенным интервалом или делать что-то только в определенное время.
Для всех этих задач вроде как подходит таймер в качестве решения.
Но я что-то не уверен, что пихать на любой чих таймер это самый удачный вариант.
Как еще можно было бы сделать?
Блядь, а почему нет-то?
Ну, не хочешь таймер, далай вот так вот: Сущность триггер с методам TryShoot, делегатом ShootDelegate и условием выстрела и свойством - можем ли еще стрелять + и отдельный поток, который хранит коллекцию этих триггеров, проверяет. Соответственно - как работаем? А вот так, у тебя есть сужность: TriggerProvider - у которого ты берешь триггер, он там под капотом - регистрируется в хендлере, затем - в триггер ты добаляешь обработчик выстрела. Дальше - дело техники. Дерзай.
Ну я сделал как ты показал, ну я могу вызвать метод из класса как у тебя, но я его и раньше мог вызвать, от этого класс сам себя не инициализирует,
а вот именно при попытке вызвать конструктор и есть проблема, и то что ты написал ничего не решает вообще
конструктор все еще требует передать логгер в когда вызываю конструктор в качестве аргумента
Где я могу запускать приложения на c#?
В облаке
Чел. Суть всей этой хуйни, что ты и не должен вызывать конструкторы. Ты создаешь нужные тебе интерфейсы, создаешь имплементацию, все, теперь DI - разруливает за тебя создание объектов - ты просто сказал что тебе нужно, сам руками - не создаешь объектов, если нужно - их за тебя создаст хост.
И вообще, сам подумай головой. Каким блядь образом любая реализация DI - должна подсунуть тебе зависимости? В те же контроллеры оно попадает не из воздуха, под капотом вот такая хуебесия происходит при инициализации:
https://github.com/dotnet/aspnetcore/blob/main/src/Http/Routing/src/Builder/EndpointRoutingApplicationBuilderExtensions.cs
https://github.com/dotnet/aspnetcore/blob/5577c0d128fd30d800f434e6a629978916f7d64e/src/Mvc/Mvc.Core/src/Builder/ControllerEndpointRouteBuilderExtensions.cs#L26
И благодаря ей - твой логгер, бд или сервис - попадает в контроллер. Если ты уберешь атрибут Route - все, блядь, ничего туда не попадет и объект контроллера не будет создан сам по себе. А почему? А потому что блядь, как фреймворк должен узнать куда нужно роутить запрос? А вот никак. Он берет эту информацию из метаданных сборки, либо если ты руками сам что-то пропишешь. Все, блядь. Магии нигде нет.
Значит не подгрузил нужные символы, а из метаданных собрать не получилось. Бери райдер и смотри.
Действительно ли в шарпе есть библиотеки на все случаи жизни?
Попробуй в виртуалке поставить студию с ломаным решарпером и попробовать им
Ну или на нормальную систему, но я прост параноик
Хочется найти работу, поэтому активно перекатываюсь на шарпы. Опыт программирования есть, поэтому синтаксис шарпа не представляет проблем, не нужно мне читать про циклы или переменные. Открыл для себя книгу "C# для профессионалов. Тонкости программирования. Джон Скит". Профессионалом себя не считаю, но в книге упускаются стандартные вещи вроде циклов и сразу переходят к тонкостям, это мне понравилось и я её почитываю.
Расскажите, пожалуйста, что нужно знать C# бэкенд разработчику для работы хотя бы junior'ом? Нашёл Roadmap(Link https://raw.githubusercontent.com/MoienTajik/AspNetCore-Developer-Roadmap/master/aspnetcore-developer-roadmap-printable.png), насколько он правдив?
Хочу с сентября либо залетать на курсы Epam'a (такая бел. контора), либо ещё куда то. Реально ли за месяц выучить нужные технологии ебаша по 6-8 часов?
Сори за такие вопросы, я знаю что они многим приелись, но в силу некоторых причин я хочу их задать вновь
upd шапку читал, мне кажется там не совсем то
upd2 сори если не внятно пишу, очень устал и в целом немного сломлен
Чтобы джуном залететь - все оч индивидуально и зависит сокрее от конторы куда вкатываешься.
Но как я вижу, что нужно знать джуну чтобы иметь больше шансов:
1. Алгоритмы, структуры данных.
2. Упаковка/распаковка, апкасты-даункасты,
3. Работа с потоками: синхронизация, Interlocked, volatile и т.д.
4. Асинхронщина. Что, где, как, зачем.
5. SQL(нормальные формы, индексы, умение составлять запросы, писать хранимки, разбирать планы запросов)
6. Ado.Net+EF(core)
7. Linq
8. Работа с сетью(на уровне: в состоянии написать самостоятельно IRC-сервер по описанию протокола, который 10к коннектов будет нормально держать)
9. Работа с HTTP(как запрос выглядит, что сервер с ним делает, что отдает и когда)
10. Собственно сам фреймворк. MVC+WebApi
11. Один-два JS фреймворка на уровне: в состоянии сам формочку какую-то добавить и сделать чтоб она что-то делала.
Как-то так. Да.
Относительно картиночки. Там список штук, которые нужны уже устроившемуся, чтобы быть конкурентноспособным и прыгать по галерам. Пока первую не найдешь - не следует на все это разом распыляться. Тем более, что завтра еще что-то выкатят. Мой списочек - основы, которые более-менее везде нужны, если ты бекендер: и любителям всяких модных молодежный рестапишек и на завод, где ты будешь сокеты ручками трогать.
А не слишком ли дофига надо знать и уметь?
Спасибо за ответ.
А место JS есть смысл подучить TS? Мне он как то больше прельщает. Или лучше не привередничать?
запускаются при помощи mono
.
Come home, white man.
Пошли лучше на c# в sandbox программировать, там создавать гейммоды или просто моды. Хочу сделать ремейк PCMod2. Можно будет сидеть на мейлаче не выходя из игры.
https://www.youtube.com/watch?v=kjISD_zbbjc
Если вам скучно, на досуге можно воссоздать свои любимые игры детства на шарпе и source 2. Да и просто пилить петпроджекты в 3д пространстве гораздо веселее.
модифицируемо абсолютно все. уебищная модель лишь плэйсхолдер
https://www.youtube.com/channel/UCiwPN0BtzU2s2lcHJgig3eQ
Влиться в проект, не зная языка? Это как? Может быть, есть какие-нибудь актуальные книги для изучения C#?
Для изучения шарпа сгодится и книга 10-20летней давности. Но ты нахуй никому не нужен будешь с знаниями языка, еще и выученными по дебилу из метанита, который не умеет даже пересказать правильно материал. Когда-то он вообще копипастил текст из других источников.
Какая же ты тварь, токсик и абьюзер. Я и так тян и мне сложно влиться в коллектив, а тут еще ты со своей негативной энергетикой! Почему такие мудаки вообще сидят в разделе для разработчиков?! Куда смотрит модерация?!
Анон, если по делу, то я не представляю, как можно вкоктиться в проект (да еще и зарубежный) без хоть какого-то минимального бэкграунда. Последую твоему совету и скачаю Шилдта (хоть книга и по C# 4.0). Метанит, так уж и быть, уберу - мне его советовал преподаватель.
>Какая же ты тварь, токсик и абьюзер.
Да мне похуй, хоть мать тереза ты. Ярлыки развешивай в другом месте.
>как можно вкоктиться в проект (да еще и зарубежный)
В зарубежный как раз вкоктиться проще всего. Открываешь гитхаб/битбакет, находишь понравившийся проект и вкатываешься. Вероятность, что они будут знать русек около 0. Или ты из тех, кто думает, что все всё на свете знают в программировании на проектах?
>но у меня возникает ощущение, что я учу возможности языка, а не обучаюсь программированию
>без хоть какого-то минимального бэкграунда
Ты уже определись что ты хочешь. Знание языка вторично. Если у тебя нормальная программа обучения, то тебе язык программирования вообще не нужен, кроме пары базовых конструкций типа if, while.
Ты в голом консольном приложении пытаешься использовать вин формы. У проекта есть зависимости, в которые ты должен подключить System.Windows.Forms.dll или не еби себе мозг и сразу создай проект типа Windows Forms из готового шаблона.
Вот столько лет разрабатывают эту студию, а разные компоненты не могут взаимодействовать друг с другом. Вот откуда я должен знать что и где выбирать? Если возникла такая ошибка, то неужели так сложно было сделать, чтобы студия сама всё подключила? Почему я должен создавать по 100500 проектов, пока мой код не подойдёт под необходимые условия?
И эти скоты ещё как назло меняют интерфейс в каждой версии. В книге интерфейс 2017 студии, а у меня 2019 и я вообще не могу ничего сопоставить. Миллион одинаковых проектов, которые различают одной буквой или значком. Откуда я должен знать что там в них зашито? Почему нельзя всё это проще сделать?
>Если возникла такая ошибка, то неужели так сложно было сделать, чтобы студия сама всё подключила?
Так умеет делать райдер, причем он еще умеет классы подключать из nuget пакетов и юзинги сам дописывает. Студия же тебе предложила тот же самый вариант решения, но сделать вручную.
>Почему я должен создавать по 100500 проектов, пока мой код не подойдёт под необходимые условия?
Потому что должно быть хоть малейшее понимание как с ничего создать минимально работающую программу нужного типа.
>В книге интерфейс 2017 студии, а у меня 2019
Интерфейс студии почти не изменялся с 2012.
>Миллион одинаковых проектов, которые различают одной буквой или значком.
Шарп пытается усесться на 10 стульях.
Я очень сильно сомневаюсь, что Троелсен показывал бы MessageBox без объяснения как его заставить работать. Может ты еще и скипнул объяснения?
Я раньше на РНР программировал. Там создаешь простой текстовый файл и всё работает. Ни надо ни какие проекты создать. Нужен только текстовый редактор и веб-сервер.
>Там создаешь простой текстовый файл и всё работает.
Может тебе тогда взять любой другой язык, который работает через интерпретатор, а не компилятор? Питон например?
В голос!
То есть тебя не смущает, что вин формы - это по сути фронтенд в вебе? Ты этого не понимаешь? Ты точно также можешь писать на C# голый бекэнд.
Ну вообще с помощью гугла разобрался. Проблема была в том, что я выбрал проект "Консольное приложение", а надо было "Консольное приложение (.Net Framework)". Потому что первый вариант - это кроссплатформа на Core и там нет Windows.Form.
Вот откуда это новичок должен знать?
Там нажимаешь "Добавить ссылку" и список пустой, а в проекте .Net Framework выдаётся большой список всяких разных модулей.
Потому что нужно изменить сдк проекта или напрямую подключить либу и дергать нужные методы. Студия тебе не поможет не в первом, не во втором.
Десктопные приложения более интерактивны, а у веба постоянная задержка в общении между клиентом и сервером. Да и для моей задачи нужно десктопное приложение с возможностью графики (вывод в прямоугольную область массива пикселей).
вялый бамп
я в этом треде решеток сижу года 3 точно, такого высера, как сейчас я еще никогда не видел. 3 типа сообщений:
1. Нытье, как вкатиться;
2. Высеры даунов в консоли с русскими комментами (первый признак дауна);
3. Вопросы в стиле "В строчке "hui" заменить на "jopa" от убогих студентов, не умеющих гуглить.
Что это нахуй за понос в этом треде? Где аноны, с которыми перемывали принципы работы CLR? Или процесса компиляции? Перекатились в другие языки или забили на тред из-за такой хуйни в нем?
Пиздец, ну серьезно, вы хотя бы пытаетесь гуглить, прежде чем высирать свои тухлые посты?
Пошел на хуй, нытик. Иди маме пожалуйся, чмо. Чтоб тебя больше здесь не видел.
Не забудь написать, что больше сюда не зайдешь, клоун.
На фреймворке студия умеет, а райдер ни на фреймворке не на коре не могет. А если говорить не о извращениях с окнами в консолях, то и тот и другой могут находить нугеты всяких там ньютонсофтов и агилитипаков.
Сижу тут более 5 лет, всегда были студенты, обливания говном и холивары govno vs mocha, а на вопросы сложнее "почему не компилируется" тут никогда не могли ответить.
деградация, всего и вся
Я сижу в нескольких тредах. Везде вопросы одного уровня. А принципы цлр - какая-то унылая тема.
И юзинги сама может подключать при неполном наборе имени класса?
Пример с вин формами с моей стороны был хуевый
Странное у тебя заключение.
Ты про это?
Райдер платная (есть 30-ти дневный триал, который раньше можно было сбрасывать, хз как сейчас). Вижуал студия бесплатная в коммунити редакции.
На самом деле с бесплатностью вижуал студии обман, она не бесплатная, а тебе дают временно попользоваться, если это не коммерческий проект. Для коммерческой разработки надо покупать.
Сделай игровой движок для адвенчур тридешный. Базарю.
Там-то и не так много надо:
Ввод-вывод, очередь событий, загрузка-выгрузка ресурсов, рендер на OpenGL/Vulkan/DirectX, звук, систему скриптов, звуковую систему, можно еще ебануть свою сетевую систему. Все делай в виде плагинов, чтобы если что монжо было без перекомпиляции - подкинуть нужную DLL и добавить функционал/починить существующий.
Базарю. Работы на 2 недели по 2 часа в день.
>>092227
я готовился к первой работе 2 года назад - были холивары на тему способов компиляции, ngen, почему main не может быть приватным, обсуждали MSIL после дизасемблирования. Посмотрите на тред сейчас. Это же просто цирк уродов. Я смотрю на этот тред, как на выцвевшую от говна фотографию минувших дней. А эта публика, просто зашквар, сразу видно обосранных до ушей вкатышей типа >>092252. Я не думаю, что сфера настолько утонула в говне, что всякий мусор пытается перекатиться (судя по содержанию постов даже не понимая, на чем и для каких задач они пытаются использовать язык). Я с пол года назад начал осваивать TypeScript, в JS треде есть хлебушки, но далеко не такого уровня. Крик души просто, сидишь и кидаешь facepalm
>>209240
Пиздишь.
Для организаций
Visual Studio Community может использовать неограниченное число пользователей в организации в следующих случаях: в учебных аудиториях, для научных исследований или участия в проектах с открытым кодом.
Для всех прочих сценариев использования:
В некорпоративных организациях Visual Studio Community могут использовать до 5 пользователей. В корпоративных организациях (в которых используется более 250 ПК или годовой доход которых превышает 1 млн долларов США) использование запрещено, за исключением случаев, перечисленных выше (открытый код, научные исследования и учебные аудитории).
Ты дурак?
>были холивары на тему способов компиляции, ngen, почему main не может быть приватным, обсуждали MSIL после дизасемблирования
Это темы уровня вкатыша, причем тимлид должен линейкой по рукам бить за попытки применить из оного.
>Я с пол года назад начал осваивать TypeScript, в JS треде есть хлебушки, но далеко не такого уровня.
Прямо сейчас:
- как пройти собеседование на джуна/трени
- var в 2021
- примитивное шифрование
- шутки про логику предикатов, которая учится на первом курсе
- спросили что такое express, кинули ссылку на него в npm
- иммутабельность строк
- попытки прострелить себе ногу с undefined
- jquery в 2021
- вопросы на вопросы
И так далее. Все темы уровня вкатыша. Аноны сами угорают с некоторых топиков. К тому же, TypeScript учится, ну не знаю, неспеша за неделю при знаниях C#/JS.
Съеби с треда, клоун.
Так это не обман, обычные плюшки для разработчиков. Так почти со всеми продуктами от M$. Например, M$SQL. Сервер для разработчика бесплатный, но лучше не гугли сколько стоит сервер для прода и почему с него бегут на постгрес, где тулзы для разработчика платные.
>>092462
Опенсорсом сыт не будешь. Для коммерции все равно нужно использовать professional/enterprise. Причем бывают говно-проекты, которые еще и не сбилдить без enterprise или не открыть из-за обилия csproj в солюшене. Занятно, что подписка на Visual Studio без решарпера дороже Rider.
>Это темы уровня вкатыша
ты меня решил зажирнить? У любого мидла спрашивают по GC, мемори ликам, оптимизациям. Ты это долбоебам, которые на русском комменты пишут можешь затирать.
>за попытки применить из оного.
попытки понять, как работает под капотом? Дальше не читал, понимая кто мне пишет
Анон, в чем смысл этого треда на данный помимо помощи вкатышам по формочкам, которые умерли 10 лет назад? Где блять интересная и позелная информация? Я раньше вайнил на даунов, которые на # пытаются в unmanagement код писать, абузеров Marshaling-а, которые пытались создавать свестелки-перделки, типа p2p клиентов и блокчейнов, думал что это дно, но не перестают стучать снизу.
>У любого мидла спрашивают по GC, мемори ликам, оптимизациям.
У меня не спрашивали. Я прошел много собесов в бодишопе. На помидора вообще не одну из выше озвученных и еще выше тем не спрашивают, кроме оптимизации в контексте какой-нибудь конкретной задачке в блокноте.
>за попытки применить
>попытки понять
Улавливаешь разницу?
>Дальше не читал, понимая кто мне пишет
Переход на личности.
>в чем смысл этого треда
Давай подумаем. 1,5 сотни анонов в треде. Не только я пишу с нескольких айпишек. Т.е. популярность двача около нуля. Разбираться в узкоспециализированной технологии никто не будет бесплатно. Нормального качества статьи и обучающие курсы только платные. Книги всегда платные или по блату. Даже если ты нашел бесплатную статью на каком-нибудь медиуме, их пишут за деньги. На SO помогают за репу, а потом показывают эту репу при трудоустройстве.
Так как борда анонимная, мне никто не мешает прибежать в тред и высрать любое утверждение типа этого кадра >>081356
двачую адеквата
Нельзя. Я не разрешаю.
>в бодишопе
с этого и стоило было начинать
>Улавливаешь разницу?
то, что я перечислил с MSIL - это принципы работы .NET, которые применяются неявно. Что у вас там в бодишопах лиды присекают, я хуй его знает, но это классика, это знать надо
>Переход на личности.
Осознавая глубину глубин обитателей этого треда можно легко дать оценку собеседнику буквально по нескольким строчкам
>1,5 сотни анонов в треде
Но это же блять не "Как вкатиться тред". Это тред по C#. Так давайте обсуждать C#, а не высирать пасты из лаб шараг. И мое нытье было относительного того, что имо аудитория треда перевелась и уровень просел. Раньше +- анон задавался вопросами более глубокими, чем сейчас.
Так или иначе, это мой консерн и еще один бесполезный пост в этот тред.
>Что у вас там в бодишопах лиды присекают, я хуй его знает
Бодишопы ничего не спрашивают, они перепродают программистов в иностранные организации, в которые хуй попадаешь без нескольких определенных сертификатов хотя бы минимального уровня типа AWS Certified Developer - Associate. Их цена 150-300 баксов за попытку и надо пересдавать раз в несколько лет. Причем это дерьмо надо знать .NET разработчику на ебанутом уровне аля transact-get-items в DynamoDB может содержать до 25 объектов до 4 МБ за реквест. На архитектора вопросы еще ебанутее: snowmobile длинной 45 футов для перевозки 100 петабайт на блок за неделю, новый сервис бтв. И это только начальный уровень, на продвинутом уровне все варианты ответа правильные (простыня текста), но надо выбрать самый правильный. Твое обучение TypeScript покажется цветочками.
>Так давайте обсуждать C#
Довольствуйся вопросами уровня "почему у меня не работает IoC", которые тоже раньше были, ну или "jquery в год-нейм" раз тебе фронтенд нравится.
>Так давайте обсуждать C#
Не давай. Я вот мудак, который хочет нащупать ПРАВИЛЬНЫЙ принцип написания кода, но меня обычно игнорят тут и хуй знает почему. А я-то всего лишь хочу понять: А как делать так, чтобы не просто сделать, а сделать заебись и удобно и не только мне? Вот допустим - дед мне на работе говорит: нахуй лямбды, непонятно и вообще, а потом я смотрю код другого деда и там лямбда на лямбде и лямбдой погоняет, и если что-то нужно поменять - меняется одна лямбда где она нужна и все, при этом код очень даже понятный выходит и нет никаких миллионов служебных классов. Или события - вроде ниже связность, но куча проблем связанных с ритуальной хуйней, плюс утечки, плюс еще разной хуйни. Или кортежи - а надо ли, ведь из-за кортежа возвращаемого из метода - у нам даже на широченном мониторе - может все нахуй уехать(ну, сейчас это отпало правда, потому что появились божественные рекорды, которые можно в одну строку объявить). И вот куча такой хуйни.
Но спрашивать в нуботреде - такое. Потому что там - люди из разных языков, и часто одним словом могут разные вещи называться, либо наоборот - одно и то же по разному обозвали. Плюс там многие - как раз именно совсем практическую часть рассматривают, а мне интересно нащупать тот оптимальный способ написания кода, который с одной стороны - лаконичен, с другой - удобен, с третьей - понятен будет даже нубу.
мне от твоего тухлого поста тошнить еще больше стало, чем от высера вкатышей
>Что у вас там в бодишопах лиды присекают
>Бодишопы ничего не спрашивают, они перепродают программистов
зачем ты мне концепцию бодишопов рассказываешь? Я про лидов в этих командах спрашивал. И нахуй ты мне простыню про AWS тут выкатил, причем с невнятными вопросами и без конкретики? Вопросы с оптимизациями реквестов в NoSql от AWS ты считаешь заоблачными? И зачем ты пишешь вопросы архитекторов, если ты даже associate сертификат не осилил?
>Их цена 150-300 баксов за попытку и надо пересдавать раз в несколько лет
3 года сертификат валидный, если что. Если бы ты его прошел, ты бы это знал
И вообще, зачем мне эта простыня про AWS? Или тебе про Azure DevOps начать стелить?
>Твое обучение TypeScript
я привел степень сравнения, причем тут TS? То, что этот тред полон говна и тупых вопросов не отменяет того факта, что даже в ссаном JS треде задают более конкретные вопросы, приближенные к жизне. Но опять же, это мое имо. Если у тебя в JS треде только вопросы про Jquery, то земля пухом, продолжай дальше вкатышам помогать с формочками
>>092970
на каждом проекте свой code-convention, которого нужно придерживаться. Кто-то вообще алиасами не пишет, кто-то в одну строчку все хуярит. Везде все по разному.
>Вопросы с оптимизациями реквестов в NoSql от AWS ты считаешь заоблачными?
Я давно понял, что ты потерял нить.
>даже в ссаном JS треде задают более конкретные вопросы
Не задают, пруф со списком выше.
C# медленнее, чем С++.
Всякие вулканы подключались с помощью nuget. Примитивный Bitmap из винформ никуда не делся. Добавили много нового, математика на флотах например.
>или на ересь 2092054 (You) вообще отвечать не хочется
Нет уж ответь! Как на еф сделать что бы работало как на пике? А то такой монструозный фреймворк, а как в сторону от .Where().Select(), то все - жидкий пук. Да при относительно сложных фильтре+сортировке приходится sql писать руками, ибо сгенерированный ефом работает неприемлемо медленно.
Нахуя сеньеры-помидоры выбирают EF, когда есть Linq2db и dapper загадка.
>а как в сторону от .Where().Select(), то все - жидкий пук
Все так. Доп запрос, raw query или хранимки пишут. Мне один извращенец из другой компании показывал как они через атрибуты их мапят или сами свое экспрешин деревья написали с бледжеком и мозгоебкой.
>Нахуя сеньеры-помидоры выбирают EF, когда есть Linq2db и dapper загадка.
Не выбирают EF, на маломальски здоровом проекте адо.нет + даппер.
Я умею только в меню студии добавить модуль. Собственно из-за этого и решил учить C#. Если бы мне нравилось маяться с подключением кривых библиотек, то остался бы в С++.
Тебе все равно нужно маяться с С++, потому что ты не можешь например дергать любую API из того же DirectX напрямую из C#. Придется дернуть через С++, обернуть в библиотеку и вызвать через интероп из C#. Ну или сделать как в Unity, свой компилятор C# в C++. Зависит от задачи.
Графические либы C++ тоже не часть стандартных либ.
Ты вопрос конкретнее задай. Графика понятие растяжимое.
А зачем ему его дергать, если можно взять обертку и пользоваться, как все и делают?
>>093082
Ну так добавь, лол. Что тебе мешает, клацнул правой кнопкой на зависимости, ввел имя пакета - добавил. Все.
Для OpenGL - OpenTK
Для директИКС - SharpDX
Для абстрактной графики - SDL/SFML и тот и другой - имеют обертки для шарпов.
>А зачем ему его дергать, если можно взять обертку и пользоваться, как все и делают?
Так я хз, что ему нужно.
> Можно ли с помощью .Net Core создать графическое приложение, которое будет выполняться во всех ОС?
Во всех это в каких? Вот на принтере своя ОС самописная. Оно должно там тоже выполняться? Если ты про Win+Lin+OSX - можно.
Ну, на самом деле я не знаю прямо наверняка, просто когда подобное нужно было мне - только такой способ смог нагуглить.
Сделал уже
Но ведь везде написано, что .Net Core - это новая платформа, но не поддерживает графику. Простой .Net - устаревшая платформа, но есть поддержка виндовских библиотек типа WinForms и WPF.
.NET Framework - устаревшая технология, получает только секьюрити апдейты пока винда с ним на бортом не выйдет из саппорта.
.NET - переименованный .NET Core. Поддерживает графику, либы с графикой можно юзать на нем, поддерживает WinForms и WPF.
>3) Работа с базами данных. Нужно очень хорошее знание СУБД (PostgreSQL, MySQL и т.д.) + сопутствующие технологии. Такие вакансии можно по пальцам пересчитать. Плюс максимально тупая, рутинная, профильная (банки, склады и т.д.) работа.
Чиго блядь? Таких вакансий хоть жопой жуй. Типичный ынтырпрайз.
Но тут надо уточнить, что все сейчас уходят с уебанских winform на на модные JS фреймворки. Так что совсем без знания js не обойтись.
Блять, анон, я с тебя хуею.
Так должно быть. Само добавит ссылку на Microsoft.WindowsDesktop.App.Ref
Или можно добавить UseWPF и оно само поменяет на wpf.
Единственное, что я понял, Core - это сырая и обрезанная штука, которая ничего не может. Будут лучше писать под Framework 4.7 и не выделывается всяким новомодным.
В csproj писать, я же объяснил. Я тебе показал три разных примера как можно заставить работать винформы/впф на .net 5, но так как тебе надо еще консоль показывать (по дефолту выключена), я еще дописал DisableWinExeOutputInterface.
Ну вроде заработало.
Получается мне надо каждый раз шаманить, чтобы запустить такую прогу? Я ведь уже завтра забуду все эти параметры.
> Получается мне надо каждый раз шаманить
Открываешь консолечку и пердолишь туда:
> dotnet new winforms
Не надо тебе ничего шаманить, делаешь как чел выше написал или в визуляке просто выбираешь шаблон проекта для винформ. Может в новой визуляке, которая скоро выйдет, добавят больше удобств, потому что сейчас приходится некоторые вещи делать руками.
Просто мертвый язык нахуй.
Мы тебя выслушали.
Если работы нет, то какого лешего стоит мне открыть резюме - как начинаются дудосы моей почты, телеги и звонки в с 9 утра до 10 вечера с предложениями пройти собес?
Да и на первое место буквально с полпинка попал: откликнулся - пришел на собес - принят.
4 года работаю - хуй
Господи, какой же ты еблан. Он же написал
>за 1,5 года ленивого вката в C#
Нет работы для джунов. Идиоту понятно, что мидла с руками и ногами оторвут. Более того - там уже и твой стек не важен (например, если собеседуешься в крупняк).
Ты наверно в ДС живёшь и можешь лично придти, а как быть тем, кто живёт в провинции?
Некоторые говорят, все программисты могут работать на удалёнке, а что-то никто на удалёнку не берёт. Только офис!
Дохуя умный блядь?? Без опыта сможешь найти работу, или только пиздеть, и выебываться мастак?? Москач ещё небось какой-то...
Тогда почему ILDasm.exe - это дизассемблер, если в exe файле (который мы в утилите-то и открываем) и так содержится IL код, который просто в программе отображается. То есть мы открываем в утилите exe файл, содержащий IL, а не машинный код, тогда в чем заключается дизассемблирование?
В чем я не прав или что не так понял?
В экзешника машинный код + всякая мета херня по типу контрольной суммы. В экзешник можно вшивать ресурсы, например картинки. Теперь представь, что вшили не картинку, а байткод.
IL - это псевдоязык виртуальной CLR машины, которая смотрит эти инструкции и выполняет их на реальном процессоре как обычная программа. Поэтому по производительности C# и любой .Net-язык на порядок медленнее, чем языки, которые компилируют в реальные инструкции процессора.
почему тогда он пишет что в экзешнике именно IL код? Это ошибка перевода или его ошибка и што?
В экзешнике и машинный код, и байткод. Все правильно написано в выделенном тексте.
И раз уж на то пошло. Дизассемблированние - это перевод последовательности байтов в что-то более вразумительное. И машинный код, и байт код представленны в виде последовательности байт.
Ехешники от .Net - это не настоящие ехешники, а набор таблиц для виртуальной среды .Net. Когда пользователь запускает такой ехешник, то винда сама подгружает всю среду (CLR, .Net Framework и все нужные DLL), разворачивает таблицы в памяти и начинается выполнение псевдокода виртуальной машиной. Ну на деле они немножко пооптимизировали и придумали ещё JIT, он сразу перегоняет целые блоки IL-кода в реальные команды процессора, чтобы выполнялось быстрее.
Поэтому запуск таких программ очень долгий и даже в процессе работы может всё подлагивать.
Высшее образование у тебя? Сразу джуном устройлся? Десктоп или веб разрабатывал?
>Ехешники от .Net - это не настоящие ехешники
Самый настоящий, причем код один и тот же. В доке его бутсрапером называют. Программу можно запускать и без ехешника.
значит, нормальные софт-скиллы у тебя
Высшее
В смысле сразу джуном? А кем еще?
Если скажу, так обосрешься. На первом месте я на замарине хуячил. Как же я радовался когда сбежал на божественный веб. Не знаю как сейчас, но тогда - замарин был тем еще куском кала, как же я рад что сбежал с него.
Бывают еще трейни. Или можно прийти и вообще нехуя не зная пройти курсы.
Ну, когда я приходил - про вышку скорее рофлили, дескать: Ыыыы, красный диплом, небось купил))) Ну и были челы и без вышки.
Я хз, как вообще хоть куда-то устройться... Либо я такой даун, либо что-то неправильно делаю ... А через фронтенд вариант вкатываться?
Когда стоит пробовать устраиваться джуном? К примеру, я знаю конструкции языка типа циклов, массивов, но ещё не очень понимаю ООП. Уже можно пробовать на джуна или ещё поучиться? Нет риска, что я переучусь и пойду на джуна со знаниями миддла и будут получать маленькую зп, когда мог уже получать нормально?
> я знаю конструкции языка типа циклов, массивов, но ещё не очень понимаю ООП
Я тебя поздравляю, ты на уровне школьников, которые на информатике дают паскаль.
>>094297
>Нет риска, что я переучусь и пойду на джуна со знаниями миддла и будут получать маленькую зп
Что-то на уроне "ребят, сколько стоит ходить в качалку? есть ли риск, что я случайно перекачаюсь и буду как Джей Катлер выглядеть?".
> школьников, которые на информатике дают паскаль
Говорят, нынче школьники дают жидкого на Python в школах.
В моделе Flow есть
public int Id { get; set; }
public int GroupId { get; set; }
public Group Group { get; set; }
в гроуп есть
public List<Flow> Flows { get; set; }
Гроуп айди присвоен
Разобрался
>К примеру, я знаю конструкции языка типа циклов, массивов
Ты после одного дня учебы хочешь пойти искать работу, лол? С таким набором даже в 2012 ты бы никуда не устроился.
Гугли тестовые для шарписта. Смотри вакансии. В сборе с шарпом обычно требуют .NET и SQL. Еще могут попросить другие языки (как правило, JS).
Помимо этого тебе обязательно надо будет работать с WPF.
Если тебе надо сделать что-то сложнее дефолтного интернет магазина, то не проще, особенно в поддержке
В голос. Я надеюсь ты в курсе, что бэкенд всех топовых сайтов вообще с шарпом ничего общего не имеет? Из того, что я знаю, myspace на asp.net mvc сделан.
А некоторые гиганты вообще построили своей бэкенд на node: Paypal, Shutterstock, Yahoo!, LinkedIn - это только то, что я вспомнил.
>Я давно понял, что ты потерял нить.
а я сразу понял, что ты невнятное что-то пишешь на уровне "подслушано от кого-то"
>Не задают, пруф
>пруф
Твой субъективный пук нынче пруф?
>>093046
отвечает тот, на кого ты ссылался
гугли, что такое Dynamic Sql, чем он отличается от Ad hoc sql. По сабжу EF - отправляй Query и не будешь жидко пукать
>>093983
трейни/джуны нахуй не нужны. Заводы с легаси имо тоже (даже за 5к). На java все попроще будет.
>>094194
а вот и годные вопросы подъехали (как я тебя ждал, друг).
Тебе нужно разобраться в процессе двухуровневой компиляции. Ты когда билдишь проект - у тебя генерируется сборка, в нее входят методанные, заголовки, флаги и MSIL (или же IL). IL - это промежуточный код, который после запуска приложения в рантейм JIT компилятор преобразует IL в байт код.
Дизассемблирование - это прочтение твоего высокоуровнего кода написанного на любом из языков, поддерживаемых CLS на языке IL. Можешь посмотреть, как синтаксический сахар преобразовуется в нативные команды MSIL, что такое виртуальные таблицы и т.д. У Рихтера этот раздел хорошо описан в 1 главе (в самом начале).
Почитал посты, которые тебе отвечали - не читай их а, открой Рихтера и разберись сам.
>отвечает тот, на кого ты ссылался
>гугли, что такое Dynamic Sql, чем он отличается от Ad hoc sql. По сабжу EF - отправляй Query и не будешь жидко пукать
Че ты несешь блядь? ValueGeneratedOnAdd() в конфигурации решил проблему и теперь еф тянет нужные данные через ретурнинг при инсерте.
Пишешь, будто не понимаешь, что почти во всех гигантах - инженеры изначально хуячили пруф оф концепт, на том чем легче было на тот момент, а владельцы говорили: Бля, Джон/Рахми/Махмуд/Сяо - завтра перепишем нормально, ты фичу эту добавь... Потом уходили Джоны/Рахимы/Махмуды/Сяо, приходили Эндрю/Ляо/Ибрагим - и у них не было достаточной экспертизы, а фичи пилить надо, да и никто не даст переписывать, а авторитета у них еще нет и колесо Сансары начинало крутиться.
Суть. Гигантам - нужны инженеры, которым похуй на язык. В большинстве действительно крупных компаний не будет никакого языка в вакансии, кроме случаев, когда уж сильно обосрались и все завязали на какой-то стек. Чаще как раз будет: Master degree такое-то, алгоритмы, структуры данных, хайлоад, архитектура, оптимизация и минимальный опыт.
>JIT компилятор преобразует IL в байт код.
>facepalm.jpg
IL это и есть байткод
>Дизассемблирование - это прочтение твоего высокоуровнего кода
>facepalm.jpg
Мимо
>как синтаксический сахар преобразовуется в нативные команды MSIL
>facepalm.jpg
Синаксический сахар он идет поверх существующих возможностей языка, те сахар разварачивается в анильные возможности, msil тут не при чем.
Прежде чем лезть с советами сам бы что-нибудь про основы прочитал.
>Суть. Гигантам - нужны инженеры, которым похуй на язык
Вот именно. Ты не заметил, что ты противоречишь сама себе? Если программист опытный, то ему похуй на каком языке писать, а если говорить про вкатуна, то с шарпом его возможности вката падают в несколько раз по сравнению с другими языками.
>да и никто не даст переписывать, а авторитета у них еще нет и колесо Сансары начинало крутиться.
А кто мешал гигантам писать код изначально на шарпе? Почему Дискорд, Скайп, Слак переписали вообще на Javascript? Почему сам Microsoft (внезапно) чаще всего пилит свои проекты на плюсах (я знаю почему, можешь не отвечать)?
>похуй на каком языке писать
Мне не похуй. Пусть лучше шарп будет, чем Java, PHP, NodeJS, Ruby и уж тем более плюсы/си.
мимо
>А кто мешал гигантам писать код изначально на шарпе?
Шарп долгое время под вендорлоком был, для пруф оф концепт, с которых гиганты начинались - там ебанутые стоимости для всего. Это, по сути, единственная причина.
А сейчас - много где как вспомогательная хуйня используется, те же ФБ и нетфликсы частично пишут на шарпе микросервисы.
Та не, если исключить работу напрямую с западным дядей - все верно чел говорит.
Другое дело, что не все ради денег идут. Кто идет исключительно ради них - обосрался и скорее всего - мидл будет его стеклянным потолком.
>>094997
>>095012
3 дауна не осиливших первую главу Рихтера порвались.
>IL это и есть байткод
да, IL == байт код, перепутал с машинным кодом.
>Мимо
https://professorweb.ru/my/csharp/charp_theory/level1/1_8.php - как прочтешь, отчитаешься
>>095012
>msil тут не при чем.
дауненок на первом вопросе джуна потонет, когда его спросят во что разворачивается foreach или какое различие между call и callvirt
Как мне правильно составить маршрут?
Мне нужно что бы такую ссылку обрабатывал к примеру контроллер RedirectController.
dlv - это параметр а не название метода, параметр может быть разным но в любом случае такая ссылка должна обрабатывается одним методом.
>professorweb.ru
Это же метанит, только с майнером
>во что разворачивается foreach или какое различие между call и callvirt
Ты зачем опять мешаешь все в одну кучу, ебобо? Ты так и понял что такое синтаксический сахар?
Все языки высокого уровня - это сахар. Для программирования достаточно машинного кода.
Используется System.Text.Json, newtonsoft это делал по умолчанию, но сейчас его использовать нельзя.
C# WPF Datagrid(ObservableCollection)
При обновлении данных в источнике из основного потока всё отрабатывает (Datagrid на форме перерисовывается с новыми данными)
При добавлении в источник нового элемента из других потоков - Datagrid на форме не обновляется, а при попытке взаимодействия с элементами вываливается ошибка - System.InvalidOperationException: "Объект ItemsControl не соответствует своему источнику элементов.
Простыми словами - ObservableCollection не отрабатывает вне основного потока, и в дальнейшем из-за этого приложение завершается
>Это же метанит
Долбоеб, который оценивает ресурсы по названию
>Ты зачем опять мешаешь все в одну кучу
Зачем ты пишешь, прежде чем прогнать код через ILDasm и понять, что ты дрыщешь под себя?
Немного не то, это для сериализации.
Чтобы было понятнее опишу задачу.
Есть некий класс который имеет сам по себе значения по умолчанию, есть которые берутся из json, надо чтобы десериализация была только для тех свойств которые есть в json и при этом они не ломали те свойства которых в json нет.
В редких случаях необходимо собрать объект из 2 разных json в одном одна часть свойств, в другом другая, в newtonsoft это поведение работает по умолчанию, он не переписывает свойства если их нет в json.
У меня же стоят ограничения либо использовать system.text.json либо есть еще либа которая уже есть в проекте это ServiceStack.Text, но там я тоже такого не нашел потыкал в конфиге всякие ExcludeDefaultValues, IncludeNullValues так как нормальных комментов у них нет, но ничего не изменилось.
Я бы хотел использовать system.text.json потому что стандартная либа теперь которую явно намерены развивать дальше, но сейчас согласен сделать хоть как-то.
Сразу скажу что это единичный случай, т.е написать кастомную десериализацию для одного класса не годится.
В System.Text.Json нет PopulateObject. Его можно реализовать только своим костыльным решением:
- создать свой конвертор как предлагают в доке
- используя любой автомаппер, маппить в другой тип объекта с проверкой: модель -> dto
- через JsonSerializer.Parse и рефлексию перебрать дерево свойств с проверкой
- через JsonDocument.Parse + EnumerateObject и рефлексию перебрать дерево свойств без проверки
Не знал как называется эта фича и теперь смог нормально прогуглить, оказывается не я один хочу такое и самое печальное что ее даже в 6.0 ее не будет.
https://github.com/dotnet/runtime/issues/30258
Интересно а newtonsoft это получается единственная библиотека с такой фичей, у других я такого вроде бы тоже не видел, во всяком случае из набора так называемых производительных библиотек.
Твой Рихтер устарел уже давным давно. Самая новая книга по 4.5, а про Core он даже не слышал.
А между тем, с выходом Core люди начали анализировать код .Net и многое узнали о платформе.
ObservableCollection не thread safe. Можно унаследоваться от него и перегрузить OnCollectionChanged, в котором вызвать BeginInvoke для CollectionChanged.
Спасибо!
я очень рад был бы услышать какие нибудь аргументы касательно того, что изменилось в период между .NET 4.5 (когда была выпущенна последняя редакция Рихтера, могу ошибаться с версией) и нынешним .NET 5. В контексте тех данных, которые описал Рихтер в своей книге естестенно, переписываться фичи релиза не нужно.
Помимо того, если вы хотите вступать в дискусии касательно работы CLR и структуры CLS - приводите факты, а не пишите хуйню типа: "толсто/бред/разберись сам". Такого рода апелляции - это детский сад. Я и сам буду рад узнать, если где-то привел неточности, но пишите по человечески, чтобы не приходилось каждый раз плеваться перечитывая пустые высеры
А в чём он неправ? Языки развиваются, в них вводятся новые конструкции, облегчающие программирование, а замшелые олдфаги бубнят
> синтаксический сахар, вот в наше время в лаптях кодили, и вы порриджы так делайте
В таком случае синтаксический сахар всё, решительно всё, кроме машинных кодов.
>А в чём он неправ?
В том что он долбаеб, путает теплое с мягким, придуымывает какие-то свои определения терминам, слабо вяжущиеся с реальностью. У сахара есть вполне формальное определение и к компиляции в IL код это отношения не имеет, и тем более тут не при чем call/callvirt (на которых он тоже обосрется). Для примера while это не сахар, а foerach сахар, хотя оба, внезапно, компилируются в IL
Куда хочешь, нашел проблему.
Вот и я говорю, что программисты сейчас не нужны. Ну не нужны сейчас программисты! С ними уже борются.
Охлади свое траханье.
Нужны программисты. У меня остальные одногруппники вкатились как-то. Я единственный, кто остался на шарпе.
Ты без опыта? Расскажи о чем сейчас спрашивают и на чем как ты думаешь, ну или тебе сказали, ты провалился.
Без опыта. Спрашивают принципы ООП, наследование, инкапсуляция, абстракция, полиморфизм. Классы, структуры, БД (в том числе вопросы и задачи по SQL).
JSON, Docker, unit-тесты.
Ну и всякие задачки, алгоритмы.
Это сейчас у всех джунов спрашивают.
А гит надо знать? Я вот просто изучаю программирование, а гитом не пользуюсь. А везде пишут, что надо знать гит, а я его не знаю.
Без печати ты программу не наберёшь, а без гита вполне можно жить и писать программы.
С основами можно за день разобраться, а дальше уже осваивать в процессе. Я начинал с этого:
https://git-scm.com/book/en/v2 (там же есть и на русском)
https://learngitbranching.js.org (интерактивный задачник для закрепления)
https://google.com (гугл)
После того как разберешься с основами смело бери гуй клиент (или не бери, если ты любитель консоли), мне нравится Fork у сраного хипстерского гиткракена лагает прокрутка истории коммитов лол, зато электрон. Хотя базовые действия можно делать и из студии, но там как-то совсем куцее всё.
inb4 тебя не спрашивали
Тебя не спрашивали, тварь!
Перекат https://2ch.hk/pr/res/2096462.html (М)
Перекат https://2ch.hk/pr/res/2096462.html (М)
Перекат https://2ch.hk/pr/res/2096462.html (М)
Перекат https://2ch.hk/pr/res/2096462.html (М)
Потому что ты еблан.
private static void SetFilterColumn(this DataGridViewColumn[] columns, int columnIndex)
{ columns[columnIndex].HeaderCell = new DataGridViewAutoFilterColumnHeaderCell(columns[columnIndex].HeaderCell) {FilteringEnabled = true}; }
Для впфа - несколько готовых либ.
Молю тебя анон, помоги мне, я нихуя не понимаю
ебать, и это только то что сходу вспомню. Вы чё там нахуй, ебанулись совсем? Нахуя такое количество сокращений, определений и прочей абстрактной хуеты, которую надо знать? Бля, щяс ещё вспомнил IoC, LOH ещё там с этим хуета какая-то. Ебааааааааааааааать
Все говорили что перекат будет легкий. Что веб это просто, относительно низкоуровневых задач программирования. Ебаааааааааать
Да ну нахуй, я хуею. У меня появляется какая-то физическая ненависть к майкрософту с их ебаной хуетой.
В VS Studio 2019 создал макет приложения ASP.NET MVC, охуел с количества каких то функций аля Microsoft.ASP.Core.Zalupa.TvoyaMama.AllahAkbar().SetGovno();
Как это всё запомнить то блять
Бля, я походу не создан для программирования. Нравилось что-то писать, что-то учить, но вот ради РАБотки переучиваюсь на ваш веббэк ебаный, и что это вообще такое, как вы всё это запоминаете, как вы всё это пишите?
Тут ещё надо за неделю уложить в голове html5, css, sass, js что бы написать хоть какое-то приложение, а то только сижу хуету учу.
Хуй знает, после всей этой параши походу выкачусь и буду очередным невкатышем. Меня так ни одна область не убивала как веб ебучий
ну так не вкатывайся в веб ¯\_(ツ)_/¯
>Да ну нахуй, я хуею. У меня появляется какая-то физическая ненависть к майкрософту с их ебаной хуетой
Чел, ты в классический веб не заглядывал? Да это еще цветочки - вот там в вебе вообще полная хуита из миллиона фреймворков - и все их надо знать наизусть
И я в это верил и писал как на пикче первые три блока (ну не прям так - а в каждом методе вызывал connect.Open()
И в итоге такие методы для AAA/BBB/CCC выполнялись где=то по 10 секунд на каждую таблицу
Тут что-то стукнуло рефакторить, переписал как нижний блок - то есть connect.Open() один раз, внутри работал со всеми тремя таблицами. Так на этом я бустанул прирост в +30 секунд (время не наобмум, это с метрик брал), просто потому что в таком виде оно каждую таблицу обрабатывало не по 10 секунд, а меньше секунды.
Что за блядь? У меня полпроги написано как первые три блока, и я ищу как бы секунды выжать, а то некоторые запросы по 5-7 минут идут. А тут такая хуйня
Кто врет? В чем я ошибаюсь?
Вот собственно статья из метанита:
https://metanit.com/sharp/adonetcore/2.3.php
Пул подключений позволяет использовать ранее созданные подключения. Так, если параметр Pooling в строке подключения равен true (по умолчанию он равен true), то после закрытия подключения с помощью метода Close()/CloseAsync() закрытое подключение возвращается в пул подключений, где оно оно готово к повторному использованию при следующем вызове метода Open()/OpenAsync(). Когда менеджер подключений, который управляет пулом, получает запрос на открытие нового подключения с помощью метода Open()/OpenAsync(), то он проверяет все подключения пула.
Если менеджер подключений для находит в пуле доступное подключение с необходимой конфигурацией, которое в текущий момент не используется, то оно возвращается для использования. Если же доступного подключения нет, и максимальный размер пула еще не превышен (по умолчанию размер равен 100), то создается новое подключение.
Нет, пока не заглядывал.
Ну вот даже так, чувствую что стало намного сложнее
Когда писал код для себя, я просто писал код, параллельно обучаясь многим моментам, через тернии к звёздам, но все же
Щас как с ебаный русским языком, ноль применения логики, одно ебаное заучивание бесконечных фреймворков, парадигм, моделей и прочей пизды
На каком фреймворке под винду проще склепать что-то подобное? Клиент мессенджера
В этом особо не разбираюсь, последний раз в университете формочки пинал, но как я понял - это уже гавно мамонта.
WPF? Или есть что-то более интересное? Не хотелось бы JS/HTML/CSS/Electron/небо/алаха учить в догонку
в общем я пробовал Повторить в точности как ты написал и у меня не получается, во первых у меня вообще нет такого как "GetRequiredServices" во вторых а какой от этого смысл ведь так можно запускать только синглтоны, а когда мне надо будет выполнить код который требует депендесни где-то в коде где у меня нет доступа до хост а не в стартапе который выполняется только раз при старте
Бери wpf, можно и на формах, но будет сложнее и больше гемора с заменой стандартно вида контролов. Если нужно ещё и пинусе запускать то бери авалонию. Ещё можешь посмотреть на WinUI/Maui/Uno (там какая-то сантабарбара с ними я вечно в них путаюсь, но кто-то из них наследник говнозамариана, и тоже кроссплатформа) хотя они ещё не в релизе.
Это копия, сохраненная 30 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.