Этого треда уже нет.
Это копия, сохраненная 10 мая 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
C#/Сишарп/.NET Тред #24 /csharp/ 1910324 В конец треда | Веб
Прошлый тред: >>1870468 (OP)

Литература вторым постом

1. Ресурсы:
https://dotnet.microsoft.com/learn
https://docs.microsoft.com/ru-ru/dotnet/csharp/
https://metanit.com/

2. Онлайн-компиляторы:
https://ideone.com/
https://dotnetfiddle.net/

3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае с WinForms делать намного сложнее.

4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# активно развивается, недавно вышел .NET 5 и С# 9.0. Дотнет стал полностью опенсорсным и кроссплатформенным. В том же энтерпрайзе он очень даже востребован.

5. Какую IDE выбрать?
Для Windows самым очевидным вариантом будет Visual Studio ( https://visualstudio.microsoft.com/ru/downloads/ ). Бесплатной Community-версии более, чем достаточно для большинства задач. Также есть версия для macOS.
Кроссплатформенный полуредактор/полуIDE VS Code ( https://code.visualstudio.com/ ).
Кроссплатформенный IDE Rider ( https://www.jetbrains.com/rider/ ).
Также существуют C#-плагины для Atom и Sublime Text, но функциональность там достаточно сильно урезана.

6. С# для мобильной разработки
https://dotnet.microsoft.com/apps/xamarin

Новые возможности C# 9.0: https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/

Текст шапки: https://pastebin.com/pbK8CGqw
2 1910326
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.

17. Я не умею читать, что посмотреть?
— C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
— Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
— Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
2 1910326
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.

17. Я не умею читать, что посмотреть?
— C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
— Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
— Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
3 1910737
Бэки/фуллстаки кто работает, расскажите у вас у кого нибудь wpf требуют знать? Бля буду не хочу с ui дела иметь, есть меня опция его скипнуть и не понюхать хуй? Я в курсе что wpf по сути вообще отношения к бэку не имеет но работать я не работал, всю внутреннюю кухню могу только представить, может сейчас тенденция из бэков швейцарские ножи делать ТЭНКС
4 1910749
Недавно решил попробовать вкатиться в веб разработку. Изучал основы c#, LINQ, SQL, Entity Framework Core ну и конечно HTML и CSS пощупал. Все довольно неплохо шло, очень радовал мой прогресс в понимании того, как это работает. Решил что я готов к более серьезным действиям и пошел на MSDN изучать ASP.NET Core. И знаете что? Я вообще нихуя не понимаю как это все изнутри работает, всякие конфигурации, Generic Host. Это такой темный лес, что просто пиздец. Я смотрю на генерируемый код при создании шаблона, и вообще нихуя не понимаю. Не, ну я конечно могу добавить БД по гайдам и даже изменить отображаемый контент пользователю, но как все это работает изнутри я вообще совершенно не понимаю.
А у вас как было, когда вы вкатывались? Склоняюсь к мнению, что мне стоит почитать общую информацию о работе браузеров и сетях.
5 1910761
>>1910749
У тебя есть несколько вариантов на мой взгляд. Спиздить курсы где рассказывают все рассказывают досконально как будто душевно больным itvdn например либо рекурсией гуглить самому едва ли не каждое слово а затем непонятные слова которые видишь в процессе гугления. Ну либо книги тут в шапке есть, правда сам с ними дел не имел, ничего сказать не могу.
6 1910851
>>1910737
Если тебя веб-разработка интересует (а другой мало), то не нужно знать.
7 1910853
>>1910749
Некоторое время были непонятки, но решая вопросики все прояснилось.
8 1910941
>>1910737
Че там, блядь, знать-то? XAML - обычный xml, по сути, под копотом оно тебе в объектики собирается, охуеть как сложно, биндинги, ну биндинги и хули, что отписываться нужно если решил INotifyPropertyChanged, ну, блядь, это банальность же.
Я вообще не понимаю, что современные вкатыши хотят делать-то на работе и что думают ты там делать будешь. Тебе скажут - ты программист - бери в руки ассемблер и пиздуй вилкой ковырять регистры - пойдешь как миленький, никуда не денешься, а не пойдешь - ну, отправишься на улицу.
Программист, это в первую очередь - инженер, а инженер - это тот, кто не знает фраз: не могу, не знаю, не хочу. Это, считай, твоя должностная обязанность: по первому зову все что скажут делать: скажут верстать - будешь, скажут алгоритм для вычисления оптимального пути придумать и чтобы был круче существующих на 20% - придумаешь, а скажут - пили 5 лет круды - будешь пилить круды. Такая судьба у инженера, который не хочет быть кабанчиком.
.jpg3,9 Мб, 3000x2002
9 1910950
>>1910749
1. Нужно было не просто учить, а пробовать писать. До аналога хоста я к 5й лабе в вузе дошел, когда заебался каждый раз кучу одинаковых хуевин делать чтобы графика была на сишечке.
2. Нужно было про паттерны читать, неткор решил наконец хоть немного стать похожим на что-то удобное для разработки.
3. Коды открыты, нихуя там сложного нет.
4. Как программиста - тебя ебать это не должно. Ты же не думаешь в момент написания программы, что там под каптом электрончики транзисторы теребят, тебе до пизды это, как до пизды в 99,(9) случаев во что там с точки зрения машинных команд собирается твой код, как до пизды большинству что под капотом у листа или как так получается что html написанный буквами в браузере превращается в пямоугольники, таблички, списки и вообще всеми цветами переливается.
10 1910963
>>1910749

> А у вас как было, когда вы вкатывались?


Только на первых курсах, пока не осознал, что программист работает с абстракциями. Конечно, базу знать хорошо бы, но, по факту, не это важно в программировании. Ты, блин, свой-то код через полгода-год не будешь узнавать и не сможешь с ходу сказать как он работает, если там хотя бы 20к строк уже набралось.
11 1910973
>>1910941
Дядь, расслабься пожалуйста, я не ворочу еблом. Я знаю слово "надо", и если надо учить но выучу. Просто мне больше по кайфу в шестеренках ковырять нежели рисовать йоба-дизайн, и поэтому уточняю у тех кто хорошо знаком с внутренней кухней, насколько мое " по кайфу" сопоставляется с нынешними реалиями веб дева. Может у многих компаний есть флешмоб поддрачивать бэков лепить какие нибудь приложухи для внутренних задач, откуда я это узнаю если не у того кто собаку схавал в этом дерьме. Домой аригато.
12 1910978
>>1910973
Домо* т9 сука бля сука
13 1910983
>>1910973
Лол, видели бы люди со стороны как дизайн 99% внутряка выглядит: табличка-табличка-поле-поле-кнопочка-лейбл и это все стандартом абсолютным и срать все хотели на разные разрешения, красивости, анимации и прочее, это внутряк, он должен какую-то внутреннюю задачу решать даже на баги некретичные похуй, все свои, обматерят в курилке, да попросят что-то в следующей сборке поправить.
А сделать таки заставить могут, если задача такая стоять будет и нет тех кто с этим лучше справится. Просто, блин, УЧИТЬ? Ты берешь, гуглишь, 2 вечера читаешь доки - делаешь, что там учить-то?
14 1911071
>>1910983
Большое спасибо за вменяемый ответ!
15 1911114
>>1910749
Забей хуй на то, как это работает, тебе выше правильно сказали аноны. Просто делай и все. Когда привыкнешь к тому, как ASP работает, как на нем что-то базовое и не только делать - тогда уже можно лезть в пизду и пытаться вникнуть, что за черная магия происходит под капотом, и то при необходимости.
Я лично неделю уже уделяю несколько часов в день на изучение ASPа по книге Фримана. Первые несколько дней хватался за голову от того, как все сложно, непонятно и что за черная блядь магия в каждой строчке происходит. Сейчас уже попривык ко всякой ебале. Копипасчу все из книги нещадно, но хотя бы начинаю понимать, что я копипасчу. Сегодня вот даже смог написать свою первую полностью самостоятельную строчку кода - вроде мелочь, а по сравнению с тихим ужасом от первого взгляда на ASP - ебать прогресс.
мимо вкатун
16 1911264
>>1910324 (OP)
Чем C# отличается от Python?
17 1911279
>>1911264
Ну хотя бы типизацией.
18 1911280
Есть аналоги CLR via C#, только новее?
19 1911333
>>1911280
А то ну основы, конечно, не изменились, но все-таки хочется освежить знания
20 1911513
>>1910324 (OP)
Эх, вот бы сразу на удаленочку вкотиться а пока резюме даже не смотрят
21 1911518
Анон, поясни такую штуку пожалуйста:
Вот есть стандартный способ как поменять две переменных местами с помощью третьей:

int c = a;
a = b;
b = c;

в CIL он выглядит вот так:

IL_0022: ldloc.0
IL_0023: stloc.2
IL_0024: ldloc.1
IL_0025: stloc.0
IL_0026: ldloc.2
IL_0027: stloc.1

Ок. Все понятно.
------
Теперь берем метод через деконструкцию кортежа:

(a, b) = (b, a);

Смотрим в дамп, а там практически то же самое, только чуть в другом порядке:

IL_0022: ldloc.1
IL_0023: ldloc.0
IL_0024: stloc.2
IL_0025: stloc.0
IL_0026: ldloc.2
IL_0027: stloc.1

Почему так? По логике деконструкции он же должен взять два значения, закинуть их в стек, а потом просто забрать их оттуда в обратном порядке, т.е. вот так:

IL_0022: ldloc.1
IL_0023: ldloc.0
IL_0024: stloc.1
IL_0025: stloc.0

Зачем он во втором способе заводит лишнюю переменную? Или эта херня уже дальше потом оптимизируется при конечной компиляции?
21 1911518
Анон, поясни такую штуку пожалуйста:
Вот есть стандартный способ как поменять две переменных местами с помощью третьей:

int c = a;
a = b;
b = c;

в CIL он выглядит вот так:

IL_0022: ldloc.0
IL_0023: stloc.2
IL_0024: ldloc.1
IL_0025: stloc.0
IL_0026: ldloc.2
IL_0027: stloc.1

Ок. Все понятно.
------
Теперь берем метод через деконструкцию кортежа:

(a, b) = (b, a);

Смотрим в дамп, а там практически то же самое, только чуть в другом порядке:

IL_0022: ldloc.1
IL_0023: ldloc.0
IL_0024: stloc.2
IL_0025: stloc.0
IL_0026: ldloc.2
IL_0027: stloc.1

Почему так? По логике деконструкции он же должен взять два значения, закинуть их в стек, а потом просто забрать их оттуда в обратном порядке, т.е. вот так:

IL_0022: ldloc.1
IL_0023: ldloc.0
IL_0024: stloc.1
IL_0025: stloc.0

Зачем он во втором способе заводит лишнюю переменную? Или эта херня уже дальше потом оптимизируется при конечной компиляции?
Безымянный.png22 Кб, 685x147
22 1911564
>>1911518

> Или эта херня уже дальше потом оптимизируется при конечной компиляции?



Да. После компиляции у тебя пикрил получается.
23 1911833
>>1910941
Ебать жалко тебя. Ты судя по всему ни разу в достойной компании не работал, где знают про зоны ответственности работников
24 1912101
>>1912094 →
Бамп
25 1912129
>>1912101
Берешь винформс и делаешь. Что конкретно тебе не понятно? Если хочешь готовый код, то заходишь на гитхаб и вбиваешь в поиск notifier и фильтруешь результаты по сишарпу
26 1912150
>>1912101
Изучи класс TimeSpan и его свойства.
image.png408 Кб, 1281x589
27 1913612
Здарова всем! Подскажите, как без сторонних библиотек от васянов запилить такое уведомление в WPF?
28 1913614
29 1914170
здравствуйте, извините за тупой вопрос.
у меня много где написан код вида
T[] array;
for (int i = 0; i < array.Length; i++) {
int nextIndex = i + 1;
if(nextIndex == array.Length) nextIndex = 0;
}

подскажите изящный способ без if получать 0 на последней итерации.
30 1914185
>>1914170
Написать сразу после тела for - nextIndex = 0 ?
31 1914186
>>1914170
Добавляй в конец массива первый элемент этого массива, в итоге получится:

for (int i = 0; i < array.Length - 1; i ++) {
int nextIndex = i + 1;
}
32 1914200
а ладно. посидел, чаёчку попил. можно же написать
int nextIndex = (i + 1) % array.Length;
и получить всё как надо
>>1914185
wut?

>>1914186
совсем говноспособ же.
33 1914462
>>1914200

>совсем говноспособ же.



Почему ты так решил? Говноспособ или нет, но работать будет быстрее чем деление по модулю при каждой итерации.
34 1914487
>>1914462
так делают только дегенеративные личности. ты любитель наступать на грабли? подкидывать себе какашки в песочницу?

через пол года эта логическая лапша прокиснет. открываешь код а потом думаешь "а почему тут лишний индекс. а почему в него чтото суётся".
или дальше код пишешь и забываешь что тебе надо копировать лол первый индекс в последний при повторной подобной итерации.
нельзя использовать Length/Count как указатель количества элементов. надо вычитать единичку!
ну и наконец случаи когда надо написать просто нормальную библиотечную функцию у которой инпут и аутпут без выебонов.
итд

код надо писать так чтобы ты мог потом в него заглянуть и прочесть не хватаясь за голову. нашел, блядь, что обменивать. читаемость всего связанного куска кода на разницу между делением по модулю и его отсутствием.
35 1914549
Извините за тупой вопрос.
WPF, есть одна кнопка в гриде, в одной колонке. Могу ли я во view model кодом растянуть эту кнопку на несколько колонок?
36 1914683
>>1914549
Ну запили свойство во виeв модели, ButtonColumnSpan, потом в кнопке в xaml Grid.ColumnSpan="{Binding ButtonColumnSpan}".
37 1914724
Посоны, вот такой код:
async ValueTask foo(){
if(isConfigured) {.....}
isConfigured = true;
....
}
является потоко безопасным или нет? Подозреваю что нет. А как его по нормальному переписать? Шарп ругается на локи в асинке, а плодить таску семафором через semaphore.waitasync, ради такой простой фигни, как-то не хочется.
38 1914749
>>1914724
Делай через Interlocked.CompareExchange, только придётся либо в int переводить и обуславливаться тем что 1 это true, а 0 это false, либо боксить булево значение в объект.
39 1914779
>>1914724
Что-то вроде такого, предполагаю, прокатит https://pastebin.com/ApGKuZQV. Но в некоторых случаях double-checked locking считается антипаттерном.
41 1915273
>>1914749
Спасибо, перевел бул в инт просто.

Алсо, вопрос по этим мутексам и семафорам. Правильно ли я понимаю, что когда пишу sem.Wait() или lock(), то поток становится залоченым и просто ждет, когда нужный ресурс освободится? И в это время ничто в программе не может использовать этот поток?
Почему тогда в стандартную либу не добавили асинхронные мутексы, локи и тд?
42 1915274
>>1910324 (OP)
Все таки убрали из шапки про "язык богов".
43 1915275
>>1915274
Лол, тоже заметил. Да судя по рыночку шарпеев уже меньше пхпшников осталось)
мимо
44 1915302
>>1915273
Для асинхронного лока есть SempahorSlim с его WaitAsync. Переписывать старое просто нет смысла.
45 1915571
>>1915274
решили не позорится
>>1915275
их всегда было меньше (причем в разы)

мимо
46 1915581
аноны, пилил игоры на юнити 4 года
заебало - постоянные, бесконечный спринты, ебля с юаем и, вообще говоря, история далекая от настоящего проганья
в общем, знаю юнитишные си шарп и питон (довольно много на нем пиходилось писать)
Куда можно вкатиться с такими знаниями без потери в зп? (была 80, тк контора очень мелкая) В бекенд реально?
47 1915594
>>1915581
Реально только в другую бнити контору, иначе охуеешь от того сколько всего нужно знать. Помимо бекенд фреймворков вида асп.нет и сигналР, нужно еще SQL щнаит на уровне не хуже шарповского. Дополняется это всё знанием JS и базовым знанием html+css. Если уверен, что сможешь всё это освоить и не потерять в зп, то дерзай. Но я бы лучше в текущей сфере развивался, благо юнити не теряет в популярности.
48 1915610
>>1915594
ну бля, хуево
а сколько у вас джуны получают?
49 1915627
>>1915610
У нас их нет, у нас все фуллстеки с зп от 100-140, при этом нанимают только если у тебя уже был опыт работы во фронте.
50 1915652
>>1915627
епт, серьезно что ли?
51 1915662
>>1915652
Да, открой hh.ru, там картина примерно такая же.
52 1915675
>>1915581
кек. а кодзимой то стал? разбогател? игру мечты выпустил? есть что показать?!
мимо пилю велосипеды на юнити 6 лет
53 1915691
>>1915675
да не, у нас там именно софт промышленный
управление дронами
54 1915702
>>1915691
наверно интересно. мне вот не повезло ничего такого. хотя я не очень искал. в итоге все шесть пилил велосипеды для проекта мечты.
а какие скиллы нужны то чтобы дронами в промышленности управлять?
55 1915957
>>1915702
Ох, братиш
Ну, в целом то, дохуя. Но смотря что
У нас был стартап, поэтому область отвественности была довольно обширная
Ну понятно, что на юнити висит юай и логика - тут все мало чем у игроделов отличается
Помимо проганья нужен матан и знание основ теории управления (но я этого касался поверхностно, другие ребята занимались управлением).
Я сам сперва, помимо самого юнити, в соляну, потом уже с тимой пилил зрение - обработку облаков точек с ргбд камеры (ну тут был питон).
Короче зависит от размера команды: если мелкая, как у нас, то нужно много чего знать. Если штат крупный, то у каждого будет четко ограниченная роль и необходимый набор скилов. К слову, мы потом набирали людей на юнити именно геймдевных - для всяких оптимизация и прочего, требующего хороших знаний специфики юнити
56 1916024
>>1910324 (OP)
Всегда ловил лютый криндж с языков типа Java и C#, точнее не с самих языков, а инфраструктуры и специфики разрабов. Всё такое официальное, стандартизирован каждый пук, тысяча уровней абстракции с модными билдерами, фабриками, фабриками билдеров, билдерами визитёров стейта стратегии фабрик и т.д. Ещё очень угараю всегда с сертификаций всяких майкрософтов. В итоге все это вместе всегда вызывало чувство некоей КОЛХОЗНОСТИ происходящего.

Это все так на самом деле? Или мое впечатление ложное и обстановка кодоебов на шарпе такая же приятная, как и кодоебов на всяких Го/Питонах и т.д.? Или реально всё так официально-деловито? Если что не траллинг, прост рил интересно.
57 1916027
>>1915957
а вообще не так и много и довольно размыто. разве что теорию управления я как что-то целостное никогда не изучал, но учитывая что меня обычно звали в проекты делать ИИ, то наверно я знаю больше нуля. и анализ облака точек для меня не кажется таким уж сложным учитывая что мой первый крупный самостоятельный проект был это был навмеш собранный на коленке. пикрелейтед. видеорелейтед.

а че там ещё нужно? вычислительные шейдоры? новомодная хуйня вроде DOTS?
58 1916034
>>1916024
Паттерны проектирования не только в C#/Java применяются. И применения паттернов позволяет писать безопасный код, который устойчив к изменению и расширению. При этом сами языки не требуют от программиста управления памятью. Что в целом делают эти языки отличным выбором для крупных компаний с большой кодовой базой.
59 1916074
Пытаюсь добавить нугет MySql.Data, но вижак срет ошибкой и ничего не устанавливает

Restoring packages for E:\хуйпизда.csproj...
GET https://api.nuget.org/v3-flatcontainer/mysql.data/index.json
Unable to load the service index for source https://dotnet.myget.org/F/roslyn/api/v3/index.json.
Response status code does not indicate success: 404 (Feed does not exist.).
Time Elapsed: 00:00:01.1212230
========== Finished ==========

Это у меня какая-то хуйня с вижаком, или в майкрософте где-то обосрались?
60 1916091
>>1916074
По второй ссылке действительно нихуя нету.
61 1916096
>>1916091
Да, но почему он вообще в неё ломится?
62 1916119
>>1916027
да я не пытаюсь тебя как-то отпугнуть типа "смотри как я крутой, я облака точек знаю как обрабатывать"
типа камон, мне до мудрых дядек, знающих все еще хуячить и хуячить
Да и задачи были не самые сложные - классика робототехники: найти объект в облаке, движение по траектории (ну тут, правда, все чисто на RGB + D канале)
просто я к тому, что чистым кодингом тут не отделаешься, скорее всего, нужно знать еще что-нибудь из роботоетехнической области
шейдоров каких-то сложных у нас не было
У тебя, кстати, интересный опыт, как мне кажется
расскажи вообще, что за проекты с ИИ (Примерно)? навмеш на колентке это просто пет проект? Ты работаешь именно с юнити?
Просто у меня вот этап смены работы и я прям парюсь: валить ли с юнити или оставаться
Буду рад, если ответишь)
63 1916131
>>1916034
Вопрос вообще не об этом.
64 1916172
>>1916074
Короче хрень какая-то была. Я поудалял из инсталлера ненужные компоненты, обновил вижак до самой последней версии, сделал ему "восстановление", и оно всё равно после этого не работало. Ну думаю, пиздос, придется писать им куда-нибудь. Нажал Install ещё раз чисто чтобы скопировать текст ошибки, а оно взяло и установилось.
65 1916180
>>1916119
да не мне так интересно какой вообще минимальный набор скиллов требуется за пределами гейдева. что-то такое поверхностное то на юнити ебошить то много знать не надо. а то открываешь порой требования для обычных погромистов а там список всяких интересных требований. открываешь к юнити а там можно сформулировать как "не быть говноделом" и "знать какую-то узкоспециализированную хуйню"

>расскажи вообще, что за проекты с ИИ (Примерно)?


всякие. пару раз делал и доделывал ИИ для стратегии, для РПГ одной делал, для хуевого шутана. ничего такого чем я бы гордился. обычно задача ставится "чтобы расширять можно было не через жопу и без моей помощи", а не какие-то интересные решения чтобы принимало. чтобы интересные решения принимало это надо обычно в проект нанимать отдельного человека у которого там своя атмосфера в проекте.

>навмеш на колентке это просто пет проект? Ты работаешь именно с юнити?


юнити просто знаю лучше всего. так то и в некоторых других движках кнопки найти смогу если что. навмеш скорее мой основной проект в портфолио и проект над которым я работаю дольше всего. когда начинал над ним работу у юнити вместо навмеша был пиздец который билдился только в эдиторе, а я хотел именно процедурные уровни. были конечно другие решения для навигации но они мне все не нравились и я стал ебошить своё. в итоге лол юнитеки допилили себе навмеш до того состояния который мне был нужен ранее, но к тому моменту я запилил уже своё получше. вообще навигация конечно мегаважна в ИИ, так как позволяет решать какие-то пространственные задачи. например в той РПГ мне дали задачу научить ИИ использовать предметы в запертых комнатах лол. то есть ИИ должен был построить путь в запертую комнату(уже интересное начало), в этом пути должен был содержатся флажок "тут заперто", вернуть ИИ информацию где находится ключик от комнаты и сказать чтобы он пиздовал туда где ключик, взял ключик, вернулся к запертой двери, отпер дверь, наконец применил предмет в запертой комнате. вроде тривиальная задача, а чем больше информации доступно изначально тем проще её решить. идеально если она доступна сразу вся чтобы поток думалки не лез лишний раз в поток навигации. а ведь задача может усложнится! когда например от комнаты нужно два ключика и один из них у патрулирующего стражника, тогда надо ещё знать какой из ключиков ближе учитывая расстояние хождения.
ну а могущество залезть в генерацию навмеша и какую-то свою хуйню сделать это конечно замечательно. например лол вон у меня есть генерация зон доступных только "присев" где соответственно сложней передвигаться. что-то такое в стандартном навмеше сделать несколько проблемно. или вон та информация о "укрытиях" тоже результат генерации. не руками же такое расставлять!

ну а так то разумеется не один навмеш я умею. умею вычислительные шейдоры, обычные шейдоры, всякую геометрическую хуйню, допиливать функционал самого юнити. это наверно чаще всего просят. ну и по мелочи. вообще я могу тут весь тред засрать всякими интересными картинками и видосиками.

>Просто у меня вот этап смены работы и я прям парюсь: валить ли с юнити или оставаться


с одной стороны на юнити самый наверно повышенный спрос, а с другой стороны много просят тривиальную хуйню а платят за неё мало. но это я сужу с точки зрения гейдева. а тут управление дронами охуеть.
65 1916180
>>1916119
да не мне так интересно какой вообще минимальный набор скиллов требуется за пределами гейдева. что-то такое поверхностное то на юнити ебошить то много знать не надо. а то открываешь порой требования для обычных погромистов а там список всяких интересных требований. открываешь к юнити а там можно сформулировать как "не быть говноделом" и "знать какую-то узкоспециализированную хуйню"

>расскажи вообще, что за проекты с ИИ (Примерно)?


всякие. пару раз делал и доделывал ИИ для стратегии, для РПГ одной делал, для хуевого шутана. ничего такого чем я бы гордился. обычно задача ставится "чтобы расширять можно было не через жопу и без моей помощи", а не какие-то интересные решения чтобы принимало. чтобы интересные решения принимало это надо обычно в проект нанимать отдельного человека у которого там своя атмосфера в проекте.

>навмеш на колентке это просто пет проект? Ты работаешь именно с юнити?


юнити просто знаю лучше всего. так то и в некоторых других движках кнопки найти смогу если что. навмеш скорее мой основной проект в портфолио и проект над которым я работаю дольше всего. когда начинал над ним работу у юнити вместо навмеша был пиздец который билдился только в эдиторе, а я хотел именно процедурные уровни. были конечно другие решения для навигации но они мне все не нравились и я стал ебошить своё. в итоге лол юнитеки допилили себе навмеш до того состояния который мне был нужен ранее, но к тому моменту я запилил уже своё получше. вообще навигация конечно мегаважна в ИИ, так как позволяет решать какие-то пространственные задачи. например в той РПГ мне дали задачу научить ИИ использовать предметы в запертых комнатах лол. то есть ИИ должен был построить путь в запертую комнату(уже интересное начало), в этом пути должен был содержатся флажок "тут заперто", вернуть ИИ информацию где находится ключик от комнаты и сказать чтобы он пиздовал туда где ключик, взял ключик, вернулся к запертой двери, отпер дверь, наконец применил предмет в запертой комнате. вроде тривиальная задача, а чем больше информации доступно изначально тем проще её решить. идеально если она доступна сразу вся чтобы поток думалки не лез лишний раз в поток навигации. а ведь задача может усложнится! когда например от комнаты нужно два ключика и один из них у патрулирующего стражника, тогда надо ещё знать какой из ключиков ближе учитывая расстояние хождения.
ну а могущество залезть в генерацию навмеша и какую-то свою хуйню сделать это конечно замечательно. например лол вон у меня есть генерация зон доступных только "присев" где соответственно сложней передвигаться. что-то такое в стандартном навмеше сделать несколько проблемно. или вон та информация о "укрытиях" тоже результат генерации. не руками же такое расставлять!

ну а так то разумеется не один навмеш я умею. умею вычислительные шейдоры, обычные шейдоры, всякую геометрическую хуйню, допиливать функционал самого юнити. это наверно чаще всего просят. ну и по мелочи. вообще я могу тут весь тред засрать всякими интересными картинками и видосиками.

>Просто у меня вот этап смены работы и я прям парюсь: валить ли с юнити или оставаться


с одной стороны на юнити самый наверно повышенный спрос, а с другой стороны много просят тривиальную хуйню а платят за неё мало. но это я сужу с точки зрения гейдева. а тут управление дронами охуеть.
66 1916182
>>1916180
наверно ещё это покажу. один из моих любимых проектов.
67 1916185
Анончики подскажите такую штуку.
Как в SeleniumWebDriver делать прокрутку страницы ?
Именно что бы страничка неспеша так скролила вниз?
А то что то не выходит найти инфы.

Или все делать через JSExecutor ?
68 1916201
>>1916182
блин, вообще прикольно
а если не секрет, тебе сколько лет? Ты работаешь юнити прогером сейчас? или только проектные истории?
U11.webm24 Мб, webm,
1680x966, 0:15
69 1916214
>>1916201
уравнение навье стокса вообще клево! смотришь на такое и техномагия какая-то! жаль довольно поверхностно знаю. то на что можно убить пару лет и не заметить. и мало практического применения имеет, не пропорционально тому времени которое требуется на него.
мне тридцатник уже. вкатывался в погромирование лет 8 назад без каких либо скиллов на энтузиазме. сейчас я не работаю, скорее возвращаюсь к погромированию после продолжительной хандры от навалившихся проблем.
надо наверно доделать уже пару фич для навмеша, подучить пару вещей, да завести свой проект.
70 1916237
>>1916214
а, типа хобби
ну прикольно
71 1916387
>>1916180

>otdatgribi


>vernutsavderevnu



Я так понимаю "не быть говноделом" это не про тебя.
72 1916388
>>1916214
Почему пикрил не использовать как карту высот для симуляции воды? Пробовал так делать? Или слишком медленно вычисляется?
73 1916583
Сап систерс. Пишу сайтец на асп коре и пришло время забацать регистрацию пользователей, буду использовать очевидный айдентити. Cтандартный IdentityUser<T> предоставляет набор членов за щеку, половина из которых мне нахой не нужны. Вопрос стоит ли пилить кастомный UserStore или пусть болтаются пустые колонки в бд?
74 1916588
И еще вопрос вдогонку, почему стандартные IdentityUser/IdentityRole используют в качестве ключа строку, а не int/guid? В этом есть какой-то сакральный смысл? Случиться ли что-нибудь плохое, если в качестве айди я поставлю инт с автоинкрементом?
75 1916638
>>1914683
Еще раз извиняюсь - а какой тип свойства/поля в вм мне юзать?
76 1916712
А, все - интеджер, пиздец я туплю.
77 1916729
Сап, в вузе учусь на 2 курсе, у нас с# преподают (ща прошли делегаты события асинхронные функции и потоки (ну как прошли, так не глубоко))
В итоге решил вкатиться полностью в с#, поясните насколько он перспективен если сейчас учить - смогу я норм работу найти - чтобы при этом не скучную? (как я понял самое скучное это легаси поддерживать - на сколько в с# плохо с этим?)
И еще пытался вкатиться в frontend - не зашло, но что-то как я понял если в с# вкатываться то все равно в итоге придется скорее фулстеком быть??
78 1916782
>>1916729
бамп вопросу
79 1916788
>>1916729

>на сколько в с# плохо с этим?


Всё плохо, особенно если попадешь на проект который писался на винформс. При этом сам язык и платформа хорошо развиваются, ты смотришь на эти отчеты об улучшениях и облизываешься, потому что на работе у тебя .Net Core и пахнуть не будет, если попадешь на 4.5 фреймворк - считай повезло.

>вкатываться то все равно в итоге придется скорее фулстеком быть??



Так и есть. Если хочешь работать с современным шапром, то должен шарить в JS + HTML + Angular/React в качестве фрона и ASP NET, EF, SQL, Identity, SignalR в качестве бэкенда. Можешь всё перечисленное прям сейчас уже учить, упор делай на SQL и ASP NET.
U - Sand.webm31,1 Мб, webm,
1680x966, 1:14
80 1916812
>>1916387
кекеке. вообще я делал это на стриме, так что особо не заморачивался с именами. хотел чтобы ИИ ходил в лес за грибами! если интересно, но непонятно то на скриншоте в целом тот-же сорт ИИ как в FEAR. довольно клёвый планировщик. https://en.wikipedia.org/wiki/Stanford_Research_Institute_Problem_Solver состояние мира описывается как набор bool, каждое действие имеет прекондицию и то как оно меняет флаги в состоянии мира. а поиск заключается в изменении представления состояния мира пока оно не достигнет целевого.
хорош тогда когда пулл действий должен быть максимально динамичным, так как связи между действиями описаны в прекондициях к ним. можно вешать пулл действий прямо на предметы в мире, например. а в качестве целевого сосотояния использовать какую-нибудь эристику. как в симсах например. хочет срать - роется в планировщике в поиске способа посрать.

>>1916388
карту высот? имеешь в виду что красное = количество воды? так себе идея. между водичкой сверху и газиками снизу есть разница в способе перемещения их. водичка перемещается вариацией https://en.wikipedia.org/wiki/Shallow_water_equations там есть интересный шаг который исключает "потерю" воды при перемещении так как перемещаться она может только в соседние клетки. там где красный дым там просто берётся отрицательный вектор движения для текущего пикселя и смотрит чё там с помощью билинейной интерполяции. синее это очень сильно увеличенная зона где "длина" векторов различается и соответствует повышенному давлению (там есть пониженное, просто оно не отображается тут), зелёное это то где направление различается и оно делает завитушки. изначально хотел сделать такое в несколько слоев и использовать для атмосферной симуляции. чтобы облака были похожи на настоящие! но немного не оценил масштабы проекта. там где водичка землю размывает кстати применяется комбинация обоих методов. эрозия размягченной земли перемещается как красный дым. эрозия под действием гравитации это уже вода где не сохраняется инерция. видеорелейтед.

ну а производительность то что. оно на гпу обрабатывается же целиком. это шейдор. верней конкретно это вычислительный шейдор. https://docs.unity3d.com/520/Documentation/Manual/ComputeShaders.html с клевым API. гпу такое проглатывает и даже кулерами гудеть не начинает.
U - Sand.webm31,1 Мб, webm,
1680x966, 1:14
80 1916812
>>1916387
кекеке. вообще я делал это на стриме, так что особо не заморачивался с именами. хотел чтобы ИИ ходил в лес за грибами! если интересно, но непонятно то на скриншоте в целом тот-же сорт ИИ как в FEAR. довольно клёвый планировщик. https://en.wikipedia.org/wiki/Stanford_Research_Institute_Problem_Solver состояние мира описывается как набор bool, каждое действие имеет прекондицию и то как оно меняет флаги в состоянии мира. а поиск заключается в изменении представления состояния мира пока оно не достигнет целевого.
хорош тогда когда пулл действий должен быть максимально динамичным, так как связи между действиями описаны в прекондициях к ним. можно вешать пулл действий прямо на предметы в мире, например. а в качестве целевого сосотояния использовать какую-нибудь эристику. как в симсах например. хочет срать - роется в планировщике в поиске способа посрать.

>>1916388
карту высот? имеешь в виду что красное = количество воды? так себе идея. между водичкой сверху и газиками снизу есть разница в способе перемещения их. водичка перемещается вариацией https://en.wikipedia.org/wiki/Shallow_water_equations там есть интересный шаг который исключает "потерю" воды при перемещении так как перемещаться она может только в соседние клетки. там где красный дым там просто берётся отрицательный вектор движения для текущего пикселя и смотрит чё там с помощью билинейной интерполяции. синее это очень сильно увеличенная зона где "длина" векторов различается и соответствует повышенному давлению (там есть пониженное, просто оно не отображается тут), зелёное это то где направление различается и оно делает завитушки. изначально хотел сделать такое в несколько слоев и использовать для атмосферной симуляции. чтобы облака были похожи на настоящие! но немного не оценил масштабы проекта. там где водичка землю размывает кстати применяется комбинация обоих методов. эрозия размягченной земли перемещается как красный дым. эрозия под действием гравитации это уже вода где не сохраняется инерция. видеорелейтед.

ну а производительность то что. оно на гпу обрабатывается же целиком. это шейдор. верней конкретно это вычислительный шейдор. https://docs.unity3d.com/520/Documentation/Manual/ComputeShaders.html с клевым API. гпу такое проглатывает и даже кулерами гудеть не начинает.
81 1916998
>>1910324 (OP)
Есть ли какой-то символ, который выглядит похоже на косую черту типа "/", но на самом деле ей не является и допустим для использования в именах переменных и т.п. Мне нужно не расстраивающее мои чувства о прекрасном написание в енумах вещей типа kg/m3, например kg⳺m3 (не работает, т.к. не допустимый символ).
82 1917010
>>1916788
Это похоже какая-то проблема исключительно шарпистов, потому что к бэкендерам на других языках таких требований не предъявляют.
83 1917015
>>1917010
Пчел, я пыхо-джун и на работке заставили реакт с тайпскриптом учить. А вообще на западе фулстек это тренд уже пару лет как, вакансий чистых бэк/фронт у них все меньше становится.
мимо
84 1917040
>>1916998
Вот что нашел: Ⳇ и ⳇ. Это коптский алфавит.
kgⳆm3 - валидный енум.
85 1917047
>>1916812

> карта высот


Не, имею в виду, что красное - это высота. Естественно я не о полной симуляции воды, я больше про волны, например от интерации с персонажем.
86 1917087
>>1916172
Кастомные nuget каналы устанавливал? Можно проверить в nuget.exe sources, удалить лишнее
Screenshot 2021-01-21 224229.png81 Кб, 2050x622
87 1917170
>>1917087
Хмм, а действительно, нашел в AppData\Roaming\NuGet в конфиге ссылку на этот рослин.
Я когда-то ставил опции для разработки расширений для вижуал студии, видимо они туда этим насрали.
88 1917435
Я с нуля, скачал visual studio, смотрю видео уроки, как подсказки (интелселс?) На русском сделать? И как посмотреть на какой платформе создал проект? На видео там видно как выбрать можно, но там 2017 года VS, а у меня 2019, ничего не видно, не было выбора, сразу автоматом прошло
89 1917557
>>1916998
>>1917040
Еблан, ты о других людях подумай, которые твой код потом будут поддерживать. Не все, блядь, в студии кодят, не все используют всякие приблуды при написании кода, та и тупо при сохранении твоего кода в ASCII-кодировку пизда прийдет твоим символам.
Как человек пиши: kgPerCubicMetre, это и набирается легко и найти легко и запомнить легко и выглядит отпрятно. Нет, сука, нужно извратиться, чтобы потом никто нахуй не мог, если ему нужно, найти то что ему нужно.
Давай, ебани еще иероглифов в код, хули, шарп-то позволяет на любом языке писать. А для пущего эффекта - называй классы на русском, чтобы все знали какой ты молодец и постоянно раскладку меняли.
Отвратительно, нахуй. Пидорасу неприятно, а тем кто потом будет 3 часа нужную переменную напечатать - будет охуеть как приятно.
Практическая20работа20№4,20№5,№620(2).dochtml79a83f6eb629eb[...].png98 Кб, 2985x2285
90 1917585
>>1917557
Я ожидал такую реакцию, и я понимаю её, как программист, если оторваться от предметной области.
Я попытаюсь объяснить свою позицию, и хотел бы услышать мнения на этот счёт.
Для читаемости кода, краткость и лаконичность, а также привычное написание известных физических и математических сущностей - превыше всего.
kgPerCubicMetre - это очень длинно. А ведь есть ещё кг/м/с2 или Дж/К/моль. Это ещё длинней придётся так писать. Если таких вещей полно, это абсолютно нечитаемо.
Я ведь есть ещё физические формулы. P = ρ g H - это понятно, легко и читаемо. А вот это: pressure = density accelerationOfGravity height уже в таком простом примере читается тяжело. А если формулы длинные? Намного более длинные? А если код целиком состоит из обилия формул? Мне кажется любители латиницы и длинных верблюжьих названий не писали физических и инженерных приложений, иначе бы они так не думали. И да, есть некоторые термины, которые применяются в российской инженерной практике, которым нет прямого эквивалента на английском. В результате этого одно и тоже понятие в коде разных авторов называется совершенно по разному (в меру знаний английского и понимая предметной области теми или иными кодерами). В таких случаях я также настаиваю на написании имён переменных именно русскими буквами, именно так, как она называется в пост-СССР. Я кстати видел код своих немецких коллег, так вот у них использование немецких названий переменных немецким алфавитом - это норма, подозреваю, по тем же причинам.
Очень печально, что С# не имеет отдельного оператора для возведения в степень.
91 1917590
>>1917585
все идентификаторы должны быть однобўквенными.
каждая бўква - отдельный идентификатор.
зачем вообще многобўквенные идентификаторы?
как бўдто бўквов мало, полный юникод бўквов.
а кому мало бўквов, тот может юзать эмодзи.
92 1917597
>>1917585
Лол, няша. Программисту это удобнее для чтения. Потому что программисту - собственно похуй что за этим стоит, он на тестах проверит, что результат тот что нужно. Важно чтобы эта переменная легко запоминалась. И как раз kgPerCubicMeter - запоминается легко, а имя достаточно уникально, чтобы сразу найти место где оно используется.
Программисту до пизды что там за предметная область, какие законы там стоят и прочее - для него это просто данные в памяти, байтики, нахуй, ему нужно их посчитать, передать куда-то еще, потом сохранить или показать результат. Важно, чтобы можно было нажать ctrl+f и сразу найти то что нужно тебе, а не еабться с тем что формула красиво выглядит, до пизды как выглядит в тексте программы, тем более что программист это в первую очередь тот кто программу пишет, а не тот кому есть какое-то дело до предметной области, на фронте уже нарисуют как надо тем кто этим пользоваться будет. Тебе важно, чтобы в 100500к строках кода - ты без труда мог нати то что тебе нужно, для этого и придуманы стандартные нотации, для этого и придуманы стандартные структуры файлов, для этого и пишется velocity = velocityPrevious + (acceleration time); вместо v=v0+at, чтобы ты не зная что, блядь, за v - мог понять что это такое, Тебе завтра скажут вместо физических величин - писть ПО для банка, послезавтра - для роботов, а потом - для самолетов, и ты должен писать быстро, иметь возможность найти то что нужно, ты не на уроке, блядь, где вы зазубрили формулы и дрочите задачки, ты, сука, программист, нахуй, эксперт во всем, и чем меньше ты создаешь сложностей себе и коллегам - тем тебе проще.
93 1917602
>>1917597

>найти место где оно используется


Вот тут не очень понял в чём сложность. Если используешь студию, то она сама всё подсветит, или ты о том, чтобы просто найти все переменные во всём проекте, имеющие подобное название? Но тогда не понятно, зачем это. Если не используешь студию, ну ты сам себе злобный буратино.

>чтобы ты не зная что, блядь, за v - мог понять что это такое


Для такого существует ридми, документация, на худой конец в заголовке файла в комменте освятить основные сокращения, например.

>завтра скажут вместо физических величин - писть ПО для банка, послезавтра - для роботов, а потом - для самолетов


Ну это уже макакинг. Там где предметная область не нужна для таких кодеров будет внешний рафинированный интерфейс, за который ему и лезть не стоит.
94 1917643
>>1917602

> Вот тут не очень понял в чём сложность


Допустим, у тебя проект чуть до среднего не дотягивает, скажем 60к строк. Ты только пришел, тебе говорят: Скорость неправильно считается, пофиксь, пожалуйста. Как думаешь, вот лично тебе будет интересно ковыряться в 60к строках кода в поиске места где твоя переменная находится, ведь нормальным поиском - ты не можешь ее найти, т.к. v не такая и редкая буква, а где что лежит - не знаешь, ты же только на проект пришел. Думаешь тебе кто-то специально в ридми напишет: "Мы рассчитываем скорость в таком-то файлике на такой-то строке"? Да нихуя. И как раз если бы оно нормально называлось - ты просто жмакаешь ctrl+f и пишешь velocity - все, ты нашел все места где оно встречается, за 10 минут прошелся - нашел баг, пофиксил, пошел пить кофе и мацать за жопу практикантку, которая очень хочет научиться программировать и просит тебя, скиллового чела, что баг за 10 минут пофиксил - после работы научить примудростям, а если в проекте используется всякая хуета вида v=a+b+c - ты будешь неделю только вникать где что лежит и как сделать так, чтобы нахуй не поломалось все.

> Для такого существует ридми, документация, на худой конец в заголовке файла в комменте освятить основные сокращения, например.


Да, ты ведь каждую переменную в ридми записываешь, а внутри метода каждую строчку сопровождаешь комментарием, когда тебе нужно за день 10 тасков закрыть, конечно, заняться больше нечем. Действительно, зачем написать название переменной, которое всем понятно - если можно высрать комментарии. 11/10 решение, ничего не скажешь.

> Ну это уже макакинг.


Это обычная такая реальность разработки. Вы - крутые спецы, клиенты знают что вы делаете быстро и качественно, а берете меньше чем в европах/сша кодеры, сегодня к вам клиника стамоталогическая обратилась, нужно софт для ведения карточек пациентов сделать, чтобы в них хранились 3d сканы челюсти и было удобное мобильное приложение, чтобы можно было эксперту скинуть и он удаленно мог провести диагностику; завтра фирме грузоперевозок понадобилось программу, которая будет считать время водителей в пути и прокладывать оптимальный маршрут с интеграцией со всякими картами, местными сервисами и т.д. Сидеть и дрочить одну специфическую область программисты даже в конторах которые занимаются продуктом не могут: тут конкуренты прикрутили стриминг - нужно и нам скорее; появилась охуенная платежная система - скорее нужно и нам; менеджеры по продажам говорят что мобилки рулят - нужно скорее наш софт на мобилки переносить; нам срочно нужно CI/CD организовать и теперь все dev's внезпрно превратились в devops'ов. Кучу хуйни приходится учить ежедневно, куча хуйни меняется, выходят еще и новые технологии, которые ты должен учить, чтобы быть крутым спецом и запоминать как в предметной области X называется какой-то термин, тем более через, допустим, 2 года - ебантизм, ты не всю жизнь будешь вот эту вот хуету писать.
94 1917643
>>1917602

> Вот тут не очень понял в чём сложность


Допустим, у тебя проект чуть до среднего не дотягивает, скажем 60к строк. Ты только пришел, тебе говорят: Скорость неправильно считается, пофиксь, пожалуйста. Как думаешь, вот лично тебе будет интересно ковыряться в 60к строках кода в поиске места где твоя переменная находится, ведь нормальным поиском - ты не можешь ее найти, т.к. v не такая и редкая буква, а где что лежит - не знаешь, ты же только на проект пришел. Думаешь тебе кто-то специально в ридми напишет: "Мы рассчитываем скорость в таком-то файлике на такой-то строке"? Да нихуя. И как раз если бы оно нормально называлось - ты просто жмакаешь ctrl+f и пишешь velocity - все, ты нашел все места где оно встречается, за 10 минут прошелся - нашел баг, пофиксил, пошел пить кофе и мацать за жопу практикантку, которая очень хочет научиться программировать и просит тебя, скиллового чела, что баг за 10 минут пофиксил - после работы научить примудростям, а если в проекте используется всякая хуета вида v=a+b+c - ты будешь неделю только вникать где что лежит и как сделать так, чтобы нахуй не поломалось все.

> Для такого существует ридми, документация, на худой конец в заголовке файла в комменте освятить основные сокращения, например.


Да, ты ведь каждую переменную в ридми записываешь, а внутри метода каждую строчку сопровождаешь комментарием, когда тебе нужно за день 10 тасков закрыть, конечно, заняться больше нечем. Действительно, зачем написать название переменной, которое всем понятно - если можно высрать комментарии. 11/10 решение, ничего не скажешь.

> Ну это уже макакинг.


Это обычная такая реальность разработки. Вы - крутые спецы, клиенты знают что вы делаете быстро и качественно, а берете меньше чем в европах/сша кодеры, сегодня к вам клиника стамоталогическая обратилась, нужно софт для ведения карточек пациентов сделать, чтобы в них хранились 3d сканы челюсти и было удобное мобильное приложение, чтобы можно было эксперту скинуть и он удаленно мог провести диагностику; завтра фирме грузоперевозок понадобилось программу, которая будет считать время водителей в пути и прокладывать оптимальный маршрут с интеграцией со всякими картами, местными сервисами и т.д. Сидеть и дрочить одну специфическую область программисты даже в конторах которые занимаются продуктом не могут: тут конкуренты прикрутили стриминг - нужно и нам скорее; появилась охуенная платежная система - скорее нужно и нам; менеджеры по продажам говорят что мобилки рулят - нужно скорее наш софт на мобилки переносить; нам срочно нужно CI/CD организовать и теперь все dev's внезпрно превратились в devops'ов. Кучу хуйни приходится учить ежедневно, куча хуйни меняется, выходят еще и новые технологии, которые ты должен учить, чтобы быть крутым спецом и запоминать как в предметной области X называется какой-то термин, тем более через, допустим, 2 года - ебантизм, ты не всю жизнь будешь вот эту вот хуету писать.
95 1917797
>>1910326
Как вывести 500кк $ через битки в валюту в расии?
water.webm4 Мб, webm,
1680x966, 0:31
96 1917836
>>1917047
вопрос масштабов же. можно же например как в fishing north atlantic просто бултыхать водичку рядом не меняя её реальный уровень.
вообще опять же метод с газиками годится больше для газиков. так как само перемещение векторов там происходит за счет зон давления, которые чтобы получить надо много итераций (на том видео кажется 30). если давление не нужно то и сам метод не нужен.
для водички как например на этом видео достаточно 2. одну чтобы посчитать статическое давление, приплюсовать энерцию и сколько максимально воды может переместится из клетки. а вторую чтобы посмотреть сколько воды переместилось в эту клетку. если хочется почитать то я ориентировался в основном на этот текст. https://hal.inria.fr/inria-00402079/document "Fast Hydraulic Erosion Simulation and Visualization on GPU"
помню натыкался на более крупный текст про водичку в играх вообще... а во. https://trepo.tuni.fi/bitstream/handle/10024/115052/kellomaki_1354.pdf "Large-Scale Water Simulation in Games" там уже больше методов рассматривается.

хотя вообще всё это в играх конечно имеет довольно маленькое применение. наверно только в From Dust это было главным элементом геймплея.
97 1917920
>>1917015
Одно дело, когда на работке заставили учить, другое - когда изначально требуют все.
98 1918018
Вопрос от вкатуна говорю сразу.
Где вообще брать задания на этапе изучения синтаксиса? Когда я учил Пайтон по книге Гэддиса и Java по Эккелю, там для каждой главы были задания, благодаря чему я мог глубже осваивать материал.
Есть какие-то ресурсы или книги для вот такого вот комплексного изучения языка?
99 1918021
>>1918018
Т-есть само изучение понятно - доки, книги разные, курсы. А задачки, по типу лаб из универе для закрепления тем, где брать?
100 1918262
>>1918021
Я какое-то время смотрел сайт с олимпиадными задачками. Сортировал их в порядке, начиная от задач для дебилов. Там реально простенькое было, но не привязанное к языку.
А вообще, если ты где-то работаешь, лучше находи проблемы из своей практики, пусть даже мелкие совсем, и для них что-то пили.
Я вот на зеленом старте пилил себе формочку с БД для вноса ежедневных трат по категориям и с возможностью вывода статистики по различным временным периодам.
101 1918311
>>1918018
Берешь кодфорс или кодворс или любой другой ресурс, где задачки можно решать, решаешь, закрепляя таким образом синтаксис.
Другое дело, нахуя тебе разные книги по разным языкам читать, блядь? Ты смотришь вакухи - смотришь что надо для работы - дрочишь за месяц и идешь работать. Все, блядь. Я хуею. Я вот ебалн из универа, нам дали базу на первом курсе, но прогать на чем-то кроме ассемблера, С и С++ не давали осбо. Ну и хули, я смотрю, нет вакух по С и С++, потом смотрю в карманы, денег нет, а тяночка хочет жрать, хочет шмотье, ну и хули, пробегаюсь по джаве и через месяц я уже - на испытательном сроке, через 2 недели - в штате и работаю, потихоньку приношу пользу, через год меня заебала джава и я так же с СРешоткой поступил, но сразу на мидла заскочил.
Я хуй знает че вы там учите с синтаксисом эти, 99% языков - сиподобные, тебе просто нужно знать что к тут чтобы получить доступ к члену класса - ты используешь . тут ->, все, блядь, дальше просто пишешь алгоритмы, гугля иногда инструментарий что есть в языке, ну и пишешь так чтобы твой код другие люди понимали. Все, нахуй.
Опять же, ХЗ, может быть я какой-то аурой обладаю, но ни разу меня на собесах целенаправленно не валили, ни разу не ебали кишочками, чтобы прямо знал как там в память все укладывается, ни разу не ебали сверх меры алгоритмами, просто пришел, показал диплом, показал регалии(ыыыы, ездел в Испанию на стажировку, брал места на олимпиадах, дипломчик красненький, статьи - цитируют): Можешь сделать? Могу! Покажи гит - показал, оки-доки, мы пока доки подготовим, используем то-то и то в разработке, поддрочи чтобы как вышел - работать нормально мог. Все, блядь. Иду - дрочу, потом работаю. Короче, хз в чем у людей сложности.
102 1918332
Почему в WPF'e MediaElement может не показывать видео? Никакого ексепшена, просто ничего. Пробовал avi/mp4.
Код:
MediaElement.Source = new Uri("pack://application:,,,/папканейм/1.avi");
MediaElement.Play();

В xaml'e пробовал ковырять LoadedBehavior, тоже ничего не дало.
103 1918353
А, все, я нашел что он не выбрасывает эксепшн, а есть MediaFailed. Там он мне написал что он не сапортит ресурсы с билда, а только реальные файлы.
104 1918575
>>1918311

>просто пришел, показал диплом, показал регалии(ыыыы, ездел в Испанию на стажировку, брал места на олимпиадах, дипломчик красненький, статьи - цитируют): Можешь сделать? Могу! Покажи гит - показал, оки-доки, мы пока доки подготовим, используем то-то и то в разработке, поддрочи чтобы как вышел - работать нормально мог. Все, блядь.



Ты же понимаешь, что тебя легко берут как раз за это? У тебя есть вышка, петпродежкты, стажировка не в СНГ. Этого почти ни у кого нет, максимум вышка задрищенского политеха и скудные знания.
105 1918587
>>1918575
Хз как вообще работу без стажировки найти можно. Даже как на ебаную стажировку записаться не понятно, если на .Net, три стажировки на весь dou
106 1918628
>>1917170
ну теперь через nuget.exe (вроде ещё через командную строку разработчика) удаляй.
Вообще нугет в этом плане странная штука, если он не может получить пакет в одном сурсе, в другой он не ломится
107 1918637
>>1918311

>смотрю в карманы, денег нет, а тяночка хочет жрать, хочет шмотье


блеванул с бетабаксера
108 1918943
>>1918637

>смотрю в карманы, денег нет, а тяночка хочет жрать



есть релевантная повесть и фильм, лучшие собаководы рекомендуют. жизненно.

https://ru.wikipedia.org/wiki/Парень_и_его_собака
.jpg912 Кб, 2132x1600
109 1918964
Тупой вопрос.
Смотрите, у меня есть контроллер апишный, в него должно постучаться устройство со статическим IP, я должен сохранить информацию и IP с которого стучались, потом переодически что-то с этим делать, например смотреть не отклоняется ли время устройства сильнее чем должно и корректировать, если отклонилось.
Так вот, в чем хуйня. Я думал просто брать IP с помощью context.HttpContext.Connection.RemoteIpAddress, но хуйня в том, что таким вот макаром на моем ПК откуда-то берется IPv6 адрес, который, как я понимаю там где-то маршрутизаторами получается(я не настолько хорошо за сеть шарю пока что, но я знаю точно адрес устройства и он в формате IPv4), а на другом компьютере IPv4, но внутри локальной сети, а не тот что реальный и как-бы доступен всем. Я посмотрел с помощью Dns.GetHostAddresses() адреса и среди них есть тот, который я заведомо знаю что устройству принадлежит, только вот как быть уверенным какой брать? Вдруг в следующий раз нужный адрес будет 6м?
Вообще, кто-нибудь с такой вот хуйней сталкивался? Как это работать должно? Может быть сохранять все адреса разом и по ним простукивать?
110 1918971
Шарпач, прости, я понимаю,- вопрос идиотский. Я даже синтаксиса толком еще не знаю, но я уже два дня туплю над методами. Как и куда уходит Ruturn метода? Как достать то его, как вызвать? Смотрел в книги, увидел фиги. Как передать в метод что-то я вроде понял, но полученный ретурн то как в мейн вписать?
Например:

Static string ОдинПлюсДва (_первое, _второе)

return _первое + _второе;

Static void main

a = 2;
b = 2;

ОдинПлюсДва(a , b) //Я ведь правильно передаю параметры в метод?

Консоль.показать(???) Как мне результат то где взять что? Мне ruturn метода ОдинПлюсДва сюда надо. Где значение того что вернулось то взять?
111 1918983
>>1918971
Смотри, для начала можно думать так: Когда ты вызываешь метод, компилятор на самом деле - подставляет туда, откуда ты его вызываешь весь метод. Вот. Таким образом, допустим, твой метод:

string Combine(string a, string b) => a+b;

это все равно что если бы ты вместо метода везде писал то что в нем происходит.

Чтобы получить результат, ты, в зависимости от того что метод возвращает, используешь переменную.

Т.е. в твоем примере ты должен был бы так вот сделать:

int c = ОдинПлюсДва(a , b)
112 1918988
>>1918971
Да, насчет последнего. Не всегда обязательно явно переменную использовать чтобы результат использовать.
В твоем примере ты мог бы делать и вот так, например:
a = 2;
b = 2;
Консоль.показать(ОдинПлюсДва(a , b));

Так делать нехорошо, конечно, но когда дойдешь до Linq и Fluid'ов то там, в принципе так вот и делается зачастую.
113 1918991
>>1918983
Да, тут не int нужен для сохранения результата, а string, просто не обратил внимание на сигнатуру. Думаю это и так понятно, но на всякий случай уточнил.
336725290011201[1].jpg329 Кб, 2896x2896
114 1919016
>>1918983
>>1918988
Пасиба, ананасик. Вроде яснее стало.
Я не понимал, что получение результата метода происходит в момент когда ты передаёшь методу параметры (а из метода мейн в _первое в метод ОдинПлюсДва и б из мейн во _второе в метод ОдинПлюсДва. Потом тут же отдаёт результат.
Как на твоём примере с переменной, новый метод при вызове из mein сразу получает параметры, сразу их считает/выполняет код и сразу возвращает, присваивая их в переменную "int c".
Надеюсь я правильно представляю всё это. Во всех мануалах это подается как само собой разумеющееся.

У меня почему-то изначально всё представлялось как по строкам кода. Сверху вниз

Отдали параметры. Результат посчитался;
//
они где-то там висят в памяти* в какой-то несуществующей переменной куда их записал return
Обращаемся когда захотим к результату;
Задаём другие параметры если надо.

Не пришло в голову, что результат нужно где-то хранить самому и самому объявлять где.
Спасибо еще раз.
115 1919018
>>1919016
Даже тут проебался с разметкой, извиняюсь
251[1].gif57 Кб, 2421x1700
116 1919035
>>1917643

>вот лично тебе будет интересно ковыряться в 60к строках кода в поиске места где твоя переменная находится, ведь нормальным поиском - ты не можешь ее найти


Краткие обозначения используются внутри методов. Классы и методы конечно должны иметь самодокументирующие названия.
Ну и твой пример скорее в мою пользу. Если скорость неправильно считается, но считается она сложно, то когда формулы записаны символьно, ты хотя бы можешь их прочесть, сверить с исходниками (статьи, учебники, тех. документация) и увидеть ошибку. Если же формулы записаны по-программистски (с длинными именами переменных, и выносом каждого микровычисления в отдельный метод), то ты никогда в этом не разберёшься, только заново переписать все вычисления.

>Да, ты ведь каждую переменную в ридми записываешь


Ну ты перегибаешь. Комментарии почти всегда нужны, в любом коде.

>Это обычная такая реальность разработки.


Обычная практика такова, что все более менее крупные специализированные компании (банки, нефтяники, медики, с очень узкой специализацией от разновидностей стоматологов до хирургов, военные и т.п.), которым нужен свой софт, БД или автоматизации, имеют своих программистов, которые либо пришли из математиков и АСУ ТП в предметную область, либо наоборот, дополнили предметные знания навыками кодинга. А то, о чём ты говоришь - это сайтошлёпство и обезьяний бигдата+машоб на корзину для пускания пыли в глаза акционерам.
117 1919288
Дурак спрашивающий выше про методы, репортинг ин свой новый затуп. (Решение своего затупа тоже рапорчу).
Хотел тут спросить, но пока спрашивал сам допёр.

Вот из-за этой херни целых джва часа тупил тормозил. Метод возвращал Int вместо Int[], пиздосье. Массив интов и инты, это оказывается разные типа. Я весь гугл излазил, не понимая в чём дело.
118 1919291
>>1919288
Малорик, так держать!
119 1919446
>>1919288
Такие сильные затупы гугл не решает. Читай внимательнее матчасть.
120 1919487
>>1919446
C# Player's guide из шапки довольно плохо объясняет в этом плане, учусь по нему.
Думаю его сначала проглотить, даже если что-то не пойму и не смогу задания выполнить. Потом уже к мелкомягким за сухими мануалами полезу
121 1919492
Ребят, как запилить, чтоб во фрейме при переходе между страницами значок загрузки был, пока расчеты производятся?
.png14 Кб, 498x330
122 1919510
>>1919288
Вообще, конечно наверное не обязательно тебя таким сейчас заебывать, но я бы советовал как-то так вот читать пользовательский ввод. Все же лучше, чем рассчитывать, что пользователь все правильно введет сразу, даже если этот пользователь ты.
123 1919587
Подскажите как реализовать такое:
Есть while(true){} в котором работает основная логика хочу в нее что-то типа менеджера задач чтобы в каждой итерации проходила работа по всем задачам, НО вот тут начинается загвоздка, я хочу иметь возможность в задаче написать что-то типа
stopwatch.Elapsed > 10 sec остановись и дай поработать другим, а на следующей итерации продолжишь.
И все это работает в 1 потоке.
Вот в остановись и дай поработать другим, а на следующей итерации продолжишь. у меня проблема, не понимаю как это вообще релизовать. Так же хотелось бы не просто говорить на следующей итерации, а типа жди Х события или Х секунд или пока тебя не запустят.
124 1919618
>>1919587
асинк авэйт
125 1919623
>>1919618
Пытался разобраться с этим, но не понял как это сделать.
Вот есть у меня 10 задач на парсинг чего-то огромного что займет по часу времени, плюс надо постепенно закидывать мелкие задачи чтобы они тоже отрабатывали как это на авэйте сделать?
И мне именно надо на 1 потоке, потому что крутить программу я хочу на мелком сервере и занимать на нем ровно 1 поток чтобы остальное что на нем крутится не тормозило.
126 1919624
>>1910324 (OP)
Анон, есть пара вопросов по github-репозитариям.

Вот, значит, на github'e, там - есть репозитарии всякие,
например этот https://github.com/JamesNK/Newtonsoft.Json
и там, в Releases - https://github.com/JamesNK/Newtonsoft.Json/releases
есть версии различные, и можно скачать их код в zip-архивах,
например, эта версия, которая успешно компилируется в Visual Studio 2010: https://github.com/JamesNK/Newtonsoft.Json/releases/tag/7.0.1
Там, внизу, есть ссылка: https://github.com/JamesNK/Newtonsoft.Json/archive/7.0.1.zip
И если кликнуть на тег, можно видеть этот вот код: https://github.com/JamesNK/Newtonsoft.Json/tree/7.0.1
с последним коммитом 20cc266, то есть 20cc266712a3b361358e1e35ae87518ecf8e0dfd .
Если кликнуть на Branches, то такого бранча, v7.0.1 нет, но рядом есть вкладка Tags, и там эта версия есть, и код доступен - по тегу.

Пусть теперь, я хочу качнуть код именно этой версии. Как это сделать?

И ещё...
Пусть есть репозитарий, в котором этот код является подмодулем.
Как в .gitmodules включить именно версию v7.0.1, чтобы не качать весь исходник и не заливать его снова. Там около 1000 файлов, блядь, не хотелось бы раздувать репу. Может можно как-то попроще, что-то вроде:

>[submodule "имя"]


>path = папка


>url = https://github.com/user/repo.git@версияЕбать.

127 1919625
>>1919624
И ещё, можно ли как-то форкнуть репу с определённой версии, чтобы на форк сослаться в .gitmodules, а не на основную репу, где продолжаются изменения???
128 1919631
>>1919587
Ыыыыы))))
Тока эта, ты там вместо такого вот - проверки делай своего времени и сбрасывай таймер после yield, вот.
Ну или можешь погрузиться в прекрасный мир прерываний, тоже тема.
129 1919632
>>1919624
По-мойму, через две точки, после URL, надо указать то ли версию, то ли огрызок хэша коммита. Но это не точно.
130 1919634
>>1919631
Окей, тогда как теперь решить вопрос с try-catch ?
Можно конечно же писать их между yield, но это же пиздец АД.
Плюс слышал что так делать нельзя, типа антипаттерн использовать yield для такого.
131 1919641
>>1919510
Ага. Спасибо. Я остальное то вроде усвоил. Дальше только зажать нос и нырять в раздел книжки ООП.
Там у меня чисто для себя чтоб понять методы образец. Я просто не понимал почему ретюрн отказывается возвращать. Пытался и его как-то конвертировать, думал может каждый индекс массива нужно отдельно доставать в новую переменную, а потом обратно собирать в массив.
Там у меня в посте было просто максимально коротко чтоб ясно изложить свой затуп.
Там у меня требуется ввести количество элементов в массиве.
Можно запрос на ввод и в методе организовать наверное. Хотел себе позже много-много методов сковать и в каждом каждый запросить. Чтоб прям стресс тест себе устроить.
Надо конечно наверное сразу приучать себя проверять ввод на правильный возврат с консоли. Но я слишком начинающий еще, едва только циклы усвоил. Если сущностей наплодю потом, то конечно более подробно буду описывать вызов и консолей и исключения обрабатывать.
Спасибо за совет
132 1919683
Аноны, У меня есть страница, с путем ""Account/OnPostRegisterAsync", при вызове должна регистрировать пользователя, я скопировал этот код в другой проект и там он не работает с атрибутом [ValidateAntiForgeryToken] jquery подключен, в чем может быть дело?
пример.jpg164 Кб, 1591x584
133 1919810
Работаю с Excel через C#. В связи с этим возникает вопрос, как правильно работать с COM-объектами из C#?
Почему C# сам не может нормально собирать COM-мусор, и мне приходится на кучу промежуточных объектов вызывать Marshal.ReleaseComObject(obj) ???
Самое простое известное правило - не использовать два оператора точки в одном выражении при работе с COM-объектами. Вот например, такая штука обычно оставит висячие ссылки на КОМ-объекты: Excel.Sheets sheets = app.Workbooks[1].Worksheets; .
Но и использование этого правила помогает далеко не всегда.

Вот например код из приложенной картинки без вызова Marshal.ReleaseComObject(books) оставляет висеть в диспетчере задач процесс Excel после закрытия приложения и всего, что с ним связанного. Хотя казалось бы, почему я тут должен маршала просить релизнуть объект?

Вызывать Marshal.ReleaseComObject() на всё подряд также нельзя. Вот почему:
Excel.Workbook b1 = app.Workbooks[1];
Excel.Workbook b2 = b1;
Инициализация переменной b1, а точнее, вероятно, вызов app.Workbooks[1], увеличивает счётчик ссылок на возвращаемый Workbook на 1. Но вот эта операция b2 = b1 не увеличивает счётчик ссылок. Поэтому если после того как b2 станет не нужна, если я сделаю Marshal.ReleaseComObject(b2), то b1 тоже будет освобождена и перестанет работать.

Конечно из всего этого можно примерно догадаться, как всё это работает. Но только догадаться.

По существу, я не могу надежно понять, когда счётчик ссылок на КОМ-объект:
1. приращивается автоматически?
2. когда он автоматически уменьшается? В норме релизить через маршал нужно далеко не всё.
3. когда он автоматически НЕ уменьшается после присвоения объекту обёртке значения null, и, возможно, отработки GC.
4. как узнать текущее значение счётчика ссылок на КОМ-объект?
134 1919862
>>1919810

>Работаю с Excel через C#.


используйте Delphi.
оно умеет прозрачно работать с COM еще с 90-х годов.
135 1919934
Скопировал первый пример 1 в 1 отсюда:
https://docs.microsoft.com/en-us/dotnet/api/system.object.finalize?view=net-5.0

Выводиться должно что-то типа этого:

> The example displays output like the following:


> Instantiated object


> This instance of ExampleClass has been in existence for 00:00:00.0011060


> Finalizing object


> This instance of ExampleClass has been in existence for 00:00:00.0036294



У меня же до Finalizing object не доходит и не выводится в консоль. Даже если ставлю точку останова в финализаторе, до неё не доходит. Почему так?
136 1920050
>>1919862
Хуя советчик нарисовался. А денех на дельфи дашь?
D15nDdIXQAARONJ[1].jpg51 Кб, 543x364
137 1920081
>>1919934
У меня всё работает, попробуй переустановить шиндоус.
138 1920093
>>1919810
Я никогда не работал с COM через C#. Но потребляю .NET код через COM в С++.

Допустим у нас есть COM visible класс типа Human в C# , при использование в С++, класс можно будет юзать через Human или HumanPtr, так вот HumanPtr - это смарт COM поинтеры, которые очищаются автоматически, а вот если юзать Human - то он останется висеть в памяти и чистеть надо вилкой. Как это разделение будет выглядеть через C# код - наоборот - не знаю.

Теперь, допустим у нас есть массив, какой массив у нас есть в COM? Я лично использую и знаю про SAFEARRAY. Так вот, даже SAFEARRAY наполнен объектами типа HumanPtr - он автоматически не обрабытвается, и нужно вызывать SafeArrayDestroy().

Так что, как мне представляется, твои books - являются SAFEARRAY объектами, которые не обрабатываются, и в C++ коде нужно было бы вызывать SafeArrayDestroy(books). Почему - не знаю, но я хорошо в лужу сел, когда выяснил что у меня память проливается c SAFEARRAY.
139 1920097
>>1920093
В рот ебал эту разметку.
140 1920106
>>1919810
А готовые библиотеки тебе религия использовать не позволяет?
141 1920217
Посоветуйте самый годный видеокурс на русском
142 1920262
Какую структуру использовать для поиска нужной ноды в дереве? Сейчас юзаю List с FirstOrDefault. Очевидно, что для такой хуйни лучше всего подходит Dictionary, но как у него с памятью?
У меня будет очень много словарей, у каждом из которых будет по несколько элементов чаще всего 1-3, но в некоторых может быть до ста где-то, подойдет ли для этого Dictionary?

гонять бенчмарки впадлу, да и с листом все норм работает, просто спрашиваю вашего мнения
143 1920267
>>1920262
Зависит от данных. Может у тебя там префиксное дерево можно использовать, а ты словари с листами хуяришь.
144 1920272
>>1920267
Я его и реализовал. Вопрос как раз в том, что использовать для хранения потомков.
[
145 1920413
>>1920272
List, конечно.
146 1920473
>>1920413
А чем словарь хуже? В теории, он должен быть быстрее при поиске и добавлении опредленного слова.
Алсо, никто не знает оверхед словаря на перечисление всех key-value pair? На сколько он в этом плане медленнее листа? и медленнее ли
147 1920638
Что думаете по поводу вката через OpenSource проекты или через
фриланс/аутстафф? Не хочу за бесплатно работать на конвеерной галере и слушать выебоны какого то прыщавого инфантильного долбоеба. Что имеется:
1. Опыт писания кода на # (около 2 лет) - ASP.NET MVC, Core (за WPF молчу - мервое говно);
2. Английский уровня B2+ (Общение, чтение);
3. Опыт в фронте (такой себе, но ковырял React, могу сверстать под адаптив или поправить, чтобы не наебнулось);
4. Нелюбимая, в тоже время не напряжная РАБотка под $800, на которой стал мертвым грузом и хочу перемен.
Реально залететь на проект и хотя бы за 300-400 американский рупий перенять опыт, носмотреть что и как с upwork или freelancer.com?
Делитесь опытом, кто через это прошел.
148 1921191
>>1910324 (OP)
А как можно инжектить длл-ки в процесс с помощью шарпа? Есть какие-нибудь гайды нормальные?
149 1921223
>>1920638
На проектах, с которыми удалось поработать, да и в смежных тоже, я какого-то засилия C# не увидел. В довольно крупной конторе, где я сейчас как контрактор работаю, от силы два три репа на C# из 200+. Язык хороший, инфраструктура тоже сейчас отличная стала (я имею в виду поддержку кросс-платформенности), только вот работы интересной походу нет нихуя.
150 1921251
Я вот написал интерфейс для шахмат, лол, хочу запилить онлайн. Можно ли высрать сервак, на котором будет сайт с, например, регистрацией и ссылкой на скачивание, и который одновременно будет работать для передачи данных между игроками? И в какую сторону копать, чтобы заебись было как в нормальной разработке делают и максимально апнуть скиллы?
image.png39 Кб, 1200x503
151 1921260
Сап, двач. Поясните кое-что. Зачем нужна Иудей-Компиляция в C#
Я не троллю, я не тролль-джавист, я рил спрашиваю. Без наебала.

Тип зырьте, в чём вообще преимущество виртуальной машины над конпиляцией. Это кроссплатформенность. Один раз скомпилил, запустил где угодно.

C# это на 80% веб-петушня, круды-хуюды и прочий фуллстек анал.
За вычетом юнити девелоперов все пишут под винду и в visual studio. К чему вообще эта кроссплатформенность? На линуксе хоть и есть моно, но кривое и никто с linux сервером не будет бэк ебошить на C# когда есть Java.

Мобильная разработка мертва. Ксамарин мёртв. Universal Windows Platform мёртв. C# это язык для крудов. К чему эта кроссплатформенность? Просто чтоб какуджавы?
152 1921262
>>1921251

>ссылкой на скачивание



Это шутка такая или ты правда думаешь, что в 2к21 кто-то будет качать дерьмо по ссылке?

>как в нормальной разработке делают



Вот так: https://lichess.org/source
153 1921263
>>1921260

> Это кроссплатформенность



Это отсутствие необходимости управлять памятью в ручном режиме.

>Один раз скомпилил, запустил где угодно



Ну да, скомпилировал под 32 битные ARM системы, запускаешь на 64 битных Intel. Всё так.
154 1921266
>>1921263

>Это отсутствие необходимости управлять памятью в ручном режиме.



Паясни. Разве ГК это только с виртуалкой бывает? Разве в ПЩ нет ГК?

> Ну да, скомпилировал под 32 битные ARM системы, запускаешь на 64 битных Intel. Всё так.



Нак нахуя? Ты же это всё равно будешь компилить под одну и ту же архитектуру винсервера?
155 1921482
>>1920638
Думаю что хуйня.
Плюс, на сишарпе не так много вакансий, при этом в вузах его учат, т.е. ежегодно выпускается насколько тысяч студентов, среди которых многие довольно хорошо знают шарп, умеют кодить и при этом как раз готовы идти работать за еду первые пару лет.
Я эт к чему. А вот к чему: Либо переставай из себя целку строить и иди работать как есть, все равно в конечном-то итоге ЗП поднимут; либо вкатывайся в JS, там хоть конкуренция и больше, но средний уровень вкатышей наоборот ниже и если ты осилил шарпы, то уж как-нибудь, да справишься с тем, чтобы с вебпаком каким-нибудь разобраться да npm, а дальше будешь делать кнопочки да посылать запросики.
156 1921606
>>1921260
Еще один чел, что в последний раз смотрел что такое шарп в 2005м?
Под линуксы уже давно есть неткор, а уже и нет5, весь бек шарповский сейчас пишут именно под него. Ну и довольно удобно, что код писать можешь на винде, а работать без какой либо ебли он будет одинаково и на линуксе.
Я даже малинку в качестве сервера для пет проектов использую и все работает.

А вот зачем его сделали на виртуалке в самом начале, в нулевых, когда он под был только под виндой, я понятия не имею. Мб просто хотели чтобы было как в модной на тот момент джаве.

> но кривое и никто с linux сервером не будет бэк ебошить на C# когда есть Java.


Хуя сказанул, на шарпе и пишут только потому что он лучше джавы. Если бы майки не протупили и сделали его сразу опенсорсным, вряд ли джаву вообще сейчас бы вспоминали.
157 1921618
>>1921606

>на шарпе и пишут только потому что он лучше джавы



А в чем шарп существенно лучше джавы? Имхо, принципиальных отличий в лучшую сторону, кроме синтаксического сахара, почти нет. Ну дженерики сделаны по-человечески, да. И костылей меньше, работа с массивами, примитивами, коллекциями удобнее.

Но все это не так уж и критично на самом деле. Видимо поэтому вакансий на джаве больше аж в 2 раза в крупных городах.
158 1921680
>>1921618

>Имхо, принципиальных отличий в лучшую сторону нет


А что это за такие принципиальные отличия? Шарп это не хаскель, а просто лучшая джава. Очевидно что в двух ооп языках, один из которых создавался как копия второго, много общего. Но писать то приятнее на шарпе и это факт. Не думаю что в джаве есть хорошие аналоги ef core, async/await или хотябы геттерам/сеттерам.
Код конечно и без этих вещей можно писать, но блять, кодить можно на любом тюринг полном языке и вопрос состоит лишь в том, где это делается приятно, быстро и удобно.
159 1921690
>>1921680
Двачую этого Жака Фреско (кто понял - тот понял)
160 1921695
A. Stellman, J.Greene - Head First C# 2020 года, как вводная книга по языку пойдёт? Мне Уитакера физически больно читать почему-то.
161 1921733
Где ещё можно без SMS, регистрации, кармы и т.п., можно вот так просто, как тут задавать простые и тупые вопросы по шарпу?
162 1921754
>>1921482
я писал на JS (react) - нормально, но без ООП это хуйня. Лучше уже жабу дрочить, если работу не найду. Так или иначе - C# мертв на всем, кроме веба, за бугром так то я вакансии видел, но н мидла требования конские, а джуны никому нахуй не нужны. Вот тебе и два стула.
По поводу работы на галере - это зашквар, ибо приходят готовые мидлы (возможно без опыта в интерпрайзе) и их мокают в говно первый год-два. У меня жопа бомбанет от такой хуйни.
163 1921866
Ананасы, накидайте гайдов каких нибудь по Xamarin
164 1921929
>>1910324 (OP)
Пацантре, у меня возник вопрос.
Предположим в у вас есть tabControl в котором 2 вкладки (tabPage). И вам нужно чтобы при открытии одной из вкладок информация на ней начинала периодически обновляться, а при закрытии вкладки нет.
Так вот, как сделать так, чтобы при открытии вкладки создавался таймер, а при закрытии вызывался его метод dispose?
Если создать таймер при евенте enter, то мы не сможем обратиться к нему из метода leave.
Единственный вариант создавать "глобальный" объект?
165 1921967
Как по конвенции принято называть классы "in-memory-storage" ?
166 1922008
https://github.com/jbogard/MediatR

при открытии в вижле разделяет тесты на .net2.0, .net3.1 и .net5.0. Как такое повторить? Тесты на Xunit написанны.
167 1922010
>>1922008
Гугли TargetFrameworks
168 1922023
>>1922010
нашел, спасибо
169 1922043
>>1920638
поддвачну пост и заодно задам вопрос: Тут есть те, кто реально работает на # (web)? Если да, то какой стэк, какая версия ASP.NET/.NET Core на проекте/проектах.
170 1922181
>>1922043
Разработка под Dynamics CRM считается? Помимо плагинов в ней куча приложений для сотрудников и апишек для интеграций.
Если да, то подавляющая часть сервисов на ASP.NET, .NET Framework 4.7.1, есть несколько на .NET Core 3.1, из фронта Angular
sage 171 1922209
Нахуя нужны эвенты и делегаты? Не понимаю практический их смысл. В курсе на счет того, что линк построен на делегатах, но как мне пригодятся делегаты и события
172 1922228
>>1922181
На бугор работаешь, в каком формате (аутстаф/продукт)? В офисе или удаленно? На WebApi пишешь? Фронта касаешься?
173 1922348
>>1922228
Аутстаф, на наших.
В условиях пандемии свободное посещение офиса, так в основном удалённо сижу. Апишки периодически клепаю. Фронт бывает, но не так часто, и огромное спасибо, что не ASP.NET MVC.
174 1922363
>>1922348

>на наших


сочувствую, я представляю днищенскую ЗП
На чем бэк написан? Апишки под микросервисную архитектуру? Тесты/бенчи? По эстимейтам ебут мозги или 5 минут делаешь и 2 часа хуй пинаешь?
175 1922399
>>1922363
ЗП на жизнь хватает, 140, ДС.
Бэк? В плане? Всё на шарпе пишем. Апишек куча старых, написанных как попало, новые да. Тесты почти никто не делает, я в своих проектах клепаю. По эстимейтам не парят, если задачи не очень важные, но задачи у меня, так уж получилось, есть всегда.
176 1922423
>>1922399
походу апихи с простой работой по get-post данных из БД, без особой логики? 140к (я хз, сколько это в $, около 2к походу) - не плохо, думал меньше.
Всегда поражаюсь опенсоурсу, где все обсосано, все по паттернам, дженерики-хуерики, абстракция, тесты. А по факту, с кем не общаюсь - все клепают, только эстимейт закрыть (это не камень в твой огород, просто суровая реальность).
>>1922008
как пример, хотел закинуть пул реквест, чтобы была галочка на CV на участие в проектах, но в нем только разбиратся нужно хуеву тучу времени.
Так или иначе - спасибо за отзыв
177 1922449
>>1922423
Не, простыми крудами тут и не пахнет, тут ты пишешь методы, делающие определенную бизнес-логику. Это сделано для того, чтобы соседние системы своими руками не лезли в наш процесс, а довольствовались лишь некоторыми методами, торчащими наружу. Иногда эта логика конфликтует с плагинами Dynamics, тогда приходится искать по цепочке вызовов, что же именно там происходит. В общем, достаточно весело, да и в бизнес-процессе клиента кое-что понимаю, это интересно.
По поводу быстрого закрытия тасок - тут уж как повезёт с загруженностью и с руководителями. Обмазываться абстракциями и паттернами никто не мешает, главное, чтобы люди после тебя могли доработать проект без особых проблем.
Сам чем занимаешься?
178 1922468
>>1922449

> с плагинами Dynamics


не понимаю, потом погуглю

>Сам чем занимаешься?


финансист/экономист/аналитик/хуй пойми кто
Я летом хотел перекатится - подготовился, CV, пет проекты, вся хуйня. По факту прошел 3 собеса, по одному предложили $200 (типо джун), по другому не прошел по софт скилам (Швейцарская компания), по третьему предложили за бесплатно стажером на 3 месяца.
Сам на решетках уже пишу хуй знает сколько, года 2-3 точно, начинал с WinForms, WPF, потом когда понял, что Desktop мертвый, начал корвырять ASP.NET MVC5, потом Core2.0 и т.д. Сейчас начал смотреть .NET5, по тому опенсоурсу, что скинул выше, что то пиздец, даже влень разбиратся, чтобы закрывать какие то таски в issues.
Планирую поковырять что ни будь, повспомнить, уже много чего из головы вылетело и пытаться вкатыватся, но уже делать ориентир на фриланс или буржуйский аутстаф (напрямую)
179 1922483
>>1921695
В общем такая же хуйня, но написано не двачером, а со смишнявками. В итоге взял Троелсона, полёт нормальный.
180 1922487
Короче, помогите разобраться.
Допустим у меня есть апач(чтобы фронт запускать), есть гейтвей, есть пара вебапишек. Все это в докере. Допустим я хочу иметь возможность одним из сервисов какой-то ip получить(чтобы добавить в ЧОРНЫЙ ЛИСТ). Я правильно понимаю что для этого я должен пошаманить с докером? Или можно как-то просто в гейтвее дописать заголовки? Просто я чет не ожидал что у такой вот фигни возникнут сложности, опять же вскрылось это только когда таки в докере запустил, до этого тестил так и нормально ip просто из контекста доставал - все работало, а тут, не то чтобы выжная функция, но раз уж сделал ее - хорошо бы разобраться почему в докере оно не работает. Вернее как, ip-то отпределяется, но видй 172.xxx.yyy.zzz эт сосвсем не тот что настоящий, я гуглил, это вроде как на ip что докер выдает при запуске контейнеров, но я опять же не настолько щарю, просто хотел разобраться как оно работает на самом деле и как надо делать.
181 1922498
>>1922487
X-Forwarded-For заголовок посмотри
182 1922511
https://www.codepile.net/pile/ADNVAPD8
Двощик, не бей лучше обоссы, но я совсем дурак и так и не могу понять методы.
Вот смотри, почему если убрать/заккоментить метод Reverse который переворачивает цифры в массиве задом наперед, то всё идёт нормально.
Но когда он выполняется, то он переворачивает и массив который должен оставаться неперевернутым?
Я ведь "создаю" две разных переменных с массивами? Или не "создаю"?

int [] numbers (Этот создаётся в методе GenerateNumbers)
и
int [] reversedNumbers (Этот создаётся путём переворачивания задом наперёд первого)

Или второй вообще не создаётся, а ссылается на первый или как понять?
Или нужно вызывать как-то метод в методе (или прям в Main вызывать метод в методе через метод чтобы было правильно?

Я хотел.

Создать массив от [0] "1" до, например, [4] "5".

Напечатать его,- 1,2,3,4,5

Напечатать его же но перевернутым 5,4,3,2,1

Почему переменная numbers то меняется?
Или мне дальше изучать, а там придёт? Инкапсуляции всякие и прочие приват, протектед нужны?
183 1922517
>>1922498
Да я гуглил же. Хотел посмотреть. И их у меня нет, кек. При том что в мидлваре - прописано все.
Вернее как, они есть, когда запрос идет от фронта или через гейтвей, но если напрямую в контейнер постучаться по тому порту что я ему в докере прописал - нету. А я как-бы исходя из того что каждый контейнер должен быть самостоятельным - хотел понять, почему так вот выходит.
Хотя ладно, наверное надо лучше погуглить. Хотя я вроде гуглил часа 4, на стековерфлоу тоже просто про X-Forwarded-For пишут, на сайте майков так же, на гитхабе видел ишью как раз по поводу того что не удается узнать верно ip клиента из докера, но не стал вникать, оно вроде закрыто было, а значит если это баг, то должны были пофиксить, а если не баг, то хз, я там беглым взглядом не нашел решения проблемы, может жопой читал.
.png18 Кб, 654x434
184 1922533
>>1922511
Из-за соображений, почти все, в шарпе являются ссылками(есть еще типы значений).
Когда ты пишешь, что
int[] newArr = arr - ты считай создал ярлычек на рабочем столе. Ты можешь создать много таких, но вести они будут к одному файлику и если ты его удалишь, как-то изменишь или что-то еще, то когда ты будешь пытаться по ярлычку кликнуть - тебе будет выдано то что стало с настоящим файлом.
Аналогия конечно, но для того чтобы суть понять я думаю сойдет.
Так вот, массив - ссылочный тип. Всякие int,double и структуры - значения, они копируются при передачи в метод или при присвоении.
Т.е. чтобы не происходило изменений с исходным объектом - ты должен скопировать его, либо как в прикриплейде - создать новый массив и заполнить его самостоятельно.
ruluJhL[1].jpg114 Кб, 960x893
185 1922551
>>1922533
Пасиба огромное. Стало понятней.
Побаловался с копированием массива и созданием через метод GenerateNumbers, всё стало чуть ясней.
186 1922559
>>1922511
А вообще, ты молодец что стал разбивать на методы. На начальных этапах многим это кажется не оч полезным, но потом такая боль, когда на реальной работе приходится приучать себя к этому. Лучше это делать сразу, а то как я будешь: 400 строк метод - хех, ну не 600 же; 600 строк метод, ну, бывало и хуже; 2к строк метод - ай, потом отрефакторю.
187 1922566
Анонче, есть у тебя какой то код с использованием интерфейсов и без?
Ну к примеру код выполняет одну и тоже задачу. И на примере его описания видна польза интерфейса.
Типо вот тот не юзаем интерфейс и получается хуйня а тут юзаем и получается как в сказке.
188 1922584
>>1922566
Погугли паттерн стратегия и DI/IoC.
Интерфейсы нужны для них, в основном.
189 1922587
>>1922566
Интерфейсы нужны как абстракция. У тебя есть тип, реализующий контракт. Как он будет это делать- второй вопрос, инкапсуляция жи.
190 1922691
>>1922587
Для этого есть модификаторы доступа.
sage 191 1922798
>>1910324 (OP)
Я в рот ебал советующих изучить английский.
192 1922952
>>1922798
Ниосилятор, ты?
193 1922984
Ебаный рот этой студии.
Вверху на тулбаре был комбобокс в котором можно было выбрать какой проект запустить для отладки и сегодня он куда-то взял и проебался. Как его добавить назад?
194 1922986
Блять. Нашел - пкм-настроить-команды-панель инструментов-начальные проекты. В настройках он отображается как будто он тулбаре есть, но его нихуя нету. Охуено!
195 1922987
>>1910324 (OP)
Пацаны.
Есть такая проблема.
Есть объекты класса. Нужно, чтобы изменение в этом объекте приводили к изменению в control'ах (textBox например), причём нужно, чтобы изменение в разных объектах приводили к изменению в разных контролах.
Как это сделать? Про эвенты я знаю, но как сделать так, чтобы при обработке эневна изменялось свойство нужного мне контрола?
196 1922988
Перезагрузил студию - появился. Держу вкурс.
197 1923287
>>1922987
в WPF биндинги из коробки
в WF радость ручного биндинга
198 1923307
>>1922691
Модификаиоры это инкапсуляция а не абстракция
image.png134 Кб, 598x645
199 1923419
Помогите, я тупой и не могу понять как работает switch, покажите например по этому примеру как я могу поправить свичем это безобразие?

Мой говнокод здеся:
https://pastebin.pl/view/c495c232
200 1923446
Как >>1923287

>в WF радость ручного биндинга


В какую сторону гуглить подскажи.
201 1923457
>>1923419
Свитч по дикшинари нейм сделай, в кейсах пиши что надо вызвать, ты вообще читал туториалы хотя бы? И dictionary пишется с t
202 1923467
>>1923457
типу так

switch (dictionaryName)
{
case "parameter1" : Function1();
}

??
203 1923477
>>1923446
Ни в какую
Пишешь код который ловит события изменений и обновляешь контролы
204 1923506
>>1923419
Тебе свитч не нужен, тебе нужен Dictionary<string, Action>();

Создаешь его и в методе у тебя будет:

myDict[dictionaryName]();
205 1923558
Блядь, почему так сложно-то начать с нуля новый проект, даже если все знаешь как делать?
Вот, блядь, я наговнокодил штуку. Она работает, клиенты довольны, но там реальный пиздец. Думаю: Проще переписать, чем пытаться рефакторить. Создаю новый проект и часа 2 просто сижу - туплю, думаю о том что и как лучше сделать, а потом удаляю проект и начинаю делать задачи которые стоят. Говнокод копится, рефакторить не хочется, потому что кажется что проще новый сделать. Так уже 3й год идет.
.jpg141 Кб, 1106x859
206 1923603
>>1923506
Хм. А я бы так вот сделал, кек.
Waw meme.mp4306 Кб, mp4,
1280x720, 0:01
207 1923604
>>1923506
Ты прав, спасибо!
208 1923627
Анонче таки вопрос.
Есть какой либо способ верификации приложения?
Возможно не правильно сформулировал вопрос, объясню на примере.
К примеру есть телеграм бот код которого выложен на гитхаб. Есть какой нибудь способ сделать так что бы юзер мог узнать когда будет писать в этого телеграм бота что код этого бота не менялся.
Понимаю что скорее всего нет но все же решил уточнить.
209 1923631
>>1923627
Есть, называется хэш-сумма. Если код меняется, то меняется и хэш-сумма.
210 1923633
>>1923627
Проверить id коммита?
211 1923639
>>1923631
Ну так то
return "hash"; который должен вернутся если код не меняли. И как узнать что мне бот мне не написал заранее заготовленую строку а не хеш исполняймого файла?

>>1923633
Я не в курсе про что ты, я вкатывальщик)
212 1923666
>>1923639
Я тоже вкатывальщик. Посмотри какой-то базовый видос про гитхаб на тытрубе где рассказывают про базовые понятия гита.
213 1923670
>>1923666
Дак а причем тут гит?
Есть какой то апи который может верефицировать запускаемое приложение?
214 1923675
>>1923670
Тебе же блин сказали: Хеш.
Смотришь оригинальное приложение, обычно там и так лежит файлик с хеш-суммой, либо рассчитываешь его. Затем рассчитываешь хеш для приложения что у тебя. Если отличаются - значит поменялось. Что сложного-то?
215 1923677
>>1923670

> код которого выложен на гитхаб


> Дак а причем тут гит?


...

> Есть какой то апи который может верефицировать запускаемое приложение?


Нету. Зато есть системы контроля версий.
Блять, короче. Если ты менял код делаешь коммит (точка сохранения). У этого коммита есть id, вот этот id ты можешь цеплять и сравнивать.
216 1923683
>>1923675
>>1923677
Да вы не поняли просто что нужно.
Еще раз повторю.
Есть к римеру бот на гитхабе. Ну к примеру мне нужно гарантировать что именно бот который я выложил будет запускать юзер.
Но юзер может его скачать и модифицировать, и просто подсовывать нужный хеш.
А мне нужно как то гарантировать что код запущенного бота это код на гитхабе. В частности бот не должен сохранять ни каких данных о пользователе который ему пишет. Но как я могу подтвердить что мой бот не сохраняет данные? Только выложить бота на гитхаб. А как пользователь может проверить вдруг на гитхабе один бот а запущен у меня другой?
217 1923713
>>1923683

> Но юзер может его скачать и модифицировать


Niqaque
sage 218 1923773
>>1923683
Первое правило веба — никому не говорить не доверять клиентским данным. Вообще никогда.
219 1924372
Делаю проект ASP.NET Core MVC+Entity framework. Мне нужно чтобы пользователь мог добавить в БД данные, которые имеют одно из нескольких определенных заранее значений? Как это реализовать?
220 1924462
>>1924372
Вроде разобрался, с помощью атрибута [Remote].
221 1924501
Хм. Тупой вопрос.
Смотрите, допустим есть некая база. В ней есть довольно общая сущность, допустим это товар. У нее есть связанная таблица атрибутов, в зависимосмти от типов товара - там разные могут быть атрибуты, они привязаны через доп-таблицу: ТоварАтрибут
Так вот. Суть в чем. На клиенте для разных типов товара должны быть разные вьюшки. Ну, типа: Технические характеристики, размеры для товаров что имеют эти характеристики, поддерживаемые интерфейсы для товаров у которых есть уже эти вот характеристики.
Ну, собвственно, мне интересно, как это было бы лучше реализовать. Пока что я думаю о том, чтобы просто добавить поле группа для таблички атрибут, ну, соответственно фронту будут отдаваться данные в сгруппированном виде и на нем можно будет просто отрисовать.
Может быть есть какие-то более изящные решения?
Ну, да, чому в шарпотреде - потому что я шарпоняша и это все на шарпах пишется.
222 1924529
>>1924501
Ну если группировка не изящное решение, то я даже и не знаю, какое изящное.
223 1924843
мне нужен c# для использования в ZennoPoster. Он по сути тот же там использеутся, что и в книгах в шапке? А то там какие-то wpf, .net , я не ебу что это все такое, я просто хочу писать c# сниппеты на зенке без всяких там вот этих
224 1924887
225 1924915
>>1910324 (OP)
Йоу, пацантре.
Такой вопрос. Есть WPF приложение. Нужно периодически проверят коннект с сервером и отображать это. Есть самодельный класс, который отвечает за запись и чтения с сервера. Собна каким образом всё это можно сделать?
Таймер для этого нормально или есть какие-то более современные и нормальные подходы?
226 1924930
>>1924915
Стопвотч и не выебуйся
227 1924949
>>1924930
А причём тут stopwatch?
228 1925217
Помогите с выбором. Появилось желание заняться программингом для себя. Вопрос не про трудоустройство. Допустим, я хочу склепать пару мобильных приложений и игрушек (могу 100 раз обосраться и передумать, это понятно). Как понял, есть два стула: Java и C#. Склоняюсь к шарпу из того, что читанул:

1. Сейчас адекватные мобильные игры на джаве не пишут. Используют шарп.

2. Сейчас мобильные приложения пишут на Kotlin. Не на шарпе.

Вопрос: вне контекста трудоустройства, мешает ли мне что-то клепать приложения на шарпе? Просто геймдев у шарпа, как я понял, гораздо лучше чем в джаве. Но и мобильные приложения тоже есть идейки. Подойдет ли шарп и для этого?
229 1925218
>>1925217
Xamarin для приложений (и простых игр)
Unity для игр.
Смысл есть, особенно если будешь крутиться исключительно в .core и mono
230 1925270
До этого пытался вкатиться в ASP.NET, но все каким-то убогим и нагроможденным казалось, поэтому забил. Сейчас нашел очень годный курс, связка .NET API и Angular. Так вот, если я буду разрабатывать сайты по этой методе, через API, это мое преимущество или недостаток? Уж очень такой метод показался удобным и лаконичным.
231 1925371
Привет добрые анончики, я образа.сь к тем кто знает что такое абстракции и конструктор, потому что я не знаю как такое юзать в моем коде https://pastebin.pl/view/a87ddb29
вот у меня пример моего говнокода который где много раз повторяются похожие функциии и методы, они работают так же единственное что отиличается так это тип данных, как мне фиксить такое и вместо 20 одинаковых функций под каждый тип данных сделать одну под все без ифов форов и медленных проверок?
232 1925386
>>1925270

> но все каким-то убогим и нагроможденным казалось


Можешь навести пример не убогого фреймворка? Я прост только асп знаю, интересно чем он плох.
233 1925400
>>1925386
Я на C# вообще не гоню, меня все устраивает, так как я смотрел разные фреймворки, ларавел и тому подобное, и там только на одних миграциях можно голову сломать
234 1925443
>>1925371

>конструктор


Дружище, у тебя статический класс.

>абстракции


Опять же, статический класс.

>много раз повторяются похожие функциии и методы, они работают так же единственное что отиличается так это тип данных, как мне фиксить такое и вместо 20 одинаковых функций под каждый тип данных сделать одну под все


Загугли дженерик классы и дженерики вообще. Они для этого и нужны.
И вообще. Не используй слово static без четкого понимания, зачем оно нужно. Статические классы только в соснольке с сотней строк кода удобно использовать, в чем-то мало-мальски серьезном ты только говна поешь, пытаясь понатыкать лишних статиков.
235 1925473
>>1925443
А каким образом я могу реализовать концепцию inMemoryDatabase без статического класса в котором хранятся данные?
236 1925497
>>1925473
Ну как, нестатическим классом например???
237 1925503
>>1925497
так ведь для использования например не статических классов я должен буду создавать новый экземпляр класса каждый раз когда я хочу его использовать, учитывая что у меня будет много пользователей и много данных мне никакой памяти не хватит что бы хранить все эти экземпляры отдельно
238 1925506
Какие есть годные гайды по asp?
240 1925512
>>1925503
В зависимости от связанности твоих "пользователей" (а я не уверен, что ты имеешь в виду) применяется Dependency Inversion или синглтоны.
241 1925535
>>1925512
нет, сингелтон точно не используется, потому что дб может изменять свое состояния и кешировать данные динамически, сингелтон это вообще про другое, насчет Dependency Inversion я не совсем понимаю к чему ты это, это просто паттерн, и да я спросил именно про то какие образом можно реализовать такой патерн в концепции inMemoryDataBase
242 1925555
>>1925535

>я спросил именно про то какие образом можно реализовать такой патерн в концепции inMemoryDataBase


1. Убираешь статики
2. Делаешь класс дженериком и сокращаешь с помощью этого код
3. Делаешь для класса интерфейс и наследуешь его классом
4. Используешь DI-фреймворк/пилишь DI вручную (по сути хуячишь инстанс своего класса в ~мейне и прокидываешь этот инстанс через конструкторы или методы к классам, где он нужен)
Seemann-DI-HI.png38 Кб, 360x452
243 1925699
>>1925535
Ты троллишь, что ли, блять? Памяти у него не хватит, видите ли, если создавать объекты. Профилировал уже?

Пиздуй пикрелейтед читать.
244 1925721
Чё скажите за блазор?
Какие у него жирные недостатки перед js?
245 1925787
>>1924915
Ну, блин. Зависит от архитектуры приложения.
Но самый простой способ - берешь таймер из класса Timers.
246 1925859
>>1925503

> ведь для использования например не статических классов я должен буду создавать новый экземпляр класса каждый раз когда я хочу его использовать


С хуя, лол?
Вот серьезно, с какого хуя-то? Ты можешь создать один экземпляр и передавать его сколько хочешь кому хочешь. Можешь ебануть синглтон и закрыв конструктор получать один и тот же экземпляр откуда угодно.
sage 247 1925941
>>1925859
По ходу дела желаю всем уебанам, вручную имплементирующим синглтоны, всю жизнь писать для них юнит тесты.
248 1925955
>>1925535

>я должен буду создавать новый экземпляр класса каждый


>насчет Dependency Inversion я не совсем понимаю к чему ты это, это просто паттерн


На пальцах.
1 изначально дергаем статик класс зависимость или синглтон зависимость прямо из класса. Работает, но все прибито гвоздями и невозможно ни нормально тестировать, ни подменить реализацию
2 Вносим Dependency Inversion - не лезем к зависимостям сами, а получаем их через конструктор. Тестируется на отлично и подменяются реализации. Но как результат - нужно создавать экземпляры
3 И если у нас экземпляры, то как же синглтоны? Решение простое - прокидывать всем один и тот же экземпляр зависимости.
4 И тут на сцену выходят IoC контейнеры (которые суть автофабрики, которые рантайм просто пишет за нас) и в них декларативно задается время жизни зависимости в рамках контейнера.
И поскольку все создается с помощью IoC контейнера, то он позаботится о том чтобы все получили один и тот же экземпляр "синглтона"
249 1926010
>>1925555
Я уже писал, синглтон не применим ни в коем случае, МНЕ НУЖНЫ РАЗНЫЕ ЕКЗЕМПЛЯРЫ а не один и тот же
250 1926028
>>1926010
любой, кто увидел static, разумно делает предположение, что нужен синглтон
ведь для этого static и применяется - не создавать экземпляры.

и реализовать опять же очень просто - нужные разные экземпляры...так создавай разные экземпляры там, где они нужны разные.
Проблемы то нет
251 1926030
>>1925955

>Решение простое - прокидывать всем один и тот же экземпляр зависимости.


не валидно

судя по постоянными переложениям юзать синглтон я понял что никто не читал код который я выложил поэтому объясню на пальцах

для каждой сущности (продукты, счета, и тп) данных свой класс, а для каждого пользователя свой экземпляр с ЕГО сущностями

сейчас работает так, 20 классов которые возвращают из физической базы и кешируют в память свои сущности, они биндятся в 20 словарей под каждую сущность, ключем является пользователь, данные обновляются реальном времени, а если пользователя нет/сесия пользователя нет, то и данных нет/данные удаляются

и очевидно что все словари с данными должны ДОЛЖНЫ быть статическими, и их должно быть 20 по каждому на сущность, другой вопрос нужно ли мне 20 статических классов которые возвращают каждый сво сущность или это можно сделать умнее
252 1926032
>>1926010
Значит используй моностейт, а не синглтон.
253 1926035
>>1926028
Я класс inMemoryDB со всеми вложенными статическими классами инициализирую при старте сервиса если ты об этом, а классы которые возвращают данные из физической дб в inMemoryDB в синглтонах не нуждаются
254 1926078
>>1926030
конечно не читал. никто не понял зачем нужен этот инмеморидб и что он делает
а когда увидел множество "new Thread()" то тут аж сердце прихватывает от такого

А "20 классов" - ты тут криво описал нечто похожее на обычные repository с кешированием внутри себя.

>не валидно


конечно не валидно. ведь это середина истории. А самая суть под пунктом 4

>что все словари с данными должны ДОЛЖНЫ быть статическими


ты путаешь понятие "статический" и "один для всех". Для "один на всех" не нужно быть статическим - достаточно сделать так, чтобы был один инстанс для всех

Тебе нужно понять концепт

Задача разбивается на ответственности. Затем, в соответствии с SRP, реализуешь классы, где каждый класс отвечает за свое.
Далее из этих классов (как из кубиков) собираешь граф объектов с зависимостями.
Ну а потом просто пнуть его и оно заработает.

И вот тут при создании графа ты и решаешь что должно быть в 1 экземпляре, а что создаваться каждый раз. А еще есть скоупы, где экземпляр переиспользуется в рамках скоупа.

Вот эту концепцию вкури, а "статики/синглтоны для того чтобы он был один" забудь как страшный сон

Можешь не любить IoC, а написать код инстанцирования руками (IoC просто генерит тот же код за нас, позволяя нам декларативно задавать).
Статики/синглтоны - зло
Экземпляры, но гарантирована1 штука - добро.

У тебя класс inMemoryDB, у тебя 20 классов реп, которые читают из бд. Каждый из них может кешировать тупо в словарих внутри себя. А может быть у них общий кеш - тогда еще один класс. И все это НЕ-статическое.
А что из них создается каждый раз, а кто один раз - решит тот, кто собирает граф.
254 1926078
>>1926030
конечно не читал. никто не понял зачем нужен этот инмеморидб и что он делает
а когда увидел множество "new Thread()" то тут аж сердце прихватывает от такого

А "20 классов" - ты тут криво описал нечто похожее на обычные repository с кешированием внутри себя.

>не валидно


конечно не валидно. ведь это середина истории. А самая суть под пунктом 4

>что все словари с данными должны ДОЛЖНЫ быть статическими


ты путаешь понятие "статический" и "один для всех". Для "один на всех" не нужно быть статическим - достаточно сделать так, чтобы был один инстанс для всех

Тебе нужно понять концепт

Задача разбивается на ответственности. Затем, в соответствии с SRP, реализуешь классы, где каждый класс отвечает за свое.
Далее из этих классов (как из кубиков) собираешь граф объектов с зависимостями.
Ну а потом просто пнуть его и оно заработает.

И вот тут при создании графа ты и решаешь что должно быть в 1 экземпляре, а что создаваться каждый раз. А еще есть скоупы, где экземпляр переиспользуется в рамках скоупа.

Вот эту концепцию вкури, а "статики/синглтоны для того чтобы он был один" забудь как страшный сон

Можешь не любить IoC, а написать код инстанцирования руками (IoC просто генерит тот же код за нас, позволяя нам декларативно задавать).
Статики/синглтоны - зло
Экземпляры, но гарантирована1 штука - добро.

У тебя класс inMemoryDB, у тебя 20 классов реп, которые читают из бд. Каждый из них может кешировать тупо в словарих внутри себя. А может быть у них общий кеш - тогда еще один класс. И все это НЕ-статическое.
А что из них создается каждый раз, а кто один раз - решит тот, кто собирает граф.
255 1926099
>>1926078
ну смотри, предположим у меня 10 пользователей, они будут получать данные по своему айди но данные у них одинаковые, тот же набор продуктов и тп, правильно я понимаю что с нестатическими классами они все забиндуют в словарь 10 одних и тех же копий тех же данных, но в разных потоках которые не будут иметь отношения друг к другу? потому что мне кажется что именно так и будет и это уже не похоже на базу данных в памяти, это просто кеширование,
14284256959995.jpg36 Кб, 960x960
256 1926100

> new Dictionary


> new Thread

257 1926112
>>1926100
Словарь так то только при инициализации создается, а про тред я вообще не понял в чем претензия
258 1926120
>>1926112
я мимокрок
претензия в том, что
а) он не нужен
б) не используется ThreadPool
259 1926125
>>1926120
А он обязательно нужен, что бы создать новый поток?
260 1926126
>>1926099
То, что ты описал это называется Identity map - кеш загруженных сущностей.
А значит каждый из твоих 20 классов получит ссылку на общий экземпляр такого кеша, где они и будут спрашивать "не загружено ли"
261 1926128
>>1926125
он как раз нужен чтобы НЕ создавать новый поток, а взять уже созданный из пула. Это экономит и время и ресурсы.
поэтому минимум Task.Run() вместо new Thread()
если оно вообще нужно конечно - ибо ты обращается к I/O
262 1926140
>>1926128
Я почитаю об этом
263 1926141
>>1926126
об этом тоже почитаю
264 1926152
>>1926010
Ты же понимаешь, что я описал DI-реализацию ТВОЕГО кода с ТЕМ ЖЕ функционалом? Где вместо статика (который по определению является одним инстансом) мы используем один инстанс? Пиздец у тебя каша в голове.
А по факту делается это так:
1. Добавляешь в интерфейс строку
static void GetInstance() => throw new NotImplementedException();
2. Добавляешь в класс строку
static void GetInstance() => new inMemoryDB();
3. Вместо имеющегося инстанса кидаешь в конструкторы _instance.GetInstance()

А по факту это не делается, а используются DI-фреймворки, которые делают все вышеперечисленное вместо тебя, а тебе нужно написать одну строку. И ты бы быстро нашел этот функционал в любом из них, потрать ты хоть секунду на изучение темы, а не беги на двачик с вопросом, который при твоем непонимании статиков объяснить примерно нереально.
sage 265 1926249
>>1926112
Словарь не потокобезопасен, и не надо мне про тот лок говорить только.
266 1926254
>>1926249
А в чем проблема лока кроме того что он статический? и что в данном случае можно использовать кроме сторонних фремворков?которые типа "написал строку и ок" а в реальности "написал строчку и там выполняется полная каша которая делает код процентов на 200 медленнее как например с ЕФ
sage 267 1926270
>>1926254
Можно, например, использовать ConcurrentDictionary. Тогда, может, кому-то и захочется читать ту простыню.

На Энтити гон абсолютно необоснованный, он генерирует запросы, которые от рукописных отличаются только переименованием полей. В два раза медленнее он, потому что вместо тебя реализует вот это кеширование, транзакции и другое.
image.png68 Кб, 637x337
268 1926354
Аноны, поясните что за UK? Не британия же
269 1926355
>>1926354
unique key
270 1926358
>>1926354
Тебя в яндекс-переводчике забанили? Зачем ты пытаешься понять смысл предложения только по двум словам?
271 1926361
>>1926354
Конечно, она самая. Автор говорит, что формат даты будет у тебя другой, потому что ToString по дефолту форматирует для текущей локали.
272 1926574
>>1926354
united kingdom
273 1926791
Знатоки и мастера синтаксиса. Вот возникло у меня жгучее желание заиметь словарь, в котором значением будет другой словарь.
Так вот, когда я пробовал вот так вот
Dictionary<string, Dictionary> - студия меня матом послала, дескать нужно указать типы для ключа и значения. Но ведь в том и суть что мне нужно чтобы словари что являются значением - могли быть любыми. При этом хотелось бы чтобы тип был виден нормально и не нужно было преобразования эти делать.
Есть хак какой-нибудь, кроме как: Dictionary<string,Dictionary<object,object>>?
274 1926890
>>1926791

>могли быть любыми. При этом хотелось бы чтобы тип был виден нормально


нужно подключить библиотеку libastral в проект и это станет возможным.
275 1926897
Делаю проект на ASP.NET Core MVC. Реализую проверку ввода строки с помощью атрибута [Remote]. Одним из условий проверки является проверка на ввод пустой строки. Решил это реализовать используя string.IsNullOrEmpty(). Но оно не работает! Я как мог сохранить данные с пустой строкой, так и могу. В чем может быть проблема?
276 1926911
>>1926791
data Yoba a b = Dictionary<string, Dictionary<a, b>> (с точностью до синтаксиса)
277 1926921
>>1926791
Dictionary<string, Dictionary<dynamic, dynamic>>
278 1926948
>>1919641
анончик, а давай вместе вкатываться. Я немного дальше тебя в изучении C# прошел, но думаю все равно обоим будет полезно.
@SpaceCowBoy2176
279 1927084
>>1926911
Хаскеллист в треде?
280 1927095
Почему в .Net backend разработчик сайтов называется Software Engineer, или этот стек не веб? Объясните. Похоже больше на веб, с SignalR и JS.

Experience with ADO.Net, MVC, WebAPI, SignalR
Experience with Lucene.NET
Knowledge of JavaScript, TypeScript
Knowledge of xUnit, MsTest, Moq
Experience with SQL (Microsoft SQL Server)
Familiarity with Agile process, Scrum, Git
281 1927108
>>1926791
Можно завернуть Dictionary<object, object> в класс Yoba и прописать проперти Type - будешь хоть как-то видеть тип. Или завернуть Dictionary<string, Dictionary<object, object>> в класс Yoba и прописать свистоперделки для удобства. А так - только Dictionary<object, object>, динамическая типизация не предусмотрена, так что придется иначе ставить задачу или терпеть неудобства.
>>1926921
Так можно сделать, но по сути это то же самое, что Dictionary<object, object>, только без предохранения от Студии и компилятора. Любой обосрамс в коде ебанет только в рантайме, и местами выявить проблему очень непросто. Лучше писать эксплицитно Dictionary<object, object> - меньше вероятность выстрелить себе в ногу, хоть и придется везде прописывать приведение вручную.
282 1927290
2021 год, статическая типизация, даункасты от обджекта. Хуею с этих ваших промышленных стандартов разработки.
283 1927313
>>1927290
задачи разные бывают
284 1927328
Всем привет. Вот какой вопрос.
Два года назад стал разработчиком. Писал на C#, в основном на фреймворке Террасофта (бэк на C#, фронт на их специфическом JS).
Сейчас у компании свой новый проект на Java, без Гибернейта и Спринга.
В каком направлении развиваться. Я работал немного с Java в своё время, он показался мне всратым по сравнению с дотнетом. Но вопрос в рынке труда и перспективах.
Плюс, на изучении чего сосредоточиться, какие вопросы нужно хорошо знать, а что можно подглядеть по ходу работы?
285 1927330
>>1927328
Также, стоит ли концентрироваться на .Net Framework 4.8, или в нынешних реалиях это легаси? Перекатываются ли все массово на Core на .Net 5?
286 1927437
>>1927330

>в нынешних реалиях это легаси


Да

>Перекатываются ли все массово на Core на .Net 5?


Да (кроме закоренелого легаси, по очевидным причинам)
287 1927688
>>1910324 (OP)
Можно как-то в WPF'e с код бехайнда изменять текст в TextBlock'e с разметкой/форматированием?
Вот такая хуита https://stackoverflow.com/questions/53508956/wpf-c-sharp-how-to-set-formatted-text-in-textblock-using-text-property кидает на каждый чих эксепшн (<UnderLine> not found).
288 1927752
>>1927688
ну так напиши сам код который будет транслировать твои <Underline> в правильный Inlines, а не тот ужас что по ссылке
289 1927776
>>1910324 (OP)
Когда вас спрашивают кем вы работаете - вы скрываете, что пишите на C#? Это ведь зашквар.
290 1927783
>>1927776
не такой зашквар как писать на питоне php
291 1927784
>>1927776
Меня на фронт перевели, а я и не против. но петпрожект на решетке допилю, лень на электрон переписывать
292 1927789
>>1927776
наоборот горжусь.
293 1927794
>>1927783

Хз, питонер или пхпшник купит себе макбук, а у тебя будет винда(
294 1927797
>>1927794
Core мультиплатформенная среда, какой хочешь такой покупай
295 1927805
>>1927797
Ну и сколько челиков в тренде пишет на чем-то кроме винды? Понимаешь, на php тоже можно писать в винде. Но неудобно.
296 1927810
>>1927805
Как минимум я пишу
297 1927815
>>1927805
Зачем вообще на винде писать?
Работаю под линуксом, весь продакшен на линуксовых серверах, докер образы под кубером.
мимо .net core бэкендер
298 1927816
>>1927805
я тоже пишу
image.png157 Кб, 320x218
299 1927935
>>1927805
>>1927794
>>1927776

Найс тебя обоссали
300 1927938
>>1927437
Короче, сяду за новый пет-проект на .Net 5.
Но вопрос ещё и вот в чём: стоит ли смотреть в сторону Java?
Она мне кажется совершенно всратой. Плюс, шарп я люблю за то, что можно смотреть в сторону геймдева на Юнити.
301 1928409
>>1927805
Не понял что ты спросил.
Пишу на винде, потому что студия тупо удобнее чем все всякие vsCode и дргуие говноредакторы, типа райдера. И попробуй пусть хоть один пидорас скажет, что студия неудобна, почти каждый плсюовик - в ней кодит, хоть и не все признаются. Просто вот так уж вышло, что по факту - лучше студии и нет ничего для разработки. Разве что в нишах всяких, типа под яблоко - лучше их xcode (или что там у яблочников сейчас, я давно не следил), под андроид - андроидстудия; но если смотреть в общем - студия все еще остается лучшей иде, если ты на плюсах или языке из .net кодишь.
А то что пишу сейчас - запускают как на линуксах, так и на винде.
302 1928485
>>1925721
ну епта, вы чего
Я думал это революционный фреймворк, в вы чета заигнорили вопрос, не знаком чтоли никто
303 1928491
>>1928409
Главная проблема студии (помимо кривого перегруженного неинтуитвного интерфейса, в котором все свалено в одну кучу) - её громоздкость. Т.е. либо она у тебя будет отжирать половину ssd, либо грузиться по пол часа.
304 1928549
>>1928491
когда с программистской зарплаты не можешь купить ссд на 128гб и айпять десятилетней давности?
305 1928695
>>1928549
ну ты даешь, Яблочники уже всю всю зарплату потратили на оверпрайснутый еир, на подписку АЙтюнс, на АЙклоуд, откуда у них деньги еще и на ссд, да и нету слотов расширения у епловых поделок
16118685511560.jpg126 Кб, 660x440
306 1928714
Сап шарп. Нужна архитектурная помощь неофиту. Есть декстопная впф апликуха для прохождения тестов. У нее есть локальный (файл) sqlite. У теста есть n вопросов, нужно реализовать "сохранение" теста при прохождении если по каким-то причинам приложение будет неожиданно закрыто.
В базе уже есть таблица с результатами, только они сохраняются в конце. Я хочу переписать так чтобы запись апдейтилась после каждого вопроса. В таблице есть поле - перечисление ответов, туда запихивается сериализируемый list<answer>.
Дальше у меня начинаются вопросы. При загрузке теста нужно определить есть ли запись или нужно начинать новый тест. В начале я подумал что нужно доставть тот лист и смотреть сходятся ли каунт листа и каунт вопросов, но это мне не совсем подходит. Дальше я подумал что мне нужно добавить флаг - пройден ли тест, но добавить поле в таблицу не совсем правильно т.к. у меня шифрование/безопасность и юзверь может залезть в файл бд и поменять флаг. Дальше я подумал что нужно этот флаг засунуть в само поле ответов, т.е. в лист, но лист это перечисление ответов, а мне нужно записать как-то поверх него вот этот стейт. Подумал записывать в поле словарь, но у меня не соблюдается уникальный ключ, т.е. ответы могут быть идентичными. Короче как это правильнее реализовать? Или можно как-то юзать словарь без уникального ключа?
307 1928741
Или лучше сделать таблицу типа unfinishedTests и туда делать запись по айдишнику?
308 1929330
>>1928714
Так и не понял в чем проблема еще одну таблицу создать и что там у тебя шифруется и почему новая таблица не будет шифроваться.

У тебя ответы в ОЗУ "шифруются"? В чем проблема юзеру сейчас "залезть в файл бд и поменять" что-то?

Хуй знает. Непонятно что там у тебя накостылено. Нарисуй на бумажке нормализированную схему БД типа: Test (Id, IsCompleted), AnwerFact (Id, QuestionId,...) и подумай, сможешь ли ты осилить рефактор нормальный.
309 1929340
>>1925270
Оно оба ASP.NET
Но вот именно ASP.NET MVC со всякими рейзорами я уже года три нигде не видел.
Так что не преимущество, но скорее всего и не большой пробел. Иногда на собесах и за рейзор спросить могут.
310 1929439
>>1910324 (OP)
Подскажите куда смотреть. Нужно получить доступ к скроллу другого приложения.
Что для этого надо?
311 1929509
>>1910324 (OP)
Где можно почитать что у синьёра на собеседовании обычно спрашивают? Интересующий стек ASP.NET MVC/Web Api + вопросы по самому шарпу.
312 1929536
>>1929509
про предыдущие проекты спрашивают
313 1929546
>>1929536
Плохо, придется архитектуру проектов повспоминать, а то я уже на автомате бизнеслогику меняю.
314 1929811
Почему вывод в файл, быстрее, чем вывод в консоль?
315 1929899
>>1929811
let me google for you
https://stackoverflow.com/questions/5272177/console-writeline-slow

Why Console is slow:

Console output is actually an IO stream that's managed by your operating system. Most IO classes (like FileStream) have async methods but the Console class was never updated so it always blocks the thread when writing.

Console.WriteLine is backed by SyncTextWriter which uses a global lock to prevent multiple threads from writing partial lines. This is a major bottleneck that forces all threads to wait for each other to finish the write.

If the console window is visible on screen then there can be significant slowdown because the window needs to be redrawn before the console output is considered flushed.
316 1929951
>>1929899

>let me google for you


Андрей, ты?
317 1929973
>>1929951
Говно, ты?
318 1930221
>>1910324 (OP)
Что почитать по azure?
Приложение на asp накидал(простенькое говно), подумал что стоит повоевать и в ту сторону.
319 1930242
Если на компе запустить сервер на сокетах, то как к нему с андройда через мобильный инет подключиться?
320 1930352
Анонче помоги.
Я хз с чего как найти то что надо мне.
Вопрос такой. Есть такая игра path of exile, для нее есть сторонний софт который по нажатию клавиш получает данные о предмете из игры. И вот вопрос как он получает данные из игры ?
Вот пример такой программы. Она сильно сложная для меня. Хотелось бы сделать что то похожее но вот не могу понять как программа получает данные о предмете, на сайте игры ничего нет такова(

https://github.com/domialex/Sidekick
321 1930369
>>1930352
>получает данные из игры ?
Очевидно из памяти считывает
322 1930371
>>1930369
Это предположение?
Просто так то из памяти я думаю запрещено в память игры внедрятся.
323 1930391
>>1930369
>>1930371
Оказалось что в самой игре есть фича, при нажатии кнтр+ц игра копирует данные о предмете, софт обрабатывает инфу с буфера обмена и отправляет на сайт.
324 1930564
Всем привет!
Скажите, насколько реально ньюфагу сейчас джуном на юнити вкатиться? Интересны разработки всякие под ВиаР.
325 1930576
Блять, Двач, ну это же пиздец какой-то.
Есть один паттерн для написания приложение на WPF под названием MVVM. Узнал об этом паттерне несколько лет назад, за это время успел выучить Python на нормальном уровне, но ебучий MVVM так и не освоил.
Я могу без проблем передать свойства объекта из View в Model, вернуть их, отобразить, с этой частью проблем нет.
Но ебучее нажатие на кнопку реализовать - это же тотальный пиздец. Какие-то нахуй ICommand айхуйкомманд, RelayCommand на несколько десятков строк, да это, ебись оно в рот, не стоит того ради выполнения пары строк кода для изменения интерфейса.
А когда начинается открытие дополнительных окон в приложение то всё нахуй, дальше пешком быстрее будет.
Есть какой-то нормальный аналог этому паттерну? Я с этим говном заебался возится. Костыль на костыле, блять, и никто этого не видит.
326 1930589
>>1930576

>успел выучить Python на нормальном уровне


>MVVM так и не освоил


Петухон можно выучить до "нормально уровня" за 15-20 минут? Ровно столько нужно, чтобы разобратся в таком элементарном паттерне
327 1930597
>>1930589
Может, я тупой? Объясни мне нормальный способ вызвать процедуру нажатия кнопки сквозь ViewModel.
328 1930660
>>1930576
Справедливости ради - сам-то паттерн понять не проблема.
Хуйня в том, что он не нужон и вообще больше проблем вызывает, особенно в контексте WPF. Ыыыы, как весело сидеть с профиллировщиком и искать где же ты от INotifyPropertyChanged забыл отписаться.
А вообще, большей справедливости ради - WPF - говно. Серьезно. Лучше чем формы не придумали еще. Вот это как раз охуенная штука была: пишется легко, работает быстро, куча вещей прямо из коробки, еще и не нужно эту залупу XML'нуй под названием ЗАМЛ использовать. Если бы я все еще писал под десктоп, тем более виндовый - то брал бы формы, охуенная штука была, однако.
329 1930665
>>1930576

> Есть какой-то нормальный аналог этому паттерну?


А, ну да. MVC - если ты так уж аналога хочешь. Удобно и просто.
330 1930695
>>1930371

>Просто так то из памяти я думаю запрещено в память игры внедрятся.


А как же тогда артманя работала?
331 1930699
>>1930576

>Но ебучее нажатие на кнопку реализовать - это же тотальный пиздец. Какие-то нахуй ICommand айхуйкомманд, RelayCommand на несколько десятков строк, да это, ебись оно в рот, не стоит того ради выполнения пары строк кода для изменения интерфейса.


Ну, раньше как было? Нажал на кнопку, сработало событие, которое вызвало нужный метод. А ща нажал на копку, сработало событие, которое вызвало команду, которая вызвала метод, который на нее подписан
332 1930725
Сап.
Прошел 40 уровней джавы, начал переводить один исходничек на джаву, который был только на пайтоне, да так там всё охуенно, что я на 3 месяца в пайтон перекатился и прошел лэтпай. Но сейчас понимаю, что пора бы и честь знать, надо взрослый компилируемый язык учить. Свёлся к шарпам... но ссука открываю это после 3 месяцев питона и плакать хочется, как не хочется опять в эту джаву. Уговорите меня, пожалуйста, парни. Дайте леща, что бы я с питона слез. Как мне обмануть мой мозг? Чем питон хуже сишных? Ведь там, где я два дня матерился в джаве, в питоне я просто пару строк практически наугад написал и оно заработало.
333 1930728
>>1930725

>компилируемый язык


>шарп



Проиграл с дебила.
334 1930739
>>1930728
Ты какой то странный.
а ну, вот эта штучка как называется на вскидку?
scs.exe
335 1930742
>>1930739

>scs.exe


Какой-то вирус.
336 1930746
>>1930742
Интересно. Я тут не местный. А адекваты в этом треде есть вообще?
337 1930833
>>1930564
Лучше в unreal+кресты+3дмакс/блендер/збраш посмотри.
338 1930851
>>1930739

>scs.exe


И че это?
339 1930912
>>1930725
Ну так шарп не джава, а язык в котором можно умереть от сахарного диабета. Думаю, код на нем лаконичнее чем на питоне.

> Ведь там, где я два дня матерился в джаве, в питоне я просто пару строк практически наугад написал и оно заработало.


Наведи пример задачи плез.
340 1930922
>>1930725
У меня ситуация обратная. Я блять искренне не понимаю людей добровольно идущих на питон после джавы/шарпа/плюсов(особенно после плюсов), это же конченная песочница в которой буквально все сделано за тебя и ты как макака импортишь модулей 20 и пишешь 3 строки кода. Да я js уважать стал, когда увидел что творится на питоне.
341 1930942
>>1930922
Я просто не понимаю вообще, как можно писать на игрушечной залупе, когда есть С++ или Шарпы (пишу и на том и на том).

Особенно динамически типизированной.
342 1930984
>>1930942
Шарп это такая же игрушечная залупа как и жаба, только вместо жим у неё цлр
343 1930988
>>1930984
то есть ну вот оно же быстрей жабы? и не требует кучи говнообразных jre за собой тянуть.
344 1931035
>>1930988
Требует. Принцип работы у них одинаковый, разница только в разрабе и в том что под цлр не только на шарпе писать можно
345 1931133
>>1930739
Ты случайно не про cl.exe?
346 1931175
>>1931133
>>1930739
Вы случайно не про csc (c sharp compiler), поехавшие?
347 1931227
>>1930922

>и ты как макака импортишь модулей 20 и пишешь 3 строки кода


То ли дело в шарпе, который в своем хваленом wpf графики из коробки рисовать не умеет
348 1931238
>>1931227

>wpf графики из коробки рисовать не умеет


а почему он должен это уметь?
349 1931257
>>1931238
А почему формы умеют? Может WPF еще и в кнопки уметь не будет и надо свой контрол писать?
350 1931264
>>1931257

>А почему формы умеют


а кто сказал что такой подход правильный

>Может WPF еще и в кнопки уметь не будет и надо свой контрол писать?


Кнопки это базовый функционал и нужны каждому. Более того, они нужны как "кнопки разве что с разным внешним видом" в отличие от графиков, где каждому нужно свое
351 1931322
вы че, бомжи обосанные на питон пиздите - охуенный язык
или вам так хочется велосипеды писать? Может тогда уже на ассемблере начнем писать? охуено же
352 1931356
Изучаю сишарп по слитому курсу скиллбокса. Помидоры не кидайте, как база очень даже ничего. 22 года сейчас. Есть вообще шансы вкатиться на десктоп бэкенд? При условии конечно что буду вьебывать
353 1931371
>>1931356
я понимаю, что ты хочешь услышать слова поддержки
но твой вопрос звучит так
"я вот хочу заниматься футболом, у меня получился, если я буду упорно тренироваться каждый день?"
354 1931393
>>1931356

>десктоп бэкенд


Это вообще как
355 1931407
>>1931322

>на питон пиздите - охуенный язык


вот только подходит не везде. забавно смотреть на пляски с мультипроцессностью вместо того чтобы взять любой язык без GIL
356 1931411
>>1931407
ну вот ГИЛ да - полностью согласен
357 1931450
>>1931035
да нет, ты обосрался, достаточно NETStandard.Library 2 размром пару мегабайт, без установки говнообразных 300 метровых JRE
358 1931499
>>1931450
https://dotnet.microsoft.com/download/dotnet/thank-you/runtime-desktop-5.0.2-windows-x86-installer

Среда выполнения .нет 5 весит 47 в сжатом состоянии. У жавы не знаю, можешь зайти и скачать самостоятельно.
359 1931500
>>1931371
У меня синдром дефицита внимания, мне сложно концентрироваться долго на определенных вещах, собственно я невнимательны и расссеяный но это касается только мелких вещей, забыл кому поставить, забыл букву написать, пропустил слово на диктанте и тп, но я слышал что в современных программах для писания кода все так умно что программа сама подсказивает тебе что писать, что забыл написать и где программист допустил.
Так какой шанс вкатиться в программирования?
360 1931521
>>1931499
стандартная поставка со всеми дистрибутивами винды, и как было сказано, один маленький файл netstandart.dll решает все проблемы, все таки dll это самостоятельная сущность, в отличие от class файлов.
361 1931530
>>1931499
Через синглфайл паблиш с триммингом он сожмёт дотнет до 10 мб и впердолит в экзешник, даже ставить ничего не надо. Это же не джавапараша, где открываешь jar-файлы рантаймом как в питоне pyc.
362 1931545
>>1931500
как человек с таким же расстройством могу сказать, что все ок
это как с нервным тиком - постарайся забыть, что он есть и перестань пропуск запятой сливать на диагноз
и все должно быть нормально
363 1931547
>>1931500
тут и не такие дауны работают
364 1931611
Всем, кто тут страдает синдромом самозванца: проведите несколько собесов, и как рукой снимет.
365 1931775
>>1931393
полагаю только впф
image.png18 Кб, 228x762
366 1931794
Сори за зелёный вопрос.
Возможно ли в .Net сделать структуру как для каждого скрипта на Питоне(пик), или для каждой программы надо делать новый проект(мейн один рабочий на проект)?
367 1931961
>>1926948
Я б с радостью, дружочек-пирожочек, но я до лета перекинулся на дроч егэ.

Нет, я не школьник, мне 30. Ага..

Взял 5 доп. предметов для сдачи на егэ. Хочется сдать хотя бы 2 + рус.мат. Я ебанутый немного,- жить не хочется ну, чуть больше чем обычно уже спустя неделю подготовки. Помогает, разве что, что мне кроме этого и работы ничего делать не нужно т.к друзей нет, растительности нет, населена фаготами.

Но будет интересно посмотреть чего ты достигнешь. Напишу через год, постараюсь не забыть.
368 1931967
>>1931961
Ладно, удачи!:3
369 1931969
>>1931521
>>1931530
Суть в том, что там такая же среда выполнения как и у жабы.
.png33 Кб, 534x660
370 1932001
Анон, вот смотри, есть два класса, которые почти одинаковы, но у них есть различия.
Допустим, вот пример на пике это как раз та хуйня о которой я говорю.
Так вот, допустим мне хочется чтобы в наследниках я мог получить явный тип, а не интерфейc. При этом мне не нравится вот эта вот залупистика с дженериками.
Есть ли какой-то более изящный способ получить подобное поведение?

Может быть тут непонятно. Но вот реальный пример. У меня есть TCP-сервер на сокетах. На одном порту слушаются и обрабатываются одни сообщения, на другом - другие, на третьем третьи и т.д.. Я хочу иметь возможность получить явно тот тип сообщения и не париться с приведением типа. Потому я TCP серверу ебанул в параметрах женерика - тип сообщений, чтобы можно было прокинуть нужный парсер и обработчик. Но эти дженерики оч сильно раздувают код, оч тяжело читать, оч тяжело потом что-то изменять, мне хочется от них отказаться, а как - хз. Пока что я думаю о том, чтобы вообще просто уйти от наследования и просто сделать два несколько классов, которые просто повторяют частично логику друг друга, да будет копипаст, но будет и легче с этим вот работать, если что-то поменяется, я буду смогу меньше костылей использовать, потому что сейчас иногда выходят жуткие способы обойти наследование. Как второй вариант - я думаю о том, чтобы этот базовый класс уже превратить в сорт оф компонент и просто его передавать в конструкторе дочерним, а общение с ним на события повесить.
371 1932006
>>1932001
Что за говно написано? Пиши нормально блеать!
проперти -> private readonly field

По вопросу - не нравятся generic, не пиши.

По ООП:
RT rt = new AT();
Поля всегда берутся из rt, что имеется- определяет rt, а что исполняется AT.
372 1932012
Посмотрел исходники .net.
Объясните, зачем в рамках метода там часто делается что-то типа
{
TypeName foo = m_bar;
foo.Buzz();
}
Почем просто это m_bar не использовать? И должен ли я делать так в своем коде?
373 1932013
>>1931175
Да. Кто пишет на шарпах, тот знает свой компилятор.
Специально написал для того поехавшего

>на вскидку


что бы отсечь
374 1932015
Можно на ваших шарпах как-то в сишном стиле собирать код? Типа вот у меня файлики лежат, вот в той папочке - либы, я указал, слинковал и получил exe один, вместо этой кучи dll
375 1932017
>>1931794
АРРРЯРЯ мне не даёт покоя эта хуйня, не игнорите мой тупой вопрос. Я чисто из-за моего бзика пока порядка не будет с структурой не могу начать.
376 1932026
>>1930912
Вот примерно про это я писал:

import pyodbc

driver = 'SQL Server'
server = 'xxx.xxx.xxx.xxx'
database = 'Peoples'
uid = 'Кулхацкер'
pwd = 'pwd'

cnxn = pyodbc.connect('DRIVER=' + driver + ';SERVER=' + server + ';DATABASE=' + database + ';UID=' + uid + ';PWD=' + pwd)
cursor = cnxn.cursor()
cursor.execute("UPDATE Freaks set Huy = 'Pizda' WHERE Gender = Transgender")
cnxn.commit()
377 1932027
>>1932026

>'Transgender'


fast fix
378 1932028
>>1930912
На самом деле я по началу в питоне охуевал от отсутствия жесткой типизации. Просто голова кругом идет. Но потом привыкаешь. Наверное мозг разглаживается лол
379 1932029
>>1930912
>>1932026
Т.е. понимаешь, да?
На питоне я ничего даже не написал. Просто настройки и собственно SQL запрос. У меня первая мысль была - а что тут учить то надо, какие библы импортировать штоле?

А шарпы с джавой я сравниваю чисто по синтаксису. Ну одно и то же ведь. Только на джаве я бы для этого неебическую портянку писал и еще оно бы не работало с полоборота, ебался бы два дня.
380 1932057
Сап аноны, у меня такая проблемка. Я использую в с# базы данных,
мне нужно вывести таблицу в datagridview с определенным значением, но проблема в том , что если переменная в sql запросе написана на английском, то он ее находит и выводит без проблем , а если на русском, но он нихуя не выводит, кто знает как это пофиксить?
381 1932065
>>1932017
>>1931794

Можно всё сделать через операции: прокидывать в args[] Main название операции и главу, например, Chapter_1, Exercize_8 кидаешь, все упражнения у тебя наследуются от абстрактного BaseExercize, где у тебя есть абстрактный (или виртуальный, тут как хочешь) метод Process

Отбираешь нужный класс
var operation =
Assembly.GetExecutingAssembly().GetTypes().Where(t => t.Name == args[1] && t.Namespace.Contains(args[0]) && !t.IsAbstract && t.IsSubclassOf(typeOf(BaseExercize))).Select(i => (BaseExercize)Activator.CreateInstance(i)).FirstOfDefault();

operation?.Process();

Всё это получается через рефлексию, хреново оптимизированно, но можно обойтись без кучи проектов
Ну и естественно аргументы - имя класса и неймспейс (или его часть)
382 1932066
>>1932012
Если у м_бар тип отличный от тайпнейм и базз виртуальный метод, то вызов без присваивания тайпнейм переменной будет отличаться
383 1932101
>>1932026

>сырой скл


>2к20


Ты сейчас серьезно? В шарпе конечно немножко больше надо ебаться - обьявить свои классы для модели, сделать свой контекст и указать какие в нем таблицы, но это же делается чисто для того, чтобы ты потом вместо

> UPDATE Freaks set Huy = 'Pizda' WHERE Gender = Transgender


Написал

>foreach (var freak in dbcontext.freaks.Where(t => gender == Transgender))


> freak.huy = "Pizda";


>database.SaveChanges()


И при этом шарп за тебя еще базу данных со всей моделлю, если ее нет, создаст. И при этом будет еще следить за изменением всех моделей, чтобы ты в одну консольную комманду мог синхронизировать бд модель с шарп моделью. И да, в 2к20 на шарпе даже скл можно не знать, ведь запросы пишутся на шарпе и юзают шарповые типы.
Но настройка это одноразовая, при создании проекта. В самом же коде тебе этот контекст даже создавать не нужно - просто передай его как аргумент в конструктор твоего класса-сервиса, и шарп сам создаст контекст.

А твой вариант подойдет разве что для одноразового скрипта к существующей базе данных. Но никак не к основному приложению, для которого создается бд.
Bia3.png355 Кб, 980x756
Сравнение чисел из массива Husk3y 384 1932173
Вкатился в СиРешётка и решил проверить смогу ли сделать самый простой квест.
Условно есть параметр "удача на побег", обозначен массивом int[] luck = { 0, 0, 0, 5, 6 };, который в процессе игры может меняться каким либо предметом, повышая параметр.
Сам он работает так - бросается игровая кость АКА рандомное число переменной dice от 1 до 6, если значение из массива равно значению на игральной кости, то игрок сбегает.
Проблема: не могу понять как сравнить значения в массиве со значением переменной.
Пробовал через for (int i = 0; i < length; i++); { if (dice == luck; ... }, но значение i всегда было равно 0.
Сейчас сделал через сравнение каждой отдельной переменной в массиве - if (dice == luck [0] || dice == luck [1] || ... || dice == luck[5])
, но есть же по-любому способ компактнее это сделать
385 1932191
>>1932101
>>1932173
using System.Linq;

if (luck.Contains(dice)) {//...}
386 1932195
>>1932191

>>>1932101


Промахнулся
387 1932291
>>1932191 Спасибо, о Великий

>>1932195 АХХАХАХАХАХАХ
388 1932321
>>1910324 (OP)
Please help.
Если ли какой нибудь способ описать группу элементов на xaml, а потом в том же ксамле вставлять что-то типа <myGroup></myGroup> несколько раз
389 1932326
>>1932173

>for (int i = 0; i < length; i++); { if (dice == luck; ... }


Точка с запятой не нужна, т.к. это означает, что ты закончил описание цикла. То есть следующий блок кода в { } расценивается как отдельный блок со своей зоной видимости и не более.
В твоём случаи, можно сделать либо так:
for (int i = 0; i <luck.length; i++){
if(luck == dice){
//побег
}
}
Либо можно воспользоваться этим https://docs.microsoft.com/ru-ru/dotnet/api/system.array.exists?view=net-5.0

Но первый это самый очевидный способ и он не содержит в себе никаких недостатков, помимо того, что занимает 5 строки кода, место 2 или 1
390 1932329
>>1930739
Это называется исполняемым файлом. В случаи C# это сборка, которая без .net не запустится. А .net нужен как раз потому, что там интерпретируемый код.
391 1932349
Есть ли адекватный способ передать в partial свойство с метаданными? Поясню, например через Html.EditorFor(model=>stringProperty) в темплейте я могу использовать asp-for тэги, и все отобразится с учетом атрибутов повешенных на проперти во вьюмодели. Но если я такое сделаю с <partial model="stringProperty", то меня пошлют нахрен.
392 1932355
>>1932349
Отбой, надо сначала доки посмотреть, а потом уже на двач идти.
393 1932382
394 1932388
>>1932355
>>1932349
А нет, хоть используя <partial for="stringProperty"...> оно меня и не шлет нахер, но Display(Name="Foo") на проперти оно не учитывает.
Впизду это ваше программирование
395 1932418
Кто волокет в TCP и портах подскажите. Вот слушаю м пишу я сокетом в порт. Порт то мне для своей программы как выбрать? Тупой из головы любой? Но ведь он может быть занят уже другим приложением каким то, как тут быть, чот не одупляю совсем
396 1932435
>>1932418
Ну так тебе порт надо выбрать для сервера, на который будут стучаться клиенты. А сервер тебе подконтролен. Но очевидно не стоит выбирать порты, которые используют популярные приложения и системные (<1024).
397 1932446
>>1932329
О как.
Значит .net это, грубо, то же самое, что и джавовский jdk, а равно и сам собственно пайтон? Я сейчас в том смысле, что сначала на чужой комп надо поставить что то, что бы твоё творение там работало?
398 1932449
399 1932453
>>1932446
В коре можно компилировать в self-contained под конкретную платформу и тогда прога будет включать в себя и рантайм и сможет запускаться безо всего.
400 1932486
>>1932435

>А сервер тебе подконтролен


Но, на нем же дохуя всякого барахла еще крутится, мне у каждой проги гуглить, какой порт она юзает? А если я написал охуенное приложение, которое все покупают и используют? Тогда ведь их сервера мне не подконтрольны.
401 1932521
402 1932568
>>1932486

>на нем же дохуя всякого барахла еще крутится


Ну вбей в гугл 'check if port free %OS%' и проверь свободен прт или занят. Плюс можно на вики посмотреть
https://ru.wikipedia.org/wiki/Список_портов_TCP_и_UDP

>А если я написал охуенное приложение, которое все покупают и используют?


Подай заявку в IANA https://www.iana.org/form/ports-services, и другие смогут нагуглить что этот порт использует hellowrd Пупкина.

>Тогда ведь их сервера мне не подконтрольны.


Но тогда и айпи тебе не подконтрольны, а значит надо клиенту где-то указывать IP, тогда там можно и порт попросить указать.
403 1932577
>>1932568

>а значит надо клиенту где-то указывать IP, тогда там можно и порт попросить указать.


Да, и вот потом клиенты будут в тп обрывать телефоны, какой порт писать. Почему 555 не работает, ряяяя.
Вот в промышленности проще с этим. 502 - modbus tcp и все. Хоть и можно порт указывать в программах, но никто этого не делает, есть уже выделенный
404 1932589
>>1932577

>Да, и вот потом клиенты будут в тп обрывать телефоны, какой порт писать. Почему 555 не работает, ряяяя.


Так это проеб админа, если у него серв слушает 15000 порт, а клиентам сказал подключаться на 17000. Тут уж какой не выберешь порт можно поломать. А вдруг ты выберешь порт ххх, а он у кого-то фаерволом заблочен? В общем ты пытаешься решить проблему, которой нет.
405 1932638
>>1932521
Но тогда получается, что существует только один высокоуровневый православный язык - дважды крест
406 1932646
>>1932638
Поучу ка я пока алгоритмы с паттернами по будням. И какой-нибудь godot по выходным. Не буду привязываться к синтаксисам пока, авось, кто то и захватит мир окончательно и бесповоротно. Плюсы учить нунахуй
407 1932690
>>1932638
Если ты про компилируемые, то как минимум go и rust ещё
408 1933354
Хочу начать изучение c#, но столкнулся с проблемой. Тут есть версии же, с какой начать изучение? А если будет легаси год, то придётся и старые версии знать? Может кто пояснить за версии. И вообще, как язык сам по себе: трудный, лёгкий? Сажусь за него онли ради бабок, т.к. на заводике нужен шарпист + ms sql разраб. Оклад ахуенный для моей мухосрани.
409 1933391
>>1933354

> шарпист + ms sql разраб


Не переживай, тебя всё равно не возьмут.
410 1933392
>>1933391
это схуя ли
411 1933394
>>1933392
Кодить СУБД - это помимо шарпа нужно СУБД матчасть знать. Туда ты так легко не вкатишься. Это тебе не формошлёпство на ВПФ.
412 1933404
>>1933394
Так его же не на разработку аналоговнетной СУБД берут, а хранимки на 2.5 select писать
413 1933409
>>1933394
эта вакансия на производственном предприятии - на заводе)) ты думаешь, там будет овер ебейшая разработка блять?
414 1933420
>>1933354

>Тут есть версии же, с какой начать изучение?


Спроси у заводчан. Ты же, наверно, не единственный там программист (а если единственный - сочувствую). Какую версию дадут - такую и изучай. Если ты в свободном полете, то изучай сразу .NET 5.
На самом деле, с фреймворка на кор и обратно можно пересесть за неделю-две, они во многом похожи. А для дроча всяких циклов-ветвлений в процессе обучения разницы между ними вообще нет.

>И вообще, как язык сам по себе: трудный, лёгкий?


Примерно средний. Местами может быть не очень понятным (например, со ссылочностью типов), но когда начинаешь о языке иметь представление - он становится охуенно удобным и понятным.
Алсо, если нет опыта программирования - не рассчитывай, что даже через месяц интенсивной учебы сможешь писать хороший код. По-нормальному нужно уделять на учебу пару месяцев, и желательно еще ментора иметь хотя бы на работе, но я хз, как у тебя с этим дела обстоят.
415 1933437
>>1933409

> на заводе)) ты думаешь, там будет овер ебейшая разработка блять?


Ну сходи. Посмотрим как быстро скобачьки с твоей рожи слезут.
416 1933473
>>1933354

> с какой начать изучение?


С второй. Раз уж так о легаси волнуешься.
А вообще с любой на самом деле, разница там не так велика.

> А если будет легаси год, то придётся и старые версии знать?


Что это значит? Версии языка отличаются в основном тем что тут мы можем написать array[1..5] а там - не можем, тут у нас есть рекорды, а там - нету.

> Может кто пояснить за версии


https://docs.microsoft.com/ru-ru/dotnet/csharp/whats-new/csharp-version-history

> И вообще, как язык сам по себе: трудный, лёгкий?


Если говорить о том, чтобы сесть и что-то работающее написать - легкий(я сравниваю с сишечкой и асмом, которые были в универе). Если начать копаться в кишочках, то любой язык - сложный.
417 1933486
>>1933437
Лол, ты серьезно думаешь, что на заводе, где ВЕДУЩИЙ ПРОГРАММИСТ, обычно получает что-то в районе 60к-80к - какой-то адовый отбор и дроч?
Я вот когда в вузе диплом писал, как раз проходил практику на заводе, так вот, за время практики на всего пришли 5 человек, 4 из которых впервые вообще ИДЕ видели и по образованию эт были прикладные математики, ну и хули, дали им книжку, интернет - за месяц изучите, через месяц мы вам придумаем какую-нибудь работу, справитесь - возьмем на постоянку. Никого, блядь, не отсеяли, даже тех кто не справился с элементарными задачками - послали в сисадмины, кек.
418 1933499
>>1933420

>Спроси у заводчан.


Я там ещё не работаю. Я пока планирую изучить C# потому что он там требуется, C/C++ как плюс, но не обязательно вообще. Просто знаю что там требуется такой чел, а в моей мухосрани людей, знающих, что такое C# максимально минимальное.
>>1933437

>Посмотрим как быстро скобачьки с твоей рожи слезут


А ты чего такой обиженный то? Опять дропнули на собеседовании из-за того, что ты не можешь жопку свою продать? Ну не расстраивайся, как через полгодика-год обучения шарпа, устроюсь на заводик, напишу тебе, будешь стажироваться у меня под столом.
419 1933504
>>1933486
Работал на крупном уральском медзаводике, чтобы твое резюме на разраба просто посмотрели нужно иметь профильную вышку и от двух лет опыта работы.
420 1933511
>>1933499

>через полгодика-год обучения шарпа, устроюсь на заводик, напишу тебе, будешь стажироваться у меня под столом



классные у тебя розовые очки
мимо чел
421 1933519
>>1933511
Это не у меня розовые очки. Это у тебя и таких, как ты - серые. Вы думаете, что надо хуеву гору времени потратить, чтобы найти нормальную работу.
На своём опыте убедился, что сами знания в программировании решают процентов на 25 при трудоустройстве. Остальное это наглость, уверенность, чувство юмора и умение найти и решить то, чего ты не знаешь и не понимаешь и самое главное понять, как это работает и запомнить. Всё.
422 1933540
>>1933519

>наглость, уверенность, чувство юмора


блин, такие каждый день приходят
а вот

>сами знания в программировании


не дождёшься

нахер не нужен чел, который "умеет найти"
есть задачи. и решать их надо вот сейчас.
423 1933566
>>1933519

>Вы думаете, что надо хуеву гору времени потратить, чтобы найти нормальную работу.


Для большинства людей так и есть. Каждый знает хотя бы одного человека, который с шутками-прибаутками, не зная совершенно нихуя, спокойно устраивается куда захочет. Проблема в том, что эта стратегия работает только у него, а всем остальным шутки на собесах ничего не дают. Там, где взяли одного шутника - завалили сотню не менее компетентных людей, которые не наглость и уверенность поможет, а только бог.
мимо
16110797950370.jpg164 Кб, 1200x675
424 1933657
Сап шарп. Есть один екзешник на винформах, я его декомпильнул dotpeekером, но сами формы в проекте пустые, а в исходниках весь код не в дизайнере формы, а в самом конструкторе что то типа form.Add(button1).
Есть ли декомпиляторы которые сразу могут накидать дизайнер формы или какие-то инструменты скрипты которые могут это пофиксить?
425 1933967
>>1933519
Молодец, первый этап с рекрутёршей пройдешь. Завалят на техсобесе и все по новой.
426 1934258
>>1933519
Кстати у нас например если кандидат дохрена либиться таких даже не рассматривают, улыбнуться им в ответ и скажут мол "мы перезвоним", у хорошо программиста всегда ощущается проффДрифт на характере, самые охуенные програмисты нихуя не ладят с людьми, черты программиста отражаются на харатере и это уж точно не "умение шуточки шутить и либиться на все зубы" хочешь шуточки свои ебаные шутить пиздюй в бугалтерию к тете Любе
427 1934466
Суууукааа.
Какой же ебанутый сатанист пидарас придумал ef дб контексты просто пиздец я ебал (ловлю дб лок при попытке создать контекст в контексте, как его обойти не ебу, т.к. у меня ебанутый код (но автор все равно гомосексуалист)).
428 1934487
Посоветуйте не скучную WPF либу для фронта и дефолтных элементов.
Material design?
429 1934664
>>1934487
Adonis-UI?
430 1934685
>>1934466
Покажи что ты и где пытаешься сделать. Нихуя непонятно.
Да и вообще, что в ЕФ-то может быть сложного? Прописал сеты, прописал как мапить. Все, пользуйся.
431 1934718
public List<IncomeModel> PartsOfMhiAmount { get; }
public MhiPerIncome()
{
Remainder = 0;
IncomeAmount = 0;
PartsOfMhiAmount = new List<IncomeModel>();
}

Почему последняя строка нормально работает в VS 2015, а в старых версиях выдается ошибку "PartsOfMhiAmount is read-only" ?
432 1934906
>>1934718
дэк у тебя только get; стоит, он только для чтения то и доступен
433 1934966
Поясните, я ничего не понимаю - есть WPF, я ставлю датагрид, делаю байндинг на дататейбл. И я хочу сделать чтобы можно было удалять выделенную строку или колонку. Как это сделать?
Я могу забайндить СелектедАйтем, потом найти его строку или колонку в дататейбле, а потом удалить их. Но это хуйня какая-то, совсем неэффективно, особенно если таблица большая. Если бы я мог сделать байндинг на номер колонки и строки например - все было бы намного проще, но я могу сделать бацндинг только на номер колонки - а на номер строки никак.
434 1935055
>>1932013
Ты из 3 букв 3 написал неправильно, чтоб кого-то там проверить?
Ты ебнутый
435 1935057
>>1932101
Ты тралишь? После таких как ты все говорят, что ЕФ тормозит
436 1935145
>>1934906
Так в конструкторе как раз вроде можно записывать значение в переменную для чтения
image.png657 Кб, 1280x720
437 1935258
Почему статик плох если он занимает меньше места в памяти и времени процессора чем не статические члены и методы? почему не делать статиком все что можно?
438 1935279
>>1935258
Он не занимает меньше места, более того, если ты не всегда используешь статичный класс, то сделав его не статичным ты сэкономишь оперативную память.

>почему не делать статиком все что можно?


А если тебе нужно n экземпляров каждый из которых будет хранить своё состояние?
439 1935286
>>1935279

>Он не занимает меньше места


Он занимает столько же но не повторяется в отличии от не статиков

>А если тебе нужно n экземпляров каждый из которых будет хранить своё состояние?


это случай когда можно не использовать статический класс, ко всех
440 1935318
>>1935286

>Он занимает столько же но не повторяется в отличии от не статиков



Ну вот я тебе и привел пример в котором твой статик будет занимать больше места. Допустим у тебя в программе есть условие и выполняется оно раз в сутки, после выполнения идёт вызов метода класса. Ты этот класс сделал статичным, т. е. он у тебя занимает n места на протяжении работы программы. Кто-то его сделал не статичным и он у него занимает n места только один раз за сутки.
Теперь представь, что таких классов нужно не 1, а несколько тысяч. Если сделать их всех статичными, то тебе может не хватить места для того чтобы программа работала, при этом во втором случае достаточно распределить ресурсы оптимальным образом для того чтобы всё работало. И если даже тебе хватит места для хранения тысячи статичных классов, то все у тебя будут спрашивать, почему твой вариант с статичными классами постоянно жрёт несколько гигов оперативной памяти, а другой вариант без статичных классов потребляет в разы меньше в любой промежуток времени.
441 1935349
>>1910324 (OP)
Сап програмач. Только что не перезвонили после тестового. Сказали что по функционалу всё ОК, а арохитектура как у уебана.
Где можно щаблон проекта ASP,NET MVC Core красивый найти. Ну и что по архитектуре почитать?
442 1935357
>>1935349
По архитектуре любая книга Роберта Мартина. По шаблонам - гитхаб
443 1935361
>>1935357

>По шаблонам - гитхаб


Не посоветуешь годный какой? Не все же подряд перебирать.
444 1935372
>>1935357
И еще вопрос, у Мартина Песнь льда и пламени Чистый код почитать?
445 1935373
>>1935361
Лучший способ попросить ьу них ознакомиться с исходным кодом, потому что все зависити от того как ПРОЕКТИРУЮТ они, у меня часто бывало что прихожу мне говорили архитектура говно, делаю как у нас, начала делать, прошло время, прихожу к другим, то же самое, архитектура говно делай как у нас, у всех свои мерки, свои конвенции, поэтому изучи их код и подстройся к их конвенциям
446 1935855
>>1935258
Даже если бы статик в твоей программе давал буст по памяти/времени (которого обычно в лучшем случае нет, в худшем - от статика идет убыток), то ты бы все равно его не использовал, потому что если это так - то у тебя требования к производительности настолько дикие и код настолько низкоуровневый, что ты должен не статики хуячить, а unmanaged код.
А плох статик потому, что он с солидом не совместим от слова "совсем" и поощряет написание адского быдлокода, который невозможно ни поддерживать, ни расширять. Используй правильные скоупы в IoC-контейнере и не выебывайся.
447 1935874
>>1935373
Два чаю. В каждой конторе считают свой подход к проектированию самым правильным, остальные пишут говнокод
448 1935980
>>1935372
>>1935357
Таки что из Мартина взять?
449 1935984
>>1935980
Чистый код подойдет, есть еще принципы и паттерны гибкой разработки там примеры кода прям на шарпе.
450 1936360
>>1935855
А чем плох низкоуровневый код, ведь если обработать логику кеширования и удаление не нужных статиков тогда это будет буст производительности на пордяки по сравнению с солидным кодом
image.png63 Кб, 1452x663
451 1936383
Я все правильно сделал?
452 1936392
>>1935145
ебани private set и не еби мозг
453 1936395
>>1936360

>А чем плох низкоуровневый код


Ничем. Просто C# - язык высокоуровневый и применяется чаще всего именно для высокоуровневых задач. И если ты пишешь условное приложение для десктопа, оптимизируя каждый бит в памяти - ты хуйней занимаешься вместо разработки своего приложения. Реальность такова, что требуются фичи и багфиксы, а не оптимизация всего подряд.
Конечно, есть задачи, когда оптимизация кровь из носу как нужна, но даже там не пишут все через статики, ибо:

>удаление не нужных статиков


Ты как себе это представляешь? Статики по определению не могут наследовать IDisposable и потому статический инстанс не удаляется ни GC, ни руками. Про кеширование тоже непонятно - статик у тебя висит всю программу, от запуска до выхода. Че ты там кешировать собрался?
Короче, прочитай, что такое статики вообще, и вопросы отпадут. И бога ради, не превращай код в говнину лишними статиками. Если тебя волнуют вопросы оптимизации - всегда есть unmanaged код, который C# поддерживает.
454 1936400
>>1936395

>удаление не нужных статиков


просто удаляешь не нужные данные из класса и оставлфяешь статик пустым, все, он не занимает места, практически.

>требуются фичи и багфиксы


зачем фиксить если можно писать быстрый код без багов?

>не превращай код в говнину лишними статиками


какая разница что код не читабелен и выглядит как спагетии, главное что бы все работало быстро и что бы ты мог в этом ориентироваться, а если надо будет что-то дописивать, ну так пусть заплатят мне денешку а не будут искать какого-то говноджуна или прости господа индуса потмоу что они тупо не смогут понять что там написано
455 1936406
>>1915627
ересь, ты про rest api вообще слышал?
456 1936416
>>1936400

>просто удаляешь не нужные данные из класса и оставлфяешь статик пустым, все, он не занимает места, практически.


Ебнуться можно. Ты вообще представление о том, как в C# работает память, имеешь?

>зачем фиксить если можно писать быстрый код без багов?


Напиши 10к строк статиками, посмотрим, как мало у тебя будет багов.

>какая разница что код не читабелен и выглядит как спагетии


А такая, что если тебе понадобится кому-то код показать или посмотреть его самому спустя год - ты знатно охуеешь.

>главное что бы все работало быстро


Опять же, в лучше случае разницы с человеческим подходом не будет, в худшем (и самом распространенном) случае статики производительность отнимут.

>а не будут искать какого-то говноджуна или прости господа индуса


Ты случайно не помогал писать программу для голосования в Москве? А то звучишь как бюджетник с соответствующей квалификацией.

Заебал, короче. Если тебе реально интересно за производительность - читай Рихтера и MSDN, спойлер: статиков там нет. Если тебе хочется просто набыдлокодить максимально мерзкий код - вперед и с песней, сам же говна поешь за обе щеки из-за этого.
457 1936424
>>1936416

>Ебнуться можно. Ты вообще представление о том, как в C# работает память, имеешь?


ответь за вброс

все что ты написал не валидно и я уже на это отвечал
458 1936487
>>1936424
я мимокрок.
конечно можно обнулить поля в статик классе, только это будет уже говнокод.

даже в какой то книжке по чистому коду рекомендуется для задачи создать граф объектов и потом новый граф для нового случая, а старый позволить скушать GC, а не делать методы типа Init(newState) пытаясь сэкономить на "ну у нас же все уже есть, только немного подменить новыми данными".

Лично у меня такие статитки допустимы только в разном кешировании при кодогенерации, правда обнулять их нет смысла, ведь они кеш
459 1936497
>>1936487
а в чем выражается степень "говнокодства"? если это работает быстрее чем создание новых не статических екземпляров разве это можно считать говнокодом?
460 1936512
>>1936497
В возможном нарушении инвариантности класса, что нежелательное явление.

Конечно может работать без побочных эффектов - мы ведь знаем про "чего где когда вызываем обнуляем". Но и метод на 10к строк может работать идеаьно - однако это говнокод.

Код должен стараться быть стабильным по максимуму не заставляя тебя помнить про возможные побочки
461 1936540
Есть коллекция, тип - абстрактный класс. В коллекцию пихаю экземпляры классов-наследников. Сериализую в жсон.
Но десериализовать Newtonsoft Json не хочет по понятным причинам - у него нет сведений о том, куда запихивать элементы этой коллекции, а в абстрактный класс нельзя.
Есть два стула. 1) создать конвертер, который указывает каждому экземпляру его тип
2) использовать не List, a ArrayLIst.
Что выбрать?
image.png268 Кб, 817x382
462 1936546
>>1936512
что лучше, код который заставляет тебя писать документацию и описивать функционал но который работает быстрее и который требует от клиента что бы с ним работал только ты, или пикрил который работает медленно, который может написать даже дедушка с деменцией но зато все согласовано с современними подходами к программированию?
463 1936549
>>1936540
ну обычно если десериализатор видит IList<>, то он создаст List или что там у него задумано под этот случай
потому лучше конкретные типы в месте десериализации.
Вдруг сменишь жсон либу и будет ай
а конвертер для такого случая геморно писать
464 1936553
>>1936546

>но который работает быстрее


насколько быстрее? На 1% в лучшем случае? Насколько это оправдано?
Так что очевидно второе. Это и быстрее и в разы надежнее. И даже если вдруг нужно будет оптимизировать, то в 99.99999% случаев это будут не статики, которые не дадут ни капли в оптимизацию
465 1936556
>>1936546

> и который требует от клиента что бы с ним работал только ты


Вот это самое главное
466 1936558
>>1936553
для пользователя речь идет не о процентах, а о секундах, потому что там ответ на 1 процент быстрее, там один, там на процент быстрее, и в итоге это выливается в ответ конечному пользователю на милисекунды или даже для требовательных проектов и на секунды быстрее, про такие веди как тепловые и енергетические потери я вообще молчу, и это если предположить что реально на один процент, но в реальности будет от 0 до нескольких процентов быстрее, иногда и на порядок процетнов быстрее
467 1936559
>>1936556
Это тоже конечно очень важный фактор
468 1936564
>>1936558
ты же даже не знаешь как сборка мусора работает, как ты вообще можешь судить о производительности, шиз ебучий
469 1936566
>>1936558
обычно это выливается в конечному пользователю в "ваще не вижу разницы" (потому что статик vs не-статик никогда не было hotpath) и в колоссальную разницу в сопровождении проекта для любителя преждевременных оптимизаций и экономий на спичках.

Я не знаю какие нужно иметь кривые руки, чтобы перевод с инстансов на статики дал выигрыш в секунды. Тут 100% дело будет в другом, нежели в этом.
470 1936573
>>1936546

>пикрил


>браузер



Но ведь на твоём пикриле не браузер, а обычный говнокод который выводит в консоль текстовое представление страницы находящейся по адресу http://data.pr4e.org/page1.htm

Это хорошо отражает суть тех кто пишет на петухоне - они даже не понимают что конкретно делает их код.
471 1936574
>>1936566
пошли маняманевры

>"ваще не вижу разницы"


>какие нужно иметь кривые руки


> Тут 100% дело будет в другом, нежели в этом.



а

>колоссальную разницу в сопровождении проекта


ага, меньшие потери на харвере и большие зарплаты програмистам, вот жуть да?
472 1936586
>>1936573
Я это кинул именно как пример СОЛИД ПИТУХОВ, потому что этот код стандартам "высокоуровневых програмистов" верх совершенства, понаподключал библиотек, сделал инициализации, написал несколько рандомных кодов и бегут на борду мерятся у кого меньше строк получилось при это понятие не имея что там твориться внутри этих библиотек
473 1936589
>>1936586
Ты не понимаешь что такое СОЛИД.
474 1936597
>>1936589
я понимаю что такое солид, это солид питухи не понимают что такое солид, для них если "многа кода" ТО ЭТО СРАЗУ ГОВНОКОД
475 1936624
>>1936574

>пошли маняманевры


какие еще маняманевры

я задам прямой вопрос
ЗА СЧЕТ ЧЕГО БУДЕТ ВЫИГРЫШ В СТАТИКАХ?
GC можешь даже не упоминать - сразу разобью в хлам. Скорость поиска по таблице методов? - ну такое бывает с виртуальными с методами (небольшая разница).
Проблема поиска методов при дженериках (о которой знают вообще единицы) в данном случае одинакова для статиков и нет

так в чем выгода то? где ты секунду набираешь?

>меньшие потери на харвере


основную нагрузку делает выполняемый код, который что-то делает неоптимально (алгоритм не тот) или не очень эффективно (не продумали кеширование, оптимизацию выполнения и так далее)

и оптимизация пути выполнения дает много

но это не про статики
476 1936645
>>1936597
Ну так на твоём пике с браузером и есть говнокод. А солид как раз не обязательно приводит к уменьшению кода, а чаще наоборот, потому что его предназначение это облегчение поддержки, расширения и использования данного кода, а не сокращения количество написанных строк.
477 1936682
>>1936624
Тем что не надо каждый раз создавать новые екземпляры класса, ждать пока система зарезервирует место в памяти для них, ждать конструкторов и тп, ты заполняешь существуюзий и уже аллоцированый класс данними, и так же быстро их читаешь, разница конечно не секунда, но по ходу работы программы большой проект может обращаться к классам сотни и тысячи раз, и какждый раз будет ждать ответа пока не пойдет дальше, все эти потери будут сумироваться и в итоге выльются в ощутимие милисекунды,

>основную нагрузку делает выполняемый код, который что-то делает неоптимально


и что? нужно сделать алгоритм оптимальный и дальше заниматься архитектурними и системними оптимизациями, использовать низкоуровневый код где это возможно работать непосредственно с устройствами, а не использовать какие-либо универсальние библиотеки с кучей заплаток
478 1936690
>>1936682

>что не надо каждый раз создавать новые екземпляры класса


>ты заполняешь существуюзий и уже аллоцированый класс данними, и так же быстро их читаешь


Тут есть такая тонкость. Статические классы нельзя инстанцировать. Что ты будешь делать если тебе нужно будет 2 экземпляра твоего статического класса с разным внутренним содержимым?
А если у тебя статики только там где "гарантированно не нужно 2 инстанса" то чем такой статик отличается от такого же "создали 1 инстанс и юзаем получая все плюшки ООП и DI до кучи)????

Ну а так то - Если по какой то причине аллокация создает проблемы, то вводим кеширование ака "пул объектов". Но это уже оффтоп, потому что статик класс не может заменить то, где нужно 2+ инстансов единовременно.

>нужно сделать алгоритм оптимальный... где это возможно работать непосредственно с устройствами


так а статики тут причем вообще? Я вот активно использую Span, которые дают выигрыш, а вот статики нет - от них толку нет
.jpg10 Кб, 325x320
479 1936693
>>1936682

>ты заполняешь существуюзий и уже аллоцированый класс данними


DI аллоцирует класс в начале программы и заполняет его данными по мере использования, если че. Прям как статики
мимо
480 1936713
>>1936690
Изначально я просто спросил почему народ не использует статики там где можно, и не пойми меня не правильно я не считаю статик что это решение всех проблем,я просто пишу что по возможности код должен работать быстро настолько это возможно а не быть читабельным настолько что бы тебя мог заменить школьник который учил программирование на ютубчике, из за как мне кажется не верного подхода к программированию производительность кода постоянно уменьшается, и в сраном 2021 году на 16 ядерном проце жду 5-10 секунд пока откроектся ебучая фотография на этой ебучей десятке, я понимаю что расширения фотографий уже не то что было 10 лет назад, и все дела, но бля
481 1936718
>>1936713
Не бомби чел, сначала Гейтс должен проверить нет ли часом на пикче цп, а потом только тебе позволят самому посмотреть
482 1936739
>>1936713

>спросил почему народ не использует статики там где можно,


очевидно потому что статики ограничивают свободу. их нельзя создать 2 экземпляра, нельзя интерфейсы, нельзя нормально очистить просто забыв о них, нельзя замокать в тестах, нельзя заменить на другую реализацию
по факту "все статики" это процедурный подход в противовес которому и был рожден ООП со всеми его плюшками.

> и в сраном 2021 году на 16 ядерном проце жду


не буду спорить. сам в шоке от этого. потому что пишут "(матерится ж низзя) и в продакшен" для простых решений берут мегалибы. Только дело не в статиках же, а в засилье говнокодеров которым важно быстро написать и продать, и "пусть пользователь покупает новый девайс".
483 1936747
>>1936739

>очевидно потому что статики ограничивают свободу


Ответ который я ждал

>потому что пишут "(матерится ж низзя) и в продакшен


сейм
484 1937039
Платиновые вопросы:
1) Есть один проект который работает на локальной базе .db sqlite+ef. Могу ли я как-то на линуксе захостить саму базу, подключить к ней "клиент" и не ловить при этом database locked?
2) Какой сейчас на торрентах лучший обфускатор?
485 1937046
>>1937039
1) Да
2) Реактор
486 1937068
Зачем учить C#, если один ху*й потом JS дрочить придется?
487 1937165
>>1936383
Троллишь?
Во-первых. Нахуя тебе вложенные классы?
Во-вторых. Че ты там за хуйню наделал, что коструктор может вернуть null, Ты ебанутый?
В-третьих. Нахуя тебе массив как свойство? Вот серьезно.
В-четертых. За строку длиннее 100-120 символов - пиздят.
488 1937177
>>1935258

> почему не делать статиком все что можно?


Потому что такой код трудно расширять и поддерживать. При этом ты не можешь нормально его тестировать. Все вот так вот просто.
Вот давай представим. Тебе нужно сделать туду лист. Тебе изначально так задачу и поставили. Ты, допустим, таки сделал его для консоли. Тебе говорят - ты че, ебанутый, нужно ГУЙ. Ты делаешь гуй. Уже будут проблема со статикой, ну, допустим ты таки уже тут не понял, что затея провальна. Все всем нравится. Но пользователь А - хочет использовать SQLite, пользователь B - хочет чтобы оповещения были на почту, пользователь C - чтобы это все работало в браузере, а D - робко просит добавить возможность кастомизации гуя через CSS. Вот как думаешь, справишься с этими требованиями, если хучил статикой?
Я сам - пользую статику внутри библиотек, типа мне вот все еще кажется, что запилить свой ThrowIfNull - лучше, чем эти ?? ебашить везде. Ну и экстеншин методы без статики не сделаешь, а не всегда есть доступ к исходникам или не хочется делать обертку, ибо многословно выходит. Но все равно, зачастую статика влечет за собой код, который оч сложно поддерживать, он похож на спагетти, когда ты из рандомных мест дергаешь рандомные функции, когда ты не можешь нормально чет поменять, в одном месте не трогая в другом. Короче, статика, не для ютилити(и то в рамках библиотеки), констант и экстеншинов - такое себе.
Ну и самое главное. Нужно понимать, что программисту платят не из-за того что он может решить задачу здесь и сейчас, а за то что он может решить задачу так, чтобы в будующем другие программисты могли это дело расширять, дополнять функционал и поддерживать. Просто нахуячить решение и домохозяйка в состоянии, а сделать код пригодным к переиспользованию, расширению и модификации - уже нужно чуть больше чем освоить базовый синтаксис и быть способным в простейшую логику.
489 1937182
>>1934718
Потому что автосвойства появились позже, а старые версии не поддерживают последние версии шарпов. В 15, как я понимаю, ты уже не сможешь рекорда делать и просие штуки последних версий шарпов.
490 1937251
>>1937068
Зачем тебе джс?
491 1937291
>>1937046

> 1) Да


Спасибо, а можешь подсказать в какую сторону гуглить?
492 1937347
>>1937165

>Нахуя тебе вложенные классы?


А что нельзя?

>Че ты там за хуйню наделал, что коструктор может вернуть null, Ты ебанутый?


Так если нет в базе запрашиваемых данных что мне делать? не возвращать же пустой лист

>Нахуя тебе массив как свойство? Вот серьезно.


Ну а как мне массив биндить?

>За строку длиннее 100-120 символов - пиздят.


У нас так принято писать запросы в базу, нахрена разворачивать одну строчку на овер 100500 строчек если и так понятно что она делает и зачем нужна
493 1937431
>>1937347
я другой анон
1 вложенные классы можно, но какова причина делать их вложенными...сразу и не видать
2 нигде и никогда доселе не видел чтобы кому то в голову пришла идея вернуть null из конструктора.
3 кидать NRE на null - ну да, пусть потом народ гадает че за NRE. и зачем тогда вообще нужна проверка на null
4 у ВАС так принято? ясно. И похер на рекомендации о чистоте кода. Ясно. И похер что читабельность адски страдает - ведь главное что ВАМ удобно
ясно
494 1937438
>>1937347

>Так если нет в базе запрашиваемых данных что мне делать? не возвращать же пустой лист


Это от конвенции зависит. Я предпочитаю возвращать пустой лист, потому что тогда пользователю класса не понадобится делать null-check, и код типа такого будет работать:
foreach (var thing in list) thing?.DoSomething();
И такую хуйню чаще всего и пишут, не проверяя, является ли list - null. В новых версиях Шарпа можно и обозначить эксплицитно, что у тебя метод может возвращать null, что более-менее пофиксит главную проблему с возвращением null, но придется очень много всего переписывать.
мимо
495 1937453
>>1937431

> у ВАС так принято? ясно. И похер на рекомендации о чистоте кода. Ясно. И похер что читабельность адски страдает - ведь главное что ВАМ удобно


Это по твоему нормально когда одна строка, функции и работа которой очевидны, занимает пол экрана скрывая при этом реально НУЖНЫЕ вещи от глаз. Не приятнее ли видеть все что нужно сразу, а не насиловать колесо мышь как не нормальный что бы посмотреть, а что же там внизу после этой очевидной строки происходит

>>1937431

>нигде и никогда доселе не видел чтобы кому то в голову пришла идея вернуть null из конструктора.


>>1937438

>Я предпочитаю возвращать пустой лист, потому что тогда пользователю класса не понадобится делать null-check, и код типа такого будет работать:


проверка на нулл происходит быстрее чем создание нового пустого листа который нужен просто что бы избежать исключения, если есть исключение об этом надо дать знать что бы была возможность его обработать а не создавать заплатки что бы скрыть его от глаз

>вложенные классы можно, но какова причина делать их вложенными...сразу и не видать


Что бы скрыть его от глаз? Этот клас является частью другого класса, не лучше его поместить внутрь что бы соблюдалась иерархия, а не создавать кашу из всех классов?
496 1937470
>>1937453

>функции и работа которой очевидны


очевидны кому? писателю? это значит write-only код?
потому что любой читатель этого кода, который его не писал будет вынужден
а) прокрутить горизонтально
б) запомнить "чо тут нагородили" и держать это в памяти, чтобы не делать потом лишний раз пункт "а"

не говоря уже о том, что короткие строки читаются на порядок быстрее чем длинные.

>если есть исключение об этом надо дать знать что бы была возможность его обработать


ты говоришь с 2мя анонами, поэтому отвечу на свою часть
у тебя там 2 проблемы
1 проверка на нулл и сразу же NRE. зачем вообще проверять на нулл. Среда с радостью выкинет тебе тот же NRE без проверок
2 проверка на нулл + эксепшен нужна людям, чтобы заменить невразумительный NRE на что то более контекстное, которое явно поясняет че где когда - как минимум вменяемое сообщение в исключении, а то и свой тип исключения.

>Что бы скрыть его от глаз?


>не лучше его поместить внутрь что бы соблюдалась иерархия, а не создавать кашу из всех классов?


ну про "скрыть" мимо - они у тебя публичные, а про иерархию....ну тут спорить бесполезно. тут фломастеры, ведь у каждого свой взгляд на "нужно ли обязательно подчеркнуть что вот этот класс находится внутри другого и какой в этом смысл"
497 1937482
>>1937470

>а то и свой тип исключения.


Собственно этот NRE я просто нахардкодил временно, потом я подключу нашу внутреннюю библиотеку исключений и пройдусь поиском везде, где встречается эти и другие типы исключений и заменю на те что в библиотеке

>ну про "скрыть" мимо - они у тебя публичные


Скрыть из списка, у меня конечно же будет доступ к этом классу, он должен быть, но что бы он не мельтешил в списке классов я поместил его туда, а что бы обратиться к нему надо обратиться к составному и потом к нему, так гораздо удобнее

>очевидны кому? писателю?


Это же гребаный линк, очевидно что он просто возвращает параметризованные данные из базы, он в принципе не может делать ничего другого, он не может вдруг сложить числа или вызвать другую функцию, он просто возвращает данные из базы, на всякий случай параметры в нем такие же как в методе, если у тебя метод называется GetAllItemsByCategoryId для тебя уже должно быть очевидно что линк будет возвращать все данные, где сюрприз categoryId == ParamCategoryId
498 1937525
>>1937482

> если у тебя метод называется GetAllItemsByCategoryId


ты щас вообще о чем
посмотри на свой же скрин
499 1937535
>>1937525
Я условно сказал, суть что работа строки с линком очевидна, в методе проверяется состояние колоны в таблице из дб, очевидно что линк подтянет строку с этой колонной из бд что бы прочитать состояние, не будет же он скажем удалять строку из дб в методе где он должен прочитать состояние, для этого будет вызван другой соответствующий метод по типу "RemoveItemByItemId(int itemId)" понимаешь? читать стоку линк это просто не нужно ее работа должна быть очевидной по методу, а если она не очевидна или делает что-то не очевидное то значит метод у тебя говно
500 1937542
>>1937535

>Я условно сказал, суть что работа строки с линком очевидна


долой условности. смотри на реальность - на твой же скрин.

плевать линк там у тебя или что другое
никаких "очевидно" быть не должно.
Код должен быть ясным для чтения, а не "ну наверное там вот так, значит скролить не нужно"

>а если она не очевидна или делает что-то не очевидное то значит метод у тебя говно


ну значит ты в курсе что не так с кодом на твоем же скрине

Если я вижу строчку читая которую вижу там GetAllItemsByCategoryId, я могу допустить что я знаю что она делает. НО Я НЕ ЗНАЮ ЧТО ТАМ ДЕЛАЕТСЯ ДОПОЛНИТЕЛЬНО (и не знаю делается ли вообще) - и буду вынужден прочитать всю строку прокручивая ее горизонтально чтобы увидеть что там не навешано дополнительных условий.

ну и вообще говорить про GetAllItemsByCategoryId и при этом where(d=>d.ID==...&&d.USRID==) ну это как то. Диссонанса не возникает?
501 1937553
>>1937542

>ну и вообще говорить про GetAllItemsByCategoryId и при этом where(d=>d.ID==...&&d.USRID==)



Так там и не GetAllItemsByCategoryId вот было бы ByCategoryId тогда линк был бы с where(d=>d.ID== catiId)

>НО Я НЕ ЗНАЮ ЧТО ТАМ ДЕЛАЕТСЯ ДОПОЛНИТЕЛЬНО


Ты не знаешь что дополнительно может линк сделать? Ну да действительно, а то вдруг он там в конце строки новый поток создает, самому не смешно?
502 1937564
>>1937553

>Ты не знаешь что дополнительно может линк сделать?


нет не знаю. Линк всего лишь декларативное выражение кода, а не "знание вселенной". И чтобы понять, что именно делает линк -нужно его весь прочитать.
После твоего where(d=>d.ID== catiId) может быть (даже несколько) OrderBy и тому подобное, которое в экран не влазит, а люди телепатией не владеют чтобы догадаться об этом.

не говоря уже о том, что на экране читающего даже твой where(d=>d.ID== catiId) может не быть на экране
503 1937565
>>1937553

>Так там и не GetAllItemsByCategoryId вот было бы ByCategoryId тогда линк был бы с where(d=>d.ID== catiId)


именно )))))). еще пояснять что не так, или уже догадался?
image.png75 Кб, 1193x774
504 1937566
>>1937564

Вот так по твоему заебись да? офигенная читаемость, была нормальный код где строка с линком сразу бросалась в глаза и которую можно было игнорировать а теперь вот этот мусор мешается перед глазами, приходиться всматриваться понимать что к чему а потом такой, ааа, так это же просто строка линка, нахера я это читал

ах да, я же не знал, вдруг там toList() по типу объекта который возвращается это не очевидно да?
де
505 1937567
>>1937565
Ну объясни, если ты о том что метод должен был называться :
TryCheckIfDashboardHasSettingsByDashboardId&UserId() то сразу мимо
506 1937569
>>1937566
зачем бросаться в крайность
КТО заставляет переносить КАЖДУЮ строчку на новую?

> вдруг там toList()


то есть ты не читал то что я написал. ясно

>если ты о том что метод должен был называться


А метод где? Где метод то?
ты разглагольствуешь про говорящие названия методов (что конечно правильно), но при этом на скрине у тебя совершенно иной случай. Там нет никакого вызова какого либо репозитория с методом, а прямой запрос в базу (что конечно та еще гадость, но оффтоп в теме про длинные строки)
То есть рассуждения "а если бы у бабушки были яйца"

>TryCheckIfDashboardHasSettingsByDashboardId&UserId()


вот когда будет в коде вызов такого метода и "а как тут быть", то это будет уже другой разговор об именованиях, спецификациях, "репозиторий vs queryobject vs прямойвызов vs ..."
А так ты рассуждаешь о высоких материях, а сам же в коде их не используешь
image.png81 Кб, 1060x771
507 1937586
>>1937569

>А метод где? Где метод то?


Вики : Метод в объектно-ориентированном программировании — это функция или процедура, принадлежащая какому-то классу или объекту.

>прямой запрос в базу (что конечно та еще гадость


А должен быть какой? Опосредованный, о чем ты говоришь вообще?

>КТО заставляет переносить КАЖДУЮ строчку на новую?


так ТЫ же сам говорил что читать вертикально легче чем горизонтально, тогда почему по твоей логике весь код не делать в стиле асемблера?
508 1937604
>>1937586

>А должен быть какой? Опосредованный, о чем ты говоришь вообще?


С говорящим именем. Ты же говоришь, что я по имени метода должен понять, чо он делает даже можно не читать аргументы и дальше вообще читать не нужно. Где они?
Зачем вообще рассуждать про именования методов запроса к бд, если у тебя используются Query и Where?

Возможно ты думаешь про другой участок кода. Уточняю - вот я читател читаю твой метод TryCheckIfDashboardHasSettings
внутри него запрос в виде длинной строки.
Мне приходится скроллить чтобы прочитать его
Ты мне говоришь что "зачем скроллить и так все понятно"
на что я тебе аргументирую, что понятно только писателю ну и телепатам

>так ТЫ же сам говорил что читать вертикально легче чем горизонтально


правильно. даже этот ад что ты сделал читается легче чем горизонтальный его вариант который нужно скроллить (хотя бы только потому, что его не нужно скроллить горизонтально, что пипец как неудобно)
но если не только перенести на новую строку, а и отформатировать с учетом контекста - то читать станет еще легче
например
Data......DataLayer
.Query
.Where
.FirstOrDefault
image.png87 Кб, 1640x784
509 1937611
>>1937604
Если что, у меня широкоформатный монитор, на дефолтном масштабе у меня эта строка влезает полностью и скролить ничего не надо, я просто скрин сделал неаккуратно,

по поводу этого :

>С говорящим именем. Ты же говоришь, что я по имени метода должен понять


Не понял, ты имеешь в виду что бы я в названии метода еще уточнял что в нем идет обращение в базу? А что так кто-то делает? зачем это вообще нужно?
510 1937641
>>1937611

>Если что, у меня широкоформатный монитор


рад за тебя.
так и скажи что код только ты читать будешь, а если кто другой, то ему будет выдан широкоформатный монитор.
у меня счетчик сарказма уже зашкаливает с тобой )

приходится разбивать пост ибо тупорылый фильтр двача доколебался до хз какого слова
511 1937644
>>1937611

>в виду что бы я в названии метода еще уточнял что в нем идет обращение в базу?


нет. строка 33 должна не быть такой длинной и должна быть переформатирована для читабельности. (по скрину конечно не видно ее размер, а считать неохота).

понятно что 80 символов это мало, но лучше не более 100-110-120 символов (где каждое число это рекомендуемая граница, переходить через которую нужно только если надо).

да и даже если влазит в границы, то сделать пару переносов все равно сильно повысит читабельность.
"Арабская вязь" читается сложнее, чем структурированный текст
512 1937654
>>1937644
120 это пипец мало, даже где я выделил на первом пикриле уже 90 а там всего ничего написано, строка линка 220 и вообще если я приму такую конвенцию весь мой код превратиться в некрасивую тяжело Асемблеро-Подобнуючитаемую кашу
513 1937655
>>1937654
ну если для тебя второй пик это читабельно, то продолжать спор нет смысла.
для тебя норм, а мне такое не читать.
514 1937660
>>1937655
Теперь я знаю кто эти странные люди, которые для программирования поворачивают мониторы на 90 градусов
515 1937663
>>1937660
кто? я таких не знаю.
зато я теперь знаю кто странные люди что "раз широкий монитор, то давай использовать всю ширину и плевать на здравый смысл"
516 1937669
>>1937663
Я даже тебе скажу вот что, У меня НЕСКОЛЬКО МОНИТОРОВ! Представляешь? И я держу РАЗНЫЕ файлы на РАЗНЫХ мониторах, вот так да правда? да, я тот еще извращенец, пытаюсь по максимуму использовать полезное пространство, это же совершенно не подвластно Здравому смыслу правда?
517 1937680
>>1937669
причем тут твое рабочее пространство до читабельности кода.
используй по максимуму как хочешь, а обычному человеку тяжело читать тот кошмар со второго пика даже если оно влазит.

А про то что люди используют еще ноутбуки и планшеты в своей работе я промолчу )

и да. кроме длинных строк любишь ты магию
вот что это за заклинание лол
Data.DataLayer.Singleton.GetInstance().DataLayer.
518 1937701
>>1937680

>используй по максимуму как хочешь, а обычному человеку тяжело читать тот кошмар со второго пика даже если оно влазит.


Как я уже говорил, оно делает ровно то что написано в названии метода, ничего больше, там сразу после открытия тела метода идет ретурн, даже при всем желании невозможно не понять что делает эта строка, да и не нужно ее читать, тебе нужно прочитать несколько первых символов хоть на широкоформате хоть на планшете прости господи, и для тебя сразу все становиться понятным

>и да. кроме длинных строк любишь ты магию


вот что это за заклинание лол
Да камон, слишком толсто, ты никогда сингтона не видел?
519 1937713
>>1937701

>оно делает ровно то что написано в названии метода, ничего больше


у тебя каша в голове.
тот, кому нужно только название метода, использует эти методы снаружи - ему вообще не интересно содержимое.

"Благодарным" тебе будет тот, кто будет читать сам код метода. И вот ему плевать на название, он пришел код читать.

скажи ревьюеру что "не нужно читать тело метода, читай только название и принимай как данность что я пишу код без ошибок всегда" и узнаешь о себе много интересного

Но так как у тебя читаешь только ты, то и проблемы нет. Тебе норм )

>ты никогда сингтона не видел?


такого нет конечно.
вот что типа такого я бы еще ожидал
Data.DataLayer.GetInstance()
что было бы более чем достаточно
520 1937752
>>1937713
Так если ты захочешь получить свой кастомный DataLayer, нужно разделять где синглтон, где конструктор а где вообще какой-то кастомный, пример даже в моем пике, там на том втором пике, (где читать тяжело) уже используется inMemodyDAL и я хз какой еще дл захочет другой программист, использовать или создать, не важно, нужно оставить ему возможность юзать любой из вариантов максимально дружелюбно

ну а по поводу того что ошибок не делается, ну желается конечно, но не в ретурне же, протестировал все, написал комментарии, скрыл и забыл вообще
521 1937818
>>1937752

>нужно разделять где синглтон, где конструктор


конструкторы в сигнлтонах приватные. в этом и смысл сигнлтона.

Насчет синглтонов вообще - как я уже писал ранее в споре про inMemodyDAL, лучше переделать на нормальное DI

и вообще
Data.DataLayer.Singleton.GetInstance().DataLayer.
смахивает что есть класс Singleton ака сервислокатор, а этот DataLayer уже не статический, что ура ура. но все же это очень пахнущий код

переформатируй свой мозг на DI и жить станет легче
522 1937832
>>1937818
Если ты о том моем посте где я спрашивал как не делать 100 методов под каждый класс, то я переделал, там используются классы с обджектом, об этом не беспокойся и если это ты тот анон, который советовал не юзать статики и вместо этого заюзать дженерик тогда спасибо, так реально удобнее, хотя наверняка медленнее, я еще буду этот тестить под нагрузкой, посмотрю стоит ли кобыла ставки
523 1938051
>>1937566

> Вот так по твоему заебись да?


Да. Потому что сразу все видно.
Плюс, линку позволяет делать вещи как на прикриплейд и я хочу видеть такую вот хуйню.
524 1938175
Бля, пасаны, да он тралит. Такого в жизни быть не должно.
Походу абуботы и сюда добрались - посты накручивают.

Следущим скрином он включит отображение скрытых символов и вы тута 100 постов будете сраться "табы против пробелов".
Или перданет, что ЕФ медленный скрины можно уже существующие использовать
Или ебанет скрин, с хардкорной рефлексией и будет дальше рассказывать, что статик классы и выбрасывание нуллреференса это префоманс который мы заслужили

Тралебот, скажи плиз, сколько тебе лет и стаж работы?
525 1938179
>>1937832

>я еще буду этот тестить под нагрузкой, посмотрю стоит ли кобыла ставки


Опа.
Сейчас он принесет скрин, где на дебаге через ДейтТаймы будут миллисекунды считаться, на фоне открыт майнер и посыл: "я потерял в перфомансе, статики - рулят"
Нагрузка - это раз с холодного старта с консоли дернуть.
526 1938338
>>1938175
Стаж у меня нормальный, не переживай, а вот на шарпе я действительно не долго, и я честно сказать хуею от тех "порядков" которые у тут заведены, ладно со студентами все понятно. Они учатся и им нужно понять хотя бы как ооп работает, какие есть архитектуры, паттерны и тп, но использовать все на кучу и подключать овер 1000 библиотек в проекте не думая о том нужно ли это вообще и только принесет вред, зачем? Зачем вы вообще программируете тогда? Что бы было? Или все таки что бы это работало и работало быстро?
527 1938348
Вопрос от очередного ньюфага.
Насколько вообще сложно вкатиться в разработку VR/AR через C# (Unity уже изучаю)? И на что конкретно нужно делать упор в изучении здесь?
Собираюсь через год-полтора начать искать места, откуда не гонят ссаными тряпками новичков без опыта. Может, бесплатный оперсорс-проект и т.д. Но на основе чего вообще составлять дорожную карту обучения шарпу? К примеру, за два месяца нужна сделать такой вот простенький пет-проект, через полгода - другой проект. На что делать особый упор в изучении, если интересует не весь бесконечный интерпрайз, а исключительно AR/VR?
Конечно, можете постебаться - но дайте мудрых советов, аноны.
528 1938365
>>1938348
Юнити Слишком медленный для вр, для вр очень важна производительность и время ответа, для пользователя это критично, любая задержка глюк баг и погружение исчезает, а пользователя начинает тошнить, поэтому тут лучше самописный движок а не юнити, да и с# в принципе производительностью не отличается
529 1938482
Что от меня хочет visual studio? Ни слова не понял.
"Binding" нельзя задать в свойстве "AddPreviewMouseWheelHandler" типа "EventTrigger". "Binding" можно задать только в параметре DependencyProperty объекта DependencyObject.
При этом никак не подсвечивает строчку с ошибкой, но я думаю, что это здесь:
<i:Interaction.Triggers>
<i:EventTrigger Mouse.PreviewMouseWheel="{Binding line_MouseWheel,Mode=OneWay}">
</i:EventTrigger>
</i:Interaction.Triggers>
530 1938642
А вот классы я могу хранить как хочу. Каждому классу по файлу, несколько классов в файле, несколько файлов для одного класса. Как-нибудь на размер готового приложения влияет выбранный мной способ хранения?
531 1938645
>>1938642
Нет
532 1938660
>>1938482
Нельзя биндить значение к свойству, которое не является своством зависимости.
533 1938668
>>1938660
Да всё уже, сделал через code-behind. Блядский mvvm, в рот ебал говно хипстерское.
Посоветуйте кстати хорошие книжки по mvvm + wpf
534 1938765
Сап, программисты. Как сделать, что бы телеграм бот работал без запущенной отдельно своей программы? То есть если открыть только телегу и отправить ему какую-либо команду, работать он не будет. Нужно компилировать код и только после запуска проги бот будет отвечать на команды. Писал интерфейс бота на wforms, думаю, это может как-то помешать, поэтому реквестую помощь
535 1938791
>>1938765

> Как сделать, что бы телеграм бот работал без запущенной отдельно своей программы?



Никак. Ты хоть сам понимаешь всю глупость вопроса? Как он у тебя работать будет, если не запущен, блять? Максимум его можно перенести на удаленный сервер, но на сервере его тоже придётся запускать, представь себе.
536 1938810
>>1938791
Я уже понял. Как тогда его на удаленный сервер перенести?
537 1938823
>>1938791
Прошу прощения, неправильно поставил вопрос
538 1938835
>>1938810
Арендуешь сервер, можно у амазона воспользоваться акцией вида "бесплатно первый год". Там будет установлен какой-нибудь линукс дистрибутив, например Убунта. Подключаешься к серверу через ssh, при помощи команд копируешь на него своего бота, который предварительно скомпилировал для соответствующей ОС, запускаешь его на сервере. Всё.
539 1938840
>>1938835
Спасибо, помог
540 1938844
>>1938840
Пожалуйста, обращайся если будут еще вопросы.
541 1938929
Ньюфаг. Помогите, пожалуйста.
Хочу сделать подобие транзисторной логики.
Есть t1.C, ссылку на значение которого должна брать t2.A
Как передавать ссылки на переменные между объектами класса, чтобы не приходилось каждый раз апдейтить изменения, получая значения напрямую?
542 1939142
>>1938929
Если у тебя в классе ссылочные типы - просто присваивай t1.C t2.A, все будет работать. Иначе используй свойства с ref.
543 1939233
Бля анонче, почему парсит не то что мне надо?
Пытаюсь парсить гугл, нужно взять ссылки со страницы.
anglesharp
xpath //div[@class='g']/div/div/a/@href
Вроде же должно спарсить то что в href а мне парсит не то. Наверняка я не так запрос составил. Но что не так то? Стаковеерфлоу сказал что все правильно написал хуй знает я корочи.
Пример того что парсится в пике.
image.png114 Кб, 1906x851
544 1939239
>>1939233
И тестер показывает что все заебись, а этот ебучий англшарп не парсит сука
545 1939244
>>1939233
А нахуй тебе xpath? Используй CSS селекторы:
document.querySelector('a').href
546 1939282
Такой вопрос: нахуя мне классы если я могу юзать структуры с тем же функционалом, только еще и меньше кода при этом писать (не объявлять конструкторы, не ебаться с nullreferenceexception)
547 1939305
>>1939282
Тогда можешь идти в си
548 1939525
Хочу перекатиться из 1С в с#(можете обоссать, да). Вопроса только два:
1. Стоит ли задрачиваться с вещами типа алгоритмов и структур данных? В 1С с я подобным вообще никогда не заморачивался, как и с матаном в общем. В типичной работе шарписта оно важно?
2. Хочу в качестве пет-проджекта написать приложуху для автоматизации склада, ну такую небольшую ерп, заодно походу учить язык, платформу, формочки там, возможно какие-то веб-сервисы подключать буду. Норм идея, не?
549 1939603
>>1939282

>я могу юзать структуры с тем же функционалом


Не можешь. Читай отличия классов от структур.

>не объявлять конструкторы


Как DI реализовать будешь?
550 1939713
>>1939603
Ну как, в шарпе структура это тот же класс, только со специфическим поведением. И, как-бы различие, в основном - семантическое(классы должны в себе состояние иметь и инкапсулировать сложную логику, структуры - какие-то данные, являющиеся значением). Как и с теми же рекордами сейчас. При желании - поведение структуры ничем не будет отличаться от поведения класса.

> Как DI реализовать будешь?


ДиАй бывает разных типов, в том числе и через свойства/поля. Да, не так удобно, да не лучший стиль, но ты именно про DI сказал.
551 1939808
>>1939244
Ну xpath мне показался проще.
552 1939862
>>1939525

>В типичной работе шарписта оно важно?


А ты хочешь игры делать, сайты или десктоп?
Если игры - учи
Десктоп - подучи
Сайты - не учи
553 1939870
Тупой вопрос.
Вот смотрите. Было у меня приложение, что должно было быть микросервисом, авторизация и аутентификация должна была производиться отдельным сервисом. Но вот порешали люди из продажников, что дюже заебатый сервис выходит и пусть он будет еще и отдельным приложением, но чтобы при этом мог быть составной частью более комплексного решения.
Так вот, как реализовать-то авторизацию-аутентификацию для моего теперь отдельного приложения, чтобы при этом не потерялась возможность этой самой авторизацией-аутентификации, будучи включенным в состав програмного комплекса? Просто ведь поменяется база данных, добавится сущность юзера. Раньше-то как было: была табличка юзера, но никакой логики авторизации-аутентификации не было, просто при добавлении нового в сервисе за это отвечающем, я получал сообщение, добавлял его к себе. заводил в зависимости от этого привелегии и потом можно было пользоваться. Теперь же нужно добавить будет логины, роли это вот все. Не хочется просто разделять на две ветки приложение, одно как самостоятельное, другое как микросервис.
554 1939890
>>1939713
У тебя структура каждый раз будет копироваться в стэк, при этом в случае класса копируется только ссылка. Если у тебя поля структуры занимают больше чем 32/64 бит (в зависимости от разрядности ОС), то выгоднее и быстрее копировать ссылку, чем каждый раз копировать все поля.
555 1939928
>>1939862

>А ты хочешь игры делать, сайты или десктоп?


Хочу делать всякие декстопный софт для бизнеса, те же ЕРП по сути.
556 1939929
Есть ли библиотека для скачивания видео с YouTube в лучшем качестве и со звуком? Если нет, то как быть?
557 1940032
>>1939929
youtube-dl
558 1940043
>>1939890

> У тебя структура каждый раз будет копироваться в стэк, при этом в случае класса копируется только ссылка


С хуя ли?
Да банально. Что если у тебя стуруктура размером в здоровая? Допустим ты по классике запилил структуру для описания своего файла, ну вот такой ты бака, че поделать, и при создании оч большого файла - размер структуры - пара гигов. По твоему она на стек ляжет? Да даже если без эзотерики, давай просто подумаем, где лежит структура, которая является полем класса.
Ну и банально, тебе только религия может запретить передавать стуруктуры в методы по ссылке.
Вся суть в семантике. Структура задумана семантически, как некое значение, по идее все его состояние - не должно изменяться. С этим и связано дефолтное поведение структуры.
559 1940053
>>1940043

>С хуя ли?



Так структуры хранятся.

struct x {
int y = 10;
int z = 20;
}

var x = new x();

В плане памяти это тоже самое, что написать

var y = 10;
var z = 20;

В случае с классом это будет одна ссылка.

Еще одна ограниченность структур - невозможность хранить ссылки на экземпляры этой же структуры. Т. е. ты не сможешь реализовать бинарное дерево используя структуры.
560 1940073
>>1940053

> ты не сможешь реализовать бинарное дерево используя структуры.

561 1940079
>>1940032
На C# ее нет, гуглил.
563 1940104
>>1940079
Её можно запускать через программу написанную на шарпе, передавая нужные аргументы.
564 1940106
>>1940104
Хорошо, каким образом передать значение загрузки?
565 1940109
>>1940106
Читай документацию и запускай через Process.Start
566 1940114
>>1940073

>unsafe



Что дальше? Залезешь в IL код лишь бы хуйню написать и сказать, что работает?
567 1940139
>>1940114
Вот ты охуеешь, когда почитаешь исходники .net. Но не суть.
А суть вот в чем. Ты говоришь что нельзя - тебе показывают что можно. Ты начинаешь доебывать что unsafe. Будто, блядь unsfe это что-то пиздец какой хак, нахуй. Я же не что-то, типа __refvalue использовал, а обычный, мать его в сраку, unsafe, которого в любом проекте полно, когда дело доходит до оптимизации или работы с какими-нибудь сишными либами. Может быть ты бы и до ref доебался, если бы я показал что можно не копировать значение, передавая в функцию структуру?
В конечном счете. Структура отличается от класса, в основном, семантически. Как и рекорд. Ты так же можешь изменить значение рекорда, если так уже чешется и ничего тебе не будет, шарп не вылезет из компьютера и не отпиздит тебя за это, просто ты ломаешь семантику, заложенную создателями языка, не более.
568 1940170
>>1940139
Ты из безопасного C# сделал небезопасный С++ (даже по синтаксису это чистый С++) и пытаешься говорить, что это нормально и вроде как все разработчики так делают.

>Структура отличается от класса, в основном, семантически


Хорошо, пребывай в своём манямирке, я останусь на стороне здравомыслящих и реальности.
Безымянный.png481 Кб, 907x1019
569 1940198
570 1940212
>>1939870
Смотри майкрософтовский идентити сервер и почитай об oAuth.
Ну или азуровский АД. Звучит как изобретение велосипедов кста.
571 1940308
Как сделать такую подсветку кода как на пик1?
У меня пик2
572 1940314
>>1940308
Скачай тему другую.
573 1940358
Анонче поясни за данный код, я вроде понимаю но не понимаю. Напишу как я понимаю но наверняка что то путаю

//Публичное событие типа PropertyChangedEventHandler( что за тип и что он делает хуй знает)
public event PropertyChangedEventHandler PropertyChanged;

//Защищённый виртуальный метод который ничего не возвращает, принимает строку, может быть вызван без входных данные тогда строка будет нулл.
protected virtual void OnPropertyChanged([CallerMemberName] string PropertyName = null)

{
// Тут хуй знает магия какаета
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName));

}
//Защищённый виртуальный метод использующий обобщённый тип, принимает первым параметрам принимает ссылку на обьект Т(может быть любым типом хоть стрингой хоть хуй знает чем) и вторым значение тоже обобщённое, далее магия, но как мне кажется третий параметр стринга если ее не передать будет по дефолту нулл
protected virtual bool Set<T>(ref T field, T value, [CallerMemberName] string PropertyName = null)
{
//сравниваем, если первый параметр и второй равны например 2 стринги "str" Equals ск5ажет что строки равны и вернет тру иф сработает и из метода вернет фолс, если же обьекты не равны то первому параметру присвоит второй параметр, а так как первый параметр принимался по ссылки он сменит значения не только в этом методе но и в других частях кода. Далее мы вызываем(?) событие с параметром PropertyName, и опять магия, что если он нулл? Нахуй его вызывать? И возвращаем тру.
if (Equals(field, value)) return false;
field = value;
OnPropertyChanged(PropertyName);
return true;
}

Вот вроде по отдельности понятно а все сразу нихуя не понятно. И события вроде понятно, а вроде не понятны, и дженерики вроде понятны но пугают как только вижу Т, но еще месяц назад при виде <T> начиналась истерика нахой, чо за Т? Нахуй Т? Почему не Ш? Или Ы? Сейчас вроде полегче
574 1940396
>>1940308
В настройках студии можно сделать
575 1940409
>>1939928
Значит чучуть подучи математику чтобы не быть совсем окатышем
576 1940446
>>1940358
У тебя есть ивентхендлер PropertyChanged. Из названия должно быть очевидно, че это за хендлер, но если интересно - почитай MSDN. Если ты вообще смысл ивентхендлеров понимаешь - то этого достаточно.
Далее, у тебя есть обертка над PropertyChanged, называется OnPropertyChanged. Имеет опциональный параметр. PropertyChanged? - это то же самое, что if (PropertyChanged != null). По итогу - если у тебя PropertyChanged не null, то метод триггерит PropertyChanged (за это отвечает Invoke - про него тоже почитай).
Далее у тебя есть метод Set<T>, который ты понял правильно. Но в строке OnPropertyChanged(PropertyName) у тебя уже подразумевается null-check и события, и аргумента (это все сделано в методе OnPropertyChanged). Сам метод вызывается потому, что, по идее, у тебя метод Set<T> меняет Property, поэтому ты хочешь поднять ивент PropertyChanged.

Короче говоря:
1. Ты вызываешь метод Set<T>, который меняет значение свойства ref T field. Так как он меняет значение свойства - он должен поднять PropertyChanged, что он делает через обертку OnPropertyChanged.
2. Обертка OnPropertyChanged проверяет всю хуйню, чтобы ты не поднял пустой ивент или не закинул тупые аргументы (в данном случае аргументы принимаются любые). Если все норм и ты не пытаешься сделать хуйню - OnPropertyChanged триггерит PropertyChanged.
3. Триггерится PropertyChanged и вызывает привязанные к себе методы. Ну или не триггерится, если привязанных к себе методов нет.
4. ???
5. ПРОФИТ!
577 1940496
Пробую сделать сайт на ASP Net Core с Identity и авторизацией по ролям. Вроде все работает, кроме одного: если я удаляю пользователя из роли, то пока этот хер не перелогинится у него остаются права будто он в роли. Можно как-то сделать его куки недействительными или заставить Identity лезть в базу и проверять роли каждый раз?
578 1940562
А есть какие-то книги по алгоритмам и структурам данных для тупеньких? Ну типа, для человека который из алгоритмов знает разве что сортировку пузырьком, а структуры данных заканчиваются на обычных массивах, классах и объектах.
579 1940567
>>1940446
Ну вроде понятно.
Вот у меня так в MainWindow.xaml строка
Text="{Binding Title,UpdateSourceTrigger=PropertyChanged}"
я так понимаю значение Техт элемента ТекстБокс привязанно к полю Title
а вот UpdateSourceTrigger=PropertyChanged это ? ОбновитьИсточникТригера PropertyChanged но это же просто событие без ничего. На сколько я понял событию нужно просвоить метот без метода там просто null
public event PropertyChangedEventHandler PropertyChanged;
Что бы событие сработало его же нужно вызвать? Как тогда оно меняем мне тайтл когда я пишу что то в текст бокс? И Как оно может менять если код отработал и ждет действий? А действий нихуя нет то. Или при каждом вводе символа вызывается UpdateSourceTrigger=PropertyChanged, но тогда что дальше говорю же нет кода нихуя.
10 строк кода а происходит магия.
580 1940576
>>1940567
Я, если честно, с WPF не работал. Как подсказывает опыт, интуиция и гугл - суть этой хуйни в том, что:
1. Ты вызываешь ивент PropertyChanged через обертку OnPropertyChanged в методах, где твой проперти действительно меняется.
2. У тебя в XAML UpdateSourceTrigger забинжен на этот ивент, что с помощью скрытой от пользователя черной магии фреймворка по сути означает, что у тебя при вызове ивента поднимается какой-то фреймворковый метод.
3. Этот метод выполняет еще больше черной магии, что выливается в то, что твой Title меняется на новое значение в проперти, которое подняло ивент PropertyChanged.
Короче говоря - когда у тебя Set<T> возвращает true, то Title присваивается новое значение field. Только делается это с помощью черной магии и окольных путей ради архитектурных профитов и облегчения использования (но не обязательно понимания) фреймворка.
Если я в чем-то неправ - ты сам поймешь, ну или аноны исправят.
Вообще, если у тебя есть книга или плейлист, по которому ты учишься - я советую не пытаться разобраться в кишках этой черной магии сразу, а сперва просто попривыкнуть к тому, как фреймворк используется и как он реализует разные фичи. Если начинать сразу с деталей имплементации, а не с функции, которую она выполняет, то можно изрядно так охуеть и надолго зависнуть в изучении фреймворка.
581 1940681
>>1940567
да нет никакой магии

Класс, реализующий INPC при изменении значения свойств (или когда хочет уведомить про изменения, которые обновились) должен вызывать событие PropertyChanged с именем(ами) свойств, которые нужно бы перечитать.
UpdateSourceTrigger=PropertyChanged просто определяет когда именно производить обновление контрола, чтобы на каждый символ его не дергать.
582 1940754
>>1940562
Угу, статья на википедии.
Суть, ты все эти алгоритмы и структуры на практике узнаешь, если будешь кодить достаточно и решать проблемы в которых они нужны. Если ты не работаешь - иди на кодфорс/кодворс/литкод и решай задачки там.

А вообще, все эти алгоритмы не то чтобы прям какой-то реальный плюс или как-то в реальной работе тебе помогут, а оптимальные в плане скорости решения не всегда нужны.
583 1940774
>>1940576
Да нет там магии. Суть всего этого дела на прикриплейде. Только вместо вывода в консоль - привязываем к какому-то элементу вьюшки и при изменении - перерисовываем.
584 1941000
>>1940496
Можешь к CookieAuthenticationOptions.Events подвязаться (https://stackoverflow.com/questions/53085591/refresh-identity-authentification-cookie-to-avoid-logout) или даже ClaimsTransformer заюзать. Оба метода сработают, хз, может есть и более каноничный какой.
Кста каждый раз лезть в базу - хуита.
585 1941003
>>1940754

>не то чтобы прям какой-то реальный плюс


А как же собесы-хуебесы?
586 1941007
>>1941003
Для собесов достаточно связный список, бинарное дерово, бинарный поиск и быструю сортировку.
587 1941021
Как стать хорошим программистом, развиваться?

Вкатился в айти 2 года назад. Всё это время работал в одной компании, писал бэкенд на шарпе под фреймворк Террасофт, там же немного фронта на JS, MSSQL. Сейчас подаключился во внутренний проект компании на Java, но этот проект по своей сути - тонкий, упрощённый клиент с небольшим количеством бека (не на гибернейте). Не думаю, что это даст мне много опыта.
Из того, что нравилось больше всего в работе: работал с реализацией бизнес-логики в рамках бизнес-процессов.
Писал пет-проекты на .Net framework, Unity3d, сейчас изучаю .Net Core.

Вопрос вот в чём: как лучше всего развиваться? Не уверен, что мне нужно второе высшее образование по информатике - я слышал много негатива об отечественном айти-образовании.
Я сам преподавал по своей первой специальности и понимаю, что высшее образование - это неповоротливая, бюрократизированная система, которая может дать тонну бесполезной информации в довесок к небольшому количеству полезной. Но вдруг, чем чёрт не шутит, я захочу в АИ?

Писать пет-проекты, доводить их до ума? Участвовать в опен-сорсных проектах? Короче, как прокачаться?
588 1941022
>>1941007

>связный список


Хуита медленная, кроме как вставки в середину.

>бинарное дерово


Какая-то хуита для поиска, в чистом виде нахуй не нужна.

>быструю сортировку


пузырек + linq OrderBy

Я прошел?
589 1941042
>>1941022
Мы вам перезвоним.
590 1941089
>>1941042
Не верь, анон! Они ни-ко-гда не перезванивают!
591 1941094
>>1941089
Мне перезванивали. Другое дело что через полгода, когда, блядь, я уже другое место нашел. Пиздец вот с таких вот горит. Они серьезно думают, что безработный хуй будет их звонка полгода ждать?
592 1941101
>>1941094
Глупенький, это только ты так думаешь что найти работника так просто, вот эйчары и звонят всем чей телефон есть.
593 1941104
>>1941101
Так если им я подхожу - хули полгода было ждать? Выглядело будто: чет ты хуй. Ой. смотрите, он почти полгода у других проработал и его не гонят, наверное не хуй, давайте его к нам позовем. При этом те же условия предлагают, как и на текущем месет. Вот и нахуя мне-то менять в таком случае работу было? Короче, шляпа какая-то.
594 1941107
Вот сижу сейчас читаю Шилда "C# Полное руководство" и прохожу курс на Ulearn. Ну то есть учу синтаксис в целом на Шарпе. Стал замечать, что мне просто не хватает практики на каждую тему, которая мне позволит закрепить материал. Может есть у кого-то ресурсы с задачами чтобы обработать конкретно синтаксис?
595 1941154
Короче, хочу красивенько в консольке показывать статус загрузки файлика. На данный момент я эмулирую загрузку просто рандомным временем ожидания.
В общем, разбил это дело на 3 куска: Собственно сама задача, презентер - то что должна получать вьюшка и вьюшка.
Так вот. Что меня смущает: 1. То что приходится добавить статичный объект для лока, без него курсор при изменении одновременно статуса нескольких задач - скачет. Мне это не нравится. 2. То что когда последняя задача завершается - курсор остается там где была эта задача, я понимаю, что я бы мог вручную его переставлять на какую-то дефолтную позицию, но это как-то странно.
В общем, в какую сущность лучше всего вынести работу с этим вот курсором и как избавиться от лока? Ну, допустим от лока я избавлюсь тем, что буду эти обновления кидать в очердь, там "Рисователь" будет ждать пока в очереди что-то появится и рисовать. Так от лока мы избавились. А где правильно было бы в таком случае хранить положение курсора? Или может быть как-то иначе это все нужно делать? Поясните короче.
596 1941278
Как понять, есть ли у меня смекалка для программирования?
597 1941349
>>1941042
Ну и нахуй ты так шуткуешь? У меня БЕСПОКОЙСТВО теперь
598 1941516
>>1941021

>.Net Core


Зис, копай туда, подучи ASP, EF, умей писать сложные запросы.

>JS


Скрипт это хорошо. FullStack сейчас очень много зарабатывают. Подучи еще какой-нить хайповый js фреймворк.

>Не уверен, что мне нужно второе высшее образование по информатике


И не надо, формальная корка закрывает 99% всех проблем.

>Писать пет-проекты, доводить их до ума? Участвовать в опен-сорсных проектах?


DO IT. Делай что больше нравится.

>>1939525
Привет братишка. 4 года был 1с разрабом
1) Да, и ты описал лишь 5% того говна что надо знать. И это важно.

>с матаном в общем


Базовые вещи конечно надо, что-то на уровне 11классника. Например, могут попросить посчитать ресурснозатратность какого-нибудь алгоритма.
2) Такие проекты лучше презентовать как FullStack, т.е в связке с JS

>формочки там


винформы не учи, вообще, это тупик.

Как перекат из 1с могу предложить следующее. Начни учить ASP core, создай простенький Web-сервис, а 1с используй как фронт. Побольше используй ООП. Переучись на сырые sql запросы это будет твоим преимуществом.
599 1941805
Почему у меня нет "References" и "Properties", как у того же Троелсона, а заместо них "Dependencies"?
600 1941807
>>1941805
Более новая среда?
601 1941825
>>1941807
Уже понял в чём проблема. Я создал проект на .NET Core вместо .NET Framework
602 1941828
>>1941825
советую учить сразу кор, .NET Framework уже легаси
603 1941853
>>1941828
Я только синтаксис C# учить начал. Если всё так как пишет Троелсен (.NET Framework и у .NET Core одна основа), то не лучше ли пока не запариваться над этим? Классы и методы в библиотеке почти одни и те же?
604 1941858
>>1941853
Да я так предложил ведь сам посуди, ти только начала учить, а уже какие-то расхождения появились, синтаксис то один будет конечно это верно, но сам подумай, раз синтаксис один тогда какая разнице фреймворк или коре? Почему тогда сразу на коре не работать раз все такое одинаковое?
605 1941876
>>1941858
Ну да, в том, что ты написал есть смысл
606 1942005
Сап, можете подсказать хорошую статью для работы с документами? (Нужно считать два дока текста структурированного и совместить в одну таблицу)
607 1942297
>>1941828
Кор тоже легаси, уже .net 5 вышел
608 1942465
>>1941828

>учить сразу кор


На мне так ночальник эксперимент ставил. Поддерживаем легаси, я и еще двое подпивасов на .net framework, четвертый вообще на делфи
Подходит и говорит, вот тебе задача хуйня срок три дня - и попробуй на .net core написать, нам модернизироваться надо
609 1942619
Не понимаю я. Почему вы постоянно говорите про: Учи кору, .net framework - легаси. Будто, блин, для ньюфага там какая-то разница особая будет. Вот когда я учился в 2011, никакой коры не было. Ну и? Когда появилась первая кора - у нас ее со скепсисом восприняли, дескать хз как там дальше пойдет, со второй стало понятно, что это видимо серьезно. И сколько времени ушло чтобы освоить ее для того кто с полным фреймворком работал? Господи, да сразу взяли и начали работать. Я вообще не думаю, что ньюфаг какую-то разницу особую заметит, ему что кора, что старый фреймворк что .net5 - однохуйственно - непонятная залупа, что какую-то магию делает. Но на старом фреймворке, нюфаг хотя бы без бубнов может быстренько что-нибудь оконное нафигачить на формах или впфах, ощутить что он-то теперь не какой-то там хуй, а вот - делает оконные приложения, ньюфаги почему-то не уважают консольку, и вообще все, где кнопочки тыкать нельзя. Вот сравните сколько ебалы нужно проделать в коре и .net5 чтобы сделать что-то с окошком: изучаем как работает DI, потому что теперь все через DI, понимаем что формы и WPF все еще через жопу, а авалония - говно, оч грустим, таки рвем жопу и хреначим весь визуал кодом через то что есть, будто какие-то пещерные люди, в процессе расстраиваемся, потому что и туторов нихуя и непонятно и вообще какое-то говно выходит, демотивируемся, дропаем шарпы и идем в пятерочку кассиром работать; в противовес фреймворк: открыл, в редакторе накидал кнопочек, лейблов, в кодбихайнде чет там с логикой написал, вроде работает, бегаешь со стоячим хуем, всем показываешь, какой ты молодец, радуешься, мотивирован чет дальше изучать, ведь ты-то вон какой, с кнопочками сделал, наживаешь и чет происходит, хорошо, а уже когда набираешься опыта - понимаешь, что сейчас все в вебах, твои кнопочки никому не нужны, но тебе-то ужо и не важно, ты щарпы освоил, скорее всего какой-нибудь клиент для стороннего апи делал и представляешь как примерно HTTP работает, может быть сам пробовал сайтец замутить на MVC и изучение коры будет как: "А как тут это делается? Ага, поняв".
609 1942619
Не понимаю я. Почему вы постоянно говорите про: Учи кору, .net framework - легаси. Будто, блин, для ньюфага там какая-то разница особая будет. Вот когда я учился в 2011, никакой коры не было. Ну и? Когда появилась первая кора - у нас ее со скепсисом восприняли, дескать хз как там дальше пойдет, со второй стало понятно, что это видимо серьезно. И сколько времени ушло чтобы освоить ее для того кто с полным фреймворком работал? Господи, да сразу взяли и начали работать. Я вообще не думаю, что ньюфаг какую-то разницу особую заметит, ему что кора, что старый фреймворк что .net5 - однохуйственно - непонятная залупа, что какую-то магию делает. Но на старом фреймворке, нюфаг хотя бы без бубнов может быстренько что-нибудь оконное нафигачить на формах или впфах, ощутить что он-то теперь не какой-то там хуй, а вот - делает оконные приложения, ньюфаги почему-то не уважают консольку, и вообще все, где кнопочки тыкать нельзя. Вот сравните сколько ебалы нужно проделать в коре и .net5 чтобы сделать что-то с окошком: изучаем как работает DI, потому что теперь все через DI, понимаем что формы и WPF все еще через жопу, а авалония - говно, оч грустим, таки рвем жопу и хреначим весь визуал кодом через то что есть, будто какие-то пещерные люди, в процессе расстраиваемся, потому что и туторов нихуя и непонятно и вообще какое-то говно выходит, демотивируемся, дропаем шарпы и идем в пятерочку кассиром работать; в противовес фреймворк: открыл, в редакторе накидал кнопочек, лейблов, в кодбихайнде чет там с логикой написал, вроде работает, бегаешь со стоячим хуем, всем показываешь, какой ты молодец, радуешься, мотивирован чет дальше изучать, ведь ты-то вон какой, с кнопочками сделал, наживаешь и чет происходит, хорошо, а уже когда набираешься опыта - понимаешь, что сейчас все в вебах, твои кнопочки никому не нужны, но тебе-то ужо и не важно, ты щарпы освоил, скорее всего какой-нибудь клиент для стороннего апи делал и представляешь как примерно HTTP работает, может быть сам пробовал сайтец замутить на MVC и изучение коры будет как: "А как тут это делается? Ага, поняв".
148486366819822946.jpg21 Кб, 551x201
610 1942665
image.png57 Кб, 916x355
611 1942726
Мне как вкатывальщиу пиздецки как сложно во всей этой хуйне разобраться.
net core, net framework, net core, EF3, EF5, EF6, ASPnet, ASPnet core, mvc хуиси отсоси.
Я по началу думал ну ясно понятно хули разные версии. И думал мол выходит новая версия и все на ней всё делают, но хуй там плавал. И вот вопрос почему? Обратная совместимость же есть, а изменения не такие уж прям пиздецки большие что бы команда не смогла изучить все нововведения.
И вот меня очень радует то что сейчас есть net5 и вся остальная залупа прекращает поддерживаться.
612 1942737
>>1942726

> Мне как вкатывальщиу пиздецки как сложно во всей этой хуйне разобраться.


А вкатывальщику и не нужно. Тебе нужно язык освоить и на любой из залуп что-то сложнее ту-ду листа сделать, и понять базовые принципы построения архитектуры.
В реальной разработке не будет такого: Ой, новая технология, мы на нее сразу перешли; ой мы не будем это делать потому что нет спецов что знают хорошо фреймворк. Я вот, блядь, сярпоняша, когда пришел на дужна: да-а-а-а, смотри, у нас есть на джаве хреновина, вон багтреккер - пофиксь баги, разраб ее уволился, а мы сярпобояре сейчас заняты в другом проекте. Блядь, джава, сука. И пофиксил и ничего. А потом мне сказали: ну, вот ты пофиксил, молодец, теперь еще и знаешь как оно работает - перепиши на шарпах. И, сука, переписал, за неделю, 40к строк кода, и ничего. А потом мне говорят: чет ты какой-то слишком толковый, будешь мидлом считаться, зп поднимаем, и давай-ка ты на плюсах покодишь, а то чел что на плюсах кодит и так 4 проекта ведет одновременно, слишком сложно ему. И писал на плюсах. Благо сейчас таки более-менее проекты на шарпах только. Суть. Нужно понимание и умение разобраться с тем с чем ты не работал. Эт ты думаешь, что: "Ты ж программист" это мем такой, который только бабки всерьез используют, на деле про "Ты ж программист" тебе на работе будут толкать даже чаще, а крайним всегда будешь ты: ты не догадался, что вот тут, даже если не по проптоколу - нужно не кидать ошибку, а просто игнорировать, а вот там - таки кидать; ты не догадался, что пользователь - дегенерат, что не читает мануал; в ТЗ было требование такой нагрузки, в проде она в 100 раз больше оказалась и у тебя обработка запроса стала дольше 1 секунды - ты виноват и рукожоп, блядь, а не маркетологи, которые рассчитали хуево, не техдир, который исходя из ТЗ решил что не нужно усложнять систему, не тестировщики, которые не стали проводить нагрузочного тестирования нормально, нет - ты виноват в этом, что своим программистким чутьем не понял что так и будет - а потом - пиздуй чинить. Вот потому - не конкретные технологии важны, а база, умение думать наперед и закладывать даже в консольной утилитке по переводу температуры из цельсия в кельвины - возможность превратить ее в систему распознавания лиц, ибо придут, блядь, скажут - как охуенно оно в кельвины переводит-то, давай, чутка допилим...
612 1942737
>>1942726

> Мне как вкатывальщиу пиздецки как сложно во всей этой хуйне разобраться.


А вкатывальщику и не нужно. Тебе нужно язык освоить и на любой из залуп что-то сложнее ту-ду листа сделать, и понять базовые принципы построения архитектуры.
В реальной разработке не будет такого: Ой, новая технология, мы на нее сразу перешли; ой мы не будем это делать потому что нет спецов что знают хорошо фреймворк. Я вот, блядь, сярпоняша, когда пришел на дужна: да-а-а-а, смотри, у нас есть на джаве хреновина, вон багтреккер - пофиксь баги, разраб ее уволился, а мы сярпобояре сейчас заняты в другом проекте. Блядь, джава, сука. И пофиксил и ничего. А потом мне сказали: ну, вот ты пофиксил, молодец, теперь еще и знаешь как оно работает - перепиши на шарпах. И, сука, переписал, за неделю, 40к строк кода, и ничего. А потом мне говорят: чет ты какой-то слишком толковый, будешь мидлом считаться, зп поднимаем, и давай-ка ты на плюсах покодишь, а то чел что на плюсах кодит и так 4 проекта ведет одновременно, слишком сложно ему. И писал на плюсах. Благо сейчас таки более-менее проекты на шарпах только. Суть. Нужно понимание и умение разобраться с тем с чем ты не работал. Эт ты думаешь, что: "Ты ж программист" это мем такой, который только бабки всерьез используют, на деле про "Ты ж программист" тебе на работе будут толкать даже чаще, а крайним всегда будешь ты: ты не догадался, что вот тут, даже если не по проптоколу - нужно не кидать ошибку, а просто игнорировать, а вот там - таки кидать; ты не догадался, что пользователь - дегенерат, что не читает мануал; в ТЗ было требование такой нагрузки, в проде она в 100 раз больше оказалась и у тебя обработка запроса стала дольше 1 секунды - ты виноват и рукожоп, блядь, а не маркетологи, которые рассчитали хуево, не техдир, который исходя из ТЗ решил что не нужно усложнять систему, не тестировщики, которые не стали проводить нагрузочного тестирования нормально, нет - ты виноват в этом, что своим программистким чутьем не понял что так и будет - а потом - пиздуй чинить. Вот потому - не конкретные технологии важны, а база, умение думать наперед и закладывать даже в консольной утилитке по переводу температуры из цельсия в кельвины - возможность превратить ее в систему распознавания лиц, ибо придут, блядь, скажут - как охуенно оно в кельвины переводит-то, давай, чутка допилим...
613 1942753
>>1942737

>Тебе нужно язык освоить и на любой из залуп что-то сложнее ту-ду листа сделать, и понять базовые принципы построения архитектуры.


В этом то и проблема, я не могу нормально изучать одну тему. Синтаксис вроде уже изучил нормально. Перед сном читаю рандомные статьи на метаните и уже не возникает проблем что бы что то забыл или не понимал. А вот что то сделать не могу. Начинал асп нет еще учить, как то сложно пиздецки, сделал перерыв и сейчас впф изучаю, тож не очень то и легко.
Идеи есть а вот знаний для реализации пока нет(
614 1942762
Пацаны, в каком порядке обмазыватся этим вашем шарпом? Нужно для себя, но хочется и уметь делать всякие штуки что бы перекатится полностью. Сейчас могу в функциональщину и написать всякие простенькие вещи. Думаю заняться to-do листом. Из знаний то знаю синтаксис и немного работу с базами данных. В какую сторону развиваться? И желательно что бы с практикой, мне сложно поглощать знания не видя как они работают(я про конкретно вас вместе)
16085948630230.jpg125 Кб, 576x768
615 1942835
Сап шарп:
1) Есть одно шифрование. Как мне лучше всего хранить в приложении (exe) стрингу private key/secret и прочее? Обфускаторы сейчас умеют ее в жопу прятать чтобы ее нельзя было получить или это чисто технически невозможно? WPF если что.
2) Есть ли на wpf либа чтобы было увеличение image'a при наведении мыши, как на всяких интернет магазинах когда есть товар и при наведении на его изображение возле курсора есть такой квадратик с увеличенной зоной изображения.
Спасибо.
RSA 616 1942894
Есть пример кода на java. Нужно написать этот же код на C#. Код шифрует с помощью RSA/ECB/OAEPWITHSHA-512ANDMGF1PADDING алгоритма. Ключи распространяются в PKCS8, если не ошибаюсь, формате. Тривиальная и обычная для java штука, пример, который у меня есть - несколько строк кода без всяких сторонних либ (используются стандартные классы вроде KeyFactory и Cipher). Но как принято то же делать на шарпе? Гугление выдаёт какую то платную либу (Chilkat), странные велосипеды с парсингом ключей в RSAParameters (прям вытаскиваются байтами все эти модулусы и экспоненты и прочая страшная крипто-математика) или вообще сообщения типа "я искал-искал как сделать, но не нашёл и поменял алгоритм/ключ/либу на более удобные". Ищу кого-нибудь с опытом разработки на шарпе с ассиметричным шифрованием, что б он мне просто указал в какую сторону гуглить. Мне достаточно "все используют либнейм" / "все велосипедят ключи с нуля каждый раз, либ нет" / "все используют стандартные шарповские Rsa/RsaCng/RsaCryptoServiceProvider".
617 1943435
>>1942762
Напиши что-то в консольке со всякими паттернами и новыми фичами языка. Потом наверни entity framework и linq, заодно вникни в Expression. Добавь ASP.NET (MVC, если ангуляров не знаешь, WebAPI - если знаешь) и ты молодец.
102506.548446.6844.jpeg56 Кб, 615x400
618 1943531
Покидайте интересных задачек, плес. Я программированием чисто для себя увлекаюсь, до конца недели на больничном буду сидеть. Охото поковырять чего нибудь, попрактиковаться. Только не что нибудь очевидное, когда еще код не начал писать, а уже все понятно что и как сделать, типо, напиши свою борду, а там из шарпа это несколько методов в контроллере, остальное все бд и вьюха
619 1943550
>>1943531
А ты точно программист?
Напиши сервис сбора статистики с ТГ каналов.
Я хотел что то подобное сделать но чет я пока даже хз с чего начать.Вернее начать я знаю с чего но знаний не хватает пока
Суть приложухи.
НетКоре 3.1 ор нет 5
Приложение использует TDLib.
Вписываем канал но который подписываем наше приложение, приложение начинает следить за постами которые будут появляться, старые опустим. Появляется пост, его заносим в БД и ставим на проверку. Например проверять каждый час в течении недели и записывать данные, количество просмотров, или изменение текста поста.
Периодичность проверок и время проверок можно настроить.
Давай только сразу гитхаб выкладывай, я буду смотреть че как делать.
620 1943610
>>1943550

>Напиши сервис сбора статистики с ТГ каналов


Скучная хуйня, где всей сложности это в апи телеги разобраться.
621 1943612
>>1943610
ну тогда иди нахуй сам думаю креативный ты наш.
Screenshot1.png19 Кб, 578x334
622 1943687
Привет, зайчики.
На заводике в моей мухосрани открыта вакансия постоянно - Разработчик (MS SQL, C#).
Платят от 60к точно. Для меня это сногсшибательно, т.к. в дс ездить 2 часа и я не планирую тратить столько времени и сил, поэтому решил работать тут.
Так вот, сколько по времени надо будет +- изучить .net/c# и бд для того, чтобы вкатиться на заводик. Заводик хороший, много знакомых там работает.
Пикрил - требования для работника.
Самому мне 24.5 года, знаю базу всех языков (ооп когда-то что-то крутил на плюсах и джаве, но сейчас не помню от слова совсем, паттерны только в теории читал, считай не знаю). Хорошо знаю вёрстку и sql на 3/10.
Я сам по себе не тупой, поэтому проблем с освоением не будет.
Нужно мнение ваше, сколько времени займёт изучение того, что требуется на пикриле? (кроме плюсов)
623 1943691
>>1943687
Месяца 3-4
624 1943778
>>1943435
Сяп бро, постараюсь отписать со а
Временем
625 1943831
>>1942894
Bouncy castle
626 1944402
>>1943687
Судя по моему заводу - берут туды всех, даже знания не нужны. Другое дело, что на заводе на самом деле нет нормального разграничения: бек, фронт, блядь, язык.
Скажут - придется тебе ангулар за неделю осваивать, потом - сишечку чтобы драйвера писать, ведь тот кто писал драйвера - ушел в запой; потом скажут: короче, мы слышали что докер это крута, давайте докер в наш унитаз умный впихнем, охуенно же и ты будешь форкать докер и пытаться засунуть его в унитаз.
627 1944607
Посоны, как вы учили Linq? Сам С# учу уже месяц как, зашел на codewars свои знания проверить и охуел, я пишу процедурами на 10-15 строк, а остальные за 2-3 строки, используя Linq.
628 1944614
>>1944607
Линк сложно учить, если ты нуб и только вкатываешься. Линк хорош, когда ты 10 лет кодил ХП в СУБД.
629 1944622
Пытаюсь вкатиться в это ваше погромирование. Товарищ посоветовал шарп, причем вдруг с нихуя прислал мне видеоурок и литературу.
Посоветуйте какую-нибудь простую, но нетривиальную задачу прям вот полному ньюфагу, чтоб нескучно заниматься было. Ну и не тупо по урокам повторять, а самому что-то реализовывать.
Ну и заодно, такой вопрос, комфортно ли кодить на шарпе в линуксе? Пока сижу на дриснятке, но поставил из любопытства Мяту второй системой, и прям радует. Дрисня заебала, постоянно тарахтит жёстким диском.
630 1944630
>>1944622
1. Если ты только вкатываешься в кодинг, то тебе надо научиться выполнять самые простые задачки, что-то такое точно есть в твоих видосиках и книгах.
2. Шарп это в первую очередь кодинг под венду, так что сам подумай.
631 1944635
>>1944622
Зайди на codewars, я там задачки решаю, но если ты совсем ньюфаг, то лучше месяц подучи, а потом уже задачи решай. Сам месяц назад начал изучение C# по видеоурокам SimpleCode на ютубе, мужик внятно все объясняет и видео уроки короткие (10-20 минут), что радует.
632 1944659
>>1944630
Шарп уже давно может под все.
633 1944664
>>1944622
Чтоб нескучно было поставь Унити и делай Игорей
634 1944673
>>1944635
Да, его и смотрю. Понятно объясняет.
Последую твоему совету.
>>1944630
Видел, что можно на лине им пользоваться. Значит, возможность есть. Логично же. Вопрос, комфортно ли.
Ну или посоветуй, в чем кодить на Линуксе и под Линукс. Чтоб и востребованное было, и ньюфага не пугало.
>>1944659
Вот-вот. Пока все нравится, интересно. Когда-то давно щупал Basic в технаре, писал скрипты для модов на Моррошинд, а в целом опыта в программировании нет совсем. Но чёт на 36-м году жизни захотелось чего-то нового. Может и серьёзно вкатиться. Не резать же памятники до конца своих дней.
635 1944676
>>1944673

>Ну или посоветуй, в чем кодить на Линуксе и под Линукс. Чтоб и востребованное было, и ньюфага не пугало.


Джава. С высоты твоего положение, это тот же шарп.
>>1944659
Может, но не нужно.
636 1944677
>>1944673

>Не резать же памятники до конца своих дней.


Айти может заебать точно так же. Говорю как человек пару лет как вкатившийся. Такое же говно, как и везде, ну платят хорошо, да.
637 1944756
>>1944607
Шо там учить-то? Линку - декларативный же. Тебе и нужно-то только понимают, что значит каждое из слов, представлять как делается флюент интерфейс, ну и знать про лямбды и что в функцию можно передать в качестве аргумента в другую функцию.
Да блин, попробуй сам написать во флюент-стиле класс для фильтрации чего-нибудь без линку и iqueryable. Если не знаешь как - посмотри как делаются всякие спецификации, которые можно друг с другом объединять.
638 1944842
>>1944677
Дабл, ты дело говоришь.
Но я не о том немного. Резать памятники охуенно, и меня не заебало. Но это очень пыльная и вредная работа. Их приходится носить, а они тяжёлые, а спина не вечная. Так что просто готовлю задел на будущее.
Могу, конечно, перекатиться на написание портретов на том же граните.
А с другой стороны, новые навыки - новые нейронные связи. В любом случае хорошо.
>>1944676
Джаву можно тоже потыкать, да. Попробую.
Но уже начал шарп учить, всё нравится.
Ладно, буду пробовать, хули мозги ебать.
639 1944915
>>1944756

>сам написать во флюент-стиле класс для фильтрации чего-нибудь без линку и iqueryable. Если не знаешь как - посмотри как делаются всякие спецификации, которые можно друг с другом объединять.


Через екстеншены?
640 1945003
>>1944614
Нахуя вообще субд знать для линкью? Линкью это просто функции над коллекциями, и субд это только одна из немногих вещей, для котоорых можно юзать linq.
Если ты не дебил или хоть немного знаешь фп, то с линкью не должно быть никаких проблем.
641 1945042
У меня в vs code пикрил, как сделать, чтоб всё на английском было?
image12 Кб, 675x165
643 1945343
Что студия от меня хочет?
644 1945346
>>1945343
Все фреймворки и всё такое установлено
645 1945524
>>1945343
хочет чтобы ты не использовал в design-time конструкторы с параметрами. и если уж используешь, то не создавай инстансы
646 1945638
Чё-то я заметил, что для шарпа почти нет нормальной литературы, есть справочники на тысячи страниц, но именно обучающей литературы с упражнениями нету, чего нельзя сказать про ту же Джаву. Что за проклятие такое?
647 1945665
>>1945524
У меня в той же самой 19 студии тот же самый проект запускается и прекрасно работает, а такая хуйня на другом компе происходит
648 1945721
Челы, а я вот украл курсы скилбокса по шарпу, сижу делаю их модули и все такое. И там одно из первых заданий звучит примерно как "сделайте в консольке записную книжку, в которой можно создавать, смотреть, импортировать и удалять записи". И я вот не могу понять как удаление реализовать. Все что я придумал это записывать текущий файл в массив, удалять оттуда запись, удалять старый файл, создавать новый, записывать в него массив. Но это же говно какое-то? Как это элегантно обставить?
649 1945744
>>1945721
Мне не до конца понятно, как именно у тебя хранятся данные. Если я правильно понял твою реализацию, то да, простейшим вариантом будет считать из файла, десериализовать, удалить лишнее, сериализовать и перезаписать файл. У тебя наверняка методы чтения и записи уже реализованы. Если тебя производительность беспокоит (а она не очень будет на больших файлах) - используй базу данных.
650 1945758
>>1945744
У меня эксель файл в который я все записываю.
image.png25 Кб, 440x585
651 1945771
я тупой, но попытаюсь обьяснить. Короче как более грамотно будет?
Поле-коллекция,или поле- класс, реализующий интерфейс коллекции? Фактически там одно и то же. Но все таки как правильно?
652 1945796
>>1945771
А почему у тебя все public ?

Правильнее будет сделать публичное свойство для получения экземпляра Worker { get; }, а внутри сделать приватную реализацию как удобнее Dictionary<int,Worker> например или лист или кастомное че
653 1945799
>>1945796
Если надо всю коллекцию получить, метод Workers[] GetAllWorkers()
654 1945803
>>1945796
Так ты избавляешь от проблем, если вдруг нужно будет поменять тип коллекции, а массив поддерживается по умолчанию.
655 1945841
>>1945758
Эксель это суперхуевый формат для таких задач, почитай уже про xml или json.
656 1945968
>>1945721
При запуске приложения у тебя с файла считывается инфа и запихивается в массив. Далее ты удаляешь нужный элемент массива, или другие действия. И потом записываешь обратно в файл. Насколько я помню, есть метод, который перезаписывает файл, т.е. чистит файл и записывает туда новые данные. И про этот метод было сказано в модуле, слушай внимательнее.
Мимо такой же вкатыш по спизженным курсам скиллбокса
657 1946061
Тут есть кто живой? Приём!

У меня вопрос! Смотрел в инете, но решения не все понравились.

Задача - получить доступ к некоторым элементам формы номер один из формы номер два.

Нашёл в инете интересное предложение создать список форм в отдельном классе, создал, изменить видимость или работоспособность не проблема, всё прекрасно. Но вот управлять элементами не получается. Я попробовал поменять параметр modifer с private на public, но видимость не поменялась.

Как обращаюсь к одной из форм - SomeList[0], где ноль это номер формы, ну а далее через точку.

Чего хотел бы - чтобы в этом списке появился нужный мне элемент, дабы его свойства поменять.

Ну или как правильно подобное делать.
658 1946236
>>1945803
нипонел. Ну юзай ICollection тогда
659 1946445
Что за хуйня, почему я не могу найти ни одного нормального способа преобразовать дату с# в дату JS

Какого хуя, они что такие разные блять? Почему нельзя просто сделать метод, мол, date.ToJson() и обратно, что за хуйню я вижу на стак оверфлов с их ебанутыми парсерами по типу пикрилов,

ЛЮДИ КАКАЯ НАХУЙ КОЛОНИЗАЦИЯ МАРСА, у вас блядском фронте и беке одной страницы несовместимые форматы дат, ЛЮДИ ВЫ ОБОСРАЛИСЬ! ПРОСНИТЕСЬ! ебать и они еще с тупых пиндосов ржут из-за их имперской системы мер не замечая при этом все вы живете в полном говне хаотических стандартов. Я все сказал! Бесите! Кцс тьфу!
660 1946529
>>1946445
марсоход не видит разницу между не-десятичной системой мер и просто разным форматированием одного значения?
небось у тебя 21-00 и 9 после полудня разное время
661 1946536
>>1946529
О, дебич проснулся который не знает что в джс дата начинается с 1970 и измеряется в милисекундах а в с# дата начинается с нулевого года и изменяется в тиках, с пробуждением гений ты мамин
662 1946543
>>1946536

> джс дата начинается с 1970


да хоть от большого взрыва

чем 19 февраля ( то есть сегодня) в жс отличается от 19 февраля в шарпе? указывают на разный день?
663 1946557
>>1946543
В том что ты не можешь сделать простой serialize из одной даты в другую гений потому что одна жата это милисекунды а другая тики, в жс в принципе нет такой херни как тики что бы можно было нормально преобразовать и приходиться извращаться как дебичи с пикрилов выше вместо нормального квантовго преобразования как у жидомасонов
664 1946566
>>1946557
причем тут миллисекунды? причем тут тики? что ты несешь?
ты жалуешься на разный формат даты
для таких как ты придумали ISO 8601 как стандарт
или согласшение unix time (timestamp) от 1970 года

используй один формат на обоих сторонах и проблем не будет.

у тебя на пике 1 вообще хуета какая то
парсишь строку вида Date(числа)
ты бы еще вместо такого формата лучше бы фото солнечных часов сериализовал и на шарпе распонавал через нейросети

сам себе находишь проблем на ровном месте пока люди на марс летят
665 1946726
>>1946566
Ты имеешь виду просто форматировать строку в подходящий для исо формат? Как здесь? и скормить дату как стринг в виде "yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz" а потом в таком же формате прочитать типу date("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz");
667 1946749
>>1946726
данные это одно, а их форматированный вывод это другое
данные всегда везде одинаковы, а формат зависит от региональных настроек
Если дата ходит между сервером и клиентом, то она обязана быть стандартизированным значением.
Это вообще универсальный совет - храни дату в стандартизированном виде (и желательно UTC), а форматируй уже при выводе пользователю.

тогда избежишь проблем парсинга - стандарт ведь.

конечно жс херово работает с датами из коробки. просто люто херово. Но даже там есть тонна либ, которые делают работу вменяемой
e3b66f3429a6f7e5ca6dafac19f3a362.jpg68 Кб, 439x604
668 1946848
>>1946061

> получить доступ к некоторым элементам формы


> Ну или как правильно подобное делать.



Через биндинги)))))))))))))))))))))))))))))))))))))))).
669 1947009
Какой же шарп классный! Просто пишу и не могу нарадоваться.
670 1947243
>>1947009
как можно называть классным язык где IList не наследует IReadOnlyList
671 1947381
В контроллере имеется метод Create, с помощью которого мы добавляем данные в БД. Есть авторизованный пользователь(реализовано с помощью AspNetCore.Identity) с определенным UserId. Мне нужно, чтобы в данном контроллере при добавлении данных к ним автоматически привязывался UserId текущего авторизованного пользователя(дабы потом каждому пользователю отобразить только добавленные им данные). Только я нихрена не понял как это реализовать. Определять ID текущего пользователя я научился, а вот как добавить эти данные в БД, с остальными данными, которые он ввел я не врубаюсь.
image.png852 Кб, 1920x1080
672 1947385
кринж
673 1947394
Калькулятора на гитхабе хватит для устройства на галеру?
674 1947399
>>1947381
Вот же я тупой, стоило сходить в туалет, и понял как это сделать.
675 1947484
>>1947394
Учебных проектов из трех книг по шарпу хватит для переката в Европу?

Нет я не ебанулся, просто времени на пет-проджекты не было, а так 4 года в продакте
676 1947506
>>1947484
Но калькулятор очень крутой...
image.png9 Кб, 448x217
677 1947514
678 1947564
>>1910324 (OP)
Котанчики помогите ЛАМЕРУ
Короче есть прошивка на плеер, она типа дохуя меняет звук - а каким образом мне решительно непонятно - автор таюшничает, не палит контору, а хочется понимать механику работы и че там изменяется
http://file.sampo.ru/r2rwkj/
Тут 3 DLL файла по 100 кб в каждом из архивов, 1 стоковый другой от его прошивки - скажите че там ваще внутри происходит плез
679 1947706
>>1947394
С поддержкой проядка действий и операций помимо сложить-вычесть-умножить-разделить - вполне. Эт как-бы как минимум нужно знать терорию автоматов, уметь простенькие стейтмашины делать и пользоваться структурами данных типа стека. Меня вот на джуна взяли просто за то что я знал что делает out, лол.
680 1947797
Слышал мнение, что контроллер АПИ должен выступать только как точка входа и, максимум - приводить запрос к виду пригодному для дальнешей обработки. Кто-то поддерживает это мнение? Мне вот кажется, что это бессмысленное усложнение, лишние абстракции и вообще не так уж удобно. Вот я на данный момент - валидацию таки в контроллере провожу, как и всякие штуки по проверки прав доступа к реусрсу и только после этого передаю это обрабатывающему саму логику запроса коду, такой вот КПП получается, меня только смущает что из-за DI - ресурсы не так эффективно используются, ну да ладно. В общем, поясните, когда абстракция - лишняя, а когда - лучше ничего не разбивать.
15876740362891.webm1,7 Мб, webm,
320x240, 0:43
681 1947933
Я тут экспериментировал и кое-что заметил. При перегонке что? объекта в родительский класс перезаписанный метод не меняется.

Подробней:
Есть класс Person, есть класс Worker. Класс Worker наследуется от Person. В классе Person есть virtual метод, который я перезаписываю внутри Worker. При приведении экземпляра класса Worker к типу класса Person, метод остается измененным. Есть решение?
682 1947939
>>1947933
Я даже не могу представить ситуацию, когда это нужно. Но если так уж хочешь - рефлексией дергай метод родительского класса.
683 1947974
>>1947933
Да, вместо virtual / override используй модификатор new для метода в классе Worker.

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords
684 1947978
>>1910324 (OP)
есть cs-файл. И есть lf в EOL. Есть github. И есть загрузка файла в репо, через веб-интерфейс. Есть git. И есть git clone repoURL. Есть папка, и какого-то хуя CRLF в EOL. FUUUUUUUUUUUUUUUUUUU!
685 1947980
>>1947978
Напишите кто-нить в поддержку github'а, пускай добавят EOL в blame, при просмотре файлов.
686 1948037
>>1945665
он и будет работать. при выполнении то проблем с инстанцированем вьюмоделей нет
и может быть нормально за счет ранее собранного
сделай clean solution и все будет как и на другом компе
687 1948093
наткнулся на некую хуевину BLAZOR. это что вообще? замена жс? подводные камни?
image.png657 Кб, 821x954
688 1948100
Ребят мб знает кто какой скриптик на asp net core mvc что бы не сильно сложный был. Ну мб админка какая, или же хуй знает ну корочи скрипт с 10 вьюхами и моделями что бы не запутатся, поделитесь ссылкой пожалуйста. Хочу посмотреть как ваще делается правильно.

>>1948093
Это ахуенная штука, я смотрел обзор. Сразу после разорПейдж буду его изучать.

ЖС рудимент веб 1.0 он должен умереть как умерла асикью, майл агент и жабер.
689 1948198
Сап аноны, собеседовали по c# javascript и БД в итоге взяли на стажировку на разработчика crm систем или что-то такое. Пока не совсем понял что это и несколько все это вообще хорошо/плохо, оторвано от реальности (т.е. смогу ли я в другие компании потом влететь или это в один конец)
690 1948368
Есть ли какая-то возможность писать классы и методы, у которых будет обобщённый тип float или double? С возможностью складывать, умножать числа и т.п.
691 1948377
>>1943687
На уровне макаки - 5 недель.
На уровне, чтобы уже завтра не было стыдно, какую хуйню ты написал - 5 лет.
692 1948477
Есть CRUD приложение ASP.NET CORE+EF CORE. Мне нужно, чтобы при редактировании данных пользователь мог редактировать не все поля. Для этого я создал модель представления. С реализацией view и POST запроса при редактировании я разобрался. Но вот с реализацией GET запроса у меня проблемы. Мне нужно, чтобы данные, которые нужно редактировать передавались в view, также я проверяю относится ли данная задача к авторизованному пользователю и проверка на 0(не null), ибо если ид поставить равным 0 вылетает исключение. Я сделал рабочую реализацию, но код выглядит отвратительно, можно ли реализовать это лаконичнее?
693 1948621
>>1946061

> Нашёл в инете интересное предложение создать список форм в отдельном классе, создал


Как стартует твоё приложение?
Откуда оно начинается вообще?
Что происходит, когда ты запускаешь my_huita.exe ?

Мой ответ:

> у меня есть класс со статик-методом Main() который автоматически вызывается при запуске приложения. В этом методе инициализируется графический фреймворк, создаётся графическая форма и выводится на экран, после чего создаётся бесконечный цикл, именуемый главным циклом, в течение которого выведенное окно висит на экране и принимает сигналы и обрабатывает коллбэки.



Мой следующий вопрос: Когда ты запустил приложение и создал форму, куда делась переменная, которой был присвоен инстанс окна, которое ты создал?

Вот когда ты ответишь на этот вопрос, ты автоматически поймёшь, как создать и хранить несколько окон и управлять ими, включая докинг, скрытие, сортировка и т.п.
694 1948640
>>1948477
ХЗ, я бы так вот делал)))
695 1948706
>>1948640
Я бы тебя за такое в продакшн коде убил.
696 1948733
где можно про все эти POST и т.д. почитать с примерами?
я поймал себя на мысли, что мне здорово работу облегчит если запилю программу, которая будет тягать данные с удаленного сервера через апи, у них только через ssl+oauth, а я в душе не ебу как там с этими интернетами работать надо.
я бы и нормального прогера нанял, но прибыль с приблуды его зп не окупит
697 1948756
>>1948733
Че там читать? У http есть несколько типов запросов - get-post-put-delete и т.д. в соответствии со спецификацией - одни могут тело содержать, другие нет. Сервер должен уметь их обрабатывать. Собственно, все что знать нужно. Нажми f12 и во вкладке network посмотришь как эти запросы сами выглядят.
698 1948786
>>1948756
а как это же самое через SSL и OAuth провернуть?
699 1948908
>>1946749
Данные нихрена не одни, я уже писал что данные измеряются в разных величинах, а еще например в джс месяц начинается с нуля, а в с# с единицы ну это так, один из примеров ебанутость джса, из-за этого все парсеры такие ебанутые с додаиванием и отниманием чисел, а то что ты написал тоже хуйня, потому что если траблы с часовыми поясами в с# utc now и now не равны, а в джс равны, ты понимаешь насколько это большая проблема? и вообще вся эта херня с "ну просто передать дату стрингом" какой же это убогий костыль в стиле ебучих джейесов где

if( "1 + 1"){console.log(2);}
700 1949044
Видел некоторое количество кода на шарпе, где по задумке нужен двумерный массив, но вместо того, чтобы использовать двумерный массив, поставляемый языком, авторы кода используют для хранения данных одномерный массив + собственную функцию пересчёта двух индексов в один.
Почему? Зачем?
701 1949048
>>1947797

>Мне вот кажется, что это бессмысленное усложнение, лишние абстракции и вообще не так уж удобно.


Охуел? А за что ты деньги будешь получать? 2 строчки напишешь и всё? А ну-ка создавай ещё один проект, там создавай сущности, дто для них, дто для дто, дто для дтодто, потом отдельно сущности валидаторов, валидаторы для валидаторов, ещё привяжи как минимум 10 библиотек из нугета, отдельно классы для каждого пука и всю эту ебанину покрыть юнит-тестами. Зачем? А чтоб ты заебался!
702 1949049
>>1948198
Бамп Вопросу
703 1949052
>>1949049
Сходи на стажировку, посмотри что там да как, может тебе понравится и останешься там. Ну а не понравится - уйдёшь оттуда.
704 1949055
>>1949044
Чем меньше размерностей массива, тем меньше проверок выхода за его границы. В идеале для оптимизации надо использовать unsafe указатель.
705 1949073
>>1948908
причем тут работа жс с датой

жс конечно ебанутый, но ты смешиваешь "работу с датой" и "передачу даты между языками", чтобы метка времени что послал жс и была распарсена шарпом(и наоборот)
указывала на один момент времени

Если использовать стандарты типа ISO 8601 (date.ToString("o");),
то "22 февраля 21года с таким то временем и часовым поясом" распарится в жс именно в 22 февраля (и похер как считаются месяцы)

Далее работай с датой как хочешь, а потом преобразуй в ISO чтобы шарп правильно понял отметку времени.

Стандарты для этого и придуманы

точно так же можно работать и с миллисекундами, но там лучше использовать соглашение приводить время к UTC
706 1949077
>>1949073
а что если у меня нет возможности парсить так как просит джс, что если у меня например выполняется sql процедура на странице? и такой хуйни как toString("0') в sql тупо нет, и вообще это же значит что мне КАЖДЫЙ РАЗ надо будет парсить с текущей культуры в ISO 8601 потом в ту что хавает шарп и наоборот, господи какое же это убожество, ненавижу блять джс
.png11 Кб, 588x303
707 1949101
>>1949044
Лично по моему опыту так делается потому, что в фреймворке оч много есть штук для обычных массивов, а вот для двумерных, трехмерных - нихуя нет. Ты не сможешь пользоваться линку, не будет удобного способа скопировать и вообще. Короче, фреймворк во многих местах заточен под работу с одномерными массивами, банальный линку ты не сможешь применить нормально.
А насчет проверок выхода за границы. Там зачастую тебе это оптимизирует компилятор. Ну и вообще, такой уровень оптимизации начинается когда уже совсем уперлись в перформанс, в 99% случаев в шарпе у тебя скорость работы будет больше страдать из-за того что ты вводом-выводом занимаешься.
708 1949103
>>1949077
чего чего у тебя нет?
у тебя жс прямо с базой sql работает что ли?
тогда причем тут шарп

А если же жс общается с приложение на шарпе, то значит шарп у тебя есть.
Впрочем опять же если тебе шарп только мешает ибо ты "хочу чтобы вот тот формат даты что я в жс использую вот я так в базе данных храню", так это у тебя еще одна проблема.

и ISO 8601 парсить особо не нужно. биндинг того же асп.нет коре его сам сбиндит
709 1949104
>>1949101

>Ты не сможешь пользоваться линку,


ну народ пытается исправить этот недочет как может
https://github.com/evilguest/linq2d
image.png59 Кб, 1227x398
710 1949113
>>1949073
Ты что не слышал про выполняемые процедуры на клиентской стороне?
711 1949126
>>1949113
ах эти asp контролы
я промотал все это сразу до выхода асп.нет коре, где всего этого нет
И вообще считаю, что эти контролы больше палки в колеса ставят
Про запросы SQL в виде кода вообще брррррр гадость.

так что это у тебя конкретно в асп старом проблема, что вот у тебя контрол и такая жопа с датами, а не в общем проблема жс и шарпа в непонимании друг друга
712 1949128
Я наверное куда то не туда смотрю чи шо.
Статистика серверного языка сайтов ни как ни коррелируется с вакансиями
image.png48 Кб, 590x658
713 1949129
>>1949128
Первый пик то хуета, вот этот правильный.
image.png13 Кб, 843x107
714 1949135
>>1949126

>так что это у тебя конкретно в асп старом проблема


Клиентский контрол который использует жс что бы прочитать дату с сервера, но джс обосрался

> а не в общем проблема жс и шарпа в непонимании друг друга


>НЕ ПРОБЛЕМА В ЖС ПОТОМУ ЧТО Я ТАК СКОЗОЛ



как же ты маняврируешь,

и что плохого в тому что бы сразу обращаться в базу вместо этих ваших менеджеров хуенеджеров, виртуальных классов посредников\прокладок и тп? ты в курсе насколько такой подход более производительный? даже учитывая что старый асп в целом медленее но такой подход все равно на порядок быстрее и менее трудозатратный

и кстати не работает твой сраный ИСО, ОН ТОЖЕ ОБОСРАЛСЯ
715 1949138
>>1949135

>и кстати не работает твой сраный ИСО, ОН ТОЖЕ ОБОСРАЛСЯ


я выплыл на лодке в поле. гребу гребу, нихрена не гребет. херня эти ваши лодки )))

>контрол который использует жс


>но джс обосрался


никаких проблем между послать дату шарпа и получить ее на жс не наблюдаю.
наблюдаю проблему с конкретной реализацией некоего контрола.
я с ним не работал и не писал его. Но я сильно подозреваю, что он не накладывает никаких требований на "что храним в базе данных" и как результат получаем хрень.
А в базе не нужно хранить абы что, а нужно хранить метку времени в UTC (можно и timestamp) либо ISO
И конечно же контрол этот момент не учитывает, ведь его задача делать запросы в базу и выводить и такой момент с разным форматом или упущен (как оно обычно бывает) или же где то это учтено (мож конвертеры какие), но про них не знаешь.

>и что плохого в тому что бы сразу обращаться в базу


Ответ на этот вопрос понимаешь, когда нужно изменить название поля или структуру данных и начинаешь ползать по всему проекту, по которому все эти запросы размазаны

>ты в курсе насколько такой подход более производительный?


да ни насколько. единственная радость - удобство создания контролов, где не пилишь сам хтмл + жс, а типа контрол.
716 1949147
>>1949138
Ты вообще понимаешь что за чушь ты пишешь? Никаких требований на "что храним в базе данных", я же самого начала написал что у меня подгорает из-за того что я должен париться из за таких мелочей как "что храним в базе данных" В КАКАОМ БЛЯТЬ ВИДЕ ХРАНИТЬ ДАТУ В БАЗЕ, а какого хрена вообще? ты понимаешь что я не должен хранить в базе ДАТУ ЕБУЧИМ СТРИНГОМ, дата это лонг, это последовательность битов, это такой же универсальный тип данных как инт или в стринг, а ты мне говоришь, ну храни дату в стринге и парси ее для жса, в чем проблема, что за чушь вообще? почему сраный джс мне указывает как я должен хранить дату, ОН ДОЛЖЕН ЖРАТЬ ЧТО ДАЮТ, будь я китайцем или я араб и пишу вязью, время у меня будет точно такое же, а дс уже должен взять эти биты и красиво нарисовать из них иероглифы китайцу и арабскую вьязь арабу А ОН ЭТОГО СУКА НЕ ХОЧЕТ ДЕЛАТЬ
717 1949148
>>1949138
Ответ на этот вопрос понимаешь, когда нужно изменить название поля или структуру данных и начинаешь ползать по всему проекту, по которому все эти запросы размазаны

ctrl + shift + f
не благодари
718 1949151
>>1949147

>я же самого начала написал что у меня подгорает из-за того что я должен париться из за таких мелочей


вот только в виновники ты записал жс и шарп, а не конкретную реализацию конкретного контрола, которая не дает....я честно говоря хз че она там не дает. Если бы контрол писал я, то с датой работал как с датой и форматировал исключительно при выводе не теряя оригинальную дату как контекст.

Я конечно считаю жс лютым говном. Во всем мире не найдешь человека, который считает жс большим говном, чем считаю его я. Но истина дороже

>ДАТУ ЕБУЧИМ СТРИНГОМ, дата это лонг, это последовательность битов, это такой же универсальный тип данных как инт или в стрин


шта? ты щас вообще о чем. Какой еще стринг.

>парси ее для жс


вообще то не парси а форматируй ее в ISO, если у тебя на руках объект DateTime(Offset), который нужно послать.
У тебя же контрол который сам достает из базы и похоже шлет на клиента "как есть" и если SELECT ddd FROM ... выдаест ISO то жс умеет.
new Date() в жс отлично понимает и ISO формат и миллисекунды.

А если ты в базе хранить 25/05/2021 то ты сам себе злобный буратин

>ctrl + shift + f


то есть ты предлагаешь лазить по всему проекту пропуская сотни левых совпадений с шансом накосячить и это вместо автоматического рефакторинга - спасибо, но не нужно.
719 1949152
Почему ajax выполняет то что находится в success: до того как приходит ответ?
720 1949170
>>1949151
какого контрола? О чем ты говоришь? При чем тут реализация вообще?

>шта? ты щас вообще о чем. Какой еще стринг.


Так это ты про какой-то utc в базе мне расказивал, что уже не бойсь не помнишь, заднюю включил?

>вообще то не парси а форматируй ее в ISO


Вот по этой фразе я понял что ты нихуя не понимаешь о чем, говоришь, потому что date.toString("0") про который ты мне писал это и есть парсер гений, дата записывается и храниться в лонге, в цифровом виде, а приведение его к стрингу вот так date.toString("0") это парс

то-есть ты переводишь родной цифровой формат в стринг, скармливаешь его джс, и он из стринга переводит его в своей ебанутый формат, это и есть парс глупышка

>А если ты в базе хранить 25/05/2021 то ты сам себе злобный буратин


в базе храниться не 25/05/2021 в базе храниться 633896886277130000 sql показывает тебе 25/05/2021 только из за твоих региональный настроек, был бы ты арабом показывал бы 2021-05-25 то каким образом скл отображает цифровое значение не имеет вообще никакого значения

>то есть ты предлагаешь лазить по всему проекту пропуская сотни левых совпадений с шансом накосячить и это вместо автоматического рефакторинга - спасибо, но не нужно.


нет, у нормальных программистов есть документация со всеми сносками, а вообще порадовало твоё представление как работает поиск, будто ты всю жить в каком нибудь блокноте работал
721 1949186
>>1949170

>какого контрола?


на скрине вижу некий FilteredGridView. Ты же его показал как пруф того, что "никакого шарпа между жс и запросами в бд у тебя нет, оно все само такое дурное)

>вот так date.toString("0") это парс


вообще то это формат (формат в стандарт ISO), то есть действие обратное парсингу, ну да пофиг.

>633896886277130000


миллисекунды? тогда в чем проблема? откуда на твоих скринах парсинг каких то Date(12345?

>то каким образом скл отображает


Так то я всегда говорил про формат, в котором дата должна ходить от сервера к жс, чтобы жс ее правильно понял.
сам то я вообще никогда не извлекаю вот так сырые данные чтобы отправить - у меня из базы приходит готовый объект DateTime(Offset), но даже так в SQL SERVER есть функции типа convert

>у нормальных программистов есть документация со всеми сносками


у нормальных программистов самодокументируемый код так то

>как работает поиск, будто ты всю жить в каком нибудь блокноте работал


как раз у меня открыта последняя студия и я нажал в нем ctrl + shift + f и забил в поиск completed. И вижу что это самый обычный поиск по файлам без учета контекста. То есть ничем не отличается от блокнота
722 1949201
>>1949186

>вообще то это формат (формат в стандарт ISO), то есть действие обратное парсингу, ну да пофиг.


Формат стринга! Ты неуч, toString парсит дату из цифрового формата в стринг, а параметром парсер уже принимает формат к которому нужно привести одпаршеный стринг, в данном случае он принимает "O" то есть формат ISO

>миллисекунды?


какие миллисекунды ,что ты несешь вообще господи, иди нахуй читать документацию
723 1949216
>>1949201

>toString парсит дату из цифрового формата в стринг


Откуда ты таких метафор нахватался?

toString конвертирует дату в строковый формат в соответствии с заданным шаблоном. Ну или форматирует дату в соответствии с заданным форматом, что менее юридически точно, но все равно верно.

парсинг работает ровно наоборот - из текстового получаем объект даты.

твое "парсит в стринг" будет применимо только если строка будет производить операцию типа String.FromDateTime("o", dateObj)

>какие миллисекунды ,что ты несешь вообще господ


ааа. ты про внутренний формат хранения в бд. Так он не имеет значения. Важно то, что выдается в твоем SQL. И выдать там ISO который изи поймет жс очень легко (тем более что ты запросы руками пишешь)
откуда я знаю что ты там где как хранишь. То ты напрямую из базы выводишь, то какие то парсинги на жс и шарпе делаешь, причем вообще не пойми чего парсинги

напомню с чего все началось
>>1946445
первый пик - вообще хер пойми что ты парсишь. что это за Date(1225547 из которого ты вручную выбираешь миллисекунды похоже и таймзону да?
что это вообще формат такой. ты жалуешься что тебе приходится его мудрить парсить на шарпе вот так - так а зачем ты такой его прислал???? Что ты вообще присылаешь в шарп, что вот так оно выглядит не как дата? почему не пришла вменяемая дата которую просто бы скушал DateTimeOffset.Parse и вообще сделал бы это сам при бинде параметров - ни строчки кода ручками

второй пик - что это за ручной разбор даты
кто мешает сделать просто
new Date(dateStr)?
что такое вообще csDate что не дата (раз надо конвертить) и не строка, раз делается toString()

гоняешь между языками не пойми что, которое и приходится руками разбирать, а потом еще винишь кого то
724 1949220
>>1949216

>парсинг работает ровно наоборот - из текстового получаем объект даты.


Ты прав в том что парсер формально означает преобразования из стринга в цифру, я использовал слово некорректно, я конечно же имел ввиду совершенно противоположный процес, преобразования из цифры в стринг

>Так он не имеет значения. Важно то, что выдается в твоем SQL. И выдать там ISO


как раз таки только сам объект даты и имеет значение, а то в каком виде или в каком часовом поясе его отобразить должно быть совершенно по барабану

>первый пик второй пик


не ищи там логики, я просто скинул наиболее дебильные ответы со стака от которых я подгорел
725 1949234
Сап, я чет не пойму, объясните мне дебилу про реалий вкатывания в шарп, дотнет. Возможно ли сейчас устроиться, или нет? Везде разные мнения, не поймёшь где правда. Подскажите где об этом подробнее узнать, если впадлу отвечать. thx
726 1949235
>>1949234
сейчас после пандемии все устоялись мамскинимы программистами на дому, у работодателей отбоя от них нет поэтому сейчас не лучшее время
727 1949239
>>1949235
Думаю ньюфагу вообще без шансов сейчас...
728 1949249
>>1949239
>>1949234
Это еще кстати только пол беды, сейчас денег ни у кого нет, пандемия подрезала финансовые подушки и если раньше можно было взять долбоеба в расчете на "ну а вдруг будет из него толк через годик второй, подучится" то сейчас уже мало кто соглашается на такие эксперименты
729 1949254
>>1949249
и какие варианты , пережидать пока уляжется всё?
730 1949259
>>1949254
Крипта же, ну
731 1949271
>>1949259
программировать свою крипту на шарпах?
732 1949276
>>1949271
А ты шутник
733 1949282
мб криптография?
734 1949286
>>1949276
ну не майнить же
видях не купить, да и за что купить
чтобы купить видяхи нужно сначала заработать на шарпе денег
а работы нет

купить крипту? ну мы же не маски
735 1949288
я тоже не понял про крипту
736 1949313
>>1949234
Ну, все ж зависит. Если ты рассчитываешь на стори про 100к джуну - то не вкатишься. Если ты понаехавший в ДС и просишь 40к+ не имея опыта - не вкатишься. Если ты чел без опыта на удаленку рвешься - почти нет шансов. Если в твоей мухосрани нет контор, в которых шарп нужен - не вкатишься.
В остальных случаях - вполне.
737 1949328
>>1949313
Я правильно понимаю, что трейни на шарпах в природе нет? И они за спасибо работают?
738 1949331
>>1949328
Ну, не за спасибо. Я в 2018 за 12к работал.
739 1949337
>>1949331
Web dev?
740 1949382
>>1948706
Поясни плиз.
мимокрок, не он, новичок, хочу понять
741 1949599
>>1910324 (OP)
Как сбилдить репозитарий с шарповым кодом, автоматом,
прямо на github'e, с помощью Azure Pipelines,
чтобы этот значёк был зелёным, https://github.com/ChristianEder/azure-pipeline-as-code
и заебато чтобы всё фурычило,
прямо из кода открытого,
и чтобы не надо было пердолится с конпеляцией ядра на ассемблере,
и чтобы бинарники можно было скачать бесплатно и без смс,
и чтобы оно было зелёненькое-зелёненькое,
как тут: https://github.com/bcndev/bytecoin
742 1949684
>>1949286
>>1949288
Взламывать кошельки, пиздить коины, творить беспредел, сколько Анонов на этом состояние подняло и не сосчитать
743 1949721
Аноны, есть ли на wpf бесплатная либа для image'а для зума изображения на даблклик/колесико, желательно с анимацией?
744 1949731
Ребяты, вот например юзер вводит данные на сайте какие либо. Сайт на основе этих данных делает расчеты и выдает юзеру. Где по правилам MVC должен проходить расчет?

Данные передаются в контролер и прямо там считаются? Либо должен быть отдельный класс метод которого будет вызван в контролере для расчета?
745 1949733
>>1949731
Желательно класс или менеджер в контролере должны происходить только проверки и бинд модели
746 1949734
>>1949731
Желательно класс или менеджер в контролере должны происходить только проверки и бинд модели, ну это так у нас делают
image.png14 Кб, 260x279
747 1949738
>>1949734
Спасиб.

И еще вопрос, как получить пикрил инфу в асп коре? В каком классе она хранится?

Я так понимаю когда юзер заходит на сайт создается экземпляр класса с данными о юзере?
748 1949748
>>1949738
Зависит от платформы, это все есть в документации: https://docs.microsoft.com/pl-pl/dotnet/api/
749 1949815
Купил clr via с# и понял, что я нихуя не понял. Я уже года 2 пишут на шарпе, но это же лютый пиздец какой-то, у меня аж пар из ушей пошёл. Для кого эта книга?
750 1949865
>>1949815
C# Fullstack?
5345321542345.jpg739 Кб, 1773x1638
751 1949915
>>1949815
Двачую. Я когда только начинал учить шапр, по совету двачей, тоже засел на эту книгу. И как прилежный ботан пытался вдумчиво понять каждую читаемую строчку. И из-за вот такой хуйни, как на пике, которая буквально с первой страницы встречает нюфага, руки которого чешутся перед первым хелловордом, я чуть и не дропнул шарп тогда.
И дело не в том, что книга перегружена сложной и непонятной хуйней, а в том, что 99% инфы оттуда имеют такое сочетание сложности (средняя и высокая сложность) и практической применимости (нулевая применимость), что каждую минуту задаешься вопросом, нахуя это читать.
Книги по плюсам у меня никогда такого отношения не вызывали, потому что всякая плюсовая магия всегда на кончике пальца и в деле.
752 1949931
>>1949915
>>1949815
Ооо блять да, тоже ее с шапки было скачал, где-то на 70 страницах дропнул и пошел смотреть видосики для даунов.
753 1949932
Я пишу для себя микробиблиотеку тривиальной обработки геометрических сущностей: точки, отрезки, боксы, линии, пути, кольца, полигоны, поверхности.
В принципе, кроме косметических правок, основную реализацию всех объектов написал (переписал со своего древнего говнокода). По ходу дела обнаружил, что частичные аналоги уже есть в стандартной библиотеке. В WinForms есть реализации многого из того, что мне нужно, однако зависимость от форм не хочется добавлять. И не думаю, что там всё это имеет какие-то оптимизации.
Есть также структуры Vector2 и Vector3 в пространстве Numerics. Может ли быть какой-то профит использовать именно их? Вроде как они очень круто оптимизированы. Недостаток их использования для меня, что я всё же не могу нормально расширить их функциональность.
В общем, что посоветуете по этой теме. Перформанс важен, но удобство кодинга и контроль над кодом важнее.
754 1950023
>>1949932

>Перформанс важен, но удобство кодинга и контроль над кодом важнее.


Если тебе Vector2 и Vector3 не подходят - ты ответил на свой вопрос.
755 1950105
А вот если нет данных в MVC то получается и модель не нужна?
Ну вот к примеру будет сайт с 5 страницами и обработкой введенных данных от пользователя. Вроде же некуда тут модель впихивать.
756 1950143
>>1950105
В этом случае тем не модель не нужна, а MVC в целом. Просто статические страницы с обработкой на клиенте, ну или если нужно сервер-сайд выполнение, то апишка с вызовом твоей числодробилки (сервис аз ис)
757 1950222
>>1949915
>>1949931
А я её в бумаге взял...
758 1950282
А есть положительные отзывы на CLR via C# ? Ощущаю, что глубинного пердолинга стает все больше в работе, подумываю о улучшении понимания дотнета. Или есть что-то полезное, но более щадящее?
image.png122 Кб, 183x276
759 1950436
>>1950023
НЕТ, КОГДА ВЫ УЖЕ ПОЙМЕТЕ, клиенту похер как у вас код отформатирован, ему похер сколько вы комментариев настрочили, ему плевать какие крутые технологии вы использовали, ЕМУ ВАЖЕН ТОЛЬКО ПЕРФОМАНС, будете для себя код писать пишите как хотите, а для клиента вы ДОЛЖНЫ писать код который максимально эффективный и производительный
760 1950467
>>1950436

>Я пишу для себя микробиблиотеку тривиальной обработки геометрических сущностей


У тебя все хорошо?
761 1950499
>>1950467
говнокод начинается с первого:
if(string == "1+1)
{
reutrn 2
}
elseif()....
762 1950661
Посоветуйте что почитать/посмотреть по паттернам.
763 1950724
Вкатун, работаю с wpf, в планах перекат в веб. Нашел только что cshtml5/bridge.net/deck.net. Насколько годнота чтобы портировать не сильно сложное wpf приложение или говно без задач?
764 1950725
*Портировать на asp.net конечно же.
>>1950724
765 1950748
>>1950724
А чего просто Blazor не навернуть?
766 1950807
>>1950436
Клиенту важно решение его задачи в срок, за тот бюджет что он выделил. Перформанс - может быть конкурентным преимуществом, если две конторы предлагают решение задачи за одинаковую цену.
Блядь, ну серьезно, посмотри на 1с, нахуй, там отчет формируется иногда по полчаса-часу, блядь, который можно ручками собрать парой SQL запросов и выгрузить куда нужно, но 1c всю эту залупу с тем чтобы бухгалтерша нажала и у нее сформировалась делает и поддерживает актуальную хуйню связанную с бухучетом и всем заебись, похуй на то что можно в 100 раз ускорить составление этого отчета.
767 1950816
>>1950807
Не знаю кому похуй, может какой-то тёте сраке и похуй но у нас нет, у нас нужно выполнить :
а) в срок
б) что бы работало как предполагается
в) что бы работало максимально быстро
г) что бы можно было поддерживать
е) что бы можно было развивать

ЛЮБОЙ из не выполненных условий валит проект
768 1950835
>>1950816

> в) что бы работало максимально быстро


Оки, тогда ты без труда скажешь, какой код работает быстрее и сможешь пояснить почему.
.png3 Кб, 453x88
769 1950836
>>1950835
>>1950816
Блядь, код забыл. Пиздец. Нахуй.
770 1950913
>>1950836
Щас бы дяде мидлу доказывать свою квалификацию школьнику с двача отвечая на детские вопросики которые даже гуглятся по первому запросу, ну ты даешь анон
771 1950957
>>1950913
>>1950836
И какой правильный ответ? Подозреваю, его нет. Подобные оптимизации компилятор сам делает.
772 1951024
https://github.com/ardalis/CleanArchitecture

Анон, что скажешь? Кто ни будь принимает за скелет/использует этот шаблон?
773 1951077
>>1951024
Ну, я так пытался делать, но обосрался. Постоянно возникало желание взять что-то тут из вышестоящего проекта, в результате выходило все равно сильносвязная хуета и я сливал все что там нарезал в один проект. Но я нубяра, майки подобный подход использовали в своем примере с eShopOnWeb/Containers.
Короче, чисто на бумаге и когда нормальные люди это делают - выглядит заебца. Когда делаешь что-то мелкое - тоже заебца. Когда пытаешься что-то что должно реальную пользу приносить сам и ты дебил что не способен нормально делить на куски и держать это все в голове - случается залупа.

Ну, просто абстрактно опишу что было у меня. Есть протокол общения с устройствами, пакетики там, протокол похож на Bisync, но байтики отличаются и иногда шифруются, а иногда не шифруются; есть клиенты которые хотят с клиентами-устройствами через мое приложение общаться их запросы нужно конвертировать в этот вот протокол; а сверху веб-морда на JS которая должна 1. Позволять админу менять настройки сервера(например ограничить время жизни сессии или число одновременно живущих сессий, отключить логгирование, поменять порт на котором ждут соединение, ограничить адресацию, дать возможность открыть диапазон портов для приема устройств); 2. Показывать состояние устройств что сейчас подключены(подключен, срет не тем чем нужно) и т.д. Ну, собственно: Вот протокол, его сборку-разборку из байт выносим в библиотеку. А дальше - а дальше хуй пойми как это резать, потому что описание протокола - вот иногда, если клиент такой - мы должны делать так, а если не такой - вот так, иногда клиент может прислать пакеты не по протоколу и мы должны их закешировать и если есть клиент что ждет сообщения от устройства - отдать ему; тут мы обрываем соединение если пакет битый, а там не обрываем, потому что у этих устройств обосрались на заводе и они всегда битые приходят, а потому мы считаем что пакеты не битые; вот тут мы должны открыть сеанс связи, а здесь не должны. А еще сверху, есть секретные пакетики, которые моя приблуда должна слать устройствам чтобы проверить что это реальное устройство и меня не наебывает злоумышленник. Но я тупой же, потому может быть не в такой архитектуре проблема, а во мне, опять же, мне стало проще - забить на попытки сделать чисто и я ебанул так чтобы все что нужно было делать - делало. ЗАТО РАБОТАЕТ БЫСТРО!!! ЫЫЫЫЫ: ЫЫЫЫ, НИ ОДНОГО ВЫДЕЛЕНИЯ ПАМЯТИ ПОСЛЕ ТОГО КАК БАЙТИКИ ИЗ СОКЕТА ПОЛУЧЕНЫ!!! ВСЕ НА УКАЗАТЕЛЯХ!!!!!! А ВАШ ЕБУЧИЙ ЕФ ЗАМЕНИЛ ЗАПРОСАМИ КОТОРЫЕ ПИСАЛ РУЧКАМИ, ЕЩЕ И НАХУЙ АСП, ДЛЯ АПИ Я ПРОСТО ЕБАНУЛ HTTPListener И ВСЕ НАХУЙ, НИКАКИХ ВАМ ТАМ МИДЛВАРОВ, СЕРВИСОВ, СИНГЛТОНОВ И ПРОЧЕГО, ПОТОМУ ЧТО НЕ НУЖНО!!! А 50% КОДА В Main НАПИСАНО!!!!!!!!!! Короче, я за 2 месяца работы - 20к строк кода, которые довольно хреново со стороны выглядят, зато я знаю каждую строчку и лично я легко с этим работать смогу, ну а если меня попрут - пусть страдают те кто не смог понять гениальный ход моих мыслей.
773 1951077
>>1951024
Ну, я так пытался делать, но обосрался. Постоянно возникало желание взять что-то тут из вышестоящего проекта, в результате выходило все равно сильносвязная хуета и я сливал все что там нарезал в один проект. Но я нубяра, майки подобный подход использовали в своем примере с eShopOnWeb/Containers.
Короче, чисто на бумаге и когда нормальные люди это делают - выглядит заебца. Когда делаешь что-то мелкое - тоже заебца. Когда пытаешься что-то что должно реальную пользу приносить сам и ты дебил что не способен нормально делить на куски и держать это все в голове - случается залупа.

Ну, просто абстрактно опишу что было у меня. Есть протокол общения с устройствами, пакетики там, протокол похож на Bisync, но байтики отличаются и иногда шифруются, а иногда не шифруются; есть клиенты которые хотят с клиентами-устройствами через мое приложение общаться их запросы нужно конвертировать в этот вот протокол; а сверху веб-морда на JS которая должна 1. Позволять админу менять настройки сервера(например ограничить время жизни сессии или число одновременно живущих сессий, отключить логгирование, поменять порт на котором ждут соединение, ограничить адресацию, дать возможность открыть диапазон портов для приема устройств); 2. Показывать состояние устройств что сейчас подключены(подключен, срет не тем чем нужно) и т.д. Ну, собственно: Вот протокол, его сборку-разборку из байт выносим в библиотеку. А дальше - а дальше хуй пойми как это резать, потому что описание протокола - вот иногда, если клиент такой - мы должны делать так, а если не такой - вот так, иногда клиент может прислать пакеты не по протоколу и мы должны их закешировать и если есть клиент что ждет сообщения от устройства - отдать ему; тут мы обрываем соединение если пакет битый, а там не обрываем, потому что у этих устройств обосрались на заводе и они всегда битые приходят, а потому мы считаем что пакеты не битые; вот тут мы должны открыть сеанс связи, а здесь не должны. А еще сверху, есть секретные пакетики, которые моя приблуда должна слать устройствам чтобы проверить что это реальное устройство и меня не наебывает злоумышленник. Но я тупой же, потому может быть не в такой архитектуре проблема, а во мне, опять же, мне стало проще - забить на попытки сделать чисто и я ебанул так чтобы все что нужно было делать - делало. ЗАТО РАБОТАЕТ БЫСТРО!!! ЫЫЫЫЫ: ЫЫЫЫ, НИ ОДНОГО ВЫДЕЛЕНИЯ ПАМЯТИ ПОСЛЕ ТОГО КАК БАЙТИКИ ИЗ СОКЕТА ПОЛУЧЕНЫ!!! ВСЕ НА УКАЗАТЕЛЯХ!!!!!! А ВАШ ЕБУЧИЙ ЕФ ЗАМЕНИЛ ЗАПРОСАМИ КОТОРЫЕ ПИСАЛ РУЧКАМИ, ЕЩЕ И НАХУЙ АСП, ДЛЯ АПИ Я ПРОСТО ЕБАНУЛ HTTPListener И ВСЕ НАХУЙ, НИКАКИХ ВАМ ТАМ МИДЛВАРОВ, СЕРВИСОВ, СИНГЛТОНОВ И ПРОЧЕГО, ПОТОМУ ЧТО НЕ НУЖНО!!! А 50% КОДА В Main НАПИСАНО!!!!!!!!!! Короче, я за 2 месяца работы - 20к строк кода, которые довольно хреново со стороны выглядят, зато я знаю каждую строчку и лично я легко с этим работать смогу, ну а если меня попрут - пусть страдают те кто не смог понять гениальный ход моих мыслей.
774 1951135
Я опять выхожу на связь >>1950724. Cshtml5 редчайшая залупа - у них даже дефолтный сампл проект в котором показаны контролы тупо не компилится, лол блять.
Как мне можно конвертнуть простую впф xaml страницу без кнопок, только с експандерами/текстблоками и подставленными значениями в html страницу?
775 1951151
>>1946445
Так юзай юниксовское представление в виде одного лонга. Вроде как это стандарт
776 1951158
>>1951151
формат то да стандартный, проблема в том что для шарпа мин это будет 0 0 0 0 и до 2010 будет одно значение таймпана, а для шапра это 1970, и шарп уже не воспринимает это как мин, приходиться пилить костили, ловить исключения, писать хандлеры и сосать писос когда где-то что-то упустил
image.png19 Кб, 737x318
777 1951159
>>1951151
ну или делать что-то вроде пикрила
778 1951162
>>1919035

> которые либо пришли из математиков и АСУ ТП в предметную область, либо наоборот, дополнили предметные знания навыками кодинга. А то, о чём ты говоришь - это сайтошлёпство и обезьяний бигдата+машоб на корзину для пускания пыли в глаза акционерам.


Вот мне интересно, что такие как ты думают о прогерской вышке? Чел, что закончил CS в MIT, но нихуя не шарит в биологии, банках или финансовой промышлености, это ведь обезьяна-формошлеп?

>>1917602

> Там где предметная область не нужна для таких кодеров будет внешний рафинированный интерфейс, за который ему и лезть не стоит.


Вроде как наоборот, для учоных в говне моченых прогеры делают DSL на питоне, чтобы они на ней и писали свои формулы для предметной области.
779 1951164
>>1951162
Вышка уже давно учит несколько специализации сколько учит УЧИТЬСЯ, челик который учился в MIT без труда научится всего чему надо в работе быстро и эффективно,
780 1951167
>>1951164
А челы из гуглов и микрософтов тоже формошлепы? Никакой же предметной области у них нет, они просто пишут софт для массового потребителя/энтерпрайза.
781 1951169
>>1951167
Майки это большая компания с крупным R&D и большим не публичным сектором формошлепы там тоже есть, но таких даже не большинство
782 1951170
>>1951135
Я темой никогда не интересовался, но безопасным предположением будет: никак без костылей несовместимых с жизнью.
image.png23 Кб, 1413x173
783 1951531
Что это значит? Что он от меня хочет?
784 1951589
>>1951531
Он хочет чтобы ты инжектил а не создавал сервиспровайдера. Там же все написано.
785 1951826
>>1951162
>>1951167

>Вот мне интересно, что такие как ты думают о прогерской вышке? Чел, что закончил CS в MIT...


>А челы из гуглов и микрософтов тоже формошлепы? Никакой же предметной области у них нет


Они разрабатывают компиляторы, ОС, СУБД, антивирусы, поисковики, навигаторы, архиваторы, игры, алгоритмы шифрования, блокчейн и т.п. Это их предметная область.

>Вроде как наоборот, для учоных в говне моченых прогеры делают DSL на питоне, чтобы они на ней и писали свои формулы для предметной области.


Порог входа в программирование с каждым годом всё ниже, и средний программист - это нихуя не математик-алгоритмист, который в свободное время контрибутит в ролсин и постгрес, это именно что нечто среднее между вчерашним продавцом шин и дисков и перекатышем из 1С. Он сможет сделать формочку или кое-как приспособить схему БД интернет-магазина под нужды заказчика. Скорее всего он может найти реализацию нужного алгоритма на СО и подключить даже не самые популярные библиотеки. Сможет ли он самостоятельно написать парсер для составной формулы - это уже вряд ли.
solenoid-under-current-loadsimulationresult[1].png6 Кб, 270x452
786 1951835
В C# в пространстве имён WinForms или Drawing, насколько я помню, есть класс, который позволяет задать несколько опорных значений типа float и соответствующие им цвета, а потом вычислять интерполированные цвета для произвольных значений float.
Я года 2 назад это использовал, но сейчас не могу ни найти, ни вспомнить, как этот класс называется. Подскажите, кто знает, велосипед не хочу писать.
787 1951900
>>1951826

> Они разрабатывают компиляторы, ОС, СУБД, антивирусы, поисковики, навигаторы, архиваторы, игры, алгоритмы шифрования, блокчейн и т.п. Это их предметная область.


Так погромистов которые это делают единицы. В мире всего то несколько ос, по компилятору под каждый язык, несколько СУБД и тд. А создатель чего-то нового, что будут использовать другие люди, точно войдет в историю про него будет страничка на википедии
Я очень сомневаюсь, что каждый второй выпускник стэнфорда вот так сразу же после универа идет в гугол писать поисковик или в майкрософт пилить новые версии тайпскрипта и шарпа.

Алсо, если ты сам такой тру программист, то напиши как им стать джуну-вкатывальщику. Я то совсем не против на первой работе писать компилятор, но почему-то во всех джуно-вакансиях требуют знания html, angular и sql, а не собственный ЯП на гитхабе.
788 1951901
Анон, а над чем самым интересным ты на шарпе работал? Читаю этот тред, вакансии на линкедине и впадаю в уныние: повсюду или винформс с впф, или фуллстек, или бек где просто указано что надо макачить веб апи для фронта. Работодатели еще и нашли чем выебываться: у них не легаси, а аж целый нет кор.
789 1951988
>>1951589
Я не понимаю, как я могу инжектить сервиспровайдер когда он еще не создан?
790 1951992
>>1951901
если хочешь делать то что самому хочется то делай сам, за свои деньги,
пс: работал над проектом с нейросети который детектить пустые полки и вызывает работников магазина их заполнять, это был одновременно один из самых интересных и самых скучных проектов, с одной стороны были интересные моменты, но большую часть времени мы пинали хуи, да и интересность во многом заключалась в новизне, но если расказывать о том что ты работал с нейросетями то людям и работодателям кажется что ты какой-то супер хацкер
791 1952026
>>1951988
за тебя его создадут и заинжектят. ты просто запроси его на месте
792 1952061
Ребяты, как такое работает? ПРимер из книги.
Заходит юзер на сайт по адресу droch.xxx/Product/List
Аспе Нет Коре создает экземпляр класса ProductController пикрил1 В классе срабатывает конструктор и видит что в конструктор должен принимать любой экзмепляр который реализовывает интерфейс IProductRepositoryпикрил2 Что бы присвоить его полю IProductRepository repository
Класс который реализовывает данный метод FakeProductRepositoryпикрил3.
Вот и создается экземпляр FakeProductRepository передается в конструктор ProductController там присваивается значения полю IProductRepository repository; и по вызову метода List() вся эта хуетень передается в представление и выводится юзеру.

И все это делается с помощбю строчки в Стартупе services.AddTransient<IProductRepository, FakeProductRepository>();

Я так понимаю эта строчка говорит следующее: Когда нужно создать экземпляр типа IProductRepository то используй для этого экземпляр FakeProductRepository.

Правильно понимаю чи нихуя?

Сложна пздц, но хоть начинаю врубатся, неделю назад ваще просто как обезьяна переписывал из книги код и не понимал что нахуй
793 1952066
Есть один проект на wpf .net 4.0 с ef и sqlite'ом. Нужно сделать так чтобы пользователи могли указывать путь к файлу бд. Можно ли как-то программно в рантайме добавить connectionString в App.config или сбилдить самому?
794 1952119
>>1952061
верно. И нет там ничего сложного
DI контейнеры это очень просто, а контейнер от майков вообще базовый примитив.

Вместо ручного кода создания вида new Foo(new Bar(new Baz))
ты прописываешь декларативно что подсовывать вот "для такого вот нужного в конструкторе типа"
795 1952210
Бля как сделать что бы заработало?
Книга по асп нет коре 2.1 я делаю на 3.1 и EF5 У меня нихуя не работает миграция.
Как правильно сделать?
Пикрил ошибки и пикрил кода
image.png18 Кб, 572x152
796 1952254
Бля вот теперь такая ошибка(
Не может найти строку хотя она бля есть
image.png11 Кб, 966x129
797 1952465
>>1952026
Я не понимаю как если ты имеешь вииду что-то типа пикрила как в контролере то там где мне нужно это так не работает, там где мне нужно метод требует параметра
798 1952614
>>1952465

> метод


И в чем проблема? Ты же не метод инжектишь.
А если ты имел ввиду какие-то определенные объекты в конструкторе - то тоже не понятно в чем сложность регистрируешь тот какой тебе нужен с теми параметрами какие нужны и достаешь.
Ну и ты можешь сделать класс-фабрику и в нее заинжектить что нужно, а разные параметры в методе Create передавать и там собирать. В классе где нужен специальный инстанс - создавать тот что нужен тебе.
799 1952969
Шарпаны, я хочу ревью! Сделайте ревью!!! Позязя.
https://github.com/BakaVaka/MySuperDuperPasswordManager/tree/master/MySuperDuperPasswordManager
800 1952992
>>1951901
Владельцы бизнесов, больших и маленьких, они сделаны из того же мяса, что и ты, и имеют такие же права. Пили свой проект и коммерциализируй. Я так и делаю например. Зачем тратить свою жизнь, обогащая дядю и работая над унылыми проектами?
801 1952998
>>1951900

>Я очень сомневаюсь, что каждый второй выпускник стэнфорда вот так сразу же после универа идет в гугол писать поисковик или в майкрософт пилить новые версии тайпскрипта и шарпа.


Поддержка и развитие всего того, что уже написано, и так требует кучу ресурсов.
Нечто радикально новое, типа языка программирования, в корпоративной среде вообще не может зародиться.
Либо покупается на стороне, либо у кого-то из сотрудников есть пет-проект по языку, которому в удачный момент компания даёт ресурсы, либо зовут уже зарекомендовавшего себя опытного языкописателя со стороны.
А в целом я и сам не очень понимаю, какими задачами постоянно заняты тысячи программистов в фейсбуке, гугле, нетфликсе и т.п. Всё вроде работает без особых изменений уже лет 10. Почему капиталист их всех не разгонит и не начнёт просто получать больше прибыли?
802 1953000
>>1951901
Иди на завод. лол. Там одна задача охуительней другой: нужно новый стек реализовать, нужно всякие шифрования и прочую залупень, серху нужно о перформансе думать, потому что твой код будет работать на китайских процах с ограничением в 32МБ оперативки и 128МБ встроенной памяти; а еще и будут браки в партиях, которые ты будешь обходить костылями, чтобы клиенты не заметили брака. И да, это все на шарпе вполне делается. Базарю, еще захочешь. Плоютят правда не так много, 25к людям с 5 годами опыта; но ты же интересные задачи хочешь решать, а не деньги зарабатывать.
803 1953293
>>1952969
Уууу, сеньеры не хотят ревьюить код. Как жить-то? Вот и как я узнаю теперь - хорошо ли я написал код или нет?
804 1953514
>>1953293
нервы берегут же
805 1953546
>>1953514
Да там вроде в этот раз не так уж и плохо же. Я старался.
Аноним 806 1953605
Анон, помоги пожалуйста с ооп на шарпах.
Предметная область: Отдел расчета зарплаты.
Информационная система отдела расчета зарплаты на
предприятии хранит данные о величине оплаты различных видов работ.
Система хранит информацию о работниках предприятия.
Система должна позволять выполнять следующие задачи:
 вводить информацию о различных видах работ;
 вводить информацию о работниках и выполненных ими работах;
 после ввода фамилии выводить для работника зарплату;
 выводить сумму выплат всем работникам;

Для заданной предметной области спроектировать программную
структуру, состоящую из 3-5 классов.
 В соответствии с разработанной диаграммой классов выполнить
программную реализацию.
 Предусмотреть использование типа данных – перечисление.
 Ввод/вывод должен быть реализован вне проектируемого класса.
Очень надо
807 1953676
>>1953605
За две тысчи сделаю.
808 1953813
>>1953605
Ну так шо. Я ужо написал. Хде мои две тысчи?
809 1953814
>>1953605
Держи. Можешь не благодарить.
https://www.dropbox.com/s/wjb9vi9kvmxd8du/SalaryCount.7z?dl=0
810 1953831
>>1953814
Я бы за такое убил нахуй.
Аноним 811 1954072
>>1953814
Cпасибо большое!
Аноним 812 1954075
>>1953831
А что там не так?
813 1954384
>>1952614
Спасибо, помог!
814 1954405
Анон, подскажи.
Есть ли способ достать из словаря ( Dictionary<Tkey, TValue> ) ключ по значению, без прямого перебора всего словаря?
815 1954412
>>1954405
Я даже боюсь представить зачем это может быть надо....
816 1954419
>>1954405
Я не до конца уверен, что конкретно ты имеешь ввиду под перебором, потому ответа два:
1. Если ты не хочешь вручную перебирать значения, воспользуйся Linq, пр.: dictionary.FirstOrDefault(x => x.Value == "Kek");
2. Если вопрос был про максимальную производительность - тебе эта структура данных не подходит. Тут нужно по контексту смотреть, что для твоей херни подходит.
817 1954421
>>1954419
Я думаю он про перебор лиинком и говорил
>>1954405
а вообще можно сделать что-то типа этого: https://stackoverflow.com/questions/1171812/multi-key-dictionary-in-c

кастомные словари с несколькими ключами, может поможет
818 1954428
>>1954405
Если это важно для производительности, то следует хранить обратный словарь Dictionary<TValue, Tkey> (в лучшем случае) или Dictionary<TValue, List<Tkey>> в случае возможности повторяющихся TValue с разными ключами.
819 1954470
Можно как-то wpf отключить кнопку? Мне нужен не enabled=false, а чтобы по виду она была включенной, но без анимации нажатия и наведения, т.е. как пикча просто.
545484214145.jpg122 Кб, 983x579
820 1954576
Что значит float.IsNormal и float.IsSubnormal?
В документации не объясняется, проверка рандомных чисел логику не выявляет.
822 1954690
предположим у меня есть страница которая отображает некоторую произведственную статистику, клиент может фильтровать данные по заранее заданными параметрами,

данные фильтруются на сервере и отправляются пачкой,

что меня интересует, можно ли вернуть пользователю одну пачку в потом по контексту его действий предположить какую пачку он захочет в будущем и начать ее загружать например с помощью сигналР? Как будто загрузка следующий пачки происходит в фоне для пользователя?

кто такое уже делал? есть советы как это имплементировать?
, 823 1954704
Коллеги, куда лучше двинуть или что учить далее?
Знаю базовый .net, использую паттерны, работал с di, энтитифреймворк.(опыт работы около 2 лет). Не очень большой работы с мультитредом (т.е. не использовал на практике семафоры, например)
Сейчас в процессе чтения про Clr более подробно(Рихтер)

Как я понимаю, чтобы устроиться в энтерпрайз, нужно вкатываться/читать про asp. + Js изучать.
В свободное время ещё изучал unity 3d, но такое чувство, что Там оч плохо с зарплатами .
У кого был похожий опыт развития? Куда лучше двигаться?
824 1954725
>>1954470
в WPF всегда можно подменить шаблон который не будет знать про состояния кнопки и мыши и будет выглядеть как угодно
825 1955114
Есть банальная N+1 проблема
У меня есть таблица, к ней еще 3 зависимых таблицы
Сейчас вытягиваю сначала все данные главной таблицы одним запросом
Потом из каждой зависимой таблицы таблицы вытягиваю данные по одному запросу на каждую запись главной таблицы
Итого, получается мне нужно поочередно вытягивать первых 100 записей, их обрабатывать и потом там по кругу, пока данные для выборки согласно условию запроса не закончатся
На каждый такой заход 1 + 300 запросов
Как лучше это переделать?
Ну допустим я буду делать 4 запроса
Один для главной как был
И еще 3 на каждую зависимую таблицу через джоины
Тут вопрос какое условие к запросам написать
И ничего лучше чем написать WHERE IN (100 айдишников) мне в голову не приходит
И потом надо соответсвия програмно искать, чтобы связать объекты главной таблицы с объектами зависимых таблиц, ну с этим проблем быть не должно
Тут главный вопрос как правильно построить запросы

В качестве ORM у меня не Entity Framework, если что. Там-то все, по всей видимости, было бы просто.
826 1955128
>>1955114
Слишком обтекаемо и без конкретики написал, чтоб по существу что-то советовать.
Постараюсь поугадывать:
Если твоя ORM понимает linq - напиши джойн на на нем, получишь один запрос.
Если твоя ORM не понимает linq - напиши запрос на обычном сиквел с обычными джойнами (INNER JOIN / LEFT JOIN etc...). Будет все еще один запрос.
Далее идут странные кейсы. Если тебе кажется, что у тебя такой - тебе скорее всего кажется
Если тебе нужно данные главной таблицы как-то хитро фильтровать, что в сиквеле это сделать нельзя - я бы просто вытянул все данные с джойнами, а потом их фильтровал.
Если тебе нужно данные главной таблицы как-то хитро обработать перед джойном, что в сиквеле это сделать нельзя - я бы вытянул данные из первой таблицы, сделал с ними что нужно, а потом доставал бы из других. Я бы избегал WHERE IN, т.к. могут быть ограничения на количество данных в списке (2000 для SQL Server, например). Надежнее простым дайнемик сиквелом создать временную таблицу, наполнить ее твоими айдишками, и сделать на нее джойны.
827 1955144
>>1955128
ORM
https://github.com/praeclarum/sqlite-net

> Если твоя ORM понимает linq - напиши джойн на на нем, получишь один запрос.


Понимает, но я в свою очередь, не очень понимаю как это все обернуть на LINQ так чтобы свести потом все к одному объекту
Грубо говоря, объект в результате содержит три коллекции, которые эти 3 таблицы представляют, связь один ко многим от главной таблицы к дочерним.
Вроде такого
class TableMain
{
List<TableA> TablesА {get;set;}
List<TableB> TablesB {get;set;}
List<TableC> TablesC {get;set;}
}

> Если твоя ORM не понимает linq - напиши запрос на обычном сиквел с обычными джойнами (INNER JOIN / LEFT JOIN etc...). Будет все еще один запрос.



Ну одного запроса не выйдет, тут минмум 4
Один для главной и по одному с джоином на каждую зависимую таблицу
Потому что три зависмых таблицы не связаны между собой, а только имеют общего родителя

Запрос к главной таблице
SELECT FROM TableMain
WHERE (куча условий)
LIMIT 100

И потом что-то вроде такого
SELECT TA.
FROM TableMain TM
JOIN TableA TA
WHERE IN (100 айдишников таблицы TM из предыдущей выборки)

И также с осальными 2 таблицами
А потом програмно раскидать каждую таблицу по своим объектам в соответсвующие коллекции

> Если тебе нужно данные главной таблицы как-то хитро фильтровать, что в сиквеле это сделать нельзя - я бы просто вытянул все данные с джойнами, а потом их фильтровал.



C фильтрацией главной таблицы проблем нету, проблема только в том как достать данные дочерних таблица.

> 2000 для SQL Server, например)



Ну мне всего лишь по 100 надо таскать за раз

> Надежнее простым дайнемик сиквелом создать временную таблицу, наполнить ее твоими айдишками, и сделать на нее джойны.


Звучит как хороший вариант, спасибо
827 1955144
>>1955128
ORM
https://github.com/praeclarum/sqlite-net

> Если твоя ORM понимает linq - напиши джойн на на нем, получишь один запрос.


Понимает, но я в свою очередь, не очень понимаю как это все обернуть на LINQ так чтобы свести потом все к одному объекту
Грубо говоря, объект в результате содержит три коллекции, которые эти 3 таблицы представляют, связь один ко многим от главной таблицы к дочерним.
Вроде такого
class TableMain
{
List<TableA> TablesА {get;set;}
List<TableB> TablesB {get;set;}
List<TableC> TablesC {get;set;}
}

> Если твоя ORM не понимает linq - напиши запрос на обычном сиквел с обычными джойнами (INNER JOIN / LEFT JOIN etc...). Будет все еще один запрос.



Ну одного запроса не выйдет, тут минмум 4
Один для главной и по одному с джоином на каждую зависимую таблицу
Потому что три зависмых таблицы не связаны между собой, а только имеют общего родителя

Запрос к главной таблице
SELECT FROM TableMain
WHERE (куча условий)
LIMIT 100

И потом что-то вроде такого
SELECT TA.
FROM TableMain TM
JOIN TableA TA
WHERE IN (100 айдишников таблицы TM из предыдущей выборки)

И также с осальными 2 таблицами
А потом програмно раскидать каждую таблицу по своим объектам в соответсвующие коллекции

> Если тебе нужно данные главной таблицы как-то хитро фильтровать, что в сиквеле это сделать нельзя - я бы просто вытянул все данные с джойнами, а потом их фильтровал.



C фильтрацией главной таблицы проблем нету, проблема только в том как достать данные дочерних таблица.

> 2000 для SQL Server, например)



Ну мне всего лишь по 100 надо таскать за раз

> Надежнее простым дайнемик сиквелом создать временную таблицу, наполнить ее твоими айдишками, и сделать на нее джойны.


Звучит как хороший вариант, спасибо
828 1955190
Хм. Я чет начинаю себя чувствовать обезьяной используя EF. Уже стал забывать нативный синтаксис SQL и как с помощью него составлять сложные запросы. Сильно ли обидется тимлид, если в своем микросервисе я тихонечко спущусь к нативным запросам?
829 1955252
830 1955253
Аноны, как сохранять лог?
Сохранить лог в базе?
Или просто в текстовом формате?
Использовать встроенный логгер?
Стоит ли создавать много файлов лога например на каждый день?
Насколько большие файлы лога обычно?
831 1955254
>>1955253
В нашей конторе мы храним на диске, на каждый день.
Но у нас десктоп приложение и логгер самописный
832 1955256
>>1955252
Няш, тебе на этот вопрос никто не ответит, нет универсального рецепта, то что подойдет одному не подойдет другому, ты должен сам определить.
пс: скажу только что если ты не знаешь куда двигаться дальше, это значит что у тебя нехватка знаний, так у нас отсеивают псевдо-мидлов
833 1955257
>>1955254
А если например админ хочет просмотреть историю активности пользователя тогда он должен каждый файл открывать и искать по нему? как устроен логМенеджмент?
834 1955266
>>1955257
У нас есть приблуда в программе типо журнала событий в винде, которая фиксирует основные события.
А лог это для ошибок, то есть что-то пошло не так идем в лог.
835 1955268
>>1955253
Решай по его важности, чувствительности, размеру и т.д.
Файловый лог норм, если его не много. Ну и искать по нему не очень.
Структурированный лог в БД прикольный, но не перегрузи ее командами.
Крутой вариант - писать в какую нереляционную БД, которая, помимо быстрой записи и анализа логов, поддерживает дашборды.
Нормальная история в зависимости от вида логов, писать их в разные хранилища.

Если встроенного логера хватает - отличный вариант. Если не хватает - можно установить, например, NLog, который использует интерфейс встроенного в Core, но поддерживает много таргетов и еще всяких штук.
836 1955283
>>1955266
логгировать как я понял нужно все вплоть до вызова некоторых функций и получений страниц

>>1955268
Ну в общем я думаю наиболее удобным вариантом писать лог в зависимости от типа в отдельные файлы, но не разбивать по датам, то есть отдельный лог для авторизированния пользователей, отдельный для вы авторизирования, отдельный для загрузок страниц, по каждому лог по типу ошибки, ну я думаю это под несколько сотен файлов и они будут храниться на сервере

вообще идеально было бы записывать и работать с логами с базой данных, но без базы данных, она находиться в облаке и по условию нужно минимизировать ее использование
837 1955319
>>1955283
Хм, обычно используют обратный подход: небольшое количество видов логов, и разбитие по датам. Если что-то пошло не так, гораздо чаще можно ответить на вопрос "когда?", а не "что?". Ну и если лог разрастется - его легко будет почистить (даже автоматическую очистку старых записей можно настроить).
838 1955320
>>1955283
К слову, облачные провайдеры порой предоставляют свои услуги по хранению логов, хотя знакомые жаловались, что они не очень по сравнению с нормальным noSQL. Ну и имей ввиду возможные проблемы с файловыми логами, если приложения тоже в облако уедут.
839 1955329
>>1955319

>гораздо чаще можно ответить на вопрос "когда?", а не "что?"


Верно подмечено

>>1955320

>Ну и имей в виду возможные проблемы с файловыми логами, если приложения тоже в облако уедут.


это тоже валидно

К тому же есть еще проблема с тем что бы записывать значения в файл в многопотоке я потому думал много маленьких логов использовать что бы избежать проблем с остановкой потоков из-за лока, с базой таких проблем конечно нет, но все таки не хотелось бы гонять трафик просто так, тут главная проблема даже несколько трафик сколько количество частых маленьких транзакций, может стоить сделать что-то типа буффера что бы он накапливал себе в память логи, а потом после достижения определенного количества строк просто одной пачкой транзактил это в базу? Как вам такой подход?
840 1955338
>>1955329

>что бы записывать значения в файл в многопотоке я потому думал много маленьких логов использовать


Я конечно хз, что у вас там за ограничения, но реализация лога - это тривиальная школьная задача, проще сортировки пызурем.
Пишешь буфер обертку вокруг листа или конкурентной сумки, и каждые 100к записей сливаешь в БД или в файл. Даже не знаю, что может тут пойти не так. Но писать в файл или тем более в БД чаще 1 раза в секунду или типа того - так себе решение.
841 1955375
>>1955338
Пишешь буфер обертку вокруг листа или конкурентной сумки, и каждые 100к записей сливаешь в БД или в файл. Даже не знаю, что может тут пойти не так. Но писать в файл или тем более в БД чаще 1 раза в секунду или типа того - так себе решение.

чел я именно об этом написал
842 1955387
>>1955329
Никаких проблем с логированием из множества потоков не встречал, ведь это само собой разумеющееся. Если будешь использовать NLog, там есть AsyncWrapper, который буферизацию делает. Как раз для ситуаций с большим потоком логов.
843 1955402
>>1955387
Шизик, прочитай внимательно

>проблема с тем что бы записывать значения в файл в многопотоке


Речь не шла про лог в многопотоке, речь шла про запись в файл в многопотоке, никогда не встречал? Тогда иди уроки делай
844 1955408
>>1955402
Ты туповат? Логер пишет в файл последовательно, даже при одновременных вызовах в разных потоках, а AsyncWrapper может буферизировать и склеивать логи для записи, чтоб решить потенциальные проблемы с производительностью.
845 1955419
Есть тут кто работал с System.Data.SQLite или вообще с sqlite? Как можно запаролить файл базы данных - в интернете говорят юзать Set/ChangePassword(), но у моего sqlconnect таких методов нету. Можно как-то запаролить базу запросом или как-то иначе?
846 1955423
>>1955408
Хм, я почитаю об этом...
847 1955443
>>1955419
Я работал только не через System.Data.SQLite, использовали для шифрования базы sqlcipher
Сначала хотели запаролить базу, но при установке пароля вся база шифруется и скорость всех запросов упала в разы
Поэтому махнули рукой и оставили как есть :D
Скорее всего, если посидеть, поразбираться, то можно нормально сделать, но для нас база с паролем не особо требовлась
848 1955483
>>1955419
Как вариант, архивировать базу в zip с паролем, а при открытии считывать, хранить и изменять в опер. памяти.
849 1955507
>>1955483
Это пиздец костыли - у меня база и так пару гиг весит, я и так ебусь чтобы ентити залупа не загружала всю таблицу в озу скопом, а по одной записи и вызываю гк на каждый чих ибо утечки шопиздец.
850 1955664
>>1955253

> Аноны, как сохранять лог?


Серилогом

> Сохранить лог в базе?


Если это требуется

> Использовать встроенный логгер?


Серилог используй

> Стоит ли создавать много файлов лога например на каждый день?


Если стоит такая задача. У нас, например, обычно, хранится 5 файлов, каждый по 100МБ. Каждый день нет особого резона, потому что обычно форматирован и содержит информацию о времени-дате, т.е. ты легко можешь фильтровать его, ну а лог за оч давно обычно не нужен.

> Насколько большие файлы лога обычно?


Зависит от системы и задач. Обычно больше гига никому не надо. Плюс, если тебе нужно большой объем данных хранить, то логи у тебя будут в бинарном формате -> гиг это пиздец как много данных на самом деле, для примера: вот у нас в девайсах стоит флешка на 512МБ и там логи работы за 5 лет не в состоянии засрать это все, другое дело, что там и логи бинарные, а не эти ваши 'UnhandledException и весь стек вызова.

Если ты веб-макака, то обычно логи у них - кидаются в какой-нибудь отдельный сервис, серилог - вполне способен это делать. Если ты десктоп-макака - серилго позволяет тебе как в файлик кастмоного формата, так и в JSON, так и в консольку с подсветочкой всего.
Короче, если у тебя нет каких-то специфичных штук, типа: Мне не нравится что уровень Trace называется, хочу чтобы он как-то иначе назывался - берешь серилог и используешь.
851 1955691
Хм. Смотрите. Вот мне нужно загрузить на сервер файл, распарсить его и сохранить результат.
Так вот, в чем трабла. Я беспокоюсь: А как поступать если внезапно поток прервется или файл невалидный? Вот я парсю, бах, клиент до конца не загрузил файл - что я долежн делать? Или если все норм, но файл невалидный? Должен ли я паниковать и кидать всюду из-за этого эксепшны или не должен и нужно просто мягко это дело завернуть?
852 1955748
Ребят, а как у шарпов дела с вебом обстоят? Есть ли смысл задрачивать что то по типу Xamarina или лучше сразу в Laravel и React?
853 1955760
854 1955810
>>1955748
Ты вообще знаешь, что такое веб?
Нормально дела, гугли asp.net
855 1955878
>>1955664
если бы еще серилог позволял гибко настраивать куда писать
вот за что мне нравится Nlog - за его возможность расписать какие логеры (и какого уровня) в какой файл писать, также доступны wildcard для указания пачки логеров
856 1955981
>>1955748
Чет орнул хоть и знаю что ты троль
857 1955986
>>1955664
ты легко можешь фильтровать его
Ну если лог в базе понятно как его фильтровать, а если он храниться в файле на сервере? Как его в таком случае фильтровать, линк тут не проканает, за месяц одних только логов подключения к базе данных было 200к строк, я боюсь что фильтровать что-то такое в файле может быть затруднительно...
858 1955989
>>1955664

>Короче, если у тебя нет каких-то специфичных штук, типа: Мне не нравится что уровень Trace называется, хочу чтобы он как-то иначе назывался - берешь серилог и используешь.


Ну тут проблемка потому что логи должны быть кастомного формата потому что у нас есть (или должен быть) дашборд которому можно скормить логи
859 1956595
Сап шарпач, есть одни текстовые файлы в проекте, но они добавлены в проект что-то типа как комментарии, сами они конкретно в exeшнике нигде не фигурируют. Если я устанавливаю им действие при сборке "не копировать" то они появляются в папке с е зешником при сборке. Можно ли как-то сделать так чтобы студия вообще нихуя с этими файлами не делала, но они лежали в проекте?
image.png166 Кб, 300x256
860 1956598
861 1956758
>>1956598
Есть проект в вижуал студии. В проекте добавлены .txt файлы. Как сделать так чтобы при сборке проекта эти .txt файлы нигде не фигурировали на выходе после компиляции, а лежали просто в проекте, в исходниках?
862 1956818
>>1956595
Действия при сборке -> НЕТ
863 1956896
Анон, куда двигаться -в десктоп и WPF, или в веб+асп.нет? Ни к чему конкретному душа не лежит, интересуют перспективы, сложность технологий, зп, сложность трудоустройства.
864 1956898
>>1956896
В вебе на порядок больше вакансий, но больше всякого нужно знать и требования к проектам выше.
Ну, это я так со стороны вижу, сам то я десктоп педалю
865 1956931
>>1956896
Я сам сижу на веб+асп.нет, и в целом согласен с >>1956898
Вакансий намного больше (я особо и не видал десктопных). На бекенде зоопарк технологий большой, но они скорее приятные. Со значительной долей вероятности, работа будет для фуллстека, а на фронте еще больший зоопарк технологий, и, часто, куда менее приятный.
Сам десктопом не занимался, но с моей колокольни веб выглядит интереснее с точки зрения архитектурных решений, как на уровне отдельных сервисов, так и на уровне всего приложения. Если у тебя душа ни к чему не предрасположена, я бы за заработком вкатывался в веб.
866 1956943
>>1956931

> На бекенде зоопарк технологий большой, но они скорее приятные.


Какие надо знать вкатуну?

мимо
867 1956982
>>1956818
Все файлы добавляются в папку с екзешником.
868 1957003
.net framework - есть одни файлы в проекте (сейчас при сборке записываются в Resource). Как их в рантайме можно создать/записать в определенную папку?
869 1957010
Вопрос от ньюфага.
Допустим у нас есть переменная int a и мы ей присваиваем метод который возвращает int. При каждом следующем вызове этой переменной каждый раз заново обсчитывается метод или в ней уже хранится результат?
870 1957023
Почему такое скептичное отношение к SQL в последнее время? Дескать выучил EF и все. Блять как вы будете отчеты делать? Работаю в большом проекте и всех новичков направляют на поддержку отчетов, а там без знаний аналитических функций, рекурсивных запросов и всяких оракловых хинтов не обойтись.
Или за бугром в проект берут отдельных SQL разработчиков?
871 1957036
>>1956943
ASP.NET Core и, желательно, Framework, ОРМ вроде EF и микро ОРМ вроде Dapper, какой-нибудь RPC фреймворк (gRPC, например), Quartz, SignalR, что-то для логирования, вроде NLog. Стоит знать SQL и иметь представление о noSQL.
872 1957043
>>1957010
Ты написал невозможную вещь. Если ты имеешь запись вида:
int a = SomeMethod();
, то переменной а ты присваиваешь результат выполнения SomeMethod(), что должно ответить на твой вопрос в ней хранится результат.
873 1957047
>>1957023
Поддерживаю. EF это хорошо, но регулярно нужно писать сложные и хорошо оптимизированные запросы на сиквеле. Даже если отдельный спец есть, твои команды и запросы он за тебя писать не будет, а займется, например, теми-же отчетами.
image.png26 Кб, 443x544
874 1957048
>>1956758
Ты тролль? Что за нубовопросы? нынешние джуны уже не только программировать не умеют, а уже и со студией разобраться не могут? Может сначала хотя бы гайдик по студии бы прочитал перед тем как позорится такими вопросами
875 1957094
>>1957048
>>1956982
Я бы так просто сюда не писал.
876 1957098
>>1957094
Ты тупой? Ставишь bild action none, copy to iutput : do not copy,
Все! Еще может проверить bild event чисто теоретически там могут быть pre-build event команды которые его копируют, но если там ничего нет и в проперти поставишь нет и нет, тогда оно В ПРИНЦИПЕ не может копироваться в оутпут даже при всем желании
Хм.jpg131 Кб, 975x810
877 1957154
Поясните плиз, где обосрался?
878 1957170
>>1957154
При этом запускается только нулевой runner 200 раз. Залупа какая-то. Баг ии фича?
879 1957182
>>1957154
замыкание на переменной цикла.
880 1957183
>>1957154
Замыкание. Сделай локлальную копию переменной j.
881 1957480
>>1957023

> Блять как вы будете отчеты делать?


Какие еще нахуй отчеты?

> всех новичков направляют на поддержку отчетов


Я бы нахуй вас сразу послал. Отчеты, блядь, поддерживать. Блядь, отчеты в SSRS делаются в 2 клика, в крайних случаях можно ручками запрос допилить, а поддерживать его может один человек, ну 2. Хули толку от того что новичек вместо того чтобы разбираться с инструментарием - и вникать в процесс разработки - будет отчеты вам делать, блядь.

> Или за бугром в проект берут отдельных SQL разработчиков?


За каким бугром, блядь? Даже у нас в конторе где всего 50 программистов - есть несколько отдельных хуев, что исключительно индексы теребят, да оптимизируют хранимки внутри команды разработчиков, а для отчетов, блядь, есть отдельный отдел, где отдельно обученные люди - хуячат это говно.
Пиздец. Нахуй. Отчеты.

А про SQL - хуй знает кто его там скептически относит. Это, блядь, вузовская программа так-то, все хотя бы на уровне 5НФ, индексы, хранимки и т.д знают, по крайней мере я ни разу не встречал за свой 5 летний опыт работы чела, что этого бы не знал и прошел собес.
882 1957483
>>1957154
У тебя гонка нечестная. Вот потому ты и обосрался.
883 1957535
Сап двач, поясните макаке за static.

1. Почему в статических методах мы обязаны использовать только статические переменные, объявленные за пределами этого метода?
(1 пик)
Я так понимаю потому что для их использования надо было бы инициализировать экземпляр класса???

2. Почему мы не можем объявить статические поля прямо в статическом методе?

3. Почему если мы объявим эти динамические поля прямо в статическом методе (2 пик), то всё будет работать? Ведь мы для x1 и x2 не создали экземпляров класса. Ведь так мы можем получить доступ к динамическим полям, верно?

Кароче я чё-то запутался, анонче.
884 1957542
>>1957535
На втором пике кста случайно static удалил перед методом.
885 1957578
>>1957535

> Почему в статических методах мы обязаны использовать только статические переменные, объявленные за пределами этого метода?


У тебя же самого на скрине ты используешь переменные внутри метода объявленные.
Ты наверное таки про поля говоришь.

> Почему мы не можем объявить статические поля прямо в статическом методе?


Это я вообще не понял. Ты хочешь типа иметь переменную, которая бы, допустим, как счетчик выступала и все время жизни программы жила?

> Почему если мы объявим эти динамические поля прямо в статическом методе (2 пик), то всё будет работать? Ведь мы для x1 и x2 не создали экземпляров класса. Ведь так мы можем получить доступ к динамическим полям, верно?


На пике 2 ты создал переменные. Это раз. Два, присвоив им значение ты создал в этот момент экземпляры(в данном случае это структура, но не суть, ValueType - тоже классы, просто со специфичным поведением). Вот кстати на моих пиках примерно что и происходит в этот момент, только у тебя вместо каста инта к моей структуре - происходит каст литерала к int, double и т.д. Думая в таком ключе это все легче воспринимается, хоть на деле все там немного сложнее работает.
886 1957603
>>1957535
Смотри, когда ты объявляешь в классе статические и не статические свойства, возникает прикол. Статические свойства хранятся в памяти в одном экземпляре, под не статические - выделяется память в каждом объекте. Если ты в не статическом методе хочешь обратиться к не статическому свойству - среде выполнения все понятно, она обращается к тому свойству, которое принадлежит объекту. Если же ты в статическом методе, который не относится ни к одному объекту, хочешь обратится к не статическому свойству - возникает неопределенность, непонятно, к свойству какого именно объекта нужно обращаться, потому такой возможности нет.

А касательно статического метода - не знаю, как конкретно это на уровне CLR делается, но среда обеспечивает то, что каждый вызов метода независим, он выполняется со своим набором переменных. Это сделано для того, чтоб, например, метод мог безопасно вызываться из разных потоков (пока не меняет статические свойства класса, конечно). Объявлять статические переменные внутри метода - джаваскрипт и источник ошибок, потому такой возможности нет. Да и непонятно, куда их запихивать, если не в стек.
887 1957733
Уничтожит ли деструктор класса вложенный класс и содержающиеся в нем обьекты ?
888 1957746
>>1957733
вложенный класс ничем не отличается любого другого
кроме того, что он может видеть приваты внешнего класса
889 1957823
Думаю сменить свое первое место работы после 5 лет веслания на одном месте.
Что сейчас +- спрашивают на собесдованиях на мидла десктоп?
Я понимаю что тут немного десктоп разработчиков, так что хотя бы какие общие вопросы по .нет, базам данных и т. д. задают.
За свою жизнь был на трех собеседованиях, софт скиллы около нуля.
sage 890 1957856
Рыгнул в спермотред.
891 1957988
Насколько глубоко надо сишарп изучать для работы с юнити?
892 1957993
>>1957480

>Блядь, отчеты в SSRS делаются в 2 клика


Ты наверное писал только отчеты типа "количество проданных книг за месяц", но существуют сложные финансовые отчеты, с промежуточными итогами, группировками, огромным количеством входных параметров. Есть банковские отчеты. Километровые, иногда динамически генерируемые запросы, без углубленного знания SQL ты нахуй не нужен.
893 1958037
>>1957988
Достаточно посмотреть любой высер по сисярпу с пометкой "за час". Если есть знания в программировании и не совсем дебил, то этого будет достаточно.
894 1958473
Хм. Хм.
А можно как-нибудь свой тип, который не имеет интерфейс IEnumerable и не имеет методов GetEnumerator и свойств Current и MoveNext сделать пригодным к foreach?
Просто суть в чем. У меня вот своя сущность образовалась, но я его сделал во FLUENT, потому что нужно было парсить токены, ну и мне казалось прикольно выглядит:
string zalupaName =
i.GoToNextNotEmpty()
.ThrowIf(x => x != zalupa)
.GoToNextNotEmpty()
.ThrowIf(x=> !x.IsName)
.Current.Value;

Но вот теперь я хочу чтобы была возможность это i - засунуть внутрь foreach, при этом мне не хочется добавлять GetEnumerator и свойство MoveNext
895 1958548
>>1958473

> я хочу итератор, но ничего не хочу реализовывать чтобы сделать итератор



???
896 1958673
Ребят как пикрил2 переписать в пикрил1?
Книга по нетКоре 2.1 а я делаю на 3.1 там чета поменялось и теперь по другому надо, подскажите как
897 1958677
>>1958673
Вернее там все одно и тоже но я не понимаю что делает срока
defaults: new ( Controller = "Product", action = "List" }) ;
и нахуя она нужна
898 1958810
>>1958548
Вообще то foreach он поддерживает кря-типизацию

Цитата

"Для того чтобы конструкция foreach успешно компилировалась необходимо, чтобы у объекта был метод GetEnumerator(), который вернет объект с методом MoveNext() и свойством Current, а если такого метода нет, то тогда будем искать интерфейсы IEnumerable и IEnumerable<T>"
.png19 Кб, 925x377
899 1958854
>>1958548
>>1958677
Держи, няша. F12 в студии ведь так сложно нажать.
900 1958866
>>1958854
Я же использую эндпоинты, где то читал что майкрософт рекомендует юзать их а не мапроут.Чи мне приснилось что они такое рекомендуют?
901 1958878
Что не так с этим кодом? Совсем говнокод? Я просто хочу не говнокод научиться писать, но покамест не получается. Пытаюсь. Пытаюсь. А не получается.
https://ideone.com/fzGkAt
image.png38 Кб, 761x247
902 1958905
эти темы нужны вообще? А то выглядят всрато, я о них даже не слышал нигде. Сам вкатуюсь, но вот эти темы смутили
903 1958916
>>1958905
В каком смысле зачем? Вот посмотри на List. Он может принимать любой тип в себя и ты не будешь вынужден как в случае без дженериков кастовать то что там в листе из обжекта обратно в нужный тип.
Ну или допустим у тебя есть абстрактный репозиторий. Он должен поддерживать операцию вставки, удаления, обновления и получения значения. При этом ты хочешь иметь возможность получить именно ту сущность что тебе нужна. Ты делаешь IGenericRepository<T> wher T SomeEntity, затем имплементируешь GenericRepositoryBase<T> wher T SomeEntity и, потом, допустим, делаешь BookRepository : GenericRepositoryBase<Book> в котором только те методы которые нужны для работы с книгами делаешь, типа GetBooksByAuthor(string author). И все, у тебя BookRepository - поддерживает операции операцию вставки, удаления, обновления и получения значения именно книг, ты туда не засунешь ничего кроме объектов которые нельзя к книгам отнести. Без этого ты бы делал кучу одинаковых классов, которые бы были как один, либо городил огород из костылей, если нужно получать определенный тип.
image.png36 Кб, 853x548
904 1958920
Ребяты, где обычно создают перечисления в asp net core?
Есть у меня страница, на ней есть выпадающий список с настройками для него вроде как лучше всего подойдет enum. Его в классе модели создать чи вынести в отдельный класс? Или использовать класс под этот список?
Бля когда по книге делаешь то понятно все, а когда что то свое придумывать то пздц туплю
.png8 Кб, 676x165
905 1958924
>>1958905

> эти темы нужны вообще?


Нужны.

> я о них даже не слышал нигде


Ты вообще что-то писал?

Нужно чтобы упростить лично тебе жизнь. Вот посмотри на прикриплейд. Вот тебе хочется верить в то, что другой еблан в команде не поступит вот так вот как с ArrayList? Мне вот спокойнее если еще на этапе компиляции его говно отфутболят и мне не нужно будет в моем коде проверять, не запихнули ли в список, который должен быть списком пользователей - залупу.
906 1958928
>>1958920

> Ребяты, где обычно создают перечисления в asp net core?


В базе данных.
Создаешь таблицу: Heroes в ней ID, DisplayName, ... что-то еще. Отдаешь клиенту JSON с массивчиком этих Heroes. Не даешь публичного апи для изменения.
Да, кажется оверхедом, только вот на деле, когда это будет в проде - проще сделать один Insert или Delete в базу, чем лезть в код проекта, делать там изменения, перекомпелировать и заливать на сервер новую версию проекта, ебаться с остановкой твоего сайта ну и т.д. Опять же, ты можешь закешировать результат и обновлять только при вставке-удалении, чтобы не теребить базу.
image.png5 Кб, 400x146
907 1958932
>>1958928
Эммм ваще не понял. Таблица без модели?
Это у меня как бы настройки, в зависимости от настроек будет разное действие при заходе юзера.
Или вот так как на пикриле?
908 1958933
>>1958924
Но бомбочку с нуллом все равно можно сделать, если тип списка ссылочный.
909 1958956
Сишарп убог настолько, что писать что-то крупное на голом языке очень сложно, в результате люди используют фреймворки
910 1958960
>>1958932
Смотри на примере консольного приложения.
Тут я вместо базы CSV использую, а вместо нормальных хендлеров - обычный словарик с лямбдами, но суть тебе должна стать ясна, если ты немного задумаешься о том как это работает.
Ты можешь так вот просто отдать на клиент новые значения и т.д. При этом чутка заморочившись - можно в рантайме добавлять обработчики, сделав приватное апи с конструированием обработчика, и не ебашась с перекомпиляцией, остановкой контейнера/сервера и вообще из-за того что внезапно вы поняли что что-то не нужно, а что-то нужно в опциях на какой-то страничке.
Удобно - пиздец.

P.S.Конечно, ты можешь не ебаться с этим и просто сделать у себя класс Options который отдает константные значения и затем гвоздями прибить обработку того что от клиента пришло. А можешь вообще просто enum. А можешь - вообще на клиенте опции сделать и как-то обрабатывать то что от клиента приходит, опять же прибив все гвоздями. Другое дело, что вот тебе самому-то хочется каждый раз лезть в код и правки делать, если по сути тебе нужно просто новую опцию добавить, да новый обработчик сделать?
P.P.S.Конечно, если у тебя там логика работы не предполагает что когда-нибудь эти значения изменятся, то можно не париться и сделать самым простым для тебя способом.
911 1958961
>>1958956
А есть языки без фреймворков?
912 1958982
>>1958960
Бля пиздец как сложно. Мне наверное это все не нужно просто.

По сути от enum будет зависеть результат выполнения. Ничего приходить не будет же, все значения уже известны.
На каждый enum свой
public IActionResult Index()
{
return View();
}

Я вообще думал так сделать: Вот юзер создает модель эту назовем ее Aby, пишем модель в БД. У каждой модели прописан URL, и при переходе на этот урл происходит действие, например показ данных модели либо редирект либо пустая страница. В БД значение этой модели меняться не будут.будут но только руками по этому их я хотел как тоеще хз как хранить все время в памяти для быстроты доступа так как время обработки здесь самый главный параметр, если время обработки 0.5 сек то нахуй такое надо ваще. Ну вот юзер переходит на страницу, берется модель и передается в метод который сравнивает все данные и решает что делать, показать юзеру страницу или сделать редирект.
Вроде же простая задача а ебни как с самолетом(
913 1958997
>>1958920
В целом верно писали, что такого рода перечисление, обычно, в базе данных держат. Просто еще одна табличка с Id и значением, которая может быть связана с таблицей твоих имен на уровне БД. Но если тебе не охота, нормальных подход для енумераций - разместить их в как можно менее доступном неймспейсе, и как можно ближе к класам, где применяется. Конкретно это будет зависеть от твоей архитектуры.

Пример: если у тебя онион архитектура, и на уровне базы данных супергерои просто хранятся как инты, их реальное значение не играет нигде, кроме как на юайке для пользователя, этот enum стоит разместить где-то в районе юзер интерфейс проекта. Если ситуация обратная, и оно гдето в моделях есть - enum отправляется в домен, где все заинтересованніе доступ будут иметь.

Если у тебя MVC с одним проектом - особо не повыкаблучиваешься. Но и тут тоже вполне сыграет это правило: если оно только вместе с этой моделью используется, стоит разместить enum в одном с ней неймспейсе, можно (но не нужно) даже в одном файле. Если у тебя все модели вместе в одной папке - тоже, кинуть в ту же папку/нейспейс. Если же enum используется во многих моделях, и у тебя есть какая-то иерархия типа [Models].[Top].[Kek.cs] она может отправиться в [Models].[MyEnum.cs], или можно выделить отдельный неймспейс для этого: [Models].[Enums].[MyEnum.cs], если [Models] начинает походить на помойку.
914 1959065
Почему тредик про шарп такой полуживой? Где весь движняк?
915 1959106
>>1959065
C# мертвый язык.
И тред не попадает на главную, хз почему
916 1959126
>>1959065
Сам двигай!
А в остальном - все ведь хорошо. Версии клепаются, фреймворки мутятся. Драма и живые обсуждения возникают при кризисах, а тут лишь вопросики вкатунов.
917 1959144
>>1955748

>сразу в Laravel


пиздуй, бороздуй
918 1959171
>>1959065
ASM и C ещё более мертвы судя по активности обсуждения. Хотя весь тот мировой колосс, на спине которого резвятся обезьянки, построен именно на этих языках.
919 1959178
>>1956943
>>1957036
дополню этого. Помимо того, что он высрал еще нужно знать:
- Строение .NET - CRM/CLS/SDK etc.;
- Концепцию #, как ООП языка - иерархия типов, касты, модификаторы, ключенвые слова, как разложить сахар в нативный язык;
- Юнит тесты. Без них никуда;
- Знать дискретку и базовые законы логики. Без них - обосрешься на первов вопросе о принадлежностях одного к другому;
- Знать паттерны - какие бывают, зачем нужны;
- Знать про такие вещи, как код стайл, алиасы твоей IDE, SOLID, KISS, DRY, etc.
- Алгоритмы поиска и сортировки - какие бывают, зачем и как;
Дальше от специфики вката:
- Unity? Тригонометрию, геометрию, аэродинамику (в идеале), Unity 3D естественно
- Веб? Версточку (sass, less, bootstrap/material/ant), native JS, один из популярных фреймворков - React/V/Angular (жетально и TS и JS, понимать что такое TS и зачем он нужен, полезешь в реакт - redux, ангуляр - rjsx). Так же - знание веб технологий - сокеты, порты, TCP/ID, UDP, работа браузера, REST (жетально еще SOAP). Начали спрашивать по CI/CD, Docker, Jenkins (если фулстеки) - зачем нужны, что и как. Веб инструменты - postman, tpcview, другие тулзы для работы с клиентской стороной.
- Десктоп - XML, MVVM, WPF, WinForms (смотря какая глина будет). Win32 also, процедуры. Если полезешь в кросплатформ - демоны, unix, какой ни будь не попсовый релиз lunix (про убунту или дебиан лучше даже не вспоминай - arch, kali твой выбор). В этой среде я плаваю, может кто чего дополнит;
- Мобилки - Xamarin.

И последнее - база в матане решает. Все глиномесы с фронта глотают престный калл, когда дело касается инженерных задач с вычислениями.
Все по верхам, хочешь вкатиться - копай глубоко. Типа как реализовать собственную коллекцию хотя бы с энумератором или как написать свой мьютекс/семафор.
Дерзай
image.png346 Кб, 604x906
920 1959182
норм книга для вката?
921 1959192
>>1959065
Тут сидят успешные специалисты, которым не до праздной болтовни. Извини, нет времени подробно расписывать.
922 1959195
>>1959182
Пиздецки как много воды.
Метанит лучше всего подходит для вката.
Если что то не понятно то можно подсмотреть в любой книге.
Ну это имхо
923 1959202
>>1959195

>Метанит


Соглашусь. Там довольно плотно инфа льётся. Сам через него вкатывался, хотя если шарп первый язык, то метанит не подойдёт. Всё таки базовые концепции он не особо обкашливает.
Ну и если своих задач нет и не можешь придумать, то нужен задачник.
924 1959207
>>1959202

>хотя если шарп первый язык, то метанит не подойдёт.


Ну да это я не учел. так то я был уже знаком с базовыми понятиями и мне нужен был только синтаксис.
Вот треды таски асинк авейт там ппц плохо объясняются, пришлось и читать книги и видео смотреть и до то до конца не понимаю эту тему.
925 1959211
>>1959207
там еще домашки не плохие. Как-то на этом метаинте прочитаешь и забудешь все сразу, а тут автор прям прожевывает так, чтобы ты все понял
926 1959219
>>1959211
Ну стоит читать тогда. В целом нет какого-то особо выдающегося учебника для начинающих (кроме Рихтера, конечно же). Все они про одно и то же. Тут важно, чтобы процесс чтения сопровождался практикой, поиском альтернативных объяснений сложно понимаемых моментов и т.п.
927 1959221
>>1959219
*Имел ввиду, что Рихтер конечно же не подходит для начинающего (после 3-5 лет практики можно присмотреться, если ещё будет актуально).
928 1959283
>>1959182

>Васильев А.Н.


>на рузске


даже влень гуглить это говно, бери Тролсена ангельском и не еби мозги
929 1959310
>>1959283

>бери Тролсена ангельском


Не стоит пытаться одновременно угнаться за двумя зайцами: и учить кодинг и учить английский.
Делая так, как советует этот анон, ты будешь читать очень медленно, и многое будешь не понимать, и скорее всего дропнешь.
Английский сам вынужденно придёт, когда нужно будет читать специфические вещи в доках.
930 1959317
>>1959310
зачем ты советуешь изучение на рузке, если все сводится к аутстафу за бугор. Нынешнее ойти - это работа на забугорного барина, а ему твое рузке нахуй не нужно. И когда тебя будут продавать галере, будут собесить только на английском и только с английскими терминами.
Лайт бонус - если ты в своей первой конторе покажешь, что знаешь ангельский, то могут закрыть глаза на какие то пробелы в знаниях, т.к. тебя будет дешевле продать.
931 1959318
>>1959317
легче продать

быстро фикс
932 1959331
>>1959317
Я вообще не понимаю нахуй разработчику общаться с заказчиком? ПМ нахуя тогда нужен?
933 1959339
>>1959317
А программист тут при чем, лол?
Программист - пишет программы. Не его работа общаться с заказчиком, не его работа писать текст, его работа, внезапно, писать программы. Все. Блядь.
Я просто хуею с дуры. А если на китайского заказчика работать будешь - будешь китайский учить? А заказчика из испании, который не хочет на английском общаться? Пиздец, блядь. Дура, нахуй.
Мне вот интересно даже. А если бы ты был игровым разработчиком. Ты бы советовал всем кто кодить в геймдеве - учиться рисовать и моделить. Ну а хули - игр без графики нет, ты же не текстовую РПГ делать будешь ЛОЛ. Пиздец. Блядь. Нахуй.

За 5 лет работы в ни разу не пришлось с кем-то там общаться, а весь текст переводили специально обученные люди. Я надеюсь хоть тебе на галере доплачивают за то что ты совмещаешь с работой программиста работу переводчика и менеджера, иначе ты тот еще лох.
934 1959350
>>1959339

>За 5 лет работы


я не знаю, где ты там работаешь, но все, что ты пишешь - это бизнес. Бизнес, за бугром. И я уже писал про аутстаф, ты видимо слов таких не знаешь, или работаешь на закрытом рынке за хуй с солью
>>1959331
если ты думаешь, что дев в 2к20 и 2к00 это тоже самое, то ты сильно ошибаешься. Аутисты не проходят фильтрацию, т.к. кодика писать уже недостаточно и многие реально скиловые тонут на софт скилах. Это правда нынешнего ойти. Хочешь работать и зарабатывать? Ты себе и апиху на .NET пиши, ты и фронт ковыряй, ты и CI/CD настраивай и все это тестируй. Нужно перекашлять вопросы? Заказчик онлайн - звони.
935 1959351
>>1959350

> аутстаф


Так и говори, что ты не программист, а негр наемный.
936 1959353
>>1959350

>Заказчик онлайн - звони.


Бля как можно доверять апездалу разработчику такое? А если я еблан такой позвоню заказчику и скажу что на хую вертел его желания так как на его говне такое сделать не реально а если он все таки хочет получить нериальное то нужно все полностью переписать и это нужно делать пол года.
Заказчик психанет и разорвет контракт, в итоге из за еблана такой проеб, я то работуда и не факт, я же ничего плохого не сделал, просто ввел заказчика вкурс дела потеряю а контора дохуя бабла.
937 1959366
>>1959351
я про аутстаф изначально и писал. Если ты на внутренний рынок работаешь, ты себя считаешь лучше аутстаф работника? Я бы на твоем месте так не горячился
>>1959353
ты вообще не понимаешь, как работает эта система, раз пишешь такую хуйню. По поводу длинного языка или каких либо своих убеждений заказчику - тебя убирают с проекта, ставят нового. Пизданул слишком много или заказчик слетел - от выговора до занесения в блек листы.
И я читаю вашу писанину и понимаю, в какой бездне ойти в 2к21. Срам
938 1959435
А как теперь называется универсальное приложение в VS2019? Где искать?
939 1959442
>>1959435
Нашел, это говно 10Гб весит
940 1959478
Есть ли какой-нибудь сайт с задачами по LINQ?
941 1959502
>>1959478
Глянь ulearn, там есть мини-курс по линку с задачками
942 1959581
>>1910326

> 7. Что почитать?



Где? Я ебал по три тысячи за книжку отдавать!
943 1959619
Cап, аноны. Есть какие-нибудь юзабельные кроссплатформенные GUI фреймворки? Видел AvaloniaUI, но знакомый говорил что еще лагает и некоторые ui элементы багованные
944 1959629
>>1959581
Все гуглится, а то, что не гуглится, есть на рутрекере.
945 1959794
>>1958956
на каком языке можно писать что-то крупное без фреймворков?
946 1959796
>>1959629
А если что-то не выложено ни на рутрекер, ни в другие закрома, то это 100% не достойно чтения.
947 1959800
>>1959581
libgen.rs
948 1959839
Почему в методах типа TryFind, TryCalculate и прочих методах, в которых результат может быть, а может и нет, принято использовать шаблон:
bool TryFind(..., out T result)? В стандартной либе и во многих других кастомных либах постоянно такое вижу.
Хотя более логичным выглядит шаблон типа:
T? TryFind(...)
Потому что в случае возврата Nullable<T> нет нужны даже в случае неудачи что-то записывать в result. В случае с double для этих целей есть NaN, но для int или кастомных структур и классов нет значения, явно указывающего на отсутствие результата. При в первом случае возможно ошибочное использование result'а даже если TryFind вернул false.
949 1959916
>>1958920
В твоём случае перечисления не делаются.
Делаешь абстрактный класс AHero, от него уже наследуются 4 реализации конкретных героев HerCheb и т.п.
950 1959938
>>1959839
Так null может быть валидным результатом
Не отличишь
951 1959939
>>1959839

> T? TryFind(...)


Потому что Null - может быть валидным значением в каком-либо апи.
Допустим, в апи при парсинге HTML - в случае отсутствия кук - возвращаем Null. Вот и что по твоему логичнее - вернуть Null в обоих случаях, если весь запрос невалиден и если куки в запросе нет или таки ответить, что запрос валиден, но куки в нем нет и вернуть Null из в качестве результата.
952 1959940
>>1959939

> при парсинге HTTP


фикс
953 1959966
>>1959839
Там правильно написали про то, что null тоже может быть результатом.
Еще есть такой момент, что null`able пытаются поменьше использовать, чтоб избегать засилья if для постоянной проверки на null, и исключений, когда забудешь/что-то поменяется.
А еще мне нравится красота выражения

if(peka.TryGetGreka(out var greka)){}

по сравнению с

var greka = peka.GetGreka();
if (greka is not null){}
954 1960188
суп шарпач, как лучше всего сохранить приватную инфу(логинопароли там всякие), если речь идет о десктопной программе? есть ли бест практисес?
955 1960211
Можете плез пояснить про ? В дженериках? Когда я пишу T?, то что это означает? Ведь T может быть как валуетипом, а значит T? == Nullable<T>, так и референс типом, когда ? просто аннотация для варнингов компилятора.
956 1960220
Пора бы уже дошлифовывать знания, писать какой либо пет проджект и искать работу. Денег осталось ровно на 3дня месяц, а дальше хз.

И как же ее найти то ля? И как узнать где знаний хватает а где нет?
Вот к примеру из описания вакансии.

>Уверенные знания С# и .NET Framework/Core


Вот на сколько уверенное? Как проверить уверенное чи нет?

>Навыки разработки кросс-браузерных Javascript/HTML/CSS приложений с синхронным/асинхронным клиент-серверным взаимодействием


Ну такова нет, но вакансия джуна то подразумевает что он нихуя не разрабатывал же.

Корочи как определить что еще нужно доучивать? Во всех вакансиях требования разные, учить asp net core wpf html sql css js react angular и еще дохуя умный слов можно год и в итоге ничего не выучить.
957 1960253
>>1959938
>>1959939
>>1959966
Понятно.
Хотя в целом получается некоторая путаница между null как отсутствующая ссылка для ссылочного типа и null для Nullable<>, означающее скорее отсутствие значения. Его надо было правильнее назвать Emptyable<> с соответствующим словом вместо null.
958 1960275
>>1960220
На самом деле большинство спецов в тех конторах, куда ты хотел бы устроиться, знают очень мало и просто среднеудачливые самозванцы, в лучшем случае пришедшие после курсов или какого-то самовката по едва осиленному мануалу типа C# за 14 часов на ютубе.
Единственное, что тебя отделяет от должности - это собеседование. При этом кадровики технически не грамотны и не способны тебя отсеять по незнанию каких то языков или технологий. Технические специалисты просто не умеют собеседовать, хотя бы даже в силу отсутствия достаточного опыта. Но даже и опыт в этом деле не особо помогает. Например препод в ВУЗе в целом не дурак, знает свой предмет, имеет колоссальный опыт приёма экзаменов, но его всё равно студенты постоянно наёбывают и выдают себя за знающих. С собеседовании в конторах всё НАМНОГО хуже.
Также важно понимать, что на самом деле глубокие и обширные значения в работе не нужны, потому что ты не компилятор и не ОС пишешь, а приблуду для какого-то веб-говна с привычным для данной области крайне низким качеством (всё тормозит, страница весит 200 Мб, на 100+ комментах всё зависает даже на топовом i9 и т.п.). В принципе качество современного веба и сопутствующих сервисов наглядно даёт понимание о среднем уровне современного программиста.
959 1960356
>>1960275
Ну бля все равно надо для себя хотя бы поставить какую либо планку после который сам себе смогу сказать типо вот все пора работу искать.
Так то я ваще не хотел бы прикасается к вебу и особенно к фронтэнду, но таких вакансий большенство(
960 1960379
>>1960253
все дело в семантике

например обращаясь к базе данных это "дай мне набор данных" можно вернуть null, что будет означать "нет набора данных".

А вот если у тебя словарик какой-то, в который ты что-то кладешь что-то и null если в данный момент ничего другого положить не можешь. Можно было бы и не класть null, но само наличие значения по ключу может означать, что данный ключ обработан. Заводить тип NoValue? делать дополнительно список ключей "для них мы работали, но не клали в словарь null мы не кладем? да проще использовать bool TryGet
961 1960435
Необходимо перекатиться с WebForms на .Net Core (MVC, API).
Стоит ли для начала быстренько просмотреть ролики, объясняющие основы ASP.NET MVC, чтобы перекат был не такой болезненный?
962 1960551
>>1960379

>обращаясь к базе данных это "дай мне набор данных" можно вернуть null


Только в шарпе для этого зачем-то завезли ещё один специальный нулл, который System.DBNull, и который нихуя не равен обычному нуллу.
963 1960556
>>1960551
не путай "null как значение колонки в бд" и null, как возврат из метода (вместо пустого массива) в языке программирования.
964 1960570
>>1960551
блин нельзя посты редактировать
поясню зачем завезли

В ADO.NET например есть метод ExecuteScalar(). И он может вернуть null. И как ты отличишь null как "нет данных вообще" от "данные есть, но их значение null". Вот DBNull и позволяет их отличать.
965 1960574
Как думаете, вот для этой вакансии - https://joblab.ru/vac8446444.html
знания типа "if else/for/switch/while" достаточно будет для вката? Завод же, хули
966 1960576
>>1960574
оно тебе не надо. хочешь хранимки пилить каждый день?
967 1960581
>>1960576
За 60к да. Это много для моей деревни.
968 1960582
>>1960581
Боюсь знание шарпа даже на "очень харашо" не дает опыта мороки с хранимыми процедурами и интеграции всяких там PDM T-Flex.
969 1960583
>>1960570
Ну вот в данном случае уж как раз подошел бы шаблон bool TryExecuteScalar(out string result) или что-то подобное. Вместо этого нагородили очередной новый не имеющий аналогов нулл и затащили его вообще во все методы, и теперь вместо одной проверки на нулл получаем две.
970 1960603
>>1960583
Может быть. Очевидно они решали проблему XY
971 1960639
>>1960583
Было небось так

1 тааак. у нас есть ExecuteReader, но что если нам нужно одно значение? пусть будет метод ExecuteScalar
2 он может вернуть, что угодно...значит пусть возвращает object
3 так и null может быть значением...значит сделаем NullObject чтобы отличать
И если там кто-то и предложил " а может bool TryExecute", то с ним поступили как на всем известной картинке

Была бы открытая разработка, то им бы народ ткнул сразу что IReadOnlyList очевиден и что не должен HttpClient кидать OperationCanceledException на таймаут, что метафора "запрос был отменен (внутренним механизмом)" понятна, но теряется контекст причины отмены. И что надо бы что-то вроде await?, а не ConfigureAwait(false), и вообще не нужно void, а нужен Void, чтобы в будущем не было Task и Task<T>, а был только Task<T>, и что null safety нужен сразу, а не потом...и так далее
972 1960747
>>1959221
Зачем после 3-5 лет Рихтер? Рихтер именно для нуля лет опыта знать нужно, чтобы собесы проходить. И актуальность вообще не решает. Когда тебя спрашиют, как что-то работает - они хотят услышать не как оно в .net 5 работает, а как в Рихтере с Троелсеном написано.
973 1960752
>>1959478
Ага, любой леткод бери - и решай все задачи через linq
974 1960887
Как с т.з. чистого кода понять, когда следует использовать в классе свойства, а когда методы?
Вот например, есть объект Circle. У него есть свойство Radius и приватное поле radius, через который определяются все остальные параметры.
Но вот например, Diameter или Area. Тоже наверное свойства, потому что в принципе мы могли бы использовать их вместо радиуса, и ничего бы не поменялось, всё просто считалось бы обратным способом, это лишь детали реализации. Но с другой стороны, это вычисляемые поля. И в данном случае они вычисляется быстро, но для более сложных объектов, вычисления могут быть не быстрыми, а пользователь может быть введён в заблуждение, что типа раз это свойство, то оно почти сразу доступно. Но если же выбирать метод или свойство по объёму вычислений, то это уже раскрытие деталей реализации.
975 1960918
>>1960887
У тебя в голове какой то оверинжиниринг. Пользовательне будет введен в заблуждение, т.к. пользователю вообще не известно что у фигуры на экране есть какие то свойства. Пользователь всегда условно туп. делай ка кполучится и не думай о производительности. Скорее всего твоя программа умрет не добравшись до беты. Если не умрет до беты. то загнется в бесконечной бете с кучей переделок и вся твоя изначальная архитектура пойдет по пизде. Если случится чудо и ты доберешся до релиза, то вот тогда уже смотрик ак оно у тебя выглдит и пили тз под версию 2.0
976 1961012
>>1960887
Если у тебя это отдельные классы - не вижу препятствий делать как подходит для класса - через свойство.
Если у тебя некая сложная иерархия и реалистичны случаи, когда ты будешь получать свою Area у наследника через интегрирование - делай методами.
Если не уверен - тоже делай методами, ведь мне, как потребителю твоей библиотеки, не особо важно, буду ли я свойством получать данные, или методом. Я исхожу из того, что ты сделал как нужно, а при какой-нибудь сериализации я себе в ногу не выстрелю.
977 1961166
>>1960887
С точки зрения чистого кода, конкретно к твоей ситуации. У тебя есть класс Circle. У него есть 1 поле только для чтения Radius. Все. Больше ничего у него нет и менять поле никак нельзя.
Затем, у тебя есть отдельный класс: DiameterCalculator который будет рассчитывать диаметр кругов. У него метод CalculateDiameter(Circle c) => c.Radius*2. Это конечно рофельный пример, тебе проще самому в нужном месте рассчитать, либо сделать метод расширения, если так уж надо.
Потому у тебя может появиться абстрактный класс: AreaCalculatorBase<T> where T : IShape, с методом CalclulateArea(T shape) и от него уже CircleAreaCalculator : AreaCalculatorBase<Circle>.
Суть. Круг изначально ничего не знает ни о каких там своих пощадях. Нахуя ему вообще это знать? НО, если тебе потом понадобится такой вот круг, который бы мог вычислять свою площадь - ты просто делаешь фассадик и получаешь тот функционал что тебе нужен.
978 1961620
Начал изучать сишарп, скачал Джозепа Албакхара "карманный справочник", как начать понимать что там написано? Я процентов на 40 только понимаю. Сам нуфаня.
979 1961621
>>1961620
Или со временем начну больше понимать?
980 1961722
test
981 1961723
аноны, я вкативальщик, как юзать трайкачи, что анон пишет в качах? например есть задание получить данные из дб, нету связи с базой, получаем исключение, как обрабатывать такое исключение?
982 1961754
>>1961723

> как обрабатывать такое исключение?


В каче пишешь что нет сваязи с базой. В файнли закрываешь соеденение.
983 1961762
>>1961754
Но у меня должны возвращаться данные, если я не сделаю ретурн в каче я получаю ошибку компиляции а я не могу возвратить никакие данные потому что нет связи с базой, что делать?
984 1961765
>>1961762
Ты как то хуево написал код значит. Тогда просто падай.
985 1961772
>>1961765
Не понял, я же спросил как правильно написать, что за тупой ответ, вы все тут такие остроумные?
986 1961776
>>1961772
Правильно напсиать кетч так как сказано выше. если тебе этот вариант не подходит, потому что другой твой код не компилится,то это уже проблема твоего другого кода.
987 1961797
>>1961621
Начнешь, но вкатываться по справочнику, это как учить английский по словарю.
988 1961812
>>1961776

>Правильно напсиать кетч так как сказано выше. если тебе этот вариант не подходит


Какой вариант дебич? если ты про это >>1961754
то ты ничего по факту не написал, то что ты ответил это пук в лужу, свой код покажи где ты, ловишь отсутствие связи в например в getUser
989 1961813
>>1961723
Универсальное правило: если исключения ожидаемы (что не очень хороший стиль для твоего кода, и случается, обычно, при использовании сторонних библиотек) - напиши свой трайкетч, а возвращай что-то вроде пустой колекции или модели со значением свойств по умолчанию. Если исключения не ожидаемы (к чему обычно относят потерю соединения с базой) - ничего не делай, и рассчитывай на глобальный обработчик исключений, который покажет юзеру сообщение, что что-то пошло не так, а ты по логам сможешь легко понять, что и где пошло не так.
990 1961820
>>1961813
Слава господи, адекват в треде,
то-есть в каче что, вызвать логгер, и бросить не имплементированное исключение которое поймает глобальный обработчик?
991 1961825
>>1961812
Как же заебали вкатывальщики, которые сначала задают тупые вопросы, потом не понимают ответа, и вместо того, чтоб вежливо уточнить, начинают называть окружающих дебилами, хотя именно они чего-то не понимают.
992 1961832
>>1961825

>ответил без кода,


>Подтвердил что действительно пукнул в лужу

993 1961834
>>1961820
Вообще не использовать трай-кетч. Обычно настраивают глобальное логирование, которое и пишет в лог необработанное исключение. Но если у тебя простая хуйня для обучения - я бы с глобальным логом не заморачивался - кто их читать будет. Просто знай, что такое есть, а трай-кетч в твоем случае не используй.
image.png651 Кб, 540x720
994 1961842
>>1961834
Понял, это в целом полностью перекликается с ответами со стакОверфлов где писали что исключений нужно ловить только когда ты можешь что-то с ними сделать, спасибо за разъяснение этого принципа более детально!
995 1961882
>>1961812
Тебе написали понятными словами понятный порядок действий. Код за тебя никто писать не будет. Если нужен код, то давай контакты. Сумму за работу уточним.
996 1961980
>>1961882
Школьник успокойся ты уже обосрался и тебя уже послали, дальнейших действий не требуется, съеби отсюда
image.png34 Кб, 812x450
997 1962138
Как из готовой бд создать модели? Database First
На метаните написано что нужно добавить ADO.NET Entity Data Model
Но как я понял это уже устаревшая статья.
Как мне такое в консольном net core 3.1 ef приложении сделать?
.png7 Кб, 515x286
998 1962167
>>1961723
Делай вот так вот. Базарю. Еще захочешь.
999 1962197
>>1962167
Кстати, это пример того что у меня есть в продакшн коде. Как же хорошо жить без кодревью ваших.
1000 1962206
>>1962138
Все разобрался.
PM> Scaffold-DbContext "Server=(localdb)\MSSQLLocalDB;Database=SPTest;Trusted_Connection=True;MultipleActiveResultSets=true;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

Нужно было убрать \ так как в консоле не экранинуются символы.
1001 1962388
>>1961166
Это интересный подход, и я даже пробовал несколько раз подобным образом проектировать классы, но как-то в итоге жизнеспособно не получалось. В стандартной либе, насколько я могу судить, так не делают почему-то, и я по дефолту всё же пытаюсь подражать именно ей. Но было бы интересно увидеть небольшой живой проект, где так пишут.
1002 1962392
Анон, обьясни дебилу, зачем нужны обобщенные классы, они же дженерики? Что такого они могут, чего не могут абстрактные классы?
1003 1962394
>>1962167

>throw null


Nani!?
1004 1962397
>>1962392
Ну что проще - делать миллион классов типа
StringStringDictionary, IntStringDictionary, GovnoJopaDictionary и переопределять там все методы, или просто в одну строчку сразу писать Dictionary<string, string>?
1005 1962403
>>1962397
эти миллион классов все равно же надо прописывать, разве нет? А потом можно их вложить в одну коллекцию, которая принимает абстрактный класс-батю
1006 1962404
>>1962403
Нет конечно(ну или я не понял что ты имеешь в виду).
Я просто беру и пишу вообще на ровном месте var a = new Dictionary<string , int>() и могу сразу использовать потому что компилятор сам все сгенерирует.
1007 1962407
>>1962404
попробую иначе. Допустим у меня есть дохуя однотипных классов - наследников от одного абстрактного класса. Я могу также писать на ровном месте List<Батя> и пихать в него любой из наследников, нежели создавать обобщенный класс
1615321710137.png237 Кб, 500x394
1008 1962409
>>1962407
Иди проспись.
1009 1962413
>>1962409
чем твой пример отличается глобально от моего?
1010 1962416
>>1962407
Ну класс List и есть щаблонный класс, если бы он был не шаблонным, тебе пришлось бы делать специальный BatyaList. А потом ты захочешь список из типа инт, а инт это ну вообще не батя, придется писать новый класс.

Ты можешь возразить, что абсолютно все является наследником класса object - значит надо сразу делать класс List для обжекта. И действительно, ты можешь сделать класс работающий с типом object, и он будет работать с абсолютно любым классом.
Но:
1. Тебе приедтся постоянно прописывать касты. Типа ((Batya)myList[3]).PosmotretVShel();
Не удобно же.
2. Ты не можешь гарантировать, что все объекты в списке будут одного типа. Я смогу получается и строку и число в список запихать легко. Вот принимает какая-то функция на вход какой-то список, и хуй вообще знает а что за список ей нужен. Придется в описании функции писать, постоянно туда смотретт. Более того, я могу случайно что-то не то положить список и компилятор меня не предупредит, а потом хуй знает как эту ошибку в большом проекте искать.
image.png30 Кб, 1138x419
1011 1962426
>>1962416

>Вот принимает какая-то функция на вход какой-то список, и хуй вообще знает а что за список ей нужен. Придется в описании функции писать, постоянно туда смотретт.


если я сделаю так, ты же не сможешь дать неправильный список
1012 1962429
>>1962388

> В стандартной либе, насколько я могу судить, так не делают почему-то,


Потому что изначально стандартная либа писалась впопыхах и нужно было с одной стороны быстродействие, с другой чтобы был сахарок и все фишки жавы и даже больше. Потому там статик через статик, потому там стримы кидают исключение вместо того чтобы просто давать тебе интерфейсы отдельный для чтения, отдельный для записи и вообще, с точки зрения именно что чистоты кода - там такое себе.
По сути - современный кор/net5 как-бы и стараетлся наконец в архитектуру. Посмотри код кестрела, например или примеры архитектуры которые на гитхабе залиты от самих мелкомягких. Классы в пару строчек, всюду адептеры да фассады. Красота с точки зрения чистоты. Разобраться в этом коде можно за полчаса.
Когда ты откроешь исходники старого дотнета - ты охуеешь от того как там хуячат. Ну, хули, деды, они могли 4к строк за полчаса выдать, потом накатить и еще столько же выдать и так 12 часов в день.
1013 1962436
>>1962394
А что не так, лол?
1014 1962444
>>1962426
Совершенно верно, потому что List -
и есть дженерик

Вот попробуй сделать свой класс который делает все тоже самое что и лист в качестве упражния.

Ты начнешь писать
class MyList
{
}
Так что там ему нужно? Надо чтобы можно было добавлять, получать по индексу, и удалять элеиенты, да?

Ну хорошо попробуем добавление элементво сделать
class MyList
{
public void Add(.....)
{
}
}
Как функцию Add написать, какие у нее параметры должны быть? Она должна принимать элемент... какой? Не понятно. Обжект что ли? Тогда проблемы описанные мноц выше актуальны.

А что если сделать так...

class MyList<T>
{
T[] data;
public void Add(T element)
{
//это оставляю тебе
}
}
Вот это другое дело!
1014 1962444
>>1962426
Совершенно верно, потому что List -
и есть дженерик

Вот попробуй сделать свой класс который делает все тоже самое что и лист в качестве упражния.

Ты начнешь писать
class MyList
{
}
Так что там ему нужно? Надо чтобы можно было добавлять, получать по индексу, и удалять элеиенты, да?

Ну хорошо попробуем добавление элементво сделать
class MyList
{
public void Add(.....)
{
}
}
Как функцию Add написать, какие у нее параметры должны быть? Она должна принимать элемент... какой? Не понятно. Обжект что ли? Тогда проблемы описанные мноц выше актуальны.

А что если сделать так...

class MyList<T>
{
T[] data;
public void Add(T element)
{
//это оставляю тебе
}
}
Вот это другое дело!
1015 1962447
>>1961797
А что посоветуешь для изучения? А то я хз что там по книгам.
1016 1962453
>>1962447
Насколько ты нуфаг? Си шарп твой первый язык?

Вообще практика - это самое главное. Напиши сам какую-то программу - подумай, что ты мог бы сделать с учетом твоих знаний? Тогда многое поймешь.
1017 1962455
Ребята как с селениуме прокрутить страницу вниз?
В частности на странице видео с ютуба хочу погружать коменты пока все не прогрузятся. Нужно прокрутить, подождать потом снова прокрутить. Да я пробовал примеры 7летней давности с SOF, не работает
Хочу парсить коменты, в get не умею, а апи только 10к запросов что для меня очень мало.
1018 1962467
>>1915581
Такая же бида, только у меня все эпичнее. Два года быдлокодил на хуюньке, порвал с тянкой, впал в депрессию. Щас вот тока оправился и решил вкатиться обратно, без работы, скоро от голода сдохну, но мне не страшно. От юнити просто блевать тянет. Делаю вывод, что чем больше обдуманно изучаешь тему разработки, тем больше хейтишь юнити-хуюти. Вот дотнет вообще балдежный, настолько в нем изящно сделана и продумана каждая деталь, просто зубришь и все, без всяких ебаных подводных камней. И чисто если рассудить, то количество говнокода должно быть в разы меньше, потому что нет уебков, котоыре вкатились ради "ХОЧУ КАК ГОДЗИМА ДЕЛАТЬ ВЕЛИКИ ИГРЫ", а по факту пилят обоссаный код, за который нужно вешать нахуй и четвертовать. В общем ебал в рот юнити, дотнет ня.
1019 1962495
Привет, аноны. Ситуация такая, недавно начал заново изучать шарп в прошлый раз недоучил, да и было давно, так что можно считать, что учу почти с чистого листа. И у меня появился ряд вопросов, не кидайте помидорами, если совсем уж нубские.
1) Что понимается под "знанием .NET Framework/.NET Core/.NET"? Все библиотеки, что входят туда, вроде ASP.NET/ADO.NET/WPF/LINQ и т.д. или просто понимание того, как платформа функционирует, в чём её преимущества, etc.
2) Только что дочитал главу с делегатами и интерфейсами, выглядит всё довольно сложно, хотя большая часть понятна, но мне как-то контринтуитивно их применение, как заставить себя их использовать и видеть ситуации в которых они важны?
3) Насколько важно знание паттернов проектирования и рефакторинга в контексте джуниорской/стажёрской вакансии? Стоит ли это всё учить или не стоит сейчас забивать голову?
4) И наконец что конкретно понимается под "чистым" кодом? Я вот по дефолту делаю понятные имена переменных/методов, комменты добавляю на английском, разбиваю слишком длинный метод на несколько, это можно назвать "чистым кодом" хотя бы на начальном уровне?
1020 1962499
>>1962495
1).NET Framework - старое УГ только для винды, .NET Core - сексуальное воплощение божией силы работающее везде где можно, .NET - по сути тот же неткор, просто майкрософт любят ебаться с ребрендингом. У меня лично довольно дохуя времени ушло, чтобы разобраться в сортах говна .NET.
ASP.NET - сайтики, есть еще core версия. ADO.NET для бд, старое говно. WPF окошки для винды, лучше начни с WinForms. LINQ - способ обращения с коллекциями в различных извращенных формах - функционально или SQL форме.
2)Задачи появятся в контексте проекта. Придумай себе проект и трахайся с ним, читай статьи. Пока что тебе не понятно нахуя это надо, потом само поймется, это нормально. Но вообще чистые delegate используются редко на моей практике, delegate нужен лишь для существования эвентов
3)Пока ты духджун, знать скорей всего не надо. Поймешь на практике.
4)Чистый код, это когда тебя выебали во все щели на первых ревью, а затем еще и твою мать, твою собаку и кота за лишние пустые строки в коде. Тогда ты научишься делать "чистый код"
1021 1962501
>>1962495
Надо добавить - сколько ты не старайся, но тебя выебут на первых ревью, поэтому жопу готовь, но стараться все равно нужно, чтобы хотя бы взяли на работу.
1022 1962511
>>1962453
Да, первый.
Спасибо, но я хз как кодить.
1023 1962512
>>1962499
>>1962501
Спасибо за расписанный ответ анон.

>NET Framework - старое УГ только для винды, .NET Core - сексуальное воплощение божией силы работающее везде где можно, .NET - по сути тот же неткор, просто майкрософт любят ебаться с ребрендингом. У меня лично довольно дохуя времени ушло, чтобы разобраться в сортах говна .NET.


ASP.NET - сайтики, есть еще core версия. ADO.NET для бд, старое говно. WPF окошки для винды, лучше начни с WinForms. LINQ - способ обращения с коллекциями в различных извращенных формах - функционально или SQL форме.
Да, это я уже понял, я вот только не понял, это всё и понимается под знанием условного .NET? Просто я в вакансиях видел одновременно владение, скажем .NET Framewrok и ADO.NET, в таком случае нелогично выходит, потому что второе входит в первое.

>Задачи появятся в контексте проекта. Придумай себе проект и трахайся с ним, читай статьи. Пока что тебе не понятно нахуя это надо, потом само поймется, это нормально. Но вообще чистые delegate используются редко на моей практике, delegate нужен лишь для существования эвентов


Т.е. если я напишу на тестовом реализацию чего-то условного не листом объектов, а простым массивом, то не будет слишком сильно резать глаза и быть неправильным решением?

>)Чистый код, это когда тебя выебали во все щели на первых ревью, а затем еще и твою мать, твою собаку и кота за лишние пустые строки в коде. Тогда ты научишься делать "чистый код"


>лишние пустые строки


а разве пустой строкой не надо разграничивать блоки кода для повышения читабельности? Я вот всегда инициализацию данных отделяю строкой от остального функционала.

>Надо добавить - сколько ты не старайся, но тебя выебут на первых ревью, поэтому жопу готовь, но стараться все равно нужно, чтобы хотя бы взяли на работу.


Ну за счёт жопы я не боюсь, а вот чтобы взяли всё же было неплохо, ибо в условные пол-месяца/месяц/полтора если я не найду работу то кушать таки будет нечего.
1024 1962531
>>1962511
Скачай курс скиллбокса по шарпу с торрента. Там как раз неплохая база для полных нулей
Screenshot1.png16 Кб, 360x366
1025 1962552
Есть идеи как это воплотить можно? Прохожу курс по шарпу, выбрали 25 человек из сотни и дали проект, сказали нате, делайте все сами. Мне дали именно пикрелейтед.
Чувствую себя будто только научился стрелять и тут сразу же бросили в бой. Даже не знаем с чего начать.
1026 1962554
>>1962552
А что собственно не понятно? Вроде никаких извращений...
1027 1962563
>>1962554
Я вообще не ебу что кодить.
Класс CitizenAccount с полями name, surname, age, occupation etc?
Это еще кучу реквестов хендлить из других сервисов, самому реквесты высылать, пиздец программированию так и учатся?
1028 1962571
>>1962563

Конечно тебе нужен класс жителя, как ты с базой будешь работать без него? Нативный squery фигачить будешь?

Насчет сервисов я вообще не понял, из пикрила не вытекает необходимость использования каких-то сторонних сервисов, там есть только какие-то оплаты, и насколько я понимаю тебе не нужно делать именно САМУ возможность оплат, КАК МНЕ КАЖЕТСЯ, тебе нужно просто создать что-то типа записной книжки с триггерами что бы пользователю напоминать что и когда оплачивать, и что и когда он уже оплатил, как запланированные дела только с оплатами ну это ОПЯТЬ ТАКИ ПО МОЕМУ ПРЕДПОЛОЖЕНИЮ СУДЯ ИЗ КОНТЕКСТА, по одной картинке ТЗ сложно понять,

А поиск других пользователей и чат так это вообще тривиальная задача, я даже не поверю если ты мне скажешь что вы такое уже не делали на курсе,

в общем-то все задания очень тривиальные, типа get/post как джун на работе ты скорее всего 99% времени будешь должен щелкать именно такие задачи
Screenshot2.png246 Кб, 1199x760
1029 1962591
>>1962571
Надо было сразу всю схему показать
Больше всего боюсь именно за обработку входящих запросов из других сервисов
Почитать бы что нибудь про это сразу целиком, гугл выдает только кусками и не понятно как это все вместе склеивать
1030 1962600
>>1962591
Не понимаю в чем сложность, они что будут тебе в каком-то специфическом формате запросы отправлять? Не в Джейсоне?
1031 1962612
>>1962591
ЛОЛ, повезло чуваку на морге, принял труп, написал что он здох, продолжил чилить...

Что за курс кстати?
.png12 Кб, 684x325
1032 1962971
>>1962552
Чет типа такого. Без остальной информации таки сложно ванговать.
image.png205 Кб, 1893x998
1033 1963406
Анон, выручай - у меня сломался nuget

(раньше ставил на пробу годот, потом удалил, и теперь у меня не работает nuget

То есть создаю новый проект, открываю nuget, выбираю либу, нажимаю установить - пишет вот это все снизу

Старые проекты где уже подключены библиотеки - тоже теперь не компилируются, показывает восклицательный знак на всех либах и ничего не дает с ними делать.
1034 1963455
>>1963406
Вангую, тебе просто нужно постирать записи об годоте в нугет файлах и еще может в проектнейм.sln (открой блокнотом).
1035 1963457
>>1963406
Ошибка из-за того что ты снес годот, а студия его хочет вызвать.
1036 1963461
>>1963406

>раньше ставил на пробу годот, потом удалил



Как удалял, няша?
1037 1963464
>>1963461
пкм-delete. Я из гитхаба компилировал

>>1963455

>Вангую, тебе просто нужно постирать записи об годоте в нугет файлах и еще может в проектнейм.sln (открой блокнотом).


А как они туда попадают? Проект новый

>>1963457
так не должна, это вообще никак не связано, просто годот где-то насрал (в Tools -> Options -> Nuget Package Manager -> Package Source ничего нет кроме дефолтного адреса)
1038 1963475
>>1963464

>пкм-delete. Я из гитхаба компилировал


солюшины подтягивают параметры нугета для компиляции, а ты свой нугет распердолил, вот у тебя в солюшинах и сыпятся ошибки потому что он не может нормально подтянуть зависимости из-за наебнувшигося нугета, лечится заменой нугета из бекапа или переустановкой студии, ничего страшного
1039 1963496
>>1963464

> годот где-то насрал


Шо аж ты со своей вендаколяски свалился, на потеху всему опенсорц сообществу.
1040 1963593
Сап, в впфе есть один пнгшный имедж. Можно ли как-то засунуть контент внутри самого имеджа, желательно без пердолинга с координатами? Т.е. у картинки есть рамка и я хотел бы определять контент внутри этой рамки. Например сделать контролу что-то типа Border.border = "image.png" и задать там толщину? Или как-то задать контент поверх самого имеджа?
1041 1964437
>>1963593
Чаа
image.png38 Кб, 741x436
1042 1964477
>>1963475

>бекапа или переустановкой студии, ничего страшного


Переустановил - не помогло, все равно откуда-то блядь оно пытается такщить

Вот на пикче источники nuget - тут ничего нет
1043 1964541
>>1964437
Хочу шоб была кнопка в картинке.
1044 1964621
>>1964541
Даже представлять не хочу зачем это нужно, но теоретически ты можешь преобразить png в векторный файл и запихнуть кнопку туда
image.png168 Кб, 480x360
1045 1964623
>>1964477
Классический казус белли для сноса винды.
А если серьезно скинь сюда этот файлик Index.json
1046 1964700
Зачем юзать Html.AntiForgeryToken()

Какой это дает профит? Как его юзать? где и когда?
1047 1964722
Только начал вкатываться. Зачем он так делает?
При том если число меньше 3.9 то результат будет правильным.
1048 1964745
>>1962531

>скиллбокса по шарпу


А разве это не наебщики?
1049 1964752
>>1964722
ну дык флоаты же
они как и даблы в двоичном выражении выражаются плохо, то есть с погрешностью, вот и получаются разные результаты.
image.png12 Кб, 403x294
1050 1964782
>>1964752
Майкрософт предлагают использовать decimal тип, и видимо это рабочее решение, но ведь это непрактично.
Вообще, как часто может возникнуть ошибка на почве подобной арифметики, как следует ее избегать?
1051 1964787
>>1964782
Если не работаешь с деньгами, то можешь всю жизнь и не вспомнить про эту особенность, так как накапливаемая погрешность мала
А обычные случаи, где после потери точности ты пытаешься сравнивать через == , студия (или решарпер я хз) подсветят
1052 1964791
>>1964787
Только вот я работаю с деньгами...
1053 1964792
>>1964791
для тебя придумали decimal
тебе байтиков жалко что ли?
1054 1964793
>>1964792
Все дело в оптимизации...
1055 1964796
>>1964793
когда программист работающий с деньгами начинает вот так оптимизировать, то это приводит к тому, что оптимизируют самого программиста
1056 1964800
>>1964796
Не то что бы я на зло не юзал децимал, просто за оптимизацию обидно
1057 1964807
>>1964800

>просто за оптимизацию обидно


вот когда тебе зряплату оптимизирует - вот и будет обидно

а так выбирай - либо точность, но медленнее, больше размер, либо оптимизация зряплаты или самого оптимизатора
1058 1964810
>>1964807
Почему тут так не любят программистов, которым не плевать на быстродействие?
1059 1964816
>>1964810
потому что оптимизированный код обязан выдавать верные результаты
public double Multiply(double a, double b) => return 42d;
работает быстро, но верно ли
1060 1964833
>>1964816
Любой код должен возвращать правильные результаты, но лучше что бы код еще и работал быстро, почему народ здесь этого не понимает?
Я сейчас говорю не в разрезе именно этого случай, а о парадигме коддинга сейчас в целом!
Закон мура уже поламался, никаких +100% производительности из метала уже не получить, поэтому ньюфеги должны сейчас запрыгивать в лодку оптимизации, нейросетей, датаАнализа и низкоуровневого программирования! Все эти фичи стают все более востребованы именно из-за упора текущего технологического прогресса в средства обработки информации. Это раньше можно было тяп ляп и все готово, сейчас таких гонят в шею, и все эти разговоры про рабство ньюфегов которые работаю за еду от того что такие программисты уже больше никому не нужны, сейчас на рынке будут оставаться только те кто может написать уже существующий код в более производительном русле, или написать что-то что будет работать быстрее чем то что могут написать другие, неужели аноны тут этого не понимают? Мы на пороге слома парадигмы, и у ньюфегов есть преимущество над мидлами, учиться СРАЗУ ПРАВИЛЬНО лучше, чем переучиваться
1061 1964840
>>1964833
Какие есть предложения, как решать ситуацию в конкретном данном случае и в целом?
мимо-ньюфег
1062 1964844
>>1964840
Ты что тупой? Тебе же сказали если тебе важна точность юзай децимал, это валидно
1063 1964846
>>1964833

>Любой код должен возвращать правильные результаты, но лучше что бы код еще и работал быстро, почему народ здесь этого не понимает?


народ не понимает как можно заявлять такое приводя код который возвращает неправильные результаты
1064 1964847
>>1964846

>народ не понимает как можно заявлять такое приводя код который возвращает неправильные результаты



ча? Я никакого кода не приводил, ты о чем вообще? Я мимоходом вписался
1065 1964849
>>1964847
тогда сорян. сам понимаешь, двач не подписывает кто где говорит и потому по дефолту считается, что идет диалог, а каждый со стороны во избежание такого подписывается "мимо-крок/ньюфаг"
1066 1964853
>>1964849
Да мой косяк, забыл Мимо дописать
1067 1964869
>>1964833
К слову, видел не очень интересное выступление архитектора noSQL БД на шарпе, так он там тоже за оптимизацию затирал. Но его посыл был в том, чтоб сначала оптимизировать архитектуру, потом алгоритмы всякие, а в последнюю очередь байтоебством заниматься. Так и выигрыши по производительности лучше всего получаются на единицу трудозатрат.

И в свете выше написанного, лучше пусть ньюфаги научатся нормально с коллекциями, асинхронностью и базами данных работать - это даст выхлоп куда больше, чем знание тысячи и одного способа, как сэкономить два такта и сделать код необслуживаемым.
1068 1964874
>>1964869

>так он там тоже за оптимизацию затирал. Но его посыл был в том, чтоб сначала оптимизировать архитектуру, потом алгоритмы всякие, а в последнюю очередь байтоебством заниматься.


Сейчас именно так и происходит, все началось далеко не с байтоебства, сейчас мы на стадии отказа от совместимости c x86 командами, а так же внедрение в архитектуру чипов хардверного ускорения для нейросеток, потом будут более поверхностные изменения, но то что со временем эстафета перейдет к программистам это очевидно предполагаемый исход, и будет это гораздо быстрее чем ты думаешь, а интернет вещей еще больше бустанет этот процесс

>как сэкономить два такта и сделать код необслуживаемым.


Не надо утрировать, тоже так умеем, медленный однопоточный код вездесущ, речь далеко не о 2 тактах
1069 1964911
>>1964874

> сейчас мы на стадии отказа от совместимости c x86 командами, а так же внедрение в архитектуру чипов хардверного ускорения для нейросеток


Во-первых, один лишь Эпл - это не "Мы". Во-вторых, поддержкой разных архитектур в CLR занимаются майки, а не "Мы". В-третьих, внедрение хардверного ускорения для почти всех дот.нет программистов будет заключаться или в подключении библиотеки, а не жонглировании байтами, или вообще ни в чем. Это явно не забота ньюфагов.
Еще пара слов о умерщевлении закона мура - ну так микроэлектронщики придумали многочиплетную компоновку чипов, а программисты придумали всякие многопоточности с микросервисами. На наш век производительности хватит.

>Не надо утрировать, тоже так умеем, медленный однопоточный код вездесущ, речь далеко не о 2 тактах


Мой опыт - при хорошей архитектуре и адекватных алгоритмах получить достаточно медленный однопоточный код, чтоб это стало проблемой, почти невозможно. Если нужны супер оптимизированные на уровне железа функции - лучшим выбором будет воспользоваться библиотекой, а не придумывать и поддерживать свою. Разрабатывать такую библиотеку - не забота новичка. Если в дотнете есть готовый тип для хранения денежных значений - почти всегда лучшей идеей будет им и воспользоваться, а не выдумывать велосипед.

Пишу я такие простыни, чтоб новички не тратили время на маловажные аспекты программирования, и тратили на важные.
1070 1964940
>>1964911
винда переходит на арм, уже, линукс уже давно, интел в торопят пилит новые процы, все остальные уже давно

>В-третьих, внедрение хардверного ускорения для почти всех дот.нет программистов будет заключаться или в подключении библиотеки, а не жонглировании байтами, или вообще ни в чем.


вообще не понял к чем ты это, а жонглирование байтами ты вообще сам придумал.

>Еще пара слов о умерщевлении закона мура - ну так микроэлектронщики придумали многочиплетную компоновку чипов, а программисты придумали всякие многопоточности с микросервисами. На наш век производительности хватит.


многопоточность которая реально мало где задействована это один из методов оптимизации кода, но даже в таком случае в высокоуровневом программировании есть действия которые не разбиваются на многопотоки и увеличивают время ответа, такие будут переписаны на низкий уровень в первую очередь,

>Мой опыт


Ты вообще читал что я писал? твой опыт не валиден в будуйщем

>Пишу я такие простыни, чтоб новички не тратили время на маловажные аспекты программирования, и тратили на важные.


убираешь будущих конкурентов
1071 1964999
>>1964940

>винда переходит на арм, MAC уже, линукс уже давно,


СлоуФикс
1072 1965029
>>1964940

>вообще не понял к чем ты это, а жонглирование байтами ты вообще сам придумал.


Попытался подобрать синоним к байтоебству

>многопоточность которая реально мало где задействована это один из методов оптимизации кода, но даже в таком случае в высокоуровневом программировании есть действия которые не разбиваются на многопотоки и увеличивают время ответа, такие будут переписаны на низкий уровень в первую очередь,


Я не знаю, о какой сфере применения ты речь ведешь, но многопоточность уже давно и крепко обосновалась на десктопе, и практически абсолютная в вебе. И как я уже написал, крайне сложно придумать задачу, где нормально спроектированный код будет выполнятся слишком медленно.

>Ты вообще читал что я писал? твой опыт не валиден в будуйщем


Двадцать лет назад задачи сервера при обработке запроса, требующего немедленного ответа, сводились к CRUD, через 20 лет - ничего не поменялось, но сейчас то все должно немедленно затормозить с просто так?

>винда переходит на арм


Винда обеспечила ограниченную поддержку арма

>линукс уже давно


Линукс обеспечивает поддержку арма

>интел в торопят пилит новые процы


Задача производителей процов - пилить процы. Что ты этим сказать хотел?

И к чему это все? Майки обеспечили поддержку выполнения IL на арме, а от меня, как от разработчика, ты чего хочешь? decimal работает как на x86-64, так и на ARM.
1073 1965033
>>1964940

>убираешь будущих конкурентов


Какие же они мне конкуренты? Наоборот, помогаю им на работе и здесь, чтоб толк от них был.
1074 1965057
>>1964911

>Во-первых, один лишь Эпл - это не "Мы".


>буквально все уходят от x86


>бля пиздану что-то про то что задача производителейпроцы производить процы, надеюсь проканает и никто не заметит что я обосрался



>Я не знаю, о какой сфере применения ты речь ведешь, но многопоточность уже давно и крепко обосновалась на десктопе, и практически абсолютная в вебе. И как я уже написал, крайне сложно придумать задачу, где нормально спроектированный код будет выполнятся слишком медленно.


Ты из тех кто думает что добавить второй тред и ебнуть Thread.Sleep(100500); это типа внедрение мультипоточности? ну да, таких вот в первую очередь и будут гнать в шею.

>Двадцать лет назад задачи сервера при обработке запроса, требующего немедленного ответа, сводились к CRUD, через 20 лет - ничего не поменялось, но сейчас то все должно немедленно затормозить с просто так?


Все правильно, как я писал 20 лет назад и до недавнего времени было так, закон мура мертв, появились нейросети, появились новые технологии новые концепции и сейчас эту парадигму ждет перелом

и второй раз повторяю байтоебство это утрированный термин,а я надеюсь мы говорим о каких-то реальных вещах
1075 1965074
>>1964911

>Мой опыт - при хорошей архитектуре и адекватных алгоритмах получить достаточно медленный однопоточный код, чтоб это стало проблемой, почти невозможно.


ключевое слово "мой опыт"
1076 1965089
>>1965057

>буквально все уходят от x86


>что я обосрался


Вижу ПК на и серваки на x86, не вижу на АРМ. Технологические компании много над чем работы ведут на всякий случай, но это не значит, что оно превратится в продукт. Обосрался, похоже, ты.

>Ты из тех кто думает что добавить второй тред и ебнуть Thread.Sleep(100500); это типа внедрение мультипоточности?


Ты из фантазеров? Или по номеру поста гадаешь?

>Все правильно, как я писал 20 лет назад и до недавнего времени было так, закон мура мертв


А я написал, почему рост количества транзисторов на одном чипе уже не играет большой роли.

>появились нейросети


Зачем мне нейросеть для доступа в базу данных? Зачем мне байтоебство для работы с нейросетями на дотнете?

>появились новые технологии новые концепции и сейчас эту парадигму ждет перелом


Без конкретики - это пустые слова

>и второй раз повторяю байтоебство это утрированный термин,а я надеюсь мы говорим о каких-то реальных вещах


Пытаться компенсировать погрешность double для применения вместо decimal для экономии тактов - это байтоебство. Отличный термин.

>>1965074

>ключевое слово "мой опыт"


Так ведь это единственное, что может котироваться в данном вопросе. Ты мне можешь какую-то статистику показать, что без низкоуровневой оптимизиации через несколько лет все перестанет работать? Или у тебя есть строгое математическое доказательство?
1077 1965096
>>1965089
я могу показать тебе реальность
постоянно приходится покупать новые смарты и компы, потому что старые начинают тупо не тянуть обновленный и новый софт.

А все из за говнописателей "цензура цензура и в продакшен"
1078 1965117
>>1965096
Так и есть. Даже пример могу привести - MS Teams. Съедает до гигабайта оперативки, умудряется тормозить на хорошем компьютерном железе, в своей консоли у него сотни ошибок отображаются. Почему так? Потому что сделано на электроне, с почти отсутствующей многопоточностью, с применением angular jquery, и не очень хорошими программистами. Как это исправить? Использованием подходящей платформы (желательно нативной), на технологиях, которые не допускают чрезмерно говнокодистого кода, и подтягивая уровень разработчиков.
Как это не стоит исправлять? Низкоуровневым программированием.
1079 1965137
Т.е. интерфейсы это просто явной способ указать на то, что надо реализовать в классе, правильно?
1080 1965141
Ребяты, как я понимаю goto это хуевая практика. Если в тестовом задании его использовать это сразу обсер?
1081 1965142
>>1965137
интерфейсы это способ указания контракта. Как ты удовлетворишь контракт - дело десятое
1082 1965144
>>1965137
Вообще да. Используется, в первую очередь, для разных техник инверсии контроля, в т.ч. инъекции зависимостей. Почитать о первом можно в описаниях принципов SOLID, о втором - когда ASP.NET учить будешь.
1083 1965145
>>1965141
Да. Но на первое апреля можно по приколу.
1084 1965156
>>1965144
не путай человека
в первую очередь это описание контракта
DI и остальное тут сбоку стоят.
1085 1965259
Анон, я вот о чем думаю. А была бы прикольной фишка типа объединения интерфейса.
Типа вот я пишу метод int Foo(IFizz|IBuzz FizzBuzz) и получаю что объект FizzBuzz - имеет методы и свойства как IFizz так и IBuzz.
У этого есть какое-то название? И вообще, что думаете об этом? Просто мне кажется - вполне логично в контексте отказа от толстых интерфейсов, с другой стороны - не всегда получается в контексте какого-то метода обойтись тонким, ну и часто не хочется делать отдельный интерейс, который просто два других в себе объединяет, тупо из-за того что трудно имя придумать, да и засирает это количество интерфейсов в коде.
1086 1965261
>>1965156
Что такое контракт я во всей главе по интерфейсам не нашёл, даже краткого упоминания, из чего сделал вывод (возможно, что ложный), что интерфейс - способ объявления реализации функционала. Причём поскольку один класс может наследовать сразу от нескольких интерфейсов, более гибкий, чем реализация этого функционала в родительском классе. В чём я не прав?
1087 1965263
>>1965261
Контрает это договоренность о том, что объект имплементирующий интерфейс будет иметь публичные свойства и методы с данными именами и сигнатурой. Все, блядь.
1088 1965339
>>1965259

> У этого есть какое-то название?


Наследование интерфейсов.
1089 1965641
Есть некоторая проблема.
Смотрите. Был некий служебный код, который, был вынесен в отдельный internal sealed класс. Таких вот классов было несколько, в зависимости от задач. Ну, приведу пример: есть некая задача: импортировать данные из апи наших партнеров, апи довольно сильно отличается от нашего, ну, соответственно - конвертация вынесена в отдельную сущность, чтобы не засорять основной класс, который еще и должен не просто импортировать, но импортировать определенным образом, попутно произведя фильтрации и прочее. Так вот, в ходе аппробации мне сказади, что без логов непонятно, на чьей стороне обосрамс, то ли я обосрался, то ли это апи партнеров серет. Решено было добавить логгирование в эти вот служебные классы. И тут вот случилось страшное: мои служебные классы - не имеют явных конструкторов, не имеют состояний и вообще могли бы быть статичны, но они не. Если я добавлю конструктор который принимает в себя логгер и зарегистрирую эти классы - 1. Придется много где менять код; 2. Сами эти классы придется довольно сильно ковырять, ведь т.к. они были служебные куча методов там - ванлайнеры.
Так вот, я думал насчет того, чтобы ебануть такую вот залупу: мы при конструировании хоста тупо дергнем из него ILoggerFactory и сделаем публичное поле для чтение в Program. Но это кажется мне каким-то не самым элегантным решением, да и я не уверено насчет его надежности. А как иначе прокинуть логгер не меняя кучу кода - не представляю. Можно конечно потратить неделю на глобальный рефакторинг, только кто ж даст время на это, особенно учитывая что на словах-то задача: добавь логгирование, выглядит как: в 2 методах добавь строчку Log.Info(message).
1090 1965698
>>1965641
Ну сделай ты публичное поле с логгером
Имхо вообще логгеры не должны никуда прокидываться а получать на месте
Но в asp.net core di во главе всего. Вот туда и впихнули логгеры до кучи
1091 1965710
>>1964745
В чем наеб?
1092 1965726
>>1965698

> Имхо вообще логгеры не должны никуда прокидываться а получать на месте


Ну да. Я сам с этим-то согласен. Просто с другой стороны - логгеры-то разные, вот, кто-то NLog использует, мы - Serilog, кто-то еще что-то. С точки зрения DI - довольно удобно, что твой код не зависит от этого всего, с другой стороны - то что в каждом классе приходится хуячить один аргумент под логгер - не оч выглядит.
1615626671096.png73 Кб, 200x200
1093 1965728
>>1964745

> А разве это не наебщики?


Какая разница, если ты скачал с торрентов?
1094 1965738
>>1965641
В принципе, можно написать interceptor (почти хрестоматийный случай для этого), который будет логировать то, что получает и возвращает твой метод. Так логер не нужно инжектировать. Но твой хелпер клас, конечно, придется регистрировать в твоем контейнере.
1095 1965744
>>1965738
Хм. Почему-то не вспомнил про него. Да, думаю это будет лучше чем делать статичное поле которое все дергают.
1096 1965795
Поясните за атрибуты.
Просто вроде кажется что штука должна-то быть полезной. Но примеры использования кастомных постоянно какие-то стремные. Нужно кучу обвяза написать, нужна рефлексия, нужен отдельный класс, который бы как-то это все обрабатывал, в который нужно прокидывать объекты к которым атрибуты применяются.
Вот и мне интересно, у вас есть какие-то примеры использований, отличающиеся от: Сделаем валидатор который будет фреймворк понимать, или возьмем готовые и покажем что рефлексией достали эти метаданные?

Хочется, допустим, вот такой атрибут:
[OnThrow((e)=> {Console.WriteLine(e); throw new Exception(e)})]
Вроде-то все понятно с точки зрения семантики - мы хотим чтобы если в методе что-то кинулось - мы бы вывели на консоль ексепшн и кинули новый. А вот как это намутить не городя кучу кода - непонятно, потому что если доставать эти метаданные из перед вызовом метода - получится еще больше кода чем тупо написав try...catch, да и не у всех же методов мы эти атрибуты пропишем. Опять же - если мутить хрень с тем, чтобы из сборки достать все объекты с данным атрибутом - тоже как-то невесело выглядит.
Короче, поясните за атрибуты. Когда свои писать и вообще надо ли оно? Меня просто заебало каждый раз try...catch когда мы с базой работаем писать, хочу вот такой вот атрибут в методах где дергаем базу или работаем с сетью.
1097 1965807
>>1965795
Атрибут - способ добавить некие метаданные не расширяя класс/метод/свойство.
В голову приходят такие варианты:
Добавить для вариантов enum некий атрибут Title, и сделать метод расширения, который этот Title может извлекать. Весьма удобно, когда варианты этого перечисления, например, нужно юзеру показать.
Другой вариант - вот хочешь ты навесить определенный препроцессинг на действия контроллера. Авторизацию, фильтрацию, тротлинг, логирование. Как это еще красиво реализовать? Атрибутами можно пометить такие методы для некого особенного обращения, или в эти же атрибуты встроить, как именно это обращение должно происходить. А как еще это сделать? Сделать мегаметод, куда списком во время запуска приложения передавать список подотчетных методов? Не слишком удобно и наглядно. Для таких случаев в голову приходит сделать абстрактный метод в классе Controller, в котором fluent билдером делать конфигурацию свойств контроллера и его действий, но не знаю, удобнее это будет, или нет.
Но если ты сам хочешь без заморочек сделать, например, кеширование результатов определенных методов через интерсепторы, то помечать их через атрибуты и при настройке IoC контейнера эти методы находить и интерсепторы навешивать выглядит самым оптимальным вариантом.
В общем - есть фича. Хочешь - пользуйся. Не хочешь - не пользуйся.
1098 1965845
>>1965807
Насколько атрибуты топят перформанс? Это же рефлексия
1099 1965873
>>1964833
Просто не особо думая переписать любой код с почти любого другого языка, в т.ч. шарпа, на С - это уже от х3 до х1000+ к перформансу.
Вот только код на си пишется подобно тому, как скульптор выбивает во мраморе статую. Один раз сделал, работает охуенно быстро и круто, и больше к этому не возвращайся, ибо переделать не получится, только всё заново писать, а это долго.
Чем лучше код оптмизирован, тем он сложнее, и вносить изменения практически не возможно.
1100 1965895
>>1964810
Потому что это не узкое место. Оптимизировать надо узкие места.
1101 1965934
>>1965845
В шарпах рефлексия сейчас не супер дорогая, потому не критично. Более того, во многих случаях, как в примерах с интерсепторами и действиями контроллера , что-то с атрибутом делается лишь однажды, при запуске программы или первом обращении к контроллеру, потому это не играет роли.
1102 1966014
Я чет не понимаю что за добро.
Вот есть модель: Товар. У товара есть коллекция атрибутов вида тип атрибута, значение. У типов атрибутов есть уникальное символьно обозначение и описание на понятном языке.
Примерно так это выглядит:
Item{
int Id;
string Name;
decimal Price;
ICollection<Attribute> Attributes;
}

Attribute{
int Id;
AType Type;
string value;
}
AType{
int id;
string Name;
}

Так вот, если я EF'ом просто делаю Include.ThenInclude у товара, то на то чтобы вытащить 1 товар по ID у которого 100 атрибутов уходит почти 10 секунд. Это конечно в дебаге и в релизе побыстрее, но все равно же пиздец.
Может быть есть какой-то способ быстрее это делать?
1103 1966040
>>1966014
Вообще, можно профайлером или в дебаге посмотреть, что за запрос генерирует EF чтоб поржать. Вангую, там сотни селектов.

А по твоему вопросу: можно эти данные повытягивать через join, а потом уже полученную коллекцию преобразовать в нужную тебе структуру данных через всякие GroupBy.
1104 1966055
>>1966040
Не совсем понял. Ты предлагаешь писать нативный запрос? Я бы мог, только вот не уверен что в команде поймут такое вот решение. Просто я бывший плюсовик и привык к тому что перформанс нужно максимальный стараться получить, изначально мне при переходе на шарп сказали не париться, дескать тут более высокий уровень, но вот в такие моменты я просто не понимаю - это действительно так и должно быть, или я что-то не то делаю.
1105 1966064
>>1966055
Нет, я предлагаю просто написать запрос с join`нами на LINQ, который тебе вернет коллекцию из сотни рядков Attribute + AType (можно вместе с Item, а можно и отдельным запросом, если поиск по Id) - будет полный аналог запроса на SQL. А потом уже преобразуй коллекцию в свой объект Item с атрибутами.

Но в целом, с LINQ довольно часто такие приколы бывают, если не хеллоуворды пишешь, и в моей команде давно пришли к правилу, что если LINQ генерит фигню, стоит просто делать запрос на SQL. Я бы рекомендовал этот вопрос поднять на митинге.
1106 1966065
>>1966064

> - будет полный аналог запроса на SQL


Имею ввиду, что сгенерируется простой запрос с джойнами на сиквеле
Быстрофикс
1107 1966344
Получается, что индексаторы - это способ рассмотреть объект как массив чего-то, и используем мы их, когда внутри этого объекта есть массив с данными, так?
1108 1966501
>>1954576
Настоятельно рекомендуется к прочтению:
https://ru.wikipedia.org/wiki/Денормализованные_числа
(What Every Computer Scientist Should Know About Floating-Point Arithmetic)
https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

Subnormal (denormalized)
когда все биты экспоненты установлены в 0
читай блок "Underflow" здесь (наглядно)
https://www.h-schmidt.net/FloatConverter/IEEE754.html
1109 1966784
Сап, подскажите - как Capacity у обычного массива можно найти?
1110 1966794
>>1966784
Я не до конца понял о чем именно ты спрашиваешь, но это должно ответить на твой вопрос:

В отличие от классов в пространстве имен System.Collections, Array имеет фиксированную емкость. Чтобы увеличить емкость, необходимо создать новый объект Array с требуемой емкостью, скопировать элементы из старого объекта Array в новый, а затем удалить старый Array.

Размер массива ограничен максимальным количеством элементов — 4 миллиарда, а также максимальным индексом 0X7FEFFFFF в любом заданном измерении (0X7FFFFFC7 для массивов байтов и однобайтовых структур).

.NET framework: По умолчанию максимальный размер Array составляет 2 гигабайта (ГБ). В 64-разрядной среде можно избежать ограничения на размер, установив значение атрибута enabled элемента конфигурации gcAllowVeryLargeObjects равным true в среде выполнения.
1111 1966796
>>1966794
То есть: если тебе хочется узнать количество элементов - это свойство Length.
Если ты хочешь узнать, под какое количество элементов в памяти выделено места - под то, сколько в Length задано.
Если тебя ограничения размера массива интересуют - читай msdn, оттуда цитата.
image.png12 Кб, 298x262
1112 1966804
>>1966796
Спасибо за ответ.
А у обычного массива никак не могут быть разные Length и Capacity? Я пытаюсь сделать так, но массив нулями сам заполняется, в итоге и Length и Capacity одинаковые оказываются
1113 1966832
>>1966804
Нет. Если тебе нужна коллекция с частым ресайзом - можешь использовать List<T> - хотя под капотом там массив используется.
1114 1966848
Всем привет!
Столкнулся с такой херней - получить данные из открытой программы. Вот пишу я текст в блокнот - получаю оттуда текст. Нажимаю на кнопку "файл" в блокноте - выбранный пункт меню отображается в моей программе.
Вопрос, а как это ваще делается? Как слепой котенок тыкаюсь, не могу понять. куда и как это делать. Надо лезть в потоки?
1115 1966907
>>1966848
По мне, выглядит как ужасная дыра в безопасности, если бы такое можно было с нихуя делать. Представь - открываешь прогу с паролями, и они все утекают через шарвер какой-то.
Если условный блокнот сам не предоставляет такую инфу - вангую, ты без обходных путей на грани вирусописательства такое не сделаешь.
1116 1966924
>>1966907
блин, ну не могли же мне в тестовое вручить такую-то хуету :\
Мне надо озвучить выбранные пункты меню в блокноте и вести лог в формочке с выбранными пунктами. Пока единственная зацепка - ui automation фреймворк, но от всего этого пока гавной воняет. В первую очередь от меня :с
1117 1967135
Можно ли в wpf в textblock'e выравнивать половину текста по центру, а половину по левому краю например каким-то тегом?
1615796232529.jpeg32 Кб, 896x54
1118 1967166
Только не бросайтесь ссаными тряпками. Могу ли я как то заинитить этот base с конструктора, что-то типа как на строке с ошибкой внизу? Я хочу чтобы ef контекст создался не с sqliteconnection, а допустим MySql/MsSql с настройками заданными от пользователя.
1119 1967197
>>1967166
Я недопонял, а в чем проблема? Замени sqliteconnection на нужный тебе конекшен (Microsoft.Data.SqlClient или MySql.Data.MySqlClient) в : base(...) и убери код с ошибкой.
1120 1967223
>>1967197
Ты не понял. Я в рантайме программно хочу коннект либо sqlite либо mysql, чтобы в зависимости от того что передали в конструктор создавался коннект либо к sqlite либо mysql.
1121 1967342
>>1967223
Тогда вместо ручного создания конекшена, передавай просто нужный конекшен нейм и используй его в конструкторе DbContext(String).
В Web.config, указывая конекшен стринги, можно указывать и названия провайдера, т.е. класс твоего конекшена (майсиквел, сиквелСервер и т.д.). Пример тут есть: https://blog.elmah.io/the-ultimate-guide-to-connection-strings-in-web-config/

От меня ускользает, почему ты фреймворк вместо кора используешь, но если будешь делать на коре - тут: https://docs.microsoft.com/en-us/ef/core/dbcontext-configuration/ описано, как настроить и создать контекст на нем.
1122 1967485
>>1967342

> От меня ускользает, почему ты фреймворк вместо кора используешь


Wpf, .net4.0.

> Тогда вместо ручного создания конекшена, передавай просто нужный конекшен нейм и используй его в конструкторе DbContext(String).


А я смогу в прописаном конекшене поменять айпи/порт?
1123 1967563
Делю асинхронную обёртку вокруг SerialPort, не слишком жирно поднимать задачу для чтения одного байта?
т.е. исходный метод int ReadByte()
превратится в

Task.Run( () => serialPort.ReadByte())
1124 1967656
1125 1967669
>>1966804

Смотри на пальцах: Тебе нужен кусок памяти под 10 элементов. Ты просишь у ОС памяти: ДАЙ МНЕ ПОЖАЛУЙСТА 10 размер твоего типа данных. ОС выдает тебе этот кусок памяти. При этом, в зависимости от того какие флаги ты выставил - этот кусок памяти может быть занулен или с мусором. Так вот, фреймворк за тебя занулил этот кусок памяти и заполнил значениями по-умолчанию, когда ты создал массив.
Дальше. Теперь ты хочешь пользоваться этим куском памяти иначе. Ты не хочешь думать о нем как о целом куске памяти, ты хочешь представить его как, допустим, портсигар. Он иожет быть пустым, но пространство портсигара будет неизменным - пока ты не решишь купить побольше.
Так вот. Решив сделать динамический массив - ты, считай, создаешь такой вот портсигар. В нем Length - текущее количество сигарет. Capacity - вместимость. Когда ты добавляешь сигарету - ты увеличиваешь Length, достаешь сигарету удаляя ее из портсигара - Length уменьшаешь. Если ты хочешь, чтобы портсигар автоматом увеличивался достигнув предела вместимости - ты тихонько, под капотом - достаешь все сигареты из старого и кладешь их в новый.
Так вот, а при чем тут массив. А при том, что в шарпах - массив - считай вот такой вот кусок памяти просто. Ты не можешь его просто так увеличить и потому ему и не нужна вместимость не создав новый массив. Таким образом, если тебе так хочется авторасширяемый массив - ты делаешь что-то в духе:

public List<T>
{
private const int defaultCapacity = 4;
private T[] _items = new T[defaultCapacity];
private int _lastElementIdex = 0;

public int Count => _lastElementIdex;
public int Capacity => _items.Length;

public void Add(T item)
{
if(++lastElementIdex >= _items.Length){
var temp = new T[_items.Length
2];
Array.Copy(_items, temp, _items.Length);
_items = temp;
}
_items[lastElementIdex] = item;
}

public T this[int index]
{get
{
if(index <= _lastElementIndex)
{
return _items[index];
}
throw new IndexOutOfRangeException();
}}
}

ну и т.д. В зависимости чему свою структуру данных ты научить хочешь и как хочешь чтобы она себя вела.
1125 1967669
>>1966804

Смотри на пальцах: Тебе нужен кусок памяти под 10 элементов. Ты просишь у ОС памяти: ДАЙ МНЕ ПОЖАЛУЙСТА 10 размер твоего типа данных. ОС выдает тебе этот кусок памяти. При этом, в зависимости от того какие флаги ты выставил - этот кусок памяти может быть занулен или с мусором. Так вот, фреймворк за тебя занулил этот кусок памяти и заполнил значениями по-умолчанию, когда ты создал массив.
Дальше. Теперь ты хочешь пользоваться этим куском памяти иначе. Ты не хочешь думать о нем как о целом куске памяти, ты хочешь представить его как, допустим, портсигар. Он иожет быть пустым, но пространство портсигара будет неизменным - пока ты не решишь купить побольше.
Так вот. Решив сделать динамический массив - ты, считай, создаешь такой вот портсигар. В нем Length - текущее количество сигарет. Capacity - вместимость. Когда ты добавляешь сигарету - ты увеличиваешь Length, достаешь сигарету удаляя ее из портсигара - Length уменьшаешь. Если ты хочешь, чтобы портсигар автоматом увеличивался достигнув предела вместимости - ты тихонько, под капотом - достаешь все сигареты из старого и кладешь их в новый.
Так вот, а при чем тут массив. А при том, что в шарпах - массив - считай вот такой вот кусок памяти просто. Ты не можешь его просто так увеличить и потому ему и не нужна вместимость не создав новый массив. Таким образом, если тебе так хочется авторасширяемый массив - ты делаешь что-то в духе:

public List<T>
{
private const int defaultCapacity = 4;
private T[] _items = new T[defaultCapacity];
private int _lastElementIdex = 0;

public int Count => _lastElementIdex;
public int Capacity => _items.Length;

public void Add(T item)
{
if(++lastElementIdex >= _items.Length){
var temp = new T[_items.Length
2];
Array.Copy(_items, temp, _items.Length);
_items = temp;
}
_items[lastElementIdex] = item;
}

public T this[int index]
{get
{
if(index <= _lastElementIndex)
{
return _items[index];
}
throw new IndexOutOfRangeException();
}}
}

ну и т.д. В зависимости чему свою структуру данных ты научить хочешь и как хочешь чтобы она себя вела.
1126 1967693
>>1967485
Простыми способами - нет. Если тебе нужно и айпи с портом заменять - тогда подготовь методы, чтоб они тебе создавали и возвращали sqlConnection нужного типа с нужными параметрами, и передавай его в конструктор своего контекста.
1127 1967749
Аноны, плиз. Вкатываюсь в шарп. Поставил Rider. Нихуя не понимаю, как в этой божественной среде быстро сделать какие-то вещи, а не писать каждый стандартный json и xml конфиг руками с нуля.
Вот создал я новый проект. Эта шняга всобачила мне sqlite. Как мне удалить все ссылки на него одним кликом? Мне нужен sql server. Я создал новый data source, проверил соединение, отлично, вижу базу, но блядь, мне её не видеть надо, а в проект добавить! Мне руками писать в appsettings.json? Руками писать connection string? В 2021 году, в инструменте, за который просят двести баксов в год?!
1128 1967878
>>1966804
Зачем тебе динамический массив? Пользуйся листом.
1129 1967892
Хм. В комманде никто не пишет тесты. Я видел в репозиториях местных, что когда-то кто-то таки писал, но он уволился 10 лет назад и больше никаких намеков на тесты.
Стоит ли начинать самому писать тесты самому, если никто не пишет? И если да - то как их впиндерить в общий проект у которого в структуре нет отдельного места под тесты, а разделение ответсвенности за каждый кусочек проекта строится на: вот у тебя папочка в общем солюшене, в ней проект - хуярь.
1130 1967901
>>1967892

>Стоит ли начинать самому писать тесты самому, если никто не пишет?


Если есть проблемы с качеством кода/переоткрытием баг, то подумай над причинами, что в процессах и архитектуре не так. Если уверен, что с ними все ок, и дело в сложности бизнес логики или еще чем, от тебя не зависящем - стоит писать. Если нет - лишняя работа.

>структуре нет отдельного места под тесты


Сделай

>вот у тебя папочка в общем солюшене, в ней проект - хуярь.


Сделай рядом папочку projectname.Tests. Не думаю, что кто-то возмутится сильно.
1131 1967917
>>1967901
Ну, у меня просто из-за того что нет тестов оч большая боязнь что-то менять, из-за этого каждая новая фитча - это дополнительное время на то чтобы убедитсья что я ничего не сломал. Это наверное просто психологическое на самом деле и вызвано временами из вуза, когда: написал строчку - скомпилировал, проверил что работает - написал следущую; но ничего поделать не могу с собой.
1132 1968040
Скомпилировал по гайду (пик 1) либу для динамического высчитывания значения строки с помощью JScript, немного подправил код (пик 2).

Насколько данная конструкция безопасна, при условии, что на входе может быть что-угодно?
16142358925730.jpg3 Кб, 299x168
1133 1968059
Здравствуйте, господа. Продублирую свой вопрос из соседней дсоки.
Я к вам с вопросом. До этого никогда не писал на низкоуровневых библиотеках, Я C# разработчик. Извините, если вопрос не совсем по адресу.
Я ищу решение следующей проблемы. Опишу подробнее.
У меня есть плата raspberry Pi с установленным линуксом, ещё основная проблема это Arm64.
И мне нужно написать небольшую прогу, которая
1. пару раз в минуту обращается наружу хттп гет запросами, откуда получает json, парсит, и получает необходимые обьекты. И из них В общем, строки для последующей работы.
2. Полученные строки необходимо плавно(линейная интерполяция) рисовать и двигать по экрану, тем самым создавая такой красивый заанимированный графический интерфейс бегущих строк
Размер окна, в котором это нужно рисовать маленький(200х300).

Я до этого поста пробовал сделать на wpF+avalonia(кроссплатформенный wpF), оно работает, но бывают частые лаги. Я замерил интервалы отрисовки, когда вызывался Invalid окна, 90% кадров рисовались отлично с задержкой 15-16миллисекунд, а 10% кадров с задержкой 30 миллисекунд. В результате этих лагов выглядит криво. Как я гуглил, у многих такая же проблема, и разрабы avalonia пока не исправляют.

Мне посоветовали посмотреть в сторону SDL2, и я нашел нугет пакет для .Net core, но опыта в нём, соответственно, ноль. Опыта работы с линуксом околонуля.

Я бы написал все прекрасно на юнити и не парился по всему этому поводу, но в юнити нельзя собрать для линукс arm64.

Собственно тут я вижу два стула.
1. Подскажите, пожалуйста, какими средствами это лучше и быстрее сделать.
2. Если у кого-то есть опыт в этом деле и время быстро с этим помочь(именно линукс и именно arm64), то может договоримся за оплату.
1134 1968075
В заявке одним из обязанностей указано первичное тестирование. Что оно из себя представляет? Правильно я понимаю, что на меня просто хотят работу тестера ещё свесить, так?
1135 1968153
>>1968059
У тебя фронт на малинке десктопный под линем? Поставь на неё ОС вместо прошивки для роутеров, если уж используешь как ОС (иначе делай фронт в виде веб-сайта).
1136 1968169
>>1968153
Даже если я напишу на жс что-то подобное без фреймворков(открывал хтмл и жс 4 года назад) , оно мне разве там выдаст 60 фпс?
1137 1968178
>>1968075
Нет. Это значит, что телегу, которую ты накатал, ты сам должен будешь тестить.
1138 1968191
>>1967563
БУМП
image.png516 Кб, 750x1000
1139 1968296
Правильно я понимаю что если сделать что то типа

thread.sleep(10000) то Физически ядро ДЕЙСТИТЕЛЬНО будет заниматься ничего не деланием, или мы делаем слип только для виртуального потока а на физическом ядре котором выполнялся виртуальный поток начнется выполнятся другой поток?
1140 1968689
>>1966064
В твоей команде, ты типа её владелец что ли? Судя по написанному ты ламак джуниор.
image.png412 Кб, 711x874
1141 1969134
Спустя два года РАБоты решил почитать первую книжку по кроссплатформенной разработке в .net и там везде в примерах для консольных приложений используется импорт namespace как using static System.Console
Книжка вроде как не говно и советуется для ньюфагов, но на msdn я такого не видел никогда

Это их экономия на Console при каждом выводе, или есть рекомендация часто используемые пространства имен по возможности импортировать статическими?
1142 1969146
>>1969134
Разницы в IL коде не будет при вызове Console.ReadLine() и ReadLine() с директивой using static System.Console, это просто для удобства делается.
1143 1969171
>>1968075
это юнит тесты. Хорошая практика кстати, но не все используют
>>1968689
удваиваю
>>1969134
походу алиасы новые подвезли, это нормально
1144 1969343
Я правильно понимаю, что все эти потоки можно рассценивать как вариацию итератора?
Если нет - то объясните пожалуйста, что это такое.
1145 1969624
>>1969343

> что это такое


> все эти потоки


Несколько программ выполняющихся одновременно. Дебильное сравнение, но самое точное для полного новичка.
1146 1969683
>>1969624
Почему нельзя создавать новый поток в не статическом классе? Разве поток, который был создан в этом классе не будет уничтожен после уничтожения класса или после того как прекратит свою работу? ОН ЖЕ НЕ БУДЕТ СУЩЕСТВАОВАТЬ ВЕЧНО ПОСЛЕ ТОГО КАК БЫЛ СОЗДАН ВПЕРВЫЕ?
1147 1969758
.Net Core 5.0
ASP.NET приложение.
Два конфиг файла: appsettings.json & appsettings.Development.json
В обоих определена переменная Foo:Bar:Foobar
На Винде и Linux ведут себя по-разному

Startup.ctor

var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{environment}.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.AddCommandLine(Environment.GetCommandLineArgs());

Configuration = builder.Build();
Console.WriteLine("Configuration.Foo.Bar.Foobar = {0}",
Configuration["Foo:Bar:Foobar"]);
// На обоих платформах пишет значение из appsettings.Development.json
==============================================
В транзиентном сервисе в AppConfig.ctor
Console.WriteLine("Appconfig.ctor: appConfig.Foo.Bar.Foobar = {0}", configuration["Foo:Bar:Foobar"]);

На винде пишет из Development, на Линухе — из основного
Для переменной FBar из корня конфига — тоже самое. То есть конфигурация из appsettings.Development.json, первое что приходит в голову: файла appsettings.Development.json нет, но в ctor всё пишется правильно на обеих платформах + optional = false
Второе что приходит в голову: на Линухе DI-контейнер игнорирует вставку Configuration. Но на видне не игнорирует. Это же критикал, его бы поправили сразу же
==============================================
В чём прикол?
1147 1969758
.Net Core 5.0
ASP.NET приложение.
Два конфиг файла: appsettings.json & appsettings.Development.json
В обоих определена переменная Foo:Bar:Foobar
На Винде и Linux ведут себя по-разному

Startup.ctor

var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{environment}.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.AddCommandLine(Environment.GetCommandLineArgs());

Configuration = builder.Build();
Console.WriteLine("Configuration.Foo.Bar.Foobar = {0}",
Configuration["Foo:Bar:Foobar"]);
// На обоих платформах пишет значение из appsettings.Development.json
==============================================
В транзиентном сервисе в AppConfig.ctor
Console.WriteLine("Appconfig.ctor: appConfig.Foo.Bar.Foobar = {0}", configuration["Foo:Bar:Foobar"]);

На винде пишет из Development, на Линухе — из основного
Для переменной FBar из корня конфига — тоже самое. То есть конфигурация из appsettings.Development.json, первое что приходит в голову: файла appsettings.Development.json нет, но в ctor всё пишется правильно на обеих платформах + optional = false
Второе что приходит в голову: на Линухе DI-контейнер игнорирует вставку Configuration. Но на видне не игнорирует. Это же критикал, его бы поправили сразу же
==============================================
В чём прикол?
1148 1969764
>>1969683

>Почему нельзя создавать новый поток в не статическом классе?


Потоки можно создавать где угодно.

>Разве поток, который был создан в этом классе не будет уничтожен после уничтожения класса или после того как прекратит свою работу? ОН ЖЕ НЕ БУДЕТ СУЩЕСТВАОВАТЬ ВЕЧНО ПОСЛЕ ТОГО КАК БЫЛ СОЗДАН ВПЕРВЫЕ?


Можешь рассматривать каждый поток как еще одну точку входа в приложение. У любой программы есть public static Main() она живет пока исполняется она или порожденный ею поток. Когда создается новый поток ты в него передаешь какой-то метод, который и будет уже его точкой входа.
1149 1969995
>>1969624
Ыыыы, я не про те потоки спрашиваю.
Ты с нитями путаешь, короче.
Я про те что Stream.
1150 1970042
>>1968059
В сторону SFML посмотри, он вроде повыше чем SDL.
1151 1970069
>>1911564
Анон, а как такую штуку посмотреть?
1152 1970097
>>1967563
Чем тебе не подходит стрим который отдается SerialPort'ом? Стримы в дотнете нормально в асинхронность могут. На кой тебе это извращение?
1153 1970171
Хм. Хм. Я вот знаю что писать так public async Task Foo() => await Bar(); неправильно и вредно для перформанса, но блин, ничего не могу с собой поделать, автоматом это делаю. Можно ли как-то студию настроить, чтобы она это не компилировала и указывала на то что тут нужно без await писать?
1154 1970187
>>1969995
Ну так и пиши сразу по английски. Хуй тебя пойми.
1155 1970250
>>1968059
пиши на qt на крестах или на pyqt и петоне

> 200х300


tft дисплей чоле?
image.png6 Кб, 355x166
1156 1970316
Ку, господа. Возникла такая ситуация, нужно сделать так, чтоб переменная MaxMana динамически обновлялась, когда меняется MagicStrength, возможно ли это как-то элегантно сделать или только обновлять везде MaxMana, где как-то меняется переменная MagicStrength?
1157 1970332
>>1970316
Тоже самое напиши в magicstrength?
image.png13 Кб, 582x113
1158 1970389
извиняюсь за тупой вопрос. но почему p0 равняется чему-то, а p1 равняется нулю?
1159 1970396
>>1970389
а. я тупой. потому что все значения это int.
после дрочки кода всю ночь совсем забыл про это.
1160 1970404
>>1970250
еуые
1161 1970406
>>1970097
Потому что SerialPort написан дебилами-лгбт-зумеркками-чурбанами которые понятия не имеют как работает ком порт в апи вынды (его как раз писали белые олды и он работает без проблем). SerialPort.BaseStream в асинхронном апи не учитывает таймауты, соответственно бесполезен т.к. зависнет на первом же пропавшем байте.
1162 1970493
>>1970406
А так?

int timeoutMs = 1000;
var task = SerialPortAsyncTask();
if (await Task.WhenAny(task, Task.Delay(timeoutMs)) == task) {
// task completed within timeout
} else {
// timeout logic
}
1163 1970593
>>1968296
Да, засыпает нить выполнения
1164 1970600
>>1970493

Не будет работать, ReadAsync у стрима игнорит токен отмены после запуска чтения. Даже если бы он корректно работал, писать эту обвязку еще больше гемора чем просто в таске запустить синхронное чтение.
1165 1970657
>>1970600
Таааак, принимается! Но можно замапить cancelationToken на закрытие стрима:

async ValueTask Read(Stream stream, TimeSpan timeout = default)
{
if(timeout == default(TimeSpan))
timeout = TimeSpan.FromSeconds(5);

using var cts = new CancellationTokenSource(timeout); //C# 8 syntax
using(cts.Token.Register(() => stream.Close()))
{
int receivedCount;
try
{
var buffer = new byte[30000];
receivedCount = await stream.ReadAsync(buffer, 0, 30000, tcs.Token).ConfigureAwait(false);
}
catch (TimeoutException)
{
receivedCount = -1;
}
}
}
1166 1970677
>>1970657

>C# 8 syntax



Типо выебнулсо?
1167 1970693
>>1970657
А если надо поллить без закрывания канала?
1168 1970717
>>1970693
Ты хочешь что-то типа StreamReader.Peek() ? Если да, то по факту у себя в недрах он использует просто Read() с продвижением позиции курсора в потоке, а потом сетит Position на предыдущую. Такое на этой штуке: >>1970657 можно без проблем сделать.
1169 1970754
>>1970717
Нужна удобная работа с ком-портами (это не совсем стрим, поэтому peek не катит), поскольку там всякие временные задержки то удобно поллить по байту или пачками и выгребать что приходит, а если секунд 5 ничего не пришло закрывать соединение.
1170 1970761
двачан, какой из linq запросов гарантированно вернет null, если объектов в коллекции нет?
хочу что-нибудь типа first()
а то мне в зависимости от того есть он или нет в коллекции нужно либо false вернуть из метода, либо дальше обрабатывать объект
гугление чет не помогло
1171 1970787
>>1970761
Ты блядь по человечески вопрос задавай, нихуя ж неясно.
Если ты спрашиваешь про то есть ли объекты в коллекции - то Any()
Если ты хочешь пройтись по коллекции и если встретишь элемент вернуть, а если не встретишь - нулл, то FirstOrDefault. Из названия понятно, что в случае структурок там не null будет. Если тебе прям гарантированно NULL нужен - запаковываешь все перед тем FirstOrDefault.
Только я хз нахуя тебе гарантированный null. Ты можешь либо FirstOrDefault либо Where(predicate).Count() Where(predicate).Count() почему-то с линкумагией быстрее работает чем просто Count(predicate). и потом если там есть твой объект - достать его.
А можно быть человеком и ручками цикл написать. Работать будет быстрее чем линку, памяти не будет выделяться и вообще заебись ручками циклы для таких вот вещей писать.
1172 1970788
>>1970761
все нахуй разобрался
FirstOrDefault возвращает нуль или дефолт
потом сравниваешь и погнал
1173 1970790
>>1970787

> Ты блядь по человечески вопрос задавай, нихуя ж неясно.


ну что ж я могу поделать, если не понятно
иди нахуй, да?
1174 1970842
>>1970790
Да ты охуел, он тебе по человечески простыню накатил, а ты его нахуй послал. Сам иди нахуй и не заходи сюда больше.
1175 1970872
>>1970842
ну, короче, это не написал
какой-то анон решил затролить походу
>>1970787
спасибо) через ферстОдефолт сделал
1176 1970873
>>1970872

> не я

1177 1970924
Хочу в качестве учебного проекта намутить консольный текстовый редактор.
И, внезапно, я осознал, что не представляю как делать мне ловить-то их консоли всякие комбинации клавишь.
Ну, допустим, я хочу сделать Ctlr+X - вырезать. Я нажимаю Ctrl+X и програма завершается. Или я хочу Alt+стрелка вверх - сдвинуть строку вверх. С точки зрения кода самой операции - я все понимаю: у меня буффер, я просто свапаю в нем строчки местами, а вот как мне перехватить-то это нажатие Alt+стрелка вверх? Я чет не представляю. Я даже стал думать что на шарпе это не опускаясь на уровень Winapi и не получится, но тогда уже проще взять С++. Может быть есть у вас идеи?
giphy.gif6,2 Мб, 320x180
1178 1970928
Сап аноны, кто ни будь работал с FastMapper? https://github.com/FastMapper/FastMapper - ссыль на гит. Если да, то как создать конфиг к нему? TypeAdapterConfig<TSrc, TDest>().NewConfig() - а куда его лепить то? У меня есть куча сущностей, которые нужно паровать для мапинга - А может мапится только в B, но никак не наоборот и т.д. Или же при маппинге поле должно выпадать. Но я никак не пойму, как этот конфиг запихнуть в маппер. Уже бы давно это все слепил автомаппером, но бенчи показывают, что нужно использовать именно fastmapper.
С меня как обычно.
1179 1970981
Здравствуйте.
1. Как в сишарп реализованы круды через ORM
2. Как в сишарп реализованы круды через нативные SQL запросы

Владимир
image.png20 Кб, 714x180
1181 1971059
Ребяты пытаюсь сделать вот это задание
https://ru.stackoverflow.com/questions/1030404/Подготовка-к-собеседованию-c

Вот блять не могу придумать как сделать часть с пикрил1. Можно нагородить хуеты с проверками и чекалками всего и вся, собственно что я и делал но с каждой такой проверкой выходило еще куча проверок. Не могу врубится подскажите мб как это сделать короче и лаконичнее.

Я думаю создавать обьект у которого есть поле Level =1; и при ответе на вопрос добавлять +1, вернутся к указаному вопросу устанавливать значение поля и там уже в свитче переходить к вопросу, но тогда надо чекать заполнены ли поля вопросов которые были до . А заполнить анкету заново установить значения снова на 1 но тогда еще нужно сбрасывать стальные значения в обьекте. Наверняка есть какой то способ что бы без вот этих костылей сделать, я просто сам вижу что эта хуйня на постном масле получается которую даже я не разберу через неделю.

Дайте совет пллиз.
1182 1971136
>>1971059
А как ты хранишь объекты вопросов? И вообще, давай ссыль на гитхаб свой
1183 1971153
>>1951826

>Порог входа в программирование с каждым годом всё ниже, и


Ты угараешь бля? Сейчас с джунов требуют то, что лет десять назад делали мидлы
1184 1971183
>>1971153

> Сейчас с джунов требуют то, что лет десять назад делали мидлы


lol нет
1185 1971212
>>1971183
Когда 100 джунов на вакансию, можно и пожестче требования выставить. В итоге там вообще недомидл проходит
1186 1971242
Что не так с этим куском кода?
var bitmap = new RenderTargetBitmap((int)visual.ActualWidth, (int)visual.ActualHeight, 96, 96, PixelFormats.Pbgra32);
bitmap.Render(visual);
var frame = BitmapFrame.Create(bitmap);
encoder.Frames.Add(frame);
using (var stream = System.IO.File.Create(path))
encoder.Save(stream);
Я сохраняю картиночки один раз и всё нормально, снова хочу сохранить и вылазит ошибка, что файл уже используется каким-то потоком, но у меня тут ведь поток закрывается. В чём дело-то?
1187 1971426
>>1971242
Что-то не вижу проблемы так сходу. Могу накидать идей:
1. А в простое ли место сохраняешь? Может эту директорию какой-нибудь яндекс-диск сразу синхронизировать начинает? Посмотри ProcessExplorer-ом, какой процесс держит хэндл на твой созданный файл
2. Проверь, не существует ли уже файл с таким именем
3. Можно попробовать заменить File.Create() на File.Open(path, FileMode.OpenOrCreate)
4. Из любопытства: попробуй сохранить не в файловый, а в MemoryStream, и потом уже его отдельно в файл записать
1188 1971432
>>1971212

> 100 джунов на вакансию


Не вижу такого, вижу как мы найти никого не можем
1189 1971437
>>1971432
Потому что дураков работать за копейки нет.
1190 1971439
>>1971437
У нас +30% от рынка. Для реально стоящих кадров +50%
1191 1971445
>>1971439
Вообще ни о чем. Какого рынка? Он везде разный.
1192 1971452
>>1971445
Ага, то есть и копейки везде разные?
1193 1971484
>>1971452
Блять, неудивительно что к вам никто не идет, если представитель конторы в твоем лице такой тупой, что уж обо всей организации говорить.
1194 1971489
>>1971183
Лол, да. Более того, с джуна требуют сегодня больше, чем с мидла. Я пол сотни собеседований на Джуна прошел, и нихуя. В итоге устроился мидлом с четвертой попытки, напиздев про полтора года опыта. Причем если на мидла спрашиваю хоть немного по делу, то на Джуна - какую-то хтоническую хуйню из глубин Рихтера и верчения радужных деревьев.
1195 1971496
Сап, шарпаны. Может кто подскажет.
Сам я мертвый в шарпе да и вообще я не программист особо но появилась задача, которую мне проще всего именно на нем решать (остальные варики там вообще - делфи или VB).
нужно запилить библиотеку которая через COM взаимодействует с программным пакетом. У меня практически полное непонимание как именно работает COM, но это, вроде как, ладно. У библиотеки есть метод, который и запускается целевым пакетом, и передает в метод абстракцию своей рабочей среды (все нужные для этого типы предоставляются в виде .dll), В которой я могу уже что-то дергать из доступных инструментов, особо не парясь при чем там вообще COM и как он работает.
Но есть такая проблема: часть методов возвращают тип dynamic, и в описании к API сказано: если должен быть возвращен единственный объект, то возвращается именно объект (пусть IModel), а если нужно вернуть несколько, то возвращается коллекция. Заранее понять, что вернется, невозможно. Из-за этого я не могу с этим dynamic обращаться каким-то одним кодом: еслим туда залетает коллекция, то по ней надо сначала итерироваться, просто дергнуть что-то типа IModel.Feature - просто все падает в рантайме. А если объект один - то написать для него foreach(IModel mod in incomeObj) - то же самое. Никакие проверки типов с помощью incomeObj is Collection<IModel> - не приводят к результату, я уже все туда впихнул - и контейнеры коллекций API, и стандартные из шарпа. Хз, наверное потому что нигде не объявлено явно что то что приезжает имеет вообще какой-то тип, а утиная проверка по принципу совпадения имен методов - это не про шарп и вообще не имеет ничего общего с типобезопасностью. Короче, в итоге я написал такой дебилизм, что сначала пытаемся итерироваться, но заворачивая это в try{}, если там возникает эксепшен то я уже точно знаю, что там IModel, и в блоке catch могу с ним работать. Такой вот каличный способ ветвления. Это работает.
Собственно, в чем вопрос - как это можно нормально сделать? И можно ли вообще понять какой тип у объекта dynamic? Если б это была Джава, я мог бы воспользоваться reflection, но в шарпе я 3 дня всего работаю, такие лоу-лвл вещи будут сложноваты.
Сори за то что насрал вам тут стену текста, просто попытался доходчиво донести в чем проблема.
1195 1971496
Сап, шарпаны. Может кто подскажет.
Сам я мертвый в шарпе да и вообще я не программист особо но появилась задача, которую мне проще всего именно на нем решать (остальные варики там вообще - делфи или VB).
нужно запилить библиотеку которая через COM взаимодействует с программным пакетом. У меня практически полное непонимание как именно работает COM, но это, вроде как, ладно. У библиотеки есть метод, который и запускается целевым пакетом, и передает в метод абстракцию своей рабочей среды (все нужные для этого типы предоставляются в виде .dll), В которой я могу уже что-то дергать из доступных инструментов, особо не парясь при чем там вообще COM и как он работает.
Но есть такая проблема: часть методов возвращают тип dynamic, и в описании к API сказано: если должен быть возвращен единственный объект, то возвращается именно объект (пусть IModel), а если нужно вернуть несколько, то возвращается коллекция. Заранее понять, что вернется, невозможно. Из-за этого я не могу с этим dynamic обращаться каким-то одним кодом: еслим туда залетает коллекция, то по ней надо сначала итерироваться, просто дергнуть что-то типа IModel.Feature - просто все падает в рантайме. А если объект один - то написать для него foreach(IModel mod in incomeObj) - то же самое. Никакие проверки типов с помощью incomeObj is Collection<IModel> - не приводят к результату, я уже все туда впихнул - и контейнеры коллекций API, и стандартные из шарпа. Хз, наверное потому что нигде не объявлено явно что то что приезжает имеет вообще какой-то тип, а утиная проверка по принципу совпадения имен методов - это не про шарп и вообще не имеет ничего общего с типобезопасностью. Короче, в итоге я написал такой дебилизм, что сначала пытаемся итерироваться, но заворачивая это в try{}, если там возникает эксепшен то я уже точно знаю, что там IModel, и в блоке catch могу с ним работать. Такой вот каличный способ ветвления. Это работает.
Собственно, в чем вопрос - как это можно нормально сделать? И можно ли вообще понять какой тип у объекта dynamic? Если б это была Джава, я мог бы воспользоваться reflection, но в шарпе я 3 дня всего работаю, такие лоу-лвл вещи будут сложноваты.
Сори за то что насрал вам тут стену текста, просто попытался доходчиво донести в чем проблема.
1196 1971501
>>1971426

>Проверь, не существует ли уже файл с таким именем


Блэт, существует, я их не удаляю. Вот нельзя что ли поконкретнее ошибку писать, а не про потоки мне затирать
1197 1971514
Вопрос по нейросетям, когда-то был такой стартап который сейчас прибрали к рукам фсбшники файнд фейс, так вот, раньше они чисто на энтузиазме работали, но откуда у них доступ к пикчам из вк? у вк есть какая-то апи с помощью которой можно скачать все авы на сервисе?
1198 1971529
>>1971496
По идее это решит твою проблему:

var actualType = ((ObjectHandle)dynamicObj).Unwrap().GetType();

И уже полученный тип проверять на тему является ли он коллекцией.
1199 1971535
>>1971514
Да краулер скорее всего написали и всё. Запускают его периодически в параллели с динамического пула IP и получают фоточки.
1200 1971541
>>1971529
Что-то подумал, даже GetType() не надо. Просто:

if(((ObjectHandle)dynamicObj).Unwrap() is Collection<IModel>)
{

}
1201 1971582
>>1971535
нет, что бы надрочить нейросеть нужно иметь у себя базу фоток связанную с инфой о человеке, я не совсем понимаю как можно надрочить нейросетку использую краулер кроме как то-то что бы загрузить ВСЮ ИНФУ СЕБЕ
1202 1971586
>>1971535
А как написать свой краулер который например будет сохранять все фотки с ебалом с определенного сайта?
1203 1971587
>>1971541
>>1971529
Спасибо, но это к сожалению не срабатывает. Так ни разу и не смог получить true из любых проверок, ни сравнивая с API-коллекцией, ни с ICollection шарпа, и при создании типа через var, и непосредственно проверяя, как во втором посте. Хотя точно известно что там коллекция и у нее можно получить итерирование
1204 1971588
>>1971541
>>1971529
да блин, даже если проверять на то, является ли тип Object-ом, и то оно вываливается. Хотя куда уж выше то тип брать. Даже VSтудия мне говорит, что я дебил так и есть в принципе, и приведение к Object во всех случаях избыточное
1205 1971627
>>1971588
То есть даже так нельзя?

var objHandle = (ObjectHandle)dynamicObj;
1206 1971639
Почему самый базовый тип в дот нете называется object? Это ведь неправильно, тип должен называть КЛАСС, а его экземпляры объектами.
1207 1971642
>>1971627
Неа. Причем, конкретно эта строчка вызывает краш. Как собственно и любые попытки прикастить к чему-то этот объект, кроме как к Object.
То что я выше написал, что даже попытка проверки на обжект вызывает false, похоже, хрень: просто программа крашится раньше, и до этого тупо не доходило (дебажить тут нельзя, все приходится выяснять через месседжи которые кидает прога, для которой либа)
1208 1971645
>>1967669
Сегодня только увидел, спасибо за подробный ответ, помогло разобраться лучше
1209 1971648
>>1971639
С чего ради? Название класса соответствует тому, что он абстрагирует, и в случае объектной парадигмы языка, ты абстрагируешь (любым классом) - объект, а не саму концепцию класса. Хз как в дот-нете, но в Java для объектного описания самой идеи класса существует свой класс, который называется (сурпрайз мазафака) - Class. Через него осуществляется доступ к классу, породившему объект (в рамках рефлексии) - у любого объекта можно получить объект его класса через поле .class, и потом делать с ним всякие прикольные вещи.
И в этом все кристально логично. У тебя малость сбито понимание что и чем является.
1210 1971778
Аноны, на связи опять нуб с дохуялетним стажем программирования на мёртвых языках, охуевающий от объёма информации в эхотаге.
Кто использовал linq2db? У меня совершенно нубские вопросы, на SO боюсь идти, выебут.
1. В чём разница linq2db и linq2db EF Core? Зачем нужен второй? Нужен ли он мне?
2. Можно ли в linq2db приготовить запрос, а потом его исполнить с параметрами?
3. Какого типа будет этот запрос? Если я хочу его в функцию или в класс передать? Я НИХУЯ не могу понять. Везде в примерах ебучий var...

Боже, как всё просто было 20 лет назад. Вкурил "дельфи за 21 день", или круче того, пыхпых для чайников, и пошёл ебашить. А тут - бляя...
1211 1971834
>>1971496
если ты мертвый в шарпе то я даже не рождался нахуй
1212 1972038
По каким гайдам учить asp?
Без имени-2.png65 Кб, 1301x842
1213 1972084
>>1971496
УМВР
1214 1972098
К делегатам и событиям тоже надо комментарии писать? Что-то не могу понять какие
1215 1972110
>>1972098
К событиям - когда оно срабатывает.
К делегатам - куда он будет передан и когда вызван.
1216 1972128
Паттерн Action(Сommand) - хорошо или плохо?
1217 1972172
>>1972110
Спасибо
1218 1972347
>>1971153
Порог входа, например, во врача (со специализацией) - это 8-10+ лет учёбы, потом ещё 5-10 лет обязательной работы за 5-8к на селе с бабками, и только потом ты сможешь устроиться в норм клинику на зп js-джуна.
Вкат в джуна - это взять разом 4 недели отпуска, положенных каждому россиянину в год, и просто усердно прочитать 1-2 книжки и попрактиковаться в IDE с задачками. Это уровень усилий как для подготовки к сдаче на водительские права.
Конечно, в мейл или сбер конкурс большой и 40 летнего пенсионера-росгвардейца, вкатившегося в питон, туда скорее всего не возьмут. Но в шарагу с 1с или конвейером интернет-магазинов - добро пожаловать.
Почему ты не смог сесть и нормально подготовиться к собесу?
Причина №1. Ты неусидчивый, неорганизованный, ты просто не можешь ни на чем сосредоточиться, ты не можешь заставить сам себя что-то делать. Ты обречен на неудачу в любом начинании.
Причина №2. Ты привык по жизни всегда делать всё наотъебись, всё, что ты делаешь, ты делаешь как говно. Авось прокатит. Таких людей не мало и они опасны, особенно в ответственных профессиях. Они хуже умышленных вредителей. Но в программирование они всё же зачастую просачиваются.
Причина №3. Ты просто тупой. На самом деле нет. Умные программисты нужны очень редко
1219 1972350
>>1972084
Как из студии экспортировать настройки цветов для различных кейвордов?
Заебался на разных компах вручную это натыкивать.
1220 1972358
>>1951826

> Сможет ли он самостоятельно написать парсер для составной формулы


Лол что это за хуйня сейчас была? Это второй, блядь, курс МухГУ. Писал на си и ничего.
И компиляторы писали, и субд разрабатывали порстенькие.

Я это просто так к слову вспомнил, да, порог входа на самом деле действительно низкий, учитывая с какими кадрами я работаю и даже если у меня встают волосы дыбом, они - нужны, потому что работы много и тех у кого есть образование на нее кидать как-то не с руки. Другое дело, что то про что ты там говоришь - это не какие-то охуенные знания, которые хуй где найдешь - это программа среднего такого провинциального вуза в айтишной кафедрой. Любой студентик это делает: пишет парсеры, лексические анализаторы, компиляторы, пишет субд, пусть и простые относительно тех что на рынке, крутит деревья и т.д. Просто нужно отделять программиста от айти-макаки, вот и все.
1221 1972372
>>1972358

>Это второй, блядь, курс МухГУ


Ты этому учился в техническом ВУЗе на программиста, где преподы на лекциях и семинарах тебе про это рассказывали.
А у меня за плечами было только 2 года учебы в платной гум. шараге (для отсрочки) с последующим отчислением, когда получил реальную негодность и не захотел, чтобы мамка платила за эту ненужную хуйню, и пошел работать.
И когда я уже одной ногой вкатившись сталкивался с подобными задачами типа парсинга с вложенностью, это было для меня сложно, но зато когда я такое решал, то до сих пор помню, что чувствовал себя молодцом.
А в целом вообще, интересно, какой процент людей, работающих программистами, могут написать алгоритм для ханойской башни, для быстрой сортировки без рекурсии и без её имитации через собственную реализацию стека, для обхода лабиринта, муравьиный алгоритм для задачи коммивояжёра и т.п. Без ограничения по времени, но и без гугла и подсказок.
1222 1972396
>>1970316

>return MaxMana


Эксепшн будешь получать.
1223 1972397
>>1970981

>Как в сишарп реализованы круды через ORM


Довольно просто и удобно.

>Как в сишарп реализованы круды через нативные SQL запросы


Довольно сложно и неудобно.
1224 1972516
А нахуй нужны предопределенные get, set ? Тип это же все равно что сделать переменную паблик, не? В чем профит вообще так делать?
1225 1972530
>>1972516

> переменную паблик



Под переменной ты поле подразумеваешь?
Наверное. ты имел ввиду нахуя вообще проперти нужны
Ради инкапсуляции, сначала, возможно, проперти у тебя ничем не будут отличаться от полей
Но потом тебе могут понадобится какие-то манипуляции проводить с этими полями перед их получением с помощью get или проставлением с помощью set. Вот тогда они и пригодятся.

> предопределенные get, set


А так переопределением ты в производном классе можешь возвращать/проставлять значение по-другому чем это было в родительском классе.
Такие проперти должны быть помечены как virtaul чтобы их переопределить с помощью override.
1226 1972531
>>1972516
В том что ты можешь логику дополнительную в них вставить.
Допустим твое приватное поле хранит температуру в кельвинах, а ты пользователю хочешь отдавать в цельсиях и давать задавать в цельсиях. Или ты хочешь чтобы не выставляли null или еще что-то. Если у тебя тупо Get-Set - можно действительно обойтись полем открытым, просто это дурной тон, потому что семантически поля должны хранить внутреннее состояние, а свойства - то что ты хочешь дать пользователю класса трогать.
1227 1972551
>>1972531

>просто это дурной тон


ООП головного мозга - это плохо.
Если ты пишешь тип, в котором гарантированно поле - это просто поле, как есть, и никакой доп. логики там не может быть по определению, то это поле надо делать публичным полем, как это делают в стандартной либе. Принцип KISS превыше всего.
В целом, если ты пишешь структуру, а не класс, то скорее всего поле должно быть открытым. Кроме того, если ты пишешь ридонли структуру (а обычно именно так и следует делать), то гет на ридонли поле - это уже совсем кукухой надо поехать.
1228 1972557
>>1972551
Учитывая что в С#
между написанием

public string myField

и

public string MyField {get;set;}

Разница большой в плане трудозатрат нету, то проще второе писать
Так меньше будет доебок со стороны коллег
1229 1972588
>>1972531
>>1972530
Я если, что под предопределенными имел ввиду вот эту конструкцию int number (get; set;). Просто визуально это все потом выглядит как будто ты просто к переменной обращаешься, так что мне не было понятно зачем такая проперти вообще нужна.
Но если я понял по твоему сообщению

> А так переопределением ты в производном классе можешь возвращать/проставлять значение по-другому чем это было в родительском классе.


Это типа заглушка, чтобы если потом понадобится какая-то проверка или модификация перед присвоением в другом классе переписать.
1230 1972602
>>1972557
Ну как бы любое решение должно быть обосновано.
В System.Numerics такая дичь почему-то не используется, и коллеги тех, кто это писал, как-то стерпели. Поля структур там - это публичные поля. Проперти там - это действительно проперти, т.е. свойства, отражающие какие-то аспекты внутреннего состояния, а не оболочки полей.
Тупой коллега, начальник-самодур и т.п. - это жизнь, с этим приходится работать и находить компромиссы, да.
1231 1972654
Сап, такой вопрос. Меня взяли на стажировку - удаленно. Задания нужно делать каждый день (пн - пт). На задачу часов 5+ проганья уходит. Так вот - очень тяжело самому себя контролировать, постоянно отвлекаюсь на учебу или на ютуб или еще что-то, из-за этого в долгах и сейчас приходится на выходных догонять те 3 дня на которые отстал. Как вы себя держите в контроле? Мб приложения какие-то юзайте или еще что-то?
1232 1972658
>>1972654
Хз, у меня проблемы такой нету
Я если что-то начал делать, меня хуй чем отвлечешь, такой я аутист.
1233 1972702
>>1972084
Ну, у тебя в возврате динамик-типов явно указан нативный для твоей среды тип - строка либо массив строк, не удивительно, что он их распознает. А у меня там какой-то мусор, который приезжает через межпрограммный интерфейс. Я не особо понимаю как все работает, но даже судя по тому, что VS не подсвечивает, не автодополняет и не показывает ошибку на абсолютно любом вызове для dynamic (даже если вписать туда что-то вроде .getMyDick()) то в рантайме там просто происходит поиск по имени метода и сигнатуре, а типа как такового может у него и нет.
В любом случае, я уже разобрался с проблемой через рефлекшн (5 секунд в гугле, больше сюда писал, вот уж правда двачеебы неисправимы). Если сделать вот так:
Type t = dynObj.GetType()
то можно у полученного объекта через .Name узнать его имя. Короче, для массива тип System.Object[], а для одиночного объекта - __ComObject. Этого достаточно, чтоб не ебаться с try-catch, тем более что я могу там же получить список всех методов, полей, признак массива, признак что это КОМ-объект, и даже небо и аллаха. Теперь проблема в том, что я для любого объекта, который приходит из этого SDK, как динамик, и не является массивом, вижу этот же тип - __ComObject, и я не могу различать теперь их между собой (разве что по характерным именам методов). Ну и никакого объявленного типа "__ComObject" у меня в проекте нет. Мне уже хватает инфы чтоб задачу сделать, но хотелось бы доразобраться, гуглю сейчас как вообще шарп работает с КОМ и что можно сделать с такими объектами.
>>1971834
да прекрати, это общеООП-шная хуйня. для меня шарить было бы если б я нормально понимал как именно .NET устроен и как все это на более низком уровне работет. А просто кододроч тут как и на других околосишных языках
1234 1972768
>>1972551
Угу, а завтра тебе нужно добавить дополнительную логику, типа невозможности изменить поле после того как оно установленно. Сделав изночально свойство ты просто добавишь эту логику там, если у тебя было поле - ты будешь вынужден везде где дергалось поле менять логику. Охуенный кисс получается.
А, ну да, такие же как ты думают, что вот порешали на первом митапе и все - у нас все железно, и не выйдет так, что мы тупо бизнес не поняли, не поняли предусмотрели что-то и т.д.

А ровняться на стандартную библиотеку это вообще пиздец. Или по твоему - охуенно кидать экспешн вместо того чтобы дать классу интерфейс который будет однозначно говорить, какие методы/свойств есть у класса, а какие - нет? Хули, стандартная библиотека так вот делает в куче мест. Давайте все как там делать: нахуячим абстрактных классов, нахуячим дублирующих классов, потому что те что мы нахуячили ранее конфликтуют, и будет у нас 3 разных цвета, дохуя стримов, жопой брашей. Охуенный ты ориентир выбрал, няша. И то что майкрософт сами признали что говно сделали и пытались по человечески передалать, это так.
1235 1972875
Как и когда надо использовать индексаторы?
1236 1972878
Анонсы, кому-нибудь удается поддерживать кроссплатформенные проекты (контентные приложухи android/ios) на Xamarin? Начинал с юнити, пытался пересесть на xamarin ради вроде как нативности, но не осилил из-за постоянного костылинга того, что уже знаю как делать в юнити. В апстор пока не загружал приложения, тк боюсь реджекта (слышал что там любят реджектить по причине "а какие нативные функции ios вы реализовали"), а у меня по сути полностью отрисованный интерфейс. Вот ломаю голову над тем, как пилить следующий проект. Пока пришел к тому, что для андроида это будет юнити, а для ios придется осваивать свифт. Так или есть более простой путь?
1237 1972896
>>1972875

>Как


Как описано в документации

>когда


Когда нужно обеспечить доступ по индексу
1238 1972901
Пытаюсь написать интеграционные тесты для своего проекта. И у меня встал вопрос ух как встал. Что делать с тестовыми данными в БД (использую postgre)? Сейчас напридумывал такие варианты:
1)Пересоздавать БД перед каждым тестом (через темплейт)
2)Очищать таблицы и заполнять заново перед каждым тестом
3)Использовать две БД - одну для тестов, где данные только читаются, другую для тестов где есть записи в бд (бд созаются и удаляются перед/после всех тестов).
Мне кажется третий вариант лучше, тем более что первые два завалятся из-за параллельного выполнения тестов (или нет?). А какие есть нормальные варианты?
1239 1972908
>>1972896
а чем доступ по индексу отличается от доступу по аргументу? короче, чем fun(x, y) отличается от fun[x, y]
1240 1972924
>>1972908
Так-то ничем, кроме того, что ты более явно говоришь другим программистам, который будут с твоим кодом работать, что в коде происходит.
Индексатор сразу понятно, что там какая-то коллекция запрятана в классе с которой ты хочешь чтобы работали именно через индксатор, с методом это уже надо название метода читать и разбираться что за ним скрывается.

Те же проперти тоже можно на методы поменять
1241 1972958
>>1972768

>завтра тебе нужно добавить дополнительную логику


Анон, если ты пишешь класс Customer, Order и прочий ентерпрайзовый ООП-шит, то там очевидно, что надо писать геттеры.
Если ты пишешь что-то элементарное, ну скажем, структуру Vector5, и тебе хочется перформанса, а возможно и нормальной интероперабелности с С в будущем, решение будет другим.
1242 1972970
>>1972958

> сли ты пишешь класс Customer, Order и прочий ентерпрайзовый ООП-шит


> ну скажем, структуру Vector5, и тебе хочется перформанса



Дело в том, что вторым занимаются единицы.
1243 1973387
Срочно нид хелп с делфи#. Сам фротендер подзалупный, другу срочно нужно 1 задание с табулированием фукции и средним арефмитическим. Его уже разок ебанули за копипаст, второй раз не прокатит скатать. Есть уже рабочий правильно код, его нужно переписать чтобы препод не доебался
БРАТЬЯ СЛОВЯНЕ ПОМОГИТЕ
1244 1973392
>>1973387
Переписал.
1245 1973399
>>1973392
Спасибо, брат. Сколько с меня?
1246 1973438
1247 1973565
Что с Rider? Хорошая ли альтернатива Visual Studio?
1248 1973862
>>1973565
Да. Но я не пробовал.
1249 1973966
Сап шарп, подскажите бесплатный обфускатор для .net framework (wpf .exe), можно и с торрентов. Можно без IL дрочева, главное чтобы шифровал string значения и немного расспидорасил шарп код (можно и много). Пока что пробовал:
- .net reactor - на торрентах вирусы.
- babel obfuscator - пробная версия.
- eazobfuscator - пробная версия.
1250 1973995
>>1972372

>А в целом вообще, интересно, какой процент людей, работающих программистами, могут написать алгоритм для ханойской башни, для быстрой сортировки без рекурсии и без её имитации через собственную реализацию стека, для обхода лабиринта, муравьиный алгоритм для задачи коммивояжёра и т.п. Без ограничения по времени, но и без гугла и подсказок.


Где-то около 100%, я думаю. Я бы посмотрел на программиста, который этого не сможет.
1251 1974060
>>1969758
Бамп своему вопросу. Должна же быть логика
1252 1974061
Нужно запилить большой пдф документ и поэтому я решил его запиливание положить в отдельный поток. Но всё сразу же отъёбывает на этой строчке
pageDef.PageSize = new Size( doc.PageWidth,doc.PageHeight);
где doc это FlowDocument
Если её закомментить, то дальше отъёбывает на этой строчке
sourceDocument.Save(stream, DataFormats.Xaml);
где sourceDocument это TextRange
И всё это с ошибкой

>Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток


Что не так-то?
1253 1974085
>>1974060
>>1969758
Вопрос снимается. Я забыл добавить service.AddSingleton(Configuration); >_<
Я теперь хз почему оно на винде работает корректно
1254 1974113
Что думаете о Xamarin?
Нужно ли изучать или ждать новую версию (Maui), которая выйдет в мае?
https://devblogs.microsoft.com/xamarin/the-new-net-multi-platform-app-ui-maui/
https://github.com/dotnet/maui

Я давно хотел заняться мобильной разработкой, но руки не доходили. А пока рожал, уже новую версию заанонсили
riderlogo300x300.png19 Кб, 300x300
1255 1974148
>>1973565
Райдер - огонь. Важно понимать, что в нем пока всяких визуальных редакторов и прочих плюшек, которые есть в студии, но зато с точки зрения работы с объемными солюшенами, состоящих из штук этак 25 больших проектов, он конкретно рулит. Тормозов нет, в отличие от студии он является честным 64 битным процессом и ограничения в 3 ГБ памяти у него нет.
1256 1974198
>>1971648

Лол, зумерка не заставшего венгерскую нотацию видно из далека. Ты занимаешься подгонкой решения под ответ. В общем случае противоречие на лицо, и связано оно синтаксической коллизией языка и метаязыка. А если бы использовали слово class вместо object, такой коллизии не было бы. Рефлессия тут вообще ни при чём.
1257 1974202
>>1951826

> Они разрабатывают компиляторы, ОС, СУБД, антивирусы, поисковики, навигаторы, архиваторы, игры, алгоритмы шифрования, блокчейн и т.п. Это их предметная область.



Ага, как в одном недавнем твите MS Research показалил нигретоску которая методами АИ выявляет а какие еще сорта нигеров недостаточно хорошо представлены в самой МС.
1258 1974204
>>1972347

>Вкат в джуна - это взять разом 4 недели отпуска, положенных каждому россиянину в год, и просто усердно прочитать 1-2 книжки и попрактиковаться в IDE с задачками. Это уровень усилий как для подготовки к сдаче на водительские права.


Перетолстил, это не Джун это недотрейни. А с ментором был бы трейни. Джун сегодня это не циклы с массивами, это знание языка на приличном уровне +3-4 технологии сторонние, а возможно и ещё жабаскрипт впридачу. Ну серьезно, ты думаешь вкатыш осилит за месяц c#+ SQL+asp.net+JS? А вакансии именно такие висят
1259 1974208
>>1972347

>Порог входа, например, во врача (со специализацией) - это 8-10+ лет учёбы, потом ещё 5-10 лет обязательной работы за 5-8к на селе с бабками, и только потом ты сможешь устроиться в норм клинику на зп js-джуна.



Ты ебанько путаешь теплое с мягким, точнее требования гос структуры и частного бизнеса. Тогда уж для корректного примера не 1эсника или js макаку в мелкой конторе бери, а какого нибудь кодера роскосмоса к которому тоже формальные требования вроде вышки.
1260 1974426
>>1974113
Вот мой опыт:
>>1972878

Его очень хуесосят и, как мне кажется, за дело. Кстати, чтобы забилдить под ios тебе нужно будет реальное устройство на mac в той же локалке что и основной комп, я под это даже хакинтош собирал.
Ничего лучше чем юнити для настоящей кроссплатформы я не нашел. Движок пилится годами, поддерживаться тоже скорее всего будет сто лет вперед, пакеты подцепляются какие хочешь. А тот же замарин вон сегодня есть, а завтра ку-ку. Или гугл плей очередное требование выкатил, которое ты не можешь удовлетворить из-за прекращенной поддержки и никакой документации. А у тебя 5 проектов активных. Вот такие у меня мысли. Проще натив под каждую платформу выучить, один хрен они плюс-минус как сисярп
1261 1974494
суп шарпач, хочу попробовать blazor, но в вебдеве я никакой. как защитить информацию на сервере от всего мира?
я точно знаю, что приложением буду пользоваться я и мой друган, может быть стоит просто по вайтлисту айпишники закрыть и успокоиться? или лучше сделать это, но еще с шифрованием и логин формой?
1262 1974602
>>1971639
Никто тебе ничего не должен пёс.
1263 1974640
1264 1974645
>>1974198

> зумерка не заставшего венгерскую нотацию видно из далека


>из далека



Не то что школьника, который не застал уроки русского языка
image.png.7af917e25ab6c9a46858bdd1a036db77[1].png188 Кб, 640x381
1265 1974683
>>1974204
Это сугубо требование рынка.
Просто опыт показал, что программист и без ВО остаётся программистом и успешно справляется со своими обязанностями.
А врач без ВО - это в принципе любой твой знакомый 35+, который, особенно в России, уже гарантированно переболел всяким и готов дать крепкий медицинский совет, назначить дообследование и план лечения, причём решительно по любой жалобе.
Но как ты понимаешь, бабки с уринотерапией не особо пока способны заменить профессиональных врачей.
Даже на мед.сестру, чтобы кровь из вены взять, учат дольше, чем программиста С++ за 21 день.
4a395a4442c31de978ccbeeeca1d8c36[1].jpg163 Кб, 1168x657
1266 1974692
>>1973995
Современная разработка вообще не требует алгоритмов на самом деле. Чуть менее чем все js-макаки и питонисты-датасцаентисты вообще не умеют в алгоритмы.
Программист, который нужен отрасли, это не творец, это даже не ремесленник, это заменяемая шестеренка на конвейер, сорт оф работяга со своим уклоном.
1267 1974695
>>1973565
Мне не зашел.
С одной-то стороны есть прямо вкусные плюшки, но блядь, эта хуйня думает что она умнее меня и даже больше студии лезет.
Еще эта хуйня с подсветкой имени аргумента пиздец тупо сделана.
Вообще, объективно - для написания кода - лучше всего подходит VSCode. Вот серьезно, в нем - писать одно удовольствие, с одной стороны скорость и плавность, с другой это не совсем редактор и всякие автокомплиты и прочее таки есть. Для дебага - студия или райдер.
121.png36 Кб, 619x916
1268 1974726
Смотрите. Есть код. Прикриплейд. Студия мне упорно говорит - заменить async void на Task и ждать его. Но хуйня в том что тогда метод старт будет ждать завершения и я ничего не могу сделать другого. То же и с клиентами - без async void - я буду ждать пока обработаю клиента перед тем как принимать следующего.
Так вот. Я понимаю, что это нехорошо так делать, но как иначе-то в таких вот случаях?
1269 1974729
Анончики, где можно бесплатно купить книгу Pro C# 8 with .NET Core 3 (Andrew Troelsen)?
1270 1974736
>>1974729
на либгене есть
2.jpg36 Кб, 633x1280
1271 1974737
>>1910324 (OP)
Здравствуйте, всем уважаемым шарпачам желаю здоровья. Вообщем я 3 курсник специальности мат и комп моделирования, тут нас учат пинать хуй и в поте лица зарабатывать баллы(оценки). Всё изучается ебанно хаотично - учишь мпиай+параллельно sql+делаешь ебейшие задачи биологии, химии и физ процессов на c++. Забил на эту хуйню хуй и учу чисто чтобы проходные набить. Только начал понимать что если щас сам не возьмусь за самообучение то после уника выйду полнейшим дном. Дк вопрос то с чего начать то, и главное как? Взял книжку по C# for players, на англ читается хорошо но после что? В чем смысл бытия этого ремесла? и вообще нужно ли все это? обращаюсь к кабанчикам с 300к н/сек
1272 1974739
>>1974736
Скинь пожалуйста ссылку, буду благодарен.
1273 1974741
Будет ли работать linq2sql/ef с mysql, который находится в пизде где-то на сервере?
1274 1974783
>>1974645
Мне похую на язык унтерменшей. Усёк?
1275 1974939
>>1974726
А почему у тебя так сделано:

public async Task Start()

Сдается мне он тоже void должен быть. Вообще, без сценария использования всей этой радости сложно что-то советовать.
1276 1974943
>>1974737
Падажжи! Тебе вообще, в целом, нравится с кодом возиться? Как кабанчик с 15летним опытом разработки за деньги скажу так: 90% рабочих задач, где нужно писать код еще более скучные и как ты говоришь, ебейшие, чем твои лабы по биологии, химии итп. Так что если душа к этому не лежит, лучше другую сферу поискать. Вон у меня пара приятелей разочаровались в программировании и в финансы ушли (один из них прям круто поднялся, трейдер в инвестиционном банке, кайен, дом на новой Риге), другой в пилоты линейные на б737 (сейчас правда с карантином соснул хорошо). Короче, ради денег в ИТ точно идти не стоит.
1277 1974951
>>1974602
Твоя мать шлюха должна мне два минета.
1278 1975114
>>1971484
То есть по делу тебе ответить нечего, раз ты лишь в лужу пёрнул. Если рынок везде разный, то и копейки везде разные. Для пыхаря 50 тысяч в замкадье это средняя з/п, но для мобильщика это копье.
Еще раз говорю: у нас +30% от рынка. Кадров нет вообще. Если бы мы могли найти 10 мидлов-шарпистов, мы бы мгновенно устроили их к себе, сразу же загрузили их проектами и взяли бы больше проектов к себе на горб. Нам приходится отказываться от очень жирных и денежных проектов, потому что у нас не хватает рук. А рук не хватает, потому что на рынке нет кадров. Все очень просто.
1279 1975197
>>1975114
Т.е. ты на серьезе говоришь, что не можешь найти 10 мидлов-шарпистов на 200к в месяц? Вам определенно что-то нужно делать со своим отделом hr.
1280 1975240
>>1975114
Лол, так о том и речь что у вас днище контора с нищенскими зарплатами нацеленная на отлов местных студентиков которые по какой-то причине привязаны к месту и не могут сразу в нормальную контору устроиться. В мухосранях такая практика довольно распространена, если в городе есть программерский быдловузик.

>>1975197

Конечно всерьёз, на такие зарплаты даже дебил не пойдёт.
1281 1975244
>>1975240
>>1975197

>Конечно всерьёз, на такие зарплаты даже дебил не пойдёт.



В мысле з\п которые они предлагают, а не 200к как ты писал.
1282 1975261
>>1975244
>>1975197
Ладно уж, не 200. 150-170 для мидла. Если что, в нашем городе 180 это зп сениора помидора
1283 1975274
>>1975261
Ты не можешь найти мидлла на 150? Не пизди.
1284 1975471
>>1974939
Потому что в теории старт может быть долгими таки его хотелось бы иметь возможность нормально отменить(в реализации подобной шняги у коллег например, просто виснет приложение и ждем пока таки запустится, меня вот это жутко бесило, особенно потому что вот идет интенсивный обмен, я блин, понял уже что все нормально и клиент на связи, а нет - жди пока закончится, никаких обменов в фоне, а кнопка отмены - не реагирует на нажатие).
На пике - примитивный сервер на сокетах. Это просто пример, потому что я думаю все понимают, что при старте там будет выделяться пул под получение сообщений, будет какая-то логика биндинга и это вот все, это хотелось бы таки не просто пульнуть, а подождать прежде чем дальше логику какую-то выполнять, ну в после того как стартанул - нужно же продолжить выполнение уже ожидая клиентов и как-то их обрабатывая, но вот незадача - если будет async Task - так не выйдет, ведь прием - бесконечный цикл и если его ждать, то все, тю-тю, а с другой стороны мне студия прям кричит: АПАСНА, АСИНХРОННЫЕ ВОЙДЫ ЭТО ПИЗДЕЦ, ГРОБ, КЛАДБИЩЕ, СДЕЛАЙ ТАСКОМ И ЖДИ!!!
1285 1975491
>>1975114
У меня 2 года опыт работы, лололо микросервися, лололо сетевые технологии, лололо ебля с протоколами проприетарными. Ыыыыы, ЗОВОД!
За 50к в месяц и гарантию что не буду делать фронтенд согласен на все.
1286 1975576
>>1975261
Я готов
У меня 5 лет опыта, зп 100к.
Только условие, брать без собеса, скажешь что я свой парень с сосача.
image.png424 Кб, 568x448
1287 1975765
Возможно ли стать востребованным программистом, который не будет веб макакой, и не будет работать за еду, если нет высокого интеллекта ?

Ещё в школе я понял, что не одарён быстрым и мощным мозгом, основу языка я понимал и структуры данных и базовые алгоритмы, но олимпиадные задачки мне никак не давались, и не даются. С математикой и физикой было так же. Я их понимал, но мозга недостаточно, чтобы выйти на уровень олимпиадника.

Сейчас же пытаюсь на codeforces участвовать в соревах, получается делать только самую лёгкую задачку A, для более сложных не хватает интеллекта, чтобы решать сложные математические модели, и быстро придумывать нужные алгоритмы, или вообще даже спустя много времени решение не приходит в голову.
1288 1975795
Почему я ловлю NullReferenceException?
1289 1975816
>>1975795
Потому что используешь конструктор без аргументов а в нем ты не инициализировал лист свой.
1290 1975822
Допустим я хочу сериализовать данные вида:

Имя пользователя
Пароль
Время отиправки сообщения
Хеш сообщения

Ну, т.е. совсем просто - все это одна ASCII строка, разделитель каждого поля - \0 а идентификатор начала и конца сообщения - 0xff.
Так вот, никакой сложности сделать это руками. Но хочется же, допустим, добавлять разные уровни для разных сообщений, вложенность и чтобы потом это нормально десерилиазавалось, а пилить это ручками - ну, заебисто же. Хотелось бы что-то вида:

[Serialize([0xff], [0xff])]
class Login{
[String.Ascii, EndWith('\0')]string Name{get;set;}
[String.Ascii, EndWith('\0')]string Password{get;set;}
[DateTime.Format(dd-MM-yy hh:mm:ss))]DateTime Timestamp{get;set;}
[Byte(4)] byte[] Hash{get;set;}
}
Есть ли что-то такое?
1291 1975825
>>1975822
Объект класса сериализировать тебе не подходит?
1292 1975831
>>1975816
Пиздец я долбоёб. Спасибо.
1293 1975897
>>1975765
Неоднократно сталкивался по работе с не самыми умными программистами, да что уж там, даже откровенно туповатых видел. Они вывозили, по большей части, на крайне высокой усидчивости и минимуме прокрастинации.
1294 1975903
>>1975897
Что они могли по алгоритмам ? Или это были фронт енд не думающие макаки ?
1295 1975911
Можно ли добавлять кастомные контролы winforms в wpf? Есть один msdn.html.editor.htmleditorcontrol , <WindowsFormsHost><wp:... > не подтягивает его (там только дефолтные контролы). Или может кто знает альтернативную бесплатную реализацию для редактирования html'a?
1296 1975923
>>1975911
Можно через хостинг, как-то делал лет 10 назад, лол.
1297 1976001
>>1975911
https://docs.microsoft.com/ru-ru/dotnet/api/system.windows.forms.integration.windowsformshost?view=net-5.0

>>1975903
Они как раз-таки бэкендом трейдинговой системы занимались. Худо-бедно справлялись за счет уже реализованного костяка проекта, вопросов знающим людям, ну и много их код на ревью назад на доработку отправляли с комментами. Справедливости ради, по долгу такие чуваки не задерживались.
1298 1976057
>>1975897
Такие обычно вывозят за счет того, что пиздеть хорошо умеют и их поэтому начальство считает их незаменимыми.
1299 1976089
>>1976057
Неее, в нашем случае все знали, что эти чуваки контракторы звезд с неба не хватают, но кого прислали на временное усиление команды, того и прислали.

Сто касается скила на общение с людьми, то этим туповатым программистам он реально нужен, просто потому, что им нужно часто ходить к прошареным чувакам за помощью.
1300 1976128
>>1976089
А что такого сложного в бекенде трединговой системы, что нужен очень высокий интеллект ?
1301 1976143
Сап программаторы. Есть способ проверка валидности данных для входа в почту, не отправляя письмо?
Допустим пользователь вводит свои данные в два поля. Если gmail подтверждает, что данные верные, то у пользователя открывается некоторое окно(юзаю WPF ), если нет - выводится label о неверности данных. Интересует сама реализация проверки без отправки письма.
1302 1976145
>>1976128
Хо-хо. Там борьба за микросекунды, дружище. И от этого архитектура, скажем так, весьма своеобразная. Грубо говоря, есть медленная шина типа TIBCO, есть быстрая кастомная in-memory база и прочие радочти энтерпрайза.
1304 1976160
>>1976150
THANKS
1305 1976201
>>1975795
Ты сделал мой день
1306 1976221
>>1976201
Да я в полном ахуе с себя, я отчаялся и пошел на двач писать, так как сидел минут 40 над ошибкой и действительно не понимал в чем дело
1307 1976334
Чето нихуя не понятно, как связываются методы контроллера(пик 1) с вьюшками(пик 2)? В каком файле?
1308 1976341
>>1976334
Полагаю ни в каком файле они не связываются, но как тогда они связываются по названию. Че это вообще за хуита?
1310 1976478
>>1976455
Спасибо
1311 1976500
>>1976478
Cпасибо на хлеб не намажешь.
1312 1976506
>>1976500
Ну, когда стану 20к/месяц то могу дать тебе одну тысячу рублей со своей первой зп
9999.png20 Кб, 592x579
1313 1976550
Вот чего придумал.
Какие подводные?
1314 1976629
Какие сейчас перспективы у шарпа? После вуза стою на распутье, но шарп нравится больше всего. Какие шансы со знаниями шарпа и асп.нет найти первую работу? Был бы благодарен за ответ
1315 1976664
>>1976629
небольшие. десктоп на винду щас не популярен. Лучше всего
Java и в андроид или бекенд/фронт, там без работы никогда не останешься, и она всегда будет даже в самом срано мухосранске
1316 1976669
>>1976664

>небольшие. десктоп на винду щас не популярен. Лучше всего


Но ASP.NET это же про вэб скорее
1317 1976697
Есть такая ситуация
Есть метод Operaion, который делают некоторую работу и выбрасывает эксепшены если что-то пошло не так
Но есть случаи когда выполнение этого метода вообще не имеет никакого смысла и лучше бы его завернуть в таком случае в самом начале
При этом надо завернуть так чтобы об этом узнал вызывающий код
Можно конечно фигануть еще один эксепшен и его обрабатывать
Но так как это довольно распрастраненная ситуация может быть, в этом случае лучше вовзращать сразу бул удалась ли или нет попытка выполнения метода
Вижу тут 2 решения

Сделалть метод AttemptOperation, оборачивающий Operation
Перед вызовом Operation делать проверку и возвращаться фолс если попытка невозомжна
или
Ставить эти проверки перед каждым вызовом метод Operation в вызывающем коде, это всем другим разрабам нужно помнить будет, что эти проверки нужны

Ну и к тому еще в обоих вариантах, что Operation что AttemptOperation эти вызовы должны быть обернуты в трай кетчи
Мне ни один из этих вариантов не нравится
Можно ли еще что-то придумать?
1318 1976881
Подскажите пожалуйста, как можно получить текущую активную форму (Form) приложения, когда работаешь с WinForms? Проблема в том, что я вызываю окно в режиме ShowDialog, и оно оказывается позади приложения. Я так понимаю, потому что утрачивается какая-то там связь с хозяином для нового модельного окна, и это можно пофиксить передав хозяина явно через альтернативный вызов ShowDialog(Form masterForm). Код, генерирующий модальное окно, вызывается из подключаемой к приложению библиотеки .dll, поэтому у меня изначально нет ссылки на его окно.
1319 1976895
>>1976506
Дай лучше свою жену на часик.
1320 1976897
>>1976664
Джезва говно.
1321 1976910
>>1976895
Так жена не моя собственность.
1322 1976929
>>1976629
Картина такая: позиций шарповых меньше чем джавошных, а программистов много, потому на приличные зарплаты конкуренция сейчас довольно большая. Про то что шарп потихоньку вымирает не согласен: .NET 5 с aspnetcore и общая нацеленность на бекенд, уже даже сейчас привела к росту таких позиций. Ну и понятно, много компаний ищут людей для поддержки легаси на WPF или совсем уж старья на WinForms.
1323 1976930
>>1976881
У формы есть свойство owner
Туда нужно присвоить ссылку на родительское окно
Если у тебя диалог в сторонней библиотеке вызывается, передать в метод которые его вызывает ссылку на главное окно.
1324 1976934
>>1976629
Судя по недавним статистическим выкладкам, проекты C#, .Net Core и TypeScript самые популярные и востребованные и это только. Шарп уже обогнал Джаву, а расхайпленный Питон уже соснул и востребован в основном на Западе.
Все таки Core выстрелил знатно.
1325 1976937
>>1976934
Смотреть в сторону .NetCore ?
1326 1976939
>>1976937
Да, и желательно ASP.NET Core Web API и MVC. Больше всего радует, что можно и пофрилансить, писать небольшие сервисы.
1327 1976947
>>1976939
Каким стеком знаний в идеале обладать на позицию джуна ?

Синтаксис
ASP.NET Core Web API
MVC
SQL какой-то

Что ещё ?
1328 1976949
>>1976930

>У формы есть свойство owner


пробовал. У этой формы в овнере - нулл

>передать в метод которые его вызывает ссылку на главное окно.


Да, но мой вопрос и состоит в том, как его получить, чтоб туда передать
1329 1976974
Поясните разницу с точки зрения производительности между отправкой ajax и отправкой формы, очевидно что с точки зрения клиента более предпочтительным вариантом будет ajax так как не нужно перезагружать всю страницу, вместо это будет выполнен js код который изменит состояние затрагиваемого объекта, но что с безопасностью? защитой от брутфорса и ддос атак? сколько будут весить файлы отправки форм и ajax-сов? который будет обрабатываться сервером быстрее?
1330 1976990
>>1976947
Entity Framework Core
HTML, CSSS, JS или какой-нибудь из фреймворков (ангулар например)
1331 1976996
>>1976990
В случае, когда есть такой стек знаний - шансы устроиться джуном хотя бы на $700 примерно равны какому проценту ?
1332 1977011
>>1976996
Прямопропорцианально тому сможешь ли уверено пиздеть на собеседовании или нет и тому, где ты живешь.
1333 1977157
>>1975923
>>1976001
Да, спасибо я это все знаю и видел, мне нужно было подключить неймспейс в хамле.
1334 1977160
Извиняюсь за тупой вопрос, wpf, почему докпанель не докпанелит? Он просто в стакпанели, никаких свойств больше нету.
1335 1977345
>>1977160
Для этого есть HorizontalAlignment="Right"
И вообще докпанель обычно используют для глобального лейаута окна, а не как вложенную панель.
1336 1977349
>>1977160
Поставь в докпанеле свойство LastChildFill в false мб
1337 1977858
Переучиваюсь с WebForms на .Net Core MVC. Разрывает пердак от того, что все материалы предназначены для тех, которые работали хотя бы в классическом MVC. Базовые термины не объясняются. А еще понял, что мне нужно повторить кучу вещей в C# (делегаты, async await, лямбда), прежде чем вкатиться.
1338 1978219
Как в вижуал студии можно автоматически дополнить лябмду?
Вот я пишу что-то вроде
govno.someCallback = (??????) =>
{
};
Как мне можно быстро посмотреть какие там параметры должны приниматься, и что она должна возвращать?
Сейчас я смотрю на сам делегат и с него переписываю параметры, но это очень неудобно - иде могла бы и сама мне все сразу подставить.
1339 1978286
Блядь.
На работе попросили кусок моего кода, т.к. я делал проект в котором нужно таки было на уровень TCP спуститься и сейчас у других челов стоит похожая задача и они не хотят ебаться с этим и просили мой код "для примера". Ну так вот, я-то что сделал - я не ебался с сокетами, а просто взял и добавил к кестреллу свой кастомный обработчик, обернул это все в свои контексты и понеслась.
Вопрос вот в чем. Не упаду ли я в глазах кодеров такими вот решениями, если таки дам свой код? Просто мне самому не особо нравилось, но с другой стороны - мне так самому не хотелось ебаться с сокетами и прочим, вот и сделал так вот. Кестрел работает шустро, плюс получалось что конфигурирование этого дела совсем уж стандартно. Но мня все равно гложет совесть, кажется что нужно было как деды - все на сокетах делать, а не вот эти вот оберточки мутить.
К вопросу - давать или не давать такой вот код? Засмеют или не засмеют меня за то что я не ебался с сокетами, а решил что проще просто в кестрелле кастомный обработчик намутить и от него плясать?
1340 1978357
>>1978219
Ctrl+Shift+Space

Не оно?
1341 1978394
>>1978286
ХЗ, у нас на работе вообще всем на все поебать.
Лишь бы работало.
1342 1978442
Можете объяснить что я делаю не так?
Вот код на дропбоксе. https://www.dropbox.com/s/00921wjs9aeif6n/SimplTcp.7z?dl=0

В чем проблема-то собственно. По какой-то непонятной мне причине - не всегда что при чтении, что при закрытии соединения - соединение закрывается. Вот тупо проверил - одна две суки висит. ХЗ почему так. Я наверное тупой и что-то не так делаю.
1343 1978492
Java или C#? Оба энтерпрайз, кто работает, поясните чем занимаетесь и чего надо ожидать
1344 1978527
>>1978492
Java по синтаксическому сахару и фичам это C# 2008
1345 1978577
>>1978492
Джезва отсталое говно, и проекты на ней скучные.
1346 1978596
>>1978492
Однозначно Java. C# только для разработки приложений под винду, а в росии такой работы очень мало. Учи джаву и иди в андроид, в разы больше денег и вакансий будет
1347 1978600
>>1978596
Вот скажи
Зачем заходить в си шарп тред если ты джавист?
1348 1978624
>>1978600
что он не так сказал? То, что на джаве ты можешь зарабатывать деньги, а не создавать свистелки-перделки, как это делают студенты в этом треде? Или как другим долбоебам демпинговать свой язык?

мимокрокодил
1349 1978634
>>1978357
Неа. Но у меня если че студия без аддонов, мейби это решарпер какой-нибудь добавляет?
1350 1978662
>>1974943
двачую адеквата
1351 1978670
>>1978624
Всегда демпингую где могу и другим советую.
1352 1978792
Какую IDE посоветуете: VS2019 || Rider?
1353 1978797
>>1978792
vim
Базарю. Еще захочешь.
1354 1978820
>>1978624
Нахуй пройди, шлюха джавистская со своим недоязычком.
300px-Vgolosinu.jpg10 Кб, 300x185
1355 1978904
>>1978820

>Java


>недоязык


проиграл с подливой. Аудитория шараги №8 села Малые Бугаи факультета ИИ в треде
1356 1978925
>>1978624
Реально, в универе решетки для лаб, а стажируюсь на фронта потому-что на дотнете только стремный завод приглашал за формами посидеть
1357 1978983
>>1978904

>Java is designed to be understandable by brain-damaged people



Иронично.
1358 1978990
>>1975903

>Что они могли по алгоритмам ?


А что вообще средний программист может по алгоритмам? Особенно привыкший к популярным высокоуровневым языкам, где уже есть куча готовых либ на все случаи жизни?
Мне вот недавно требовался алгоритм для определения того, находится ли точка внутри полигона. Это известный алгоритм, из точки пускается луч и считается количество пересечений с гранями полигона. Если получаем нечетное число, то точка внутри. Но если луч пересекает вершину, или коллинеарен с гранью, то это особый случай, который надо выявлять и особо обрабатывать.
Мне в голову приходило только тупое решение - генерировать новый луч до тех пор, пока он не сумеет избежать особых случаев. Решил посмотреть, как это решают другие люди.
Попробовал код из первой строчки гугла. Он не проходит тест, на хитром примере даёт неправильный ответ. По итогу я потратил много часов изучая и тестируя код из выдачи гугла, я проверил наверное десяток реализаций, и все они ломались на некоторых особых случаях. Особенно забавно, что один из сайтов был посвящен изучению алгоритмов, и под примером кода было несколько тысяч комментов.
В итоге нашел магический код на С на персональной страничке какого-то деда из американского вуза, который четко работал, и был ещё и очень быстр.
1359 1979001
>>1978990
вот поэтому нужно хорошо прокачатся в олимпиадном программировании, которое сильно прокачает алгоритмическое мышление, чтобы на задачи подобного уровня не тратить много времени и усилий, и быстро придумывать быстрые и правильные решения самостоятельно
1360 1979002
>>1979001
Нихуя это так не работает.
Тем более что олимпиадное программмирование на 95% состоит из зазубривания.
1361 1979007
>>1978990
Лол. Я тоже пытался реализовать подобный алгоритм своими руками. В итоге забил. Можно ссылку на посмотреть? Интересно как он работает с полигонами типа кольца или буквы V.
1362 1979026
Объясните, как работает SelectMany в Linq? Нигде не нашел подробного объяснения, только было так стало так, догадывайся сам почему.
1363 1979027
>>1978797

>Базарю


ща добазаришься
1364 1979133
Как подключится к PostgreSql через ADO.NET не указывая бд?
Если я пишу так, то работает:
var connStr = "Host=localhost;Port=5432;Database=SomeDB;Username=user;Password=1234";
Но я хочу подключиться, что бы как раз создать базу, т.е SomeDb еще не существует, а если я удаляю параметр DataBase из connStr, то сервер меня шлет нахер. Как быть?
1365 1979138
>>1979026
Для каждого элемента последовательности выбирает выбирает последовательность и объединяет все это в одну последовательность. Т.е. если обычный Select проецирует один элемент источника в один элемент результата, то SelectMany один элемент источника в последовательность результирующих элементов и объединяет их. На мсдн ходил? Уж куда проще-то
https://docs.microsoft.com/ru-ru/dotnet/api/system.linq.enumerable.selectmany?view=net-5.0
wrf2013[1].jpg118 Кб, 1012x1177
1366 1979154
>>1979007
https://wrf.ecse.rpi.edu/Research/Short_Notes/pnpoly.html

int pnpoly(int nvert, float vertx, float verty, float testx, float testy)
{
int i, j, c = 0;
for (i = 0, j = nvert-1; i < nvert; j = i++) {
if ( ((verty>testy) != (verty[j]>testy)) &&
(testx < (vertx[j]-vertx) * (testy-verty) / (verty[j]-verty) + vertx) )
c = !c;
}
return c;
}
1367 1979159
>>1979001

>вот поэтому нужно хорошо прокачатся в олимпиадном программировании, которое сильно прокачает алгоритмическое мышление


Алгоритмические задачи - это задачи уровня научно-исследовательских.
Известные ныне, кажущиеся простыми, алгоритмы разрабатывали умные люди зачастую в рамках своих phd по CS (или кандидастких по ф.-м. н.).
Это не решается в олимпиадном темпе.
Чтобы придумать грамотный алгоритм, нужно погрузиться в задачу, размышлять над ней, ложиться спать с мыслями о ней, просыпаться с идеями, которые хочется проверить в коде.
Хороший программист, если ему это реально надо, может помнить множество известных проверенных алгоритмов, нюансов их реализаций, держать их в голове и на кончике пальцев. Принять их и вариации на тему в ежедневной практике.
Но когда говорят, что программист должен уметь придумывать действительно не зазубренный им произвольный алгоритм для какой-то хитрой задачи, и ещё предлагают сделать это в коде в реальном времени, а то и на собеседовании, желательно минут за 30, то это просто смешно. Так это не работает.
1368 1979163
>>1979159
программист олимпиадник в алгритмическом плане будет в разы быстрее и ему в разы легче придумывать нужные рабочие алгоритмы, чем не олимпиаднику. Простая аналогия - работа грузчика. Пауверлифтер будет в разы эффективнее и быстрее, чем обычный грузчик - ряботяга, который тоже может выполнить задачу.
1369 1979190
>>1979163
Да нихуя. Я это уже говорю как олимпиадник. Вмдеть стандартные решения - да, ты благодаря олимпиадам можешь из крайне странного описания понять, что тут мы должны жадный взять, там мы должны большие числа применять, тут регрессия и т.д. Но вот когда становится нужно что-то новое - хуй там.
И ты просто почитай как квиксорт был придуман. Дядька работая преподом в союзе несколько лет взял и придумал его в ходе работы над совершенно другим проектом , и казалось бы крайне хуевый баблсорт взял и модифицировал так, что тот стал не хуйней для показывания на парах, а штукой, которая долго была одним из самых популярных алгоритмов.
1370 1979198
Из-за всех этих автокастов типов и прочего говна мне не очень-то ясно стоит ли вообще экономить байты в памяти или забить потому что ценна этих байтов это циклы процессора на всякие переконвертации и прочее?
1371 1979206
>>1979190

>и казалось бы крайне хуевый баблсорт взял и модифицировал так, что тот стал не хуйней для показывания на парах


Бабл-сорт вроде не так уж и плох на очень маленьких арреях так как у него нету оверхеда.
1372 1979208
>>1979198

>и прочего говна мне не очень-то ясно стоит ли вообще экономить байты в памяти


Не стоит.
1373 1979433
>>1979198
Если хочешь экономить байты перекатывайся в си\си++
1374 1979617
Посоветуйте среду разработки, где можно кодить и на сисярпе и на С/С++, а то VS с тем и тем на мой виндовс планшет не влезает из-за 32гб внутренней памяти, а на что-то кроме диска C он не устанавливается.
1375 1979650
>>1979617
Vs code
1376 1979688
Привет всем шарпистам! Есть ли тут те, кто использовал Blazor более менее серьёзно? Стоит ли его юзать для полу pet project’а (те вроде чисто для себя а вроде не совсем)?

И еще: как у Blazor обстоят дела с HLS (Http Live Stream)?
1377 1979779
>>1979650
Это тоже Visual Studio.
1378 1979842
>>1979433
Там мусор с пола подбирать надо, не хотеть.
1379 1979896
>>1979617
Блокнот
1380 1979984
>>1979896
Он не может исполнять код, даун.
1381 1980045
>>1979779
Ты дурак? Дурак.
1382 1980046
>>1980045
Ты дурак.
1383 1980048
>>1979779
Нет. Вместо того чтобы тут срать мог бы уже загуглить что это.
1384 1980057
>>1980048
Это просто просмоторщик, не умеющий исполнять код. В общем, бесполезная хрень, тот же самый блокнот.
1385 1980060
>>1980057
Там можно компилятор и автокомплит подрубить. Зайди в список плагинов, я уверен на 100%, там для шарпа есть
1386 1980065
>>1980060
Могу я ставить знак равенства между code и полностью опенсорсным вариантом codium? Там что вводить, чтобы всё это подрубить?
1387 1980076
>>1980065
Впервые слышу про него, но думаю да.
https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/with-visual-studio-code
изображение.png123 Кб, 1920x1040
1388 1980077
>>1980060
Эта штука позволит мне компилировать код?
1389 1980087
>>1980077
Ну наверное, попробуй. Правда я чет не понял почему у тебя там разработчик расширения мухаммад какой-то, а не майкрософт https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp
1390 1980089
Как скомпилировать? И как убрать эти references? References не нужны, в VS такого не было и не нужды как-то не было.
изображение.png92 Кб, 1920x1040
1391 1980091
>>1980089
Картинку забыл.
изображение.png105 Кб, 1920x1040
1392 1980095
Локализация не работает типа?
изображение.png110 Кб, 1920x1080
1393 1980111
Не понимаю, в чём проблема. Яндексирование ошибки простого ответа не даёт.
1394 1980115
>>1980111
Бля, а без отладчика запускается просто в консоли?
1395 1980126
>>1980115
Что значит без отладчика? Я скачал нормальный VScode и установил то, что на первой картинке, просто попытался запустить код на второй картинке и выбрал сверху .NET Core и получил третью картинку...
1396 1980127
>>1980115
Затем я возвращаюсь на вторую картинку и снова пробую нажимать F5, так как мне похуй, что там на англюсике на третьей картинке написано, ведь я его не понимаю, и получаю хуй. Да, я языковой нацист.
1397 1980131
>>1980126
Для такого запуска нужно создать json для билда/отладки.
Когда появлялось "не удалось найти задачу build" нужно было клацнуть настроить задачу. Там автоматом создается дефолтный жсон. Сохраняешь и все будет так билдится.
Но вообще, если у тебя net core cli стоит - просто открой вкладку консоль отладки и пропиши netcore run
1398 1980135
>>1980131
То, что прекрасно запускается в VS2019 требует танцев с бубнами во всех прочих средах, которые я пробовал. ЗАЩО???!!! Что оно от меня хочет? Сделал всё, как та написал.
изображение.png146 Кб, 1920x1040
1399 1980139
>>1980131
Кстати, я выбирал после "Настроить задачу" .NET Core. Может, это не то?
1400 1980141
>>1980135>>1980139

ХЗ, я просто создал проект с помощью dotnet new нажал F5 выбрал .netcore и все работает.
1401 1980142
>>1980141

>dotnet new


Это где?
1402 1980147
>>1980142
Во вкладке терминал.
Это создаст тебе новый проект. Список шаблонов есть на сайте MS.
Но вообще, если тебе проще - пользуйся VS обычной.
123123.jpg31 Кб, 577x222
1403 1980148
>>1980142
Пик забыл
1404 1980155
>>1980147
>>1980148
Я проследовал этой инструкции и оно работает.
https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/with-visual-studio-code

А нельзя как-то обойтись без ввода какого-то говна в консоль? Я не линуксоид и больше предпочитаю клацать по кнопочками, я не дрочить на чёрную консоль.
1405 1980158
>>1980147
И да, мне нужно установить среду разработки на C# и на C/C++ на диск D на устройстве, где просто нету места на диске C для чего-то, кроме самой винды и МС офиса, так что VS сразу нет.
Безымянный.png263 Кб, 1866x1890
1406 1980161
Вот тут: https://habr.com/ru/post/164705/ чел рассказывает как из шарпа вызвать функцию WinAPI для быстрого рисования bitmap'а.
Для этого делается напрямую из дот.нета вызов функции SetDIBitsToDevice из gdi32.dll.
Это работает намного быстрее стандартного System.Drawing.Graphics.
В функцию SetDIBitsToDevice передаётся как аргумент указатель (IntPtr) на первый пиксель.
Это функция Paint на картинке. Она получает в качестве аргумента _pArray, который запинен через GCHandle в конструкторе класса (и распинивается в финализаторе). И перед каждой отрисовкой вызывается Marshal.Copy(BD.Scan0, _pArray, 0, _width * _height);
Т.е. каждый раз мы копируем данные пикселей из BitmapData BD в запиненный буфер _pArray.
В своём коде (функция Paint2 на картинке) я избавился от этого копирования, которое на 4К очень затратно и снижает FPS. Я сразу передаю BD.Scan0 в SetDIBitsToDevice. И это работает, пока ничего не ломалось. Могут ли быть с этим проблемы?
Ведь по существу GC в любом случае не может двигать в памяти BD.Scan0, т.к. в принципе, то, если возвращаются указатели, то значит они и так запинены или зафиксированы. Поэтому копирование в запиненный буфер не должно быть нужно. Но автор с хибра, явно разбирался в вопросе больше, чем я, тем не менее, делает это. Зачем?
Поясните про этот момент.

Кстати, могу ли я без использования рефлексии получить Scan0 битмапа без LockBits, если мне нужен битмап целиком? Ведь по существу при LockBits опять идёт не нужное копирование в памяти. Я конечно мог бы вообще не использовать дотнетовскую обёртку битмап, и рисовать через SetDIBitsToDevice пиксельные данные из обычного массива. Но мне нужно писать текст на битмапе, а для этого мне всё же нужен System.Drawing.Graphics. Разбираться с нативными функциями винды для этого смысла нет, т.к. Graphics делает это быстро.
изображение.png158 Кб, 1920x1040
1407 1980172
Как запустить в нормальной командной строке, а не в этом дурацком терминале?
1408 1980177
>>1980172
Открой папку в которой твой проект в командной строке и пиши:
dotnet run
изображение.png107 Кб, 1920x1040
1409 1980178
>>1980177
Результат тот же. Я хочу консоль как на второй картинке, я категорически не приемлю вид как на первой. И хотелось бы кнопки для создания проектов, чтобы в консоль ничего не вводить и не держать в голове в хуй не упёршиеся команды, я же не линуксоид дрочить списочки команд или в голове всякий мусор держать.
изображение.png107 Кб, 1920x1080
1410 1980179
>>1980177
Вторая картинка.
1411 1980181
>>1980178
Да подумаешь, 2 команды ввучить это дело 2 минут.
1412 1980182
>>1980181
Я не буду держать их ц себя в голове, я лучше кнопку один раз нажму и всё.
1413 1980188
>>1980182
Ну типа, в программировании нужно постоянно кучу всего учить, и запомнить пару команд на фоне остального не выглядит чем-то таким, для чего тебе прям стараться придется, чтобы запомнить.
1414 1980192
>>1980188
Это другое, дебильные команды вместо нормальных кнопок и команды-слова в языке программирования не одно и то же. И как всё же запускатть программы в VS code с выводом в обычный cmd? Пока оно всё в отдельном окне, VS останется для меня единственным вариантом.
1415 1980193
>>1980192

>пока оно всё в одном окне


Самоисправил.
1416 1980279
>>1978904
Расскажу вам про шарп vs джава. У меня был большой проект, которым занимался не много не мало, а 6 лет - трейдинговая платформа в одном инвест банке. Серверная часть, как водится в банках, на джаве, гуй - WPF. Общались они по своему in house developed протоколу. Сам я на проект пришел когда он только только начинался на позицию простого сеньора. Потом года через 3 оказался на позиции product owner-а и отвечал за архитектуру гуёвой части. Так вот: в плюсы джаве можно записать очень хорошо настраиваемый рантайм (важно в плане перформанса), серверный дебаг и инструменты удаленного профайлинга. С дотнетом местами приходилось изобретать велосипеды / покупать всякие dotMemory / dotTrace за отдельные деньги. У джавы это все искаропки. В минусы джавы можно смело писать ненастоящие дженерики, которые теряют информацию о типах-параметрах в рантайме, в которых нельзя хранить примитивные типы. Stream API не дотягивает до LINQ. Короче когда работаешь с кодом постоянно возникает ощущение, что джава намного более отстала по времени, чем шарп. Собственно в dotnetcore MS и пытаются прижать хвост джаве и в сфере серверной разработки.
1417 1980295
такой вопрос, есть ли у майков бекдоры к например дотнету? например вот создал я какую-то систему аунтефикации а они добавили какой-то магический ключ к гету и контроллер вернул ему данные без проверки? я просто уверен что есть но не понимаю как это может работать,
например есть два ретурна зависимо от того как проходит атентификация один возвращает какой-то мусор типа страницы для домохозяек а другой страницу где хентай с лолями, они будут использовать какой-то краулер на запросы которого дотнет будет всегда отвечать положительно?

Ну предположим краулер, но что если контент будет возвращаться в зашифрованном виде и без моего ключа его расшифровывать 100 тыс лет, не будут же они использовать квантовое превосходство ради такой ерунды правда?

И еще, как эти бекдоры работают на винде и линуксе? они вообще на линуксе работают? Я не уверен, что они могут работать без подходящего ядра.

если кто знает страницы где подобные вещи разжёваны буду очень благодарен, можно и даркнет, было отлично если в даркнете, буду благодарен в двойне
1418 1980296
>>1978904
А в джаве есть бекдоры и анальные зонды? кому он принадлежит?
1419 1980723
>>1980295
Сорсы открыты. Садись - смотри, если так уверен.
1420 1980775
>>1980279

>ненастоящие дженерики, которые теряют информацию о типах-параметрах в рантайме


я как же вы их хуевертили, что они отпадали? Через 100 мапперов?

>Stream API


Теже яйца, только в профиль. Могу поспорить, что все равно писали на нативном Sql запросы
Тем не менее, не будет утечек, как это обычно случается с C#, unsafe код - выстрел в ногу
Мелкософт жидко серанули, что сделали опенсоурс так поздно, да и кроссплатформенность из жадности не вводили. А так могли бы уже выйти на уровень с Java.
Так или иначе - рынок покрыт, специалисты есть, постоянные свитчи туда-обратно. Не знаю, что должны мелкософт сделать, чтобы вытеснить Java с рынка. А по сабжу, коньюнктура теряется только из за переката в Kotlin - за ним будущее. Да и альтернатив много нарисовалось, Go/rust/node, тот же ror, immortal пыха.
Устраивать холивары безмысленно, достаточно смотреть на спрос и понимать, что сейчас в тренде
>>1980296
только фронтдоры, из подветренной только мелкософты заходят
1421 1980779
>>1980775
и кстати да, я бы посмотрел, как запели людители .NET, если бы все нормисы поголовно не юзали Шindows. У меня все.
1422 1980921
>>1980775

>как же вы их хуевертили, что они отпадали? Через 100 мапперов?


Хочешь сказать, что type erasure для 2021 года это нормально? Ну ну.
https://docs.oracle.com/javase/tutorial/java/generics/erasure.html

>>1980779
Если бы у бабушки были...

Если по делу, то дотнет справедливо занимает свое место под солнцем и сейчас действительно наблюдается рост именно дотнет бекендных позиций на фоне общего спада числа дотнет вакансий из-за всеобщего ухода с WinForms / WPF на веб.
1423 1980929
>>1980775

Да, про стримы забыл.

>Stream API Теже яйца, только в профиль. Могу поспорить, что все равно писали на нативном Sql запросы


Дядя, о каком SQL речь ведёшь? Я про in memory операции с данными вообще-то. Если детально, то проблема в том, что в джаве нет extension methods на которых, собственно и сделан LINQ. Из-за этого некоторые вещи сделаны неочевидно. Сравни:

c#: .ToList()
java: .collect(toList());

Вроде бы одинаково, но уже не так очевидно. Ну и code completion тут не особо поможет.

>unsafe код - выстрел в ногу


Вот не поверишь, ни разу в продакшене unsafe не использовал. Впрочем было один раз в рамках одного proof of concept, но потом этот модуль откололся в соседний проект и был на плюсах переписан.

>Устраивать холивары безмысленно, достаточно смотреть на спрос и понимать, что сейчас в тренде


Вот тут согласен. Позиций на джаве намного больше, по деньгам - на позиция лидов тоже самое. На позициях типа простого сеньора - джавистам чуть-чуть больше у нас дают. Лично я на джаве писать не люблю, хоть и умею. Тот же спринг рулит, да и вообще AOP на шарпе так и не прижилось. Все от проекета зависит, где какой инструмент лучше подойдет.
1424 1980937
Каковы шансы что меня возьмут на веб-бэкэнд .NET, без коммерческого опыта работы, если я подтяну знания хотя бы до уровня мидла?
Что желтельно знать?
Кроме очевидного ASP.NET Core, JS, какой-то фронтенд фреймворк.
Сам последние 5 лет работал десктоп разрабом.
Насколько этот опыт имеет значение?
1425 1980950
>>1980937
Бэкенд - это сразу базовый SQL, EntityFramework или еще какие-то ORM. Обязательно надо знать что из себя представляет SSL, да и сертификаты вообще. Докер надо знать. На хитрые вопросы по гиту отвечать.
1426 1980964
>>1980950

> На хитрые вопросы по гиту отвечать.



Можно пример
А то я сам работаю с гитом через студию и ничего кроме создания веток, мерджа веток, пуша, пулла, коммита, стейджа и очень редко чери пика не приходилось исползовать
До этого довольно долго работал вообще через свн.
1427 1980974
>>1980950

> Бэкенд - это сразу базовый SQL,


Насколько базовый?
1428 1980990
>>1980974
Должно хватить: joins / group by + having / умение строить и читать планы запросов

>>1980964
Достаточно будет заботать вот такое: https://www.edureka.co/blog/interview-questions/git-interview-questions
1429 1981014
>>1980921

>erasure


хотели сахарка? Хавайте

>занимает свое место под солнцем


Где то рядом с крестами и пыхой по спросу. До Java, как до луны
>>1980929

>нет extension method


да, это солидный козырь в рукаве, хз почему они еще не запилили в джавку

>Лично я на джаве писать не люблю


каждому свое, но хотелка не всегда кормит желудок. Вот TS я думаю взлетит, хотя типизация все еще слабая, как для компилируемого языка. И будут все .NET-тчики фулстека. Скоро завезут какой ни будь мелкософтовский деплоймент контейнер и будете мастер на все руки. Сам себе фронт, сам себе бэк, опа -архитектуру под БД выкатил, опа - деплой по пайплайну пошел.
.NET dev - Человек аркестр
>>1980937

>Сам последние 5 лет работал десктоп разрабом


Ты сразу на мидла хочешь прыгнуть? Если да, то учи Core, response-required pipeline, middleware и как я писал выше - смотри в сторону TS
1430 1981052
Анон, дай код как выключить DPI масштаб в программе. В .core net
image.png82 Кб, 496x321
1431 1981065
Что такое .Dump() и вообще зачем это?
1432 1981066
>>1981065
Какой-то метод расширения. С тупым неговорящим названием.
1433 1981091
>>1980723
>>1980775
Ну зашел я такой посмотреть что например в system.io написано, а там нихрена, какого хуя?
1434 1981102
Wpf, можно ли как-то вернуть какое-то значение после закрытия окна кроме как статик костыля в изначально вызывающем окне?
1435 1981122
>>1981102
Соорудить свой локал сторедж на диске или в базе
Хранить данные там по признаку
Считывать эти данные на открытии окна
1436 1981205
Райдер постоянно предлагает if'ки инвертировать. Это же портит читаемость кода? На скринах первый вариант же лучше?
1437 1981213
>>1981205
Это у тебя блок кода в ифе маленький, а теперь представь если у тебя в ифе было бы 50 строк
Явно выйти одной строкой из метода лучше выглядит.
И следующие 50 строк будут на уровне основного кода в методе, а не вложены в иф.
1438 1981233
Читаю тут печатную книжку по шарпу

>instead of assigning access rights to launch a nuclear strike to Donald Trump (a


user), you would assign access rights to launch a nuclear strike to the President of the United States (a role) and then add Donald Trump as the sole member of that role. Then, in January 2021, you do not need to change any access rights for the POTUS role, you can just replace the
Donald Trump user with the Joe Biden user. Or not. ;-)
1439 1981256
>>1981065
Это из linqpad вроде
1440 1981634
>>1981122
Это еще больший костыль чем статик.
1441 1981818
>>1981634
А что еще остается чтобы восстановить состояние интерфейса после перезапуска программы?
Например у грида есть возможность показывать/скрывать колонки, после перезапуска программы в гриде должны быть те же колонки включены как и в последний раз.
Остается только хранить его где-то в каком-то виде.
А значение статика пропадет после перезапуска.
1442 1982001
Сап, подскажите, при sql запросе
select UserDomainName from dbo.[User]
выдается вся моя таблица, состоящая из UserDomainName.

Но при
select UserDomainMain from dbo.[User]
where UserDomainMain = 'Vasiliy.Pupkin' или даже 'V%'

выдается таблица без значений, Почему такое может быть?
(Vasiliy.Pupkin в таблице есть офк)
(алсо БД не моя и когда я копирую из нее значение Vasiliy.Pupkin в конце появляется два пробела, мб это как-то влияет? (но почему % тогда не работает непонятно)
Ссылочные типы 1443 1982023
Я начал изучать ссылочные ссылочные типы, и попытался протестировать это сам. Написал код, который работает не так, как я думал:

public int x;

static void Main()

{

Program test1 = new Program();

test1.x = 3;

Console.WriteLine(test1.x);

Program test2 = new Program();

test2.x = 5;

Console.WriteLine(test1.x);

Console.ReadKey();

//Output: 3 3

}

Я ожидал увидеть в выводе "3 5", так как test2.x ссылается на ячейку в памяти, уже занятую test1.x.

"x" ведь представляет ссылочный тип, значит, если поменяется значение у какого-то объекта, то у всех объектов оно должно поменяться, разве не так?
Ссылочные типы 1443 1982023
Я начал изучать ссылочные ссылочные типы, и попытался протестировать это сам. Написал код, который работает не так, как я думал:

public int x;

static void Main()

{

Program test1 = new Program();

test1.x = 3;

Console.WriteLine(test1.x);

Program test2 = new Program();

test2.x = 5;

Console.WriteLine(test1.x);

Console.ReadKey();

//Output: 3 3

}

Я ожидал увидеть в выводе "3 5", так как test2.x ссылается на ячейку в памяти, уже занятую test1.x.

"x" ведь представляет ссылочный тип, значит, если поменяется значение у какого-то объекта, то у всех объектов оно должно поменяться, разве не так?
1444 1982032
>>1982023
Нет, x это int
Int это тип значение, а не ссылочный тип
Но так как поле x является членом класса Program, то его значение находится в куче по тому же адресу где находится объект test 1 или объект test2.
Заметь я говорю именно значение, если бы у тебя полем класса был другой ссылочный тип, то это было уже другая ссылка, которая указывает на другое место в памяти.
И в твоем примере ты вообще меняшь значение разных экземпляров класса типа Program, поэтому такой и результат.
1445 1982040
>>1982023

> Program test1 = new Program();


Создаем новый объект типа програм, записываем адрес в переменную тест1

> Program test2 = new Program();


Создаем новый объект типа програм, записываем адрес в переменную тест2

тест1 и тест2 ссылаются на разные объекты.

Чтобы правильно затестить сделай так:

Program test1 = new Program();
test1.x = 1;
Program test2 = test1; //тупа копируем адрес, значит и тест1 и тест2 будут ссылаться на один и тот же объект
test2.x = 2;

Console.WriteLine($"{test1.x} {test2.x}")
1446 1982050
>>1982001
Попробуй

select UserDomainMain from dbo.[User]
where UserDomainMain like 'V%'
1447 1982064
>>1982050
Работает! Спасибо
image.png57 Кб, 734x570
1448 1982090
сап, такой вопрос еще, я решил уменьшить код, поудалял кучу всякого, я думал что ненужного. Но теперь при отладке почему то программа перестала заходить методы моего web api и просто мгновенно выполняется и все, и через постман доступ также пропал, при этом в консоль корректный результат работы web api выводится, так что я вообще не понимаю в чем проблема
1449 1982132
Я кажется в конец отупел. Помогите найти решение.
В общем. Задача.
Дано. Некое множество чисел(допустим дни недели). Дана упорядаченная последовательность этих вот чисел(допустим понедельник, вторник, пятница, суббота, воскресенье). Нужно - вычислить количество дней от произвольного элемента последовательности, которое необходимо прибавить чтобы получить произвольный элемент этой же последовательности.
Ну, чтоб было понятно, вот есть дни недели, 1 2 3 4 5 6 7, допустим у меня есть последоваетнльность 1,2,5,6,7. Допустим я хочу найти расстояние от 2(вторник) до 5(пятница). Все просто. Я посчитаю разницу. Но вот я нахожусь в 7(воскресенье), мне нужно найти количество дней до понедельника(один) и я не понимаю как это без ветвления сделать. Т.е. с ветвлением-то я прото поняв что разница отрицательна - добавл 7 и получу как раз 1. А вот как сделать решение в котором бы не нужно было бы использовать ветвление?
Программирование отупляет. Я в коде это тупо циклом сделал и меня это триггерит.
Я поясню зачем оно надо. Вот я хочу сделать расписание запуска каких-то задач на сервере, допустим - каждое воскресенье или каждый первый день месяца - нужно составить какой-то сводный отчет и промежуточный данные за неделю/месяц в нем посчитать и почистить. Вот. Я сделал структурку для работы по расписанию в формате cron, у расписания есть метка времени когда последний раз оно запускалось. Ну, и вот допустим, если я решу составить расписание вида: каждое воскресенье, которое является первым января - я буду проходить по циклу много шагов(больше чем оно заслуживает), чтобы поставить метку времени следующего ожидаемого запуска. Это не так критично на самом деле, но просто блин, я чувствую себя тупым из-за того что вот так вот хуячу, вместо того чтобы красивенько посчитать число месяцев, дней,часов, минут относительно прошлого запуска, которые необходимо добавить чтобы оказаться в следующей точке.
1450 1982146
>>1981818
Да не перезапуска программы, а окна условных настроек которое вызывается как ShowDialog().
1451 1982149
>>1982146
Тебе в любом случае в определенный момент придется хранить где-то настройки.
Лучше сделать это как человек и сразу использовать одно решение для всего. Это будет либо JSON-файл, либо какой-нибудь SQLite.
Если тебе именно статика не нравится. Делай свои класс Options, которые будут прокидываться к нужному окну. Чтобы менеджить их - синглтон OptionManager из которого нужную опцию можно получить либо явно запросив либо по событию OptionChanged<TOption>. Но это все сложнее и требует больше кода, чем просто взять и в нужном месте дергнуть контекст SQLite и считать.
1452 1982188
>>1982090
Debug/Options/General/Just My Code не стоит флажок, часом?
1453 1982196
>>1982132

var weekDay1 = DayOfWeek.Thursday;
var weeekDay2 = DayOfWeek.Monday;
var daysDiff = (7 + (weeekDay2 - weekDay1)) % 7;

https://stackoverflow.com/questions/9219083/get-difference-in-days-between-two-weekdays
1454 1982286
>>1982149
Спасибо за ответ, тогда уж лучше статик костыль. Я думал можно возвращать значение закрывающегося окна кроме булевого.
1455 1982299
>>1981102
Подожди, а почему статик? Твое окно наследник Window же. Делаешь на нем просто пропертю с результатом, никакую не статическую. Типа так:

public class Window2 : Window
{
public MyResultType Foo {get; private set;}
...
}

public class Window1 : Window
{
...

private void btnPromptFoo_Click(object sender, RoutedEventArgs e)
{
var w = new Window2();
if (w.ShowDialog())
{
var foo = w.Foo;
}
}
}
1456 1982334
>>1910324 (OP)
Поясните, сколько времени понадобится для изучения сабжа если последний раз погроммировал на бейсике в 92 году? Пары месяцев хватит, чтобы написать приложение для коммуникации с вызывной панелью hikvision и используя их SDK?
1457 1982370
>>1982334
Извиняюсь, а вам сколько лет?
1458 1982371
>>1982299

> if (w.ShowDialog())


> {


> var foo = w.Foo;


> }


А, нихуя себе, у меня ума не хватило до такого додуматся, я просто делал статик переменную в первом окне и во втором менял ее.
1459 1982442
>>1982370
45. Не осилю думаешь?
1460 1982512
>>1982032
>>1982040

Понял, спасибо
1461 1982556
>>1910324 (OP)
Возмжно ли слелать сайт с базой данных SQLite? Если да, то где найти примеры подобных сайтов?
1462 1982588
>>1982556
Сделать то можно, но работать то оно хз как будет
Потому что SQLite на записи в базу лочит весь файл базы целиком.
1463 1982608
>>1982588
Ну если использовать SQLite только для персистенса данных, а так все в памяти держать, то можно. Но тут возникают другие проблемы )) Судя по самому вопросу о возможности использования SQLite на бэкенде, юному падавану лучше посмотреть в сторону каких-то других компактных баз данных.
1464 1982675
Поясните, зачем нужен [Serializable]?

Можно же и так через Type все поля получить и сохранить, никакой аттрибут тут вообще роли не играет. Или это просто скорее как гарантия другим разработчикам, что если они видят класс, который помечен как [Serializable] - значит его автор гарантирует, что его можно сериализировать/десериализировать и будет все норм работать(ну и все эти форматтеры для большей безопасности не пропустят класс без такой гарантии)?

И еще, нахуя BinaryFormatter сохраняет кучу метаданных? Ну ладно, это может пригодиться, но есть же задачи где это нахуй не нужно, почему нету стандартного класса какого-нибудь DumbFormatter, которы бы тупа сохранял поля без дополнительного мусора? Конечно можно и самому сделать, но странно, что его нету. Вот содержит класс два инта - значит 8 байт на всё, а не 100, как это происходит с бинариформаттером.
1465 1982685
>>1982675
Как пример
Я работал на проекте в котором мы общались с сервером через .NET Remoting
Так вот если не пометить класс как Serializable объекты этого типа не были доступны по сети и валился эксепшон
А ремотинг с первой верси .NET доступен, как минимум для совместимости нужен
image.png24 Кб, 210x320
1466 1982770
>>1982588

>Сделать то можно, но работать то оно хз как будет


>Потому что SQLite на записи в базу лочит весь файл базы целиком.


Бля. А при чтении не лочится? Можно читать через много потоков?
Да-да, я читал что-то подобное, мол можно использовать очередь,
писать данные очереди куда-то в кэш, и читать оттуда,
а потом из кэша сливать данные по принципу стэка FIFO.
Первая запись вошла в кэш, первой и пишется в базу, типа, и так для каждой каждая.
А что если в памяти базу данных развернуть (пикрил)?
Тоже будет лочится целиком, при записи?

>>1982608
Какие базы предлагаешь рассмореть? Из реляционных.
Чтобы были опен-сорц полный.
Именно из-за опенсорцности я смотрю в сторону сиквелайта.
Но это не клиент серверная СУБД.
А клиент-серверные СУБД - хуйня проприетарная, в большинстве своём, ещё и платные.
Видел вроде MariaDB опенсорцная, но я не тыкал её ещё.
Вообще не хотелось бы выносить базу данных на какой-либо сервер. Хотелось бы в виде файла сделать базу, и к нему уже коннектится из приложухи-сервера, на шарпе.
Чтобы читать и писать прямо туда, по мере необходимости,
и чтобы всё можно было на флешке таскать, а не коннектить хуй знает куда, на какой-то ёба-сервер, который может ещё и упасть.
1467 1982775
>>1982770

>Бля. А при чтении не лочится? Можно читать через много потоко


Одновременное чтение разрешено
Но пишущая транзакция залочит всех читателей пока не закончит свою работу.
1468 1982780
>>1982770

> А клиент-серверные СУБД - хуйня проприетарная, в большинстве своём, ещё и платные.



Чем какой-то Postgre или MySQL не устраивает?
Я сам с ними не работал, но они бесплатные.

> Вообще не хотелось бы выносить базу данных на какой-либо сервер. Хотелось бы в виде файла сделать базу, и к нему уже коннектится из приложухи-сервера, на шарпе.



Что-то я не понял
А сайт на флешке чтоли тоже будет хоститься?
1469 1982858
>>1980087

>я чет не понял почему у тебя там разработчик расширения мухаммад какой-то


Извыныс!
1470 1982875
>>1982770

>Вообще не хотелось бы выносить базу данных на какой-либо сервер. Хотелось бы в виде файла сделать базу, и к нему уже коннектится из приложухи-сервера, на шарпе.



Гугли что такое Docker. Делаешь образ с нормальной базой и твоим приложением и не паришься с деплоями - все в одном контейнере, такое как один раз настроил при разработке.
1471 1983140
Анончики, а почему всюду указываются Introduction to C# Programming and Unity? Вне юнити разве сишарп потерял уже свою ценность? А как же бэк?
1472 1983242
>>1983140
Всюду это где?

Под юнити, наверное, никто работать не хочет.
В геймдеве в целом зп ниже.
1473 1983274
>>1910324 (OP)
В сишарп нету стеков, векторов и прочих структур данных как в СТЛ с++ что ли? Я гуглю а мне либов ыдаёт с++, либо сишарп, но реализацию, а не готовый класс из стандартной билиотеки. Втф
1475 1983282
>>1983280
Спасибо. анон. А то я как-то не так гуглил и зациклился.
1617291085195.jpg357 Кб, 1080x1261
1476 1983447
>>1983274

> В сишарп нету стеков,


Stack

>векторов


List

>и прочих структур данных как в СТЛ с++ что ли?


Да вроде почти все есть.

>Я гуглю а мне либов ыдаёт с++, либо сишарп, но реализацию, а не готовый класс из стандартной билиотеки. Втф


Пикрил
1477 1983522
Где перекат?
1478 1983700
Кто делал реализацию интерфейса через контрол браузера, тип бросаешь на форму его и ставишь док-филл? Как нибудь там нажатия кнопок и тд ловить можно?
1479 1983702
Какие паттерны у себя на проектах используете? Репозиторий, uof, фабрика и синглтон не в счет. Интересно узнать, что можно свежего накатить
1480 1983703
>>1983702
PIDOR!
1481 1983704
>>1983700
Наверное, не совсем понял вопроса.

Нажатие кнопок внутри страниц, которые отображаются в браузере?
Ну, пишешь свою хтмл страниуцу, джаваскрипт отображаешь это все дело в браузере.
Только учти что за браузер та версия Internet Explorer, которая есть на компе.

>>1983702
Ну какбы патерны используют по мере их необходимости, исходя из конкретной задачи.
А не по приколу, чтобы просто было.
1482 1983709
>>1983704
Ловить события страницы и обрабатывать их внутри сишарп приложения
1483 1983711
>>1983709
Что-то вроде такого?
Это если джаваскрипт твой
https://www.codeproject.com/Tips/130267/Call-a-C-Method-From-JavaScript-Hosted-in-a-WebBro

Если не твой, похоже вот это
https://stackoverflow.com/questions/15901997/c-sharp-reach-click-button-in-webbrowser
1484 1983712
>>1983702
Ничего не использую. Нахуй не надо.
Пришел к мысли, что нужно просто писать чистый процедурный код в функциональном стиле. Все. Код стал декларативным, пропала хуйня с тем что думаешь о том, чтобы прокинуть какую-то зависимость через залупу, все пишется просто, модифицируется легко, а т.к. сейчас - микросервисы которые максимум в 10к строк на сервис выходят еще проще. Еще бы сам .net не был завязан на эти ебучие классы - было бы вообще заебись.
1485 1983769
>>1983703
Фанат контента для вкатунов, почему я не удивлен?
>>1983704

>Ну какбы


про SOLID что ни будь слышал? Или у тебя на первом спринте в контроллерах DbSet-ы, а потом переписываете на репозитории, когда из щелей копипаст методов лезет, я правильно тебя понял?
>>1983712
откуда ты такое животное тут появилось? С Core 3.0 встроенный DI, а оно все функциональном стиле пишет. Надеюсь одного дня тебя кинут на сапорт такого же говна, которым ты сейчас срешь, чтобы ты понял, какого это писать функциональщиной в ООП языке
1486 1983784
>>1983769

> я правильно тебя понял?



Наверное, нет
Я имел ввиду буквально, что я написал
Применять патерны просто так, чтобы просто их опробовать, не понимая для каких сценариев они уместны для каких нет.
1487 1983843
>>1983784

>не понимая для каких сценариев они уместны


ты повторил фразу, которой обычно кормят вкатышей пытающихся абузить GOF где только можно. Ты видимо не работал на проектах и не знаешь, что у каждого архитектора есть свой подход структурирования и стилизации кода. Ты же блять не будешь WPF писать без MVVM? Или razor без MVC? Это тоже паттерны, но их функция так же очевидна, как и репозиторий, UOF или фабрика
1488 1983847
Я в полнейшем ахуе. Долго сидел на старой студии, генерил edmx модели одной sqlite базы, клал их в разные неймспейсы и всё работало замечательно, а после переезда на 19 студию вскрылось, что даже ПРОСТО дата провайдер sqlite нельзя к ней присобачить без стороннего говна. Хорошо, я поставил стороннее говно, которое работает с ef6 и ВНЕЗАПНО вскрылось, что обоссаный, обосраный, никчёмный блядский ef6 по какой-то ЕБАНУТОЙ уёбищной причине не позволяет иметь поля с одним именем В РАЗНЫХ, сука, неймспейсах. Это просто охуеть, это за гранью моего понимания. Какое твоё, блять, собачье дело до того, что у меня В ДРУГИХ неймспейсах лежит, сука? Хули ты доебался, пидор? И самое главное, я так и не смог найти нормального решения для этой проблемы. Сталкивался кто с таким?
1489 1983858
>>1983847
Под разные базы нужно иметь разные контексты
1490 1983865
>>1983858
Блэт, базы может немного и отличаются друг от друга, но поля у них должны называться одинаково
image.png116 Кб, 194x259
1491 1983876
>>1983865
Да пусть называются одинаково, отдельный контекст создай, ентити воспринимает все имена в одном контексте как в один неймспейс, а вот если тебе надо что бы ентити работал с двуяма базами в одном контексте с двумя базами с одинаковыми названиями тогда ты в жопке
1492 1983877
Ебал в рот я ваш ef. Там дохуя проблем, хвала аллаху они обходятся хоть уебищными, но костылями

Вот например. Когда достаешь из MySQL (и в помело, и в оракле, одна хуйня!!) модель объекта, внутри которого должна быть модель другого объекта тебя фреймворк шлет нахуй и вместо второй модели отдает нулл. Но!!! Если перед этим достать таблицу с такими же объектами и сделать ToList(), эта хуета блядская все таки изволит корректно отдать обе модели. пиздец как бесит, ибо каждый раз доставать по три огромных таблицы, ясен хуй это минус производительность
1493 1983887
>>1983876
О каком контексте речь идёт? Я не пойму
1494 1983893
>>1983887
Я помочь хотел, думал ты няша, а ты тут троллить начал..., работает с еф и о каком контексте не знает он, ясно, ясно, запишем запомним
1495 1983915
>>1983843

> ты повторил фразу, которой обычно кормят вкатышей пытающихся абузить GOF где только можно.



Ну, я говорил скорее всего со вкатышем выше, если это не был ты сам
Ок, чем кормить вкатышей тогда посоветуешь?
Перечислить весь список паттернов и сказать используй ВСЕ
1496 1983922
>>1983893
Ну ты и токсик.
1497 1983929
>>1983922
Это будет ему на пользу, он вкатился в тред с постом в духе

>Я в полнейшем ахуе


>без стороннего говна


>боссаный, обосраный, никчёмный блядский ef6


>Какое твоё, блять, собачье дело


>Хули ты доебался, пидор?



А потом оказывается что он даже документацию не читал и в принципе не понимает как это работает, так что токсик тут не я, искреннее хотел помочь, но понял что с его уровнем понимания его лучше просто послать нахуй отправить читать документацию
1498 1983933
>>1983929
Я твою мать ебал.
1499 1983941
>>1983893
Я понял, что за контекст ты имел ввиду. Они разные для всех моделей, разумеется
1500 1984021
Есть ли какие-нибудь курсы по ASCII-art на C#?
1502 1984028
>>1984023
Нет, не текст, а 3D шутеры и подобное им (как на https://www.youtube.com/watch?v=tR30963rDig), а также геометрические объекты в консоли
image.png65 Кб, 946x599
1503 1984077
>>1983941
Бака, ты где-то облажался, я специально проверял, когда создаешь отдельный контекст никакой такой проблемы нет! честно-честно!
один и тот же класс записался и отчитался с 3 разных дб с одинаковым названиями таблиц, поэтому очевидно что ты явно делаешь что-то не так, в любом случае дело в тебе, а не в еф, так что вместо мата и истерики читай документацию
1504 1984181
>>1984077
Чел, делать то, что делаешь ты, я тоже могу, но вот если пытаться делать linq запрос, например, то вылазит эта ошибка. Я далеко не один такой, сотни людей с похожей проблемой есть, у которых в проектах использовались модели с одинаковым названием таблиц и полей.
1505 1984182
>>1984181

>System.Data.Entity.Core.MetadataException: "Schema specified is not valid. Errors:


The mapping of CLR type to EDM type is ambiguous because multiple CLR types match the EDM type
И дальше идёт длинный список полей и их копий, которые нашлись
image.png82 Кб, 1218x658
1506 1984257
>>1984181
>>1984182
хз что там у тебя вылезает, у меня все работает, вот добавил специально тебе линк, ищу по одному полю, в одной и той же таблице, и я если честно вообще не понимаю где здесь вообще может быть проблема
1507 1984259
>>1984257

> в одной и той же таблице


В разных таблицах с одним и тем же названием!
БЫСТРОФИКС
1508 1984261
>>1984182
>>1984181
ЗАМЕТЬ что я даже не использовал using специально что бы показать что проблем с неймспейсами быть впринципе не может если использовать РАЗНЫЕ контексты
1509 1984358
анон хелп!
юзаю райдер для разработки на аспнеткоре. К проекту прицеплена куча зависимостей с нугета и огромная wwwdata.
Когда юзаю publish на впс, каждый файлик перезаливается, что делает процесс долгим и нецелесообразным.
Вместо этого просто собираю в релиз и через fz перекидываю dll приложения
Как нибудь можно заставить его не перекидывать все эти лишние файлы? Добавлять исключения пробовал, райдер при публише на них хуй клал.
1510 1984619
>>1984077
А как ты сделал, чтобы брекеты красным подсвечивались?
1511 1984620
>>1910324 (OP)
Аноны, а какие есть по сишарп/дотнет конференции или выступления по аналогии с cppCon или c++ userGroup?
1512 1984624
>>1984619
Они не подсвечиваются, я breakPoint поставил, никогда не дебажил что ли?
1513 1984635
>>1984620
Есть
1514 1984673
>>1984635

>какие

1515 1984746
Если метод с такой сигнатурой
User FindUser(User user)
Как лучше возвращать результат, если User Not Found?
1516 1984750
>>1984746

throw new NullReferenceException();
1517 1984775
>>1984746
throw null

А если серьезно - практика говорит что нужно null возвращать. Просто указываешь в комментариях, что если не найден - null. Так во всех нормальных апи сделано, это чет нынешние смузихлебы обленились, им видите ли сложно проверку на null сделать и вообще они золотые рыбки.
1518 1984860
>>1984750
и в Middle ware exception filter ловить его?
>>1984775
потом ебаться с Null reference exception в контроллере
1519 1984865
>>1984860
Не троль тупостью.
if(user is null) return NotFound(); или что у вас там.
1520 1984911
Сап, программач. Пытаюсь разобраться со странной проверкой в коде:

if (decimal.Compare(new decimal(this.ConvertToInteger(0x2c, 4)), 4M) >= 0)

Если я верно понял, то здесь почему то пытаются вместо чтения определенного свойства класса напрямую обратиться к одному из байтов его побайтового представления.
Я правильно понимаю что это некий хак?
Сильно не бейте, я новичок в шарпе

Сами свойства класса перечислены ниже

private byte[] db_bytes;
private ulong encoding;
private string[] field_names;
private sqlite_master_entry[] master_table_entries;
private ushort page_size;
private byte[] SQLDataTypeSize = new byte[] { 0, 1, 2, 3, 4, 6, 8, 8, 0, 0 };
private table_entry[] table_entries;
1521 1984944
>>1984865
Алло, ты сигнатуру смотрел? Я должен вернуть User

>или что у вас там.


>Не троль тупостью.


нахуй ты отвечаешь на посты, если даже не знаешь базовых конструкций языка?
1522 1984947
>>1984746
дополню свой пост - я обычно возвращаю new User, но это же блять костыль и для него мне нужна еще одна проверка на Null, не кошерно выглядит. Может кто знает, как это лучше делать?
1523 1984955
Поясните за ваши классы, методы, ООП и прочую гомосятину? Ведь компилятор один хуй все приводит к процедурному виду. Зачем превозмогать и разжижать себе мозг, если можно просто писать процедурный код и не париться?
1524 1984964
>>1984955
чтобы ты/коллега через неделю/месяц/год открыл проект и понял, что там написанно. Зачем нужны ангуляры/vue/react/хуяк, если все равно сбилдит все в одну строчку?
1525 1984967
>>1984955
Ну пиши. А еще можно писать императивный код без процедур. А еще можно писать сразу на ассемблере.
1526 1984969
>>1984955
Вот у меня есть коллега на работе, который пишет в процендурном стиле, на все вопросы хули он не использует ооп, он говорит что ему так ПРОЩЕ, а я все усложняю, делать классы это пиздец ка СЛОЖНО для него говорит.
В итоге его код это куча методов на 200-500 строк кода с кучей ифов в котором в полной мере разбирается только он.
Зато он незаменим на проекте, вот и польза от процедруного стиля.
1527 1984973
>>1984944
Еблан совсем? У тебя юзер - ссылка? Ссылка. null - ссылка? Ссылка. Следовательно - null - это такой же юзер. Нигде, блядь, сигнатура не нарушена.
Пиздец ты тупой. Я думал ты троллишь, а вон оно что. Пиздец. Может быть ты и передаваемые аргументы проверять не будешь?

Давай, тебе, еблану, пример приведу. Вот тебе сигнатура:
int GetUserAge(DateTime birth). Вот как ты думаешь, что тут должно произойти, если я передам дату больше чем сегодня. Да, мы получим отрицательное значение. Должны ли мы дальше идти, если получим отрицательное значение в вызывающем коде? Нет, вызываеющий этот метод код - должен проверить и сказать - стопе, хуйня какая-то, нельзя отрицательный возраст иметь, мы это как-то сейчас обработаем. Может быть ты думаешь что будет лучше кидать тут исключение? Да нихуя, это как раз будет неправильно, потому что с точки зрения логики - все верно. Возвращать какое-то специальное значение? Еботека и все равно нужно проверять, потому это нахуй не упало.
Так вот. Возвращая null - все ясно. Это валидное значение. Проверка вида:
User user = null;
if(user == null)
Даст true, если ты не еблан что лезет все переопределять. А значит вернув null - ты вернул валидное значение которое никак, блядь, не противоречит сигнатуре и если клиент кода - еблан и не ждет что ссылка может быть равна null - пусть страдает, потому что он еблан. А если ты - идешь на поводу у таких ебланов, то ты еще больший еблан.
Я все сказал.
1528 1984997
>>1984973

>world of eblan


ты видимо на грабли NullReferenceException в своей жизни мало наступал, раз думаешь, что возвращать просто null это ок. Но на данный момент я и альтернативы не вижу - вернуть new User - хуета полнейшая, нет никого юзера, выстрелить exception - нахуй нужно, через фильтр не словит, приложение упадет. Поэтому по сути и вариантов больше нет.
1529 1985012
Сап шарпач, 2 треда назад (летом) проходил собесы в разных компаниях - от помоек до забугорного аутстафа, где не говорят ни слова по рузке. Я уже выкатывал, что у меня спрашивали (может кто помнит - я обсирался на кастах As-Is). Прошел на днях еще один собес, в этот раз успешный (ну как успешный, я отклонил предложение, т.к. не сошлись по деньгам и функционалу). Кому интересно, вот что спрашивали (позиция - Junior FullStack .NET web dev)
1. #:
- Боксинг-анбоксинг, как, зачем, что если апкаст делать из одного типа, а даункаст в другой;
- Enumerable, Querable - отличие, применение
- Паралельное, асинхронное исполнение. I/O bound - что такое, как работает своими словами
- Extenction методы - зачем, как, какие использовал на практике;
- Отложенное выполнение;
- Ранее, позднее связывание;
- Аксессоры, доступность;
- Иерархия типов, почему Valuetype class?
- Что такое Using, foreach, IEnumerable? Разобрать до дочернего уровня;
- Блок Try-Catch, когда, в какой последовательности, какая специфика Exceptions;
- Value, reference types - различие, специфика. Стэк, хип;
- GC - поколения, малая, большая куча, индекс блока синхронизации, процесс выделения, отчистки, эфимерные объекты
- Рефлексия - как, зачем, где?
- Мьютексы и семофоры;
2. ООП
- 4 принципа ООП на одном примере;
- Модификаторы доступа;
- Sealed, abstract, static, struct, class - что общего и какие различия. Полезли в залупу - что же такое static модификатор (смотри ILDasm)
3. Паттерны
Non-GoF: Репозиторий, спецификация, ouf, MVC, MVVM, MVP, какие еще знаю?
GOF: Стратегия, фабрика, синглтон. Что жизненные циклы реквестов в ASP.NET? Различие Scope, transparent, singleton
4. ASP.NET
- Фильтры, атрибуты, контроллеры (а ты знаешь чем отличается BaseController от Controller?)
- Пайплайн прохождения реквеста туда-обратно;
- Зачем нужен scaffolding и что это такое;
- Какие сервисы использовал и зачем (CORS, DI, Swagger и т.д.)
5. EF и Linq
- LazyLoading (proxy реализация, Lazy type реализация), Eager loading;
- Seeds, map, builder;
- Linq методы - около 10 штук спросили, еще затронули тему обобщенных делегатов (предикат, Action/Func)
- Как написать свой LINQ с блекджеком и отложенным выполнением?
6. SQL
- Построение архитектуры;
- Связи - как отразить;
- View, Алиасы, процедуры;
- Различия JOIN-s;
- Индексы, ключи, деревья, бинатный поиск
7. JS, HTML, CSS:
- map, reduce - отличия, преимущества;
- поиск объекта, какие есть способы;
- DOM;
- CSS, SCSS, LESS, SASS - зачем нужны, что такое;
- Селекторы
- Много чего спрашивали - я практически не отвечал на эти вопросы и мало запомнил, т.к. в JS и верстке - я не силен
8. Общие вопросы
- Какие ДБ использовал? А non-relative?
- Какие ORM использовал? ADO/Dapper?
- Клиет на браузере получает ответ от сервера слишком долго. В чем причина? Как определить?

Вроде все, может что то забыл, т.к. мурыжили долго. По # я +- нормально отвечал, под конец с версткой, sql и ОРМ я уже поплыл, т.к. вопросы шли один за одним и без времени на подумать.
Итог - таки дали офер, но на испыталку и с ЗП $250. Я конечно же отверг, т.к. деньги смешные, а судя по тому, чем я буду заниматся - это легаси, еще и фул стэк с версткой.
Честно говоря, окончательно потерял мотивацию дальше заниматься C#, т.к. требования растут с каждым днем, нормальные компании не берут джунов, а в средних и помойках - хотят джуна за мидла продавать. Год назад я мог с базовыми знаения синтаксиса вкатиться в RoR, но подумал, что язык не востребованный. Такие дела, товарисчи.
1529 1985012
Сап шарпач, 2 треда назад (летом) проходил собесы в разных компаниях - от помоек до забугорного аутстафа, где не говорят ни слова по рузке. Я уже выкатывал, что у меня спрашивали (может кто помнит - я обсирался на кастах As-Is). Прошел на днях еще один собес, в этот раз успешный (ну как успешный, я отклонил предложение, т.к. не сошлись по деньгам и функционалу). Кому интересно, вот что спрашивали (позиция - Junior FullStack .NET web dev)
1. #:
- Боксинг-анбоксинг, как, зачем, что если апкаст делать из одного типа, а даункаст в другой;
- Enumerable, Querable - отличие, применение
- Паралельное, асинхронное исполнение. I/O bound - что такое, как работает своими словами
- Extenction методы - зачем, как, какие использовал на практике;
- Отложенное выполнение;
- Ранее, позднее связывание;
- Аксессоры, доступность;
- Иерархия типов, почему Valuetype class?
- Что такое Using, foreach, IEnumerable? Разобрать до дочернего уровня;
- Блок Try-Catch, когда, в какой последовательности, какая специфика Exceptions;
- Value, reference types - различие, специфика. Стэк, хип;
- GC - поколения, малая, большая куча, индекс блока синхронизации, процесс выделения, отчистки, эфимерные объекты
- Рефлексия - как, зачем, где?
- Мьютексы и семофоры;
2. ООП
- 4 принципа ООП на одном примере;
- Модификаторы доступа;
- Sealed, abstract, static, struct, class - что общего и какие различия. Полезли в залупу - что же такое static модификатор (смотри ILDasm)
3. Паттерны
Non-GoF: Репозиторий, спецификация, ouf, MVC, MVVM, MVP, какие еще знаю?
GOF: Стратегия, фабрика, синглтон. Что жизненные циклы реквестов в ASP.NET? Различие Scope, transparent, singleton
4. ASP.NET
- Фильтры, атрибуты, контроллеры (а ты знаешь чем отличается BaseController от Controller?)
- Пайплайн прохождения реквеста туда-обратно;
- Зачем нужен scaffolding и что это такое;
- Какие сервисы использовал и зачем (CORS, DI, Swagger и т.д.)
5. EF и Linq
- LazyLoading (proxy реализация, Lazy type реализация), Eager loading;
- Seeds, map, builder;
- Linq методы - около 10 штук спросили, еще затронули тему обобщенных делегатов (предикат, Action/Func)
- Как написать свой LINQ с блекджеком и отложенным выполнением?
6. SQL
- Построение архитектуры;
- Связи - как отразить;
- View, Алиасы, процедуры;
- Различия JOIN-s;
- Индексы, ключи, деревья, бинатный поиск
7. JS, HTML, CSS:
- map, reduce - отличия, преимущества;
- поиск объекта, какие есть способы;
- DOM;
- CSS, SCSS, LESS, SASS - зачем нужны, что такое;
- Селекторы
- Много чего спрашивали - я практически не отвечал на эти вопросы и мало запомнил, т.к. в JS и верстке - я не силен
8. Общие вопросы
- Какие ДБ использовал? А non-relative?
- Какие ORM использовал? ADO/Dapper?
- Клиет на браузере получает ответ от сервера слишком долго. В чем причина? Как определить?

Вроде все, может что то забыл, т.к. мурыжили долго. По # я +- нормально отвечал, под конец с версткой, sql и ОРМ я уже поплыл, т.к. вопросы шли один за одним и без времени на подумать.
Итог - таки дали офер, но на испыталку и с ЗП $250. Я конечно же отверг, т.к. деньги смешные, а судя по тому, чем я буду заниматся - это легаси, еще и фул стэк с версткой.
Честно говоря, окончательно потерял мотивацию дальше заниматься C#, т.к. требования растут с каждым днем, нормальные компании не берут джунов, а в средних и помойках - хотят джуна за мидла продавать. Год назад я мог с базовыми знаения синтаксиса вкатиться в RoR, но подумал, что язык не востребованный. Такие дела, товарисчи.
1531 1985050
>>1984997

Ну да ладно. Ты можешь поменять сигнатуру. В чем сложность-то? Что-то типа первых двух прикриплейдов. И на null свой не напоришься и всем понятно более-менее.
Если тебе принципиально чтобы не нулл был и так же сигнатура - делаешь примерно как на последних 2 прикриплейдах.

Я бы все равно null возвращал, потому что это и меньше кода и никому вникать не нужно. и знать про то что есть какой-то там EmptyUser. Конечно, проверку на EmptyUser можно впихнуть в твой класс User, но это такое себе.
1532 1985056
>>1985012
Нихуя себе
Меня на первую работу взяли с зп в 400$
Задали в целом вопроса 3
Но у меня был диплом по специальности, возможно меня поэтому не пытали так сильно, хрен знает.
1533 1985067
>>1985012
Ты на какую-то ебанутую контору наткнулся. Серьезно.
Я тебе опишу как у меня собес проходил:
- Привет. А ты точно программист, не похож чет)))
- ^___^
- Короче, вот смотри, код. Что он сделает.
- Вот что.
- Хм да)))
- )))
- А ты знаешь что такое список?
- Знаю. Как массив, только нефиксированного размера
- )))
- А дай посмотреть гитхаб
- Там лабы одни, ну да ладно, смотрите
- Хм, ты мы смотрим 500$ просишь. Это нам подходит
- Ну ок, вы ведь повысите потом?
- У нас повышение через полгода работы)))
- Ну ладно, пойдет, когда выходить?
- Со следующей недели, вот список бумаг что нужно принести в отдел кадров и бухгалтерию

И так примерно все проходили, что на джуна, что потом на мидла. И это было-то всего 2,5 года назад. Ну, где-то спрашивал: С EF работал? Или - а не боишься чужого кода? А в остальном - не пытались какой-то там экзамен устроить. Ну, т.е. да, я бы ответил на это все, но только само отношение же довольно неприятное. Есть гитхаб, можете дать тестовое, а эти экзамены я в вузе напроходил.
1534 1985083
>>1985049
>>1985050
спасибо за ответ.
>>1985050
реализация не плохая, но абузить лишним функционалом не хочу, т.к. уже путаюсь в 5 уровнях абстракций. Буду Null дропать, главное проверку на Null не забывать делать. Ну и в фильтр пайплайна запихну проверку
1535 1985137
>>1985067
такого формата уже 3ий собес у меня. Первый был по телефону, когда интервьер был Джун Фронтендер (потом нашел его на Linkedin) - читал вопросы с листика и ждал ответов, которые написанны рядом с вопросом. Зато по Jquery мурыжил, хотя я изначально предупредил, что мои познания во фронте - это Material ui компоненты, которые подключаю к проекту. Знакомый пыхер начал учить позже меня и уже мидл. Зато я почитал паблички в ВК, где писали, что пыха умирающий язык.
1536 1985140
>>1984860
Ты даун? Сам же спросил что лучше возвращать в случае такой сигнатуры, я отвечаю, в случае ТАКОЙ СИГНАТУРЫ нужно возвращать исключение, а то где ловить и как ловить это уже не твое дело, нормальный программист когда увидит название, поймет что нулл в этом методе возвращаться НЕ ДОЛЖЕН и если твой метод какого то хуй возвращает нулл то это исключительный случай и ты должен дать об этом знать, если хочешь делать метод который МОЖЕТ возвращать нулл и ты хочешь что бы другой программист это понимал что он МОЖЕТ получить нул метод должен называться "TryFind" это все описано в литературе
1537 1985143
>>1985083
блять, ну и пиздец, какое же новое поколение программеров дегенеративное пиздец, нул он будет дропать, вместо двача литературу бы почитал
1538 1985156
>>1985140
Советчик хуев, ты посмотри сначала на стандартную библиотеку. До появления Nullable reference types какой-нибудь List<T>.Find - возвращал нулл если в списке не было значения и сигнатура была: T Find(Predicate<T>). Он не кидал исключение или что-то еще.
И вообще, с какого хуя-то не нахождение элемента где-то - исключительная ситуация-то? Это вполне штатная и обвешивать это дело try-catch'ами - долбоебизм. С какого хуя-то пользователь должен получать проседания производительности из-за того что еблан не прочитал комментарий и заставляет нормального человека вместо null - кидать исключение? Охуеть, блядь. С твоей логикой - пользователь ввел неправильное значение - мы вместо того чтобы сделать валидацию - и не выполняться дальше пока не введет корректно - будем хуячить try-catch. Охуенно придумал. Метод же должен принять цифру, пользователь ввел не цифру - ИСКЛЮЧИТЕЛЬНАЯ СИТУАЦИЯ, АЛЯРМ, ПИЗДЕЦ.
Исключительная ситуация - это база упала, клиент на другой стороне разорвал соединение, ОС заблокировала файл и ты не можешь писать в него, ненахождение элемента в коллекции или БД - это ожидаемое поведение.
Я вангую, ты как раз из тех ебланов, что из цикла выходят кидая эксепшн, хули, блядь, исклюичительная ситуация, я сделал больше итераций, чем ожидал, и похуй что этот цикл выполняется 900 раз в секунду и каждый перехват исключения - дорогая операция и просто выходи ты нормально, пользоваль бы не страдал, а ресурсы железа использовались бы нормально.
1539 1985190
>>1985156

>До появления Nullable reference types какой-нибудь List<T>.Find - возвращал нулл если в списке не было значения и сигнатура была: T Find(Predicate<T>).


а до появления ООП весь код вообще в одной куче мешаляся, реально почему перестали ? Может потому что подход к программированию изменился? может потому что совеременные проекты стали большими сложными и легкость в обслуживании сейчас мета? Может потому что так тупо удобнее?

>С твоей логикой - пользователь ввел неправильное значение - мы вместо того чтобы сделать валидацию


чего?

>Исключительная ситуация - это база упала, клиент на другой стороне разорвал соединение, ОС заблокировала файл и ты не можешь писать в него, ненахождение элемента в коллекции или БД - это ожидаемое поведение.


Ты так сказал? Исключительность ситуации зависит от контекста, определяется по потребности!

>Я вангую, ты как раз из тех ебланов, что из цикла выходят кидая эксепшн, хули, блядь, исклюичительная ситуация, я сделал больше итераций, чем ожидал, и похуй что этот цикл выполняется 900 раз в секунду и каждый перехват исключения - дорогая операция и просто выходи ты нормально, пользоваль бы не страдал, а ресурсы железа использовались бы нормально.


Доношу до твоего ведома что попытка поймать исключение нужна именно что бы такой хуйни не происходило, что бы не было так что цикл работает 100500 раз и после прогона все идет в пизду потому что в самом начале прогона мы получили данные которые не ожидали, но не остановили цикл и он в холстую отрабатывал что бы поток упал вконце, или что еще хуже. Что бы поток упал в какой-то важной части программы которая полностью ее ложит, именно поэтому важно ловить исключения сразу, кроме того такой подход упрощает дебаг и обслуживание, потому что если продолжать программу при исключениях и они будут вылезать где нибудь потом в другом месте и в другом контексте можно ебнуться пока ищешь в чем проблема
1540 1985245
>>1985143
давай линк лучше, где пишут, что нужно дропать exception
>>1985156
>>1985190
Есть два стула - на одном Null точенные, на другом NullReferenceException дроченые. Куда сам сядешь, куда коллегу посадишь?
1541 1985286
>>1985012
Ну и лалка ты. Я за 650 устроился в контору с кучей микросервисов, фшарпом, хайлоадом, cqrs и без фронтенда. Спрашивали только голый шарп, опыта работы никакого не требовали.
1542 1985366
>>1985286

> Я за 650


Я что-то не понял, а где зарплаты по 300000000кк/сек у программистов? Я за вахту 15/15 получаю 1500, нахуя вы геморрой зарабатываете за 650? Лел.
1543 1985437
>>1985366
Потому что объективно это проще, есть перспективы, а главное - многим таки нравится кодить.
1544 1985442
>>1985366
Ну это моя первая работа, сижу дома на удаленке паралельно с универом который тоже на удаленке и получаю выше средней зп по городу.
А вахта 15/15 это когда на 15 дней куда-то пиздуешь? Ну пиздос, завидовать нечему. Года через два, при выпуске с универа, буду так же удаленно 1500 зарабатывать.
1545 1985443
>>1985442

>буду так же


Не так же. Ты будешь красноглазить 16/7/365, а я, отработав 5 дней, буду две недели отдыхать и саморазвиваться, изучая, к примеру, С#
1546 1985444
>>1985443
*15 дней

мгновенный самофикс
1547 1985553
Сап, помогите пжалст, каким образом я могу получить коллекцию string из listbox(WPF). Допустим там лежит у меня 4 строки {"A", "B", "C", "D"}, каким образом я могу получить именно "A", "B", "C", "D", а не тип данных, вроде listboxitem?
1548 1985585
>>1985553
DataTemplate
1.png10 Кб, 502x280
1549 1985720
>>1985553
Что-то типа такого.
1550 1985735
>>1985720
Понравился способ, креативно, спасибо
1551 1985740
>>1985735

>3 блока IF в методе


>креативно


Говна въебал?
1552 1985749
>>1985740
че негативный такой?
1553 1985772
>>1985740
Ну блин, а как по твоему при условии что ItemCollection - хранит тупо object и ListItem в свойстве контент - хранит object - доставать предложишь?
Ты не сможешь без еботеки там линку использовать. Без if is ты не можешь быть уверен что тебе что-то другое не подсунули. Это довольно простой способ, при этом он понятный. Конечно можно эти два if объединить в один, то тогда читаемость, на мой взгляд, просядет.
Это конечно не идеальный способ, потому что т.к. там контент - это может быть и какой-то более сложный объект, например другой контролл, но уже приведя к IEnumerable<T> можно дальше линку юзать и достать что тебе нужно.
1554 1985783
>>1985772

>как


as/is, pattern matching, делегируй по зонам ответственности
1555 1985784
>>1985740
А сколько ифов в методе должно быть чтобы было заебок?
1556 1985803
>>1985784
1 от силы
1.png6 Кб, 519x219
1557 1985808
>>1985803
Так - заебись?
1558 1985809
>>1985808
ОНО!
1559 1986260
>>1985553
Так пусть там не лежит
Пусть лежит в обычном списке и прибиндено

Зы: да перекатите тред епрст. С мобилы адово сидеть
1560 1986299
>>1985012
Третий год работаю фуллстеком и не смог бы ответить и на 20% этих вопросов без предварительной подготовки.
1561 1986308
Сап шарп, можно ли как-то в впфе закрыть showdialog окно при нажатии курсором за пределами окна? Я пробовал OnDeactivated, но оно очевидно не работает. Пробовал еще сравнивать через Control.MousePosition, тоже нихуя (showdialog окно считается как fullscreen?).
1562 1986326

> Зы: да перекатите тред епрст. С мобилы адово сидеть



Не создавайте, мобило-зумеры должны страдать.
1563 1986343
>>1986299
Третий год работаю бэком, и могу сказать, что половина гребцов отсюда половину слов не знает, про вторую слышали.

Я вообще всегда охуевал от сложностей собесов, ты там и деревья покрути и расскажи как .NET внутри устроен и подрочи троим сразу, а потом будешь дальше джейсоны перекладывать.
1564 1986354
>>1986343
Коллега, которого считали самым безалаберным и слабым программистом, который бы не прошел ни одно собеседование, посмотрел на Udemy курс за 20 баксов и сварганил на коленке проект и ему уже капают с него деньги. Да, он не знает разницу между классом и структурой, никогда не пользовался абстрактными классами, методами расширения и не ебет что такое апкаст, боксинги.
1565 1986845
>>1986326
Да да
Пусть тред будет в жопе списка
1566 1986916
>>1986845
Илитно же.
Тем более в самом верху прикрепленный тред со ссылкой на этот тред.
1567 1987121
1568 1987199
>>1986299
>>1986343
>>1986354
Самый большой провал в том, что я иду точь в точь по Roadmap изучения .NET - исписал с 10+ проектов от консоли, десктопа на WPF заканчивая 3-4 проектами на веб стэке - ASP.NET MVC5, Core. Потратил на это уже около 3 лет своего времени до/после работы. По итогу - оффер с $250. Я это воспринял, как насмешку. Это по сути минималка блять. Дворник или уборщица столько же зарабатывает. И кстати мне раньше вообще предлогали за бесплатно несколько месяцев поработать, такое ощущение, что они дают золотой билет в жизнь, за что я им должен быть безмерно благодарен.
Я не омежка, обычный нормис, но какие то додики, так плюют в лицо спрашивая за семофоры, мьютексы и реализацию GC. Чего блять? Это же низший уровень абстрации. А про ILDasm зачем спрашивать? Я из за своей упорости уже выдрочил тему сборки мусора и выделения памяти, так что следующего пидараса, который спросит что то про реализацию и процессы GC я так выдрочу, что у него кефир из жопы пойдет. Мне уже похуй на этот C# стэк. Помойка ебаная. Я скорее пыху за месяц выучу и пойду копейку зарабатывать, чем продолжу пытаться устроиться на .NET (еще и футстэк, ага, привет). Единственное жаль - это потерянного времени. На изучение #, на написание петов, на выдрачивания вопросов из quiz, которые на практике не встречаются от слова совсем.
1569 1987202
Меня очень тошнит от студии, но на работе лицензию райдера не выдают. Насколько рисковано сидеть на крякнутой версии/студенческой лицензии? Менеджер сказал что если так сделаю, то жидбрейнс все задетектит и моей конторе из-за меня выдадут штраф, это правда или он пугает просто?
1570 1987218
>>1987202
Лол
У нас всяк компания сидит на комьюнити студии :D
При этом на офисный пакет майрософт(office 365) деньги не зажали
1571 1987256
>>1987199
Жиза, буду иметь ввиду анон, спасибо что отписался сюда
1572 1987260
>>1987218
Ну у меня здоровенная галера, да и в проекте лютый энтерпрайз для гигантской корпорации.
1573 1987303
>>1987202
Правда.
Я из-за того что студия начала подбешивать тем что считает себя умнее меня - пересел на вим. Божественная хуйня на самом деле. Базарю. Когда разберешься - писать там код - одно удовольствие.
1574 1987305
>>1987199
Ну это совсем какой-то пиздец.
Я потратил на вход в .net пару месяцев на курсах, потом пошел на стажером за 600 usd, через три месяца джун за 900.
Но вообще вкатываться проще всего через тырпрайзы со стажировками/курсами, и. т.д. у них есть всегда процесс обучения и бабос плотят.
Сам где-то полгода искал джуном работу и были одни стартапы в духе мы тебя оформим через три месяца работы
1575 1987322
>>1987303
Та я и так с вим модом что на студии, что в райдере сижу. Но чет студия подлагивает пиздец, да и вим мод в нкй кривой какой-то.

Но вообще, писать на виме когда есть иде - извращение. Зачем позбавлять себя дебагера, автокомплита, рефакторинов?

>Я из-за того что студия начала подбешивать тем что считает себя умнее меня


Так ей всегда можна заткнуть ебало или сказать что она не права и должна делать вот так, а не так.
1576 1987337
>>1987199
Нужно не по родмапам ходить было и пилить петпроекты - а по собесам бегать.
Меня на первую работу взяли всего с одним вопросом: что делает модификатор out. Все, блядь. Какие еще нахуй сборки мусора? Какие нахуй блядь выделения памяти? Вы че? Я слов таких не знаю.
А сейчас, спустя 2 года таких вот беганий по собесам и смен работы - закидывают предложениями, я правда отказываюсь, потому что почти везде хотят фуллстек, а попробовав фуллстеком работать - я понял что ненавижу JS и все что связано с фронтендом. При этом я даже ни одной вашей шарповской книги не прочитал, кек, я плосовиком так-то собирался быть и просто пробежался глазами по метаниту, когда понял что с плюсами только на завод либо за бугор.
1577 1987516
>>1987337
Чет не вериться. Или у тебя охуенные софт-скиллы такие...
1578 1987638
>>1987199
У нас на работе сеньор проводит собеседование и берет каждого, кто знает что такое distinct в SQL.
1579 1987652
>>1987638
>>1987337

что за хуйня пацаны, почему в одном требе истории как мужик впахивает за 250 бачей и о том как сложно найти РАБоту, и в том же требе аноны расказывают что у НИХ в конторе берут кого попало лишь бы мог по клавишам тыкать, как на самом деле сейчас выглядит вкат для непосвященных?
1580 1987658
>>1987652
Потому что капитализм-с,
За одну и ту же работу можно выживать за МРОТ, а можно получать 2к баксов.
В целом, мне кажется, это одна из основных причин, почему работодатели так старательно стараются спрятать ЗП вилки за стеной: "Каждому по способностям", "Достойная ЗП" и прочего.
И самое смешное, что в рамках одной должности могут быть совершенно разные ЗП.

У нас до смешного доходило, что чувак, который стал 3-летним инженегром получал денег меньше, чем его официальная вилка была.
1581 1987670
>>1987658
Ну так рыночек тогда как-то не правильно решает, потому что очевидно что если есть зарплата выше тогда программеры будут идти туда, а если на место будет большая конкуренция то там зарплата будет падать, вилка должна уменьшаться, это работает везде кроме программеров почему-то, у них вилка неадекватно большая
1582 1987695
>>1987670

>потому что очевидно что если есть зарплата выше тогда программеры будут идти туда



Ну, тут вижу бешеное комбо общей инфантильности ИТ-шников (типа мне и так норм, не хочу выходить из зоны комфорта и проч-проч-проч) и машины по промыванию мозгов в корпах. Те же крупные тырпрайзы активно используют всякий разный стафф типа тимбилдингов, бесплатной газировки и дмс-ки, что бы удерживать среднестатистических гребцов на ЗП ниже рынка найма.

Плюс синдром самозванца.

Плюс действительно хороших программистов нихуя нет, в целом это видно, по тому, что на НОРМАЛЬНЫЕ должности найм может идти годами, а на баунти за привод друга на них можно вполне купить какой-нибудь рено логан.
Зато дохуя даунов, которые надрочили литкод и пиццот фреймворков, но при этом не могут три строчки кода прочитать
1583 1987724
>>1987695

Ну в общем согласен со всем, добавлю еще только что программеры обычно не очень общительные и не любят смену компании потому что для них это очень болезненно происходит, к тому же даже нижняя планка выше чем у большинства профессий и этого достаточно что бы жить не хуже других
1584 1987729
>>1987658
Подвтерждаю, у меня 5 лет опыта, работаю за зп сильного джуна.
16177015130410.png10 Кб, 580x126
1585 1987739
Как в этом ебучем Visual Studio сделать так, чтобы неправильно введенная команда автоматически исправлялась? Эта функция раньше работала, но я что-то нажал и ВСЕ, редактор перестал автокорректировать неправильное написание.

Сижу гуглю уже ебаный час и НИХУЯ, как будто никто и не знает про эту функцию. Может тут кто-то знает?
1586 1987741
>>1987658
Я одну штуку еще давно понял, денег дают столько сколько просишь. Сам в коммерческой разработке уже 15 лет, сменил 6 работодателей. Если бы не менял работу, так и сидел бы где-нить за $500 хуярил.
1587 1987752
Почему у меня клиенты нулл?
когда вызываю с клиента клиенты есть
когда вызываю как на первом пикриле клиенты уже нулл, какого хера?
1589 1987892
Помогите с winforms опять, для окна регистратуры больницы нужно расписание с часами приема и возможностью на это время записать соответственно, как это реализовать можно?
На ум приходит datagridview только ,но как тогда сделать, чтобы через нее что-то записывалось? лучше пример покажите
Недельное расписание с понедельника по пятницу например
1590 1987936
>>1987892
Как тебя на работу то взяли если ты даже формошлепыть не умеешь?
1591 1987953
>>1987936
Все очень просто.
Не готовишься, проходишь 100500 собеседований.
Получаешь работу рано или поздно.
1592 1987956
Пацаны, а в светлой или темной теме работаете? Раньше всегда работал в светлой на ВС. Сейчас пробую темную в Ридере. Вроде прикольно с одной стороны, но с другой как-то хуже получается сосредоточиться на коде.
1593 1987961
>>1987956
Еще спроси какого цвета у нас обои в квартире и на рабочем столе.
1594 1988057
>>1987953
Ну вот и разгребай теперь хуле, посмотрим как 100500 собесов помогут тебе проект сдать
1595 1988075
>>1987892
Да, хоспаде, спизди букально любой пример из интернетов по какому-нибудь MVVM и радуйся жизни
1596 1988100
>>1988075
Человек WinForms просит же, а не WPF
1597 1988121
>>1948100
Это проблемы не только жабаскрипта но и многих других языков которые поддерживают арифметику для чисел с плавающей точкой, вина конкретно жабаскрипта и некоторых других в том что не сигналят исключения и не дают задавать режим округления

Читать раздел IEEE Routines
https://northstar-www.dartmouth.edu/doc/solaris-forte/manuals/fortran/prog_guide/6_floating.html

Впрочем, причина такого упрощения очевидна - зачем вебмакакам вообще знать что это такое, смузи сам себя не выпьет а очередной говнофреймворк сам себя не выучит

Не отменяет остальных претензий к языку
мимо проходил
1598 1988270
>>1987752
Потому что никто не подключился)))))
1599 1988295
>>1987892

> лучше пример покажите


Как говорил Альберт Айнштайн: Дай человеку рыбу, и ты накормишь его на один день, научи его рыбачить, и он будет сыт всю жизнь.
https://docs.microsoft.com/ru-ru/dotnet/desktop/winforms/controls/datagridview-control-windows-forms?view=netframeworkdesktop-4.8
1600 1988379
>>1987652

>мужик впахивает за 250 бачей


я писал выше, что отклонил такое предложение, т.к. посчитал это насмешкой. Я сейчас работаю (не буду вдаваться в подробности кем) зарабатываю $800, работая по 2-3 часа в день. Решил свичнутся еще 3 года назад, когда зарплата была в 2 раза меньше. Я знакомому деву описал ситуацию с собесом и такими насмешливыми предложениями, так вот он сказал, что на одно место трейни/джуна в .NET стэке по 30+ кандидатов. Резюме с пометкой Junior/Trainee/Beginner - даже не рассматривают. И некоторые вполе готовы работать за бесплатно (да, да, приходят выжигать глаза за $0.00), просто чтобы набраться опыта и съебать в роли мидлов в нормальные конторы. IT 2к21
1601 1988408
>>1988379

> одно место трейни/джуна в .NET стэке по 30+ кандидатов


За год к нам на завод пришел только 1 человек(((
Платят со старта трицатку. ХЗ, может быть это тоже "насмешка" для современных смузихлебов, но в нашем регионе это в 1,5 раза больше средней ЗП, а через год, если не совсем дебил, поднимают до 50к, я собственно так и зарабатываю сейчас. Челы что давно тут работают 200к получают, что опять же по меркам региона - охуенные суммы, двушка в центре стоит 2 ляма, считай за 2 года спокойно заработать можно.
Но нет никого. Наши менеджеры по подбору персонала уже с ума сошли и засылают тонной спама про: Приведи чела и получи ништячки.
1602 1988410
>>1987752
нет же, сказал что когда тригерю с клиента клиенты есть, а когда хочю с сервера затригерить себя уже налл
1603 1988411
>>1988295
Это работает только если человек не тупой или не ленивая скотина
1604 1988414
>>1988408
Это выбор каждого - верить или нет словам на борде.

>на завод


кстати я такие места даже не рассматривал, только аутстафные галеры. Все, что связанно с бугром - это деньги. Да и с английским проблем нет. Но это уже лирика.
1605 1988416
Кстати, шарпаны что опытнее - поясните. Вот я работаю уже полтара года. Мне сыпятся предложения, но во всех - на первом месте - фронтенд. Т.е. так в вакансии и пишут: требуется разрабатывать какую-то фронт-хуйню, ну и мимоделом пилить себе апи.
На текущей работе у меня - наоборот, я в основном беком занимаюсь и там всякие системы сбора и анализа данных, а фронт - ну нахуячил я быстро чтобы не в сваггере клацать, потом наш фронтендер чутка привел это в более-менее презентабельный вид.
Так вот. Это просто мне не везет или все дело в том, что я еще и среди тегов таки добавил фреймворки которыми пользуюсь для разработки фронта? Я-то их знаю постольку поскольку, ну, типа да на - отрисовать пару формочек, послать туды-сюды запросы да в хранилище сохранить результат. В общем - хуета. Но ЗП предлагают от 100-150к, что считай x2-x3. И как-то даже начал задумываться о том, чтобы более подробно в изучение фронта погрузиться. Но я не люблю фронт и не хочу особо им заниматься, мне нравится бек. Может быть если я уберу все что связано про фронт - больше будут завать именно на бекендера? Или это просто специфика шарпа такая, что тут либо фуллстек - либо пиздуй в юнити?
1606 1988452
>>1988414
Лол, ну тогда все понятно
Сейчас бы работал уже на вожделенной галере, если бы полгода-год где-то поскромнее набил экспу.
1607 1988457
>>1988416
Есть еще десктоп и ксамарин
Но там вакансий не так уж много.
1608 1988536
>>1988457
Так десктоп и ксамарин это тоже фронт, не? Просто вместо штмла хмл, а вместо джса шарп.
1609 1988709
>>1988416
Хз, как х-ры просыпаются, так на любой вкус вакансии сыпят.
И фронт и бэк и прочее.
1610 1988762
>>1988536
Про десктоп не совсем так
Там и бэк и фронт
Десктопные приложения тоже могут быть клиент-серверные, внезапно.
В том смысле что ты сервер сам пишешь, где сервер это виндовая служба, которая доступна по локальной сети.
Ну и на фронте реализовывать больше всего нужно, так как нету браузера, который много чего за тебя делает.
Также десктопыне приложения могут работать вполне себе автономно(толстый клиент), иметь свою отдельную базу, сливая время от времени какую-то инфу через веб сервисы.
То есть нету такого как в вебе, где фронт вообще не работоспособный без сервера.
1611 1988787
>>1988762
Ну вообще-то если писать виндовый UI по нормальному, то там тоже будет четкое разделение на model-view-presenter (controller) или вообще MVVM в случае WPF.
image.png1,6 Мб, 1280x720
1612 1988795
>>1988416
Кстати я тоже заметил уже года два такую фишку, вот раньше, нужно было сделать микросерис, искали на фуллстак бека который может что-то сварганить и на фронте, ну что там программеру научиться этого фотопеинта, денек два покликал и уже что-то можно настряпать, подключить бутстрап, библиотеки всякие и ок. так раньше бы было, брали бека платили 100% за бека ну и долпчивали за фуллстак как еще часть от ставки фронта, примерно 20-30%

А сейчас на микро сервисы берут на фулстак как бы как ДИЗАЙНЕРА ну и говорят мол, ну апи ты себе допишешь, понаподключаешь себе библиотек там, идентити всяких, сгенеришь базу, разберешься как-нибудь, и платят соответственно 100% за дизайнера и доплачивают за фулстак как 20-30% ставки от бека, та же самая работа по сути и зарплата получается меньше раза в два,
охуеть тенденции, чую что надо быстро накапливать кубышку и самому становиться жидокапиталистом потому что у программистов малины все меньше...
image.png14 Кб, 592x148
1613 1988856
Мужики, помогите, я походу сам себе выстрелил в ногу. Есть одно задание, где мне надо читать по 3 символа. В задании указанно именно 3. Я старался всё делать по солиду и высрал пикрил метод в классе Reader куда передаю StreamReader. Сначала возвращал просто строку, а потом показалось, что это некошерно, и решил запилить record Word, от которого наследуется ThreeLetterWordRecord, где хранятся 3 чара. показалось, что если делать new string будет производительность хуже, хуй знает? Алсо, я использую Word как ключ в словаре. Но сейчас у меня получается, если передать значение отличное от 3 в TryRead, то всё по пизде пойдет. Пока придумал сделать TryRead abstract и запилить ThreeLetterReader и отнаследовать его, и там использовать этот самый ThreeLetterWordRecord.
Так вот, это нормально я нахуевертил или лучше использовать просто строку и не ебаться или еще чего-нибудь?
1614 1988883
Я словил какой-то пиздец с datagridview - не отображаются данные, т.е я пытаюсь их добавить через datasource или вручную через .Rows.Add() и через дебагер я вижу что коллекция в нем есть, но на форме ничего нету, только хедер столбца. В чем может быть дело?
1615 1988884
>>1988856
Ты че, ебанулся? Зачем плодить сущности и абстракции, чем тебя просто строка не устраивает?

Алсо, что за переменная word(в которую оно читает)?
1616 1988892
>>1988884
word - это char[3].
Я просто всякое подумал, что надо на каждый пук свой класс. Вдруг там мы захотим не в виде строки хранить а еще как-то, или хуй знает.
1617 1988894
>>1988892

> Вдруг там мы захотим


А чё за задание-то? Нахуй ты наперёд думаешь чё там, а чё не там? Делай что в задании сформулировано и всё.
1618 1988901
>>1988892

>просто всякое подумал, что надо на каждый пук свой класс. Вдруг


вот вдруг и сделаешь, нахуя заниматься таким вот дрочением я хз, это не ооп и солид, это маразм какой-то, в крайнем случае хранил бы тогда в виде битов, и уже оттуда преобразовывал куда там в будущем надо, зачем нужен лишний посредник?
1619 1988904
>>1988894
>>1988901
Задание в текстовом файле подсчитать 10 самых часто встречающихся последовательностей из 3х букв. Да, походу я обосрался, спасибо, что указали.
1620 1988947
Кто в курсе, сильно ли отличаются стандартный Entity Framework и Entity Framework Core? Нужно выучить второе, но по первому есть отличные курсы, жалко выбрасывать.
1621 1989012
Добавляю в Wpf'e - ListBox.Items.Add(new ListBoxItem() {});
Вопрос - как добавить скроллбар в листбокс? Пробовал прописывать в scrollviewer - scrollbarvisibility, cancontentscroll и добавлять scrollviewer.
1622 1989039
Сап, шарпаны.
Все знают, что у вас просто тонны сахара. Такой вопрос - можно ли в шарпе создать такой класс, объект которого можно напрямую инициализировать литералом? Например, так, очевидно, можно:
string someStr = "этот вопрос полная хуита";
А есть ли способ сделать так, что было можно:
myStringWrapper someStr = "не такая и хуита уж";
1623 1989054
>>1989039
эмм
констурктор уже капец как громоздко чтли?
myStringWrapper someStr = new myStringWrapper ( "не такая и хуита уж")

Ну, можно еще оператор = переопределить для твоего типа
1624 1989142
>>1910324 (OP)
Привет, аноны. Помогите, пожалуйста, советом.
В общем сел делать курсач, результатом выполнения которого должна быть десктопная прога(для виндоус), в которой пользователь вводит в поля параметры некоторые, затем исходя из этих параметров сишарп скрипт задаёт поведение 2д-анимации на юнити, которая проигрывается в окошке этой десктопной программы.

Какой тип проекта мне для этого нужен? ВинФормс и всё? Я не могу вкурить, в чем такая принципиальная разница между этими винформс, uwp и wpf
1625 1989188
>>1988856
Я бы делал как-то так, Гы)))
1626 1989199
>>1988904
Пиздце. Я вот сейчас отказался идти на собес с вилкой 100к-150к, потому что мне недавно на текущем месте до 30к подняли ЗП. Я уебок, кек.
123123123.jpg26 Кб, 1178x196
1627 1989200
>>1989199
Да, от волнения обосрался в решении. Там нужно как на прикриплейд.
1628 1989203
>>1989200
Еще и жопой читаю. Пиздец.Короче, не первое слово, а 10 первых нужно будет взять. Пиздец я даун. Хорошо наверное что не согласился идти на собес.
1629 1989206
>>1989199

>на текущем месте до 30к подняли ЗП



Ты работаешь дотнет разрабом за 30к в месяц?
1630 1989210
>>1989206
До апреля работал за 25к, кек. Я ж говорю - уебок.
1631 1989213
>>1989210
Это где такие зарплаты?
1632 1989216
>>1989210
Не волнуйся, ты не один такой лох
Я работаю за 110к и у меня 5 лет опыта
Читалка на телефон (Андроид) 1633 1989248
Сап, аноны

Собственно, мне через 2 месяца сдавать курсовую РАБоту по шарпу. Пока что остановился на читалке, но не знаю (не понимаю) алгоритма, да и какую технологию вдобавок использовать.

Анон, может знаешь, подскажи, буду признателен.
1634 1989253
>>1989248
Ну там однна технология под названием Xamarin, не заблудишься.
А как текст разных форматов извлекать: найти опенсорс проект который это делает, например
https://github.com/topics/ebook-reader?l=c#
1635 1989267
>>1989142
Из всего, что нагуглил, есть только возможность запустить уже собранное юнити-приложение внутри винформс.

А мне нужно, чтобы была возможность из самого винформ-приложения в поля вписать параметры, затем запустить анимацию с этими новыми параметрами.

Пока не нагуглил, как это сделать, но, возможно, я не теми словами всё это время гуглил, у меня несколько раз бывало, что я так не мог найти инфу, которая лежит на поверхности.
1636 1989281
>>1989248
Мобилки - замарин.
Алгоритм: два пути. Добро и зло.
Добро - берешь и читаешь спеки нужного формата - делаешь все по спекам ручками, получаешь криво-косо поддержку форматов. Препод будет доволен - ты получишь опыт.
Зло - открываешь нугет и ищешь нужные тебе пакеты. Можешь обернуть это адаптерами, чтоб типа солид, вся хуйня. Собственно - все. Препод будет недоволен, но никуда не денется и курсач зачтет.
Как-бы вуз такое место где предпочтительнее как раз добро. Зла ты наделаешь когда работать пойдешь.
1637 1989413
>>1989142
>>1989267
А почему бы юнити юи не использовать? Че у тебя за задание на курсач такое? Потому что звучит как-то дико.

Вообще ты можешь сделать очевидную вещь - сохранить параметры в файл и запустить юнити программу которая его считает. Может быть в юнити еще можно как-то прочитать аргументы командной строки, погугли
1638 1989462
>>1989413
Я вот нашёл, как запустить стэндэлон юнити экзешник изнутри винформс.
Сейчас разбираюсь, как делается общение двух программ через IO.Pipes.

>А почему бы юнити юи не использовать? Че у тебя за задание на курсач такое? Потому что звучит как-то дико.


Мне для управления объектами анимации затем нужно будет еще ML прикрутить, лол. Насколько я успел понять, сделать это изнутри самого юнити-приложения не представляется возможным. (может я ошибаюсь, хз).

>Вообще ты можешь сделать очевидную вещь - сохранить параметры в файл и запустить юнити программу которая его считает


Мне тоже это в первую очередь приходит в голову, когда дело касается неких параметров, их задания, сохранения и чтения, первая мысль - json файл. или типа того. Но тут ещё будут кнопки, которые, например, генерят новый объект по ходу выполнения анимированной сцены. И вообще сцена запущена в течение всего выполнения программы, у меня будут глоабльные параметры, которые возвращают объкты восвояси, останавливают все телодвижения и так далее. Так что файл с параметрами не подходит.

>Че у тебя за задание на курсач такое? Потому что звучит как-то дико.


Задания, как такового, ещё нет, есть только тема и примерно обговорённый конечный результат практической части. Вообще это не курсач, а ВКРБ, просто быстрее было написать курсач.
1639 1989490
>>1989462
В годоте делай, глупец. В годоте хоть RPC есть.
1640 1989493
>>1989462

> Мне для управления объектами анимации затем нужно будет еще ML прикрутить, лол. Насколько я успел понять, сделать это изнутри самого юнити-приложения не представляется возможным. (может я ошибаюсь, хз).


Я уверен, что можно, погугли в этом направлении. В юнити же весь твой код - это обычная ассембли, которая может делать то же самое что и любая другая ассембли, хоть ссылаться на любые другие ассембли, хоть любые стандартные библиотеки дергать, да хоть с++ либу.
1641 1989647
>>1989054
Ну, это просто в порядке интереса, а не для практики. Чтобы сделать например полный аналог строк, но со своими фичами, например перегрузить конкатенацию чем-нибудь другим, определить инфиксное умножение через оператор * и прочее такое дерьмо. Весело же было бы.
1642 1989648
>>1989647
переопределить. мегабыстрофикс
1643 1989656
>>1989199
Сколько опыта, анон?
Я на стажировке три года назад больше получал
1644 1989659
Есть два проекта, как мне кажется идентичных, на одном работает перевод датааннотаций на другом нет, почему?
1645 1989671
>>1989659
Правильный ответ потому что я закомментировал validationScript в jqueryValidationPartial
1647 1989692
Подскажите пожалуйста, можно ли как-то в wpf'e растянуть элемент на все оставшееся место на форме? Т.е. в stackpanel'e контрол находится по средине, над ним условный хедер и под ним футер. Гридом со звездочками как-то всрато получается.
image.png72 Кб, 1241x548
1648 1989718
Как это вообще возможно? У меня в трае не ловятся исключения.
1649 1989722
>>1989718
Посмотри внимательнее кто вернул нул.
1650 1989724
>>1989722
Соррян я мегазеленый в проггерстве, объяснишь
1651 1989726
>>1910324 (OP)
Всем привет. Есть аноны Новосибирцы? Скоро буду к вам перекатываться, посмотрел на вакансии джуна. Нашёл пару штук и все. Как быть? Реально такая жопа с c#? академ городок не рассматривал.
1652 1989729
>>1989724
Пофиксил, спасибо
1653 1989863
>>1989673
Во, прикольно. Благодарю. Зачем столько всего в шарп этот нахуевертили, пиздец. Как вы вообще в нем разбираетесь только.
1654 1990124
Есть кто на впфе работал с html текстом в окне? Какой бесплатный контрол лучше всего использовать?
inb4: richtextbox.
1655 1990363
>>1989656
2 года.
Ну да пофиг же. Я как-бы действительно не за ЗП шел, мне нравится код писать и кроме этого я еще и ничего не умею. Короче, мне норм. Просто заебывают родственники, которые думают что я вру насчет ЗП, заебывают знакомые, которые насмотрелись реклам курсов и думают что я просто ебанутый, раз второй год в одних кросовках и джинсах хожу, при том что мне с моей ЗП нужно 16к за квартиру отдавать, заебывают рекрутеры, которые зовут на стек, который мне не интересен и в котором у меня мало опыта. Хочу, блядь, писать бекенд и ничего другого не делать. Тут - к моему счастью - так и происходит - ТЗ спустили - сказали делать, дали срок, сделал - заебись, вот следущее ТЗ, никаких обсуждений, никаких взаимодействий с другими людьми, просто пиши код - получай свои деньги.
image.png167 Кб, 1170x1650
1656 1990485
Есть такой код
Почему оно в случае передачи параметра в дженерик тип, неявно конвертирует к интерфейсу
Method( b );
А внутри метода нужна явная конвертация?
Method<int>();
Ведь и то и другое это апкаст.
1657 1990551
Поясните лучше вот за что.
Смотрите, есть либа в которой реализовано общение с устройствами по UDP. Но в этой либе все запросы - синхронные. Так вот, интерфейс для всех таких либ имеет вид:
Task Send(byte[] data, CancellationToken ct);
Task<byte[]> Receive(byte[] data, CancellationToken ct);
Так вот. Нормально ли просто вызовы этих методов обернуть в Task.Run? Просто я не совсем понимаю как сделать адаптер для синхронного кода, который в соответствии с интерфейсом должен был бы возвращать таску.
1658 1990665
>>1990363
Не понять мне таких, я вот открыл профиль, хожу по собесам, мидол три года, рожа кирпичом в резюме 170к+, посмотрим что получится.
1659 1990844
>>1990363
Есть у евреев золотое правило, если умеешь что-то делать не делай это бесплатно, хотя бы из солидарности к своим братьям программистам, пахать за еду дело в кативальщиков, а ты своими действиями просто дискредитируешь программистов и демпингуешь цены, не хорошо так...
1660 1990846
>>1989726
нахуя перекатываться в жопу мира? наоборот все стараются выбраться отсюда
1661 1990854
Есть кто работал с WindowsFormsHost на впфе? На винформах один и тот же код работает нормально, а на впфе не отображается текст на одном кастомном контроле. В дебагере в свойстве этого контрола текст есть.
1662 1991152
Какого хера в аргументе base() у конструктора нельзя использовать присваиваение? У присваиваня же тоже есть реузльтат типа который можно передать дальше.
1663 1991357
>>1990844
Мне этой конторе приятно. Тут сидят челы сиплюсплсеры, которые 200к+ получают(еще и недовольны, в регионе - 20к средняя ЗП, а они хотят больше того что им плотют) и им не хочется об шарповский код руки марать, с другой стороны - руководит мной бывший пехапешник, который на деле - не шарит особо(ну как, общее понимание у него в разы выше моего, потому что опыт и все такое, но конкретно шарп довольно слабый) и потому у меня полная свобода, ну а с третьей - фронтендер - бывшая джавистка, которая не знает что такое CSS. Чела, что действительно шарил за шарп более-менее - поставили руководить отделом отельным. Я тут полностью себе предоставлен, на деле - любую хуйню могу протолкнуть только потому что никто не знает нихуя. Взял - и предложил интересную мне хуету, пояснил чем полезно, и т.к. никто не может кроме меня ее реализовать нормально - дали мне, я сижу, читаю книжки, статьи, делаю каты и потихоньку пилю, говорю что сложно, хотя мог бы за неделю нахуячить. Чел что мной верховодит думает, что я просто из-за того что нет опыта достаточно такой медленный(среди коллег у всех 10+ лет опыта). А на фоне тех людей, что таки приходят - я действительно неплох, потому что за время что я работаю пришло 10 челов и они даже строчки кода за время испытательного срока не смогли написать.
Короче, я уже сказал. Мне как-бы норм, а вы-то сами и не пошли бы в такую контору, где зазывают сеньеров ЗП в 80к(там повышают за выслугу лет в основном, те плюсовики - 20 лет опыта и 200к+, но новичок что придет на их позицию будет стартовать с 80к).
Это же не галера какая-то или стартап, это, блин, контора, что в своей области - лидер по рынку и считай уникальный продукт делает. Я вангую что вы даже название не знаете, но продукция ее у вас есть. Блин, чуть нда не разгласил, алкоголь дело плохое.
В общем - мне норм. Мне все нравится.
1664 1991389
>>1991357

> тут полностью себе предоставлен, на деле - любую хуйню могу протолкнуть



Вот двачую
Уже почти 5 лет на одном месте так тоже работаю, в продуктовой компании.
Потому что думаю, если на галеру перейду, там будут всякие митинги, контроль продуктивности и прочая поебень.
А тут простор открыт.
1665 1991394
>>1991389
>>1991357

Ну понятно, трудно выйти из манямирка, а начальство и радо рабочей силе по цене кассирш из пятерочки
1666 1991404
>>1991394
Чего ты доебался?
Завидуешь чтоли?
1667 1991414
>>1991404
что нужно знать по алгоритмам, чтобы претендовать хотябы на 30к рублей в месяц ? Нужно ли придумывать новые сложные алгоритмы, или задачи решаются встроенными методами, и очень простыми самописными скриптами как например в олимпиадном программировании есть задачки на комбинаторику, и в некоторых случаях нужно применять расчёт чисел каталана ?
1668 1991416
>>1991414

>Нужно ли придумывать новые сложные алгоритмы


Пример сложности - задачки E и F на codeforces раундах
1669 1991573
Бля ребят чаму не передается объект в контролер?
В БД создается запись но она пустая.
Вроже же все по примеру сделал.
Пикрил1 представление
пикрил2 модель
пикрил3 метод контролера.
image.png35 Кб, 687x469
1670 1991602
>>1991573
Бля потому что не сработала миграция.
Тогда вопрос второй почему она не сработала?
А сейчас повторно выдает ошибку.
Пикрил первая миграция но без полей найм и эйдж, а только ИД. Вопрос какова хуя не все поля добавились ?
1671 1991635
>>1991573
>>1991602
Вопрос закрыт. Хуйня какаета была непонятная.

Но вот еще вопрос.

Я так понимаю к представлению можно привязать одну модель?

Вот к примеру есть форма с добавлением с предыдущего скрина к этому представлению привязана модель @model Test3.Models.User

И я как бы хочу что бы ниже формы у меня выводило все записи с бд код примерно таков должен быть
@foreach (var u in User)
{
<tr>
<td>u.Name</td>
<td>u.Age</td>
</tr>

Я передаю в контролере в типе метода [HttpGet] лист с записями в бд return View(db.Users.ToList()); но что бы его вывести мне нужна подключить модель @model IEnumerable<Test3.Models.User> . Правильно ли я понял что нельзя 2 модели использовать?
И мне надо использовать для этого частичное представление?
1672 1991636
>>1991635
Сорян за шитпостинг)
Мне сильно помогает когда я сначала пишу вопрос а потом мне как то легче самому его решить.
Через вьюБаг передаю.

Но когда добавляю новую запись вылетает эксепшн Object reference not set to an instance of an object. Я так понимаю что из за того что нужно вывести записи из бд а во вью бег пусто так как в ГЕТ запросе я не передаю ничего
1.2.png36 Кб, 908x611
1673 1991765
Обоснуйте преимущества WPF перед WinForms.
Когда я начинал учить шарп и думал, что выбрать для интерфейса десктопных приложух, то увидев код WPF, я подумал, что это веб-параша и стал учить формы. И формы мне кажется сделаны очень круто и очень продумано.
Но все, даже сами MS, почему-то их ругают и хвалят WPF. Обоснуйте почему.
1674 1991774
>>1991765
Ругают, в основном, за то что на формах довольно сложно разделить представление от логики. В ВПФ - тебя вынуждают писать более-менее нормально и разбранится с MVVM. Ты будешь плеваться, ты будешь считать это лишним усложнением, но в конечном итоге ты получишь какую-никакую но структуру и сможешь переиспользовать код в других проектах. А это как-бы то чего хочет безнес. Никто не хочет платить 100 раз за одну и ту же работу.
Ко всему - простота модификации визуального представления в ВПФ оч сильно помогает. Вот сколько тебе придется кода нахуячить чтобы сделать, скажем, кнопочку внутри которой есть чекбокс и картинка на формах? В ВПФ ты делаешь это в замл разметке и все, охуенно.
Да, на формах тоже можно писать нормально и тоже можно добиться того поведения, что есть в ВПФ, но это делается через жопу и нет каких-то прям стандартов, а сам редактор форм не будет тебе отображать что ты там нахуевертил. В ВПФ - за тебя решили - тебе просто нужно делать как сказали и будет ОК, оно будет отображаться в редакторе и вообще.
1675 1991790
>>1991765
В впф намного проще создавать свои контролы и изменять внешний вид и структуру уже существующих контролов, расширять поведение уже существующих контролов с помощью атачед пропертис, которые потом можно использовать по всему проекту.
В винформах обычно с этим не парятся и покупают уже готовые контролы.
1676 1991882
А вот сейчас вообще ничего не понятно.
Как мне из вот этого примера https://metanit.com/sharp/aspnet5/15.2.php показывает пикрил1?

Метод контролера

[Authorize]
public IActionResult Index()
{
return Content(User.Identity.Name); // ЭТО ШО ВАЩЕ ТАКОЕ?
}

Ну возвращаем строку, а строку берет из пикрил2? Тогда почему там ничего нету про path а только User и Name?
Корочи магия блять.

Можно как то отлаживать аспНетКоре по шагам как консольное приложение? Что бы я видел как происходит обработка запросов когда я захожу на сайт.
image.png48 Кб, 849x326
1677 1991903
Бля, Райдер меня доебал уже. Время от времени он не дает мне комбинацией клавиш Ctrl+Alt+/ закоментить выделенные строки. Выдает вот это сообщение. Что это такое? При этом через контекстное меню закоментить получается.
1678 1991922
>>1991903
Сиди на VSCode и не выебывайся. Райдер только в комплекте с хуетой для отладки нужен, писать в нем код неудобно, эти, блядь, аннотации с типом - пиздец нахуй. Короче, буть мужиком и юзай VSCode Для кода, райдер/студию для отладки. Так все ровные пацаны делают.
1679 1991927
>>1991922

>Так все ровные пацаны делают


А если я немужчина?
1680 1991963
>>1991882
Бамп вопросу.
Читаю и не могу понять как ваще работает .
[Authorize] - запрещает доступ к методу контролера неавторизированому юзеру, ну а куда он тогда попадает и какой контролер и метод обрабатывает его запрос то?
1681 1991975
>>1991903
Раскладку на английский переключи
1682 1991986
>>1991963
Ты пытался сам хоть раз написать веб-сервер?
Если бы пытался - было бы очевидно куда. В дотнете это делается "мидлваром". Если более обще говорить - у тебя есть цепочка ответственности. Получив запрос и распарсив его - он передается какой-то сущности, которая уже внутри себя решает что делать с контекстом подключения: тут мы проверили заголовки - все вроде норм, тут мы проверили путь к ресурсу - ага, такой есть - передали дальше, тут мы видим что ресурс требует авторизации, мы смотрим есть ли токен/кука или что-то еще, ага, нету - до свиданья - 401.
Возьми обычный сокет, напиши парсер http и попробуй сам, блин, сделать веб-сервер, пусть и простой. Все станет понятно и такие вопросы не будут возникать.
1683 1991996
>>1991986
Ну ахуеть теперь сразу все понял конечно.
И там не 401.
800298glo-s-sbayonetta.png6,2 Мб, 3000x1860
1684 1992012
>>1991975
Лол, помогло. Спасибо огромное!
1.jpg70 Кб, 853x402
1685 1992028
>>1991996
Там и не обязано быть 401. Я просто пытался тебе объяснить как примерно цепочка ответственности работает. Можно хоть файлом с черным властелином отвечать, если так хочется, можно - рвать соединение, можно перенаправлять на страницу с авторизацией.
Суть. Под капотом есть класс примерно как на прикриплейд. В контексте дотнет кора ты такие классы сконфигурировал в Startup в методе Configure. Все эти app.UseHttpsRedirection, app.UseRouting и т.д. это как раз примерно такие вот классы, с логикой, что делать с запросом, какие-то просто берут оттуда данные и подставляют другие, какие-то - проверяют пускать ли дальше, какие-то перекидывают запрос на другой маршрут и т.д.
1686 1992053
что за хуйня и почему это не работает?
image.png7 Кб, 669x84
1687 1992056
>>1992053
2 скрин не тот, вот правильный
1688 1992070
>>1992053
Потому что Attributes - IEnumerable. Что неясного? Там даже из названия понятно это.
Соответственно тебе нужно сделать что-то типа: b.Arrtibutes("цена_книги").Where(x=>double.TryParse(x.Value,out _)).Select(x=>double.Parse(x.Value)).Where(x=>x<600)
1689 1992396
Сап, возможно вопрос повторяется. Просят ли для вката вышку (ДС)? Как вообще вкатываться, и опыта набираться для этого? Вообще непонятно, если с пыхой яснее. А тут интерпрайз. И по-моему джунов не берут, и трейни.
image.png90 Кб, 1458x680
1690 1992499
Как в ВС19 открыть 2 окна редактора?
Вот примерно как на пикриле что бы было
image.png47 Кб, 902x655
1691 1992575
1692 1992646
>>1992396
В энтерпрайз как раз трейни и берут. Нихуя не требуют, платят относительно дохуя, так еще и учат. Но хз нужна ли вышка, я прост сказал что учусь.
1693 1992649
>>1992396
Вышка нужна что бы заказчику сказать что она у тебя есть.
Если нет то работодателю скажи прямо что нет, а он тебя потом попросит заказчику сказать что есть.
С первой зп просто купишь корку какого нибудь аграрного универа и все, один хуй ни кто даже и не подумает у тебя показать эту корку. Можно в принципе и не покупать но так ты просто совесть успокоишь, что мол ты же не соврал у тебя рили есть корка.
Хахалева людей судила без диплома и все похуй было, а ты тут паришся за свою корку.
1694 1992675
>>1992649
А вкатуна без прописки , нахуй пошлют, в интерпрайзе?
1695 1992722
Привет, пытаюсь вкатиться в си шарп, помогите пожалуйста. Почему у меня тут

int[,] arrayInt = new int[2, 2];

for (int i = 0; i < arrayInt.GetLength(0); i++)
{

var massiv = myNextLine.Split(' ');
for (int j = 0; j < arrayInt.GetLength(1); j++)
arrayInt[i, j] = int.Parse(massiv[j]);
Console.Write(arrayInt[i, j] + " ");
}

пишет Имя "j" не существует в текущем контексте. ??? :( На выводе в консоль
1696 1992727
>>1992722
В цикле выполняется только это.

> arrayInt[i, j] = int.Parse(massiv[j]);


Строка ниже - нет.

> Console.Write(arrayInt[i, j] + " ");



Добавь фигурные скобки
for (int j = 0; j < arrayInt.GetLength(1); j++)
{
arrayInt[i, j] = int.Parse(massiv[j]);
Console.Write(arrayInt[i, j] + " ");
}
1697 1992746
>>1992727
спасимбо!
1698 1992791
>>1992675
Конечно, еще если в армии не служил, то сразу порашу чистить пошлют.
1699 1992866
>>1992791
В армий служил, военник есть, прописки нет (бомж). Это повлияет на возможность трудоустройства?
1700 1992870
>>1992866
Работадателю - похуй. Я вот вообще в деревне прописан, ибо деревенский. И хули? Поехал учиться, нашел работу и работаю.
1701 1992945
>>1992870
В интерпрайз компаниях, тоже похуй на это?
1702 1992963
>>1992945
Что ты имеешь в виду под интерпрайз компаниями?
Есть продуктовые компании, которые выпускают свой продукт и продают его(гугл, амазон, майкрософт) Их тоже наверное можно назвать интерпрайз компаниями.

Есть галеры, на которые берут гребцов за сухие галеты с чаем. К таким компания обращается бизнес для разработки и поддержки приложений, ну например почта россии или волмарт. Тоже интерпрайз.

Ну как ты уже понял отношение к сотрудникам и к работе в таких компаниях очень разное. На галере тебя будут ебсти и в хвост и в гриву так как они деньги получили и им нужен результат. В продуктовых компаниях немножко по мягче все, но хуй пинать тоже ни кто не даст.

ИТ компании это не завод где смотрят бумажки и твои школьные дипломы с соревнований за 6 класс. Показываешь скилл - получаешь офер.

Как по мне самое лучшее место для вкатывальщика это стартап который нашел инвестора и только начинает разработку. Тебе не надо разбираться в старом коде. Если дело выгорает то через год берут еще прогеров, а так как ты проект уже хорошо знаешь то можно и деньжат так хорошо запросить. Ну а если деньги все спиздили то можно в резюме написать мол работал на инновационном проект то чет как то не удалось.
1703 1993449
>>1991774
В впц только разметка норм, мввм это говноище редкостное.
1704 1993463
С удивлением для себя обнаружил что asp Identity не работает с code-first подходом, таким образом identity не может быть использован в core 3.1 и .NET 5

По сему у меня вопрос, нахуя вообще нужны такие "апдейты" если они только урезают функционал и замедляют производительность?
1705 1993508
>>1910324 (OP)
Литература в шапке актуальна? Попрыгал по туториалам разным, пописал калькуляторы, а в итоге каша в голове. Хочется структуризировать познания, по полочкам раскласть. До сих пор не ебу как вставлять SOLID-принципы в код, все что из меня выдавливается это классы с приватными полями и кучей функций без интерфейсов и прочего.
1706 1993515
Посоветуйте тему диплома не сложную для коледжа
1707 1993520
>>1993515
Если у тебя нет ни одной интересной темы которую тебе бы самому было интересно решать программирование не твоё, помню для меня в вышке было проблемой как оправдать все интересующие темы в один диплом, я разрывался от возможных идей и фич которые мне хотелось реализовать, если у тебя таких идей нет программирование не твое
1708 1993521
>>1993520
Ну нихуя ты умный, наверное и свой стартап есть?
1709 1993535
>>1993521
Был... пилил нейронки для проверки качества лопастей турбин под микроскопом, потратил все собранные за года полимеры на это... и только все начало срастаться охуенно, ебнула эта ебучая корона, после этого авиапроизводителям стало не до нейронок, поэтому отложил этот стартап так сказать до лучших времен...
1710 1993538
сап. выбрал тему диплома создание складского приложения. необходимо на шарпе сделать логику с фильтрами и через фреймворки создать базу данных на MySQL. Где можно найти примеры подобных заданий с разбором и что нужно изучить для данной темы, ибо есть всего месяц и полностью вкатываться в шарп нет времени
1711 1993541
>>1993538

>ибо есть всего месяц и полностью вкатываться в шарп нет времени


Чем ты занимался все время обучения? У вас что курс шарпа начинается за месяц до диплома по нему?
1712 1993543
>>1993541
мы изучали плюса, я подошёл к дипломному руководителю, а она грит типа на шарпе хуярь
1713 1993550
>>1993535
Какой стартап, ебанько? Щас на каждом втором заводе нейронки натаскивают на общедоступных библитеках. или ты дебил думаешь один такой умный чужие исходники с гитхаба скачать, лул?
1714 1993556
>>1993543
Сейчас бы проггеру с 200к\сек оправдываться перед тупым студентом которые "учил" с++ но подлые учтиля заставляют на шарпе писать, и написать то же самое на шарпе ему невмоготу, иди нахуй отсюда петух, тут таких не любят
1715 1993573
>>1993556
Такие прогеры тут не сидят т.к. тратить время на эту помойку себя не уважат, так что мимо.
1716 1993577
Как в .NET коммерческих проектах происходит подключение и работа с бд? Через EF и DbContext? А то у меня ощущение что это хуйня для вкатышей и все куда сложнее и серьезнее
1717 1993617
Нужна ли предрасположенность для олимпиадного программирования ? Сможет ли любой человек с достаточным количеством мотивации достичь красного ранга на codeforces своими силами, или это дано только талантливым людям ?
1718 1993640
>>1993617
Что такое талант, не верю в талант. Только, в упорство. Приложи усилия, и всё получится, рано или поздно.
1719 1993642
>>1993538
О, /b/рат ,тоже диплом ищу, какие темы у сокурсников?
1720 1993651
>>1993538
Зачем заморачиватся с MySQL ? Делай выгрузку из текстового документа и запись в него
1721 1993717
>>1993617
Конечно, как и вообще в программировании нужны математические способности с уклоном в комбинаторику.
1722 1993779
Нужно из виндовой службы запустить другой процесс из под пользователя домена
Process.Start(pathToExe, user, password, domain);
нихуя не работает
Если запускать службу под SYSTEM, то вылетает исключение access denied.
Если запускать службу из под текущей учетки или учетки админа домена, то ошибок не выдает но и ничего не запускает.
UseShellExecute стоит false
UAC отключал, не помогло.
Из обычного консольного приложения работает, а из службы никак
Что ему не так, блядь?
1723 1993800
А, вопрос снят, оказывается из службы это в принципе не работает
1724 1993867
>>1993651
препод просто хочет реализацию через фреймворк, чтобы само всё делалось, как она сказала. Суть диплома в создании базы данных склада, для этого нужно будет по идее реализовать запросы, осталось продумать и изучить как именно.
1725 1993868
>>1993642
я единственный выбрал диплом по программированию, остальные либо по технической части компов, либо технические дипломы (создание различных устройств).
1726 1994037
Сейчас я кое что буду проверять
В общем. Сегодня на обеде от нехуй делать сделал пока пил кофе песочек на шарпе. Взял СФМЛ. Алгоритм был следующий: клацаешь по экрану - сыпется песочек, потом он падает. Да. Простенько, по сути физика ненастоящая. Но не суть. А суть вот в чем. При ражрешении 800x800 это говно шло в слоумо. Вроде всего-то 640000 объектиков, чому в слоумо-то? А вот. Сейчас быстро эту же хуйню накидаю на плюсах. Вброшу в тред результаты.
1727 1994166
>>1993463

>asp Identity не работает с code-first


с чего ты взял? Еще месяц назад пилил, у меня все работало
>>1993577

>Через EF и DbContext?


Везде поразному, но большей части - да. Есть еще Dapper и ADO.NET - но это легаси

>достичь красного ранга на codeforces


это какой дан? До 4 дошел и забросил, задачи с оптимизациями дрочат мозги
>>1993717
на # я бы не сказал
>>1993867

>препод


>она


охуенная шарага, земля пухом
1728 1994257
>>1910324 (OP)
Как можно показать PNG или BMP картинку - в консоли?
1729 1994270
>>1994257
Не в виде разноцветных символов - на винде никак, на лине сторонние зависимости нужны
1730 1994365
>>1994166
Ну например для таблицы нужно два ключа, при попытке реализовать что-то подобное в code first получаю ошибку компиляции при том что в sql можно создать таблицу с двумя ключами
1731 1994383
>>1994166

>>препод


>>она


>охуенная шарага, земля пухом


Сексист ебаный. Хоть умных девушек немного, но они есть, и бывают намного умнее средних мужчин
1732 1994392
>>1994383
Умнее тебя-дебила разве что.
helper wanted.jpg75 Кб, 685x473
1733 1994477
Котаны, есть такой код
https://pastebin.com/UbvyfNM1
Проблема в том что он иногда неправильно принимает сообщения, они как бы обрываются
Передающая сторона уверяет что у них все нормально, и это на моей стороне неожиданно закрывается соединение
В случаях когда такое происходит у них выходят такие эксепшены
https://pastebin.com/H738Nmtx
У меня эксепшены не выходят, просто в стрим попадает только начальный кусок сообщения
С сетью точно все в порядке
Что я делаю не так?
1734 1994547
>>1993508
Пока ты не мидол - тебе солид нахуй не нужен
1735 1994549
>>1994547
Тогда какого хуя на собеседовании на позицию джуна спрашивают солид, паттерны проектирования, историю развития дотнет, сколько кораблей на тихоокеанском театре военных действий и дизассемблер неба и господа нашего иисуса христа?
1736 1994552
>>1994549
Потому что хотят что бы ты на каждый вопрос отвечал "не знаю зато я буду работать за еду" а когда джун так не отвечает тогда джун их расстраивает
1737 1994553
>>1993508
Актуальна.
А чтобы структурировать - свое говно писать надо.
1738 1994555
>>1994552
Ок, понял стратегию.
1739 1994556
>>1994477
Для начала поставь таймаут больше, не знаю точно что за сообщения передаются, но вдруг они по полтора символа капают и 5 сек слишком мало

а вообще нужно бы глянуть в каком именно месте у них там ексепшон, по одном сообщении сложно что-то понять но в любом случае надо копать в сторону ексепшона и отталкиваться дальше от него, иначе это будет выглядеть как попытка поймать невидимую иголку в реке
1740 1994559
>>1994555
Самая правильная стратегия это показать исходники с кучей проектов и сказать мол "Я это сделал за термос с чаем, представьте сколько полимеров я буду клепать за печеньки к чаю"
1741 1994576
>>1994559
Причём не свои проекты.
1742 1994582
>>1994392
тупой ебанат, спок
1743 1994625
>>1994549
Потому что хуле ты еще спросишь у джуна?
Вот пришел такой хуй и говорит, я тут знацца выучил хуелогритмы, опыта тырпрайза у меня нет, проектов нет, а еще я хочу 1000 USD.
Зато есть корочка универа/каких-нибудь из миллиарда курсов-хуерсов.

Все что от тебя на собесе реально ждут -- что бы ты не был дауном и понравился, но так как это хуй прочекаешь, то и начинаются все вот эти дизасемблеры и паттерны.
1744 1994628
>>1993867
без шуток если в шараге баба преподает программирование тогда это зашкваренная шарага, у нас вообще только один предмет вела баба, и то эо была около канцелярская хуйня типа форда и ексельки, конечно есть умные бабы, но ни одна баба не будет умнее чем умный мужик
1745 1994646
>>1994625
Когда вот я джуном был и смотрел как у нас проводят собеседования не понимал, какого хрена у откровенно дебилов спрашивают вещи которые у нормальных чуваков не спрашивают вообще, вот помню пришел поц ему буквально парочку простеньких вопросов задали, он на них грамотно ответил, а потом они начали базарить по душам, чей сам, кем будешь, где живешь,как город что будет делать превратись в муху, вкусный ли чаек, и тп,

после него приходит чувак, его спрашивают ну простенькие вещи самую базу которую только дегенерат может не знать типа особенности и различия в CORE CLR и фреймворком, И КАК ТОЛЬКО ОН НАЧИНАЕТ ЕРЗАТЬ, любая не уверенность, расплывчатый ответ и сразу летят более сложные и каверзные вопросы, когда был джуном думал что так делают просто для того что бы легитимно отшить, сейчас понимаю в чем на самом деле ббыло дело
1746 1994652
>>1994628
Не неси хуйню. У нас вот сишечку вела тетка лет за 50, так по сравнению с хуями что потом нам жаву с гаражом и плюсами давали - он была на голову выше. Никакой хуйни с : потому что так принято, это хороший тон и т.д. четко и нормально могла за все пояснить. Знания - выше крыши. Заставляла дрочить в присядку на древнем железе чтобы понимали нахуя перформанс и как с памятью обращаться. Это не жавапидор, у которого все тормозит и он начинает пиздеть что просто в универе компы слабые, вот бы сервак для лаб дали, тогда... Короче, я вот не заметил чтобы наличке яиц в трусах как-то на уровне кодерских способностей сказывалось.
1747 1994653
>>1994628
ебать ты зашореный

>>1994646
Ну что-то типа, по факту нормально кандидата проверить можно только на испыталке, а все что до практически бессмысленно
1748 1994668
>>1994652
Тьюринг, Возняк, Гейтс, Линус, Кармак, и куча других легендарных программистов, а теперь назови хотя бы 3 всемирно известных программистов-женщин
1749 1994674
>>1994668
Женщины из-за стереотипов не идут в точные науки, если бы небыло гендерных стереотипов, то имён великих женщин было бы столько же, сколько и мужчин
1750 1994679
>>1994668
Ада Лавлейс
Хеди Ламарр
Мэри ли Вудс
Элен Хенкок
Марисса Майер
Адель Голдберг
Катарина Фейк

Все эти женщины вызывают чувство гордости и могут служить невероятной мотивацией для всех нас. Многие из них трудились во времена, когда программирование не терпело женщин, да и мировые взгляды на женский труд были совсем другими. И тем не менее, они добились успехом. Сейчас тысячи девушек-программистов доказывают, что это не только мужская профессия. Остается только брать их себе в пример.
1751 1994686
>>1994674
C точки зрения малолетнего долбоёба - безусловно.
1752 1994687
>>1994674
В шахматы не играют тоже потому что хуеносцы по рукам бьют?

А вообще какие нахуй стереотипы? еще 10 лет назад этот аргумент со скрипом но можно было бы назвать валидным, но сейчас с этими квотам, с рад фемом и толерастией, на западе уже давно если у тебя половина компании не с вагинами то такой компании по закону штрафы выписывают, вводят квоты на бесплатные обучения, ништяки за женщин в компаниях и сейчас их внедрили уже море но что-то они не проявляют себя, а если и проявляют то "перлами" вроде масс аффекта со всратими лицевыми анимациями, это тоже злые хуеносцы мешают?
1753 1994692
>>1994679
Очевидно лучшие представительницы своего рода, и одни из лучших представителей человечества, но не всемирно известные и даже близко не равные улучшим представителям мужчин, о чем я сказал, грамотные бабы есть но грамотный мужчина всегда будет лучше
1754 1994693
>>1994679
Первая известна только тем что отсасывала математику Бэббиджу и делала грязную работу по дому пока он теоремы доказывал, остальные вообще рандомные хуи с горы. Хотя нет, про марийку майер слышал. Она даже не программист а просто удачно затеасалась в среду основателей гугла, лотерея один на миллион. Кстати, когда она в яху сдриснула с гугла нихуя я нее не получилось вытащить контору из жопу, т.е. и как управленец она говно без задач.
1755 1994699
>>1994692
Двачую. Как ни крути а это факт, и в среднем бабы тупее мужика, и отдельные гениальные мужики выше классом на несколько порядков отдельных гениальных баб. Пиздёшь якобы их не пускали это хуета полнейшая. Среди мужиков в бедных странах тоже стояли непреодолимые социально сословные стены, тем не менее Ломносовы/Рамунджаны пробивались через них.
1756 1994703
>>1994652
Это скорее говорит о твоём низком уровне раз ты восхищаешься пенсионеркой которая даже не из индустрии. Ну тот факт что какие-то аспирантики хуже нее преподавали вообще ничего не доказывает. В мухосранских вузах это обычное явление.
1757 1994707
>>1994693
смерть козлам членоголовым! Настоящие мужчины выродились, а те, кто существует сейчас - жалкие примитивные твари с яйцами вместо мозгов.
1758 1994711
>>1994707
О, фемка порвалась
1759 1994713
>>1994711
мамкин сексист, спок
1760 1994727
>>1994713
Я не сексист, в отличие от например тех же мусульманов которые считают женщин за животных я так не думаю, и не отрицаю важной роли женщины в обществе, того что женщина может делать определённые вещи лучше мужчин, потому что существуют объективные различия, и это нужно понимать
1761 1994731
>>1994668
По данным ЮНЕСКО, из-за стереотипов и дискриминации женщин-учёных в мире почти в 3 раза меньше, чем мужчин.
1762 1994743
>>1994727
Я отрицаю. ИМХО вреда от них больше чем пользы, взять хотя бы такое распространённое явление как "наташки".
1763 1994744
>>1994731
Фемшиза, спок.
1764 1994745
>>1994743
бред. от мужчин вреда в 1000 раз больше, чем от женщин
1766 1994750
>>1994747
бесполезный спермобак, спок
1767 1994766
>>1994743
Ну этот вопрос действительно дискутабельный, например упомянутое явление действительно, но применим он не ко всем женщинам, а только к женщинам определённой национальности. В той же японии например такое явление так массово не встречается. В любом случае не хочу вступать в дискурс по этому поводу, тред не про это, да и такое мнение что вреда больше тоже имеет право быть, я же только хотел сказать что анон выше был прав когда говорил что для вышки женщина препод программирование это плохой знак, это элементарно значит что преподов они набирают по остаточному принципу и что все хорошие преподают где-то в другом месте, только это я хотел донести
image.png28 Кб, 543x349
1768 1994767
Видимо моего isq не хватит даже на установку сдк.
1769 1994769
>>1994767
диван по имени инкаминг.
1770 1994772
>>1994766
Да роль препода вообще сомнительна. Его задача грамотно пересказать учебник а большего от него и не требуется.
1771 1994788
Как лучше называть дебажные сервисы, которые реализуют интерфейс? Я видел три вида префикса: Mock, Dummy и Fake

Наверное Mock самый нейтральный вариант, подходящий для кода.
1qWk6XEoLww.jpg84 Кб, 604x484
1772 1994801
>>1994646

>что так делают просто для того что бы легитимно отшить, сейчас понимаю в чем на самом деле ббыло дело



И в чём же?
1773 1994804
Есть один базовый класс для всех классов в проекте. Я в нем переопределяю метод TоString(). Почему в классах наследниках этот метод работает по старому? Как сделать так, чтобы он переопределился для всех классов наследников?
1774 1994807
>>1994772
Нахуй такой препод нужен?
1775 1994822
>>1994767
Уверен что скачал сдк а не рантайм?
1776 1994833
>>1994822
Да пофиксил уже. Да был точно скачан сдк. Пофиксилось полным сносом дотнета и вижуал студио.
1777 1994875
>>1994674

>Женщины из-за стереотипов не идут в точные науки


То есть разницу интересов и целей мужчин и женщин ты вообще во внимание не берёшь, сис?
1778 1994888
В общем. Я замерил разницу между С++ и шарпом.
Если шарп с оптимизацией и С++ - без разница почти не ощущается. НО, ебашим сборку под конкретное железо, добавляем векторизацию и т.д. и это просто небо и земля. Один и тот же код - разница в сукорости - 12 раз. Это без всяких попыток оптимизации песочка, без хиторостей по поводу оптимизации алгоритма, всяких карт и прочего - простая хуйня: 800x800 поле, песочек падает пока не найдет под собой другой блок который твердый, потом проверяем справа-слева, если пусто - прверяем снизу и если снизу пусто - "скатываемся". 12 раз прирост перформанса просто за счет того что взяли С++ и нужные флаги компиляции поставили.
После такого - кажется что шарп - калечный.
1779 1994915
>>1994888

>12 раз


Это всего лишь на один порядок
1780 1994926
Допустим я знаю базу Шарпа. Как вкатиться в веб?
1781 1994938
>>1994926
найти работу
1782 1994940
>>1994915
Да. Но это просто выставлением флагов и выбором другого языка. При этом написание кода заняло одно и то же время. Я больше ебался с тем чтобы вспомнить как там библиотеки в С++ залинковать. Да и мой уровень плюсов несравнимо ниже шарповского, думаю чел что знает плюсы лучше и немного оптимизаторством болеет - получил бы прирост намного больший.
1783 1994947
>>1994940
В реальном мире твое байтоебство мало кому нужно.
1784 1994956
>>1994938
Это конечно отлично совет, но куда меня возьмут с дефолтным знанием шарпа, когда мой максимум вывести в консоль список? В плане, я не работал ни с одним фреймворком.
1785 1995020
>>1994956
никуда. это может любой школьник который интересуется программированием. Тебе нужен очень мощное алгоритмическое мышление, чтобы уметь создавать эффективные алгоритмы для задач. С этим навыком ты будешь очень востребован, и будешь получать в хорошие зарплаты
1786 1995023
>>1994767

>Users\Albert


Энштейн, ты?!
1787 1995026
>>1995020
Изначальный вопрос был как вкатиться в веб, поэтому я и не понял к чему мне про работу написали, учитывая что я только недавно разобрался в шарпе и ооп.
1788 1995114
Допустим есть два веб-приложения на неткоре. Они имет разный апи. Вот. Они выполняют довольно затратные по ресурсам и времени выполнения штуки. Выполнение этих штук хочется автоматизировать, допустим, пусть они выполняются в 2 часа ночи воскресенья, когда нет особо пользователей которые другими штуками этих приложений пользуются.
Ну так вот. Мое решение - сделать третье приложение, которое должно как-то узнать об апи этих приложений, сохранить пути и параметры что нужно передать и в зависимости от настройки - будет слать запрос на старт задачи.
Насколько это хуевое решение для такой задачи? Просто сейчас настройка переодичности выполнения всяких штук у этих приложений отдельная, ну, соответственно админ должен и там и тут настроить. Хочется дать админу возможность настроить это все в одном месте, допустим, одно приложение должно периодически удалять старые данные, другое - должно разослать уведомление о том что срок подписки заканчивается. Хотим делать это первого числа в час ночи. Логично же вроде получается: вот отдельное приложение-планировщик.
Проблема возникает если задуматься о том что может появиться еще несколько таких вот приложений. Каждый раз лезть в исходники чтобы добавить возможности которые есть у приложения в этот вот планировщик задач - ну такое. Возникает мысль о том, чтобы уже приложения - представились в этом, сохранился в базе апи, но тут непонятно что делать если тип составной какой-то. Можно конечно договориться о ДТО заранее, чтобы апи не был слишком сложным, но тут же хуй знает как дальше будет.
В общем. Я же не думаю, что только у меня возникали такие вот проблемы. Какие есть бест практис на этот счет и вообще, может быть я тут велосипед придумываю, а есть какое-то стандартное решение для того чтобы дать пользователю с правами возможность создания каких-то переодических заданий для микросервисов.
1789 1995150
>>1994365
ну у тебя и проблемы конечно. Гугли ошибку, находи решение. Скорее всего обосрался с объявлениями типов
1790 1995167
>>1995114

>Ну так вот. Мое решение - сделать третье приложение, которое должно как-то узнать об апи этих приложений, сохранить пути и параметры что нужно передать и в зависимости от настройки - будет слать запрос на старт задачи.



Видел что-то подобное в проде, работает.
В целом, если есть что-то типа нугета/dll/еще чо-то, где будут лежать контракты и проч, то и затаскивать новое не так геморно.
А вообще я бы не ебался и ради двух хуевин хоть все захрадкодил, ибо с нихуевым шансом этих хуевин так и останется две
1791 1995325
>>1995114
https://www.hangfire.io/ как планировщик задач. Делаешь задачу, он её сохраняет в свою БД и потом выполняет по заданному расписанию.

gRPC с его прото контрактами могут помочь избежать внезапного изменения АПИ. Контракты пихаются в отдельный репо и реферянсятся поставщиком АПИ и его потребителями.

Можно просто DTO в отдельный репо запихать, если с gRPC возиться не хочется.
1792 1995326
>>1994270
А чтобы просто в виде пикселей её вывести, в консоли, не?
1793 1995332
>>1994699
Без шуток: надо учить историю чтобы избегать таких вот мыслей. Они не только токсичны, но и опасны для общества в целом.
Ксенофобия в любом виде - зло.
1794 1995401
>>1995326
https://en.wikipedia.org/wiki/Libcaca
https://en.wikipedia.org/wiki/AAlib
Ищи биндинги или делай сам вот под это.
1795 1995477
>>1995401
Бля, хотел каптчу в консоли вывести, лан пох.
1796 1995478
>>1995332
Нет, тупая ты пизда, надо хоть раз включить свой высохший от чтения нихель пихель мозг и понять простую вещь: у мужчин и женщин изначальные разные интересы и целеполагание. Гениальных женщин и правда не меньше, чем гениальных мужчин, только их гениальность в другое русло направлена: как пизду теплее пристроить, как зачать от одного, а доить другого, как на работе всеми манипулировать и т.д.
1797 1995491
>>1995150
При каких объявлениях типов? Мне четко по белым по черному пишут,

компилятор : "модель может иметь только один персистент кей"
коддер : А ЕСЛИ МНЕ НУЖНО ДВА?
компилятор : ой все

охуеть права? пиздец полезный этот код фирст, говно полное, или например внешние ключи, в скл это все просто делается, зашел в таблицу, покликал туда-сюда, даже первоклашка справиться, в код фирст это все через жопу делается особенно если задача хоть чуточку не тривиальная как например внешний ключ к индексированному представлению
1798 1995493
>>1994807
Других преподов у меня для вас нет.
1799 1995617
Бля, не заходил сюда два дня
А тут уже развели какой-то мутный спор про место женщин в программирвоании
Совсем делать нехуй?
1800 1995619
>>1995617
это обиженки сексисты чушки безмозглые, не обращай на них внимания
1801 1995667
>>1995619
Двачую эту естественную нейросеть в мозгу самки примата вида хомо сапиенс. У Разума нет пола. Разум или есть (и он зарабатывает кодингом) или его нет, и неразумный хомосапиенс зарабатывает пиздой, хуем, жопой, ртом или руками-ногами.
1802 1995670
>>1995667
Как бы да, как нейросеть натренировать так она и будет работать, но это не значит что нейронка будет одинаково хорошо работать в серверах гугл и на ноутбуке студента, устройство на котором работает нейронка влияет на ее работу, с этим никто не спорит, никто в здравом смысле не станет спорить и стем что мыслительные процессы женщины несколько отличаются от мужских в силу объективных особенностей не только воспитания но и физиологии мозга и организма в целом.
1803 1995682
>>1995670
Тем ценнее нейронки женщин - им приходится на более нестабильном "железе" работать.
Люблю их за это
image.png49 Кб, 1459x660
1804 1995684
У кого так же? Почему после выполнения промежуточной цели падает мотивация и не хочется делать ничего дальше, наоборот же должно быть не? при чем чем ближе проект к завершению тем сильнее колбасит, в какой-то момент уже совсем плевать потому что ну и так же уже почти работает, все ок, а потом охватывает паника что столько труда может пойти по пизде и как сумасшедший пишешь код 24 часа в сутки, и так уже не первый проект, анон у тебя такое бывает? как ты с этим справляешься?\
20210414135516.jpg1 Кб, 146x43
1805 1995692
Wpf, я увеличил высоту тайтла окна. Можно ли увеличить в соответствии с высотой тайтла дефолтные кнопки свернуть/растянуть/закрыть?
image.png2 Кб, 359x41
1806 1995694
>>1995692
Goole с армией хипстеров не смог думаешь ты сможешь?
1807 1995698
>>1995694
А ты умеешь мотивировать!
1808 1995824
Как преобразовать c# decimal к джаваскриптовому number? вроде бы тривиальная задача должна быть но я никаких тривиальных ответов не нашел, только еботня с регексем
1809 1995956
>>1995478
Из рашки тоже надо периодически выехжать, и не во всякие турции, чтобы не нести ватнический бред.
1810 1996033
Ребяты, есть у меня Модель Group, в этой модели есть поля типа Geo - это enym. По MVC куда мне этот enym засунуть? Оставить в файле модели либо создать другой файл в который и запихивать такие типы?
1811 1996125
>>1995692
Конечно можно. Берешь хендлер окна и вилкой в ансейф полез.
1812 1996141
>>1996033
Куда хош. MVC говорит тебе как сущности должны между собой общаться ничего более.

А насчет enym - не нужон. Расширать - неудобно, если логика появится - придется ебстись. Делай сразу класс и забудь про эту хуйню. Константы выноси в отдельный статический класс. Если нужно проходиться по константам - сделай коллекцию вместо enym. Логика все равно в определенный момент появится, как бы ты не надеялся, что вот ну это же так удобно enym'ом делать, всегда выходит так, что приходится добавить логику. И чтобы у тебя она не была размазана по всему приложениею с миллионом свичей, хучией ифов-хуифов - делй сразу, блядь, класс. Спасибо скажешь потом.
1813 1996175
>>1996141
Я просто хз как ваще правильно сделать.
У меня есть поле которое должно хранить настройку.
Ну собственно 1 или 2 или 3.
Подумал что enym подойдет, хотя подойдет и просто byte но я хочу правильно сделать, проект в гит добавлю и буду показывать в резюме, и вот хочется что бы не сильно ахуевали с этого говнокода.
Вообще просто byte и число мне бы больше подошло так как ебни меньше. Отдельный класс создавать на каждый пункт а потом просто присвоить полю обьект и потом в логике смотреть обьект какова класса лежит?

Типо

public class Setting
{

}

public class Setting1: Setting
{

}

public class Setting2: Setting
{

}

public class Setting3: Setting
{

}

pubblic class Host
{
public Setting s1_OR_s2_OR_s3;
}

И потом когда контролер будет обрабатывать объект просто смотреть проверять какому из классов принадлежит s1_OR_s2_OR_s3 ?

Вроде норм но пздц как тупо, хз пытаюсь сделать просто по уму так сказать.
1813 1996175
>>1996141
Я просто хз как ваще правильно сделать.
У меня есть поле которое должно хранить настройку.
Ну собственно 1 или 2 или 3.
Подумал что enym подойдет, хотя подойдет и просто byte но я хочу правильно сделать, проект в гит добавлю и буду показывать в резюме, и вот хочется что бы не сильно ахуевали с этого говнокода.
Вообще просто byte и число мне бы больше подошло так как ебни меньше. Отдельный класс создавать на каждый пункт а потом просто присвоить полю обьект и потом в логике смотреть обьект какова класса лежит?

Типо

public class Setting
{

}

public class Setting1: Setting
{

}

public class Setting2: Setting
{

}

public class Setting3: Setting
{

}

pubblic class Host
{
public Setting s1_OR_s2_OR_s3;
}

И потом когда контролер будет обрабатывать объект просто смотреть проверять какому из классов принадлежит s1_OR_s2_OR_s3 ?

Вроде норм но пздц как тупо, хз пытаюсь сделать просто по уму так сказать.
1814 1996260
>>1995824
В плане? JS твои данные в json формате обычно получает. Это уже автоматом за тебя происходит всякими сериализаторами. Если вопрос в том, сколько знаков после запятой хранить, то гугли именно это. Например https://stackoverflow.com/questions/12283070/serializing-a-decimal-to-json-how-to-round-off
1815 1996265
>>1996141
Это чистой воды субъектевизм. Если вы, батенька, не научились нормально работать с перечислениями (enum), то не думайте что у всех также.
1816 1996287
>>1995491

>персистент кей


иди про ключи сначала почитай и какие они бывают, потом вайни
1817 1996364
>>1996265
Я научился. Не используй их и будет все заебись.
Тут дело в чем. Ты не можешь предсказать, что должно быть перечислением, а что - нет и в отличии от джавы ты не сможешь удобно добавить логику в перечисление. Нет - ты либо будешь вынужден выкорчевывать их, либо хуячить экстеншин методы, а это самой концепции перечислений в шарпе противоречит.
Ну серьезно. Вот банально в майки и ко - захардкодили протокол сервера перечислением. Я хочу кестрел использовать не как веб сервер, а чтобы, допустим DLMS/COSEM, вот, блин, вся инфраструктура под боком, просто сделай новый протокол, укажи серверу что нужно не HTTP использовать, а DLMS/COSEM, а вот хуй тебе за щеку, жди бедрока в .net6, либо делай финты ушами, потому что на базовом уровне хуйнули перечислением протокол, ведь, блядь, никому код не понадобится, никто не захочет его расширить, да, блядь, так ООП и работает же, охуенно, нахуй. И ты вынужден форкать кестрел и выкорчевывать из него это говно. А как бы было охуенно как в жаве с ее Netty - просто добавил что надо и пользуйся, охуенно, блядь. Нет, у нас свой путь.

Перечисления хорошо, когда нужно что-то ну совсем маленькое и внутренние делать. Во внутреннем - хуй с ним, иногда действительно удобно что IDE тебе варианты предлагает и можно сгенерировать код на его основе, но если эта срань попадает в публичный апи, еще и не какой-то совсем стандартизованный, типа ошибок сокетов - это не должно попадать в основную ветку.
1818 1996388
>>1996175
Ну, что такое правильно? С точки зрения обычной практики - настройку бы нужно в отельную сущность в БД вынести.
Что-то типа:
public class Setting
{
public int Id {get;set;}
public string Name {get;set;}
public string Description{get;set;}
...
}

public class Host
{
public int Id{get;set;}
public int SettingId{get;set;}
public Setting Setting{get;set;}
...
}

Таким вот макаром - ты можешь доп информацию хранить это раз. В случае добавления новых настроек - ты просто в одном месте(при засеивании базы/при создании модели) добавишь и если делал по уму - тебе просто нужно будет добавить новую логику, не трогая страй код. Это два. Если ты удалишь настройку, переименуешь ее и т.д. - ничего не изменится в коде программы, ты просто будешь проверять - наличие настройки и если ее нет - ты просто никогда не выполнишь код который должен был обрабатывать логику что была там. Ну и главное, если ты не хочешь лезть каждый раз в базу - ты можешь это дело просто закешировать и все будет так же работать, но при этом у тебя не будет enum'а, который накладывает дополнительные проблемы с будущим расширением кода.

В контроллере - по хорошему, ты вообще не должен был бы делать логики какой-то особой - нужно передать полученный объект сервису, который знает как обработать запрос. Типичная картина: инжектишь сервисы в конструкторе, при получении запроса - просто передаешь им в них уже логика какая-то происходит, контроллер просто служит точкой входа. Можно делать не так а использовать паттерн команда и получая запрос - создавать команду ее отдавать обработчику команды и по завершению - возвращать результат. Тут как тебе больше нравится.

Да, это если говорить о том как принято. С точки зрения личного использования - делай как кайф. Если ты на джуна претендуешь - от тебя ждут что ты не совсем распиздяем выглядишь и будешь делать что тебе говорят.
image.png19 Кб, 382x184
1819 1996418
>>1996388
Ну вот не много ли будет класса для простой настройки?
Там же ничего не будет.
В логике придется чекать Name но я точно так же могу сделать стринговое поле Setting в основном классе и проверять его.
1820 1996428
>>1996418

> С точки зрения личного использования - делай как кайф.



Я просто пояснил как оно делается уже в реальных условиях. Сегодня ты посчитал что обойдешься перечислением, завтра что нет смысла разбивать простню на методы, послезавтра - что проще копипастнуть код из одного места в другое. А через месяц ты не можешь понять что где и как добавить чекбокс чтобы все не сломалось к хуям.
Ко всему, подумай о том, как ты будешь тестировать этот кода .
image.png245 Кб, 400x341
1821 1996436
>>1996428
Тестировать????
Я пока об этом не думал)))
Думал о том что бы просто удобнее было)
image.png25 Кб, 892x348
1822 1996560
Вопрос по WPF про ComboBox - почему при первом нажатии по комбобоксу он как бы подвисает?

Заполняю его вот так как на пикче. Всегда на первом клике по нему зависает на примерно 2 секунды. А дальше все нормально работает.

Как будто ощущение что оно в момент первого клика загружает данные из массива nameStreets... Но это же хуйня, разве Loaded не должен срабатываеть во время InitializeComponent()?

И как исправить? Проблема 100% на любом коде где есть большие комбобоксы (больше 100 штук)
1823 1996600
>>1996428
Нахуй иди со своими быдлотестами, говнокодер ёбаный.
1824 1996651
>>1996260
Не работает твой джосн на коре

Что это за хуйня ?
1825 1996653
>>1996287
По факту что то можешь ответить в защиту говенного кодфирста или просто пукнешь в лужу?
1827 1997063
>>1997053
>>1996560
Еще добавлю что проблема может быть не в самом ComboBox, а в Popup который встроен в него. Я наблюдал такие подвисания на первый клик когда вызывал обычный Popup с небольшим контентом.
1828 1997340
Чем шарп лучше жабы (помимо более приятного синтаксиса)?
1829 1997379
>>1996653
в диалоге со мной ты уже столько раз напукал по себя, что уже не лужа, а маленькое озеро. Зачем ты пытаешься спорить, если ты азов не понимаешь - где и как и главное какие вешать ключи, чтобы были связи? Нормально бы отвечал, без выебосов, уже бы скинул ответ, а так, сиди дальше в говне
1830 1997493
>>1997340
Ничем. Во многих вещах - хуже.
1831 1997523
>>1997493
пук-среньк
1832 1997694
>>1997379
Какие связи? я тебе ясно сказал хочу сделать два индексируемых ключа как в sql, в code-first ключ добавляется атрибутом [key] но когда я добавляю атрибут ДВУМ переменным я получаю ошибку компилляцию потому-то эта херота пишет что может быть только 1 индексируемый ключ, а ты вместо написать что-то по факту просто слился, хочешь что-то пизденькнуть тогда дай мне пример нескольких индексируемых ключей в кодфирст! Не можешь? Так и пиздуй нахуй тогда обосрамус
1833 1997810
>>1997493
Перечисли эти вещи, плиз. Не ради траленга интересуюсь
1834 1997822
>>1997810
Да ничем, это говно не может даже в многопоточность, о чем тут говорить вообще
20210416152656.jpg5 Кб, 316x308
1835 1998072
WPF <Button><Image>, как пофиксить этот ебанутый дефолтный паддинг изподкоробки и начать жить растянуть image на всю кнопку? Vertical/horizontal/content alignment=Stretch не помогает. Бэкграунд не предлагать.
1836 1998079
>>1998072
Сделай текстурой
1837 1998101
>>1997822
Так ведь оба эти говна умеют в многопоточность
image.png12 Кб, 677x92
1838 1998133
>>1998101
ты даун?
1839 1998187
>>1998079
Это как?
1840 1998222
>>1998133
Сука, ты больной? Жопаскрип здесь каким боком?
1841 1998281
>>1997810
1. Оно еще проще чем шарп в плане синтаксиса. Да - многословно выходит, но в отличии от кучи других языков тебе просто сам язык не позволит совсем нечитаемую хуету сделать. В шарпе с его стремлением быть модным-молодежным сейчас в этом плане довольно невесело и приходится дрочить кодстайлы, потому что дай свободу кодерам - все в пиздец превратится и хуй потом кто разберет.
2. Огромная. Нет, блядь, ОГРОМНАЯ кодовая база на все случаи жизни. Всё, блин, есть и после того как ты посидел годик на джаве, когда ты в шарпе пытаешься что-то найти - ты будто из огромного торгового центра в сельпо попал - бери что есть и если надо допиливай, готовых решений крайне мало, по сравнению с джавой еще и зачастую те что годные - по закрытой лицензии и с прайсом от 1к бачей, не так много, но ты же даже еще не уверен что будешь использовать в проде.
3. Тупо работы больше.

Это самое основное. В мелочах - более логичная структура всего, плюс это все еще единственная хуета где ты просто пилишь кода и он везде где есть JVM запускается без всяких НО, в отличии от шарпов, где: Ну, это у нас кроссплатформенно, а это не, а вот это будет если там вот покрутить; ну или уж по хардкору - С++, где чтобы добиться кроссплатформенности - ты такие финты с кодом делаешь, что его лучше больше никогда не трогать.
1842 1998300
>>1998281
Спасибо за такой подробный ответ, анон. Добра тебе!
1843 1998492
Можете пояснить за утечки памяти при привязках к вьюмоделям которые не реализует INotifyPropertyChnaged в WPF
Я нашел про это тут
https://blog.jetbrains.com/dotnet/2014/09/04/fighting-common-wpf-memory-leaks-with-dotmemory/

Но так как статья за 2014
Пошарил в других местах и нашел, что все это старая инфа и сейчас привязка создает слабую сслыку, которую со временем гарбеджколлектор сам и освободит и можно уже не парится по этому поводу

Решил попробовать проверить это сам на практике
Такой сетап
Есть главное окно через которое вызывается новое окно и в этом новом окне идет привязка текстблока к свойству объекта класс которого не реализует INotifyPropertyChnaged
Что я получаю
Первый раз открыл-закрыл дочернее окно объект к которому идет привязка не освобождается
Повторяю второй раз то же самое делаю, освобождается объект Item только тот который был создан в прошлый раз
И т. д.
То есть освобождение происходит но с лагом на одно закрытие

Когда реализую INotifyPropertyChnaged освобождается объект, но надо подождать секунд 20
Код на скринах
1844 1998546
>>1997694

> два индексируемых ключа


>индексируемых


>ключа


Вы блять только посмотрите на это уебище. Вы только блять посмотрите, какой мусор тут сидит и вайнит на инструмент создания таблиц в Sql. Этот биомусор, даже не умеет в гугл, чтобы правильно сформулировать свою проблему. 3 раза этому чучелу пишу, "гугли блять, чмошник". И все, что я получаю в ответ, это

>по факту просто слился


>Так и пиздуй нахуй тогда обосрамус


пиздец парень, лучше бы твой отец кончил на простыню. Даже не вижу дальше смысла тебе что то отвечать, можешь кукарекать что хочешь
image.png45 Кб, 150x249
1845 1999591
Сап сишарпач, подскажу почти полному нубасу. Хочу вкатиться в кровавый энтерпрайз после многих лет фронтенда и ноды жаваскрипт не язык, дно.жс не платформа, гоните его, насмехайтесь над ним. В основном потому что устал пить смузи и бесконечно бежать за несущимся под откос локомотивом жаваскрипта, каждый день боротся не с задачами бизнеса, а с тулзами и фреймворками как таковыми. Кароч хочу стабильной платформы, на которой смогу работать до пенсии без особой борьбы с инструментом. Есть соответственно два стула, C# и Java работаю гребцом на галере, есть возможность выбирать. Пока попробовал по неделе примерно закодать простой REST API на каждом языке... и нихуя не смог определиться с выбором. Но разобраться хотел бы в такой вещи. Я сижу под macOS почти всю свою профессиональную жизнь, иногда разбавляю всё это Linux'ом. Java под маком/линуксом работает без проблем и все тулзы на месте. C# с .Net Core тоже завёлся без проблем и в целом тулзы также есть чому Rider сука такой дорогой?. Собственно вопрос, вот прийду я на проект, а вся команда сидит на винде и кодает в Visual Studio 2019 Enterprise Edition. А я тут со своим маком и райдером. Будет ли мне норм? Или там не хватит каких-то фич? Хз, может дебаггер какой-то палёный в райдере или будет вечное проблема коммуникации на тему настройки проекта? Видел что в студии много чего настраивается через всякий UI вместо ковыряния конфигов. В целом винда нужна чтобы преуспеть в C#/.Net? Или можно не разу к винде не притронуться верстая круды на дотнете уже?

Ну и доп вопрос вдогонку. В перспективе к основному языку платформы хочу ещё изучить функциональный язык когда-нибудь. Собственно на JVM это Scala или Clojure, а на .Net это F#. Со скалой в целом всё неоднозначно, язык как будто и умирает, но при этом экосистема там охуеть огромная и какая-то жизнь таки теплится. Плюс всякий бигдата завязан на Spark и всё такое. Кложа ощущается также, но тоже что-то происходит. А вот с F# чёт пока не могу оценить. Есть какие-то мифические финтех конторы которые платят больше всех по рынку, есть какие-то проекты но всё очень непопулярное и недоделанное. Кто-то вообще пилит на F#?

Уже месяц ломаю голову куда вкатываться. Помоги мудрыми советами, двач или накидай хуёв. Заряжаю пост на высокие рейты и безбедную жизнь.
image.png45 Кб, 150x249
1845 1999591
Сап сишарпач, подскажу почти полному нубасу. Хочу вкатиться в кровавый энтерпрайз после многих лет фронтенда и ноды жаваскрипт не язык, дно.жс не платформа, гоните его, насмехайтесь над ним. В основном потому что устал пить смузи и бесконечно бежать за несущимся под откос локомотивом жаваскрипта, каждый день боротся не с задачами бизнеса, а с тулзами и фреймворками как таковыми. Кароч хочу стабильной платформы, на которой смогу работать до пенсии без особой борьбы с инструментом. Есть соответственно два стула, C# и Java работаю гребцом на галере, есть возможность выбирать. Пока попробовал по неделе примерно закодать простой REST API на каждом языке... и нихуя не смог определиться с выбором. Но разобраться хотел бы в такой вещи. Я сижу под macOS почти всю свою профессиональную жизнь, иногда разбавляю всё это Linux'ом. Java под маком/линуксом работает без проблем и все тулзы на месте. C# с .Net Core тоже завёлся без проблем и в целом тулзы также есть чому Rider сука такой дорогой?. Собственно вопрос, вот прийду я на проект, а вся команда сидит на винде и кодает в Visual Studio 2019 Enterprise Edition. А я тут со своим маком и райдером. Будет ли мне норм? Или там не хватит каких-то фич? Хз, может дебаггер какой-то палёный в райдере или будет вечное проблема коммуникации на тему настройки проекта? Видел что в студии много чего настраивается через всякий UI вместо ковыряния конфигов. В целом винда нужна чтобы преуспеть в C#/.Net? Или можно не разу к винде не притронуться верстая круды на дотнете уже?

Ну и доп вопрос вдогонку. В перспективе к основному языку платформы хочу ещё изучить функциональный язык когда-нибудь. Собственно на JVM это Scala или Clojure, а на .Net это F#. Со скалой в целом всё неоднозначно, язык как будто и умирает, но при этом экосистема там охуеть огромная и какая-то жизнь таки теплится. Плюс всякий бигдата завязан на Spark и всё такое. Кложа ощущается также, но тоже что-то происходит. А вот с F# чёт пока не могу оценить. Есть какие-то мифические финтех конторы которые платят больше всех по рынку, есть какие-то проекты но всё очень непопулярное и недоделанное. Кто-то вообще пилит на F#?

Уже месяц ломаю голову куда вкатываться. Помоги мудрыми советами, двач или накидай хуёв. Заряжаю пост на высокие рейты и безбедную жизнь.
1846 1999592
>>1999591

> подскажу



подскажи

Быстрофикс
1847 1999692
>>1999591
В чём проблема фронденда ? Работы намного больше, в C# и Java ? Сам овладел основами C#, C++, но понял, что здесь нечего ловить, особенно в моей 140к человек мухосрани, нужно во фронт енд вкатыватся
1848 1999693
>>1999692

>Работы намного больше, в C# и Java ?


Работы и рабочих предложений намного больше, чем в C# и Java. ? Быстрофикс
1849 1999695
>>1999693
Ебал я в рот этот знак вопроса, ставится автоматом
1850 1999697
>>1999591
Не лучше ли боротся с инструментами, но владеть востребованными навыками, чем потом выучить C# или Java, и сидеть сложа руки, потомучто вакансий в разы меньше, чем на фронт енд. В моей мухосрани 140к населения, никому здесь C# и Java не всрался, несколько веб студий есть
1851 1999991
Насколько вообще в наше время востребована десктоп разработка? А то я на работе занимаюсь исключительно еблей с впф, да и то это состоит большей частью в переработке индусского кода, который я нахожу на стаковерфлоу, с нуля я крутую фичу на впф не запилил бы. Просто думаю, что рано или поздно придётся менять работу, ибо платят мало, но возьмут ли меня куда. Может стоит начать учить что-то другое как запасной вариант, но что?
1852 2000098
>>1999991
Десктоп разработка совсем не востребована по сравнению с вебом.
1853 2000143
>>2000098
Что нужно знать для веба?
1855 2000308
>>1999591

> А я тут со своим маком и райдером. Будет ли мне норм?


Если тебе в райдере норм - то будет норм. Тем более что решарпер тот же почти у всех стоит.
Сейчас майки вроде как нашли золотую середину с конфигом проектов(*.csproj) а потому разницы особой нет где настраивать прокет. Просто в студии - есть окошки, но, внезапно, в этих окошках не все опции можно настроить и все равно полезешь в конфиг.
Короче, по этому вопросу. Тут, если райдер куплен и контора не какая-то дюже секретная(в контексте что я вот работал на объекте, где нельзя было свой ноутбук и телефон проносить) - все должно быть нормально. Сиди на маке и пили как кайф.

> Или там не хватит каких-то фич?


Учитывая что студия последние n-лет пиздит фичи из решарпера и райдера, я бы сказал наоборот. Мне вот райдер не нравится исключительно из-за того как у него автокомплит работает и его дефолтный кодстайл.

> Хз, может дебаггер какой-то палёный в райдере или будет вечное проблема коммуникации на тему настройки проекта?


Не будет, если ты понимаешь как сам проект настраивать ручками.

> В целом винда нужна чтобы преуспеть в C#/.Net?


Если не под десктоп - нет. Я вот дома на линуксе сижу и вообще в VS-code хуячу.

> Кто-то вообще пилит на F#?


Именно как разрабы основным языком - нет. По крайней мере я не слышал. Однако для всякой мелкой фигни он нормально себя показывает. Да и когда самому нужно что-то быстро сделать. Ну и это таки полигон для майков - они там опробуют фичи всякие, потом те что удачные уже в C# тянут.
А вообще, >>1999697 анон прав. Лучше смотри какие вакансии вокруг и куда тебе интереснее был бы попасть. В моем вот регионе внезапно шарп много где используют, потому что местный вуз с начала нулевых на него дрочит и соответственно было 3 стула шарап-пхп-1с для человека, что не хочет возиться с фронтом, но и не оч хочет удаленки. У тебя может быть ситуация, где ты с шарпом - хуй найдешь работу, а жавы - завались.
1856 2000602
Как сделать калькулятор на сисярпе, с учётом приоритета и скобок?
1857 2000858
>>2000602
Точно так же, как в дельфи.
image.png24 Кб, 977x223
1858 2000971
Анон, как сделать такое же на WPF?

Тут короче таблица, из 5 строк. Каждая строка из разных полей заполненных из базы.

Хочу такое сделать на wpf (скрин с аксеса) через тот же datagrid. Но сам слабоват и не знаю куда копать
1859 2000982
>>2000971
Погугли кастомные датагрид контролы в devexpress/telerik (вроде), я когда-то видел похожее, правда не помню название самого контрола.
1860 2000988
>>2000982
они платные вроде :(
1861 2001227
>>2000971
Я бы просто дефолтный ItemsControl набил бы своими контролами
1862 2001371
Аноны кто работал с .net core localizer отзовитесь,

проблема:
при изменении значений в файле ресурса не обновляются данные ТОЛЬКОпри локальном дебаге все работает и обновляется на паблише

дано :
проблема присутствует так же и на других серверах поэтому кеширование почти исключено
вместо актуальных данных в ресурсах показываются более старые которые когда-то были в файле но били заменены
проверка содержимого файлов ресурса показало что там находятся НВОЫЕ ОБНОВЛЕННЫЕ данные не смотря на то на странице все равно отображаются не корректные устаревшие данные
поиск по совпадениям не показало ни одного совпадения где находятся эти призрачные данные которые отображает страница я хз

что я пробовал:
ctrl + f5
удалить существующий билд и опубликовать на чисто
создать новый файл ресурса,
танцевать с бубном
xчистить мусор сутдии
перезапускать иис

честно сказать я в ахуе от этой ситуации
1863 2001376
>>2001371
на паблише остаются старые данные
1864 2001415
>>2000988
Ну так спизди! Ты что не русский? На рутрекер марш.
1865 2001541
Тимуру Шемсединову, который гуру JS, приходят офферы с зарплатой 20 к зеленых.
Возможно ли такое для .net разраба?
1866 2001653
>>2001541
К нему приходят клиенты-гей ради секс услуг разве что с такими деньгами.
1867 2001752
>>2000602
А в чем сложность? Алгоритм - эелментарный, гуглится за 2 секунды.
Если ты про интерфейс - форму накидал и вперед.
1868 2001852
Хелп ми. Please, anons, please. Как в студии на форме в текст-боксе убрать "мигание" текста при выделении многократном?
1869 2001868
>>1996651
Ты добавил Ignore к Mvc пайплайну, а сериализуешь руками. При ручной сериализации надо отдельно настройки прописывать.

И вообще, в коре давно свой собственный System.Json есть.
1870 2001891
Привет, двач

Почему в данном коде используется BaseList, а не IBaseCollection в "void AddRange", ведь в аргументах стоит "this IBaseCollection collection_name"? BaseList же всего-лишь наследник IBaseCollection

Сорян что так по дебильному копирую код, я делаю по видео, а там весь код очень длинный

public class BaseList : IBaseCollection
{
private object[] items;
private int count = 0;
public BaseList(int initialCapacity)
{
items = new object[initialCapacity];
}
public void Add(object obj)
{
item[count] = obj;
count++;
}

public void Add(object obj)
{
item[count] = null;
count--;
}
}

public static class BaseCollectionExtension
{
public static void AddRange(this IBaseCollection collection_name, IEnumerable<object>objects) // IEnumerable нужен для foreach по инстанциям, может быть передана любая коллекция. collection_name от BaseList
{
foreach(var item in objects)
{
collection_name.Add(item);
}

}
}
//Теперь AddRange доступен через объекты класса IBaseCollection:
......
//потом метод
Main(){

IBaseCollection collection = new BaseList(4); //BaseList - класс, наследованный от IBaseCollection
List<object> list = new List<object>() {1, 2, 3};
collection.AddRange(list);
collection.Add(1); //Метод в BaseList

}
1870 2001891
Привет, двач

Почему в данном коде используется BaseList, а не IBaseCollection в "void AddRange", ведь в аргументах стоит "this IBaseCollection collection_name"? BaseList же всего-лишь наследник IBaseCollection

Сорян что так по дебильному копирую код, я делаю по видео, а там весь код очень длинный

public class BaseList : IBaseCollection
{
private object[] items;
private int count = 0;
public BaseList(int initialCapacity)
{
items = new object[initialCapacity];
}
public void Add(object obj)
{
item[count] = obj;
count++;
}

public void Add(object obj)
{
item[count] = null;
count--;
}
}

public static class BaseCollectionExtension
{
public static void AddRange(this IBaseCollection collection_name, IEnumerable<object>objects) // IEnumerable нужен для foreach по инстанциям, может быть передана любая коллекция. collection_name от BaseList
{
foreach(var item in objects)
{
collection_name.Add(item);
}

}
}
//Теперь AddRange доступен через объекты класса IBaseCollection:
......
//потом метод
Main(){

IBaseCollection collection = new BaseList(4); //BaseList - класс, наследованный от IBaseCollection
List<object> list = new List<object>() {1, 2, 3};
collection.AddRange(list);
collection.Add(1); //Метод в BaseList

}
1871 2001892
>>2001891
Я надеюсь, что профи поймут, что я имею ввиду, я чайник всего лишь
1872 2001893
>>2001891
>>2001892
Интерфейс не скопировался

public interface IBaseCollection
{
void Add(object obj);
void Remove(object obj);
}
1873 2002010
>>2001892
>>2001893
слишком мало кода, нипанятно. namespace забыл скопировать. Еще можешь либу какую ни будь закопипастить
1874 2002114
>>1999591

> Видел что в студии много чего настраивается через всякий UI вместо ковыряния конфигов. В целом винда нужна чтобы преуспеть в C#/.Net? Или можно не разу к винде не притронуться верстая круды на дотнете уже?


Зависит от проекта сильно. В одном месте шлепают легаси на wpf с нет фреймвороком, в другом пилят круды на неткоре. У меня, к примеру, все завязано на повершел скриптах которые поднимают ажур сервисы, которые только под виндой работают. И как бы я не ненавидил студию, она нужна из-за мсскл и сервис фабрика как и винда, которую тоже не очень люблю.

> А вот с F# чёт пока не могу оценить. Есть какие-то мифические финтех конторы которые платят больше всех по рынку, есть какие-то проекты но всё очень непопулярное и недоделанное. Кто-то вообще пилит на F#?


Писал на хаскеле, на работе есть пара сервисов на фшарпе. Кароче фшарп выглядит как другой синтаксис для шарпа, более подходящий для ФП, но не как отдельный язык. Никаких тебе монад, тайпкласов, кажется что после шарпа 10го или 11го в нем вообще никаких фич своих не останется.
И если ты хочешь выучить именно тру фп, то лучше учи скалу/хаскель.

Кароче выбор у тебя такой: всратая джава, к которой есть невсратая скала, нормальная кросплатформенность, и охуенная экосистема, или невсратый шарп, к которому нихуя кроме самого шарпа не идет.
1875 2002247
>>2002010
Двачую. Я не устал скроллить эту портянку, готов проскроллить ещё страниц 100.
1876 2002380
Создал решение с проектом, залил на гитхаб через VS. Потом добавил ещё один проект (с тестами), а он не никак не отмечается и не заливается соответственно. При этом на гитхабе при входе в репозиторий сразу показываются файлы первого проекта. Можно ли как-то пофиксить, и чтобы коммиты не проебать? Ну чтобы когда заходишь в репу, там сначала папочки были проектов. Ещё возможно где насрал, это что у решения и первого проекта одно название.
1877 2002680
Суть.
Есть пока что три типа обработчиков в приложении(возможно в процессе появятся новые). Работают периодически. Пользователь должен иметь возможность создать свой обработчик с нужными ему параметрами из типа что есть, ну и хуйнуть работу, может вырубить.
Так вот, в чем вопрос. Стоит ли эти типы обработчиков в базе хранить? Тип я понимаю, что стоит. Просто меня очень бесит вся эта хурма с тем, что вот у нас обработчик из БД, потом мы эту хурму приводим к обработчику из приложения. А как делать иначе - я не представляю. Разве что объединить их в одну сущность, но это уже вроде нехорошая практика и вообще, но блин.
Просто меня уже бесит: Models.Db.Handler; Dto.Handler, Core.IHandler<Type>, как это делать с одной стороны красиво и чтобы не выходило что 100500 файлов, а с другой чтобы не смешивать логику - я не представляю. Мой код из-за этого на 50% состоит из перегона одних сущностей в другие и обратно. Бред какой-то на самом деле, я думаю что что-то не так делаю.
1878 2002688
>>2002680
Это норма в энтерпрайз разработке

https://blog.ploeh.dk/2012/02/09/IsLayeringWorththeMapping/
1879 2002783
>>2001852
Бамп
1880 2002834
Мне нужно было сделать переодическое выполнение задач, но не по времени, а при наступлении определенного состояния(нужно из-за того что хуйня запускается на железке с 128МБ памяти - чистить базу и логи когда больше половины места они занимают). Т.к. меня приучили что все нужно делать асинхронно - я, вместо использования таймера - сделал свою хуйню, что таски использует. И у меня чет очко поджимается от такого вот решения. Не убьет ли это все дело сборщик мусора? Тестировал, вроде работает нормально, но я все равно ссу.
image.png7 Кб, 400x156
1881 2003190
Сука как открыть файл экселя в excel?

Выскакивает какое-то исключение с какой-то хуитой на это
fileName = @"D:\\ks2020\\work\\mess\\SR_072_4.2021.xls";
Process.Start(fileName);

Файл 100% есть, 100% рабочий
1882 2003198
>>2003190
Дай угадаю, пишешь на коре?
1883 2003205
Заранее извиняюсь за неофитовый вопрос - можно ли как-то в отладке вижуал студии не ставить брейкпоинт на конкретной строке кода, а стригерить приостановку выполнения при изменении конкретного заранее вписаного поля/свойства? К примеру при изменении textbox1.width - пауза и я в отладке.
image.png13 Кб, 977x123
1884 2003213
>>2003198
да.

Теперь даже не знаю как решить - в гугле какие-то ебанутые решения уровня говнокодец пахнущий, типа пикчи

(сразу хуйня - что если другая версия офиса стоит, что если другая разрядность офиса стоит. что если пользователь офис поставил вообще в другое место, что если майкрософт решит этот офис ставить куда-то в другое место в очередной винде.

Самому проверять все случаи - это пиздец, нахуй такой велосипед, если в винде есть система ассоциации файлов где все это решено и как мне ею воспользоваться?
1885 2003214
>>2003205
Можно, надо гуглить. Там есть тригеры
1886 2003234
>>2003213
Я не пишу на коре если что - попробуй поставить в нугете Microsoft.Windows.Compability.
image.png23 Кб, 602x198
1887 2003252
Что это за хуйня? Почему у меня бросается исключения на проверку на налл?
Screenshot1.png17 Кб, 513x439
1888 2003394
Объясните маслёнку, почему в ListBox первой формы просто так не добавляются элементы, полученные из второй формы?
1889 2003417
Кто может пояснить за блазор? какая разница в производительности между обычним js и шарповским блазером?
1890 2003685
Нужно в базе хранить JSON не в виде JSON-объекта или строки, чтобы потом можно было собрать из него объект и послать/схоронить куда нужно. Да, понимаю что бредово, но так надо.
Так вот, покритикуйте структуру того как я вижу эту сущность в таблице:

JsonToken
{
int Id;
int TypeId;
int? ParentId;
string Name;
}

Ну, собственно меня что лично меня смущает - ParentId - нужен исключительно в случае если нужно хранить объект, т.е. его наличие зависит от типа. В случаях если это будет число, строка, булево и т.д. это значение будет всегда null. Но как без этого - я не придумал. Ну и я еще не придумал как, хранить описание массива, разве что каждому типу - хуйнуть дополнительный тип для массива и будет int - intArray, string - stringArray и т.д.
1891 2003838
1892 2003899
>>2001891
Я не совсем понял что ты узнать хочешь.
Вот накидал вроде то что у тебя написано.
Выдели крассным где непонятно.
1893 2004020
Всё думал вернуться в шарп, но это чудо https://github.com/migueldeicaza/gui.cs прям смотивировало меня. тащусь от консольных интерфейсов
Решил что для начала это будет что то не сложное, например вытягивание инфы о железе. Но меня ждал облом в виде https://github.com/dotnet/runtime/issues/22948
Как так, позиционируют себя мультиплатформой, но такой базовой вещи нету. Там что то пиздецовое с реализацией, что аж в .net 5 нету? Там кто то указал свою либу на этот счёт, а нативных вариантов(с мультиплатформой) нет?

Алсо, подкиньте идей на тему какой нить консольной апликухой и обязательно кроссплатформа.
1894 2004033
Ребят вот к примеру есть такая картинка в консоли.
Ну понятно что массив символов и они потом выводятся на консоль.
Вот вопрос мб есть какая библиотека для интерпретации символов в изображение?
Что бы не делать скрин символов в консоли а сразу получать изображение?

Нахуй мне это надо?
Ну так от нехуй делать и для практики написания кода. Вообще щас аспНет изучаю но уже давно понял что надо делать перерыв на неделю и изучать что то другое, если я что то не понимал то потом когда снова возвращаюсь к изучению все становится сразу понятно.
А картинки то зачем?
Хочу обучить нейронку создавать картинки аля матрица, правда еще не совсем понял как. Я с нейронками на Вы и стоя. Не совсем понимаю как она должна выглядеть. На каждый пиксиль по нейрону? А не дохуя ли? Пока вижу дело так: Просто алгоритмом из rgb в символы, и набираем масив для обучения, руками выбираю картинки которые нормально получились, далее гружу их в нейронку и треню, хуйня конечно получится но все же лучше чем по 4 разу перечитывать метанит лол
1895 2004081
>>2004033
А что там делать-то? Тебе нужно просто получить насыщенность какого-то куска картинки и заменить ее символом. Самому такую вот библиотеку написать - час работы. Для работы с картинками - берешь Image, просто рассчитываешь размер картинки и размер консоли, так выбираешь размер курсора, проходишься по картиннке курсором, усредняя значение насыщенности, затем заменяешь символом который ближе всего к данной насыщенности.
1896 2004082
>>2004081
Да, не насыщенности, а яркости.
1897 2004280
Сап сишарпяня. Как эффективно изучать шарпы в 21к? Смотрел официальную доку от майков. Как-то не структуированно. Metanit вообще годный для этого? Хотелось бы чтобы было структурно, но и не талмуды размером с войну и мир.
1898 2004505
>>2004280
Ну как тебе удобнее.
Мне например удобно читать книгу если что то не понятно то смотреть видос по теме, а если нужно что то напомнить то читаю метанит.
Метанит собственно это не сайт с уроками, это как справочник.
1899 2004543
>>2003899
Почему в данном коде используется BaseList, а не IBaseCollection в "void AddRange", ведь в аргументах стоит "this IBaseCollection collection_name"? BaseList же всего-лишь наследник IBaseCollection.
1900 2004606
Сап шарп, направь меня на путь истинный. Пилю на колене html редактор на wpf'e и тут внезапно стал вопрос как сделать обработку каретки, а точнее подтягивать в комобобоксы с html шрифт/размер в зависимости от нажатия курсора в редакторе на слово. В редакторе у меня просто grid в который через .Children.Add() загружает System.Windows.Controls.WebBrowser, а в нем mshtml.HTMLDocument (а уже в нем есть innerHtml).
Пока что ничего умнее как
Спарсить слово на каретке
@
Посчитать количество таких слов перед выбраным словом
@
Найти слово через n количество слов в сыром htmle и спарсить параметры

Но мне кажется что такое будет подлагивать на больших документах и вообще какая-то костыльная хуита. Как такое реализовано во всяких вордах и т.д.? Мб есть какой-то похожий готовый проект на гитхабе?
1901 2004611
>>2004505
Троелсен, норм вариант? Посоветуй книгу с практическими уроками, или ресурс. Если такое есть. Именно практика интересует, если есть. Спасибо заранее.
1902 2004619
>>2004543
Ты троллишь так?
1903 2004639
>>2004611
Тролсен редкое говнище, чувак вообще писать не умеет.
Если знаешь английский, то bart de smet c# unleashed.
1904 2004645
>>2004639

> bart de smet c# unleashed


Спасибо, он не сильно устарел?
1905 2004647
Здравствуйте, господа. У меня тут курсач объявился, обязательно нужно делать десктопное приложение, а времени уже почти нету.
Я так подумал, что быстрее всего такое можно будет сделать на шарпе, в Visual Studio всё же формочки клепаются за минуту, а обработка событий вообще за даблклик ЛКМ.
Так вот, такой вопрос, каким инструментом будет лучше и быстрее всего организовать работу с БД? Желательно что-то такое, с чем не надо будет особо разбираться, ну и чтобы у меня всё парсилось в сущность, а не в массив какой-то.
1906 2004651
>>2004645
Новые фичи сишарпа после 5 версии потом как семечки будешь щелкать, там серьезные основы заложены, а это главное.
1907 2004701
>>2004651
благодарю, попробую
1908 2004769
В общем, я тот кто вчера спрашивал про JSON внутри БД.
Так вот, я таки вот так и реализовал. Но обнаружился критический косяк - массивы, блядь.
Я теперь не представляю как оно должно выглядеть.
Блин, вот если бы тимлид не был таким вот любителем усложнить задачу, когда осталось 2 недели до дедлайна, а просто как люди - вынесем ДТО и интерфейсы для сервисов в отдельную сборку. Не, это слишком просто, пусть у нас сервисы друг другу представятся по рестапи, каждый сервис сохранит и будет из базы дергать и восстанавливать из этого дела JSON и только потом отправлять. ВЕДЬ: А вдруг забудет кто-то в общую библиотеку добавить изменения, а так представились и заебись.
1909 2005107
>>2004647
entity framework же православный.
1910 2005108
>>2004081
Ну эт сделал. А как дальше дата сет собрать из этого всего?
Вот я тут задавал вопрос >>2005094 → в
Если кто знает ответьте плыз
image.png62 Кб, 1083x743
1911 2005143
Как переписать это говно чтобы работало?

То есть я хочу открывать xls таблицы внешним инструментом. У меня .net core 5

Сейчас у меня такое говно для теста. Но как переделать чтобы открывало средствами винды, а не я хардкором в коде?
Во-первых потому что я не знаю какая версия офиса будет у пользователя, какая там будет разрядность и где точно он его ставил
Во-вторых возможно у пользователя вообще нет офиса, а стоит какой-нибудь либр или опенофис который и открывает эти файлы

Вот в нетфреймворке вроде так и было. Но в коре так не работает, надо прямо указывать экзешник
1912 2005145
>>2005107

>entity framework же православный.


Я только начал вкатываться, такой вопрос - а в EF можно делать что-то сложнее примитивных таблиц?

Например сразу выдавать без лишних LINQ запросов составные запросы с сложными условиями? Или например форматирование? (например в базе в поле у меня такой полный формат даты, а в программе мне нужно более сокращенную форму выводить)
1913 2005326
Wpf, переопределил в App.xaml.cs main():
[STAThread]
static void Main()
{
App app = new App();
MainWindow window = new MainWindow();
app.Run(window);
}

Почему на app.Run может запускаться 2 окна? В конструкторе ничего такого нету.
1914 2005410
>>2005145

>(например в базе в поле у меня такой полный формат даты, а в программе мне нужно более сокращенную форму выводить)


А при че тут EF?
Получаешь сраный DateTime и интерпретируешь его как тебе надо
1915 2005736
Я когда-то видел какую-то пиздатую либу чисто для сжатия на шарпе где было 9 методов сжатия, может кто напомнит как она называется? На сайте у них в доках еще была таблица сравнения этих методов.
6546456.jpg1,2 Мб, 961x960
1916 2005940
Шарпаны, учусь уже почти 4 месяца, поковырял WPF, Winforms, ASP.NET Core, Unity.
Сейчас хочу срочно вкатиться куда-нибудь джуном (сейчас ебашу на проклятом заводе, убил уже всё здоровье себе). Готов работать за еду, выжигать глаза, ебашить 20 часов в день, лишь бы взяли.
Куда же всё-таки проще вкатиться, в веб или геймдев? Одинаково приятно и то, и другое. Просто нужно определиться, какую платформу дрочить вглубь, чтобы ускорить процесс перекатывания на новое рабочее место.
1917 2006010
>>2005940
Геймдев
1918 2006015
>>2005940
Проще в QA. Для примера практика нашей конторы - не тянет на джуна но вроде что-то знает - предлагают в QA пиздовать, если есть места.
А так. В геймдеве ты соревнуешься с толпой школотронов, которые МЕЧТУ лололо хотят воплотить, еще не зная что прогер в современном геймдеве сосет хуй. В вебе ты будешь соревноваться с выпускниками вузов в основном и бывшими пхпшниками.
1919 2006243
>>2005940
веб
1920 2006386
Как читать данные из checkbox как из потока? То есть, у меня в чекбоксе есть цифры и буквы в определённом порядке без пробелов. Я хочу числа запихнуть в инты, а буквы в чары.
1921 2006405
Как читать данные из textbox как из потока? То есть, у меня в текстбоксе есть цифры и буквы в определённом порядке без пробелов. Я хочу числа запихнуть в инты, а буквы в чары.
Самоисправил
1922 2006456
Почему у меня Random работает неправильно, но когда врубаю отладчик и смотрю работу по шагам, он начинает работать как и планировалось?
1923 2006459
>>2006456
А всё, понял. Дело в тиках.
1924 2006463
>>2006386
foreach (char letter in checkboxString)
{
if (letter.IsNumber);
if (letter.IsLetter);
}

Помоему как-то так.
1925 2006478
Я понимаю, тред элитный, но уже почти 2к постов.
Может быть таки перекатите?
1926 2006580
>>2006478

>Может быть таки перекатите?


>Перекатывайте сами


>Кто, я?!

(Изображение PNG, 426 × 336 пикселов).png81 Кб, 426x336
1927 2006602
>>2006580
Справедливо

КАТИТЕСЬ
>>2006596 (OP)
>>2006596 (OP)
>>2006596 (OP)
1928 2007061
>>2006463
Я имел в виду текстбокс.
1929 2007346
>>2007061
Текстбокс.Текст
1930 2007437
>>2007346
Хорошо. А как перемещаться от символа к символу?
1931 2007793
>>2007437
Я тебе выше уже написал, не тупи.
1932 2009791
Какие более-менее open-source проекты, порекомендуете новичку (на шарпах, естественно)?
1933 2010029
>>2004619
Нет, я пытаюсь разобраться в новой теме
e0e4d57f5d2689bca1cf9044cf2b1cc2.jpg38 Кб, 707x720
1934 2010723
>>2009791

>open-source


>новичку

1619612525028.jpeg17 Кб, 1920x39
1935 2011479
Я знаю что мне хуй кто ответит по моему вопросу, но все же попытаюсь - юзаю по совету одного анона пару тредов назад AdonisUi на wpf'e. Я юзаю один всратый (в плане его результатов) обфускатор под назаванием SmartAssembly и он даже без настроек проекта заворачиватет адонисовское окно на фуллскрине в белую рамку. Кто нибуть знает, можно ли это как-то пофиксить в msil'e? Или подскажите может кто знает бесплатный обфускатор с шифрованым хранилищем строк как в смартассе (можно даже без обфускации как таковой)?
1936 2012470
>>2011479
Хз, попробуй Снупом посмотреть откуда рамка: https://github.com/snoopwpf/snoopwpf
Тред утонул или удален.
Это копия, сохраненная 10 мая 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски