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, но функциональность там достаточно сильно урезана.
7. Что почитать? — 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.
>>2067611 В каком смысле как? Юнит-тест это просто метод вида: Arrange, Act, Assert В Arange - ты просто берешь и читаешь из файла нужные тебе данные.
Другое дело - что так делать не нужно. Юнит-тесты должны быть быстрыми и не особо зависеть от окружения. Так вот, если у тебя, допустим 10к тестов, все читают из файлов, при этом ты не можешь знать - все ли тестовые файлы вообще есть, имеют нужный формат и т.д. Т.е. в таком сценарии ты просто добавил лишней работы себе и тем кто поддерживать эти тесты будет, потому что теперь тебе нужно дополнительно отлаживать тесты и следить за соблюдением окружения, да плюс еще и файлы с тестовыми данными держать в актуальном состоянии. Это же просто уже работа ради хуй пойми чего.
Привет, программач. Я только поступаю в универ, готов кодить до посинения, ибо программирование - единственное, что доставляет в жизни. Но вот встал вопрос: хочу связать свою жизнь с бэком на C#. Актуально ли это всё будет, когда я универ кончу? Может стоит изучать что-то более востребованное, или ASPNET Core неплохо котируется? В общем, хотелось бы услышать экспертное мнение.
Хотел вкатиться в международные отношения, стать кулинаром, космонавтом лол, открыть свой бизнес и т.д. Часть - глупые детские мечты, другая - вещи, которые не приносят какого-то удовольствия.
Можно еще выкинуть энамки. Если бы ката позволяла либы подключать, можно было бы подключить любую либу для парсинга и упростить прогу еще сильнее + избавить свои глаза от необходимости сверять входящие/выходящие параметры.
>>2067843 Ну, эт фишки 9 версии языка. Хотя да, у тебя красивше выходит. Хех. Ну а насчет хелловорлда. Будто кто-то станет рассматривать код из 5к+ строк. Я бы вот не стал.
Анончики помогите, изучаю ASP.NET и застрял на какой-то элементарной хрени. Вот есть форма в cshtml файле. в теге <form> присутствует атрибут asp-action который ссылается на метод Create. Как форма понимает, что этот метод Create находится именно в нужном мне файле?
Я же не указываю нигде путь до контроллера TodoController.cs. В самом начале файла cshtml есть @model который ссылается не на контроллер, а на обычный класс Todo.cs в котором нет никакой логики взаимодействия с БД
Что скажете на тему C# vs Rust? Что лучше, что перспективнее? Где сахарнее синтаксис? Где лаконичнее конструкции? Где проще писать обобщённые и абстрактные конструкции без потери перформанса? Есть ли в Rust аналог LINQ? Хочется пару либ перенести с шарпа на что-нибудь компилируемое, чтобы любой васян, которому я выдам бинарники, не ковырялся в моих торчащих наружу исходниках?
>>2067692 Актуально и котируется. Сейчас на толковых дотнетчиков большой спрос, а т.к. платформа активно развивается, то в дальнейшем этот спрос сохранится.
Как элегантно реализовать таймаут на асинхронное чтение из сокета, если ты хуячил псевдодуплекс своими стримами вида - продюсер-консюмер? Просто внезапно осознал, что на данный момент у меня сокет начинает вечно ждать пакета и нужно его пнуть чтобы он раздуплился. Пока что придумал только что-то в духе: Tick(); Ну и при создании сессии - в на Tick() - смотрим что в сессии последний полученный пакет - был давно, а значит пора убивать. Но как-то это не очень элегантно как по мне. Может быть есть какие-то более красивые решения.
Есть ли вообще жизнь на c#? Есть ли работа? Смотрю вакансии и вижу какой-то сплошной сладкий хлеб, где тебе вдобавок нужно знать кучу какой-то малофьи типа жабьего скрипа и хуй пойми чего ещё, да и зарплаты какие-то не очень. Я сейчас занимаюсь пердолингом впф на работе за копейки и рано или поздно работу придётся менять, но я просто не уверен, что смогу что-то пристойное на шарпе найти. В пору начинать учить котлин и ставить андроид студию, там и в плане требований в плане зарплат всё лучше.
>>2070588 >Есть ли вообще жизнь на c#? Есть ли работа?
В РФ, несмотря на все потуги в виде неткоров, .net 5, .net 6 итд, дотнет постепенно сдувается. Просто он и взлетел у нас изначально из-за хоршей заточенности под винду - винформы, впф на современном развивающемся языке с няшной вижуалстудией, можно чуть ли не мышкой было программировать. Тогда из конкурентов была жаба с ее не сильно удобным свингом и жирной jre, которую приходилось ставить отдельно, умирающие делфи и c++ builder, либо дрочево с MFC и WinAPI. Qt был еще не так популярен.
Сейчас же десктоп полностью вымер нахуй, все крутится в хромиуме, либо на мобилках. И смысла писать на жирном дотнете нет никому. На серверах шарп не особо взлетел, а сейчас походу и вовсе подыхает, потому что с джавы переписывать огромный энтерпрайз никто не хочет, а новые небольшие проекты стартуют на го, пыхе, питуне и ноде. Шарп просто не вписался в нынешние реалии разработки, хотя денег было потрачено прилично, но и похуй, покойся с миром, чудесный дотнет.
Хотя в интернете люди говорят обратное. Java падает в позициях. C# гораздо медленнее падает, а где-то даже растет. Топ 10 языков. Топ 5 языков. Топ языков общего назначения. Современные плюхи, в ногу со временем, пока ява стоит на месте. Портируем все что угодно и куда угодно. Отличная документация, все штуки нативные и из коробки.
По вакансиям сегодня смотрел, вроде все на своих местах, на яву почти в 2 раза больше. Но отчасти там какая-то миксованная хуита по типу мы ищем на питон, но как бы можо и яву знать и кресты. Также можно и у шарпа отметить процент от геймдева. Короче все достаточно идентично в этом плане. Для вкатывальщика там тоже нужно знать стеки и прочие доп фреймворки, формочки эти ваши, а если ты с вебом работаешь то жсы обязательны. И они обязательны везде, что в шарпе, что в пыхостеках, что в яве, что в питоне да везде. Я не понимаю почему >>2070588 выделил шарп в плане рыночка, рыночек у всех сосет.
>>2070588 работа есть. уходи от впф формочек на бэкенд и всё. никакой заточенности под винду нет, работаю с мака и радуюсь жизни все плюшки по зарплате имеются 150+ и ДМС со стоматологом
Сап, нужен совет - в какой язык можно свичнутся, чтобы хоть какие то деньги начать зарабатывать? Знаю ООП не плохо, писал долго на #, но работу хуй найдешь, особенно джуном, а писать лабы и петы - на них сильно не заработаешь. Стоит ли задрачивать TypeScript? И я смотрю на Laravel очень много работы, стоит ли вообще начинать? Спасибо за ответ.
>>2070709 В джаве чтобы вкатиться жс знать вовсе не обязательно. Достаточно спринга, хибернейта и sql. Ну и падает она не сильно, точнее я бы вообще не сказал что падает - да, ее вытесняет котлин в андроид мире, но в энтерпрайзе она как была, так и будет еще не один десяток лет походу, тем более что новый синтаксичесий сахар туда тоже завозят постепенно.
>>2070932 Ну в жабу самое очевидное, но я бы еще советовал смотреть в сторону go, на нем сейчас тоже много бекенда пишут (по крайней мере в ДС). А так смотри что нужно в твоем регионе, может у вас только пыха нужна, тогда ее стоит учить.
Ну хз. Шарп еще почему-то не популярен во всех этих фаангах и крупных конторах с хуйлоадом и просто огромных размеров проектами. Поэтому имхо лучше начинать учить что-то более моложедное, например то же goвно неплохо закрепилось в бекенде в последние годы. Ну или котлин, на нем тоже бекенд пишут вместе с джавой. А экосистема шарпа она хз, ну мертвая какая-то, вроде мс и пытается разивать, но как-то жидко выходит - только один шарп и f#, ничего нового не появляется уже годы.
>>2070895 >150+ А вот это вообще нормальная зп считается в 2к21? Я помню времена, когда такая зп считалась достойной для мужчины. Тогда это равнялось 5к баксам. А Навальный ещё даже лес не успел украсть. Ты просто как бы хвалишься, и мне не понятно. По факту с такой зп тебе надо почти целый ГОД копить, откладывая ВСЮ зп до копейки, чтобы купить сраный пикрил. Я когда-то думал о перекате в айти, но смотрю на ваши айтишные зп, и понимаю, что вы уже днище. И васян из шиномонтажа в сезон зарабатывает больше. Ушлый пахлавон из точикистона даже на аредне в ДС будет поднимать больше солидного миддла+ на дот.нете.
>>2071079 >>2071083 Так Го это же хайп прост, топ по старапам, как всякие рубироиды. Специально вечер потратил читая про го, у него в фичах оптимизации определннных вещей, но что касается остального он очень сильно сосет. И если челики из гугола его не починяют в близжайшее время, то хз, язык-червь, язык-пидар. В этом плане у Шарпа все идеально, с комплексными нагрузками он справляется гораздо лучше, в нем не надо ничего менять.
Вот яву чтоль учить...но там такой уебанский синтаксис, так не хочется на каждый пук писать пук.пук.пук.пук.пук.пук(). Научно доказано что чтобы написать какой-нибудь код на яве, это займет в 3 раза больше времени чем на других языках. Еще я почитал как устроены андроиды и политику гугла - да вообщем-то это заблуждение что дроид прямо зависит от явки, там всякие котлины и прочая скорее, а от явки они не против в будущем вообще уйти. Так не хочется учить язык дедов((((хотя у меня родственник работает на яве
а еще я охуел с дизайна документации го, такое-то говно, текста от майков красивее
150k рублей - это зп довольно посредственного и неопытного мидла в ДС с 1.5-2 года максимум. На той же жабе неплохой мидл может вполне получать 200, а то 250к на руки. У сеньоров до 350к вилки, тимлиды по разному, но в интервал 300-500к попадают как правило. Ну и еще годовые премии у сеньоров и тимлидов оче жирные, в некоторых случаях вплоть до трети - половины всего годового оклада.
Если на западного барина работать, хорошо уметь в английский, то 5-8к долларов можно выторговать. Ну это опять же, при правильном стеке, при хорошем опыте и хорошим резюме. Какой-нибудь миддл с пятилетним опытом WPF/Winforms/ASP.NET может только отсосать в нынешних реалиях рыночка.
>>2071210 >но там такой уебанский синтаксис, так не хочется на каждый пук писать пук.пук.пук.пук.пук.пук()
Как будто бы в шарпе синтаксис сильно отличается.
>Еще я почитал как устроены андроиды и политику гугла - да вообщем-то это заблуждение что дроид прямо зависит от явки, там всякие котлины и прочая скорее, а от явки они не против в будущем вообще уйти.
Ну андроид разработка постепенно переходит на Kotlin. Но стоит учитывать, что котлин - jvm язык и исполняется он на той же виртульной машине, что и джава. И для нормальной работы на котлине, желательно иметь минимальный опыт с джавой.
>Так не хочется учить язык дедов Неприятных вещей в джаве довольно много, особенно что касается дженериков и работы с коллекциями. Зато очень хорошая экосистема, которая как раз включает и систему сборки, и пакетный менеджер, ИДЕ, ну и тот же котлин вместе со скалой.
>Так Го это же хайп прост, топ по старапам, как всякие рубироиды. Специально вечер потратил читая про го, у него в фичах оптимизации определннных вещей, но что касается остального он очень сильно сосет. И если челики из гугола его не починяют в близжайшее время, то хз, язык-червь, язык-пидар
Разве джаваскрипту его черверпидорность помешала стать топ1 используемым языком в мире? Ну или тому же пхп? В то время как много других хорошо спроектированных языков просто вымерли, так как не вписались в рыночек.
>>2071268 >отличается Я в 2017 работая щеглом в забегаловках начинал учить погромирование через создание игр, думал что на мобилки проще делать(заблуждение типичное), гайд был на яве, я не зная даже базовых принципов программирования знатно охеревал со всех этих строчек. Потрогал пару недель и больше никогда не касался. Можно сказать вьетнамские флешбеки. Надеюсь это просто неудачный опыт был.
>иде экосистема Оо помню как страдал пытаясь понять эти ваши эклипсы и интелидеи, у меня еще ноут был полумертвый, все лагало жесть. У меня прям отвращение ко всему этому появилось. Можно сказать психологическая травма осталась.
>>2070588 Лучше пердолить wpf, чем круды для вэба. А вакансий на десктоп нету. Есть unity, но геймдев, да на готовом движке, это далеко не десктоп, да и шарп в unity вроде бы какой-то кривой.
>>2071404 По сравнению с чем она нормальная? Даже в регионах мелкие пыновники ездят на бехах и мерсах, которые стоят сейчас как 4 твоих годовых зарплаты. А это ведь просто машина. А человеку ещё нужно жить где-то, на моря ездить. 150к - это просто уровень выживания. Да, холостяку с квартирой от родителей норм. Но семейнокун с ипотекой будет экономить на макарошках.
>>2071522 Понаберут ипотек, потом содержат разведенок с наебышами и затирают про достойные зп.
>>2071510 Ты, зная впф, на юнити нехуя не напишешь. Разрабы юнити конвертируют шарп в плюсы при компиляции. В вебе круды зависят от вшивости проекта. У меня на проекте вообще стейт машины, давно традиционный веб и декстоп в глаза не видел.
Смотрите, есть приложение-чатик. Суть, я хочу в базе хранить время последнего сообщения, при этом чтобы это была актуальная информация(т.е. без всяких изъебств с тем что сохраняю только после того как чел из чатика вышел). Так вот. Если клиентов хотя бы 100 и они активно общаются(я ботов написал, которые в среднем 100 сообщений в секунду хуячат) - с EF слуючается пиздос, потому что каждый апдейт - стучимся в базу, создавая новый контекст - получаем исчерпывание числа соединений + ошибки по таймауту выполнения запроса. Так вот. А как делать-то правильно? У меня сейчас просто: even EventHandler<MessageSentEventArgs> MessgaeSent; ну и при срабатывании события - делаем:
это вот приводит при, пусть и моделированной, но вполне реальной ситуации в случае если пользователей будет много, к тому что я описал выше. Как сделать нормально - я чет не знаю. Пока что думаю о том чтобы какой-то класс ContextHolder сделать, в котором уже будет этот апдейт происходить, а по таймеру - сохранять изменения, но чет мне кажется я придумываю какую-то хуйню.
>>2071715 Выкидываешь эф, пишешь на адо+даппер. Может тебе база вообще не нужна, твое описание задачи хуйня. Звучит как вообще захуячивание каких-неть акка/эластиков в кластере.
>>2071718 > Может тебе база вообще не нужна, твое описание задачи хуйня. Звучит как вообще захуячивание каких-неть акка/эластиков в кластере. Вот есть табличка Device, в ней поле LastSentMessageTimestamp, оно нужно, т.к. это все делается небольшой хуйни на малинке и общение по UDP с другими устройствами в моем умном огороде, внезапно малинка может ребутнуться из-за того что свет моргнул и нужно бы проверить в таком случае - не истекло ли время с последнего сообщения чтобы пингануть и проверить - живо ли еще устройство и нужно ли какие-то меры предпринимать. Наверное не следовало тащить .net в милинку.
Вообще, я тут осознаю что не совсем понимаю как работать с этим EF если подразумевается какая-то быстрая работа. Вот допустим - мне нужно что-то типа регистрации при которой выделяется номер из некоего списка. Если бы я в самой БД делал, я бы просто этот номер сделал уникальным, а получение его в транзакцию обернул бы и в случае если не удалось добавить - повторял бы процедуру по счетчику. Как это же в ЕФ делать - не понимаю. Опять же - как делать с ним апдейты, если еф при больших нагрузках - начинает пиздеть что какая-то там хуйня тречится, ей богу, кажется что проще было бы руками написать. Да а даже если тречится, во всех примерах что в интернете - делают контекст, обновляют, сохраняют. Делаю так же но при быстром обновлении - The instance of entity type cannot be tracked because another instance of this type with the same key is already being tracked. Вот где он затречил-то, если я контекст создаю внутри метода? А хрен знает, где-то затречил и теперь вот ругается. Наверное буду пилить свой пул соединений, ограничу их каким-нибудь семафором и буду руками все делать, потому что я действительно в такие моменты не понимаю что я делаю не так.
>>2071793 >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 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);} } }
>>2070936 я думал об этом, но это пыха... А так да, работы - хоть отбавляй >>2070949 >>2071070 Java отличный язык, востребован не меньше php, тоже склоняюсь к нему больше всего. Тем более с ООП +- знаком по #, думаю не долго свичнутся в нормальный язык
Нужен архитектурный совет У нас asp.net core проект и типа слоёная архитектура + EF Core, ну т.е. запросы из контроллеров обрабатываются в сервисах, в сервисах бизнес логика, а данные получаются из репозиториев. И вот с репозиториями вопрос. Мы в них стараемся держать по минимуму методов по сути по экземпляру CRUD с разницей лишь в параметрах фильтрации для гета, но вот инклюдов со временем становится очень много, но не все они нужны в каждом месте, где сервис получает данные. Как можно в сервисах элегантно инклюдить только те таблицы, которые нужны в конкретном методе, не таща эти детали т.е. прописывать .Include у IQueryable прямо в сервисах в сами сервисы? Пока в голову приходит только в репозиториях плодить методы GetEntityForPurpose1(), GetEntityForPurpose2 и иже с ними, но чё то это гавной попахивает
>>2072246 Посмотрите в сторону паттерна спецификация Спецификации можно обьединять И вообще, с ef репозиторий особо не нужен. Сам dbset это уже репозиторий
Есть структура, которая хранит 4 double, и выдаёт их геттерами. Значение может отсутствовать. Поэтому геттеры возврающат Nullable<double>. К структуре может быть много обращений, их может быть много. Навангуйте, стоит ли оптимизировать по памяти, храня приватные double без nullable, а отстутсвие значений помечать как NaN. А геттеры уже бы обрабатывали это как надо и оборачивают в нуллабл. Тесты лень писать, да и нет пока кода по реальной загрузке.
Посоветуйте по чистоте кода. Мне кажется необходимо явно писать явно имена переменных при передаче их в функцию, если аргументов функции больше двух, и если они одного типа. Типа вот так: double x = 1, y = 2, z = 3; z = Math.Clamp(value: z, min: x, max: y); Потому что порядок аргументов может быть перепутан, неочевиден или изменён. Но в сорсах и на гитхабе, что я листаю, что-то никто нихуя так не пишет, а я уже который раз словил баг на этом и решил, что надо так и только так.
>>2072246 >У нас судя по тому высеру, что ты навалял у тебя раздвоение личности с твоим пет проектом. >GetEntityForPurpose1() за такое тебе любой интерн-джун в ебало плюнет. Проснись, Маня, ты серишь >>2072290 >Есть структура, которая хранит 4 double >Значение может отсутствовать ебать тут элитные кодеры сидят я смотрю. >отстутсвие значений помечать как NaN. default: "NaN"? >>2072292 >функцию ты ошибся разделом, js тред дальше >необходимо явно писать если у тебя сигнатура метода с однотипные параметрами, как компилятор поймет, что ты хочешь? >словил баг еще один elite crew member
>>2073276 какое отношение перегруженне методы имеют к явной передачи параметров в метод? При нормальной реализации перегрузки порядок параметров сохраняется >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 читай и еби мозги такой плевой хуйней
>>2073337 У меня с последний апдейтами постоянные отвалы частей 2019. Например, в простеньком консольном хелоу ворлде очень часто умирает интелесенс (раз в полчаса). Помогает только ребут. Или юнит тесты уйдут в бесконечный ран. Еще и к процессам служб перестало атачиться. Перейду на райдер, в пизду.
Поясните за архитектурные моменты. Вот к примеру есть асп нет приложение, в нем есть ВьюМодел которая содержит 3 модели. Я так понимаю правильно будет сделать ServiceClass для конвертации этой ВьюМодел в 3 модели. А что делать со значениями? В классе создать 3 объекта и вернуть их кортежем? Или в контролере создать 3 объекта и передать их по ссылке что бы в методе их заполнить? А как потом добавить их в дб? Просто db.model1.add(model) либо создать статический класс в котором будут методы сразу сохранения в бд любых моделей, типо перезагрузка методов в зависимости от того какую модель в него передали?
Как быстрее всего обновить значение значимого типа в словаре? Кроме как удалять его по ключу, а затем снова добавлять? Может быть есть реализация словаря, которая возвращает значимый тип как ref?
Анончики, есть одна страничка на asp, когда перехожу на неё, то добавляются в бд пустые поля, будто кнопка <input type=submit> сама срабатывает. В чем проблема?
>>2074077 Ну смысл в том, что сначала я проверяю, есть ли нужный ключ, например, через TryGetValue. Если ключа нет, то просто добавляю ключ и новое значение. Если такой ключ уже был добавлен, то я использую соответствующее ключу значение, полученное через TryGetValue, для расчёта нового значения, а потом мне надо вернуть его обратно в словарь. Если я сделаю это через MyDictionary[key] = value, то на каждую итерацию будет два поиска в словаре. Сначала в TryGetValue, потом в MyDictionary[ key] = value. Я бы хотел, чтобы было нечто вроде TryGetRefValue. Тогда я бы просто обновил значение по ссылке, имея один поиск в словаре на одну итерацию. И на самом деле, пару месяцев назад я читал, что это есть, это было добавлено в .NET 6, а может быть даже в .NET 5, как раз для таких случаев. Но где я это читал я не могу найти, и заново ничего подобного не гуглится.
Как реализовать добавление уникальной string в коллекцию? С начало проверять есть ли такая стринга и если нет то добавлять либо например после 100 добавленных строк просто удалять повторы?
>>2074096 >>2074097 Какой же ты пидорас, анон. Прям образец тех гондонов из старинных форумов, которые пишут «вопрос неактуален, сам разобрался» и не пишут решение, чтобы спустя 15 лет кто-то наткнулся на такой же вопрос, а там вместо ответа этот пук. Еще и с сажей пишешь.
>>2074175 Дело оказалось в названии asp-action и двух методов Create() в классе CarsController. Грубо говоря asp-action не понимал какую из перегрузок вызывать. Я переименовал оба метода Create на void AddCar([Bind("Id,Name,Price")] Car car) и IActionResult GoToCreateView(). Для перехода на страницу добавления вызываю метод GoToCreateView(), а в самой странице добавления в asp-action передаю метод AddCar.
>Еще и с сажей пишешь. Думаю в тематических тредах на это поебать. Всё равно кто захочет тот найдет шарпотред
>>2074175 Форумы никуда не делись. Есть в сру сегменте киберфорум с дохуище рекламы. Таких дерьмовых ответов на этом форуме навалом или однотипных вопросов ака как сложить две матрицы. Без форума даже жопу себе самостоятельно от говна вытереть не могу.
>>2071268 >Ну андроид разработка постепенно переходит на 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++; }
Написал ответ, потому что вот этот >>2074175 прав.
Перфоманс паттерны использовал кто на проектах? Или хотя бы видел. Вчера почитал про Span<T>, allocated pattern и Array Struct - выглядат бодро, бенчи показывают охуенный перфоманс, вот только выглядат убого. Делитесь опытом, кто что использует из "not casual solutions"
>>2074269 >Нах вообще тогда писать на ведройде, если показываешь все в вебвью? нах не надо, 90% этих псевдо- приложений, ещё быстрее и лучше работают, когда просто страничка в браузере открывается. Это как раз то что из топа, аппы всех известных сервисов и т.п. А вообще, webview хорошо оптимизирован, там еще с андроида 2.0 нативные либы на всё, уже готовые, поэтому и быстро и стабильно. А поделия которые у андроида платформенные, ну там gui шки и прочее, ничего кроме смеха не вызывают, это какой то дебильный шлак, который переделывали уже несколько раз. Вот, всякие там флюттеры и реакты с той же целью завезли, чтобы в эту говнину специфичную не вникать.
>>2074483 Я часто пишу через Span и ReadOnlySpan, когда надо обработать не весь массив, а его участок. Удобно использовать Span, чтобы не таскать везде начало массива и количество. Но производительность не прыгнет выше, чем у массива. Ещё можно указатели в него оборачивать, но они всё равно не работают быстрее обычных массивов (во всяком случае я это тестировал, надеясь, что указатель будет быстрее из-за отсутствия проверок выхода за границу массива, но разницы в скорости не было). Поэтому рассматриваю о каком росте перформанса речь не очень понимаю. Поэтому скинь что ли ссылку, где мне про это расскажут.
перечитываю Рихтера и у меня встал вопрос - будет ли MSIL компилироваться JIT, если не нашел функцию JITCompliler? Типо зачем это делать, если нет точки входа? В MSIL ясен хуй все что угодно может забилдиться и DLL и CUI, главное чтобы ошибок не было, а что насчет JIT?
>>2074646 ну по фактам разметка на вебвиеве она быстро рендерится, там хоть 100 000 строк можно запехнуть, так как всё в нативной либе, а TextView и подобное LnearLayout на каждое подсвеченное слово, а иногда и на букву- оно прямо на java написано, можешь посмотреть в исходниках андроида. Но может оно и лучше стало, я 9 смотрел, новее пока не смотрел, надоело в этом говне колупаться. Но извращаются все, как посмотришь по движениям этим, т.к. активно дрочат флуттеры, реакты и остальную такую подобную хуету.
Я тоже перечитываю Рихтера и не понимаю, каким образом callvirt вызовет рекурсию тут, либо я тупой, что я не отрицаю, либо из написанного невозможно сделать вывод, каким образом рекурсия произойдет
>>2075008 на уровне рантайма есть методанные виртуальных типов и унаследованных типов. Метод Callvirt обращается именно к виртуальным типам. Следовательно, когда ты переопределяешь из унаследовательного типа виртуальный, тем самым base рекурсивно вызывал бы сам себя
>>2075187 не обязательно. Callvirt - только для методов из таблицы виртуальных типов. Call - может быть и базовый класс и статик. Гугли короче difference between call and callvirt
>>2075008 call вызывает функцию конкретно у базы callvirt бы пошел искать ToString у this, нашел бы этот самый оверрайднутый метод и так бы и вызывал себе по кругу.
Существуют ли способы быстро и эффективно освоить netcore? Ну там, вот подключение к базам, вот сделайте сортировку, вот сессия, вот галерея. Существуют ли умные книжки которые дают прозрение? Я, начитавшись гайдов, решил что лучше буду документацию зубрить, так больше пользы пока что. Я принципы того же mvc немного понимаю(на словах все просто), приложения на шарпе(не веб) делал. И раз так все просто то почему бы просто не взять и не сделать проектик-другой? Но когда я читаю типичный гайд, он выглядит как - ну берем вообщем, модель, контроль, тут у нас короче добавим такую библиотеку, тут сякую, ой тут не забывайте рефересны, вот вам кусок кода - копипастье и готово. И я просто закопипастил, но мне это не дало никаких знаний, ни фундаментальных, ни по языку, ни по чему. Вот сейчас у меня авторизация не работает. А я даже не могу понять почему, прыгаю со скрипта в скрипт, вроде все аккуратно, вроде все понятно, а вроде ничего не понятно по сути. Не. ну конечно я пытаюсь сам из крупиц информации все пошагово гуглить, что такое атрибуты, как работают куки, ну и всякое такое. Это основной способ обучения или я что-то важное упустил?
>>2076342 Вот именно по этому программистов самоучек-любителей, не прошедших и не получивших сертификата солидных платных курсов, нигде не любят и не берут на нормальные работы. Это никогда не было правдой, что в интернете можно освоить профессию, даже такую, как программист. Нужно системное обучение, а оно только платное, потому что время профессионалов стоит денег. А гайды в интернете пишут двачеры, которые сами знают ещё меньше.
>>2076583 > Вот именно по этому программистов самоучек-любителей, не прошедших и не получивших сертификата солидных платных курсов, нигде не любят и не берут на нормальные работы. Хуйня полная, пошел нахуй тролль.
>>2076583 охуенно толкуешь, зеленый. Сам я ни закончил тех. вышки, ни одни курсы не проходил, все мои инвестиции - 3 книги в сумму ~$40. Итог - выиграл конкурс из 30 человек на позицию джуна. Вопросы?
>>2076607 По существу-то что? Сейчас каждый первый у мамы программист. Запустил хелловорд и уже лезет на форумы учить новичков, а то и на ютубе видосы пилит. Особенно радуют расплодившиеся ресурсы с ПОЛНЫМИ КУРСАМИ чуть ли не по всем модным ЯП, от одного автора, который настолько преисполнился в своих познаниях, что не может удержать в себе этот поток.
>>2076613 >3 книги Нет ни одной книги, ПРОЧИТАВ которую ты научишься программировать. С ними надо работать, как в ВУЗе. Теория, практика, контроль усвоенного. Это можно пройти одному, обложившись учебниками. Но это не эффективно, т.к. ты будешь тыкаться во все стороны как слепой котёнок. Нужен преподаватель, учитель, который тебя проведёт. Прошел курс, значит настроен серьезно, и есть гарантия, что твои знания соответствуют стандартам отрасли. Потому что чудиков среди самоучек очень много. И если C# за счёт системы типов ещё не особо позволяет куролесить, то уж в скриптовых языков буйный творец легко найдёт себе простор.
>>2076624 >И если C# за счёт системы типов ещё не особо позволяет куролесить, то уж в скриптовых языков буйный творец легко найдёт себе простор. что за хуйню ты несешь? Есть конвенции, есть best practice, есть принципы, по которым пишется код. Эта фраза >системы типов ещё не особо позволяет куролесить выдает в тебе студента шараги на мнении, что окончив ее ты сможешь устроиться на работу с преимуществом над самоучками. Я тебя хочу разочаровать. У самоучек есть охуенное преимущество - искать самостоятельно решение и находить их. Это основной скилл, которым должен обладать любой разработчик не зависимо от стэка и технологии. У студентоты этот скилл как правило отсутствует, что делает их пососами как минимум до того времени, как освоят SOF и гугл. Студентам шараг это может показаться смешным, но те, кто ступал на порог галер понимают о чем я
Если это тролинг то ладно, но пожалуйста не сритесь ребята. И так понятно что в идеале и условия, и мастера который пинок даст, и самому надо учить, в идеале. Но я просто спросил про конкретный случай и вопрос, есть ли особые best practice который прям прям обязательно. Если нет, то это абсолютно нормально, я просто делаю то что делал бы в любом случае, просто захотел узнать не упускаю ли я чего.
>>2076624 >Прошел курс, значит настроен серьезно, нихуя не значит, 80% разработчиков это долбоёбы и копипастеры, сами вряд ли могут сортировку написать или какую нибудь хеш таблицу. >и есть гарантия, что твои знания соответствуют стандартам отрасли. какие ещё стандарты, везде фреймворки и винегрет-солянка из техник, а тупые макакеры обмазывают эти штуки лапшекодом, под бодрые песенки о прогрессивных методологиях. Там нету стандартов, ни на уровне библиотек ни на уровне архитектур, все пишут как попало, лишь бы это выглядело как работа. Потому что если это похоже на работу, то за это платят.
>>2076642 >есть ли особые best practice конечно есть, ты Стива Макконела читал? Чистый код книжка называется, может немножко устарела, но там довольно внятно расписано почему надо делать так а не иначе.
Подскажите best practices насчёт фигурных скобок { после операторов }. Сокращаете ли вы циклы убирая скобки? Или сокращаете ли вложенные If'ы? Когда идут вложенные 2-3 if без скобок.
>>2076658 бест практис - читаемость если через 1-2 месяца, глянув в код, ты сразу понимаешь что там происходит - это хороший код. и похуй сократил ты или нет - не похуй только если есть код стайл
но всегда есть нюансы в виде перформанса. в некоторых случаях, т.н. "синтаксический сахар", под капотом, нихуево так оптимизирует код, теряя при этом часть читабельности. это нужно знать и каждый раз делать выбор.
>>2076624 > Что рвёшься-то? Тому шо ты хуйню полную несешь. Ты приводишь в пример курсы, курсы блять, ты же понимаешь, насколько все эти курсы хуйня или ты проплаченный и пришел их тут пиарить? Если они что-то и могут дать, то это максимально обобщенные и базовые знания. Ни один курс по программированию не даст тебе больше знаний, чем тот же Рихтер.
>>2076658 Я вот чего не понимаю, так это использование префикса "_" у приватных полей. Мол, так можно отличить поле от локальной переменной. Охуительные истории. Что-то я ничего не путал. Даже в чужом коде, где не используют это говно "_".
И такие же охуительные истории про фигурные скобки. Мол, если фигурных скобок нет, то легко совершить ошибку и дописать код, который окажется за пределами оператора. Ага, если ты умственно отсталый, то конечно можно.
Я >>2076851 придерживаюсь собственных простых правил: - Если 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 на читаемый поток не предлагать, это вообще всё нахуй ломает
>>2076975 САМООТВЕТ нашёл такую фишку, можно задавать поведение при нарушении условий валидации вот так services.Configure<ApiBehaviorOptions>(options => { options.InvalidModelStateResponseFactory = c => { //раз два три соси }; });
теперь вопрос лишь в том, почему это говно работает в тестовом проекте, но не прокатывает в боевом здоровом сервисе
Аноны, работаю в WinForm, подскажите, как преобразовать выбранный элемент comboBox-а в текст? что бы потом я мог использовать его как текст через класс (пример на 2 картинке)?
>>2077129>>2077255 Относительно твоего вопроса: combobox.SelectedValue.ToString(); А картинки - это я пытаюсь придумать как себе ногу можно больнее прострелить.
>>2077849 > ViewModel - кто это нахуй такой и зачем он тут нужен? На словах это куча текста. Просто напиши чертов toDo и поймешь что это и что оно делает. А надо, чтобы обеспечить прослойку между бизнес-уровнем и UI.
>ViewModel - кто это нахуй такой и зачем он тут нужен? Связь это модель для вью. ВПФ не учил но в asp net это для того что бы привязать странице вью модель. Например на странице отображается юзеры и их автомобили. У юзеров и авто свою Model во ViewModel мы их соединяем и привязываем к странице.
Model - вообще не трогай, если где то тебе надо использовать модель и в этом месте тебе нужны только поля которые есть в Model то все равно создай дублирующую ViewModel так как в дальнейшем если будешь что то добавлять на страницу то не надо будет трогать Model.
В треде есть деды-олдфаги? Есть один datagridview на винформах, как ему сделать корректный row multiselect при dragdrop'e (строка анселектится при нажатии мыши во время переноса, а нужно при отпускании кнопки мыши)?
>>2078218 Уровень бизнес-логики же. Тот, что описывают собственно логику предметной области, взаимосвязь компонентов, всяких правил валидности сущностей и т.д.
Пиздец, короче я таки написал, но пришлось потратить полдня чтобы понять как эта ебала работает. На grid mousedown: if (_isCtrlPressed) { LeftDataGridView.Rows[_selectedCurrentRowIndex].Selected = false; } Пиздец, а я полдня как обезьяна головой об стенку пытался тыкать true на разные ивенты, а selected видимо где-то под коробкой просто перетыкается. >>2077960
Хм. А на формах можно найти работу? Просто я чет осознал что если не бекенд, то я лучше буду с формами дело иметь, чем с ебучим ВПФ, потому что ВПФ - не хз, мне не нравится, уебищный он. Вообще, конечно, хотелось бы писать логику на шарпе, а UI на божественной связке HTML+CSS+JS, но это вроде сразу значит что нужен атом и тащить броузер, а этого как раз тоже не хочется. Эх, почему никто так и не придумал ничего лучше форм для UI? Формы же - божественны: все просто, все логично, магии - никакой, можно все что хочешь подпилить как хочешь, красота. Не, зачем нам охуенные во всем формы, если можно сначала говеный WPF, а теперь вот какой-то MAUI, который, как обычно - нихуя не мультиплатформенный на деле будет, а собран из замарина. ХОТЮ работу на формах, но при этом с последними фишками кора! Дайте мне такую работу!
Как лучше поменять группу байт, например есть байт data, а value число от 0 до 8 которое нужно записать в старшие 4 бита data. Можно как-то более изящно это выразить? Решение в лоб не очень нравится:
Как быть с приставкой IS для булевых свойств? Смотрю, что сами микрософты не определились. Как я понял, если не использовать приставку IS, то может возникнуть конфликт с названием события.
Например, у класса Socket есть свойство Connected. Если я захочу добавить событие, которые вызывается после подключения, то может возникнуть путаница. Или аналогично со свойством Authenticated.
>>2079183 В общем. Я просто пользуюсь правилом: Булево свойство, поле или переменная - должно именем говорить, что диапазон значений это да-нет. CanExecute, ShouldStop, IsCompleted и т.д. Т.е. не обязательно Is, но какую-то приставку, которая бы явно говорила что это булево значение - считаю нужно. Ну и да, пример с некоторым апи, особенно таким старым как сокеты - не катит, их 1. Пилили под копирку с того что уже в других языках было. 2. Пилили давно, когда и кодстайлы были другие. 3. Ну банально сам посмотри var a = soc.Connected; Вот тебе понятно что это? Может быть это число подключенных? Хуй знает - наводи мышкой и смотри. А было бы var a = soc.IsConnected - сразу понятно что это булево значение
Помогите советом по перформансу. У меня есть числодробилка. На каждой итерации расчёта проверяется набор ограничений. Некоторый целевой параметр должен быть больше, либо меньше ограничения. Если управляющее ограничение нарушено, рабочий режим корректируется коэффициентом. Всего возможных ограничений порядка 30 , но установлены обычно 2-3, но они могут быть установлены в любом сочетании. В текущем тестовом варианте я сделал все ограничения как nullable float, и проверяю их все. В принципе можно сделать неустановленные ограничения столь большими или столь малыми, чтобы они никогда не срабатывали. Но это всё равно 30 условных операторов. Как написать код так, чтобы проверялись только установленные ограничения?
>>2077849 ViewModel содержит свойства, который готовят данные для отображения во View и принимает данные введенные пользователм. Все это работает в WPF через Databinding. Также ViewModel может содержать свойтсва типа ICommand которые обозначают действия, которые можно произвести с данными вьюмодели. Эти свойства также биндятся через Databinding, например у кнопки есть специальное DependencyProperty Command к которому ты можешь забиндить свою команду из вьюмодели. Таким образом при нажатии кнопки будет вызывать код твоей команды. Помимо этого команда еще инкапсилирует в себе булевое свойство, что отвечает за доступность команды. На деле это будет означать активна кнопка или нет в зависимости от значения этого свойства.
>>2079467 У меня скоро будет собес, в контору, куда я хочу попасть с первого раза. По куче собесов ради практики шароебиться нет времени, вот и спрашиваю, чтобы примерно представлять, к чему готовиться.
>>2079483 Не, сеньор, но именно по шарпу опыт не особо большой, чуть меньше пары лет, до этого на других языках писал. Сейчас вот разбираюсь с async/await, как там конечные автоматы под капотом работают. Еще по сборщику мусора посмотрю, что там как. Ну и по asp.net core надо будет глянуть, наверное, rest апишки пилил на нём, но чё там как под капотом особо не разбирался. Что еще посмотреть, может есть еще must have темы, классы из стандартной либы? Про коллекции всякие наверное смогу рассказать, про линк, хуинк всякий. Что там еще обычно спрашивают?
>>2079502 >Выебут так Как? Приведи пример вопросов, а я прикину хуй к носу, смог бы ответить или нет. Я за этим сюда и пришел, чтобы узнать, как меня будут ебать.
>>2079512 бля, жирнота конечно, студент-выпердыш пытается выклянчить вопросы уровня сеньера. Хочу тебе сказать, сынок, что сеньер - это знание и опыт в проектировании архитектур, компонентов (типо оркестратора или диспетчера), управление командами, знание от А до Я тонкостей языка и богатый опыт программирования на смежных языках/технологиях. Это тебе блять не статьи на 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 шкуры спустить с учетом портфолио/известности кандидата. А были такие случаи, что запуливали реально бичей, которые хуй от пальца отличить не могли.
>>2079527 >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 не забуд Нахуя? Если галера российская, со своим продуктом для российского сегмента.
>>2079554 >Зачем мне надо знать поколения? Я бы такое спрашивал на умение пользоваться профилировщиками. Чтобы могли заоптимайзить хот пасы и чтобы не делали боксинг на любой чих, например передача интератора в метод вместо коллекции. А если начнешь хуярить везде спаны, жалоба на тебя, пидораса, и пинок под зад на мороз.
>в эру микросервисов Даже в эру микросервисов хуярят паттерны, ты не сам работаешь. Скажешь "фасад" и не надо объяснять долго что это за хуйня и на кой хуй она вообще нужна. Причем не обязательно из списка гофа - луковая архитектура + ддд + всякие медиатры, что в разы лучше 9000-tier архитектуры.
>Я пишу на одной актуальной версии языка Легаси код не переписывают каждый год на новую версию языка. Любителей переписывать тоже пинком под зад на мороз. Банально, есть какая-то древняя хуйня, которую никто несколько лет не саппортит и надо асапом починить баг, иде предложила заинлайнить out параметр и потом выясниться, что ты сломал билд.
Почему код не переписывается? Потому что на проекте ты работаешь не сам. Ты либо обосновываешь причину переписывания, делаешь пруф оф концепт и закладываешь в эстимейт, либо идешь нахуй. Потому что после переписывания ты можешь что-то сломать, что не понимаешь как работает, и после тебя нужна полная регрессия на несколько недель.
Допустим ты обосновал. Но и тут ты можешь пойти нахуй, потому что переписывание сопряженного с риском снежного кома. Когда переписание одной хуйни, заставляет переписывать другую хуйню, она в свою очередь третью и так далее. Точечно переписывать еще уметь надо, если это вообще возможно. И надо отдавать себе отчет, что ты точечным переписыванием порождаешь еще большее говно, потому что в итоге будет 2+ стилей (не код стайлы) написания кода: древнющее говно, чуть новее, еще чуть новее и так далее. И надо саппортить все стили. Причем пока ты переписывал, появилась новая ебанейм и давай переписывать по новой.
Да и ваще, знание нового языка не гарантирует, что твой мозг осилит переписать старый код на новый формат. Надо знать не только новый язык, такое в книгах по типу рихтеров не пишут.
>А чё там знать надо? Открыл доки по System.Reflection и ебашишь. Я бы бежал с проекта, где требуется знать рефлексию. Этими вопросами проверяют объем знаний, чтобы когда ты пришел на проект, понимал как работает хуйня нейм пронизанная рефлексией и не задавал вопросы другим, чем проебывал их и свое рабочее время. Обычно это какая-то дрянь, которую опасно трогать или опасно изменять что-то в зависимостях (особенно весело, когда зависимость подкидывается из вообще другого репозитория бинарником во время билда), а баги фиксить надо.
>А что рантайм? Что про него надо знать, кроме того, что он есть? Я бы спрашивал про жит и потом про ту новую хуйню, которую добавят с .net 6, с точки зрения профилировщиков.
>будут по БД дрочить, а не по .net На позиции помидора обычно за язык почти не спрашивают, только если ты совсем долбаеб, который не может рассказать интересно про себя, как ты ракеты в космос запускал.
>со своим продуктом для российского сегмента От таких проектов надо бежать так, чтобы аж пятки сверкали. + все передовые знания - это или английские статьи/блоги (не книги), или конференции в каком-нибудь сиднее. Да даже если не в сиднее или еще где, в рашке на конфу от жетбреинсов часто приходят инглиш спикеры, субтитров нет, соре, или жди видос на тытрубе полгода, пока знания пылью покроются.
>>2079605 > все передовые знания - это или английские статьи/блоги (не книги), или конференции в каком-нибудь сиднее
Так статьи и видосы с конференций никак не разовьют разговорный английский. Вот я без проблем понимаю на слух английский, читать могу даже художественный текст, письменный английский более менее, когда есть время подумать над тем что собираешься написать, но разговорный английский посредственный. К тому же я еще и асоциален, у меня и с разговорным русским проблемы, лол.
>>2079642 >Так статьи и видосы с конференций никак не разовьют разговорный английский. Я про необходимость знать инглиш, а не про его развитие. В случае с конфами, я имел ввиду конфу в живую, когда есть возможность задать спикеру вопрос и нет возможности поставить конфу на паузу или перемотать.
>Вот я без проблем понимаю на слух английский Не верю, так как была такая же проблема. Легко проверяется попыткой повторить несколько реплик слово в слово по памяти из какого-нибудь видео типа https://www.youtube.com/watch?v=-uPaSOD7Dvk особенно с 1:30. Обычно такие видосики используются при проверке листенинга на аппера. Так это еще чистый инглиш, что уж говорить, когда это какой-нибудь швед или поляк.
>>2079660 Я никогда не запоминаю слово в слово что говорят, не важно какой язык Я только общий смысл того что говорят для себя улавливаю и все. Даже если бы видео было на русском, я не вспомню, что там дословно говорилось в середине видео Своими словами рассказать, это я могу, но не дословно
>>2079673 Смысл в повторении. Прослушал фразу и сразу повторил, прослушал следующую фразу. Значит ты не понимаешь на слух английский, все просто. В случае с русским, плохая аналогия, на английском ты пропустишь мимо ушей всю фразу с непонятыми словами и посчитаешь, что ты понял смысл, что, впрочем, ты сделал тоже самое с моим постом выше дважды.
Да, возможно такая практика помогает улучшить разговорный, ту я не спорю. Но это не отменяет того, что Listening и Speaking это два независимых скилла, не случайно они разделяются при изучении английского. Незнакомых слов я для себя в этом видео не встретил, даже более того, я попробовал синхронно переводить на русский и у меня это получилось. Что подтверждает, что понимание всего что там говорится есть. Иначе бы я не нашел подходящих слов в своем родном языке сразу же.
>>2079660 > Я про необходимость знать инглиш, а не про его развитие. В случае с конфами, я имел ввиду конфу в живую, когда есть возможность задать спикеру вопрос и нет возможности поставить конфу на паузу или перемотать.
Ты хуйню несёшь, конфы нахуй никому не нужны, все написано в статьх книгах и уж тем более задавать дебильные вопросы из зала это вообще пушка. Вообще съебите уже отседа в собес тред, а то засрали все тут своим оффтопом.
>>2067562 (OP) Учитывая то, что майкрософт сейчас сконцентрировал внимание разрабов на своем майкрософт сторе в вин 11, форсит свою экосистему и по сути, привязывает железо к своей продукции со своим tpm и угрожает полностью уничтожить пиратство на винде, то, перспективнее всего наверное вкатываться в С#?
>>2079660 Чел, если ты чего-то не знаешь/не умеешь, это не значит, что все вокруг обязательно такие же. Прекращай проецировать. В твоём видео не встретил ни одного непонятного слова, слушаю точно так же, как русский язык. Учись, тренируйся, а не придумывай себе оправдания.
>>2079706 Это ты бумер ебаный не в теме последних новостей и вообще не знаешь ничего о том, что в современном мире ИТ происходит. Съеби в свою пещеру, шлюха старая
>>2079713 И? Райдер на жабе написан, вскод на жс, докер на го. Где концентрация внимания на сторе, болезненный? У рядового пользователя и компа-то нет. Ты из какого года вылез?
>>2079737 Так вопрос до какого процента в итоге эта ниша скукожится... Дриснятку-то наоборот чуть ли не бесплатно на арифмометры проталкивали только бери, и то хуй там.
>>2079605 > А если начнешь хуярить везде спаны, жалоба на тебя, пидораса, и пинок под зад на мороз. Ну охуеть. И с хуя? Вот банально я веселюсь с сокетами. Ты мне предлагаешь вместо божественных Span использовать массивчики? Да иди ты нахуй, Span удобнее на уровне парсинга пакетов, плюс я могу использовать пайпы и если пакет не до конца собран - не двигать буффер, я попарсил - собрал запрос, передал его на уровень приложения, получил респонс, ответил. Что тебе в спанах-то не нравится, ирод? Удобная вещь же.
>>2079834 Всмысле. Как ты предлагаешь мне кастомный бинарный протокол иначе обрабатывать? Как? Я вот не знаю. Если бы был готовый - я бы с радостью взял, но нету. Остается - бреть сокеты в руки и пилить.
причем я ничего не нашел в нете, мне кажется что это настолько просто что никто даже не не обсуждает это но у меня конкретно затуп, смотрите, у меня есть обжект, он представляет из мебя массив втрингов НО когдая пытаюсь получить доступ к елементу массивана втором скрине компилятор возвращает ошибку!
ЭТО КАК ТАК-ТО? типа массив есть но его как бы нет? что за чушь? как это побороть?
>>2079854 Так это все не то. Есть протокол, у него несколько уровней вложенности: Канальный - который позволяет разбить поток байт на отдельные сообщения. Какой-нибудь - дополнительный, который содержит хеш для проверки того что сообщение не повреждено Прикладной - уже содержит сообщение для приложения, типа длина сообщения, команда, и дополнительные данные, если команда их предполагает. В байтовом виде оно как-то так выглядит: [байт начала, [[длина, [прикладной уровень]], хеш], байт конца] И так заложено в железках, с которыми предполагается коммуницировать моей программулиной. Допустим у меня сервер коррекции времени устройства, команда от устройства - одна : 0x01 - скорректируй время данные, данные которые передает устройство - текущее время +отклонение которое считается нормальным, в ответ я должен послать 0x02 и число секунд на которое необходимо скорректировать время, при этом первый байт - 0 если числ положительное, 0xff - если отрицательное, второй - секунды. И таких сообщений на самом деле много может быть, всякие запросы на получение идентификатора устройства, передача каких-то сообщений о попытке взлома, сообщение о том что батарея садится и т.д. Каким образом твои решения помогут мне? И если таки они должны помочь, то почему те кто Modbus реализуют в шарпе - не пользуются ими, а пилят так же с сокетов/компортов?
>>2079899 > как ты это делаешь Всмысле как? Майки сделали System.IO.Pipelines.Pipe. У Pipe есть PipeReader-PipeWriter. PipeReader- для потребления того что там написали, PipeWriter - для наполнения. Сокет пишет в Writer что получил, Из ридера мы читаем, получаем ReadResult, у него есть буффер. Этот буффер в SequenceReader и отадем это в парсер. В парсере - магия. Если распарсили - передвигаем буффер на количество байт которое было потреблено(читай длину сообщения), если не распарсили - не передвигаем и ждем пока получим новую порцию данных. Собственно все. Код показать не могу, сорьки.
>>2079953 не понимаю, у меня есть там внутри список параметров, буквально, "параметр1" "параметр2" и так далее, мне нужно их достать, нахуя делать тогда апи с которым никак не можно взаимоджествовать, нахуя это этот сраный девекспрес тогда вообще нужен если я даже сраные фильтры прочитать не могу которые мне НЕОБХОДИМЫ
>>2079996 Ты что волшебник? ты знаешь что нельзя магию вне Хогвартса использовать, что это за заклинание такое странное?
да оно работает ИДЕАЛЬНО!
горахдо лучше того костиля что я накотилял с динамиком но я ВООБЩЕ не понимаю как оно работет, для меня это реально магия какая-то, можешь обяснить в чем суть заклинания и как оно работает?
>>2080041 Ну тот анон как-то кастанул это заклинание, значит он примерно понимает что это и как оно работает, и вот что бы не езнуть случайно потом я тоже хочу быть посвещенным в это тайное знание
>>2079981 Я просто предпочитаю использовать то, что есть из коробки и что майки сами используют(пайпы они в кестрелле используют, например), чтобы свести к минимуму ситуацию, когда автору надоело, контора что развивала - разорилась и прочее. >>2080108 Просто я не хочу распинаться про парсер(вопрос то был про работу с буффером), достаточно было сказать, что он парсит последовательность байт. Любой, у кого в вузе была теория автоматов, понимает как работает парсер, да и без вуза, кто пытался что-то сграббить и писал свой граббер - тоже понимает.
>>2080037 Это троллинг чтоле? >В 21 году. >В треде шарпа. >Анон не знает дженерики и воспринимает как магию. >В то время, как дженерики даже на самых уёбищных метанитах сразу же преподают.
>>2080618 Не обязательно. Вполне вероятно, что челу никогда не приходилось работать с таким. Особенно учитывая что шарп умеет часто догадываться о типе дженерика из контекста.
>>2080837 Не похуй, но нужно понимать, когда стоит, а когда нет за ним гнаться. Этот метод я не думаю что будет вызываться миллионы раз в секунду. Ну и да, я там тупанул чутка. Не обязательно было городить метод, в случае того анона достаточно было as string[] использовать, правда тогда бы дополнительно нужно проверять на null. Ну а так - предложи свое решение, няша. Я же даже не джун, студент обычный, первый курс только закончил, могу чего-то не знать.
Ребяты вот есть у меня Model настроек. В этих настройках есть 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(); } }
>>2080888 Каждый вызов линк, а их там три, создаёт объект енумератор, и каждый из них делает перебор массива. Можно же было сделать один перебор массива, добавляя нужные элементы в буфер, и вернуть его как span, если не весь заполнится.
>>2080992 Ну, я тоже пришел к такому выводу. Раньше думал - ну, если ванлайнер - то норм, но блядь, потом оказывается, что ванлайнеру что-то добавить нужно или поставить брейкпоинт. И заебывает каждый раз убирать эту стрелку и добавлять скобки. Уууууу, реально, потому в настройках студии стоит как ошибка. То же кстати и с однострочными if, foreach и т.д. Лучше будут скобки везде, чем потом их добавлять каждый раз.
>>2081040 >или поставить брейкпоинт. И заебывает каждый раз убирать эту стрелку и добавлять скобки. Ты совсем ебанутый? Брейкпоинт нормально работает на стрелке. Скобки добавляет/убирает иде.
Внимание вопрос. Если напишу так var result = context.Entities .FromSqlRaw(SqlString) .Select(e => e.Id) .ToList(); (в SqlString Entitу отсортированы по некоторому параметру) сохранится ли порядок в result? (так-то он сохраняется, но меня интересует гарантировано ли это или мне просто везет). И если нет, то какие варианты? Я конечно могу сделать так var result = context.Set<Id>() .FromSqlRaw(SqlString) .ToList(); но не хочется засорять context лишними сущностями.
>>2081299 >сохранится ли порядок в result? Без сортировки зависит от количества элементов, типа провайдера и определений таблиц. С сортировкой должно вернуть с сохранением порядка, но зависит от ограничений провайдера.
Сишарпач, прошу помощи. Имеется некий общий ресурс string buffer; Есть два потока которые используют этот ресурс следующий образом: Первый поток в цикле while() ожидает ввода из Console.ReadLine() и записывает эти данные в буффер. Второй поток держит сервер и слушает входящие соединения, при поступлении запроса он отсылает буффер клиенту и очищает его. Вот код, что бы было понятнее: https://pastebin.com/EZtnW5cD
Так вот, я опасаюсь что когда второй поток будет очищать буффер, произойдёт переключение контекста, и туда запишутся важные данные, которые смогут быть утеряны при обратном переключении контекста. Как мне приостановить работу первого потока, на время пока я отсылаю данные из буффера и очищаю его? Заранее благодарю за помощь, в C# и .NET только осваиваюсь.
>>2081372 Какая-то хуйня, а не код. 1. Начни с критической секции на чтении и записи в буфер. У слушателя обнуляй сразу буфер как записал в другую переменную значение, чтобы уменьшить зону критической секции. 2. Переделай все на событийную модель с использованием Rx или MQ.
>>2081372 Я не знаю что там тебе нужно, но я бы как-то так вот сделал для прототипа, а дальше - в зависимости от того что надо. https://pastebin.com/80ChXCj2
>>2081372 А относительно твоего вопроса. Схороняй просто перед тем как ты собираешься преобразовать строку - длину отправленного и чисть не весь буффер а только длину отправленного, обмазовшись критической секцией.
В общем, есть одна форма, на которой должно сравниваться значение в текстбоксе (строка, которую вводит пользователь) со значением определённой строки в файле, и если ввод пользователя идентичен этой строке, то значение у RightAnswers должно увеличиваться, если нет, то увеличиваться уже у WrongAnswers; но почему-то во всех случаях, что бы я не вбивал в текстбокс, значение увеличивается только у WrongAnswers. Где я долбоеб?
>>2067562 (OP) Сап. В чём разница между WPF Application и WPF App (.Net Framework)? Или между Windows Forms App и Windows Forms App (.Net Framework)? Неужели один из них не имеет поддержки .Net Framework? Бред же какой-то
>>2081497 Боже, а в чем разница между .Net и .Net Framework? Я думал, что первое - это платформа, которая включает в себя второе. В этом говне черт ногу сломит. учитывая ахуительную точность определений, через которые это описывается.
>>2081481 >Неужели один из них не имеет поддержки .Net Framework? Кор умеет запускать .NET Framework напрямую в обход .NET Standard. Начинать проект на .NET Framework будет только на голову отбитый.
>>2081503 >Начинать проект на .NET Framework будет только на голову отбитый. А НАХУЙ ОН ТОГДА НУЖЕН БЛЯДЬ КАК У МЕНЯ ЖОПА ГОРИТ С ЭТОГО НЕОЧЕВИДНОГО ГОВНА
>>2081502 .NET - это переписанный на кроссплатформу и заоптимайзанный .NET Framework. Только WPF и WinForms - это виндоуз онли + писать что-то сложнее хелоу ворлда на оных на .NET - плохая идея, технология сырая.
>>2081502 >Боже, а в чем разница между .Net и .Net Framework? Так это разные рантаймы, фреймворк это уже говно мамонта прибитое гвоздями к винде. Net Core (а теперь просто .Net) это новая стильная молодежная кроссплатформенная опенсорс платформа (но винформс и впф все равно, очевидно, прибиты к винде).
>>2081516 Ради перформанса и новых фич платформы. Сложный гуи все равно на плюсы будет переписан, а для гуи уровня хелоу ворлд сгодится и такая нестабильная связка как WinForms/WPF + .NET.
>>2081529 То есть мне .Net5 лучше выбирать, чем кор 3.1 как таргет? >>2081529 >(но винформс и впф все равно, очевидно, прибиты к винде). Но ведь кроме них для десктопа остаётся только UWP......
>>2081532 >Сложный гуи все равно на плюсы будет переписан Это что за гуй такой должен быть, что ради перформанса его на плюсы переписывают?
> такая нестабильная связка как WinForms/WPF + .NET. Как она может быть нестабильной, если это технология той же ультра копро рации Майкрософт, которая и винду делает?
>>2081550 >То есть мне .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).
>>2081550 > .Net5 лучше выбирать, чем кор 3.1 как таргет? Если нет причин выбрать кор3, то да, по умолчанию выбирай Net5. А коль у тебя не мегапроект живущий в экосистеме, где все на кор3, то у тебя причин выбрать кор3 не будет. >Но ведь кроме них для десктопа остаётся только UWP Ты не представляешь на сколько глубока кроличья нора. Xamarian, Avalonia, а теперь еще пилят MAU, WinUI и еще про какие-то слышал, и кто из них кому родня, кто продолжение, а кто параллельная ветка я хз, давно ничего под десктоп не писал. >ради перформанса его на плюсы переписывают? >Как она может быть нестабильной Не обращай внимание на плюсодурочка
>>2081648 Тебе достаточно было удалить AssemblyInfo.cs или дублирующие свойства в csproj. Это проблема твоего шаблона проекта. Ты можешь свой шаблон создать, если хочешь.
>>2081471 >Где я долбоеб? 1. Ты когда читаешь файл, не указал кодировку файла. 2. Стрим надо диспозить, а не клоузить. 3. Нахуй ты в цикле обновляешь UI? Твой вайл зафризит UI, пока обработка не закончится. 4. Комментарии врут. Особенно комментарий на сплите. Другие комментарии - капитан очевидность. 5. Строчка 13 не учитывает культуру. ToLower ведет себя по разному в зависимости от языка и текущей культуры. 6. Код надо разделять на слой отображения и слой обработки, а не писать все в одном супер классе. 7. Ты можешь поставить брейкпоинт на строки 4 и 13 и найти что не так. Или логи добавить. 8. Конкатенция строк в цикле - это вообще пушка.
Столкнулся тут ещё с одним диссонансом. Есть методы, которые принимают ID в виде строки, либо в виде коллекции. Допустим, 'GetUser' или 'GetMessage'. Параметры в них называют 'userId' и 'messageId'. Но если метод возвращает коллекцию, тогда они называют параметры просто 'users' или 'messages'. Почему приписку 'ids' опускают? Или это просто вопрос удобства? Я бы назвал 'usersIds' и 'messagesIds'.
>>2081569 >.NET низкий шанс, что ты хоть как-то будешь касаться декстопа или делать что-то сложное на декстопе Этот голос с веб-параши постоянно раздаётся. Но это просто у тебя инфо-пузырь такой. Пикрил например написан на дот.нете, а лицензия на одно рабочее место жирненького нефтяного кабанчика без допов стоит 300 тысяч баксов для нищего СНГ-рынка (с доп. модулями, без которых никуда, и больше 2 лямов можно нагрузить) + тех. поддержка 20% в год. Как я сейчас вижу, b2b приложений под винду на дотнете пишется очень много и денег там просто дохуя, на порядки больше, чем во всей веб-помойке для нищих жадных миллиардов ноунеймов. Продать 3 лицензии крупному кабану, а затем стричь его, получая ежегодный почти пассивный доход, проще, чем пытаться покорить сотни тысяч школьников и безработных бездельников, которые капризны, но при этом и доллар хер тебе заплатят.
>>2081710 согласен, тоже кекаю с продажи нищему говну хуеты, так можно опустится до уровня сяоми с экономией всего и на всему вместо заниматся тем что нравится без урезаний бюджетов и прочего и делая это красиво плюс не ебешь мозг себе антифрродом и что твою программу или игру хакнут шкальники шоп надюпать там олмазов
>>2081733 типо да не буду я платить 100 ре за шеколад, вон мне вася обещал за 10 ррублей насрать на миску, цвет похож, вкус не похож зато я могу набрать 10 васей что высрут мне 10 мисок с говном
>>2081710 >Этот голос с веб-параши постоянно раздаётся. Я говорю про .NET и что он сырой для WinForms/WPF. Чел мне приводит аргументом софт, написанный на .NET Framework 4.5. Совсем ебобо?
Еще вопрос, чем рисуется этот 3D window. Написать такое можно, используя интероп типа мертвого SharpDX или еще более мертвого SlimDX. Или, что более вероятно, это итероп говна мамонта - OpenGL. Вероятность вулкана около нуля. Скорее всего, если это вообще WinForms, а не кастомная херь, компонент напедален как сторонний пакет кем-то другим, не важно на чем, хоть на C#.
Про веб я ничего не говорил. Но раз ты начал за веб, то: >под винду на дотнете пишется очень много и денег там просто дохуя Вакансий под веб в несколько раз больше, чем под декстоп. Декстоп надо знать даже педаля под веб. Денег в декстопе дохуя, бесспорно, но саппортить надо очень страшное легаси говно. Еще больше денег в документообороте, но тебе жить не захочется.
>>2081737 похуй на чем оно высрано, хоть на блекбоксе, вопрос в нужности и актиуальности, бизнесу всегда нужен софт, а шкальникам, не дала мамка денег на новый премиальный хуй за 20 ре - 10 ре комиса и все удоляетт нахуй игру
>>2081748 Из которых ты половину тратишь на всякие антифроды, а если еще и ебонут нахуй экономику в игре то пизда. А потратил ты на маня-игру и ее разработку не ебу сколько но дохуя не меньше 5млн точно. Через годик про игру забудут и будешь тратить только на поддержание ее, играть будут все меньше.
В целом играть с говноедами и иму гождать смысла ноль учитывая фрагментацию платформы, дохуя корявого железа и ноль способов это все отладить
>>2081750 >не меньше 5млн точно Из которых разработчику перепадет нихуя. Даже если потом надо будет саппортить эту игру, не важно какая прибыль, у разработчика ставка не изменится. Поэтому я хуярю IaaS.
>Через годик про игру забудут Новости два года. Эта игра выбилась в топы на китайском рынке. На недавнем стриме годовщины смотрело 10 млн людей. Если про игру забудут, овнер сделает редизайн под другим логотипом, если ему бабки еще будут нужны.
Ты уже определись какой софт хочешь педалить. Где больше шекелей отваливают, где интересные задачи или где нужен пассивный доход (это вообще не про разработчика, лол, и ты увел тему вообще в бизнес, к языку разработки это не имеет отношение).
>>2081689 Разрешите доебаться. >Стрим надо диспозить, а не клоузить Rly? (см. пик) Если уж и советовать поменять close, то на использование using, чтоб было меньше шансов проебаться. >не указал кодировку файла А зачем, если все равно utf-8? Нет смысла указывать значение, которое и так будет по дефолту. Тут вам не там. > Строчка 13 не учитывает культуру Ну справедливости ради, как раз учитывает. Но да, лучше тут через инвариантную сделать.
Поясните, на каком симпозиуме было принято решение, что инкапсуляция должна в себя включать еще и защиту состояния объекта? Может быть я что-то пропустил?
Почему нельзя методы класса помечать как readonly, чтобы явно был понятно, что их вызов не меняет состояние? И соответственно, чтобы компилятор это проверял. Планируется ли внедрить такое в нет6?
>>2067562 (OP) Правильно ли я понимаю что с интервалом в 1 секунду код постоянно запускает функцию go? просто у меня в какой-то момент прога будто вырубается, первую минуту работает а потом всё
>>2083098 > как мне надо Ааа... Замшелый старпёр, не могущий осилить System.Drawing? Ясно-ясно. >>2083049 > Можно ли на шарпе написать графическое приложение для вывода массива пикселей в прямоугольную область? Можно. Paint.Net тот же, например.
>>2082653 >Правильно ли я понимаю что с интервалом в 1 секунду код постоянно запускает функцию go? Нет. Говнокод единожды запустит go через textbox3 секунд
>>2083393 Да. уже разобрался, почему-то прогер тут стоп поставил, логику его не вдуплил, в итоге чтобы потоками не загружать я просто вайл тру прикрутил. Сук фрилансеры бля, 5к отдал за то что сам пофиксил
Помогите кто-нибудь, я уже весь мозг сломал. Есть приложение на сетевом диске. Если его запускает только один пользователь, то всё нормально, но если пытается запустить кто-то ещё, то у него оно не запустится. В чём дело? Я уже кучу всего перепробовал и нихуя не помогает.
>>2083630 Дело в том, что уже ранее так делалось и никаких проблем не возникало по какой-то причине. Никаким разделением доступа я отдельно не занимался, оно просто работало.
>>2083641 Сделай утилиту (или загугли одну из сотен имеющихся) которая синхронизирует файлы в локальной директории с серверной директорией, при запуске синхронизируй и запускай своё говно локально, не еби мозги ни себе, ни людям.
Подскажите неофиту как нормально засплитить строку? Вот есть string.Split, я скармливаю перечисление char символов, и он возвращает мне массив без этих символов, но я все еще хочу засплитить пробелы. Вот пример: "хуй пизда (джигурда)", я хочу "хуй", "пизда", "(", "джигурда", ")".
>>2083909 При желании - можно. Другое дело что нужно помнить, что VS For Mac - это бывшая моностудия. Не критично, но придется в различиях в этом плане придется разбираться.
>>2071715 Как уже говорил чел выкидываешь ef и пихаешь такие данные в редис или монгу, ты знаешь, что поддержание консистентности бд довольно таки много времени сжирает, открывает дохулярьен физических потоков, я бы не сказал, что это хорошее решение. Ты даже можешь использовать свой ef в другом модуле бд. Он будет вытягивать данные из редиса с какой-то периодичностью и сохранять в sql базе данных.
Гайз надо совет, полгода назад перешёл в новую контору на мидла, за этот период получил хорошие фидбеки и мне предложили попробовать сдать экзамен на синьйора. Так я глянул что там, там полная жесть, около 25 разных тем. Куча инфы которую нужно вызубрить, начиная от plinq, odata, code contracts, веб, клауд, деплой, тестирование и процессы
Экзамен длится около 3 часов, есть возможность оспорить результат если спрашивали не по теме
Собственно вопрос, синьйоры реально всё это знают или меня пытаются развести на время чтобы просто не апать зп? Как по мне, так проще заново устроиться на синьйора чем пробовать сдать экзамен здесь
>>2085109 Я хуй знает. Но то что ты перечислил - у меня спрашивали для джуна. Для человека с вышкой - это пройденный этап, вне вузовской программы только деплой находится.
По твоему вопросу. Получить прибавку и грейд на другом месте обычно проще, чем на текущем. Но, если тебя самого хотят протестировать и дали список тем, я не думаю что это обязательно чтобы развести, в некоторых конторах просто есть формальные процедуры, просто уточни у коллег - как оно происходит и насколько жестко и подготовься.
>>2085503 Ты создал массив TextBox'ов. TextBox - ссылочный тип. Массив при создании - заполняется значеним по-умолчанию. Для Ссылочных типов - это Null Таким образом у тебя при попытке обратиться по индексу - получается NullRefirenceExeption.
Суть, заполни массив значениями для начала.
var txtBxArray = Enumerable .Range(0,5) .Select(_ => new TextBox()) .ToArray();
>>2085582 А понял, у тебя же все через жопу. Если это единственные текстбоксы на форме, то можно их получить так this.Controls.OfType<TextBox>().ToList(); и по ним идти циклом (new TextBox уже не нужен). Если это НЕ единственные текстбоксы, то можешь их закинуть на панель и достать так: panel1.Controls.OfType<TextBox>().ToList(); p.s. мог в синтаксисе ошибится, но студия тебя поправит
>>2085589 >Дык просто мышкой расставил Те что мышкой расставлены, и те что через new в коде никак не связаны. Но я тебе написал как получить те, что мышкой раскиданы >>2085588 Почитал бы что нибудь про классы, а то это же срам
Как в визуалстудии просто писать имена созданных в самой студии файлов, и чтобы не было такой ошибки? А то чё за хуйня, при работе с C/C++ так можно, а тут, видите ли, этой залупе нужен полный путь, ваще охуеть.
Отзывчивые, вот есть у меня в проекте Asp net Model пусть будет A, она имеет отношение Один-ко-Многим, там дохуя полей 50+, и вот хочу я создать ViewModel, правильно будет перенести все поля из модели А в ViewModel, создать класс который бы конвеннтировал ВьюМодел в Модель А и в контролере уже Конвентировать ВьюМодел в А модель и сохранять в бд?
>>2086142 > правильно будет перенести все поля из модели А в ViewModel Если в данной вьюмодел нужны все поля . Суть-то MVVM в том, что ты вполне можешь делать несколько вьюмоделей для одной и той же модели, можешь сделать фассад из нескольких вьюмоделей и т.д.
Ну, допустим, у тебя есть класс Car у него может быть набор свойств, который может быть сгруппирован, допустим - у тебя сайт по продаже машины, ты можешь сделать CarOwnerContactInfoViewModel - где от всей модели ты будешь доставать только то что касается информации о текущем владельце машины(его телефон, почта, телега и т.д.), CarTechnicalDescriptionViewModel - с характеристиками машины(пробег, двигатель, попадала ли в аварию и т.д.) и т.д. а потом, если тебе нужно, это все - спрятать в фасад DefaultCarViewMpdel который наружу прокидывает свойства нужные, а внутри использует уже эти вот более специфичные ViewModel'и.
Есть пара вопросов и домыслов, вытекающих из вопросов. Будет здорово, если ответите.
1. Стоит ли учить c# сейчас? Пестрят новости о вин11, которая запускается на мобилках, а это значит, что андроид может заглотнуть огромный болт и десктоп приложения будут запускаться и на мобилах (написанные на c#) 2. Устроился работать в контору (в техподдержку). Через год тут есть варик стать шарпистом (зп от 110к, как мне сказали). Как обычно происходит перекат из техподдержки в разработку? (сам на данный момент знаю базовый синтаксис многих ЯПов, т.к. в вузе прогали). Думаю, весь этот год буду задротить c# + .net. 3. С чего начать изучение c# и полноценного программирования (ооп, solid, mvc, mvvm и прочую хуетень). Как понять, что такое .bet и чем отличаются версии? Хочу учить c# исключительно по книге, может подскажете годную? (параллельно, естественно, буду гуглить)
>>2086520 Файловый стрим позволяет побайтово читать и устанавливать позицию где хошь. Делаешь свой велосипед в виде FileReader, делаешь обертку над потоком FileStream и как тебе удобно читаешь.
>>2086541 > Стоит ли учить c# сейчас? Почему нет? > Как обычно происходит перекат из техподдержки в разработку? В душе не ебу, я после вуза сразу пошел в разрабы
> С чего начать изучение c# и полноценного программирования Если общие концепции(переменные, ветвления, циклы, функции и т.д.) понимаешь и в состоянии написать калькулятор с порядком действий - с изучения особенностей языка на котором собираешься прогать. Про солид и прочее - практика. Только реальные проекты покажут нахуя оно вообще нужно, т.к. если ты кодишь в вакууме - ты будешь постоянно натыкаться на непонимание: А нахуя мне так делать, если вроде как проще сделать вот так. Попробовав сделать те же крестики-нолики, а после этого добавить кастомные правила, ввести игру по сети, добавить лидерборд и т.д. - помогают понять нахуя оно вообще нужно, когда что применять. Свои проекты - не меньше 10к строк кода, чтобы прочувствовать нарастающаю сложность и понять, что кодить как раньше - не получится(конечно если у тебя нет синдрома яндере-дева, если таки заметил что оно проявляется (добавление новой функциональности приводит к тому что тебе приходится менять существующий код и занимает все больше времени) - остановись и погугли всякие бест-практис и посмотри как умные люди делают, для примера - смотри исходники Nancy - это наверное одна из самых красивых вещей что вообще может быть). Так вот, кодя свои вещи - разовьешь чувство прекрасного, а именно это чувство позволяет после того как ты наговнокодил остановиться, взглянуть на все это, проверить работает ли, и после того как понял что работает - сделать красиво. Про книги - второй пост этого треда.
>>2086541 >Через год тут есть варик стать шарпистом >как мне сказали >Как обычно происходит перекат из техподдержки в разработку?
чувачок, так всем говорят, чтоб сидели, заявочки закрывали и не кукарекали. придёшь к начальству через год - скажут, что тебя некем заменить и пока придётся поработать ещё годик, потом ещё...
>>2086541 >Стоит ли учить c# сейчас? Если начинать учить ЯП, то желательно с целью возможного трудоустройства, на решетках шанс крайне низок и то, придеться выгребать тонны говна из под легаси >Как обычно происходит перекат из техподдержки в разработку? Никак. Были мифы, что QA переходят в девов, такой же пиздежь, как и саппорт. Ты же блять не пишешь код, как ты перекатываться собрался? Или объясняя кастомеру, как работает бизнес в приложении ты научишься писать? Где блять логика? > С чего начать изучение c# Двачую этого >>2086586 но идея с крестик-ноликами - хуета. Лучше начни писать клон твоего проекта, над которым будешь сидеть пропердывая штаны в саппорте. Или то, что хотел реализовать. >Хочу учить c# исключительно по книге максимально тупая идея. Тех литература - это не худ. произведение и не читается упорядоченно. Могу посоветовать задрачивать Code wars, алгоритмические задачи, дискретку и прочие штуки, которые развивают логику, т.к. это универсальный инструмент и это то, на чем тонет любой июнь. И да, 100 раз подумай, прежде чем браться за #. Время - самый ценный ресурс.
У вас такая же залупа как и с жавой, то есть без конца пердолить фулстек круды по одному единственному стеку? В жабе это спринг, jsp и всякое hibernate говно, а у вас что? Эх как же хочется писать просто на девственном языке, без всяких помойных фреймворков...
>>2086676 >Ты же блять не пишешь код, как ты перекатываться собрался? Или объясняя кастомеру, как работает бизнес в приложении ты научишься писать? Где блять логика? Я ранее написал, что буду учить ЯП. На работе тем более заинтересованны в развитии сотрудника. Это не та контора, где набирают долбоёбов, чтобы закрывали тикеты, просто потому что их мало очень. >И да, 100 раз подумай, прежде чем браться за #. Время - самый ценный ресурс. А что такого? Ну буду копаться в легаси за 150к, для меня это очень ахуенная зп (для моего региона). Недалеко от дома стоит заводик, где всегда требуется шарп разраб, просто wpf клепать и всё. ЗП 80к, работы на полтора часа в день. Да и в тп я уже на 60к со старта сижу. Через год либо грейд до 85к зп, либо переход на шарп разраба.
Собеседуюсь на джуна. На втором собеседовании хуй-лид начал задавать вопросы по хубунту. На мой вопрос, нахуй линукс нужен шарписту, он сказал, что я не подхожу их компании (культурно).
>Microsoft признала историческую ошибку в отношении open source >Президент Microsoft Брэд Смит (Brad Smith), выступая в MIT, заявил: «Microsoft заняла неверную сторону, когда open source «выстрелил» в начале века; то же самое я могу сказать и о своей личной позиции». Смит работает в компании более 25 лет, он один из ведущих юристов компании, лично участвовал в юридическом соперничестве с открытым ПО.
>В 2001 году экс-глава Microsoft Стив Балмер (Steve Ballmer) обозвал Linux «раком, который пожирает всё чего касается в смысле интеллектуальной собственности» (правда, спустя 15 лет он смягчил свою позицию, заявив, что в 2016 угроза от Linux – «в зеркале заднего вида»).
C# Полностью отошёл от винды, теперь это кроссплатформенный язык.
Смотрите. У дедов что 15+ лет опыта на моем месте работы - на один микросервис: 1, ну максимум 2 класса с логикой что нужна микросервису в плане работы (всякие сущности из БД, DAL и веб-апи контроллеры выносим за скобки), обычно это какой-нибудь класс с говорящим именем Application/Worker на 2-10к строк, все что описано в ТЗ относительно необходимого функционала микросервиса - у них в этом классе, и судя по всему - им удобно с этим управляться. У меня же - классов 50-100 бывает в микросервисе, пусть это все еще те же 2-10к строк исходного кода, мне-то тоже удобно, но я заметил, что деды с недоверием смотрят на мой код, а краем уха слышал, что они считают подход: Делать много маленьких классов на каждый - некруто. Вот я и не понимаю. Я делаю что-то не так?
>>2086723 Деды забивают на принцип единой ответственности. А новички наоборот разбивают все что можно разбить. Я думаю должна быть золотая середина. У меня у самого дохуя классов получается когда что то делаю.
>>2086706 >буду учить >заинтересованны в развитии сотрудника Я когда-то был таким молодым и глупым >буду копаться в легаси за 150к >ахуенная зп >ЗП >60к со старта >зп Программирование 2k21 - ЗП, а что дальше - хоть на голову срите. Ну удачи, хули. С твоим WPF и легаси хуйней. Свидимся в батхерд треде, где ты будешь сопли пускать, как въебал 2 года на дрочке формочек для Шindows и в итоге получил нихуя >>2086726 да много нормальных языков есть, рынок чекаешь и выбираешь. C# в какой-то мере хорош, но спрос на него - не очень. А тред бампается только потому, что студенты шараг бегут решать свои задачи
>>2086751 Хуй знает. Мне после года работы - постоянно звонят с предложением пройти собес, при том что я даже не бампаю резюме. Это я к тому, что работа есть. Вот то что на шарпе скучно, это другое дело, не чувствуешь что находишься в каком-то мейнстриме и вместе со всеми, а просто в стороне что-то клепаешь, получаешь денежку, что в мире IT, за исключением .net - узнаешь в нерабочее время, когда читаешь статейки и дайджесты.
>>2086776 >постоянно звонят с предложением пройти собес Так это их работа. Сейчас чел, который вообще не пишет может создать страничку в LinkedIn, написать, что владеет языком, который пользуется спросом на рынку и ему будут писать каждый день по 30 человек. Хочу сказать больше, HH даже блять не разбираются особо, кому они пишут. Приколы, когда не могли JS от Java отличить все еще актуален. >>2086789 >Удачи долбоебу саппорту, который будет сидеть на телефоне и тыкать по GUI готового приложения в надежде перекатиться в девы - удача точно пригодиться. Видел я уже таких, которые "Да главное вкатиться, дальше перескочишь на девы и пойдет". Можешь еще кстати в уборщики вкатиться - порог меньше, кастомеры мозги ебать не будут, гляди, перекатишься. Хотя что я тут распыляюсь, мне же похуй на тебя
>>2086723 >У меня же - классов 50-100 бывает в микросервисе Тебе кажется, что это круто, модно, молодежно. Но на самом деле ужасная практика при формальном её применении (как у тебя), и все кто так когда-то начинал, со временем отходят от этого. Нормальный класс и должен занимать 3-5к строк или больше. Скажем один большой класс легко прочитать, обычно даже просто сверху вниз, и понять, что он делает. Весь комплект подаётся как одна структурная единица, обычно даже в одном файле. Конспект на одном листке А3 прочитать, понять и поправить проще, чем кашу заметок на сотне стикеров. Когда ты создаёшь кучу классов, тебе может казаться, что ты дал им всем и всем их методам прекрасные названия, что даже читать их не надо, сразу всё само предвосхищается. Но на самом деле в подобных макаронах даже от крепкого сеньора невозможно разобраться без избыточных для такой задачи когнитивных усилий. Когда приходится скакать по куче классов и методов, реально устаешь. Если же всё это ещё и писал мидл из вкатышей, который относится к коду, как просто к работе, а не как к Творению, который и английский нихуя не знает, поэтому его названия классов и методов не читаемы, даже не смотря на то, что на русском он имел ввиду всё как надо. Вот эти вот супер-мелкие классы - это доведение некоторого разумного принципа до абсурда. Удивляюсь кстати когда кодеры упорно пытаются перевести на английский названия исключительно русской специфики, которые русским названиям из предметной области понятны всем, а английским переводом непонятны вообще никому, кроме возможно 1 человека-автора, пока он ещё помнит контекст.
>>2086728 >золотая середина This. Я лично держу максимальную планку в одном классе - 1к строк, когда этот порог превышен и вижу что уже поднимаюсь выше - начинаю рефакторить сам класс, если не получается опуститься к 1к - начинаю разбивать класс. В среднем обычно выходит по 300-400 на класс.
>>2086723 > классов 50-100 бывает в микросервисе, пусть это все еще те же 2-10к строк Ну это уже шиза, потом когда проект смотришь, да - всё разложено по полочкам, но начинаются бешеные скачки по всем этим файлам раскиданым.
>>2086776 >не чувствуешь что находишься в каком-то мейнстриме и вместе со всеми Что шарп, что всё остальное современное и хайповое в массах - это никакой не мейнстрим, а днище и простое ремесло для прокорма и сведения концов с концами. И это не от языка зависит. Вот поцики, которые для коллайдеров, марсоходов и автопилотов говнокодят на С или фортране - вот они на острие, а ты со своим ООП и чистым кодом никогда из болота и не вылезешь. Кто-то должен делать грязную работу.
>>2086798 Да я заметил, как тебе на меня похуй, раз пелену текста такую пишешь. Из-за таких как ты, многие и не вкатятся, потому что ты чухан обосрался когда-то во вкате, теперь всем говоришь, что они не вкатятся. Такие чуханы и дальше на саппорте остаются :) Главное почаще это пиши.
Посоветуйте книжку по ASP Net, сайт уже есть. html и css я сделал, есть данные, которые должны быть в БД. Нужно просто из этого собрать сайт, как это сделать наиболее безболезненно?
>>2086835 >html и css я сделал, есть данные, которые должны быть в БД Наиболее безболезенно все это собрать будет через путхон или пшп, Ты удивишся когда увидишь сколько кода нужно для того что бы просто сделать страницу с регистрацией и с добавлением просто строчки текста и выводом стой строки. Ну а вообще читай метанит, там все коротко и без воды.
>>2086842 > Наиболее безболезенно все это собрать будет через путхон или пшп Мне это в портфолио нужно, я .net разраб буду
> Ты удивишся когда увидишь сколько кода нужно для того что бы просто сделать страницу Так этот код для понимания нужен и для того чтобы легко расширять функционал
> читай метанит Спасибо
>>2086852 > Из книг фримена Большая книга, ладно начну с метанита
>>2086885 Ну, допустим, я создал объект класса FileStream. Какие методы мне позволить сделать то, о чём ты пишешь? Position только возвращает/устанавливает каретку? А считать данные как?
>>2086887 Ой, блядь. Ты там видел, что у тебя файла нужного нет? Тебе вот тут >>2085800 говорили как пофиксить. >Position только возвращает/устанавливает каретку? Да. >А считать данные как? Ты не поверишь, но через метод Read.
>>2086823 >обосрался когда-то во вкате >они не вкатятся >Такие чуханы и дальше на саппорте остаются твоя судьба в 3 строчках >>2086898 выше есть простыня с вопросами. Готовься к вопросам по работе CLR, GC, Reflection. Если будешь в норм компанию устраиваться, будут алгоритмы, могут по лит/code wars спросить. А вообще, спрашивают везде по разоному, могут по сиквету задрочить, могут по фронту заебать. Стэк ныне очень широкий.
Успешно изучал js - даже запилил парочку проектов для решения собственных вопросов. Когда дошел до html/css, понял, что ненавижу ебанную верстку всей душой. Осознал, что путь фронтенда теперь для меня закрыт. Решил перекатиться в C#.
>>2086929 если я что-то и порекомендую, то это может не взлететь в твоем конкретно регионе. Без шуток и смеха, я хотел вкатиться в 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, то в вебе будет мелкомягкие будут в жопе.
Выбирай язык, от которого шишка будет стоять и как минимум несколько вакансий джуна/интерна в твоем регионе. Советую не гнаться за деньгами, как этот додик >>2086706, иначе всю жизнь будешь в сапортах сидеть >>2086998 >Какие подводные? ух ебать ты попал. Это с ++ на # прыгнуть нехуй делать, а тут тебя ждет много сюрпризов. Готов работать с unmanagemend code? Хочу тебе представить InteropServices либу, загняли как нибудь на досуге, теперь, JS-нику, она понравится. Marshal класс пощупай, через тильду попиши что ни будь.
>>2086998 > путь фронтенда теперь для меня закрыт > Решил перекатиться в C# Нашел куда катиться. Блять как же меня бесят что в вакансиях требуют ASP .NET и вместе с ним html css js сука.
>>2087036 кроме веба работы нигде больше нет. Если совсем мучают html+css, советую посмотреть в сторону ведроида. На крайняк будешь Java знать (различие только в стандарте, J2ME/J2EE/SE). Там работы хватает. Если бы я сейчас начинал, наверное пошел бы в Swift (я не фанат мака, просто это один из немногих языков, которые я не щупал).
>>2087065 Маня, какие только в стандартах, различия там капитальные. Ведроид и интерпрайсопараша буквально два разных мира, где из общего у них только никому не нужные стд либы.
А есть хороший способ конвертнуть IEnumerable, возвращаемый асинхронным методом в List? А то вот так как-то не красиво что-ли: var list = (await foo.Bar(param)).ToList();
>>2087072 различие там пиздец какие, но хотя бы синтаксис после МЕ знать будет. >>2087076 >Работы на шарпе ПОЛНО. в твоем хуево-пердуево 3 места на инженегра winforms, чикальщик? Улыбают такие посты >>2087125 не работаю, перекатился в AngularTS после react js
>>2087137 >3 места на инженегра winforms Лол, а ты супер-прогер типа или что? На двачах такие не сидят. Ты выблядок уровня Jun+ максимум. Если что-то абстрактное дадут, то обосрёшься на раз-два. Что плохого в том, чтобы за более-менее бабки (100-150к) копаться в легаси и писать хуету, которая просто должна работать? Это самая простая работа. А уже дома пиши тот код, который хочешь. Ты пишешь словно об идеальном коде/программировании, а по факту ты обсеришься перед каким-нибудь помидором с опытом от 10 лет в разработке, который будет тебя собеседовать. Просто блять есть два стула. 1: пишешь говнокод за 150к в месяц, тратя 2 часа из 8 рабочих, а остальное время сидишь в соц.сетях 2: в ебейше крутой конторе работаешь за 200к, но въёбываешь все 8 часов, приходя домой ахуеваешь от такой жизни и выгораешь за год-два.
>>2087103 если вообще базы нет, то можешь идти. Но там сразу laravel/Yi2 нужно знать, плюс as i know пыхи и верстать могут и в WP могут напрячь и хуй что еще придумают. Но ООП там уебищное, что глаза на лоб вылазят. К примеру - нет дженериков и перегрузок методов, динамическая типизация >>2087137 я же написал, angular >Верстать много приходится? У нас есть верстальщики, мне повезло. А вообще, сейчас для фронта это норма. >упоминал лунукс На последнем # проекте, до того как он умер, хотели переводить микросервисы на линух, до этого дело не дошло. Пишу на винде >>2087155 от чего ты подгорел? от того, что на десктопе мало вакансий? Так это правда. >что-то абстрактное дадут ну давай, посмотрим. А то кроме как пердежа со стороны параши ничего не вижу >копаться в легаси и писать хуету тем, что ты хуемразь только о деньгах думаешь. Ты выгоришь и будешь прокликать свою работу, в очередной раз в течении нескольких недель делая правку в одной лишь кнопке. Хотя если ты в маке где-то работаешь, то тебе не привыкать >тратя 2 часа из 8 рабочих, а остальное время сидишь в соц.сетях не пиши пожалуйста, у меня что ни посещение этого треда, так одно разочарование. То тупорылые студенты, то жлобы, которым ойти - это манная небесная за 300кк и 2 часами работы в день. Если вы идете в ойти за бабками - это не лучшее решение, только зря время и деньги проебете.
>>2067562 (OP) Можно ли как-то объявить сразу несколько переменных из массива, как в питоне: >name, age, country, career = ('Diana',32,'Canada','CompSci') или на F# >let (f, b, fu, stfu) = ("foo", "bar", "FU", "WTF?") Чтобы не писать 4 строки подряд, вместе с типами? Когда тестишь код, так заёбует строчить, пиздец просто.
>>2087117 Напиши только, как Read может читать из файла int и char и всё, большего мне не надо. В C++ я могу сделать это очень легко и просто, а тут хуй. В C++ вот так: myFile >> intA >> charB, а в C# какие-то нагромождения для этого надо придумывать или как, я хз.
>>2087228 >сли вы идете в ойти за бабками - это не лучшее решение, только зря время и деньги проебете. В голос. Я пришел в IT ТОЛЬКО за деньгами. Работаю уже 5 лет. Деньги - лучший мотиватор. Программирование вообще не люблю, но у меня получается писать код. Так что свои мантры оставь при себе.
>>2087382 В шарпе ты можешь сделать свои обёртки над читалками файлов и перегрузки операторов и сделать как нравится.
>> myFile >> intA >> charB Это привычная для крестодауна, но в целом ебически дебильная конструкция, за которую многие кресты и не любят, потому что я вот пытаюсь сейчас понять, как это вообще работает, каков порядок выполнения операторов, что они возвращают, и это нихуя не очевидно, если ты позабыл кресты и долго пишешь на нормальных языках.
>>2087382 Почему ты не можешь сразу написать что тебе надо? Read может читать байты - char это два байта, инт - 4. Но что б не ебаться в стандартной библиотеке есть BinaryReader, у которого есть методы (ReadChar, ReadInt32 т.д.) для чтения примитивных типов из любого стрима.
>>2087416 >А сразу весь файл в стринг можно прочитать? А если в файле не только строка? Изначальный вопрос был >Как считывать данные из файла в C#, чтобы при считывании каких-то данных каретка сдвигалась, без записи всего файла в массив? потом оказалось надо >читать из файла int и char и всё, большего мне не надо
>>2087440 Удобно и понятно человеку с любым бекграундом по языкам - это то, как сделано в шарпе. ReadInt, ReadDouble и т.п. А как в крестах - это вкусовщина, доставшаяся в наследство от дедов.
>>2087228 >Если вы идете в ойти за бабками - это не лучшее решение, только зря время и деньги проебете. Обычно те, кто любит программировать не всегда становятся коммерческими разрабами. Они прогают для себя, лол (знаю таких своих бывших одногруппников двух). Остальные идут за бабками. А зачем тогда вообще пиздовать в айти? Я на шарпе сейчас имею жирного клиента на винформс. Зп 120к. Я ПРОСТО НЕДЕЛЮ МЕНЯЮ КНОПКИ, РАБОТАЯ ПО ТРИ ЧАСА В ДЕНЬ, ОСТАЛЬНОЕ ВРЕМЯ ПРОЁБЫВАЮСЬ В ТЫРНЕТАХ, ГЛЯДЯ СЕРИАЛЫ. Спокойно могу пойти работать за 150-200к и выше, но там я буду въёбывать фулл день + после работы буду ахуевать. Нахуй мне лишние 80к, если при своих тратах, я оставляю 90к в копилке? За год лям откладывается. Этого более чем достаточно. А ты и дальше думай, тугосеря, что разрабы это те, кто со всей душой работают на своих работах. Больше не хочу с тобой общаться, извини.
>>2087445 В сисярпе объекты на объектах и объектами погоняют. Никакой свободы, даже указатели запрещены, а я без них жить не могу. И вообще, в сисярпе просто полностью другая логика.
>>2087448 >даже указатели запрещены, а я без них жить не могу Указатели там есть и активно используются по необходимости. Но в целом они не нужны, т.к. есть ref и Span, например. В целом как-то даже сходу не могу придумать код, который требовал бы именно указателей, и не мог бы быть эквивалентно написан другими средствами языка.
>В сисярпе объекты на объектах и объектами погоняют. Там есть структуры, синтаксис которых намного приятнее, чем в крестах. И всю логику можно построить на них вместо классов. Можно вообще писать в стиле С, выделив память под все структуры, которые понадобятся, безо всяких аллокаций классов в непонятных местах в куче. Работать только через стек и рефы и вообще не выделять и не освобождать память до завершения программы.
>>2087389 >Я пришел в IT ТОЛЬКО за деньгами. На самом деле, это весьма сильное заблуждение, что в IT платят нормальные деньги. Потому что нормальные эти деньги только относительно кассира в пятерочке. Распространяется это вкатышами из днищевых низкоквалифицированных работ. Но даже хитрый таксист, каблук из достависты или шиномонтажник в сезон уже по деньгам крепко задумается, а стоит ли в айти перекатываться. Потому что вальяжно крутить баранку по своему графику и по деньгам и по личному комфорту зачастую лучше, чем пыхтеть в офисе над легаси и говнокодом вкатышей, упиваясь кофе. В реальности в IT специалистам платят меньше, чем на аналогичных должностях людям с техническим или медицинским образованием. Сеньоры в веб-парашах получают 150-200к. Это вроде бы неплохо, вроде бы деньги. Но. Всякие ведущие инженеры и главные специалисты в нефтянке и нефтехимии, в автопроме, в ростехе и росатоме, ИТРы на нормальных заводах и производствах с опытом 5+ лет, всякие специализированные врачи в частных клиниках получают 300-400к с учётом всех годовых премий и бонусов.
>>2087511 После C# писать на C++ просто неприятно. Реально как из новой топовой теслы с автопилотом уровня 4++ пересел в дедушкин запор на механике, заводимый толкачем.
>>2087493 Тут соглы, у нас на потоке был хуяндекс таксист, который застал рассвет хуяндекс такси. Он в неделю по 50к делал на батеной калине. Вкатывальщики в айти такие деньги увидят только после съебывания в дс1, испытательного срока и трёх пересмотров зп.
>>2087511 Мы в вузе с 1 курса начали с плюсов. К тому же ещё и дискретку (которую я ненавидел) прогали на плюсах (которые вообще все ненавидели) и из-за этого у всех отпало желание прогать. Сейчас мне 25 и я вкатываюсь заново! Пиздато, наверно
Согласен, эстетическая красота кода для меня тоже важна. Но я считаю, что если человек берёт под задачу C++, он понимает, зачем он это делает. Выбор инструмента осознанно, а не потому что модно или ниибаццокруто.
>>2087529 Если вообще с прогингом не был знаком до вуза, то желание отбивают всякие нафталиновые бабки которые ещё застали перфокарты. У меня норм попался препод, сразу без хуйни на правой паре сказал будете дрочить 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; } }
>>2087711 Это же по ЕФ вопрос? Тогда похуй, либо добавляй юзера в лист компании, либо установи юзеру свойство Кампани или КампаниИд. При вызове SaveChanges() все разрулится автоматически.
>>2087548 >А то некоторые начнут сразу про солид, инкапсуляцию и прочее ооп говно затирать У нас в универе как раз вот так всё и происходит. Сначала было не понятно, ибо даже халло ворлд максимум мог написать языке только на Русском, но потом прикипел и к C, а потом к C++, с ужасом посдавал лабы на ассемблере для интелов, а потом начался ассемблер уже для реалтиме ЦП и немного C# и по остальным предметом уже сам выбираешь, на каком языке лабораторки программировать. Графики никакой не было, только математика и логика.
Аноны, помогите тупому, я в конец заебался. Пытаюсь определить конструктор дочернего класса через конструктор родительского. Как я понимаю, делается это в Шарпе примерно пикрелейтед.
Но у меня по всей видимости компилятор какого-то хуя думает, что я после base в скобках пытаюсь передать не параметры родительского конструктора, а одноимённые поля родительского класса, раз пишет какую-то хуйню про ссылку на объект для нестатического поля. Пробовал переименовывать поля класса, оставив в покое параметры конструктора, но тогда он выдаёт, что имени в текущем контексте не существует.
>>2087725 Ну типа. Только если тебе нужно получить сущность по первичному ключу, то лучше делать так: var com = db.Company.Find(1); И Update тут по идее не нужне.
>>2087768 >делается это в Шарпе примерно пикрелейтед. Именно так и делается. >думает, что я после base в скобках пытаюсь передать не параметры родительского конструктора Нет не думает, у аргументов метода приоритет выше, именно поэтому при совпадении имен надо писать this, чтобы достучаться до поля. >пишет какую-то хуйню Он тебе пишет в чем ошибка, если ты не умеешь читать - твои проблемы. > ссылку на объект для нестатического поля Не путай статические поля типа и поля экземпляра типа. >Пробовал переименовывать поля класса Методом тыка можно долго тыкать без результата. >Что я блядь делаю не так? Не приводишь код, в котором ошибка и текст ошибки. Видимо думаешь, что тут у людей хрустальные шары в которых видно где ты накосоебил.
Почему ошибка? Не понимаю. Помогите разобраться, я так и не понял, как из файлов построчно числа считывать. Переделка двух строк в текстовике в одну даёт тот же результат.
>>2087882 Дурачишка, формочки твои есть от декстопа до тыпрайза, они везде епт. Только вместо штмла будешь зубрить его клон- хамл. Ты убежал не туда, лол.
Раз зашел разговор за тесты то и я спрошу. Вот есть у меня к примеру Асп нет приложение. Как писать тесты? Через вебДривер? Ну типо открываем браузер заполняем форму и посылаем? А дальше получить инфу из контрелера? Все ли прошло хорошо. Или это совсем разные вещи тестировать фронт и бек? Я еще не писал тесты но примерно представляю как тестировать контролеры, а вот как тестировать вью и контролеры я не представляю совсем.
Где-то в инторнетах меня уверяли, что это должно работать. Можно мне просто рабочий код, который просто позволит мне считать 7 чисел из первой строки файла в первом методе, 7 чисел из второй строки во втором методе и так далее? Я уже заебался разгребать это говно. Где же мой родной iostream...
>>2087913 Да. И семь чисел из строк чтобы можно было присвоить ячейкам массивов разных методов. Не числа одной строки, а 1 строка 1 метод, 2 строка 2 метод и и так далее.
>>2087917 Есть несколько тестирующих функцию методов. Для каждого из них предназначена собственная строка в текстовике. Ввод тестовых данных только файловый. Методов-тестов может быть сколько угодно, но если строк в текстовике меньше, чем методов, то недополучившие данных методы сообщат об ошибке — этот случай обрабатывать не нужно, так и должно быть.
Бля все равно ниххуя не понял. Что такое функция методов? Я дохуя после пхп переучивался называть функцию методом, и вот опять это во все. Вот код берет из файла строки и их перечесляет. А там уже в форъич можно делать что хочешь. Просто не пойму если нужно просто взять строки нахуй вот это вот все? Сплит линку и все прочие.
Блин, люди - как запоминать весь этот сахарок, когда им просто негде пользоваться?
Вот недавно читал про Lazy - охуеть, классно, но сегодня мне это нигде не надо, а через полгода я забуду про эту вещь (впрочем я реально не понимаю, нахуя оно, ведь если я не хочу юзать, я просто не выделю память)
И вообще мне иногда кажется что в шарпе фичи добавляют ради фич. Чего стоит 7 способов инициализации массива (ну я столько насчитал).
При том что для кодинга оно нахуй и не надо.. Но вот на собесах не хочется краснеть когда будут за синтаксис спрашивать
>>2088103 В Москве на для бэкенда-шарписта-джуна выставлено всего две вакансии. Во всех остальных требуют смежные технологии из веба (js, верстка, php и т.д.).
>>2088149 Я хз, что предлагать. Но факт остается фактом: с чистым C# ты нахуй никому не нужен. Чистый шарп вообще никому не сдался. Рынок не тот. Возможно, есть варианты за рубежом, но не в России.
Варианты:
1) Ты идешь в какую-то узкоспециализированную хуйню, где тебе нужна алгоритмическая и математическая база (тогда вопрос, нахуй тебе C#, если ты можешь пойти в DS или аналитики на бОльшую ЗП, работая с более лаконичным и понятным Python).
2) Идешь в гейдев, где опять-таки чаще всего требуется математика, а еще и кучу смежных технологий. В том числе здесь нередко требуют знание других языков (опять-таки вопрос, нахуя ты тогда учил C#?).
3) Работа с базами данных. Нужно очень хорошее знание СУБД (PostgreSQL, MySQL и т.д.) + сопутствующие технологии. Такие вакансии можно по пальцам пересчитать. Плюс максимально тупая, рутинная, профильная (банки, склады и т.д.) работа.
4) Тестирование. В данном случае шарп является лишь небольшим инструментом для написания кода. С таким же успехом тут используется Java, Python и т.д. Здесь вообще не про программирование на C#.
5) Веб. Ну, тут всё понятно. Знание других языков и их фреймворков. Шарп идет как дополнительная галочка, потому что компания пилила проект на нем.
>>2088204 Ну обычно если старше, уже идут в руководители. >>2088206 Проэкт покажет что ты не лох. Но нужно нестандартно к нему подойти. Продать себя так сказать оригинально. Потому что будут спрашивать что ты делал и тут то ты и присядешь. Ни опыта, ни проэкта, нихуя нахуй.
Только что списался с вузовским знакомым старшего курса (он защитил диплом в том году). Говорит, что 4 месяца после защиты диплома не мог найти работу (даже с наличием производственной практики НЕ на кафедре, а на производстве). С ноября 2020 начал учить Java. Вкатился в марте (нашел за 2 недели поиска).
>>2088041 >>2088159 >>2088197 >>2088262 да ебана, поскрольте вы тред, посмотри в предыдущий. Сколько анонов уже писало, что C# дудка уже спета. Новые делают на более прогрессивных технологиях, старые адаптируют под новую среду. Осталось только говно мамонта и фанатили мелкософта, чтобы влезать в эту залупу. Учите нормальные ЯП-ы и не ебите мозги, все равно же будете перекатываться, когда пожрать захочется
У меня есть классы-обёртки вокруг табличных данных. Сейчас я сделал данные в виде текстовых файлов, которые подключаются как ресурсы. Когда данные нужны, они парсятся и используются. Можно ли как-то сделать так, чтобы парсинг осуществлялся на этапе компиляции? И в коде сразу были бы готовые классы со всеми нужными данными?
Если ты хочешь получить типа набора каких-то констант - пишешь маленький "компилятор" своих ресурсов, который парсит и потом собирается тебе в .cs - используешь это. Только вот нахуя? Тем более что каждый раз меняя текстовый файл - ты должен будешь пересобирать свое добро.
Скорее всего, ты хочешь получить некие данные и потом не парсить каждый раз. Если так - просто кешируй и доставай из кеша по мере необходимости.
Смотрите. Есть проблема. Не знаю как решить. Собственно, на пике примерно что у меня происходит. Т.е. есть некий "сервер", он занимается типичными штуками сервера: принял соединение, определил протокол, начал обрабатывать соединение, спарсил пакет - кинул его в очередь обработки, если сокет порвался или завершился graceful - отбиндил клиента и закрыл сокет. Собственно. В чем хуйня. В том, что нужно много писать в базу: пришел пакет - нужно обновить информацию о том что у этого клиента пришел новый пакет. Клиент отключился - нужно обновить информацию, что отключился. И я не представляю как делать это правильно. Я сделал такую вот залупу: IOContext - это обертка над сокетом - к оно под капотом - хранит сокет и содержит цепочку фильтров. Вокруг этого уже контекста - я создаю ClientContext - он - он в себе хранит сущность из БД которая и должна создаваться-обновляться, короче типа оборачивать логику приложения, чтобы мы не думали ни о каких сокетах. Собственно - очередями я таки победил перегрузы из-за "ДДОСА", но вот хуйня происходит, если куча клиентов разом обрываются - они все разом ломятся - начинается постоянное обновление базы ыыыы, пизда, может пару минут это дело "висеть", начинаются лететь ошибки по таймауту обновления и т.д. В общем. Как умные люди подобную хуйню решают-то? Что делать? Как быть?
Смотрел я получается репки разные. Увидел в паре вот такую вот фигню(прикриплейд). И чет мне оно понравилось концептуально, типа контроллер только маршрутизацией занимается, внутри фичи - можем определить формат запроса, формат ответа, ну и, допустим ту же логику паггинации реализовать, не делая этого в контроллере. Но возникают вопросы относительно доставки зависимостей. В общем, как я понял в репках - использовался автомапер и MediatR. Я их пока трогать не хочу. С другой стороны - не хочется и засорять Startup - самими этими вот "фичами". Можно конечно - создавать инстансы этих вот List, Add, Update, etc - в конструкторе контроллера, но как-то тоже не хочется. В общем, как вы, аноны делаете-то?
>>2089399 Как один из вариантов. Но на постгре - не сильно лучше. Плюс, допустим для логов и статистики конкретно используется Sqlite но там я логи/статистику кидаю в очередь и отдельный поток раз в секунду достает из очереди и пишет сразу здоровый кусок(до 5000 записей за раз). В таком вот сценарии - вообще никаких проблем не возникает. Я подозреваю что дело в том, что я чего-то совсем не понимаю и делаю не так. Знаю, что без кода сложно что-то говорить, но код на работке и его низя показывать.
>>2089404 Мне кажется тебе нужна нормальная серверная бд. У меня было подобное когда я еще в юности пытался реализовать бд файлом на общем сетевом диске и пытался открыть свою программу на несколько компах. Потом я уже узнал что такое в принципе нереально реализовать, только очередью как это сделано в серверных бд.
Я не могу вдуплить за dependency injection. уже который раз пишу этот пост и я все еще не понимаю как это работает мне надо например использовать встроенный в кор логгер, ес ли в контролерре например все понятно, просто передаем в конструктор ilogger и у нас магическим образом появляется экземпляр объекта то когда я делаю то же самое в любом другом моем классе я получаю ошибку компилляции Потому что у меня нету блять его! и каким образом спрашивается я должен взять сервис с любого места в программе?v
Я читал много статей по этой темен и они НИХРЕНА не работают, например ниже ссыль на стак с этим конкретным вопросом и он совершенно не работает, нигде не показано как целевой класс собственно объявляется с такой зависимостью потому что у меня тупо ошибка компиляции и все.
>>2088204 >>2088209 Вход в IT в 30+ - это нормально само по себе. Однозначно нет каких-то когнитивных препятствий для усвоения новых знаний. Я бы сказал, что мне сейчас в 35 учиться проще, чем в 20, потому что я более усидчивый, я больше понимаю как это дело правильно организовать, у меня намного больше понимания, зачем это нужно и где это применить. Но проблема тут в другом. В IT на самом деле нет повышенных зп относительно других сфер. Ведущий специалист, мидл, старший менеджер и т.п. в любой сфере в пределах одного города (1кк+ жителей) будет получать примерно одинаково. Тут речь конечно не про номинальное название должности, а про наличие опыта, навыков и компетенций эквивалентных 3-5 годам работы на данной специальности. И если ты в 30 лет не смог добиться ничего в своей текущей сфере деятельности, то скорее всего у тебя очень серьезные проблемы в части интеллектуальных способностей, характера, софт. скиллов или каких-то базовых навыков личной эффективности (способности сосредоточиться на задаче, собранности, способности к планированию и выполнению запланированного). В наиболее безобидном виде это выражается в том, что человек полдня сидит на работе в интернете, но потом всё же приступает к делу. Но кто-то не способен заняться делом, пока не получит сапогом по жопе. И как только образ сапога забудится, забросится и дело. То, что кажется элементарным и посильным даже школьникам средних классов, даже для многих взрослых людей часто оказывается невыполнимым. Реально, есть не мало людей, которые по каким-то причинам не способны приходить на работу не опаздывая. Есть люди, которые просто не способны ни записать, ни запомнить задачи, которые им ставят. Им можно дать одну задачу, чтобы он её делал и контролировать ход выполнения (не реже 1 раза в 2-3 часа), но если попытаться дать такому человеку 2-3 задачи, чтобы он сам спланировал их выполнение, он не справится, он забудет часть задач, он забудет сроки или приоритетность, он забудет детали. Он не способен записать их. Даже если ему сказать пиши, он будет что-то писать, сам не понимая что, но явно не то что надо. И это не какие-то умственно отсталые. Серьезно, есть люди не способные к этому и среди людей с ВО в крупных компаниях. Есть люди, не понимающие организацию и субординацию, не понимающие кому и что можно говорить. Может быть ты всё это время занимался не тем, а IT - это твоё. Может быть. Но скорее всего ты неудачник, необученный жизни.
>>2089471 блять да ответе хотя бы кто нибудь, хотя бы что-то ответе наконец хотя бы что "не это не работет" потому что у меня уже шиза развивается, везде я вижу те же посты, везде пишет что это работает ВОТ ТАК но когда пробую низхуя не работает, вижy примеры, повторяю они не работаю, я блять не понимаю что происходит вообще
>>2089517 Ты должен то что тебе нужно добавить в список используемых сервисов. В asp - в классе стартап конфигуреАппликатион в коллекцию сервисов добавь нужное.
Ты понимаешь, что DI в любом виде это не магическая штука, которая просто так сама все везде разрулит?
Прочитай про сервис-локатор, что это, как работает, зачем нужно и как его делают руками. Там, блин, никакой магии нет. Особенно в реализации от майков, там просто несколько коллекций и через рефлексию достаются зависимости, потом в коллекции ищется нужная, если ее нет - кидаем исключение, есть - в зависимости от лайфтайма - создаем объект, который будет жить вечно, или не очень.
Я на работе педалю десктоп приложение Есть много задач, где нужно опрашивать какой-то сервис в фоне с определенным интервалом или делать что-то только в определенное время. Для всех этих задач вроде как подходит таймер в качестве решения. Но я что-то не уверен, что пихать на любой чих таймер это самый удачный вариант. Как еще можно было бы сделать?
Ну, не хочешь таймер, далай вот так вот: Сущность триггер с методам TryShoot, делегатом ShootDelegate и условием выстрела и свойством - можем ли еще стрелять + и отдельный поток, который хранит коллекцию этих триггеров, проверяет. Соответственно - как работаем? А вот так, у тебя есть сужность: TriggerProvider - у которого ты берешь триггер, он там под капотом - регистрируется в хендлере, затем - в триггер ты добаляешь обработчик выстрела. Дальше - дело техники. Дерзай.
>>2089895 Ну я сделал как ты показал, ну я могу вызвать метод из класса как у тебя, но я его и раньше мог вызвать, от этого класс сам себя не инициализирует, а вот именно при попытке вызвать конструктор и есть проблема, и то что ты написал ничего не решает вообще конструктор все еще требует передать логгер в когда вызываю конструктор в качестве аргумента
>>2090241 Чел. Суть всей этой хуйни, что ты и не должен вызывать конструкторы. Ты создаешь нужные тебе интерфейсы, создаешь имплементацию, все, теперь DI - разруливает за тебя создание объектов - ты просто сказал что тебе нужно, сам руками - не создаешь объектов, если нужно - их за тебя создаст хост.
И благодаря ей - твой логгер, бд или сервис - попадает в контроллер. Если ты уберешь атрибут Route - все, блядь, ничего туда не попадет и объект контроллера не будет создан сам по себе. А почему? А потому что блядь, как фреймворк должен узнать куда нужно роутить запрос? А вот никак. Он берет эту информацию из метаданных сборки, либо если ты руками сам что-то пропишешь. Все, блядь. Магии нигде нет.
Как работать с большими проектами? Вот решил я клонировать весь aspnetcore, чтобы подглядеть как умные люди штуки делают. Ну, и у меня студия крашится нахуй. Пришлось в VSCode открывать. Но там расширение что для анализа и прыгания по ссылкам - тоже крашится. Неужели остается только ручки+поиск использовать? На работе просто ни разу таких больших проектов не встречалось, сильно я привык, что можно клацнуть и перейти к определению или использованию.
Сильно ли медленнее работают программы на шарпе в сравнении с С++ из-за понятных накладных расходов виртуализации? Действительно ли в шарпе есть библиотеки на все случаи жизни?
Доброго всем времени суток. Хочется найти работу, поэтому активно перекатываюсь на шарпы. Опыт программирования есть, поэтому синтаксис шарпа не представляет проблем, не нужно мне читать про циклы или переменные. Открыл для себя книгу "C# для профессионалов. Тонкости программирования. Джон Скит". Профессионалом себя не считаю, но в книге упускаются стандартные вещи вроде циклов и сразу переходят к тонкостям, это мне понравилось и я её почитываю.
Хочу с сентября либо залетать на курсы Epam'a (такая бел. контора), либо ещё куда то. Реально ли за месяц выучить нужные технологии ебаша по 6-8 часов?
Сори за такие вопросы, я знаю что они многим приелись, но в силу некоторых причин я хочу их задать вновь
upd шапку читал, мне кажется там не совсем то
upd2 сори если не внятно пишу, очень устал и в целом немного сломлен
>>2091716 Чтобы джуном залететь - все оч индивидуально и зависит сокрее от конторы куда вкатываешься. Но как я вижу, что нужно знать джуну чтобы иметь больше шансов: 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 фреймворка на уровне: в состоянии сам формочку какую-то добавить и сделать чтоб она что-то делала.
Как-то так. Да.
Относительно картиночки. Там список штук, которые нужны уже устроившемуся, чтобы быть конкурентноспособным и прыгать по галерам. Пока первую не найдешь - не следует на все это разом распыляться. Тем более, что завтра еще что-то выкатят. Мой списочек - основы, которые более-менее везде нужны, если ты бекендер: и любителям всяких модных молодежный рестапишек и на завод, где ты будешь сокеты ручками трогать.
Я так и не понял: можно ли писать в линуксе приложения на шарпе? Или там можно только писать код и компилировать, а средой выполнения всё равно будет винда?
Come home, white man. Пошли лучше на c# в sandbox программировать, там создавать гейммоды или просто моды. Хочу сделать ремейк PCMod2. Можно будет сидеть на мейлаче не выходя из игры.
Вот учу я шарп по метаниту, но у меня возникает ощущение, что я учу возможности языка, а не обучаюсь программированию. Что лучше всего сделать, чтобы параллельно действительно учиться программировать?
>>2091952 Если вам скучно, на досуге можно воссоздать свои любимые игры детства на шарпе и source 2. Да и просто пилить петпроджекты в 3д пространстве гораздо веселее.
>>2091994 Для изучения шарпа сгодится и книга 10-20летней давности. Но ты нахуй никому не нужен будешь с знаниями языка, еще и выученными по дебилу из метанита, который не умеет даже пересказать правильно материал. Когда-то он вообще копипастил текст из других источников.
>>2091995 Какая же ты тварь, токсик и абьюзер. Я и так тян и мне сложно влиться в коллектив, а тут еще ты со своей негативной энергетикой! Почему такие мудаки вообще сидят в разделе для разработчиков?! Куда смотрит модерация?!
Анон, если по делу, то я не представляю, как можно вкоктиться в проект (да еще и зарубежный) без хоть какого-то минимального бэкграунда. Последую твоему совету и скачаю Шилдта (хоть книга и по C# 4.0). Метанит, так уж и быть, уберу - мне его советовал преподаватель.
>>2092005 >Какая же ты тварь, токсик и абьюзер. Да мне похуй, хоть мать тереза ты. Ярлыки развешивай в другом месте.
>как можно вкоктиться в проект (да еще и зарубежный) В зарубежный как раз вкоктиться проще всего. Открываешь гитхаб/битбакет, находишь понравившийся проект и вкатываешься. Вероятность, что они будут знать русек около 0. Или ты из тех, кто думает, что все всё на свете знают в программировании на проектах?
>но у меня возникает ощущение, что я учу возможности языка, а не обучаюсь программированию >без хоть какого-то минимального бэкграунда Ты уже определись что ты хочешь. Знание языка вторично. Если у тебя нормальная программа обучения, то тебе язык программирования вообще не нужен, кроме пары базовых конструкций типа if, while.
>>2092011 Ты в голом консольном приложении пытаешься использовать вин формы. У проекта есть зависимости, в которые ты должен подключить System.Windows.Forms.dll или не еби себе мозг и сразу создай проект типа Windows Forms из готового шаблона.
>>2092035 Вот столько лет разрабатывают эту студию, а разные компоненты не могут взаимодействовать друг с другом. Вот откуда я должен знать что и где выбирать? Если возникла такая ошибка, то неужели так сложно было сделать, чтобы студия сама всё подключила? Почему я должен создавать по 100500 проектов, пока мой код не подойдёт под необходимые условия? И эти скоты ещё как назло меняют интерфейс в каждой версии. В книге интерфейс 2017 студии, а у меня 2019 и я вообще не могу ничего сопоставить. Миллион одинаковых проектов, которые различают одной буквой или значком. Откуда я должен знать что там в них зашито? Почему нельзя всё это проще сделать?
>>2092040 >Если возникла такая ошибка, то неужели так сложно было сделать, чтобы студия сама всё подключила? Так умеет делать райдер, причем он еще умеет классы подключать из nuget пакетов и юзинги сам дописывает. Студия же тебе предложила тот же самый вариант решения, но сделать вручную.
>Почему я должен создавать по 100500 проектов, пока мой код не подойдёт под необходимые условия? Потому что должно быть хоть малейшее понимание как с ничего создать минимально работающую программу нужного типа.
>В книге интерфейс 2017 студии, а у меня 2019 Интерфейс студии почти не изменялся с 2012.
>Миллион одинаковых проектов, которые различают одной буквой или значком. Шарп пытается усесться на 10 стульях.
Я очень сильно сомневаюсь, что Троелсен показывал бы MessageBox без объяснения как его заставить работать. Может ты еще и скипнул объяснения?
>>2092044 Я раньше на РНР программировал. Там создаешь простой текстовый файл и всё работает. Ни надо ни какие проекты создать. Нужен только текстовый редактор и веб-сервер.
>>2092049 >Там создаешь простой текстовый файл и всё работает. Может тебе тогда взять любой другой язык, который работает через интерпретатор, а не компилятор? Питон например?
Есть заебавший меня во всем, неверояьно кривой EF Core и БД в которой есть триггер before insert, который устанавливает поле при добавлении записи. Можно ли как-то ему намекнуть, что надо не только ID получить для новой записи но и еще это поле?
>>2092047 Ну вообще с помощью гугла разобрался. Проблема была в том, что я выбрал проект "Консольное приложение", а надо было "Консольное приложение (.Net Framework)". Потому что первый вариант - это кроссплатформа на Core и там нет Windows.Form. Вот откуда это новичок должен знать?
>>2092061 Потому что нужно изменить сдк проекта или напрямую подключить либу и дергать нужные методы. Студия тебе не поможет не в первом, не во втором.
>>2092053 Десктопные приложения более интерактивны, а у веба постоянная задержка в общении между клиентом и сервером. Да и для моей задачи нужно десктопное приложение с возможностью графики (вывод в прямоугольную область массива пикселей).
>>2092026 я в этом треде решеток сижу года 3 точно, такого высера, как сейчас я еще никогда не видел. 3 типа сообщений: 1. Нытье, как вкатиться; 2. Высеры даунов в консоли с русскими комментами (первый признак дауна); 3. Вопросы в стиле "В строчке "hui" заменить на "jopa" от убогих студентов, не умеющих гуглить. Что это нахуй за понос в этом треде? Где аноны, с которыми перемывали принципы работы CLR? Или процесса компиляции? Перекатились в другие языки или забили на тред из-за такой хуйни в нем? Пиздец, ну серьезно, вы хотя бы пытаетесь гуглить, прежде чем высирать свои тухлые посты?
>>2092181 На фреймворке студия умеет, а райдер ни на фреймворке не на коре не могет. А если говорить не о извращениях с окнами в консолях, то и тот и другой могут находить нугеты всяких там ньютонсофтов и агилитипаков.
>>2092209 Сижу тут более 5 лет, всегда были студенты, обливания говном и холивары govno vs mocha, а на вопросы сложнее "почему не компилируется" тут никогда не могли ответить.
>>2092361 Райдер платная (есть 30-ти дневный триал, который раньше можно было сбрасывать, хз как сейчас). Вижуал студия бесплатная в коммунити редакции.
>>2092371 На самом деле с бесплатностью вижуал студии обман, она не бесплатная, а тебе дают временно попользоваться, если это не коммерческий проект. Для коммерческой разработки надо покупать.
>>2091953 Сделай игровой движок для адвенчур тридешный. Базарю. Там-то и не так много надо: Ввод-вывод, очередь событий, загрузка-выгрузка ресурсов, рендер на OpenGL/Vulkan/DirectX, звук, систему скриптов, звуковую систему, можно еще ебануть свою сетевую систему. Все делай в виде плагинов, чтобы если что монжо было без перекомпиляции - подкинуть нужную DLL и добавить функционал/починить существующий. Базарю. Работы на 2 недели по 2 часа в день.
>>2092224 >>2092227 я готовился к первой работе 2 года назад - были холивары на тему способов компиляции, ngen, почему main не может быть приватным, обсуждали MSIL после дизасемблирования. Посмотрите на тред сейчас. Это же просто цирк уродов. Я смотрю на этот тред, как на выцвевшую от говна фотографию минувших дней. А эта публика, просто зашквар, сразу видно обосранных до ушей вкатышей типа >>2092252. Я не думаю, что сфера настолько утонула в говне, что всякий мусор пытается перекатиться (судя по содержанию постов даже не понимая, на чем и для каких задач они пытаются использовать язык). Я с пол года назад начал осваивать TypeScript, в JS треде есть хлебушки, но далеко не такого уровня. Крик души просто, сидишь и кидаешь facepalm
>>209240 Пиздишь. Для организаций Visual Studio Community может использовать неограниченное число пользователей в организации в следующих случаях: в учебных аудиториях, для научных исследований или участия в проектах с открытым кодом.
Для всех прочих сценариев использования: В некорпоративных организациях Visual Studio Community могут использовать до 5 пользователей. В корпоративных организациях (в которых используется более 250 ПК или годовой доход которых превышает 1 млн долларов США) использование запрещено, за исключением случаев, перечисленных выше (открытый код, научные исследования и учебные аудитории).
>>2092446 >были холивары на тему способов компиляции, ngen, почему main не может быть приватным, обсуждали MSIL после дизасемблирования Это темы уровня вкатыша, причем тимлид должен линейкой по рукам бить за попытки применить из оного.
>Я с пол года назад начал осваивать TypeScript, в JS треде есть хлебушки, но далеко не такого уровня. Прямо сейчас: - как пройти собеседование на джуна/трени - var в 2021 - примитивное шифрование - шутки про логику предикатов, которая учится на первом курсе - спросили что такое express, кинули ссылку на него в npm - иммутабельность строк - попытки прострелить себе ногу с undefined - jquery в 2021 - вопросы на вопросы И так далее. Все темы уровня вкатыша. Аноны сами угорают с некоторых топиков. К тому же, TypeScript учится, ну не знаю, неспеша за неделю при знаниях C#/JS.
>>2092406 Так это не обман, обычные плюшки для разработчиков. Так почти со всеми продуктами от M$. Например, M$SQL. Сервер для разработчика бесплатный, но лучше не гугли сколько стоит сервер для прода и почему с него бегут на постгрес, где тулзы для разработчика платные.
>>2092462 Опенсорсом сыт не будешь. Для коммерции все равно нужно использовать professional/enterprise. Причем бывают говно-проекты, которые еще и не сбилдить без enterprise или не открыть из-за обилия csproj в солюшене. Занятно, что подписка на Visual Studio без решарпера дороже Rider.
>>2092518 >Это темы уровня вкатыша ты меня решил зажирнить? У любого мидла спрашивают по GC, мемори ликам, оптимизациям. Ты это долбоебам, которые на русском комменты пишут можешь затирать. >за попытки применить из оного. попытки понять, как работает под капотом? Дальше не читал, понимая кто мне пишет
Анон, в чем смысл этого треда на данный помимо помощи вкатышам по формочкам, которые умерли 10 лет назад? Где блять интересная и позелная информация? Я раньше вайнил на даунов, которые на # пытаются в unmanagement код писать, абузеров Marshaling-а, которые пытались создавать свестелки-перделки, типа p2p клиентов и блокчейнов, думал что это дно, но не перестают стучать снизу.
>>2092559 >У любого мидла спрашивают по GC, мемори ликам, оптимизациям. У меня не спрашивали. Я прошел много собесов в бодишопе. На помидора вообще не одну из выше озвученных и еще выше тем не спрашивают, кроме оптимизации в контексте какой-нибудь конкретной задачке в блокноте.
>за попытки применить >попытки понять Улавливаешь разницу?
>Дальше не читал, понимая кто мне пишет Переход на личности.
>в чем смысл этого треда Давай подумаем. 1,5 сотни анонов в треде. Не только я пишу с нескольких айпишек. Т.е. популярность двача около нуля. Разбираться в узкоспециализированной технологии никто не будет бесплатно. Нормального качества статьи и обучающие курсы только платные. Книги всегда платные или по блату. Даже если ты нашел бесплатную статью на каком-нибудь медиуме, их пишут за деньги. На SO помогают за репу, а потом показывают эту репу при трудоустройстве.
Так как борда анонимная, мне никто не мешает прибежать в тред и высрать любое утверждение типа этого кадра >>2081356
>>2092578 >в бодишопе с этого и стоило было начинать >Улавливаешь разницу? то, что я перечислил с MSIL - это принципы работы .NET, которые применяются неявно. Что у вас там в бодишопах лиды присекают, я хуй его знает, но это классика, это знать надо >Переход на личности. Осознавая глубину глубин обитателей этого треда можно легко дать оценку собеседнику буквально по нескольким строчкам >1,5 сотни анонов в треде Но это же блять не "Как вкатиться тред". Это тред по C#. Так давайте обсуждать C#, а не высирать пасты из лаб шараг. И мое нытье было относительного того, что имо аудитория треда перевелась и уровень просел. Раньше +- анон задавался вопросами более глубокими, чем сейчас. Так или иначе, это мой консерн и еще один бесполезный пост в этот тред.
>>2092858 >Что у вас там в бодишопах лиды присекают, я хуй его знает Бодишопы ничего не спрашивают, они перепродают программистов в иностранные организации, в которые хуй попадаешь без нескольких определенных сертификатов хотя бы минимального уровня типа AWS Certified Developer - Associate. Их цена 150-300 баксов за попытку и надо пересдавать раз в несколько лет. Причем это дерьмо надо знать .NET разработчику на ебанутом уровне аля transact-get-items в DynamoDB может содержать до 25 объектов до 4 МБ за реквест. На архитектора вопросы еще ебанутее: snowmobile длинной 45 футов для перевозки 100 петабайт на блок за неделю, новый сервис бтв. И это только начальный уровень, на продвинутом уровне все варианты ответа правильные (простыня текста), но надо выбрать самый правильный. Твое обучение TypeScript покажется цветочками.
>Так давайте обсуждать C# Довольствуйся вопросами уровня "почему у меня не работает IoC", которые тоже раньше были, ну или "jquery в год-нейм" раз тебе фронтенд нравится.
>>2092858 >Так давайте обсуждать C# Не давай. Я вот мудак, который хочет нащупать ПРАВИЛЬНЫЙ принцип написания кода, но меня обычно игнорят тут и хуй знает почему. А я-то всего лишь хочу понять: А как делать так, чтобы не просто сделать, а сделать заебись и удобно и не только мне? Вот допустим - дед мне на работе говорит: нахуй лямбды, непонятно и вообще, а потом я смотрю код другого деда и там лямбда на лямбде и лямбдой погоняет, и если что-то нужно поменять - меняется одна лямбда где она нужна и все, при этом код очень даже понятный выходит и нет никаких миллионов служебных классов. Или события - вроде ниже связность, но куча проблем связанных с ритуальной хуйней, плюс утечки, плюс еще разной хуйни. Или кортежи - а надо ли, ведь из-за кортежа возвращаемого из метода - у нам даже на широченном мониторе - может все нахуй уехать(ну, сейчас это отпало правда, потому что появились божественные рекорды, которые можно в одну строку объявить). И вот куча такой хуйни. Но спрашивать в нуботреде - такое. Потому что там - люди из разных языков, и часто одним словом могут разные вещи называться, либо наоборот - одно и то же по разному обозвали. Плюс там многие - как раз именно совсем практическую часть рассматривают, а мне интересно нащупать тот оптимальный способ написания кода, который с одной стороны - лаконичен, с другой - удобен, с третьей - понятен будет даже нубу.
>>2092929 мне от твоего тухлого поста тошнить еще больше стало, чем от высера вкатышей >Что у вас там в бодишопах лиды присекают >Бодишопы ничего не спрашивают, они перепродают программистов зачем ты мне концепцию бодишопов рассказываешь? Я про лидов в этих командах спрашивал. И нахуй ты мне простыню про AWS тут выкатил, причем с невнятными вопросами и без конкретики? Вопросы с оптимизациями реквестов в NoSql от AWS ты считаешь заоблачными? И зачем ты пишешь вопросы архитекторов, если ты даже associate сертификат не осилил? >Их цена 150-300 баксов за попытку и надо пересдавать раз в несколько лет 3 года сертификат валидный, если что. Если бы ты его прошел, ты бы это знал И вообще, зачем мне эта простыня про AWS? Или тебе про Azure DevOps начать стелить? >Твое обучение TypeScript я привел степень сравнения, причем тут TS? То, что этот тред полон говна и тупых вопросов не отменяет того факта, что даже в ссаном JS треде задают более конкретные вопросы, приближенные к жизне. Но опять же, это мое имо. Если у тебя в JS треде только вопросы про Jquery, то земля пухом, продолжай дальше вкатышам помогать с формочками >>2092970 на каждом проекте свой code-convention, которого нужно придерживаться. Кто-то вообще алиасами не пишет, кто-то в одну строчку все хуярит. Везде все по разному.
>>2093028 Всякие вулканы подключались с помощью nuget. Примитивный Bitmap из винформ никуда не делся. Добавили много нового, математика на флотах например.
>>2092975 >или на ересь 2092054 (You) вообще отвечать не хочется Нет уж ответь! Как на еф сделать что бы работало как на пике? А то такой монструозный фреймворк, а как в сторону от .Where().Select(), то все - жидкий пук. Да при относительно сложных фильтре+сортировке приходится sql писать руками, ибо сгенерированный ефом работает неприемлемо медленно. Нахуя сеньеры-помидоры выбирают EF, когда есть Linq2db и dapper загадка.
>>2093046 >а как в сторону от .Where().Select(), то все - жидкий пук Все так. Доп запрос, raw query или хранимки пишут. Мне один извращенец из другой компании показывал как они через атрибуты их мапят или сами свое экспрешин деревья написали с бледжеком и мозгоебкой.
>Нахуя сеньеры-помидоры выбирают EF, когда есть Linq2db и dapper загадка. Не выбирают EF, на маломальски здоровом проекте адо.нет + даппер.
>>2093034 Я умею только в меню студии добавить модуль. Собственно из-за этого и решил учить C#. Если бы мне нравилось маяться с подключением кривых библиотек, то остался бы в С++.
>>2093082 Тебе все равно нужно маяться с С++, потому что ты не можешь например дергать любую API из того же DirectX напрямую из C#. Придется дернуть через С++, обернуть в библиотеку и вызвать через интероп из C#. Ну или сделать как в Unity, свой компилятор C# в C++. Зависит от задачи.
Графические либы C++ тоже не часть стандартных либ.
>>2093088 А зачем ему его дергать, если можно взять обертку и пользоваться, как все и делают? >>2093082 Ну так добавь, лол. Что тебе мешает, клацнул правой кнопкой на зависимости, ввел имя пакета - добавил. Все. Для OpenGL - OpenTK Для директИКС - SharpDX Для абстрактной графики - SDL/SFML и тот и другой - имеют обертки для шарпов.
>>2093379 > Можно ли с помощью .Net Core создать графическое приложение, которое будет выполняться во всех ОС? Во всех это в каких? Вот на принтере своя ОС самописная. Оно должно там тоже выполняться? Если ты про Win+Lin+OSX - можно.
Как сделать, чтобы консольное приложение всегда было на background по сравнению с остальными? На формах и впф я знаю, что можно. А с консолью? Мне не нужно, чтобы консоль работала в фоне. Нужно, чтоб само окно терминала всегда находилось под остальными. Ну либо уходило на background при сворачивании или взаимодействии с другими окнами.
>>2093387 Но ведь везде написано, что .Net Core - это новая платформа, но не поддерживает графику. Простой .Net - устаревшая платформа, но есть поддержка виндовских библиотек типа WinForms и WPF.
>>2093559 .NET Framework - устаревшая технология, получает только секьюрити апдейты пока винда с ним на бортом не выйдет из саппорта. .NET - переименованный .NET Core. Поддерживает графику, либы с графикой можно юзать на нем, поддерживает WinForms и WPF.
>>2088159 >3) Работа с базами данных. Нужно очень хорошее знание СУБД (PostgreSQL, MySQL и т.д.) + сопутствующие технологии. Такие вакансии можно по пальцам пересчитать. Плюс максимально тупая, рутинная, профильная (банки, склады и т.д.) работа. Чиго блядь? Таких вакансий хоть жопой жуй. Типичный ынтырпрайз.
Но тут надо уточнить, что все сейчас уходят с уебанских winform на на модные JS фреймворки. Так что совсем без знания js не обойтись.
>>2093741 Единственное, что я понял, Core - это сырая и обрезанная штука, которая ничего не может. Будут лучше писать под Framework 4.7 и не выделывается всяким новомодным.
>>2093776 В csproj писать, я же объяснил. Я тебе показал три разных примера как можно заставить работать винформы/впф на .net 5, но так как тебе надо еще консоль показывать (по дефолту выключена), я еще дописал DisableWinExeOutputInterface.
>>2093784 Не надо тебе ничего шаманить, делаешь как чел выше написал или в визуляке просто выбираешь шаблон проекта для винформ. Может в новой визуляке, которая скоро выйдет, добавят больше удобств, потому что сейчас приходится некоторые вещи делать руками.
Все что я понял за 1,5 года ленивого вката в C# (параллельно учился в вузе) - работы нет. Вообще. Повезет, если на удаленке найдешь постоянного заказчика. В общем-то всё. С Java удалось найти работу почти сразу (было несложно перекатиться, как ни странно).
>>2093983 Если работы нет, то какого лешего стоит мне открыть резюме - как начинаются дудосы моей почты, телеги и звонки в с 9 утра до 10 вечера с предложениями пройти собес? Да и на первое место буквально с полпинка попал: откликнулся - пришел на собес - принят. 4 года работаю - хуй
>>2094093 Господи, какой же ты еблан. Он же написал
>за 1,5 года ленивого вката в C#
Нет работы для джунов. Идиоту понятно, что мидла с руками и ногами оторвут. Более того - там уже и твой стек не важен (например, если собеседуешься в крупняк).
>>2094093 Ты наверно в ДС живёшь и можешь лично придти, а как быть тем, кто живёт в провинции? Некоторые говорят, все программисты могут работать на удалёнке, а что-то никто на удалёнку не берёт. Только офис!
Поясните про это. ILDasm.exe— дизассемблер языка, а дизассемблер - транслятор, преобразующий машинный код, объектный файл или библиотечные модули в текст программы на языке ассемблера (то есть по сути в IL, как я понял).
Тогда почему ILDasm.exe - это дизассемблер, если в exe файле (который мы в утилите-то и открываем) и так содержится IL код, который просто в программе отображается. То есть мы открываем в утилите exe файл, содержащий IL, а не машинный код, тогда в чем заключается дизассемблирование?
>>2094194 В экзешника машинный код + всякая мета херня по типу контрольной суммы. В экзешник можно вшивать ресурсы, например картинки. Теперь представь, что вшили не картинку, а байткод.
>>2094194 IL - это псевдоязык виртуальной CLR машины, которая смотрит эти инструкции и выполняет их на реальном процессоре как обычная программа. Поэтому по производительности C# и любой .Net-язык на порядок медленнее, чем языки, которые компилируют в реальные инструкции процессора.
>>2094200 И раз уж на то пошло. Дизассемблированние - это перевод последовательности байтов в что-то более вразумительное. И машинный код, и байт код представленны в виде последовательности байт.
>>2094111 Ну дык я ж написал, что и вначале было не сложно. >>2094135 Не москвич >>2094174 Ну, первую же без опыта нашел как-то. Просто откликнулся, пришел, попиздел - вышел на следующий день.
>>2094200 Ехешники от .Net - это не настоящие ехешники, а набор таблиц для виртуальной среды .Net. Когда пользователь запускает такой ехешник, то винда сама подгружает всю среду (CLR, .Net Framework и все нужные DLL), разворачивает таблицы в памяти и начинается выполнение псевдокода виртуальной машиной. Ну на деле они немножко пооптимизировали и придумали ещё JIT, он сразу перегоняет целые блоки IL-кода в реальные команды процессора, чтобы выполнялось быстрее. Поэтому запуск таких программ очень долгий и даже в процессе работы может всё подлагивать.
>>2094208 >Ехешники от .Net - это не настоящие ехешники Самый настоящий, причем код один и тот же. В доке его бутсрапером называют. Программу можно запускать и без ехешника.
>>2094209 Высшее В смысле сразу джуном? А кем еще? Если скажу, так обосрешься. На первом месте я на замарине хуячил. Как же я радовался когда сбежал на божественный веб. Не знаю как сейчас, но тогда - замарин был тем еще куском кала, как же я рад что сбежал с него.
>>2094216 Когда стоит пробовать устраиваться джуном? К примеру, я знаю конструкции языка типа циклов, массивов, но ещё не очень понимаю ООП. Уже можно пробовать на джуна или ещё поучиться? Нет риска, что я переучусь и пойду на джуна со знаниями миддла и будут получать маленькую зп, когда мог уже получать нормально?
>>2094297 > я знаю конструкции языка типа циклов, массивов, но ещё не очень понимаю ООП Я тебя поздравляю, ты на уровне школьников, которые на информатике дают паскаль. >>2094297 >Нет риска, что я переучусь и пойду на джуна со знаниями миддла и будут получать маленькую зп Что-то на уроне "ребят, сколько стоит ходить в качалку? есть ли риск, что я случайно перекачаюсь и буду как Джей Катлер выглядеть?".
Поцоны почему мне не выберает данные из бд в лист? В моделе Flow есть public int Id { get; set; } public int GroupId { get; set; } public Group Group { get; set; } в гроуп есть public List<Flow> Flows { get; set; } Гроуп айди присвоен
>>2094297 >К примеру, я знаю конструкции языка типа циклов, массивов Ты после одного дня учебы хочешь пойти искать работу, лол? С таким набором даже в 2012 ты бы никуда не устроился.
>>2094533 Гугли тестовые для шарписта. Смотри вакансии. В сборе с шарпом обычно требуют .NET и SQL. Еще могут попросить другие языки (как правило, JS).
Помимо этого тебе обязательно надо будет работать с WPF.
>>2094637 В голос. Я надеюсь ты в курсе, что бэкенд всех топовых сайтов вообще с шарпом ничего общего не имеет? Из того, что я знаю, myspace на asp.net mvc сделан.
А некоторые гиганты вообще построили своей бэкенд на node: Paypal, Shutterstock, Yahoo!, LinkedIn - это только то, что я вспомнил.
>>2093004 >Я давно понял, что ты потерял нить. а я сразу понял, что ты невнятное что-то пишешь на уровне "подслушано от кого-то" >Не задают, пруф >пруф Твой субъективный пук нынче пруф? >>2093046 отвечает тот, на кого ты ссылался гугли, что такое Dynamic Sql, чем он отличается от Ad hoc sql. По сабжу EF - отправляй Query и не будешь жидко пукать >>2093983 трейни/джуны нахуй не нужны. Заводы с легаси имо тоже (даже за 5к). На java все попроще будет. >>2094194 а вот и годные вопросы подъехали (как я тебя ждал, друг). Тебе нужно разобраться в процессе двухуровневой компиляции. Ты когда билдишь проект - у тебя генерируется сборка, в нее входят методанные, заголовки, флаги и MSIL (или же IL). IL - это промежуточный код, который после запуска приложения в рантейм JIT компилятор преобразует IL в байт код. Дизассемблирование - это прочтение твоего высокоуровнего кода написанного на любом из языков, поддерживаемых CLS на языке IL. Можешь посмотреть, как синтаксический сахар преобразовуется в нативные команды MSIL, что такое виртуальные таблицы и т.д. У Рихтера этот раздел хорошо описан в 1 главе (в самом начале). Почитал посты, которые тебе отвечали - не читай их а, открой Рихтера и разберись сам.
>>2094812 >отвечает тот, на кого ты ссылался >гугли, что такое Dynamic Sql, чем он отличается от Ad hoc sql. По сабжу EF - отправляй Query и не будешь жидко пукать Че ты несешь блядь? ValueGeneratedOnAdd() в конфигурации решил проблему и теперь еф тянет нужные данные через ретурнинг при инсерте.
>>2094658 Пишешь, будто не понимаешь, что почти во всех гигантах - инженеры изначально хуячили пруф оф концепт, на том чем легче было на тот момент, а владельцы говорили: Бля, Джон/Рахми/Махмуд/Сяо - завтра перепишем нормально, ты фичу эту добавь... Потом уходили Джоны/Рахимы/Махмуды/Сяо, приходили Эндрю/Ляо/Ибрагим - и у них не было достаточной экспертизы, а фичи пилить надо, да и никто не даст переписывать, а авторитета у них еще нет и колесо Сансары начинало крутиться.
Суть. Гигантам - нужны инженеры, которым похуй на язык. В большинстве действительно крупных компаний не будет никакого языка в вакансии, кроме случаев, когда уж сильно обосрались и все завязали на какой-то стек. Чаще как раз будет: Master degree такое-то, алгоритмы, структуры данных, хайлоад, архитектура, оптимизация и минимальный опыт.
>>2094812 >JIT компилятор преобразует IL в байт код. >facepalm.jpg IL это и есть байткод >Дизассемблирование - это прочтение твоего высокоуровнего кода >facepalm.jpg Мимо >как синтаксический сахар преобразовуется в нативные команды MSIL >facepalm.jpg Синаксический сахар он идет поверх существующих возможностей языка, те сахар разварачивается в анильные возможности, msil тут не при чем.
Прежде чем лезть с советами сам бы что-нибудь про основы прочитал.
>>2094951 >Суть. Гигантам - нужны инженеры, которым похуй на язык Вот именно. Ты не заметил, что ты противоречишь сама себе? Если программист опытный, то ему похуй на каком языке писать, а если говорить про вкатуна, то с шарпом его возможности вката падают в несколько раз по сравнению с другими языками.
>да и никто не даст переписывать, а авторитета у них еще нет и колесо Сансары начинало крутиться. А кто мешал гигантам писать код изначально на шарпе? Почему Дискорд, Скайп, Слак переписали вообще на Javascript? Почему сам Microsoft (внезапно) чаще всего пилит свои проекты на плюсах (я знаю почему, можешь не отвечать)?
>>2095028 >А кто мешал гигантам писать код изначально на шарпе? Шарп долгое время под вендорлоком был, для пруф оф концепт, с которых гиганты начинались - там ебанутые стоимости для всего. Это, по сути, единственная причина. А сейчас - много где как вспомогательная хуйня используется, те же ФБ и нетфликсы частично пишут на шарпе микросервисы.
>>2095036 Та не, если исключить работу напрямую с западным дядей - все верно чел говорит. Другое дело, что не все ради денег идут. Кто идет исключительно ради них - обосрался и скорее всего - мидл будет его стеклянным потолком.
>>2094930 >>2094997 >>2095012 3 дауна не осиливших первую главу Рихтера порвались. >IL это и есть байткод да, IL == байт код, перепутал с машинным кодом. >Мимо https://professorweb.ru/my/csharp/charp_theory/level1/1_8.php - как прочтешь, отчитаешься >>2095012 >msil тут не при чем. дауненок на первом вопросе джуна потонет, когда его спросят во что разворачивается foreach или какое различие между call и callvirt
Успешные, вот есть к примеру такая ссылка http://site.com/dlv/PARAM Как мне правильно составить маршрут? Мне нужно что бы такую ссылку обрабатывал к примеру контроллер RedirectController. dlv - это параметр а не название метода, параметр может быть разным но в любом случае такая ссылка должна обрабатывается одним методом.
>>2095233 >professorweb.ru Это же метанит, только с майнером >во что разворачивается foreach или какое различие между call и callvirt Ты зачем опять мешаешь все в одну кучу, ебобо? Ты так и понял что такое синтаксический сахар?
Как при десериализации из json в уже готовый\существующий объект сделать так чтобы он не делал дефолтными поля которых в json нет? Чтобы поле с типом int не уходило в 0 если его в json нет. Используется System.Text.Json, newtonsoft это делал по умолчанию, но сейчас его использовать нельзя.
Подскажите как пофиксить C# WPF Datagrid(ObservableCollection) При обновлении данных в источнике из основного потока всё отрабатывает (Datagrid на форме перерисовывается с новыми данными)
При добавлении в источник нового элемента из других потоков - Datagrid на форме не обновляется, а при попытке взаимодействия с элементами вываливается ошибка - System.InvalidOperationException: "Объект ItemsControl не соответствует своему источнику элементов.
Простыми словами - ObservableCollection не отрабатывает вне основного потока, и в дальнейшем из-за этого приложение завершается
>>2095359 >Это же метанит Долбоеб, который оценивает ресурсы по названию >Ты зачем опять мешаешь все в одну кучу Зачем ты пишешь, прежде чем прогнать код через ILDasm и понять, что ты дрыщешь под себя?
>>2095650 Немного не то, это для сериализации. Чтобы было понятнее опишу задачу. Есть некий класс который имеет сам по себе значения по умолчанию, есть которые берутся из json, надо чтобы десериализация была только для тех свойств которые есть в json и при этом они не ломали те свойства которых в json нет. В редких случаях необходимо собрать объект из 2 разных json в одном одна часть свойств, в другом другая, в newtonsoft это поведение работает по умолчанию, он не переписывает свойства если их нет в json. У меня же стоят ограничения либо использовать system.text.json либо есть еще либа которая уже есть в проекте это ServiceStack.Text, но там я тоже такого не нашел потыкал в конфиге всякие ExcludeDefaultValues, IncludeNullValues так как нормальных комментов у них нет, но ничего не изменилось. Я бы хотел использовать system.text.json потому что стандартная либа теперь которую явно намерены развивать дальше, но сейчас согласен сделать хоть как-то. Сразу скажу что это единичный случай, т.е написать кастомную десериализацию для одного класса не годится.
>>2095760 В System.Text.Json нет PopulateObject. Его можно реализовать только своим костыльным решением: - создать свой конвертор как предлагают в доке - используя любой автомаппер, маппить в другой тип объекта с проверкой: модель -> dto - через JsonSerializer.Parse и рефлексию перебрать дерево свойств с проверкой - через JsonDocument.Parse + EnumerateObject и рефлексию перебрать дерево свойств без проверки
Интересно а newtonsoft это получается единственная библиотека с такой фичей, у других я такого вроде бы тоже не видел, во всяком случае из набора так называемых производительных библиотек.
>>2094812 Твой Рихтер устарел уже давным давно. Самая новая книга по 4.5, а про Core он даже не слышал. А между тем, с выходом Core люди начали анализировать код .Net и многое узнали о платформе.
>>2095741 ObservableCollection не thread safe. Можно унаследоваться от него и перегрузить OnCollectionChanged, в котором вызвать BeginInvoke для CollectionChanged.
>>2095870 я очень рад был бы услышать какие нибудь аргументы касательно того, что изменилось в период между .NET 4.5 (когда была выпущенна последняя редакция Рихтера, могу ошибаться с версией) и нынешним .NET 5. В контексте тех данных, которые описал Рихтер в своей книге естестенно, переписываться фичи релиза не нужно. Помимо того, если вы хотите вступать в дискусии касательно работы CLR и структуры CLS - приводите факты, а не пишите хуйню типа: "толсто/бред/разберись сам". Такого рода апелляции - это детский сад. Я и сам буду рад узнать, если где-то привел неточности, но пишите по человечески, чтобы не приходилось каждый раз плеваться перечитывая пустые высеры
>>2095661 А в чём он неправ? Языки развиваются, в них вводятся новые конструкции, облегчающие программирование, а замшелые олдфаги бубнят > синтаксический сахар, вот в наше время в лаптях кодили, и вы порриджы так делайте В таком случае синтаксический сахар всё, решительно всё, кроме машинных кодов.
>>2095980 >А в чём он неправ? В том что он долбаеб, путает теплое с мягким, придуымывает какие-то свои определения терминам, слабо вяжущиеся с реальностью. У сахара есть вполне формальное определение и к компиляции в IL код это отношения не имеет, и тем более тут не при чем call/callvirt (на которых он тоже обосрется). Для примера while это не сахар, а foerach сахар, хотя оба, внезапно, компилируются в IL
Пригласили на 3 собеседования за 9 месяцев в Санкт-Петербурге. Закономерно везде отказ. C# начал изучать только из-за вуза - там его преподавали. Куда теперь перекатываться - хуй знает.
>>2096246 Без опыта. Спрашивают принципы ООП, наследование, инкапсуляция, абстракция, полиморфизм. Классы, структуры, БД (в том числе вопросы и задачи по SQL).
>>2096386 С основами можно за день разобраться, а дальше уже осваивать в процессе. Я начинал с этого: https://git-scm.com/book/en/v2 (там же есть и на русском) https://learngitbranching.js.org (интерактивный задачник для закрепления) https://google.com (гугл) После того как разберешься с основами смело бери гуй клиент (или не бери, если ты любитель консоли), мне нравится Fork у сраного хипстерского гиткракена лагает прокрутка истории коммитов лол, зато электрон. Хотя базовые действия можно делать и из студии, но там как-то совсем куцее всё. inb4 тебя не спрашивали
Сука, как в этой ебаной авалонии повесить фильтр на столбец? Для винформс есть: private static void SetFilterColumn(this DataGridViewColumn[] columns, int columnIndex) { columns[columnIndex].HeaderCell = new DataGridViewAutoFilterColumnHeaderCell(columns[columnIndex].HeaderCell) {FilteringEnabled = true}; } Для впфа - несколько готовых либ. Молю тебя анон, помоги мне, я нихуя не понимаю
Блядь, TAP - самая дегенеративная хуйня, которую микрософтовские индусы выкатили за это десятилетие. Уебищное зафоршенное говно, ломающее через колено сложившиеся веками APM и EAP, заставляющее реально ради нихуя либо писать килограммы оборачивающего кода, либо подгонять архитектуру под решение. Я не видел еще ни одного нормального примера, где эта хуйня реально взлетела бы, не наложив при этом ограничений и одновременно не потребовав лишних строк, а наоборот, реально сократив объем кода. Бесполезное говно, решающее одну единственную задачу - сбивание зарплатных ожиданий нубов на собеседовании. В рот ебал. Вижу в присылаемом соискателями коде async/await - закрываю не глядя. Формоклепы (к тому же тупые) не нужны.
Как эта хуйня работает? Я же нигде явно не указываю, что нужно выполнить метод на добавление. Файл называется Index.cshtml. Почему вызывается именно метод Create?
Сап народ! Вроде как понял .нет, однако асп.нет не дается от слова совсем. Как вы его изучали? Пробовал тот же метанит, руководства и т.д Везде команды отличаются, и хуй поймешь как нормально понять за что они отвечают.
.NET FRAMEWORK, .NET CORE. .NET, CLR, .NET runtime, CLI. IL, JIT, DLR, ADO.NET, ASP.NET , ASP.NET MVC, MFC, CTS, CLS, GAC
ебать, и это только то что сходу вспомню. Вы чё там нахуй, ебанулись совсем? Нахуя такое количество сокращений, определений и прочей абстрактной хуеты, которую надо знать? Бля, щяс ещё вспомнил IoC, LOH ещё там с этим хуета какая-то. Ебааааааааааааааать
Все говорили что перекат будет легкий. Что веб это просто, относительно низкоуровневых задач программирования. Ебаааааааааать
Да ну нахуй, я хуею. У меня появляется какая-то физическая ненависть к майкрософту с их ебаной хуетой. В VS Studio 2019 создал макет приложения ASP.NET MVC, охуел с количества каких то функций аля Microsoft.ASP.Core.Zalupa.TvoyaMama.AllahAkbar().SetGovno(); Как это всё запомнить то блять
Бля, я походу не создан для программирования. Нравилось что-то писать, что-то учить, но вот ради РАБотки переучиваюсь на ваш веббэк ебаный, и что это вообще такое, как вы всё это запоминаете, как вы всё это пишите?
Тут ещё надо за неделю уложить в голове html5, css, sass, js что бы написать хоть какое-то приложение, а то только сижу хуету учу.
Хуй знает, после всей этой параши походу выкачусь и буду очередным невкатышем. Меня так ни одна область не убивала как веб ебучий
>>2106068 >Да ну нахуй, я хуею. У меня появляется какая-то физическая ненависть к майкрософту с их ебаной хуетой Чел, ты в классический веб не заглядывал? Да это еще цветочки - вот там в вебе вообще полная хуита из миллиона фреймворков - и все их надо знать наизусть
Что за херня? На метаните читал что Connection к базе данных кешируется, если я ее открыл, и потом снова открыл - то оно возьмется из кеша
И я в это верил и писал как на пикче первые три блока (ну не прям так - а в каждом методе вызывал 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), то создается новое подключение.
>>2107006 Нет, пока не заглядывал. Ну вот даже так, чувствую что стало намного сложнее Когда писал код для себя, я просто писал код, параллельно обучаясь многим моментам, через тернии к звёздам, но все же Щас как с ебаный русским языком, ноль применения логики, одно ебаное заучивание бесконечных фреймворков, парадигм, моделей и прочей пизды
Двощ, нужен совет. На каком фреймворке под винду проще склепать что-то подобное? Клиент мессенджера В этом особо не разбираюсь, последний раз в университете формочки пинал, но как я понял - это уже гавно мамонта. WPF? Или есть что-то более интересное? Не хотелось бы JS/HTML/CSS/Electron/небо/алаха учить в догонку
>>2090797 в общем я пробовал Повторить в точности как ты написал и у меня не получается, во первых у меня вообще нет такого как "GetRequiredServices" во вторых а какой от этого смысл ведь так можно запускать только синглтоны, а когда мне надо будет выполнить код который требует депендесни где-то в коде где у меня нет доступа до хост а не в стартапе который выполняется только раз при старте
>>2107667 Бери wpf, можно и на формах, но будет сложнее и больше гемора с заменой стандартно вида контролов. Если нужно ещё и пинусе запускать то бери авалонию. Ещё можешь посмотреть на WinUI/Maui/Uno (там какая-то сантабарбара с ними я вечно в них путаюсь, но кто-то из них наследник говнозамариана, и тоже кроссплатформа) хотя они ещё не в релизе.