Этого треда уже нет.
Это копия, сохраненная 31 августа 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
csharp[1].png331 Кб, 1044x1122
C#/Сишарп/.NET Тред #19 /csharp/ /csharp/ 1665540 В конец треда | Веб
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии. Также не забываем напоминать залетным Жаба-петухам о их месте возле параши, которая уже давно навечно забилась легаси-дерьмом и ждёт неминуемой смерти Жабы.

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

1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c#
- http://www.tutorialspoint.com/csharp/
- http://professorweb.ru
- http://net-informations.com
- http://habrahabr.ru/hub/csharp/

2. Онлайн-компиляторы:
- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
- http://ideone.com/
- http://csharppad.com/
- http://www.tutorialspoint.com/compile_csharp_online.php
- http://rextester.com/l/csharp_online_compiler

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

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

5. Какую ИДЕ выбрать?
Для Windows самым очевидным вариантом будет Visual Studio (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
Для мака и никсов самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ ).
Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ).
Кросплатформенный полуредактор/полуIDE VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx )
Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.
SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.

6. С# для мобильной разработки
Если нужны инструменты для разработке под мобилы, смотри сюда - https://docs.microsoft.com/ru-ru/visualstudio/cross-platform/cross-platform-mobile-development-in-visual-studio?view=vs-2019.
Из актуальной литературы
- Xamarin Mobile Application Development
- Xamarin Essentials

7. Дополнительные инструменты для разработки на C#
LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL

8. Расширения для студии
ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов
Supercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним
Indent Guides - показывает вертикальные линии на каждом уровне отступов.
Format document on Save - форматирует код каждый раз при сохранении документа
Code alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях

Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn Overview
Новые возможности C# 8.0: https://docs.microsoft.com/ru-ru/dotnet/csharp/whats-new/csharp-8

Код этой шапки: https://pastebin.com/YJFQKsNm

Прошлый тред тонет здесь: https://2ch.hk/pr/res/1618705.html (М)
1200px-.NETCoreLogo.svg[1].png66 Кб, 1200x1200
2 1665542
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 7.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином. Уже появилось издание для 8.0, однако в интернетах пока его нет.
- C# 7.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- Pro C# 7: With .NET and .NET Core (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.

10. Более хардкорный материал
- 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 структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.

11. Хочу еще хардкорней
- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам

12. Литература по WPF
Из более-менее актуального можно выделить пару книг:
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)

13. Литература по ASP.NET
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Pro ASP.NET MVC 5 Platform (Adam Freeman)
- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)

14. Литература по асинхронности, параллелизму и всему такому
- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg

15. Литература не по шарпу, но так или иначе связанная с языком
C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity
Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.

16. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"

17. Что еще нужно знать, чтобы взяли работать за еду?
- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
- Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
- Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
- Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
- Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
- Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST
- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID

18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
1200px-.NETCoreLogo.svg[1].png66 Кб, 1200x1200
2 1665542
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 7.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином. Уже появилось издание для 8.0, однако в интернетах пока его нет.
- C# 7.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- Pro C# 7: With .NET and .NET Core (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.

10. Более хардкорный материал
- 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 структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.

11. Хочу еще хардкорней
- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам

12. Литература по WPF
Из более-менее актуального можно выделить пару книг:
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)

13. Литература по ASP.NET
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Pro ASP.NET MVC 5 Platform (Adam Freeman)
- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)

14. Литература по асинхронности, параллелизму и всему такому
- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg

15. Литература не по шарпу, но так или иначе связанная с языком
C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity
Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.

16. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"

17. Что еще нужно знать, чтобы взяли работать за еду?
- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
- Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
- Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
- Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
- Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
- Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST
- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID

18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
3 1665549
Судя по вопросам в тредах, C# медленно переползает в состояние Delphi. Видимо так и кончит. Нормальный язык в шарагах преподавать не будут. Энивей, посмотрим на .NET5, если совсем в пизду скатиться - С подобный синтаксис знаю, перекачусь в джаву на джуна или чего помоднее.
Кто думает, что это нытье - поспрашивайте в комьюнити сколько галер выкинули на мороз мин.NETчиков. Джуны с плеча в первые же дни полетели после обвала фондового рынка.
15840341053751[1].jpg134 Кб, 1051x797
4 1665563
>>1665534 →
>>1665263 →
>>1665470 →

>Ряяяя пачиму питухон можит а шарп ниможит!!


>НЕ ВРИИ ПИТУХОН МОЩНЫЙ ОН ВСЁ МОЖИТ!!



Не перестаю с петухонщика-неосилятора. Я думал они хоть немного умнее жопаскриптеров, но ошибался.
5 1665567
>>665549

>3 178 вакансий «C# developer»


>2 388 вакансий «.net developer»


>6 070 вакансий «Java developer»


>5 566 vs 60 070



Даже с учетом того, насколько много легаси дерьма в жабе, C# и .net уже наступает ей на пятки. Поэтому, хорошая попытка , жабоеб, но нет.
6 1665623
>>665563
Не понимаю, зачем ты гадишь под себя, и зачем мне врать.
7 1665651
>>665623
Ты не врёшь, ты просто умственно отсталый дегенерат-петухонщик. Работа с файлами происходит при помощи обращения к API системы на которой запущена программа. И у этого API нет условий вида "if (PLName === "Python") file.GrantAccess()".
8 1665654
всё бы заебись, но учить дохуя в этом шарподотнете, а зарплатки невысокие
9 1665672

>>https://2ch.hk/pr/res/1618705.html#1664668 (М)


А это, кстати, в каких единицах и за какой срок?
10 1665681
>>665672
В долларах США за год, всё стандартно. В штатах же не практикуется указание месячной ЗП.
11 1665683
>>665681
Мне интересно было, что тот чувак имел ввиду. Он вроде сказал что он из мордора, так что мог по привычке в месяц назвать.
12 1665692
>>665567
извини, за неприятный пост

>наступает ей на пятки


с этого в голос проиграл. Каждый раз угораю, когда сравнивают Java с высером мелкософтов. И что у тебя за биржа, которая C# делит с .NET? Или .NET вакансии это типо Visual basic чи шо? Энивей, удачи с этими 5.5к вакансий нет
13 1665696
>>665692
А то мало вакансий, когда фигачат джаву в объявлении, а потом оказывается что им нужен го, скала, кложа.
14 1665708
>>665549

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


Без хуйни - ни одного дотнетчика с галеры не выгнали. Со скриптохуйни вроде пайтона, жс - выкинули.
С жабы и дотнета - нет
15 1665715
>>665708
разумеется, на скриптохуйне стартапы и прочие динамично развивающиеся продукты, которые любой кризис легко сдувает, а на говне мамонта вроде кобола жабы и делфи сишарпа - масштабные легаси-конюшни крупных проектов, которые более устойчивы
16 1665720
>>665651
Мой бугурт был в том, что питон получает доступ к файлу без ебли одной строкой, а в сисяре я до сих пор не понял, с каким еще бубном надо сплясать, чтобы все заработало. Кроме как копировать файл, читать его и удалять, но это пиздец, качественный велосипед.
17 1665723
>>665567

>3 178 вакансий «C# developer»


>2 388 вакансий «.net developer»


Это у тебя непересекающиеся множества?
18 1665740
Как сейчас обстоят дела с вышкой? Доучиваюсь в этом году на инженера-строителя, шарпом занимаюсь примерно год но еще вакансии не смотрел. Будут ли требовать профильную вышку или и с этой пойдет?
19 1665743
>>665692
Для .NET можно писать на любом языке, который находится в списке поддерживаемых для этой платформы, разница минимальна.
20 1665749
>>665720
Но ведь ты сам себе в ногу выстрели в своём коде на шарпе, а виноват почему-то шарп.
И в шарпе вообще такие элементарные операции за одну строку делаются:
File.WriteAllText или File.AppendAllText
21 1665750
>>665723
Не у меня, а у хедхантера.
22 1665755
>>665740
Также как и всегда - она не нужна если ты обладаешь необходимыми навыками.
Сразу скажу, что для работы недостаточно "занимаюсь примерно год". Для работы ты помимо языка должен уметь работать с базами данных, знать и уметь применять базовые алгоритмы, знать и уметь применять различные структуры данных, а также разбираться в принципах и паттернах проектирования.
23 1665760
>>665749
Мне нужно прочитать файл, а не писать в него. И он не читается, потому что якобы занят процессом.
24 1665763
>>665760

>нужно прочитать файл


File.ReadAllText

>потому что якобы занят процессом.


Да-да, этот бред я уже слышал. Для шарпа он занят, а для петухона он не занят. Магия да и только.
25 1665776
>>665755
Если только в жс не вкатываться. Там можно жопой код писать, лишь бы контент на странице отображался.
image.png37 Кб, 1144x320
26 1665858
Сап. Работаю с виндоус формс в вижуал студио, нужно чтобы при указании порядкового номера студента по журналу, в таблицах(Или в таблице, не важно как, лишь бы показало) выводились данные из связанных с ним таблиц, т.е. расширенная инфа о студенте. Не подскажете как это сделать? Я просто ньюфаг, знаю только как в датагридвью выводить таблицу целиком, но мне нужна именно инфа о конкретном человеке.
27 1665864
>>665858
Ок, я понял, разобрался. Спасибо, если кто-то хотел помочь, но теперь вопрос закрыт.
28 1666101
>>665763

>ReadAllText


Не, не хочет. Занят.
29 1666111
>>666101
Пиши на петухоне. В шарпе всё настолько плохо, что ему даже доступ к файлам перекрывают...
30 1666116
>>666111

>Пиши на петухоне


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


using (FileStream stream = new FileStream(logFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (StreamReader reader = new StreamReader(stream))
{
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
//Тут уже можно делать с линией все, что угодно
}
}
}


А ты, конечно, токсичный чувак, но спасибо все равно, что пытался.
31 1666176
>>666116
Так это же такой же код, как и тут >>1665470 → . Но там ты писал что не работает, а тут работает. Подозрительно.
32 1666194
>>666176
Там не было

>while (!reader.EndOfStream)


Без него не работает, с ним работает. Отака хуйня.
33 1666202
>>666194
Хм

ОТКРЫТЬ ПОТОК
@
ПРОЧИТАЛ ВСЁ
@
ЖДЕШЬ И ЖДЕШЬ
@
А КОНЦА ВСЕ НЕТ И НЕТ
34 1666203
>>666111
Это ты еще на сирашпе не подключал одну базу, вторую, менял их местами.
В отношении БД - C# та еще параша. Ну я не говорю про модные фреймворки на них
15849625600730.png223 Кб, 512x387
35 1666204
>>665743

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


>разница минимальна.


>минимальна.


>>665696
в твоем селе на заборе вакансии?
>>665708
Lucky one. У нас конвеер трейни переходящих в джунов на галере. 6 тел с плеча на мороз с досрочным разрывом контракта. (4 трейни, 2 джуна). Они там ко-ко-кали что то, что дених нет и все такое - под сраку сапогом
36 1666206
>>666204

> (4 трейни, 2 джуна).



Бохато живёте.
Вот другие питушинные языки это да.
Пришел на них трейни, так и сидишь до миддла и довольно урчишь, получая больше и больше компенсацию
37 1666208
>>666206
Ты бы знал путь от трейни до джуна у нас в галере, ты бы охуел. Лычки мидла выдают только пердунам, вроде меня, которые по 5+ лет сидят. Обычно съебывают в другую галеру. Я просто проигрываю с этим мамкиных программистов, которые думают, что .NET это платформа богов. Ожидание-реальность...
38 1666211
>>666208
Как хорошо, что меня не взяли джуном на C# .net Галеру
В итоге без опыта на миддла взяли node.js ковырять. Адекватное руководстве превыше всяких лычек
39 1666212
>>666208
Но почему ты не уйдешь на 300к с 5+ лет опыта?
40 1666213
>>666116
Что -то ты не договариваешь. СтримРидер просто вернет налл, если достигнут конец потока. Сделай видео, где без проверки EOS выбрасывает ошибку доступа к файлу, а с проверкой читает нормально. Потому что того, о чем ты пишешь просто не может быть. Скорее всего ты еще что-то поменял, что разлочило файл.
41 1666215
>>666212
Так блять, не задавай неудобных вопросов. Он же Дартаньян и превозмогает, а остальным проще, они пишут не на дотнете и получают деньги за нихуя.
42 1666219
>>666215
Действительно, что там сложного там. If,else,0,1
43 1666220
>>666211
Двачую. У нас на джуна вопросы сеньерские задают, а заставляют говно палкой ковырять, так что все ок
>>666212
>>666215
думаете типо 5 лет и сразу $5к/m? Я скажу по секрету, количество лет в разработке не значат ровным счетом нихуя, если вас оценят, как дебила. Собеседовали питонщика, которому в голову моча стукнула перекатитсья в .NET (редкий дебил). Вот у него около 7 лет было питонистом, но в решетках он не знал нихуя, кроме базовых вещей, которые аналогичны в питоне.
Короче, вкатитесь - ощутите жижу прелести ОЙТИ СНГ. Я пару тредов назад писал, что не нужно сравнивать работу дэва в СНГ и европке/америке - абсолютно разные вещи.
44 1666223
>>666220
При чем тут это. Зачем ты 5 лет жрешь говно, если нет такая параша?
45 1666226
>>666116
Не перестаю охуевать с долбоеба. File.ReadAllText у него не работало, а добавление !reader.EndOfStream магическим образом открыло доступ к файлу.
Надеюсь, что это даун пытается троллить, а не реальный человек.
46 1666228
>>666226
Все так. Зачем мне пиздеть?
47 1666229
>>666220

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



Питонщик выше очередное подтверждение долбоебизма питонщиков и других динамикопетухов.
48 1666230
>>666228
Так покажи код, который без !reader.EndOfStream будет выбрасывать эксепшен из-за отсутствия доступа к файлу. Тебе же пиздеть незачем.
49 1666234
>>666230
Он наверняка сразу поток открывал, а потом пытался с открытым потоком через ReadAllText() читать.

мимо
50 1666235
>>666223

>При чем тут это


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

>Зачем ты 5 лет жрешь говно, если нет такая параша?


меня устраивает. 2-3 проекта, знакомый мне стэк, хорошая зарплатка, зона комфорта. Перекатываться куда то - это терять время, деньги, энергию
>>666229
может он и хороший дев, но точно не .NET-а. Ему дали офер на джуна с ЗП в 4 раза меньше его, он его принял. Отпинал хуи 2 месяца и сказал, что это все хуйня и я уебываю
51 1666237
>>666229
Я слабо представляю себе такого питониста.
Мир открытых систем, бесплатное IDE, OS, миллион тыщ либ под питухон. Хочешь - ML BIG DATA, хочешь - скрипты, парсеры пиши, или веб во всех направлениях.
Нет блять, поиграл 7 лет с питоном и пересел на иглу Microsoft с анальзыми зондами
52 1666241
>>666237
ты просто не знаешь мотивов таких людей. На собесе - глаза горят, как все заебись писать под шиндовс нет, а по факту - 2 месяца проебаного времени и увольнение. Может он зашел в тред на дваче и почитал, как все охуенно снова нет, что ЗП овердохуя, что проекты интересные.
53 1666250
>>666241
Ну не знаю, есть легендарные посты про
- Хочу переехать в ДС\ДС2 где-нибудь на 60-100к
- Ты сишарпер чтоли?
54 1666257
>>666250
60-100к (не знаю, сколько это в долларах, 1к+ походу где то) - это медиана мидла, премидла. Вполне реальная ЗП

>- Ты сишарпер чтоли?


да, уже писал выше
55 1666266
>>666230
Я ж кидал.


List<char> list = new List<string>();
using (FileStream stream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
string line = reader.ReadLine();
list.Add(line[0]);
}
}
return list;
56 1666271
>>666257
А знаешь сколько получает мидл питухона? То-то и оно. даже в регионах 120к можно
57 1666289
>>666266
Так у тебя функции main нет, такое не скомпилируется.
58 1666295
>>666289
Анон то и не знает, как код показывать людям
59 1666297
>>666289
Ясно.
60 1666300
>>666295
Просто петухоно-опущенец привык, что перед господами нужно иметь вид лихой и придурковатый.
61 1666301
>>666297
Не за что. Обращайся если еще вопросы будут.
62 1666310
Вопрос наверно тысячу раз задавался, но таки просьба сориентировать.
Начинать с Шилдта или с Троелсена?
Залетный тестировщик
63 1666314
>>666266
А ничего, что тут у тебя читается одна строка, а в варианте с ЕОС все строки? Это, конечно не влияет на доступ к файлу, но замена кода неравнозначная.
64 1666325
>>666310
С чего угодно. важно то, на какой книге ты кончишь свой путь
65 1666345
>>666310
Начинаешь с Троелсена.
Потом закрепляешь Альбаири с его C# in a Nutshell
Потом читаешь книгу по паттернам (Agile Principles, Patterns, and Practices in C#, очень годная)
После чего переходишь на изучение современного .NET Core (C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development Fourth Edition)

Далее следует почитать что-нибудь по работе с базами данных. После чего можешь закрепить знания путём более тщательного изучения алгоритмов и структур данных.
66 1666348
>>666314
Зачем с долбоебом разговаривать, который понял, что обосрался просто виляет сракой и наверно думает, что он охуенно всех затроллил.
15295149790830.png223 Кб, 413x395
67 1666358
>>666266

>List<char> list = new List<string>();


Да, проблема наверняка в языке.
68 1666363
>>666345
Спасибо, анон!
69 1666378
>>666358
Да, ошибка в компиляторе
70 1666413
>>666271
мне насрать сколько на пайтоне зарабатывают, я скажу больше - мне насрать сколько на # зарабатывают. Если выпилюсь из этого проекта (галеры), то скорее всего в СНГ больше работать не буду, а съебу за бугор джуном любого стэка, который мне дадут (желательно Rust/Kotlin/Golang). Просто Ойти СНГ - это такая параша блять, что от нее воняет. В прямом смысле слова, просто несет говном. И тут даже не дело в том, на каком стэке ты сидишь и чем занимаешься, все сводиться к одному - бадишопы. Для заказчика ты всегда будешь ебаным индусом из страны 3 мира. Особенно проигрываю с додиков, которые получаю лычку на комуникацию с кастомером без ПМ-а, где разговор сводится не то, что к индусу, а к умственно отсталому дебилу, который даже не может в английский Давайте пизданите мне, вкатывальщики хуевы, что ХУЯНДЕКС, МЕИЛ.СРУ, ВАРГЕЙНИК, да это ты такой ущербный, кококо- это 1%, уебки.
>>666310
иди моки учись делать и интеграционные тесты писать, обезьяна ебаная, а не решетки учи. В них и без тебя дебилов хватает
71 1666421
>>666413

>В прямом смысле слова, просто несет говном.


>LITERALLY


>всё равно использует переносное значение


Идиот.
72 1666457
>>666413
дурачок, за рубежом будут с тобой веслать те же индусы
и говна там хапнешь не меньше
73 1666477
>>666421

>В прямом смысле слова, просто несет говном.


Сына, прийдешь ты на проект, кинут тебе абсолютно рандомный таск, например запилить аутентификацию на web API под реакт, а версия .NET-а - 3.5 допустим, где скафолдингов нет и на SOF весь код уже под 4.5+, даст долбоеб ПМ эстимейт в 2 часа на таск. Когда после 8 часов дрочки с этим говном над тобой будут стоять ПМ, фронт, ментор и все остальные, ты будешь не только сраться под себя, но и ссаться.
>>666457
дурачек, который интерпрайза в глаза не видел что то пердит из под шконки. Я хоть сейчас готов рядом с индусом сидеть и закрывать таски, главное чтобы это был один проект не бадишопа

Мне влень на самом деле доказывать то, чего вы никогда не видели возможно никогда и не увидите, но разминайте свои анусы на то, что когда вас возьмут на проект если возьмут, то найдется такой ментор, которому от слова совсем похуй на вас, то тогда понюхаете, чем пахнет СНГшное Ойти. Все хотят килобаксы рубят, а рубят соленые хуйцы за щеку.
Уже писал в нытье треде, что даже если вас и возьмут на стажировку/исп. срок - велика вероятность, что вы там не отработает после оговоренного срока, а вас просто выставят на улицу. Сам работаю в такой галере, где джунов, трейни в хуй не ставят.
Это не нытье, это жизненный опыт. Поэтому я и пишу, после закрытия проекта - бугор и только.
74 1666481
>>666477

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


>продолжает говорить фигурально, даже не осознавая этого


LITERALLY
75 1666646
>>666413
Типичная токсичная мелкобуква. Обдристал тебе твое и без того грязное хлебало.
vs.png14 Кб, 577x424
76 1666665
>>665540 (OP)

>Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений


А почему она все равно требует лицензии?
Поставил студию некоторое время назад и вот у нее закончился ознакомительный период. Я не хочу плотить, ибо я просто для себя программирую, решаю задачки. Пиратку тож не хочу. Получается, бесплатность коммьюнити-версии - это пиздеж?
77 1666669
>>666665
Так зарегай учётку, в чём проблема?
78 1666678
>>666481
>>666646
извините за неприятные для вкатышей посты
79 1666693
>>666669
Войти не получается, когда пытаюсь то получаю сообщение об ошибке Не удалось обновить данные для учетной записи. Ссылка на объект не указывает на экземпляр объекта
80 1666698
Сеньёры, помогите. Нужно ли в интерфейс записывать метод, который только реализует сложный сеттер для свойства или можно опустить и только в имплементации реализовать?
81 1666699
82 1666712
>>666698
Если сеттер является частью интерфейса, то вноси, если нет, то нет. Сори, но на твой вопрос сложно дать другой ответ.
83 1666717
>>666712
Да я вообще запутался со всем этим. Налицо какое-то излишнее дублирование и фрагментация. Поля, свойства, геттеры/сеттеры, методы. Я ебал. Ну типа рекомендуют поля делать приватными, а во вне выпускать свойства. Окей. Есть ещё авто-свойства, когда можно не пилить поля(они там сами пилятся вроде как). Сколько логики писать в этих геттера/сеттерах, когда писать отдельные методы, куда пихать резальтат этих методов, просто присваивать свойству или в геттерах сеттерах реализовывать. Короче в голове каша ебаная. А тут ещё интерфейсы, абстрактные классы, классы и это всё друг на друге. Пиздос. И это только азы, что же будет дальше(дальше будет дроп).
84 1666720
>>666698
Если метод общий для всех наследников, то реализуешь, если нет, то нет. Вообще, в интерфейсах реализовать нужно как можно меньше, интерфейс это шаблон, который не знает ничего кроме сигнатур. Если хочешь реализовывать, то значит тебе нужен абстрактный класс.
85 1666721
>>666717
Так нахуй ты во всё это полез, если не изучил принципы и паттерны проектирования с применением ООП? Очевидно, что ты хуйню делаешь, которая тебе никакой пользы не принесёт.
86 1666724
>>666720
Не, про интерфейсы я понял, реализую я как раз всё в классе.

>>666721
Чел, мне понадобилось пару программ мелких, я решил под шумок подучить шарп, какие нахуй паттерны? Скажи спасибо, что я не бездумно хуярю лишь бы работало, а пытаюсь разобраться. Лучше бы подсказал, куда копать, а не выёбывался.
87 1666733
>>666724
Так я тебе и сказал куда копать, долбоеб. Либо читаешь литературу по паттернам проектирования и принципам SOLID, либо хуячишь свой говнокод. Третьего не дано.
88 1666735
>>666733
Всё, что ты высрал, это претензии, почему я такой тупой и не делаю, как сеньёры.
89 1666747
>>666724
Зачем тебе выносить изменение свойства в отдельный интерфейс? Если ты вынесешь этот сеттер в интерфейс, получается, что ты будешь позволять другим обьектам вызывать сеттер и изменять тем самым внутреннее состояние этого обьекта. Не знаю, что ты хочешь сделать, но выглядит уже криво.
Если хочешь менять стратегию изменения свойства на лету, то можно вынести это в отдельный интерфейс, и потом его инжектить.
Но это тоже странно.
Короче приведи пример, что ты хочешь сделать и зачем, я тебе подскажу.
90 1666778
>>666735
Вполне закономерно, учитывая твоё желание "хочу делать как сеньор, но учить ничего не хочу, научите меня не видя моего кода, прочитав мои мысли".
91 1666826
>>666717
public class Zalupa
{
public int Number {get; set;}
}

Для начала делай так и не выебывайся.
Вообще не понимаю этого дрочерства - пока у тебя не возникнет потребности в интерфейсах, абстракных классах, делегатах, дженериках, dependency inejctor'ax - не лезь туда вообще нахуй. Без опыта со слезами и с кровью - всё это выветрится быстро.

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

/thread
92 1666843
>>666826
Мань, это актуально было лет 10 назад, сейчас если ты внятно не ответишь на вопрос "Что вы знаете об акрониме SOLID?", приведя примеры и расписав каждый принцип. Тебя сразу нахуй пошлют, даже алгоритмические задачи не попросят решить.
93 1666888
>>666843
Кекус, работаю миддлом - вообще кроме акронима ничего о SOLID не слышал.
94 1666908
>>666888
галерный мидл в тренде, я спокоен
15849625600730.png223 Кб, 512x387
95 1666921
>>666843

>алгоритмические задачи

96 1666980
>>666888
Ну такой же долбоеб, как и тот выше. Ошибка выжившего во все поля. Попробуй пройти собес, тебя даже на позицию джуна не возьмут.
97 1667128
>>666980
Риночек порешал, бывшие мидлы теперь на трейни-джунов не годятся
98 1667218
Поясните тупому. Можно ли как-то сделать так. чтобы дженерик тип принимал только числовые значения? Скажем, вот я делаю класс Calculator<T>, хочу чтобы в нем были метод T Add(params T[] items) и не хочу чтобы кто-то впихнул какой-нибудь string в качестве типа.
99 1667222
>>667218
Calculator<T> where T: byte, short, int, long {}
100 1667233
>>667218
where T : unmanaged, IComparable, IEquatable<T>
101 1667236
>>667233
Короче примерно так, но я бы проверил типы внутри функции все же, через typeof.
102 1667251
>>666980
>>667128
Два месяца назад перекатывался на 1.5х по зп, так что вы мимо. Ах да, я как правило резюме никуда не посылаю, и половина фаундеров энтерпрайзных продуктовок в моем мухосранске знает меня в лицо и увольняюсь с периодом оповещения в 5 месяцев. Таки рыночек порешал. Мани, жду вас на собесе, подготовил задачки по методичке.
103 1667253
>>667251
Вы как бы вообще не поняли рыночек: C# это про бизнес, бизнес, формы, бизнес-энтерпрайз,. За алгоритмами идите Идрис дрочите советую.
104 1667276
>>667251
>>667251

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



Так почему мимо то? Очевидный опездол-кабанчик, который вкатился в IT на его восходе, когда достаточно было знать базовый синтаксис одного языка. Теперь тебя берут только по знакомству, а самое смешное, что даже на должность сеньора не дают встать. Ты сам только что себя обоссал, миддл. Теперь тебе и остается только фантазировать о том, что "да это не я тупой, просто языку этого не нужно", смеша остальных.
105 1667314
>>667276
Да ладно тебе. Он тут самый успешный сеньор-помидор. Программист #1 своего мухосранска
106 1667325
>>667276

>на должность сеньора


Это которые 25-летние или с тремя годами опыта? Если нет хотя бы 10-15 лет - не нызывай себя сеньйором.
107 1667328
>>667325
Можешь и в 15 быть сеньором, вся информация уже давно в открытом доступе, времена "набить шишек чтобы понять" уже давно прошли.
asp net core webapi 108 1667430
Хочу сделать policy чтобы добавлять её к контроллерам которая будет непущать если IP в банлисте. Пишут что надо делать добавлять новую policy и там делать policy.Requirements.Add и добавлять свой requirement и AuthorizationHandler. Но дело в том что в классе AuthorizationHandler фреймворк даёт объект ClaimsPrincipal чтобы я типа по клеймам делал авторизацию. А чтобы клейм добавить нужно как-то логинить пользователя, jwt ему там присваивать или куки, а я не хочу этого делать, не хочу логинить пользователя, хочу чтобы анонимно запросы работали, только айпишник проверялся. Надо кастомный AuthenticationHandler пилить где добавлять еще клейм для ip я полагаю? Или какие еще решения видите?
109 1667451
>>667430
У тебя есть аттрибут AllowAnonymous для метода в контроллере, есть HttpContext с IP адресом. Остальное как бы от твоей фантазии зависит.
Но я бы в Middleware фильтр бы сделал кастомный и все. Просто банлист для определенного метода это странно.
110 1667466
>>667328
Всё, я понял, в 15 лет сразу поставим сеньйора софт для боинга, энтерпрайз для больничек, ну или на крайний случай финансовый хайлод пилить, всё ж в открытом доступе давно, бро.
111 1667485
>>667466
Нет, ты не понял. У тебя ведь логика уровня "не служил в армии - не мужик".
112 1667547
>>667430
Можно вообще фильтр навесить еще до твоего веб сервака
https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-dynamic-ip-address-restrictions
113 1667556
>>667466
Для больничек и финансовый хайлоад (сбер, лол) очень часто имбецилы и пишут, особенно когда больнице на хайтек карман жмёт или туда начинает влезать гос-во. Приходилось проходить.
Для боингов планка конечно крутая, но и туда прорываются. Если разработка не для летающих сараев, то тебя будут драть по устройству cpu, ram и прочему байтойобству.
114 1667562
>>667451
>>667547
Я сделал просто милдвар после аутентификации который если пользователь не аутентифицирован все таки кое где есть логин, но для других целей даёт ему клейм с айпишником, а дальше уже в авторизации как обычно по этому клейму проверка
115 1667607
>>667556
Ну так я и говорю, что после 30 лет опыта доверить простые датчики не каждому можно, а тут 15 летнего сеньйора, прошедшего книжки по алгоритмам и сделавшего пару десяток простых приложений от веб-сайтов до движка для видеоигр и своего компиляторя В ЛУЧШЕМ СЛУЧАЕ будут садить делать софт с тяжелейшим domain и requirements, а в худшем речь идет про школьника, которые веб-сайты по туториалам научился клепать/скрипты на юнити/приложения для андроида.

>>667485
Именно так, но не про армию, а про то, что уровень сеньйора - это уже не уровень просто программирования, это уже специализированные знания computer science/научной области или бизнеса в которой работает программист. Конечно, если вы дженерик-конюшна-abstract приложения клепаете, то да, "сеньйором" стать в 15 лет можно. Поэтому нехуй себя сеньйорами называть после 5 лет клепания mvc приложений для разных галер.
116 1667853
сап, учусь погремировать на винформс и тут созрела такая хуйня: как мне выделить сразу все button, label, textbox на форме?Вся эта хуйня уже создана на форме. Пытался гуглить но нихуя. нашел какой-то способ через List<Button> но это не то
117 1667867
>>667853
Что ты подразумеваешь под выделением?
118 1667871
>>667867
мне перебрать нужно чтобы изменить цвет
119 1667873
>>667871
Ну добавляй в коллекцию и меняй. Хотя для этого есть стили.
120 1667889
>>667871
var controls = Controls.OfType<Button>.ToArray();
foreach (c in controls) {
c.BackgroundColor = Color.GayishBlue;
}
121 1667891
>>667873

>Хотя для этого есть стили


Ща, в винформс-то стили
122 1667892
>>667889

>как мне выделить сразу все button, label, textbox


>Controls.OfType<Button>.ToArray();



Ясно.
123 1667896
>>667892
Может тебе ещё отсосать?
private void laba1() {
IEnumerable<Control> GetControlHierarchy(Control root) {
var queue = new Queue<Control>();
queue.Enqueue(root);
do {
var control = queue.Dequeue();
yield return control;
foreach (var child in control.Controls.OfType<Control>())
queue.Enqueue(child);
} while (queue.Count > 0);
}
GetControlHierarchy(this)
.Where(x => x is Button || x is Label || x is TextBox)
.ToList()
.ForEach(x => x.BackColor = Color.Blue);
}
124 1667995
Посоветуйте норм стек под C#
Уже много лет пишу на Windows Forms за $1000, заебало
125 1668021
>>667995
Дурак, сиди пока дают.
126 1668032
>>665549

>Нормальный язык в шарагах преподавать не будут


Охуенная у тебя логика, в моей преподавали java с sql несколько лет подряд например. Они тоже через три года вымрут?
image.png531 Кб, 500x467
127 1668048
>>668021
У меня зарплата в рублях и повышать её явно никто не собирается. In fact, она падает даже в рублях.
128 1668632
>>667995

>норм стек под C#


>много лет пишу на Windows Forms за $1000



Здесь что-то не сходится.
Как можно себя не уважать и много лет писать за миску джуна?
129 1668635
>>668632
Рынок сярпа за пределами северной америки практически не существует, на 3к$ позицию в москве по 200 апплаев выпердышей из всевозможных говновузов
1000$ за настолько рудементарный шлак как винформы еще поискать надо
130 1668646
>>668635
Как хорошо, что я выбрал веб.
Веб это то, ради чего С# создавался много лет назад, но люди еще не осознали (и осознают не скоро)
image.png1,5 Мб, 810x1080
131 1668729
Пролистал вчера книжку про ASP из шапки, теперь что, жаваскрипт, вёрстка и можно пердолить пет-проект?
winforms-кун
132 1668778
>>668729
Нельзя.
image.png281 Кб, 341x366
133 1668851
>>668778
Please elaborate
134 1668870
>>668851
Нильзя! Я так скозал! Не смей!
135 1669089
>>668729
разрешаю
136 1669090
Аноны, вкатываюсь в си шарп, прочитал руководство Герберта Шилдта, теперь нужно задачки где-то нагуглить. Есть какие-нибудь реально удобные ресурсы?
137 1669219
>>669090
Одной книги будет мало, читай теперь Альбаири, потом открывай книгу по паттернам и принципам комментирования (Agile Principles, Patterns, and Practices in C#), далее тебе понадобится книга по .NET Core, после этого ты либо учишь ASP.NET фреймворк, либо WPF, а также закрепляешь всё книгой по базам данных. И только тогда можешь переходить к практике.

Задачки на структуры данных и алгоритмы можешь найти на:
https://leetcode.com/problemset/all/
138 1669268
>>669219
Спасибо, анон. Еще такой вопрос, в списках рекомендуют вместо Альбахари Рихтера пройти, в чем разница?
139 1669276
Я правильно понимаю, что вызов асинхронного метода без await кидает этот метод на выполнение в планировщик (и он уже где-то выполняется, предположительно в другом потоке из пула), а код продолжает работать, то есть это примерно как ключевое слово go в одноименном языке?
Выглядит как неплохой способ одновременно выполнять множество HTTP-запросов.
Почему тогда руководство советует всегда делать await https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/error-messages/bc42358 какой тогда смысл в асинхронности, если всегда ждать выполнения?
140 1669281
>>669276
Это для клоунов которые не понимают что вообще происходит и обсираются на асинхронщине. Если ты понимаешь что такое асинхронность, как с ней работать и зачем она тебе нужна то спокойно забиваешь на await.
example.jpg33 Кб, 366x550
141 1669295
Есть документы, содержащие отдельные куски данных для единой сущности, типа как на пике.
Сейчас я сериализую/десериализую их лютым говнокодом с использованием jobject["name"] из newtonsoft.json.
По идее надо бы их обрабатывать методом ToObject<struct>/FromObject, но я хз как это прикрутить.
В общем накидайте советов мудрых, с меня как всегда.
142 1669296
>>669295
На пике имеется в виду масса хранящегося ресурса, а не самого part, если что.

быстрофикс
143 1669313
>>669268
Рихтера нужно проходить в самом конце, уже после практики. Рихтер это взгляд в глубину. Альбахири это тоже своего рода взгляд в глубину, но не такой детальный как у Рихтера.
144 1669325
>>669276

>какой тогда смысл в асинхронности, если всегда ждать выполнения?


Смысл в том, что передаётся управление в контекст вызвавший асинхронную функцию, т. е. у тебя программа не застывает, а продолжает функционировать.
Если тебе множество запросов нужно сделать, то для этого используется массив, и никаких await не нужно. В этом и заключается бест практис - ты составляешь свой код так, чтобы у тебя не было необходимости пропускать await, потому что это понижает читаемость кода. Сейчас ты помнишь, что это асинхронный метод, а через неделю ты забыл. Не говоря уже о посторонних разработчиках.
147 1669352
Часик в радость, почаны. Насколько хорошо надо знать си шарп, чтобы вкатиться в инити дева? Работаю куа макакой мобильной, все на юнити, хочу вкатиться.
148 1669354
>>669352
Больше понадобятся знания алгоритмов и структур данных, знаний именно шарпа в юнити не много.
149 1669356
>>669354
т.е. начинать вкат стоит непосредственно курсов по юнити, а не по си шарпу?
150 1669360
>>669356
Очевидно, что если шарп не знаешь, то начинать с него нужно, но не углубляясь в детали. Базового синтаксиса будет достаточно. После чего сразу можешь переходить к алгоритмам и структурам данных, может тебе это вообще не зайдёт. Далее углубляешься в тему асинхронности, параллелизма и многопоточности. Закрепляешь всё принципами и паттернами проектирования. И вот тогда уже можешь начинать вкатываться в юнити. И не с ёбанных курсов, курсы это дно. А с книг.
151 1669371
>>669360

>асинхронности, параллелизма и многопоточности


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

>>669338
А вот за это спасибо, выглядит лучше.
image.png308 Кб, 400x308
153 1669407
Нашёл у жс-питухов в треде курсы по вёрстке, сижу, давлюсь, это полный пиздец какой-то.
С самим жс никаких проблем, кажется, нет, прочитал онлайн-учебник из их треда, он наоборот хороший единственный новый концепт там это прототипное наследование, вся функциональщина на месте, что такое рекурсия и промисы мне изучать заново не надо.
Думаю, надо имиджборду написать по доброй традиции, только я с фронтом ещё совсем не разобрался. Все советуют какой-то Vue и React, в отличие от самого JS с ними нихуя не понятно.
winforms-кун
154 1669410
>>669219
принципы комментирования?? oh lol!
155 1669431
>>669410
Проектирования))))
156 1669459
>>669276
Сложно понять по откмментировавшим тебя кунам, понимают они чего пишут или нет, но на всякий случай еще один ответ добавлю.

Без await твой код, который выполняет какую-то IO операцию и помечен как async будет выполняться синхронно. Т.е. поток, который выполняет твою функцию будет тупо сидеть и ждать, когда внешняя операция завершится (БД, веб АПИ, любой другой сервис, который не CPU bound, т.е. выполняется на другом процессоре, а не том же самом где крутится твой прога).

У ОС ограниченное кол-во потоков. Если твой код принимает 1к+ запросов в минуту и каждый из них будет просто висеть и ждать 1сек+, пока сторонний сервис не вернёт ответ, то у тебя образуется огромная очередь из запросов, которые в итоге начнут вываливаться с timeout и nonexistent network ошибками. А те запросы, что в итоге обработаются, будут выдаваться с 10-100-200 сек задержкой.

При async/await у тебя внутри создаётся state machine, которая помечает точку, откуда управление передаётся в другой поток и возвращает выполняемый поток в общий Thread Pool. Когда внешний сервис вернул ответ, то state machine выделяет новый поток и продолжает выполнение твоего кода. Так ты увеличиваешь throughput своего приложение тысячекратно.

Task.Run(() => action) - этот чувак создаёт background thread и запускает твой action там, а сам продолжает выполнение основного метода. Называется fire-and-forget mode.
Этот путь не спасёт тебя от описанной выше проблемы, т.к. код будет палалелльным, но нифига не асинхронным, твой поток так же будет сидеть и ждать завершения внешней операции.
157 1669464
>>669459
Косяк в начале. Без await, как и сказали до этого, твой метод будет продолжать выполняться. Это норм, если тебе не надо ждать выполнения твоего async метода.
158 1669481
>>669407
Забей на жс фреймворки в начале. Попытайся сваять что-то вручную без всяких сторонних библиотек (ну может только jQuery, но и он нынче не нужен, потому что стандартный браузеровский АПИ много из этого уже умеет).

Там главная проблема - это мысленно суметь провести грань между backend и front-end (хз почему один пишут с дефисом, а другой нет).
Твой бэк на дотнете принимает запрос (request) от браузера, ты его обрабатываешь и отдаёшь ответ (response). Всё.
Тебе надо суметь вызвать метод на бэке (копай routes) через, например, Controller -> Action и вернуть какую-то модель обратно. В твоём html ты эту модель принимаешь и рендеришь чего надо. Хоть через Razor, хоть через asp теги, хоть вручную делая из жс ajax запрос.

А потом научишься уже эти модельки и через Vue и React и Angular обрабатывать.
159 1669484
>>669459
Тебе следует перечитать темы асинхронность, многопоточность и параллелизм и перестать нести хуйню.
160 1669500
>>669481

>Там главная проблема - это мысленно суметь провести грань между backend и front-end


Ну отдавать html я научился, это совсем не проблема. Клиент-серверные вафельницы успел пописать и на формах. Синтаксис Razor тоже для даунов-аутистов. Пока самая большая загадка именно фронтенд. Там какие-то селекторы, псевдоэлементы, малофья, и всё не похоже на то, что я видел давным-давно в универе когда не было html5.
Спасибо, что читаешь мои высеры, мне тут немного одиноко.
winforms-кун
161 1669505
>>669484
Такой первый ответ и ожидал.
Если есть реальный опыт в хайлоаде, когда у тебя и CPU и RAM на 100% используются на всех серверах разом, то рад буду что-то новое/полезное услышать.
image001.jpg15 Кб, 342x349
162 1669550
Здравие, хлопцы.
Уже давно возникла идея решения задач через программу. Но есть микро загвоздка - я в душе не ебу как её реализовать и можно ли это реализовать вообще:
На пикчербокс ты сам перетаскиваешь нужное тебе изображение и оно автоматически привязывается к валу(ременная передача на 1-м валу. на втором валу та же ременная + подшипники + зубчатая передача), который при этом сам рисуется на том же пикчербоксе(как на картинке). Это реализуемо или я попросту зря трачу своё время?? В интернете хуй найдешь подобное, уже пробовал. Благодарю каждого за ответ
Ебашу в vs на windows forms
163 1669587
>>669550
И да, и нет. Сложно понять, тут либо очень сложно, либо очень просто. Ну ты понял. Сами изображения форм не выглядят сложно, возможно если есть статистическая основа то можно закодить туда "крепления" для других геометрических форм. У нас на работе так квадраты можно перетаскивать и приклеплять к другим через линии, ну и типо flow constructor в итоге, но я туда ни разу не смотрел, на формах всё.
164 1669592
>>669550
Кароче снизь сложность задачи до самой легкой, которую даже собака решит, забудь вообще про окружности и про там эти приборы какие-то там, работай с квадратами, и максимум два твоих этих валов линии кароче, и попробуй сделать на формах самое примитивное. Если получится и адекватный объем работы, то оттуда иди дальше.

>>669587
165 1669601
>>669592
Спасибо, добрый человек. Сегодня-завтра попробую и отпишу
166 1669615
>>669505

>При async/await у тебя внутри создаётся state machine, которая помечает точку, откуда управление передаётся в другой поток и возвращает выполняемый поток в общий Thread Pool.



Верно только то, что создаётся state machine. Далее идёт ошибочное заключение о том, что управление передаётся в другой поток и про выделение нового потока.

await как раз и создавался для того чтобы не создавать новых потоков для асинхронных I/O операций, которые эти потоки никак ускорить не могут, потому что эти операции от них не зависят, это не вычислительные операции, это операции которые используют сторонние ресурсы - сначала системное API, потом системные дескрипторы, после чего всё передаётся во внутреннюю систему устройства (жесткий диск/сетевой адаптер). И всё это время поток ничего не делает, он просто ждёт. Поэтому и нет смысла создавать отдельный, когда у тебя уже есть один.
Thread Pool в таких ситуациях задействуется только во время получения ответа от стороннего ресурса и для уведомления потока, который вызвал асинхронную операцию, о том, что он получил ответ и пора вернуться и продолжить код идущи после оператора await.
И создание отдельного потока в таких ситуациях действительно может произойти, но только в том случае, если инициализировавший асинхронную операцию поток оказывается занят (именно поэтому не рекомендуется в асинхронном коде использовать Thread.Sleep()) и создание нового потока является нежелательным, так как это тратит много ресурсов и заставляет заниматься синхронизацией контекстов вызвавшего и нового потока.
167 1669618
>>669550
Лучше на wpf такое делать, у неё больший функционал для работы с графикой.
168 1669701
>>669615
Спасибо за детальный ответ.
https://docs.microsoft.com/en-us/dotnet/standard/async-in-depth

Под

>управление передаётся в другой поток


имелось ввиду что дальше выполнение будет где-то на другом ЦПУ, пусть и виртуальном (если речь о настоящем IO), ведь выполнение чего-либо без потока в принципе не возможно. И этот ЦПУ может быть на другой машине, на другой ОС и т.д. А настоящий поток, в котором исполняется операция, далее не используется, и либо
- возвращается системе для переиспользования;
- прогоняется синхронно, ожидая выполнения. Тут зависит от длительности операции и стратегии оптимизации, которую конкретный runtime выбрал.

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

>await как раз и создавался для того чтобы не создавать новых потоков для асинхронных I/O операций


Я по-моему то же самое написал. Тут или мой скил писанины страдает, или ваш - чтения.

https://docs.microsoft.com/en-us/dotnet/standard/threading/the-managed-thread-pool

>Use of the thread pool is significantly easier in Framework 4 and later, since you can create Task and Task<TResult> objects that perform asynchronous tasks on thread pool threads.



Пул потоков имеет какое-то ограниченное кол-во готовых к использованию потоков. Для IO операции поток сначала возвращается в пул и после возврата ответа от стороннего процесса выдаётся другой поток (редко тот же самый) для продолжения операции. Это легко проверить через тесты или в дебагере. ID у изначального потока и у того, который будет продолжать оперцию, будут разные. Из-за этого можно потерять изначально имеющиеся данные, если о них за ранее не позаботиться (всякие Sync Context, ConfugreAwait, и прочие плюшки).

Такое ощущения что я заного первое сообщение переписываю.
c545b379ace11850f2a1d46d7e29b09f.png152 Кб, 2200x1627
169 1669746
Эй, педики, там неделю назад к вашему блазору полноценный отладчик клиентского кода прикрутили https://docs.microsoft.com/ru-ru/aspnet/core/blazor/debug?view=aspnetcore-3.1
Я даже попровал, всё работает.
170 1670177
Какие преспективы для шарписта в плане работы? Стоит ли вкатываться?
171 1670217
>>670177
Никаких. Не стоит.
172 1670224
>>669615

>await как раз и создавался для того чтобы не создавать новых потоков для асинхронных I/O операций, которые эти потоки никак ускорить не могут, потому что эти операции от них не зависят, это не вычислительные операции, это операции которые используют сторонние ресурсы - сначала системное API, потом системные дескрипторы, после чего всё передаётся во внутреннюю систему устройства (жесткий диск/сетевой адаптер). И всё это время поток ничего не делает, он просто ждёт. Поэтому и нет смысла создавать отдельный, когда у тебя уже есть один.


Я вот одного не могу понять толком: что делает await?
Я правильно понимаю, что он блокирует выполнение кода до окончания выполнения вызванного асинхронного метода. То есть останавливаемся и ждем, пока метод выполнится.
Или нет?
И что будет, если асинхронный метод (объявленный с ключевым словом async) вызвать без всякого await, то есть написать method (arg1, arg2...)? Он где-то выполнится асинхронно (возможно, в другом потоке), а выполнение метода, вызвавшего его просто продолжится? Или для такого поведения делать Task.run()?
173 1670229
>>670224

>await


аналог бинда асинхронной монады, так понятнее?
174 1670232
>>670229
Это и так понятно. Просто смущает данная фраза

>The await operator suspends evaluation of the enclosing async method until the asynchronous operation represented by its operand completes. When the asynchronous operation completes, the await operator returns the result of the operation, if any. When the await operator is applied to the operand that represents an already completed operation, it returns the result of the operation immediately without suspension of the enclosing method. The await operator doesn't block the thread that evaluates the async method. When the await operator suspends the enclosing async method, the control returns to the caller of the method.


Вроде в первом предложении написано, что вызывающий метод приостанавливается и "ждет" возврата из вызванного с await метода, но тут же написано, что поток не блокируется. Это как?
175 1670241
Аа, кажется разобрался. Можно вызвать асинхронный метод и код в вызвавшем методе пойдет выполняться дальше, а await можно вызвать уже позже, когда реально понадобится результат вычислений.
176 1670245
>>670224
Он оборачивает вызываемый метод в Task/Task<T> и добавляет к нему вызов ContinueWith после которого у тебя выполняется остальная часть кода, которая идёт после await.

например:

int sum = await Sum(2,2);

Оборачивается в

Task<int>.Run(()=>//здесь будет выполняться развернутый код асинхронного метода Sum).ContinueWith(r=>sum = r // и тут остальной код после await);

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

> что будет, если асинхронный метод (объявленный с ключевым словом async) вызвать без всякого await



Будет обычный Task.Run, после которого выполнение кода продолжиться, например:

int sum = Sum(2,2);
int sum2 = Sum(3,3);

Превратится в

Task<int> sum = Task<int>Run(()=>код Sum);
Task<int> sum2 = Task<int>Run(()=>код Sum);

И код продолжит выполняться.
177 1670247
>>670232
Это так, что поток освобождается и не ждёт выполнения операции. Т. е. он попадает в пулл потоков и тот уже распределяет его на другие задачи, которые нужно выполнять. Т. е. это избавляет от оверхеда при создании нового потока.
178 1670673
>>669481

>Тебе надо суметь вызвать метод на бэке (копай routes) через, например, Controller -> Action и вернуть какую-то модель обратно. В твоём html ты эту модель принимаешь и рендеришь чего надо. Хоть через Razor, хоть через asp теги, хоть вручную делая из жс ajax запрос.


Немного неочевидно написал, с твоего ответа может показаться, что мы на фронте можем что-то рендерить с помощью Razor и asp тегов, но всё это происходит на бэке, на фронт уже чистый html приходит.
179 1670702
>>670177
будешь CEO кофе носить и приказы исполнять. Такие кадры нужны, вкатывайся
180 1670764
>>669746
Фронт-енд не нужон, я так считаю. Джейсон жив.
181 1671014
>>670245

>например:


>


>int sum = await Sum(2,2);


>


>Оборачивается в


>


>Task<int>.Run(()=>//здесь будет выполняться развернутый код асинхронного метода Sum).ContinueWith(r=>sum = r // и тут остальной код после await);


>


Это жирный троллинг или ты просто долбаеб?
182 1671037
>>671014
Понятно, что там всё делается через стейт машину, внутри которой сощдается таск, но принцип одинаковый, как и результат.
await это обычный сахарок, который позволяет не засирать код созданием тасков и связанных с ними конструкций, именно таких которые я описал.
183 1671119
Есть массив Action мясистых, там их около тысячи штук. Как сделать, чтобы они выполнялись параллельно тредами из пула, но не все сразу, а только 16 одновременно? Т.е. чтобы пока не освободится тред, новый такс не стартовал?
184 1671127
>>671119
Ну сделай пул со счётчиком и запускай в новом потоке, увеличивая счётчик, при выполнении таска уменьшай. Крути всё это в цикле и всё. Но ты учти, если и тебя таски короткие, то будет только хуже с многопоточностью.
185 1671128
>>669746
Когда уже блазор-васм релизнут?
186 1671130
>>671119
Семафор, специально для этого
187 1671155
>>671127
>>671130
А че, однострочником никак? Мне щедулер писать обязательно самому?
188 1671161
>>671119
T P L
P
L

Parallet.For/Foreach могут принимать ParallelOptions, где можно установить MaxDegreeOfParallelism.
189 1671262
>>671161
Спасибо, бро, мне тут стыдно что самому в голову не пришло
190 1671286
>>671037

>но принцип одинаковый


Task run выполняет делегат в ОТДЕЛЬНОМ потоке из пула.
async await вообще не про это, так что нет, не одинаковый, никакого Task run там нет
191 1671341
>>671286

>Task run выполняет делегат в ОТДЕЛЬНОМ потоке из пула.



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

Вот тебе две ситуации на скриншотах.

1. Выполнение всегда начинает поток под номером 1, далее он отдает задачу в пулл потоков при помощи Task.Run и та выполняется свободным потоком, в это время поток #1 продолжает работу и доходит до оператора await, после чего он освобождается, передав задачу пулу потоков, и далее мы видим, что код после await всегда выполняется потоком, который взял на себя задачу после оператора await

2. Получаем тоже самое с использованием Task.Run().ContinueWith(t=>{}, TaskContinuationOptions.ExecuteSynchronously), только за счёт большего количества кода. Т. е. происходит именно то, о чём я писал.

И вот теперь мы можем представить, какой говнокод нам нужно было породить, если бы нам нужен был не один await, а несколько, между которыми были бы блоки кода.

>не про это, так что нет, не одинаковый



Не про это, потому что ты не понимаешь что происходит и тебе так кажется?
192 1671375
>>671341

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


Вот не надо тут. Зависит от контекста синхронизации
193 1671448
>>671375
Это уже детали. Если .ConfigureAwait(false) добавить после await то поведение будет таким же как в консольном приложении.
194 1671453
На # еще что ни будь пишут? Или клиент уже мертв, как и Delphi? Судя по тому, что посты движутся - это аутопсия студентов, но все же, хоть какая-то работа есть?
195 1671455
>>671453

>Судя по тому, что посты движутся - это аутопсия студентов



Первый раз в этом разделе и тыкнул на первый попавшийся (этот) тред? Или это очередной "наитончайший" троллинг от завидующего жаба-петуха?
196 1671470
>>671448
Да не то чтоб дтали. Довольно важная для понимания вещь, а у тебя относительно нее в самом начале поста неверное утверждение.
>>671453
Пишут. Просто тут серьезным людям делать нечего, есть места поинтереснее. Поэтому только ванаби и сочувствующие.
197 1671481
>>671470

>Да не то чтоб дтали. Довольно важная для понимания вещь, а у тебя относительно нее в самом начале поста неверное утверждение.



И в чём неверность? await всегда стремиться работать в том потоке, в котором он запущен.
198 1671482
>>671470
Посоветуй места поинтереснее.
199 1671484
>>671481
Сходи хоть доки почитай...
200 1671486
Анон, есть строка. Как её можно разделить на одинаковое количество символов?
Например, "какдела_" -> "какд ела_"
201 1671487
>>671484
От того что я доки почитаю у тебя знаний прибавится или как это работает?
202 1671495
>>671481

>await всегда стремиться работать в том потоке, в котором он запущен.


Вот в этом и ошибка. Не старается он ничего делавть, как я и писал, все зависит он контекста.
203 1671497
>>671495

>зависит от


fix
12123.jpg34 Кб, 420x360
204 1671498
15840341053751[1].jpg98 Кб, 830x360
205 1671501
>>671495
Почему все дурачки такие самоуверенные и даже не пытаются что-то почитать по теме, перед тем как начать срать себе в штаны?
206 1671502
>>671341

>Он ничего не выполняет, он отправляет задачу в очередь тред пула. Также, как и await.


Хорошо, не выполяет а отправляет задачу в очередь для выполнения на потоке из пула.
НО, это не отменяет того факта что:
async await НЕ разворачивается в кострукции вида

>>670245

>int sum = await Sum(2,2);


>


>Оборачивается в


>


>Task<int>.Run(()=>//здесь будет выполняться развернутый код асинхронного метода Sum).ContinueWith(r=>sum = r // и тут остальной код после await);


>



Никакого Task.Run там нет.
>>671341

>Также, как и await


Нет и еще раз нет.
Берем условный asp net.
Код вида

async doSmthAsync() {
var x = await DoSmthElseAsync()
}

По-твоей логике выше, есть один поток, встречается await с делегатом, который кладется в Task.Run, вызывающий поток освобождается.
Какой по-твоему в этом блять смысл? Освободить один поток чтобы занять другой из пула?

Код с async\await выполняется СИНХРОННО на том же потоке, до создания таска (не обязательно через Task Run, зависит от деталей реализации, возможно через taskcompletionsource, еще одного потока может не быть),
Если таска не завершена, то встречается await и поток освобождается.
Таска завершается (сигналит IOCP в случае с IO операцией), код после await продолжается возможно на другом потоке, тут уже зависит от контекста синхронизации

>>671341

>Не про это, потому что ты не понимаешь что происходит и тебе так кажется


Учитывая весь контекст высеров выше, я могу сделать заключение что это жирный троллинг.
Или же
>>671014

>ты просто долбаеб

206 1671502
>>671341

>Он ничего не выполняет, он отправляет задачу в очередь тред пула. Также, как и await.


Хорошо, не выполяет а отправляет задачу в очередь для выполнения на потоке из пула.
НО, это не отменяет того факта что:
async await НЕ разворачивается в кострукции вида

>>670245

>int sum = await Sum(2,2);


>


>Оборачивается в


>


>Task<int>.Run(()=>//здесь будет выполняться развернутый код асинхронного метода Sum).ContinueWith(r=>sum = r // и тут остальной код после await);


>



Никакого Task.Run там нет.
>>671341

>Также, как и await


Нет и еще раз нет.
Берем условный asp net.
Код вида

async doSmthAsync() {
var x = await DoSmthElseAsync()
}

По-твоей логике выше, есть один поток, встречается await с делегатом, который кладется в Task.Run, вызывающий поток освобождается.
Какой по-твоему в этом блять смысл? Освободить один поток чтобы занять другой из пула?

Код с async\await выполняется СИНХРОННО на том же потоке, до создания таска (не обязательно через Task Run, зависит от деталей реализации, возможно через taskcompletionsource, еще одного потока может не быть),
Если таска не завершена, то встречается await и поток освобождается.
Таска завершается (сигналит IOCP в случае с IO операцией), код после await продолжается возможно на другом потоке, тут уже зависит от контекста синхронизации

>>671341

>Не про это, потому что ты не понимаешь что происходит и тебе так кажется


Учитывая весь контекст высеров выше, я могу сделать заключение что это жирный троллинг.
Или же
>>671014

>ты просто долбаеб

207 1671505
>>671482
cyberforum, so, social.msdn и т.д даже на гитхабе есть интересные обсуждения. Это если вопросики порешать и обсудить фишки и фичи. А если похуесосить, то, конечно двач хорош, только не надо удивлятся, что вместо интересных тем тут обсуждения говно vs мочa.
208 1671511
>>671501
Напишу в третий и последний раз - этим занимается SyncronizationContext. Ты писал

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


это неверно.
209 1671515
>>671511
Всё что от тебя слышно это "НЕВЕРНО ЭТА НИТАК!!!", давай пример, который опровергает эти слова.
Показывай код, который после await выполняется не в том же потоке, в котором выполнялась асинхронная функция перед этим оператором.
210 1671518
>>671498
спасибо
211 1671520
>>671515
Ты сам называл такие случаи: ConfigureAwait(false) - и таска не будет использовать захваченный контекст или если захваченный контекст многопоточный.
aa.png6 Кб, 392x324
212 1671528
>>671515
Да в общем-то это поведение по-умолчанию, если не используется однопоточный контекст.
213 1671541
>>671502

>async await НЕ разворачивается в кострукции вида



Ты действительно настолько тупой или прикидываешься?
Перечитай хотя бы цепочку постов, человеку рассказали про стейт машину, он не понял, поэтому я и провел ему аналогию которую понять легче, использовав в ней Task.Run.
Тебе когда сложение в школе объясняли, приводя в пример какие-нибудь яблоки, ты тоже начинал кричать, что цифры это не яблоки?

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



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

Дальше идёт какой-то шизобред дауненка, который сломал себе голову в попытках понять асинхронность и многопоточность. Но виноват конечно не ты, а твоя непробиваемая тупость и самоуверенность, которая мешает тебе открыть соответствующую тему и изучить её.
214 1671562
>>671541

>поэтому я и провел ему аналогию которую понять легче, использовав в ней Task.Run.


Я пытался объяснить что 2+2 = 4, но не смог, поэтому сказал что 2+2 = 5
Понимаю
>>671541

>Уебище тупорылое


Я освободил один поток и занял другой.
>>671541

>в этом и смысл асинхронности


Понимаю
215 1671581
>>671562

>Я освободил один поток и занял другой.


Нет, ты лучше займешь UI поток CPU-bounded операциейи зафризишь весь интерфейс. Нет, ты будешь ожидать IO-bouded операцию похерев ресурсы. Ведь для тебя освободить текущий, а потом занять другой(или снова этот) поток это так тупо.
216 1671587
>>671520

>ConfigureAwait(false) - и таска не будет использовать захваченный контекст



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

Понял, дебилоид? Слово "базовый" тебе о чём то говорит? Почему тогда ты какие-то отдельные реализации приписываешь этому базовому, скажи нам, дебилоид.
217 1671595
>>671562

>Я освободил один поток и занял другой.


Или не другой, а этот же освобожденный, либо ты его не освободил, а дал ему возможность продолжать свою работу, как это происходит с потоками отвечающими за интерфейс. В чём проблема, сычуш? Слишком сложно для твоих куринных мозгов?
218 1671619
>>671581

>Нет, ты будешь ожидать IO-bouded операцию похерев ресурсы


Я не предлагал ее ждать, но никакого потока там нет.
Я выше уже писал.
Делаешь запрос к базе, сделав вызов из UI потока, GetSmthAsync(), весь код, выполняется синхронно, в этом же, UI потоке. Делается запрос к базе, возвращается Task, НЕ ЗАВЕРШЕННЫЙ, встречается await, UI поток НЕ БЛОКИРУЕТСЯ, ОСВОБОЖДАЕТСЯ.
ВСЁ. Завершается IO операция, на каком-то потоке продолжается код после await. На каком именно зависит от контекста синхронизации.
Никаких Task run в момент вызова GetSmthAsync НЕТ

>>671595

>Или не другой, а этот же освобожденный, либо ты его не освободил


Да какая разница, дебил, с твоей логикой асинхронность в условном вебе нахуй не нужна.
Ты предлагаешь ОСВОБОЖДАТЬ ОДИН ПОТОК, чтобы вернуть в пул, но при этом из пула забираешь другой. Вопрос, НАХУЯ?
>>671595

>В чём проблема, сычуш


Ни в чем, ты пытаешься жирно троллить, но у тебя не выходит, съеби с борды
219 1671646
>>671619

>GetSmthAsync()


>весь код, выполняется синхронно


>Async


>выполняется синхронно



Не перестаю проигрывать с животного.

>Ты предлагаешь ОСВОБОЖДАТЬ ОДИН ПОТОК, чтобы вернуть в пул, но при этом из пула забираешь другой. Вопрос, НАХУЯ?



Как было:
Потоку нужно сделать веб-запрос, он использует API системы в которой запущен процесс, т. е. использует неуправляемый код и начинает ждать ответ от этого неуправляемого кода, потому что система должна была ответить именно этому потоку, он создал I/O пакет и именно он получит ответ от системы.

Как стало:

Потоку нужно сделать веб-запрос он использует API системы в которой запущен процесс, т. е. использует неуправляемый код и ...

Вот тут напряги остатки своего мозга

он делегирует задачу ожидания ответа от неуправляемого кода тред-пулу, а сам освобождается, либо продолжает выполнять другую работу. Получив ответ от неуправляемого кода, тред-пул либо продолжает код после await без синхронизации контекста, т. е. в новом потоке, как мы это видели выше на скриншотах, потому что это стандартное поведение, либо он синхронизирует контекст с вызвавшим потоком и продолжит работу на нём, как это обычно происходит в приложениях с UI.

Что в этом сложного, урод? Почему ты до сих пор не можешь этого понять?
220 1671678
>>671646

>>Async


>>выполняется синхронно


До await код выполняется синхронно
>>671646

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


Ты в очередной раз обосрался
Обтекай

>>671646

>Что в этом сложного, урод? Почему ты до сих пор не можешь этого понять?


Что именно понять, долбаеб залетный, съеби уже со своим жирным троллингом
async await у него в Task run блять разворачивается, освободил один поток и занял другой, клоун блять
221 1671683
>>671678

>Ты в очередной раз обосрался



Ясно.

Просто запощу эти скриншоты для других. Понятно, что ты начнёшь отрицать, что всё не так изображено и что Рихтер в очередной раз обосрался, но здравомыслящим будет полезно посмотреть.
222 1671684
>>671128
Он и так на васм, шизик.
223 1671691
>>671587

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


Смотри что я тебе писал

>Зависит от контекста синхронизации


>все зависит он контекста.


>Напишу в третий и последний раз - этим занимается SyncronizationContext


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

> этому базовому


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

>но никакого потока там нет


Wow. Теперь в дотнете можно исполнять код вне потока! А мужики-то не знают.
>>671619

>Никаких Task run в момент вызова GetSmthAsync НЕТ


Я хз, что ты высрал. Я про таск раны ничего не писал.>>671619

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


>Ты предлагаешь ОСВОБОЖДАТЬ ОДИН ПОТОК, чтобы вернуть в пул, но при этом из пула забираешь другой. Вопрос, НАХУЯ?


В вэбе-то она как раз очень нужна, ибо дофига времени тратится на транспортном уровне, работой с базами и т.д. И поток освобождается и кладется в пул, что б другие задачи могли им пользоваться пока идут IO операции. Это же основы асинхронщины.
Еще раз для тебя дегенерата напишу: код после авэйта не всегда выполняется в том же потоке, что и до. Я хз зачем ты пытаешься с этим спорить.
224 1671700
>>671683
Как этот высер противоречит тому что я писал выше, что никакого ЕЩЕ ОДНОГО ПОТОКА, видимо тебе долбаебу нужно капсом, нет?>>671691

>Wow. Теперь в дотнете можно исполнять код вне потока! А мужики-то не знают.


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

>Это же основы асинхронщины


да, я понял ТВОИ маня основы асинхронщины: пришел запрос, его подхватил поток. в коде IO операция, вместо использование текущего потока, СОЗДАЕТСЯ еще один поток, который что-то там делает, а прошлый освобождается.
ОХУЕТЬ, вот это асинхронщина.
>>671691

>код после авэйта не всегда выполняется в том же потоке, что и до.


>>671619

>Завершается IO операция, на каком-то потоке продолжается код после await. На каком именно зависит от контекста синхронизации


Ты тупой, да?
225 1671701
>>671700

>СОЗДАЕТСЯ еще один поток


берется из пула, имел ввиду, в случае с твоим высером с task run.
226 1671702
Анон, если бы ты был жаба-джуном и получил офер на шарп-джуна, ты бы пошел? не галеры
227 1671706
>>671691

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



Долбоеб, в формовском и впфном он как раз не базовый, так как это фреймворки. Базовый как раз в консольном приложении и выполнение будет одинаково независимо от ConfigureAwait.

>авэйт не сохраняет поток.



Уебище дегенеративное, где я хоть что-то про сохранение потока писал? Потоки синхронизируются, а не сохраняются.
228 1671712
>>671702

>Тырпрайз джуны


>В постсовке


>Оффер жаба-джуну



ТВЁРДО И ЧЁТКО: .NET НЕ УМИРАЕТ
229 1671714
>>671712
Ты сам-то чьих будешь?
230 1671715
Ебать у вас тут токсично.
231 1671719
>>671706

>где я хоть что-то про сохранение потока писал?


>>671341

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



>>671700

>его подхватил поток. в коде IO операция, вместо использование текущего потока, СОЗДАЕТСЯ еще один поток, который что-то там делает, а прошлый освобождается.


Нет, дебич. Пришел запрос, его подхватил поток из пула, сделал запрос в БД, пока БД проперживается поток ушел обратно в пул и обрабатывает другие запросы. Когда БД раздуплилась как твое очко, поток из пула (любой) продолжил выполнение кода первого запроса.
232 1671721
>>671700

>Как этот высер противоречит тому что я писал выше, что никакого ЕЩЕ ОДНОГО ПОТОКА, видимо тебе долбаебу нужно капсом, нет?



Где вот в этом высере:

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


>Ты в очередной раз обосрался



Есть хоть что-то про еще один поток, долбоеб?

>берется из пула, имел ввиду, в случае с твоим высером с task run.



Так судя по всему для тебя разницы нет.
На скриншоте даже написано для таких умственно отсталых как ты, что именно тред-пул получает ответ от I/O устройства. Теперь вспоминай за что отвечает тред-пул и чем он управляет? Как он по твоему должен продолжить выполнение кода после await, обработав этот ответ? При помощи чего? При помощи магии дружбы? Или всё таки при помощи потоков которыми он управляет?
Ты пойми, долбоебик, когда ответ получен, он уже находится в одном из потоков и именно в нём происходит решение, производить синхронизацию исходя из захваченного синхронизационного контекста, передавая полученную информацию вызвавшему потоку, либо продолжить код после await самостоятельно, без синхронизации.
Именно для этого и нужен ConfigureAwait(false), чтобы не было траты ресурсов на синхронизацию, если тебе не нужно чтобы код после await продолжился именно в том потоке, в котором исполнялся код перед этим await.
233 1671722
>>671719
Ну и? Сохранение то где, уебище тупорылое? Он его не сохраняет, он синхронизируется с ним и продолжает выполнение кода после await в нём. В приложениях с UI есть поток который постоянно занимается интерфейсом и всё что с ним связано, поэтому если ты используешь после await объекты которые принадлежат этому потоку, тебе нужно синхронизироваться с ним, передавая ему полученные данные из await, либо просто сигнализируя о том, что таск после await выполнен и он может продолжать свою работу. Если этого не сделать, поставив ConfigureAwait(false), то программа вывалится в эксепшн, потому что поток из тред пула попытается получить доступ к объектам интерфейса.
234 1671724
Слишком толсто. опробуйте тоньше.
235 1671725
>>671724

>это не я долбоеб, это меня троллят!!

236 1671731
>>671725
Ты слишком часто меняешь позицию и игнорируешь ответы, а лишь выдаешь рандомные высеры. Как тролль ты неумеха, а как собеседник слишком туп.
237 1671751
>>671721
А ты знал, что в Core вообще нет такого понятия, как контекст синхронизации? Серьезно, я не троллю. Следовательно и ConfigureAwait() бессмысленно вызывать. Так что нужно освежить знания немного. И это очень важно, так как меняет очень многое.
238 1671784
>>671731
Конечно, ведь это у меня то кто-то обосрался, то кто-то троллит, ведь это я не предоставил никакого кода в доказательство своих слов, не приводил выдержки из статей и из книг.
239 1671787
Есть такая ситуация
Есть длл 1 которая зависит от длл 2
Длл 1 не знает о конкретной реализации некоторых классов длл 2, то есть обращается к ним через интерфейсы получая объекты типа интерфейса.
Как мне рассклеить длл 2 так чтобы там были только интефейсы, а в какой-то новой длл 3 вся реализация?
Тут получается что 1 зависит от 2, 3 тоже зависит от 2.
Однако 2 нужно знать как создавать объекты из длл 3 чтобы вернуть их 1 длл.

Может я хуйню написал и никто так не делает, поправьте если что.
240 1671790
>>671751
В каком Core, блять, дебил? ASP.NET Core это фреймворк, если от тебя его в нём скрыли, это не значит, что его нет, это значит, что тебе не дают управлять данным поведением и всех подстраивают под своё решение.
241 1671794
>>671787
Берёшь и расклеиваешь, очевидно. Делается это при помощи паттернов проектирования, какой из них нужен именно тебе зависит от кода, решить это по "вот длл от этой а вот та от этой в этой интерфейс а та объекты из того создает" невозможно.

Вот это - Agile Principles, Patterns, and Practices in C#, от роба мартина, почитай. Там как раз такие ситуации описываются и разбираются.
242 1671900
>>665540 (OP)
Сап,
Один из референсев не установился или не находится и выходит ошибка Assembly not found for framework .Net Framework 4
Подскажите что не так и как можно пофиксить?
243 1671901
>>671900
Может то что ты пытаешься установить не совместимо с 4 фреймворком на котором ты создавал текущий проект в который пытаешься добавить зависимость.
244 1671905
>>671901
Вполне возможно. 4 как я понимаю самая новая версия и из неё могли выпилить старый референс. Тогда как узнать в какой версии он был чтобы откатиться к ней?
245 1671954
>>671905

>4 как я понимаю самая новая версия



Сильное заявление. Все уже давно на NET Core 3.1 перешли, а у тебя 4 фреймворк - самая новая версия. Нет, она не самая новая, самая новая из .NET Framework это восьмая. Самая стабильная и обратно совместимая со всеми другими - .NET Framework 4.5
246 1671982
>>671715
Это два чувака отношения выясняют, причём используют периодически аргументы оппонента как их собственные. Но вообще - да.
247 1671996
>>671751
>>671790
https://devblogs.microsoft.com/dotnet/configureawait-faq/

>I’ve heard ConfigureAwait(false) is no longer necessary in .NET Core. True?



>False. It’s needed when running on .NET Core for exactly the same reasons it’s needed when running on .NET Framework. Nothing’s changed in that regard.



https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md#configureawait
А тут вообще TBD (to be determined).
248 1672011
>>671954
Хорошо, значит 4 стабильная. Перепроверил настройки VS, там 3.1 версии стоят.
Как исправить проблему с Assembly not found?
249 1672048
>>672011
Бля, анон, 3.1 это core, 4.х это framework
Это разные вещи, параллельные, так сказать
Ты скажи, что ты подключаешь и откуда
250 1672103
>>671996
Там как раз и написано, то о чём я сказал - создатели фреймворка сдеоали везде поведение как при configureawait(false), но это никак не влияет на используемые сторонние библиотеки, если у них внутри есть нестандартный синхронизационный контекст, то он будет использоваться.
251 1672105
>>671982
Не два, а три. И они делятся на - не понимает асинхронизацию, понимае наполовину, понимает.
252 1672126
>>671794
Двачую этого токсика, у дяди Боба все написано.
253 1672433
>>671455

>жаба-петуха


судя по indeed.com - джависты себя получше чувствуют. Не тролинг, сам когда то писал на этой хуйне
>>671470
случайно на тред наткнулся и зря ленту скролил - одни помои. Поэтому и пришел к мысле, что дела у .NET-а не очень хороши, раз такое пишут
254 1672434
>>672433
дополню: Разве десктоп жив? Зачем студентом проекты на WPF/WinForms? Тупо время молодняка убить?
255 1672467
>>672434
По хорошему WinForms должен быть - всё.
Но МС продолжают выпускать обновления и поддерживать его до неопределенного периода времени. Вполне вероятно у них огромный багаж легаси на этом фреймворке и они хотят чтобы программисты, поддерживающие этот легаси, не отставали от современных разработок и когда придёт время, смогли перепрыгнуть без прям очень сильного головняка.

В целом рынок десктопных приложух жив и пока будет жить, поэтому UWP/WPF вполне можно учить. Оосбенно учитывая то, что XAML используется Xamarin'ом для мобилок и WPF опыт легко на него переносится.
256 1672768
>>672467

> По хорошему WinForms должен быть - всё.


Вот хуйня какая-то. У WinForms есть вполне определённое применение - простые оконные приложения, утилитки и т.п. Данные какие-нибудь вводить-обрабатывать, с БД работать, всю эту хуйню на WPF писать, нахуя?
257 1672976
Поясните нюфагу сакральный смысл аксессеров, пожалуйста.
Почему их юзают, почему бы просто не создать публичное поле?
258 1673018
>>672976
Основная причина багов - возможность изменения состояния переменных. Чем больше кода будет в read-only mode, и чем меньше кода будет публично доступно всем остальным для использования - тем меньше у твоего проекта будет проблем.

По умолчанию всё должно быть private readonly. А дальше думать что конкретно открыть для публики, чтобы выполнить текущую задачу.
VirtualBoxwin730042020111330.png125 Кб, 1280x800
259 1673599
Двачик, подскажи пожалуйста с windows forms.

Проблема: не могу реализовать синхронное отображение в лейбле результатов выбора из списка (listBox).

Как выглядит решение проблемы: жмакаю мышкой на элемент из listBox --> в lable'e мгновенно отображается описание выбранного элемента.

Единственное, что нагуглил - это отображение в messageBox значения (не описания) элемента из comboBox.

https://metanit.com/sharp/windowsforms/4.6.php

Исходников нет т.к. вся форма захардкожена.
260 1673626
>>673599
Доки не читал?
Screenshot 2020-05-01 at 16.58.48.png63 Кб, 845x591
261 1673753
>>673626
Читал, почти не разобрался (примеры уровня "вот смотрите карой как этот метод использует свойство "свойствонейм" из библиотеки "хуй-пизда" сложны для восприятия)": оказалось примерно сутки пользовался текст боксом вместо лейбла.

После всех потугой получилось сделать такую штуку:

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

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = listBox1.SelectedItem.ToString();
}

--> результат: при смене элемента из listbox'a значения копируются в label.
Осталось только понять как организовать такой вывод через массив
(по формулировке : "ключ" : "значение" , где "ключ" отображается только в listbox'e, a "значение" отображается только в label'e)
262 1673766
>>673753
Я такую фигню для лабы еще в 2006 делал. Нынче это вообще на раз два делается. Пройдёт пару лет и ты от своего собственного поста будешь фейспалмить. У меня щас такое от моих собственных постов в нулевые.

В доках всё есть. Судя по всему у тебя еще знаний не хватает чтобы в доки вникать нормально. Поэтому тут тебе только пример с кодом поможет. Надейся на анона.

первое что нагуглил - https://stackoverflow.com/questions/10239392/c-sharp-combobox-options-dependent-on-another-combobox
263 1673840
>>673766
спасибо анон <з

попробую сдать как есть.
264 1674099
Пацаны, как там обстоят дела с неткором, раньше писал худобедно чтобы на луниксе через Gtk# работал гуй, сейчас можно просто использовать виндовый гуй чтобы он везде работал?
265 1674131
>>674099
Нельзя, потому что виндовый использует инфраструктуру винды, её api, которых нет на других ОС. Для кроссплатформы есть отдельные фреймворки, официальный- Xamarin.
266 1674441
Почему не разделяет строку на каждый символ? Размер листа 1, то есть он не разделился.

//List<string> bin = Convert.ToString(n, 2).Split('\0').ToList();
267 1674502
>>665540 (OP)
Аноны, как получить ссылку на структуру? Есть классы с массивом таких же классов, сами классы мелкие и их много, поэтому хотел сэкономить на указателях на класс и слепить всё на структурах, но GC не даёт ничего сделать и трёт их нахуй. Мне теперь надо все взаимодействия с массивами внутри структуры только из самой структуры производить? Как вложенные структуры изменять, если я не могу в функцию передать эту структуру? С классами всё просто - взял его и таскаешь указатель куда хочешь. А теперь, как я понимаю, всегда создаётся копия структуры и я создаю/меняю копию массива, которая потом удаляется. Массив же это указатель на первый элемент. Так какого хуя ничего не работает и как будто я меняю копии, а оригинал даже не создавался?
268 1674535
>>674441
У тебя нет \0 в полученной строке. Чтобы разделить строку на символы достаточно вызвать .ToList(), Split не нужен. На выходе получишь List<char>. Если нужен List<string>, то .Select(q => q.ToString()).ToList().
269 1674634
>>674535

>нет \0


Как нет, если раньше я обычные слова разделял и он там был оО. Разве \0 является 'пустым' разделителем? Или это все таки костыль?

Спасибо за подробный ответ, все получилось.

Почему при каждой новой операции приходится создавать новые переменные. это же нехорошо с точки зрения и чтения и памяти?

Для каждого select, join, toarray и тп приходится создавать переменную почему он не может в процессе просто менять тип переменной? И еще не очень понятно почему некоторые цепочки работают, а некоторые-нет, приходится сначала делать Join в новой переменной, и уже потом return ConvertTo(новая переменная).
270 1674838
ае
Столкнулся с проблемой. Нужно произвести поиск одинаковых элементов в списке и вывод количества одинаковых элементов(прим.: оконная рама - 1 шт, дверная рама - 3 шт, дверь - шт). Не знаю с чего начать, может кто шарит за эту тему?
271 1674840
>>674838

>Не знаю с чего начать


С введения в алгоритмы.
272 1674930
>>674634
Уже прошло больше месяца, а ты все пытаешься писать на шарпе, как будто это жс. Неужели тыкать наугад пока не получиться проще, чем прочитать основы и делать нормально, понимая что к чему...
273 1675067
Сап двач. Возник такой вопрос. До C# прогал на Java, Rust, C и Петухе. Прочитал про основы C#, дальше хочу изучать по мере программирования, но возникла одна небольшая проблема. Я не знаю, что программировать. Вообще. Не могли бы вы дать рекомендации по данному вопросу?
274 1675075
>>672467
шо то хуйня, шо это хуйня. Имо лучше бы мелкософты сделали для десктопа что нибудь с html синтаксисом, чтобы не нужно было ебаться с конструктором или XAML. Хотя каждому свое, сейчас 99% это веб, на десктоп многие просто забивают хуй
275 1675165
>>675075
С XAML и не нужно ебаться, всё просто и интуитивно понятно. Нсли у тебя воли только на хтмл хватает, то это далеко не повод лепить его всюду.
276 1675167
>>675067
Переписывай свои старые проекты на C# или найди работу
277 1675185
>>675165

> С XAML и не нужно ебаться


> всё просто


> интуитивно понятно


АХАХАХАХАХХААХХА
Я работаю в бекенде, но есть у меня латентный интерес к интерфейсам. Так вот, месяца четыре я делал всякие поделки на wpf/xamarin forms. Получалось какое-то утилитарное говно. Пришлось вникать в dependency property, разбираться с унылым бойлерплейтом, наблюдать протекающую абстракцию в виде куска mvvm. Красивым код назвать было нельзя. XAML – говно, ИМХО. Как вспомню, так тошнить начинает. Inb4 РРЯЯЯ НЕАСИЛИЛ инструмент не должен пихать палки в колеса. Иначе могу предложить тебе спуститься на winapi

Потом попробовал Vue. Анон, это прекрасно. У меня почти не возникало вопросов, как сделать что-то. Удобное разделение компонентов, читаемый синтаксис, куча компонентов. Абстракции не текут, бек и фронт общаются через WEBAPI
Но самый идеал, мне кажется, это Blazor. Пока ещё не ковырял, но мануалы глянул
278 1675187
>>674838
var input = new[] {"Дилдо", "Массажёр простаты", "Дилдо", "Резиновая кукла", "Дилдо"};
var output = string.Join(", ", input.GroupBy(x => x).Select(x => $"{x.Key} {x.Count()} шт"));
Console.WriteLine(output); // Дилдо 3 шт, Массажёр простаты 1 шт, Резиновая кукла 1 шт

Оче советую почитать книжку Скиены "Алгоритмы. Построение и анализ." Красная такая. Хотя может быть даже тяжеловато будет
279 1675192
>>674634

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


Показывай что ты там разделял и где (версию фреймворк/коре).

>Разве \0 является 'пустым' разделителем?


Это обычный символ, как 'a', 'b' или 'c' - строки у нас length-prefixed. А ещё и нуль-терминированные, но только лишь в целях безопасности и совместимости - к этому нуль-терминатору нельзя получить доступ. Потому то строка может включать любое количество \0 и в любом месте. Другое дело что \0 обрабатывается в недрах кода по разному и в зависимости от культуры. Он может как игнорироваться при сравнении, так и учитываться.
Пустым разделителем будет передача null как аргумента Split(null), тогда в качестве разделителя будут использованы пробельные символы. Скорее всего ты именно так и делил.

>и он там был


Значит такая строка у тебя была, с \0 вместо пробелов ("aaaaa\0bbbbbb\0ccccc")
280 1675243
Посоны, изучаю ASP.NET Razor pages, на моем уберсайте юзер может загрузить файл на сервер. Вопрос, если я его буду сохранять в wwwroot это нормально? Если нет, то как правильно настроить папку для контнента, при условии, что сайт может крутиться и на венде и на линупсе?
281 1675345
Читаю сейчас The C# Player's Guide 3rd Edition (RB Whitaker), Господи, охуенная книга. Прошел темы Basics и ООП. Хотелось бы где-то применить знания, а то пока я дочитаю до конца то забуду что читал раньше. Но вот в консоли же хер что напишешь, а посему вопрос: читать паралельно литературу по WPF и пробовать писать простенькие программки или всё же осилить Player's Guide до конца?
Алсо так и не понял, зачем нужны интерфейсы?
282 1675362
>>675345

>а то пока я дочитаю до конца то забуду что читал раньше.


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

> Но вот в консоли же хер что напишешь


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

>Алсо так и не понял, зачем нужны интерфейсы?


Для реализации полиморфизма. Проще говоря, для того чтобы код было легче читать и поддерживать, меньше лезть в уже написанный код, а только расширять его создавая новые классы, которые наследуют существующий интерфейс. Интерфейсы и абстрактные классы служат инструментами обобщения, т. е. ты видишь одинаковый код в различных классах, значит тебе весь этот код нужно вынести в абстрактный класс, если ты видешь одинаковую сигнатуру методов, значит эти классы нужно объединить интерфейсом, который в свою очередь будет содержатиься в другом классе, работающим с классами, реализующими интерфейс.
283 1675364
>>675362

>в каком примерно направлении

284 1675384
>>675362
Имеет смысл. Спасибо.
285 1675504
>>674930
У меня нет возможности читать, да и читать нечего. В 100 раз читать введение в язык когда тебе пишут тут луп, тут суп не продвигает тебя ни на йоту.
Да и жс и вообще принципы программирования я выучил только на практике, практика это все, тонны мукулатуры без должного менторства и гайдов правильных не дадут тебе ничего. Тыкая сам и задавая вопросы почему это работает так, а не этак заставялет тебя реально думать о концептах и самому экспериментировать, а не списывать под копирку. Вот когда база освоена, можно углубиться в книжонки. Базарю, такой подход работает даже на пнях, проверено.
286 1675516
>>675504
В каждой книги, в предисловии, написано на каких читателей она направлена. Сначала выбираешь те, что направлены на новичков, потом переходишь на средний, после чего на продвинутый. Соответственно, проекты выбираешь соответствующей сложности, либо работаешь с одним, постоянно расширяя и улучшая его.
А ты сейчас просто лбом бьешься в закрытые ворота, да, они немного приоткроются, но стоит ли это потраченных сил и времени, когда ты мог просто использовать вышеописанный подход?
287 1675523
>>675516
Ладно, потрачу еще денек на свои задачки, не сделаю норму, пойду читать.
288 1675931
есть dataGridView.

у него подписаны заголовки. можно ли отсортировать столбцы dataGridView по этим заголовкам?
289 1675941
Аноны это пиздец. Дали задачу в университете реализовать секущий, нашел на вики пример скопипастил.
Но тут возникла пиздец, в моей функции есть логарифм и в него иногда попадает отрицательные значения. Как быть?

Сама функция : 2 math.Log2(x+7)-5math.sin(x)

Да, можно сделать вот так, по свойствам лог: math.Log2(math.pow(x+7,2))
Но это не помогает

Если начинать брать больше -7. то начинаются большие расхождения

Сверялся с https://www.wolframalpha.com/input/?i=2++ln%28-8%2B7%29+-+5++sin%28-8%29

Аноны прошу, помоги, очень надо
290 1675943
Есть какой-нибудь гайд как прогать в visual studio/rider с использованием только клавиатуры?
Сильно привык к работе за ПК с мышкой и сейчас на ноуте из-за тачпада это сильно тормозит меня так как я привык кучу вещей делать через мышь и вот думаю переучится на клаву.
291 1675956
>>675931
решил проблему другим способом.

просто перебрал двумерный массив по столбцам
292 1676004
>>675943
может мышь без или проводную легче купить?
293 1676022
Ребята, я очень глупый и мне сложно быть полностью уверенным когда переменные и не только должны быть public, когда private, а когда вообще protected. Может дадите какую-нибудь статейку почитать?
294 1676107
Переходите на кокоре, говорили они, за кокоре будущее, говорили они, хоть сейчас бери и в прод, кококо. Нахуя эти пидорги добавили TakeLast, если EFCore не умеет в него. Какого хуя? Они же поломали LSP, Enumerable могёт, а Queryable не могёт. Ууу сука они мне жопу подожгли, пол часа ебался со своим запросом, а оказывается TakeLast не завезли.
295 1676110
>>676022
Всегда private.
296 1676119
>>676107
Ладно, меня чуть отпустило. Оказывается Last тоже не работает и не работал в EF6. Кривовысранное поделие этот EF.
297 1676121
>>676022
Agile Principles, Patterns, and Practices in C#
298 1676125
>>676119
>>676107
Да мы поняли уже, что виноват не долбоеб-программист, а фреймворк/язык/среда выполнения
299 1676193
>>676125
А ты считаешь это нормально?
300 1676195
Надо написать программу для выделения объектов на фотографии. Что почитать на эту тему?
301 1676197
>>676195
OpenCV
302 1676200
>>676193
Очевидно, что это сделано для того чтобы такие дурачки не выстреливали себе в ногу работая с запросами к базе данных.
303 1676209
>>676197
Библиотеки нельзя использовать
304 1676225
>>676209
У библиотеки исходный код открыт.
305 1676226
>>676200
Можно по-подробнее? Ну вот не дали мне foo.TakeLast(5) сделать, я написал foo.Skip(foo.Count() - 5). Почему второй вариант лучше чем готовая поддержка из коробки, тем более, что методы есть?
306 1676227
>>676209
Тогда придеться писать свою нейросеть. Но раз ты задаешь такие вопросы на дваче, то 99% что ты не напишешь её.
307 1676228
>>676226
Возможно потому, что всё это синтаксический сахар.
мимо
308 1676295
Аноны есть массив из 4 элементов и нужно реализовать следующее:

с, b - элементы из массива

z - кол-во элементов в массивах (4 штк)

x(z - 1) = - с(z) b(z)
x(z - 2) = - с(z - 1)
b(z - 1) - с(z)b(z)
x(z - 3) = - с(z - 2)
b(z - 2) - с(z - 1)b(z-1) - с(z)b(z)
x(z - 4) = - с(z - 3) b(z - 3) - с(z - 2)b(z-2) - с(z - 1)b(z-1) - с(z)b(z)

Как сделать эту хуету в цикле? Битый час над этим думал, пизедц. Аноны пожалуйста помогите
309 1676300
>>676295
У препода спросишь.
310 1676303
>>676300
Если бы. Он на связь собака не выходит
311 1676316
>>676295
час это ничто, я за час успеваю только лишнюю запятую найти
не сможешь решить за 5-10 часов тогда и приходи, а то ты вообще расслабился я смотрю
312 1676337
>>676316
так я попутно другое делал, просто я понимаю что делается эта штука легко. Но не могу представить, не хочу прост на этом долго застревать и перейти уже к другому пункту
313 1676342
>>676337
Ну ничего, в следующий раз ты сделаешь правильный выбор между маняме и обучением, не отложив второе на потом.
314 1676353
>>676295
Через метапрограммирование? Ну, формировать этот в цикле в string builder'e, потом скомпилировать и подключить как сборку. Но, мне кажется, за такое решение тебя взъебут
315 1676355
>>676342
Да при чем тут аниме. Просто еще есть парочка более интересных задач, чем циклы в циклах и еще раз в циклах
316 1676361
Introduction to Neural Networks with C# (Jeff Heaton)
В книге заметил следующий код:

Matrix weightMatrix = new Matrix(3,2);
double[] thresholds = new double[2];

Написал его (консольное приложение), а мне рычит, что мол нет такого класса. Может директиву какую нужно подключить? Или это не в консоли нужно делать?
317 1676364
>>676361
Нужно добавить ссылку на сборку, которая содержит в себе класс Matrix
318 1676366
Или структуру
15866136025300.jpg5 Кб, 230x219
319 1676376
>>676361
Нажми alt+enter где рычит. Или на значок лампочки
Если пропустил using, будет соответствующая подсказка

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

Services? Так у меня уже есть сервис, который как служба. Он, допустим, каждые пять минут базу проверяет на предмет новых записей. У меня уже нет идей
320 1676391
Сап анон, у меня вопрос по OAuth. Что делать с redirect_uri?
Вот есть у меня допустим дискорд бот на С#. Когда приходит определенная команда, бот, если юзер не авторизирован (если нет в базе client_id и access токена), просит авторизироваться и кидает в лс ссылку на oauth авторизацию. После авторизации идет на редирект на some_uri.com/?code=auth_code. auth_code нужен чтобы получить accessToken.
И вот что мне делать дальше? Писать отдельное приложение, которое будет хэндлить запрос по этому руту, вытаскивать с него auth_code, делать запрос, получать accessToken и добавлять в базу? А если я хочу чтобы бот написал юзеру что авторизация прошла успешно? Что делать дальше, анон, помоги.
321 1676396
>>676295
я
и
с
р
у
к
е
рекурсия
322 1676399
>>676396
так мне за нее пизды дадут. Мы пока до этого не доходили и скажут что из инета взял пример, только циклы, только хардкор
323 1676439
>>676376
Зависит от паттерна проектирования.
324 1676457
>>676209
Земля тебе пухом
325 1676670
>>675943
Я себе на рабочий стол вешал скрин с основными шорткатами от самой студии https://docs.microsoft.com/en-us/visualstudio/ide/default-keyboard-shortcuts-in-visual-studio?view=vs-2019
и от решарпера.
Натаскался за пол года и теперь мышь использую редко. Намного быстрее работать получается и кисти больше не болят.
326 1676694
>>676376
Раньше делали стандартный набор:

Repository/Persistence
Services
Domain
Web

Щас, после промывки мозгов дядей бобом (Uncle Bob) делаем так:

Core
Application
Domain
Infrastructure
Persistence
ExternalWebApi
Messaging
Любой внешний сервис
Presentation
Web
Api
iOS/Anroid/Desktop/Чего душа пожелает (ну или бизнес)
Tests
327 1676698
>>676694
Макаба пробелы съела, давай еще раз, только с дефисами.

Repository/Persistence
Services
Domain
Web



Core
--Application
--Domain
Infrastructure
--Persistence
--ExternalWebApi
--Messaging
--Любой внешний сервис
Presentation
--Web
--Api
--iOS/Anroid/Desktop/Чего душа пожелает (ну или бизнес)
Tests
328 1676845
>>671954
Хорошо, значит 4 стабильная. Перепроверил настройки VS, там 3.1 версии стоят.
Как исправить проблему с Assembly not found? >>672048

>Ты скажи, что ты подключаешь и откуда


Короче я решил допилить одно приложение. Установил VS, mono, клонировал сам проект с гита. Напротив одного из референсов стоит красный крестик и ошибка Assembly not found.
Добавить его через Add references не получается, его там нет. На этом месте я хз что делать.
image.png862 Кб, 1200x857
329 1676855
аноны, быстровопрос, где нужно ловить ексепшин? одни говорят что ексепшин надо словить в том же методе где он выступает другие что надо ловить его выше, на какой стул сесть на какой мать посадить, какие подводные у этих двоих решений?
330 1676884
>>676698
Спасибо, анон. В принципе, это то, что нужно
331 1676886
>>676845
Может, тебе numerics нужен? Кажется, матрицы там есть
Я не помню, а сейчас гуглить неудобно
332 1676961
>>676855
Смотря что именно тебе нужно. Допустим, у тебя есть метод, взаимодействующий с тысячами объектов в базе. Соответственно, если у тебя будет ошибка соединения с базой, у тебя прервется полностью выполнение метода. Чтобы такого не произошло, можно ставить локальный обработчик. https://dotnetfiddle.net/uIRRAC

По "выше": допустим, у тебя есть апи (Опустим пока возможность использования атрибутов для обработки исключений)
Имеет смысл делать каждый метод обращения в следующей форме: https://dotnetfiddle.net/GIYPmc
Чем кидать необработанное исключение, если оно где-то нашлось, лучше его обработать и сохранить куда надо
333 1676967
большое спасибо за примеры!
334 1676969
>>676961
большое спасибо за примеры!
335 1676979
Может кто сталкивался тут с проблемой unload с json в core 3.1
Не получается делать unload когда использую хотя бы раз serialize или deserialize с типом из сборки которую затем надо выгрузить.
Нашел такую же проблему в issue https://github.com/dotnet/runtime/issues/13283
Но решения оттуда не помогают, если убирают работу с json все работает как надо, но с ним ничего выгружаться не хочет.
Испробовал Newtonsoft, utf8json, Jil и стандартный json, что делать уже ума не приложу.
336 1677109
>>676979
Вызывай serialize или deserialize уже после того как выгрузишь сборку. JSON это же строка, сохранить её перед выгрузкой сборки труда не составит.
337 1677112
>>665542
>>665540 (OP)
Обновите инфу на актуальную.
Некоторые ссылки идут на 404.

Джозеф Албахари, Бен Албахари "C# 7.0. так понимаю, что 5.0, которое есть в шапке это старая версия? или пролог,первая часть? Справочник. Полное описание языка"
или таки
Эндрю Троелсен "Язык программирования C# 5.0 и платформа

Ангельский не знаю, но по причине того, что очень глубоко лезть не буду, думаю этого будет достаточно.

Вопросы будут нубские, эта ебанутость для ознакомления
338 1677118
>>677112
Алсо: Визуал Студио скачал, нагрузки поставил. Есть какие нагрузки для нубов?
до этого чисто по ошибке, лол ставил Визуал Студио Коде. И охуел с того, как VS за тебя дописывает и исправляет строчку.

ЗЫ: в примере по самоучителю предлагают такой код
System Console.WriteLine. Я правильно понимаю, что на текущий момент System не пишется?
339 1677120
>>677118

> нагрузки поставил


*ну основную, для С#
340 1677121
>>677112

>Обновите инфу на актуальную.



Скажи спасибо, что перекатили.

>Джозеф или Эндрю



Троелсен, конечно, Джозеф это вообще не учебник, а своего рода справочник, который детально разбирает каждую часть языка не вдаваясь в информацию для новичков. От Рихтера её отличает только отсутствие разбора IL-кода.
Сначала читаешь Троелсена, потом уже можешь прочитать Джозефа. После чего переходишь к Рихтеру. Закрепляешь всё паттернами и принципами проектирования:
Agile Principles, Patterns, and Practices in C#
И всё, считай уже можешь пилить свои тудушки. Останется только отдельно почитать литературу по базам данных, EF Core, ASP NET Core и ты будешь готов к вкату.
341 1677122
>>677121
Я не знаю, что такое "тудушки" и "вкату". Я просто знакомлюсь с языком, чтобы понять юнити, чтобы понять ink.
Спасибо за выбор автора
342 1677132
>>677122
Для юнити тебе нужен хороший математический бэкграунд.
343 1677161
>>677118
Если у тебя в файле указано "using System;", то System можно не писать. Если есть учебник по Троелсену 6.0 на русском - раздел "Доступ к пространству имен программным образом"
344 1677192
>>665540 (OP)
Если заблокировали аккаунт на майкрософт и требуют принять смс для разблокировки (хотя я ничего не нарушал но телефон палить не хочу винда лицензионная) - можно ли создать другой аккаунт на фейкопочту и спокойно работать дальше?
После открытия проекта через 5-10 секунд появляется экран входа и убрать его нельзя.
345 1677630
>>677109
Так очевидно я использую тип из сборки которую загружаю в качестве параметра для json. Из-за внутреннего устройства библиотеки она кэширует его где-то там в результате из-за этого ничего выгрузить нельзя. Если бы я хотя бы смог узнать где оно кэшируется то через рефлексию бы чистил, но там черт ногу сломит.
Пришлось написать свой парсер с возможностью очистки кэша по типу и в результате все выгружается.
Пока создатели библиотек не добавят такой функционал думаю придется своим велосипедом пользоваться для выгружаемых библиотек.
А ждать походу придется долго, так как проблема у многих еще в прошлом году появилась.
346 1677678
>>676979
Отпишись в их issue, что все варианты перепробовал и оно всё равно валится. Приведи пример кода. И себе и коммьюнити поможешь.
1588740309142.jpg47 Кб, 636x536
347 1678427
>>676698
Снова тот анон. Пытаюсь разобраться с архитектурой. Открыл пару примеров на github с небольшими проектами. Кажется, что это какой-то шлак
Например:
https://github.com/ivanpaulovich/clean-architecture-manga

Больше всего я не понимаю, зачем вводить UnitOfSet со своим репозиторием, когда у нас есть охуенный EF? Он уже абстракция, и имеет кучу адаптеров к разным базам

В итоге мы получаем кучу лишних строк кода и, самое плохое, деградировавший функционал. Более того, это дерьмо не гарантирует транзакционности. Анон, может, ты скажешь, зачем так пишут?
348 1678505
Криптобояре на месте?
Чому если из мелкософтовского системного экзешника выдрать X509Certificate, на его основе создать X509Certificate2 и попробовать его верифицировать, то верифай возвращает false (например, тот же lsass.exe или svсhost.exe)? Пользовательские (например стим/хром/дискорд) верифаятя нормально. Объясните мне тупому плс кто в этом шарит.
349 1678568
Подскажите годную книгу по entity framework, в первых двух постах пусто
350 1678599
>>678568
А не слишком ли целая книга по орм'ке? Тем более оно там все меняется. Бери доки да читай.
351 1678601
>>678568
У троелсена читай, потом документацию.
352 1678705
Аноны, я здесь новенький. Знаю JS и Python. Вижу очень часто С# в качестве бэка (веб). Хочу вкатиться, шапку читал, был небольшой опыт с чистым С и даже Asm. Но постоянно сомневаюсь - а нужно ли оно мне? Вижу C# я в основном в серьезных структурах, в васянских пыха, нода. Так вот, мне нужно только ваше мнение
353 1678715
>>678705
Так ты сам себе ответил. Да, если ты собрался делать проекты для малого бизнеса (васянов), то никто не обрадуется твоим поделиям на .NET, которые требуют больше времени, при этом предлагают лучшую производительность и расширяемость (которая малому бизнесу нахуй не нужна). Если ты собрался работать на более-менее уважающие себя компании, то такие компании не обрадуются, когда узнают, что ты им бэк собрался пилить на пыхе.
уэааа уэааа уЭАААААА.webm864 Кб, webm,
720x720, 0:04
354 1678737
>>665540 (OP)
Блять сука, вот почему линейные участки программы легче поддаются оптимизации, чем все другие части внутреннего представления программы и объектного кода?!?!?!?!? сука не понимаю объясните
355 1678889
>>678705
В тренде сейчас Blazor, остальное сосет.
356 1678927
>>678505
https://stackoverflow.com/questions/1182612/what-is-the-difference-between-x509certificate2-and-x509certificate-in-net

Первый был черти когда сделан, с тех пор много чего в алгоритмах поменялось. Исходники копать лень (если они для первого вообще имеются в открытом доступе).
357 1679018
>>665654
А где высокие?
358 1679025
>>679018
Прокуратура, таможня
359 1679083
Помогите кто-нибудь, я уже с ума схожу, я не могу понять почему этот блядский кусок кода работает черех жопу.
https://pastebin.com/P3pykf5U
Код просто поочерёдно берёт строку из файла и смотрит, из каких символов она состоит. Если только из нужных, то возвращает true. И всё работает замечательно, НО, когда я пытаюсь записать правильную строку в другой файл, то начинается какая-то магия. Конкретно вот тут
if (right == true)
{ sw.WriteLine(line); }
else { sw.WriteLine("NET"); }
Мне не нужен этот else. Если запустить с else, то он запишет и нужные строки и ненужные, на месте ненужных будет NET. А теперь внимание, если убрать этот else, то он ВООБЩЕ НИЧЕГО не запишет, хотя должен записать только нужные, что логично. Причём прога в if заходит, отрабатывает код, но не записывает ,сука ебаная, файл пустой.
360 1679085
>>679083
Сейчас для интереса сделал вот так

>else { sw.WriteLine(""); }


и получил то, чего и хотел, но мне просто интересно уже.
361 1679088
>>679085
А, не, нихуя, я думал, что если с writeline прокатило, то можно и просто write, чтобы кучи пустых строк не было, но нет, лол, если write, то он опять-таки нихуя не записывает.
362 1679090
>>679025
Прикольно, не похоже на языки программирования.
363 1679097
>>679083
>>679085
>>679088
Ты бы хоть тестовый файл скинул, а то там у тебя кодировка необычная, может в ней дело. И про Flush/AutoFlush не забыл?
364 1679121
>>679097
Это японская кодировка, я с ней уже поработал немного, никаких проблем не было. Autoflush не было, врубил и ничего не поменялось.
Код https://pastebin.com/m0HgVenx
https://dropmefiles.com/GD2zO
365 1679135
>>679121
var input = Environment.GetEnvironmentVariable("HOME")+ "/Downloads/source.txt";
var output = Environment.GetEnvironmentVariable("HOME") + "/Downloads/output.txt";
var allowed = "ともかく".ToCharArray();
var lines = File.ReadAllLines(input).Where(x => x.All(y => allowed.Contains(y))).ToArray();
File.WriteAllLines(output, lines);

Выводит
かも
とか

とも

もと

かく

とく
ともかく
366 1679140
>>679121

>Это японская кодировка


Алсо, файл был в UTF-8, не знаю, где ты там откопал японскую кодировку
367 1679148
>>679135
Спасибо, работает. Хотя всё же интересно, почему так странно у меня работала запись.
>>679140
Файл в ней и не должен быть, она нужна была для работы со строками.
368 1679209
>>679083

>файл пустой


флюш
369 1679210
>>676694

>Core


>Application


>Domain


Что лежит в каждом из них?
370 1679212
>>674502

>Аноны, как получить ссылку на структуру?


ref используй. Но ты явно делаешь что-то неправильно.
371 1679213
>>679210
Бля, не заметил пост ниже с дефисами, вопрос отпадает.
372 1679248
>>678889
Либо ты поддерживаешь gRPC с каждым пчелом, который зашёл на сайт твой сервер сосет, либо предлагаешь загрузить ему несколько мегабайт wasm'a твой клиент сосет
На мой взгляд, у блазора на текущий момент две ниши – сосать бибу числодробилки и внутрикорпоративные порталы
373 1679350
>>679148

>Хотя всё же интересно, почему так странно у меня работала запись


У меня на маке всё работает в твоей программе, надо только кодировки выкинуть. Попробуй вручную флашить.
374 1679379
>>679148

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


Можешь скинуть минимальный нерабочий проект и файл?
изображение.png53 Кб, 1121x646
375 1679823
>>677678
Я попытался сам исправить ситуацию без собственного парсера так как мой вариант все же был в 1.5-2 раза хуже по производительности, не говоря уже о примитивном функционале.
Мне удалось исправить Serialize чтобы все работало путем исследования памяти и добавления возможности очистки кэшей.
Но вот Deserialize стал непробиваемой проблемой.
При том проблемой магического плана.
Магия заключается в том что не в windbg не в dotmemory не показывается что в памяти хоть где-то есть ссылка на мой загружаемый через сборку тип.
Путем сравнения чистого приложения и после тонны загрузок/выгрузок мне удалось найти место где похоже что-то сохраняется, но вот как очистить это дерьмо я не представляю. Как туда добраться через рефлексию хер знает, класс не статичный, а что именно создает это дерьмо я боюсь даже представить. А значит и передать объект в качестве аргумента для получения этого поля я так же не могу.
На этом мои познания в устройстве .net походу иссякли и я не вижу выхода из этой ситуации кроме как продолжить использовать свой парсер или отказаться от идеи выгрузки сборок вообще. Тупо оставлять их в памяти пусть захламляют оперативку.
376 1679862
>>665540 (OP)
Если хочу начать изучать шарпы, то следует лучше обратно на винду перекатиться? Или на маке в MonoDevelop тоже норм работается?
377 1679878
>>679862
Зависит от того, что ты под "норм работается" подразумеваешь.
378 1679883
>>679878
Как на винде
379 1679891
>>679823
Я имел ввиду написать это в их github -> issue.
Здесь тебе врят ли кто-то поможет, потому что данных не хватает. Тут надо целиком код смотреть.
380 1679893
>>679823
что это за говнище на скрине?
381 1679894
>>679862
Я на маке в VS for Mac работаю. Полёт нормальный. Некоторых крутых фишек конечно не хватает и решарпер не поставишь. Но тебе от этих фишек ни холодно ни жарко. Тебе в ней комфортно еще несколько лет будет, а потом начнёшь замечать, что можно было бы и то и это заиметь. А там может на Rider пересядешь или МС студию под Мак допилит.
382 1679897
>>679891
Там полгода это висеть будет.
При том это проблема походу на стороне net core, иначе бы она решилась загрузкой сборкой в тот же контекст.

>>679893
dotmemory со snapshot того места где растет память при deserialize в загружаемой/выгружаемой сборке.
383 1679907
>>679897
зачем тебе вообще десериализация JSON нужны была?
384 1679926
>>679823
А загружать парсер в appdomain в который ты загружаешь нужную сборку с нужным типом, пробовал?
385 1679983
>>679897
Ну хорошо, через пол года пофиксять. А если проблему не двигать, то пофиксят условно никогда. Пол года быстрее чем никогда.
386 1680044
>>679907
Чтобы заполнить нужные мне типы в сборке данными которые должны лежать отдельно и не быть хардкодными.
При том основное приложение об этих данных ничего не знает и знать не должно, максимум что оно знает это то что они реализуют некоторые интерфейсы и то не факт.
Тут проблема будет не только в JSON, многие вещи оказывается кэшируются в различных небольших кэшах и не дают выгрузить сборку. В частности Expression тоже кэширует свои типа при некоторых вызовах. В результате получаем полурабочую выгрузку, работает только для примитивного кода, что-то более сложное уже не выгрузишь.

>>679926
В самом начале делал это.
Уже кучу парсеров так перепробовал.

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

>>679983
Вообщем мне удалось победить это дело через очень и очень грязные трюки с рефлексией.
Так по сути делать нельзя, но другого пути тупо нет.
Все дело вот в этом говне:
https://github.com/dotnet/runtime/blob/master/src/libraries/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs#L13
Вот тут хранятся какие-то данные о типах, при том в ключах вы не найдете не одного упоминания о своем типе, но я тупо не разбирая что там забил все с помощью null и все стало выгружаться. Мне уже тупо не хочется разбираться что именно не дает выгрузить и почему, а затем обнулять именно этот ключ.
Зато узнал что оказывается с core 3.0 нельзя через рефлексию менять readonly поля, получишь эксепшен.
387 1680046
Как у вас с работой дела? Чтобы вкатиться новичку - обязательно реакт с css дрочить?
388 1680053
>>680044

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


У тебя архитектура проекта - говно, раз тебя таким анонизмом нужно заниматься. Сочувствую вообщем
389 1680060
>>680053
То есть если у меня фактически изолированные сборки которые юзают главный модуль и которые могут выполнять свои функции и затем выгружаться это говно архитектура?
390 1680091
>>680060

>и затем выгружаться


с костылями, скрипом и пердежом - да
Снимок.PNG49 Кб, 1811x734
391 1680291
Сап, делаю небольшой проект в вузе. Необходимо написать эмулятор нормальных алгоритмов маркова и машины тьюринга. С НАМ я как-то разобрался, но возник вопрос. Допустим юзер ввел в прогу такой алгоритм, в котором на каком-то правиле происходит зацикливание. Надо как-то определить это и послать пользователя нахуй, а не просто завесить всю программу. Код функции НАМ на скрине.
И ещё интересуют какие-то понятные объяснения, как реализовать машину тьюринга или примеры готового кода. Буду очень сильно благодарен.
.mp414,7 Мб, mp4,
1920x1080, 0:24
392 1680308
Нуб на связи. Как правильно обмениваться данными между потоками?
Есть поток основной программы(интерфейса), в нем создается новый "рабочий" поток, который работает в бесконечном цикле. Как изменять его переменные/передавать команды? На ум приходит сделать глобальный флаг, который активируется, когда нужно что-то передать, а рабочий поток будет все время проверять его в цикле, и если флаг активирован - будет проверять и обрабатывать уже другие глобальные переменные/флаги. Это должно работать, но выглядит извращением. Есть какая-то правильная, элегантная реализация? Или все так и делают, через глобальные переменные?
393 1680320
>>677112
Вау. Я вообще удивлен, что эта шапка до сих почти не обновлялась. Я пилил ее года 4 назад наверное, когда еще студентотой был и когда активно тут сидел и всем помогал. Сейчас ее видеть в такой виде довольно странно, хоть и приятно.
BTW для сомневающихся (как я в свое время): C# и .NET платформа сейчас очень даже нужна и хороших специалистов реально очень мало.
изображение.png121 Кб, 1179x1179
394 1680341
>>680091
Раньше были домены которые позволяли выгружать проще, но там ебля была с общением между загружаемой сборкой и основной. Приходилось делать маршалинг, плюс потери перформанса, при том серьезные.
Сейчас же они сделали выгрузку по возможности если ничего сборку не держит, но при этом не учли всех момент которые есть не только во внешних библиотеках, но так же в самом языке.
Вот методы (еще на скрин не все влезло, плюс неизвестно кто еще те методы вызывает) которые создадут скорее всего проблему при использовании их в загружаемой сборке, потому что они кэшируются в статичную переменную которую невозможно без рефлексии очистить.

>>680308
Делаешь ConcurrentQueue, затем юзаешь AutoResetEvent или ManualResetEventSlim(если нужна прям производительность, у авто лаг 1-2 мс), пока в ConcurrentQueue есть команды берешь и выполняешь их, как только команд нет, event.WaitOne(); в рабочем потоке.
Когда поток нужно запустить event.Set(); в основном потоке.
В результате пока задачи есть поток трудится, иначе спит в ожидании пинка.
395 1680368
>>680308
Сурс видео?
Девчонки смотрят на неё более пристально, чем парни.
396 1680399
>>680308
Никаких глобальных переменных! Никакого изменения состояния объектов более чем одним потоком! Это путь студентов и индусов.

Очередь тебе в руки (типа RabbitMQ, но вообще любую, почитай доки на эту тему).
Флаг можно менять через БД.
Управляемый объект можно создать в основном потоке и отдать его в бэкграунд поток, где он будет readonly и изменять состояние в основном потоке, если нужно.
397 1680422
>>680308

>сделать глобальный флаг


Земля тебе пухом
>>680320
я вообще удивлен, что кто то еще смотрит в этот тред
>>680341
да на скрине 80% это линк, не могли под него интерфейс взаимодействия запилить? Походу какой то CRUD через multiqueue дрочит твой "модуль", а ты теперь с рефлексией трахаешься. Эх, кайф
>>680368
дрочильня в другом разделе
398 1680424
>>680422

>дрочильня в другом разделе


в который доступа нет
399 1680438
Подгоните идей на курсач по ООП на шарпе. Если можете - несколько, пожалуйста
.webm6,4 Мб, webm,
406x720, 1:14
400 1680439
>>680341
>>680399
Спасибо, сейчас попытаюсь разобраться.

>>680368
Это какой-то конкурс на открытие магазина(шоп ру, там на стене есть), инсту и вк тян находили в б, но я не сохранял.
401 1680462
>>680438
Калькулятор.
402 1680471
>>680308
"Глобальные переменные" это мютексы, но нет, так делать не надо. Внешние системы MQ тоже использовать не надо, они для другого. Надо использовать всякие очереди и каналы. Один поток случает очередь, другие формируют задание и передают его главному потоку через очередь.

Не знаю C# совсем, судя по всему тебе надо смотреть на ConcurrentQueue<T>
403 1680563
Парни пидец нужна помощь есть задание
Не могу вальнуть вопрос с удалением песни из каталога
Помогите чутка вот кусок кода.
Как удалить из списка и потом вернуть обновленный словарь.
404 1680585
>>680563
У препода спросишь
405 1680591
>>680563
эх, сейчас бы не знать, как работает библиотека из GAC. Нахуй ты учишь это говно, если даже не хочешь в нем разбиратсья?
406 1681159
>>680308

> рабочий поток будет все время проверять


Т.е. рабочий поток будет крутить бессмысленный цикл? осмотри на BlockingCollection - поток будет спать, пока не появятся данные для обработки.
407 1681504
>>680563
С конца фором перебираешь песни и Removeat на индексе который соответствует твоему ифу.
408 1681676
Смотри анон, пишу дискорд бота для шикимори и встал вопрос.
Когда делаю запрос из кода, оно думает почему то, что я делаю GET запрос на страницу авторизации. Но когда делаю аналогичный запрос из постмена, то все работает как надо.

Что не так то блядь? Где я туплю? При этом пост запросы делаются так же в других местах бота (например авторизация, там даже рут тот же, только тело немного другое. Вот доки кста: https://shikimori.org/oauth) и все работает.
изображение.png21 Кб, 681x349
409 1681693
410 1681711
>>680291
для начала добавь проверку rulesTotal.Lenght = 0, а то у тебя вечный цикл, инициализацию rulesTotal упрости хотя бы $"{твоя хуйня}", также for можно на foreach заменить, самое просто добавить таймаут и заводить алгоритм юзера в таске - не успел иди нахуй
411 1681721
>>681676
Ты на ссылки посмотри. Он тебя редиректит на sign-in страницу, поэтому и GET. А почему он тебя туда редиректит - это другой вопрос.
Проверь статус у твоего response и вытащи ответ через ReadAsStringAsync(). Там или 401 или 403 или 302.
412 1681761
>>681721
Проблема кстати решилась созданием в методе Post своего инстанса HttpClient. Не ебу почему так.
амет дед 413 1682127
Вопрос по ЕФ. Вот у меня есть две сущности - зоопарк и животное. В конфигураторе какой сущности стоит описывать связь? Т.е. я могу в зоопарке прписать zoo.HasMany().WithOne(..., а могу у животного dvacher.HasOne().WithMany(... Есть тут общепринятые стандарты?
414 1682789
Уважаемые аноны, вопрос :
я пытаюсь сделать так что бы при добавлении продукта на диалоговом окне окно закрывалось и главное окно где раположен список всех продуктов автоматические обновлялся, для этого я использую первый скрин в нем присутствует часть "mainWindow.Refresh();" собственно она должна отвечать за обновление контента,
на другом скрине представлены 3 метода, два метода это евентХандлеры от кнопок которые обновляют страницу вручную при нажатии, а третий Refresh() вызывается собственно с дочернего окна и должен по аналогии с первыми двумя методами обновить каталог но этого не происходит, метода проходит дальше, дочернее окно закрывается обновление не происходит, собственно вопрос, почему и как фиксить?
415 1682820
>>682789

>почему


Зависит от того как оно у тебя сделано. Но вкратце после this.close() хрен что выполнится

>как фиксить?


Делать до закрытия тут же или в событии
416 1682947
Подскажите плес книги по архитектуре приложений и алгоритмам, но чтобы было написано, как для тупых. А то я синтаксис шарпа вроде выучил, но на данном этапе всякие солиды и паттерны выглядят для меня, как излишнее усложнение, которое заставляет плодить файлы, классы, интерфейсы ради сомнительной выгоды и ещё больше запутывает. Сразу вспоминаются шутки про "ООП головного мозга", когда на каждый пук-сереньк 1000 файлов с интерфейсами, классами и т.д.
Можно на английском.
417 1682953
>>682947
Agile Principles, Patterns, and Practices in C#

Всё объясняется довольно подробно, есть много реальных примеров. На протяжении всей книги будет создаваться программа для расчета зарплаты сотрудникам.
Единственный минус - книга 2008 года. Поэтому код немного устарел и в нём нет свистоперделок вида интерполяции строк через $ или нулл-исключающего оператора. Но это не так важно, потому что самим паттернам и принципам уже овердохуя лет. И после прочтения ты легко освоишь современные паттерны.
418 1682963
>>682953
Спасибо, посмотрю. На тухлый синтаксис действительно всё равно. Да и вообще даже на язык. Суть ведь в содержании, а не форме.
419 1683180
>>682963
И сразу после прочтения Боба накатить это
http://sergeyteplyakov.blogspot.com/2013/12/about-agile-principles-patterns-and.html
420 1683269
>>683180

>Поскольку камрады


>камрады



Чего ты здесь забыл, камрад?
421 1683278
Выбрал сишарп для вката в айти, подводные какие, может все же в джаву? До этого баловался питоном в школе. Смущает малое кол-во джуниор позиций в дс, не знаю что будет к зиме вообще на рынке твориться.
422 1683294
>>683180

>критика книги по паттернам от автора книги по паттернам


А что, звучит легитимно.
423 1683297
>>683294

>рряяя, его книга говно, а вот моя книга по той же теме намного лучше ррряяя

424 1683374
>>682820
я пробовал до закрытия, все хуйня
425 1683392
>>682789
У тебя дочернее окно как открывается, диалогом или нет?
image.png7 Кб, 566x107
426 1683403
>>683392
вот так
427 1683412
>>683278
Джуны не нужны. Их сейчас выращивают сами компании потому что это дешевле и практичнее. Рынок переполнен вкатывальщиками дебилами из-за которых дешевле вырастить джуна самому, чем пытаться нанять. Больше времени и денег уйдет на поиски.
Конторы которые еще хоть кого-то набирают в 90% случаев построены на наебалове, где в лучшем случае тебе хотя бы 20-30к за месяц заплатит с дикими переработками. А у особо хитрых ты еще и должен останешься. Плюс работа в таких компаниях это считай волчий билет в индустрию. Так как оттуда выходят угольки (выгоревшие люди), а такой человек это беда для компании.

Если у тебя не будет проекта на гитхабе через которой тебя могут позвать на работу или в резюме не будет ссылки на ПР который пошел в ядро или топ библиотеку, при том реальный ПР, а не правка орфографии, то лучше иди на стройку, поверь там условия в десятки раз лучше будут.
428 1683413
>>683403
Тогда в главном окне подписывайся на событие закрытия дочернего (или делай свое событие, если данные должны обновляться не только при закрытии) и в обработчике обновляй данные главного окна.
429 1683421
>>683413
это как?
430 1683424
>>683421
Что именно? С событиями не умеешь работать?
431 1683426
>>683424
не знаю такого события для окна на закрытия другого окна
433 1683435
>>683431
так погоди, это хандлер который выполняется на том же окне что закрывается перед закрытием, чем оно тогда отличается от просто вызова метода в другом окне?
434 1683440
>>683435
Тем, что дочернему не надо ничего знать об окне, вызвавшем его.
435 1683499
>>683440
ты рофлишь? я же вроде ясно написал что мне нужно обновить контент на родительском окне после закрытия дочернего, при обработке хандлера на дочернем окне на родительском ничего обновляться не будет...
2020-05-10 20-57-14.mp4218 Кб, mp4,
1920x1080, 0:16
436 1683541
>>683499

>ты рофлишь?


отож
437 1683626
>>681761
Не создавай новый httpClient каждый раз, как делаешь вызов. У тебя в существующем скорее всего что-то в конфигурации не то - headers, baseAddress.
438 1683633
>>683499
Чувак, у тебя знания джуна, в документацию ты не можешь, но всё туда же: "рофлишь", "я же ясно пояснил". Вместо наездов иди учись.
439 1683647
>>683633

>у тебя знания джуна


Это где с такими знаниями на позицию джуна берут?
440 1683651
>>683647
В любой конторе где 30к платят, там нужен код который дает результат и не важно как он написан.
Если ты можешь давать результат, то тебя возьмут.
441 1684287
Поясните, как отправлять POST-запрос через httpwebrequest. Что-то ничего не получается. Если я отправляю что-то через soapui, сервер нормально отвечает. Если пытаюсь делать то же через httpwebrequest — он посылает меня нахрен.
442 1684367
>>684287
Зачем тебе делать это через httpwebrequest, если есть более высокоуровневые классы вида HttpClient?
443 1684374
>>684367
А в .net 3.5 он есть?
444 1684376
>>684374
В смысле .Net framework 3.5
20200305031119.jpg176 Кб, 1085x939
445 1684380
>>684374
Нет, но в нём есть WebClient. Но если хочешь ебаться с httpwebrequest, то придётся делать что-то уровня пикрил.
446 1684382
>>684380
Короче, разобрался, проблема была не в нём, а в неправильном URL
447 1684676
шарпачи, а я тут набрел на забавную хотя может быть и бредовую идею: использовать ЮНИТИ чисто для кроссплатформенного гуя искаропки
подводные камни?
448 1684683
>>684676
Хуйня идея. Лучше уж электрон или другие кросс гуи, там и возможности и производительность.
На крайняк veldrid + imgui куда лучше юнити будут.
449 1684721
>>684683

>электрон


>производительность



В голос нахуй. Там одна основа в виде браузера в пустом приложении уже жрёт всю твою оперативку и 300 мб на жестком диске.
450 1684858
Здравствуйте
Хочу из фрондэнд-макаки перекатиться в шарп (ебаный коллега просто без ума от вашего языка и меня заразил)
Проблема в том, что у меня есть оффер в европу (знакомый работает в Прагве манагером и может меня подтянуть к свою практику), но я блять не хочу макакой
Так вот...правда ли, что в этой самой европе шарп активно наступает на пятки жабе? Судя по кличеству вакансий на линкедине в бэке сначала жаба, потом питон, а потом шарп, а в тырыпрайзе и подавно
Не хочу устраивать срач и холивар, поэтому пардон, если флуд
451 1684891
Является ли добавление новых/удаление старых (не изменение) записей в бд через контексты еф потокобезопасным? делаю сайт, и если от нескольких пользователей прилетают в базу данные может ли быть конфликт, что получится попытка вставки нескольких запией под оди ИД (ид автоинкременируемый)?
452 1684894
>>684858

>знакомый работает в Прагве манагером


>правда ли, что в этой самой европе шарп активно наступает на пятки жабе


Почему бы не спросить у манагера? По крайней мере по Праге у него инфа поактуальнее, чем у сосачера.
453 1684896
>>684891
Зависит от настроек уровня изоляции транзакций. Если ничего не менял, то потокобезопасно. Но и высокой производительности не будет.
454 1684899
>>684676

>использовать ЮНИТИ чисто для кроссплатформенного гуя



ЗАПУСКАЕШЬ КАЛЬКУЛЯТОР
@
ДЛЯ РАБОТЫ ПРИЛОЖЕНИЯ НУЖНА ВИДЕОКАРТА НЕ НИЖЕ 2080RTX
@
ЛЕТИШЬ ТРАССИРУЯ ЛУЧИ ЖОПОЙ
455 1684901
>>684894
свои тонкости и нюансы просто, спрашивать про другое направление - такое себе
но, хорошо, спасибо
456 1684904
Есть один лист, в который выгружено, допустим, 30 полей, но мне не нужны все 30, мне нужно только 10, поэтому лишние я хочу удалить. Но мне нужно делать это динамически, потому что я не знаю, какие именно 10 мне нужны, список этих полей хранится в ещё одном листе в виде строк. Что можно сделать?
457 1684917
>>684904
Сортируешь этот лист руководствуясь тем в котором список нужных полей, после чего удаляешь 20 не нужных.
458 1684924
>>684917
Как поле-то удалить динамически?
459 1684946
>>684924
Никак. Можешь только null ему присвоить или 0, в зависимости от типа данных. Для динамического удаления тебе нужно использовать класс Dictionary.
460 1684952
>>684946
Ну пиздец, я догадывался, что так и будет. Я через properties как-нибудь?
461 1684967
>>684952
Никак. Только перебирать лист каждый раз сначала после удаления элемента.
462 1684970
>>665540 (OP)
престарелый байтоёб-вкатывальщик не может осилить одну хуиту:

WPF на форме есть элементы два радиобатона и комбобоксы, также есть кнопка "подключить". Хочу, чтобы при выборе одного радиобатона часть комбобоксов становилась isEnable=false

это я сделал через IsEnabled="{Binding IsChecked, ElementName=rbSerial}"

а также, чтобы все комбобоксы и радиобатоны становились isEnable=false при нажатии на кнопку (т.е. там какая-то переменная становиться isConnected = true)

Но для этого надо класс сделать и в него вставить логическое условие. Однако в это логическое условие я не могу пихнуть
!isConnected && (MainWindow.rbSerial.IsChecked == false);

Или могу, но что-то не могу разобраться с ключевыми словами static public и прочее. Куда смотреть? Чего почитать?
463 1685035
В России дотнет вообще применяется где-то? Везде где работал крутились на 1с или жабе.
464 1685046
>>684970
Почитай про впф, ты пытаешься с впф работать как с винформс.
465 1685067
>>685035
разработчики всякие нужны. Но 1с и Java, как мы видим, нужны чаще.
466 1685079
>>685067
У меня дико бомбит, когда вкатывался жаба была очень примитивной по сравнению с шарпом, без лямбд, с тоннами бойлерплейта. Сейчас переучиваться на жабу уже поздно, а с работой на шарпе всё не так радужно.
467 1685084
>>684904
Если ты под полем понимаешь объект, а не поле, то
mylist = mylist.Where(a => a.IsOK()).ToList();

>список этих полей хранится в ещё одном листе в виде строк


Есть еще intersect, которым можно получить пересечение множеств, но врядли это для тебе подойдет.
>>684970
IsConnected это вьюшная часть? Если да, то логигу можно запилить через поведения (Behavior) и триггеры. Если нет, то переделывай c исрользованием MVVM.
468 1685090
>>685079
Брат на джуна шарписта не может устроиться, уже третий месяц бомбит в личке.
image.png46 Кб, 1782x462
469 1685093
>>665540 (OP)
Играюсь с анусом с сокетами. Происходит какая то хуйня. В коде слева Send почему то запихивает буфер до талого на весь его размер, но в коде справа запихивает ровно по длине строки. В итоге код слева принимает ровно "Test request", а код справа принимает в ответ "Test response\0\0\0...\0"

Я в растерянности, код один, а работает по разному. Чому так?
470 1685097
>>684721
Оператива и место это фигня если это конечно не калькулятор, проц и видяха куда важнее.
Электрон не так плох если правильно писать, та же vs studio отлично работает, но вот если пишут на нем рукожопы, то это да. Пиздец во все поля.
И тема производительности это не только об электроне, абсолютно все приложения сейчас этим грешат, типа время программиста дороже и прочая хня.
В результате куча приложений тормозят у пользователей независимо от того насколько у них крутые компы.

Но идея делать юнити в качестве интерфейса это еще хуже чем электрон.
471 1685109
>>685090
Больше я жалею только о времени, потраченном на кресты. Там тысячи человекочасов лежат, литры крови, пота и слёз, а денег за это получено хуй да нихуя. Причём по меркам матёрых крестовиков я всё равно в них плохо разбираюсь, т.к. не умею патчить таблицы виртуальных функций в рантайме.
472 1685113
>>685093
while(socket.Available > 0)
Пояснить сможешь? Нет? тогда засунь себе это в очко и перепиши нормально.
473 1685122
>>684676
Не ты один набрёл. Видел вакансию полгода назад, искали спеца по юнити для доработки приложения. То ли они маршруты прокладывали, то ли для бизнеса какую-то визуализацию, но дело было связано с картами
474 1685150
>>685113
Себе в очко запихни, пидарас чахоточный. Тот же самый код работает для сервера с одинаковыми размерами буфера и тот же самый код приводят в пример в любом источнике. Специально для тебя, дебила, поясняю: пока количество доступных байт > 0 - получать дальше. Вся хуйня работает на буферах размером нескольких байт, но тратит очень много времени на буферах большого размера, но только когда сервер отправляет клиенту строку тем же методом, которым клиент отправлял серверу. Почему?
475 1685163
>>685084

>mylist = mylist.Where(a => a.IsOK()).ToList();


Так ему динамически надо. Т. е. на этот лист уже кто-то ссылается до его изменения. Ты же создаешь новый лист, который никак не влияет на тот лист на который уже кто-то ссылается.
476 1685197
>>685163
На правах наркомании
var tmp = mylist.Where(a => a.IsOK()).ToList();
mylist.Clear();
mylist.AddRange(tmp);
>>685150

>пока количество доступных байт > 0


пока есть непрочитанные байты в буффере сокета У тебя, говножуя, может в сокет прийти 40 байт из 100 ты их прочтешь и получишь, что доступно 0, а потом долетят еще 60 байт, но ты их не прочтешь. Или может еще может прийти следущее собщение и оно приклеится и ты прочтешь 500 байт из ста. А еще ты можешь соснуть, склеивая строку из кусков полученных байт, в коре, например, Default кодировка это utf8.
477 1685201
Как хранить записи серилога для того чтобы отдавать их в качестве ответов webapi?
478 1685207
>>685197

>пока есть непрочитанные байты


Но проблема то вообще не в этом. Я же бля сижу дебажу и смотрю, что на малых буферах, когда сервер отвечает клиенту, у клиента в дебаге пишется socket.Available == 12 после чтения первых 4 байт. А у сервера на его receive и вовсе проблем нет ни при буффере в 4 байта ни при буффере в 4 мегабайта. Я бы понял, что я делаю что то неправильно, если бы поведение было бы одинаковым с обеих сторон, но тут же блядь сервер нормально считывает, а клиент заполняет весь буфер.
479 1685214
>>685207
На одной машине запуцскаешь? Еще ты неправильно в Send длину передаешь, ты передаешь длинну строки, а надо размер массива байт. Опять же на однобайтовой кодировку это может сработать, а может и нет, а utf8 не сработает.
image.png3 Кб, 517x52
480 1685220
>>685214

>На одной машине запуцскаешь?


На одном вижаке

>Еще ты неправильно в Send длину передаешь,


Да блядь, ну не в этом дело, ну. На клиенте и только на клиенте строка оказывается длинной в весь буфер с нулями на конце, если буфер больше данных - вот это проблема. С остальным я буду разбираться, когда преодолею текущую проблему
481 1685222
>>685220
На одном вижаке в двух разных процессах
быстрофикс
482 1685223
>>685220

>Да блядь, ну не в этом дело, ну.


Так зачем ты срёшь здесь, если знаешь в чём дело, долбоебина обосранная?
483 1685224
>>685223
Ты пиздец ты мразь. Ты сюда верно из андроид тредов пришёл, пидорас? Я тебе про одно, ты мне про другое. Я тебе, долбоёбу, говорю, что не в этом проблема, а ты опять хуйню пишешь, мудила. Тебе видно в глаза попало, хуесосина? Ты глотай в следующий раз, как твоя мамаша-шлюха.
484 1685225
>>685197

>mylist.Clear();


>mylist.AddRange(tmp);


Но это не динамика. Динамика это когда ты видишь визуальное отображение этого листа и то как меняются в нём данные по мере изменения этого листа. У тебя же он сначала путсым будет, а потом обновится.
485 1685229
>>685224
Да все уже поняли, что проблема тут на генном уровне. Но неужели так сложно почитать документацию, особенно когда работает с низкоуровневой хуетой типа сокетов? Тебе указали на то, что у тебя значительные пробелы в знаниях. Но вместо того чтобы пиздовать на msdn, ты продолжаешь срать скриншотами с обрубками своего говнокода.
486 1685231
>>685207
Не пердоль энкодинг, записывай сообщение через бинари райтер/ридер, в них же запихивай/считывай в массив байт и длину, и прочие данные о твоём стринге.
487 1685235
Да, кроме серилога. Еще вот какой вопрос. Смотрите, есть SignalR. Вооот. И типа мне нужно изменения каких-то данных отсылать клиентам. Но в чем суть: учетки клиентов находятся в группах, скажем пусть это будут отдельные комнаты чатов, где некоторые люди сидят сразу в нескольких комнатах. Так вот, можно ли, и если можно то как, отсылать изменения относящиеся к группе только людям в этой группе? Типа вот есть 2 в комнаты: Программирование, Аниме. Когда сообщение отправлено в группу "аниме", я хочу отослать это сообщение только тем, кто в этой группе сидит, а другим клиентам не отсылать. Как это сделать-то?
488 1685237
>>685220

>буфер с нулями на конце, если буфер больше данных - вот это проблема


Эм.. А ты что ожидал, что буффер с хуями будет, а не снулями? Тебе receive возвращает количество прочитанных байт, именно на столько и будет заполнен буффер.
489 1685244
>>684683
>>684899
ну не стукайте
из новой юнити оказывается можно вообще все кроме гуя выбросить нахер, т.е. там голые билды по 1мб получаются и сразу ведроид и линукс и черт в ступе
короче говоря попробую отпишусь
>>685122
занятно
490 1685247
>>685225
Первый раз такое определение динамики слышу. Тогда почему бы по одному не удалять, если сразу удалить 10, это же уже тоже не "динамика".
491 1685260
>>685244
А Xamarian чем не угодил?
492 1685269
>>685247
Ну в этом и проблема. Если ты по одному удалять будешь в цикле, то цикл будет работать неправильно, так как ты перебираешь изменяемый массив. Если удалять по 10, то это не динамика. Особенно если речь идёт не только об отображении информации, но и об её обработке. Поэтому для таких целей используют Словарь, ключи которого можно удалять в цикле без негативных последствий.
493 1685282
>>685269

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


Можно перебирать с конца, а если перебирать одновременно в потоках, то и со словарем можно словить много чего.

>Поэтому для таких целей используют Словарь


Мне, конечно, все еще не ясна цель, но словарь используют, когда нужен доступ по ключу за O(1). Удалять можно и из связанного списка.
494 1685343
У меня есть пустая база данных, как по DB-first заполнить ее теми же таблицами и полями, как по DbContext? Типо когда Code-First - создается автоматическая DB с такой же структурой, как в DbContext.

P.S. - Скрипты для SQL я писать умею, но вставлять такую залупу из 50 таблиц, в каждой из которой по 10 полей, как то не ок
495 1685697
>>685343
Так ДБ фирст и подразумевает что у тебя есть созданная баз. Ты не хочешь создавать её, не хочешь генерить её из кода, как ты хочешь чтоб она создалась?
496 1685707
>>685225
foreach(var item in list.ToArray())
{
if(!item.Check()) list.Remove(item);
}
497 1685709
>>685697

> заполнить ее теми же таблицами и полями, как по DbContext?


>P.S. - Скрипты для SQL я писать умею

498 1685737
499 1685741
>>685079
Т.е. ты не вкатился в джаву из-за ее кривости и теперь жалеешь, работая на шарпе?
500 1685759
>>685737
ты тупой или ты читать не умеешь?
Есть пустая БД (без возможности DropCreateDatabaseFirst), без ЕДИНОЙ ТАБЛИЦЫ. Мне нужно перенести мой DbContext со всеми DbSet объектами и их полями в базу данных. Я могу это сделать скриптом - тригерить при первом обращении к БД, но нахуй оно мне нужно, если есть EF?
501 1685813
>>685707

>Collection was modified; enumeration operation may not execute

502 1685822
>>685741
Йип. Чему меня научил опыт в программировании: чем ужаснее язык, тем более сладкая работа. За язык, который никто не знает, никто не может на нём ничего написать, и в легаси которого можешь разобраться только ты, платят очень хорошо, дают очень вольные эстимейты, считают тебя крутым специалистом.
Самая благодарная работа, которую я выполнял -- отладка скриптов на ANSYS APDL, жутком выпердыше фортрана и бейсика. Тем не менее я мог заниматься спокойно, получал хорошие деньги и никто меня не подгонял неделями.
В этом плане жаба гораздо круче шарпа.
503 1685859
>>685759
Вопрос-то в чем?
504 1685976
господа сисярписты, а можно
public static int Sign2(int val) {
return val > 0 ? 1 : -1;
}
сделать как-то хитро-хитро через сдвигание байтиков чтобы вот быстро-быстро работало? чет не могу придумать как сделать это изящьно.
505 1685981
Расскажите плз какие основные практики для обработки ошибок у Web Api приложения на коре 3 используются в настоящее время в тырпрайзе?

Для небольших приложений я так понимаю на фронте просто ловится код ошибки и текст какой-то пишется для пользователя, а если приложение больше и много разных видов ошибок, каждый из которых нужно как-то передать на клиент, там обработать и выдать нужный текст пользователю? Какие-то error codы вводятся? А как они выбрасываются? Пилятся свои классы исключений поверх стандартных? Как определяется код ответа нужный, тело ответа? Мидлвеер какой-то, который эти эксепшены ловит и делает нужный ответ? Расскажите плз или тыкните ссылкой

Ну и это только что я придумал сходу, а вообще что еще используется, какие архитектурные решения? Расскажите плз или тыкните ссылкой
506 1685982
>>685981

>просто ловится код ошибки


имею ввиду код типа 200 401 итп
508 1686001
>>685976
Пук-сереньк

if (num == 0)
return -1;
var shiftCount = sizeof(int) -1 ;
var n = (num >> shiftCount & 1);
return n == 1 ? -1 : 1;
509 1686017
>>685976
a>>31|1;
510 1686042
Что сейчас юзают для веба? ASP.NET? Или что-то новое есть?
511 1686071
>>683541
>>683633
нет, я блядь нихрена не понимаю, объясни мне почему не работает тот код который я написал?
512 1686121
>>686071
Показывай чот у тебя там накалякано
513 1686123
Здарова братва. Собираюсь захуячить видеоплеер с субтитрами и с переводчиком. С чего начать? Какие подводные?
514 1686130
>>686121
вот мой вопрос, >>682789
если что-то дополнительно нужно то скажи я инфу дам какую-нужно
515 1686138
Да хз что у тебя там и как вызывается. Второй скрин это главная форма? Дам же рефреш в контент новый экзмпляр вставляет, он же наверняка пустой. А еще дебе нужно обновить контрол, который отображает контент.
516 1686140
517 1686142
>>685260
Ты его пробовал? Раз мы говорим про кроссплатформу, то речь идёт о Xamarin Forms. Большей параши я в жизни не видел. Запуск хелловордла 5 секунд! Пять ебаных секунд! Кто будет ждать открытия приложения столько времени?

После wpf прямо таки отвращение выработалось к XAML. За десять лет нихуя не изменилось. Как мелкомягкие вылизали asp.net добавив разор, и какой хуй они положили на wpf/xamarin, это просто цинизм какой-то
Короче, xamarin – параша, имхо. Надо ждать blazor для мобилок. Или не ебать себе мозг и писать нативные приложения. Потому что у Майков уже столько инициатив было, что в блазор уже как-то не верится
518 1686146
>>686138
>>686140
ну он не пустой, и по задумке должен работать по аналогии с методом выше, который вызывается по клику, по клику он работает как надо, мне это же надо и от рефреша,а вот про обновление контрола по подробнее

а что конкретно не понятно что называется?
второй скрин это методы на главном окне, родительском а скрин с методом submitbutton это хандлер на другом окне, который добавляет что-то закрывает окно и должен продолжить работу на родительском окне (метод рефреш)
519 1686154
>>686146

>а вот про обновление контрола по подробнее


Ну типо контрол должен же как-то узнать, что Content изменился, но если работает по клику, то хз.

>не понятно что называется?


не называется, а вызывается, в дочернем ты добавляешь в менежер, потом это как-то должно аоеазаться в new Products(). Логика окутана тайной.

Бери отладчик и в путь. Во первых, посмотри заходит ли код в рефрешь, во-вторых, сравни классы Products() в рефреше и в клике.
520 1686156
>>686154
я знаю что он гарантированно заходит в рефреш.
так же когда он заходит в рефреш после выполнения
Main.Content = new Products();
Main.Content = продолжает оставаться нулом, и я не совсем понимаю почему и как такое возможно что он не выкинул нул или что-то такое
на клике та же самая команда выполняется уже нормально Main.Content уже не нул, и я тоже не понимаю почему
521 1686157
WPF или WinForms? Периодически возникает потребность написать маленькие утилиты для коллег, которые не программисты

Раньше я думал, что формы это устарелое говно. Покушав сладкого WPF, я пришел к выводу, что формы лучше. Они быстрее. Они не лагают. Они моментально открываются
у меня 9700к, так что проблема не в старом железе
522 1686161
>>686154
в дополнении к предыдущему посту добавлю что при клике Main.Conten не нул даже до захода в метод, но при рефреше который вызывается с другого окна он уже нул и до и после захода
523 1686165
>>686156

> гарантированно заходит в рефреш


Точка останова срабатывает? Конструктор не может вернуть налл. Если Main.Content null, то тут только 2 варианта: или в рефреш не заходит или потом где-то обнуляется.
image.png9 Кб, 430x157
524 1686167
>>686165
он заходит он получает и он оставляет нулл
525 1686174
>>686157

>WPF или WinForms?


Для маленьких приложений-утилит, пожалуй формы лучши, их быстрее создавать, они больше прощают говнокод. А вот крупное приложение на впф писать лучше, имхо. К формам все равно придется прикручивать MV*, настраивать биндинги и прочее, а это может стать болью, в впф это все их коробки + есть всякие призмы и мввмлайты.

> Они быстрее. Они не лагают. Они моментально открываются


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

>>686167
Еще раз ф10 нажми, чтоб он строчку выполнил.
image.png8 Кб, 518x131
526 1686175
>>686174
все еще нул
527 1686176
>>686174
я может быть далеко не сеньйор в программировании. но не настолько же тупой, очевидно что когда я говорил что он выходит с нулом это значит что он выходит с нулом...
528 1686183
>>686176
>>686175
Ну не может в шарпе конструктор налл вернуть. Контент это проперти? Сеттер кастомный? Другие потоки есть? Попробуйтак и проверь
Refresh(){
..var p = new Products();
..Main.Content = p;
}
image.png37 Кб, 955x266
529 1686194
>>686183
контент это эм... вложенный контент в маин, маин это собственно фрейм на окне.

а вот добавление этой строчки var p = new Products(); в каком-то смысле помогло так как теперь p не нулл и main.content собственно тоже, но проблема остается, окно не обновляется
image.png25 Кб, 700x428
530 1686198
>>686183
>>686194
в догонку, нессмотря на то что р теперь не нул, main.content почему-то все еще нул
531 1686199
>>685859
в том, что на борде не знают про миграцию

Еще вопрос к антонам - в WebApi как происходит общение между фронт-бэк в передаче служебных сообщений? К примеру - валидация прошла, 200 - Ок, переходим к методу "Validate". Эта логика в routing фронта должна быть заложена?
И еще - на фронте или на бэке должна быть проверка аутентификации? Или и там и там? Если сделать только на фронте, то через Postman можно выебать, как street hooker весь бэк, если на бэке делать, то это геморойная передача отклика с сервера клиенту. На какой стул садиться?
532 1686231
>>686199
Так миграции это тоже сode-first, а ему вроде это не подходило, ему надо db-first, но что б не писать SQL. Короче мутный тип.
Сам толко начал ковырять асп, поэтому особо не подскажу, но вот что точно, это то что валидации на стороне клиента доверять нельзя. Она скорее для того что б сообщить пользователю. Так что на беке ваидация нужа, а то

>можно выебать, как street hooker весь бэк


>>686198
Так у тебя впф.. Юзай мввм и пили свою навигацию, та что из коробки там говно.
533 1686235
>>686231
действительно, люди добрые, извините что не уточнил сразу что это впф.
534 1686372
>>686235
Так ты слишком туп для впф. Либо переходи на винформс, либо читай литературу по впф и возвращайся к впф после прочтения.
535 1686457
Господа, кто-нибудь сталкивался с реализацией алгоритма литтла? Поделитесь примерами пожалуйста.
537 1686503
>>686473
Спасибо, но я имею в виду пример кода. Уже не одну неделю вожусь с этой рекурсией, уже сам в зациклился
538 1686513
Котаны, как быть, если нужно селектить linq из массива, который может быть пустым?
539 1686522
>>686513
А в чем проблема, вроде только Min Max давятся пустым перечислением. Проверяй размер перед запросом, благо для массива это почти бесплатно.
540 1686528
например FirsOrDefault давится, хотя казалось бы он для этого и предназначен: Value cannot be null.
Parameter name: source
541 1686530
Если проверять на null вручную, придётся переделывать на foreach
542 1686535
Вот например такой код:
https://dotnetfiddle.net/e6OkAY
как тут лучше поступить?
543 1686545
>>686535
Так у тебя там не пустой массив, а null вместо массива.
544 1686552
>>686545
И как быть в этом случае?
545 1686563
>>686552
Зависит. Можно так
https://dotnetfiddle.net/vi0N0A
546 1686575
>>686563
А если нужно типа левое соединение?
547 1686578
>>686552
>>686563
Хотя там еще и при обращении к Foo.foo можно NRE словить, если FirstOrDefautl вернет все же Default.
548 1686581
>>686575
Я ж и говорю хависит. Ты сначала сформируй исходные данные и то что нужно получить. А то это "а если то, а если это" может долго продолжаться.
549 1686585
Я хочу, чтобы когда внутренний массив есть, я мог бы выбрать первую строчку из этого массива; когда внутренний массив null — какие-то другие данные, например код ошибки.
550 1686590
>>686503
В таком случае могу только посоветовать книги по фрезерному и токарному делу. Если ты алгоритм в код переписать не можешь, что дальше тебе в программировании делать нечего.
551 1686596
>>686535
Задай в классе Bar дефолтное значение для foo равное пустому массиву, очевидно.
552 1686626
>>686596
Так там еще и попытка обращения к элементу этого массива через FirstOrDefaul, т.е. и тут налл может быть, а потом еще и чтение поля, котое может быть налл. Та еще наркомания.
111.jpg43 Кб, 507x559
553 1686627
>>686535
Или так.
554 1686629
>>686585
А ты на JS до этого не писал?
555 1686631
>>686626
А не напиздел, в foo запутался
556 1686690
>>686585
Короч, на мои вопросы можете уже не отвечать.
557 1686706
>>686690
Спасибо, что разрешил.
558 1686721
>>686017
спасибо!
559 1686915
>>686142
Ты давно приложения на питоне открывал? Там и 5 и 10 секунд под декстоп.
Приложухи на Замарине под мобилками открываются в момент.

Также не сравнивай Релиз с Дебагом.
560 1687704
Как сбиндить изменяемый словарь к листбоксу в WPF?
561 1687719
>>687704
Как и все остальное - через ItemsSource. Отображение настроить через ItemTemplate.
IMG20200514151408.JPG89 Кб, 720x613
562 1687781
Сап, сисач.
Помогите пожалуйста
Нужно выполнить задания 17 и 18 по примеру 15/16 (через string/substring)
563 1687845
>>687781
Через сабстринг это условие препода? Если да, то передай ему привет в челюсть. А тебя потом в приличном обществе за такой код обольют ссаниной.
564 1687893
>>687781
Скажи преподу чтобы он для себя открыл класс StringBuilder
111.jpg58 Кб, 891x583
565 1687895
>>687781
Скажи преподу чтобы он для себя открыл класс StringBuilder
Отклеилось.
566 1687915
>>685813
ToArrаy() возвращает копию
567 1687936
>>687915
Вылетает OutOfMemoryException
569 1688113
>>687719
Если биндить сам словарь через Values, ничего не отображается. Если же преобразовать в ObservableCollection, кидает исключение при изменении словаря.
570 1688187
https://github.com/ElectronNET/Electron.NET
Ахах, зацените. Пишешь под виртуалку, которая запускается в другой виртуалке.
wpf.png117 Кб, 1884x940
571 1688257
>>687936
У тебя бесконечная последовательность генерируется энумератором?
>>688113

>Если биндить сам словарь через Values, ничего не отображается


А не пиздишь?

>кидает исключение при изменении словаря.


Значит ты не правильно делаешь.
Ты бы учебник какой прочитал, а то так будешь долго ебаться и не факт, что получится.
572 1688334
Здравствуйте.
Хотел бы задать не очень обычный вопрос в тредике.
Есть ли тут аноны, которые работают в Европке или знают о ситуации о востребованности c#? С тянкой по ее учебе будем перекатываться в Германию или Англию, и ПОЧЕМУ-ТО язык в Англии более востребован, чем джава-я очень охуел (в германии все же джава). Так ли это?
Сам я фронт-макака и хочу давно дропать.
Ну и в целом любая полезная информация для вкатывальщика. Спасибо
573 1688339
>>685985
А зачем нужен флюент когда есть стандартные валидации
соответствия модели (DataAnnotations)?
574 1688368
>>688339
Не был бы нужен - то никто бы такого монстра не разрабатывал и он бы не пользовался такой популярностью.

Больше гибкости, хорошо укладывается в Mediator и CQRS patterns. Логику проще изолировать и проще управлять.
575 1688378
>>688334
Судя по штатам у нас тут у каждой второй конторы есть аутсорс или бранч компании в Ирландии и Англии. Если мы тут на дотнете, то и они там будут на дотнете.
В Германии, наверное, много банков и они там тонут в джава легаси. Хз короче.
.png7 Кб, 368x200
576 1688382
>>687895
Хм, почему просто так не сделать? У тебя просто почему-то подразумевается, что считаются буквы внутри слов, но ведь в задании ничего про это нет, там только про строку. Или это я тупой?
image.png13 Кб, 405x253
577 1688388
>>665540 (OP)
ДВАЧ ПАМАГИ
Уже 2 дня пытаюсь подключить бд sql с сервака к программе, но не выходит. В списке подключений сервера нет, при загрузке файла напрямую вот такая вот ошибка.
Все программы обновил до последней версии, и сервер, и sql, и manager.
578 1688431
>>688388

>It seems you have multiple instances of various versions of SQL Server on your machine.


https://stackoverflow.com/questions/46431043/cannot-be-opened-because-it-is-version-852-this-server-supports-version-782-and
MSSqlServer это сириус бизнез, хотя локалбд заводится в один клин, я хз что ты там наделал, что все сломал.
image.png5 Кб, 247x165
579 1688554
>>688431
Я все обновил по максимуму, видать, зря.
Вот старый сервер и остался.
И что делать?
Не понял как эту проблему решили, эту тему уже видел.
580 1688715
>>687781
Здесь вы можете наблюдать причину почему программистов не хотят брать на работу после ВУЗов и боятся их как огня.
15866136025300.jpg5 Кб, 230x219
581 1688719
>>688715
Больше всего полыхает срака, что учился на другой инженерной вышке, тянул как основное образование которое нахуй не уперлось, так и программирование, потом доказывал на собеседованиях, что я не верблюд, а какие-то дегенераты занимают места в вузе и приходят с плевыми задачками, чтобы ты решил за них. Блять

Я делал за деньги экономику младшим курсам. Не мой профиль, но задачи плевые. Подготовил формулы в Экселе, и поставил решение на поток. Я могу понять моих клиентов – это пезды тупые, и то говно в принципе не интересное. Что делает этот анон, я понять не могу

Вспомнил своего недавнего клиента. Он учится программированию, но петпроекты заказывал у меня. Причем я ощущал, что по ту сторону экрана сидит малолетний пахом, потому тз были крайне ебанутые. Например, написать просмотрщик фото, который позволяет делать удобные вырезы стикеров. Он серьезно показывал это учителю!
582 1689420
кто-нибудь пользовался авалонией? хорошая вещь или хуйня?
583 1689742
Почаны, что там слышно про NET 5 и типа когда там вся линейка в попенсорс уходит?
584 1689817
>>665567
какой же ты тупой, пиздец. Ты же понимаешь, что оно ищет по словам в вакансии, и очевидно, что множества С# и .net в твоем высере пересекаются и потому их складывать нельзя. Хотя кому я объясняю.
image.png17 Кб, 408x271
585 1689818
>>688554
Ну вот, удалил я старую версию sql сервера, получил другую ошибку.
586 1689977
>>689742

>что там слышно про NET 5


Уже третье превью вышло

> когда там вся линейка в попенсорс уходит?


кор в опенсорсе уже много лет
587 1689978
>>689818

>try to use (localdb)\mssqllocaldb as server name to connect to the LocalDB automatic instance, for example:



><connectionStrings>


><add name="ProductsContext" connectionString="Data Source=localdb)\mssqllocaldb;
> ...
588 1690178
Как преобразовать List<Post> в List<IViewPost> где Post имплементирует IViewPost?
589 1690228
>>690178
Бля, кароче не так вопрос написал. Вот у меня есть класс ListResult<T>. В нём поля List<T> List и int Total. Как сделать чтобы я мог писать ListResult<IViewPost> = listResult где listResult - ListResult<Post>? Чтобы неявное преобразование проводилось итеративно по каждому элементу поля List как бы.
590 1690296
>>690228
list.Cast<IPostSomething>().ToList()
591 1690596
>>690296
Лучше фильтрануть OfType или использовать ConvertAll чтобы эксепшенов избежать
592 1691106
>>689977
Обещали что весь .NET 5 будет попенсорсе же? Ну типа останется только кор. Или уже переобулись?
593 1691126
>>691106
Кора и Фреймворка не будет, останется только .NET 5
594 1691169
>>689978
Спасибо, анончик, за помощь. Твой способ не сработал, но после третьей переустановки с устаановкой всех ненужных плагинов, удалением старых бд и ещё одного дня пердолинга, я наконец сделал это.
595 1691255
Правильно ли я понимаю, что просто так использовать ms sql нельзя, и за него надо платить? Допустим, есть коммерческое приложение, и я создал базу через ef code first. Там какие-то лицензионные соглашения всплывают во время установки нугет пакетов, но кто их читает?
Просто ебаться с постгресом нет желания, хотелось бы уточнить
596 1691257
>>691255
есть express версия, сильно лимитирована, но полностью халявная
597 1692222
newtonsoft json при десериализации не перезаписывает свойства у сложных объектов стандартными значениями как добиться такого же эффекта от нового System.Text.Json в net core 3?
Суть в том что объект который я десериализую имеет кучу свойств которые создают автоматически и у которых некоторые поля используются как базовые, но помечены как игнорируемые, но System.Text.Json превращает такие поля для чисел к примеру в 0, когда newtonsoft json оставит там созданный объектом 100.
598 1692462
Как можно получить массив, состоящий из уровней сигнала из wav-файла? То есть гружу wav-файл, программа определяет кол-во отсчетов N, и грузит в одномерный массив разрядности N данные о каждом уровне. Файл монофонический, разрядность 16 бит.

Сам искал, но примеры по ссылкам в гугле либо с какими-то наворотами, либо для стерео, либо еще не пойми что, а самого простого - нет видимо потому что я один не могу додуматься самостоятельно
599 1692662
Можно ли править код в библиотеках, которые подключил к проекту через NuGet?
Я не пишу на шарпе и вовсе не кодер, но необходимо автоматизировать одну хуиту и нашел разве что готовую библиотеку на шарпе с подключением к проекту через нугет. Но надо кое что поправить, а как не пойму и можно ли вообще.
Вижу его в ссылках, могу посмотреть в обозревателе какие методы там есть, но сам код увидеть не могу. Он закрыт?
600 1692680
Не разбираюсь в дотнете вообще.
Поясните на пальцах тонкости реализации с async/await ?
Что есть Таск и сколько тредов создает среда исполнения в простых случаях?
Код написанный в стиле async/await не страдает от многопоточного исполнения ?
Упростило ли серьезно введение async/await гуипрограммирование?
601 1692683
>>692662
Найди на гитхабе этот модуль и подключи как проект
602 1692698
>>692680
На ютубе об этом часовых и меньше видео десятки где поясняют что и как внутри работает.
603 1692705
>>692222
Добавь метод, который будет создавать нужное состояние и пометь его атрибутом [OnDeserialized]
Но вообще не понятно зачем ты пометил их игнорируемыми, если тебе нужно сохранить их состояние.
604 1692713
>>692683
Так и сделал. А из нугета нельзя править, да?
605 1692716
>>692662

>Не разбираюсь в дотнете вообще.


А зачем тебе тогда ответы на эти вопросы?

>Что есть Таск


Задача, которая завершится в будущем. Или не завершится.

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


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

>Код написанный в стиле async/await не страдает от многопоточного исполнения ?


Что значит традать от многопоочного исполнения? Таска может выполнится в другом потоке. Зависит от контекста синхронизации. Но в общем случае надо обеспечивать потокобезопасность самому.

>Упростило ли серьезно введение async/await гуипрограммирование?


Упростило написание асинхронного кода.
606 1692757
>>692705

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


Это сериализация/десериализация настроек и настройкам не нужно хранить границы возможных настроек потому что они могут меняться в коде. Плюс если их не игнорить, то json вырастет минимум в 3 раза.
Просто мне не понятна логика десериализаторов зачем если у объекта есть установленное свойство, они создают новый экземпляр и заменяют тот что уже существует, почему не заменить только те свойства/поля которые есть в json, не создавай экземпляры на каждый чих.
607 1692783
>>692757
Они ничего не заменяют, когда происходит десериализация, то объект десериализуемого типа инициализируется в памяти без вызова конструктора, но при этом все байты объекта инициализируются в состояние null или 0.
608 1693001
Как Garbage Collector собирает мусор из разных потоков? Передаю в ThreadPool несколько методов, внутри которых выделяется over9000 байт. Память начинает освобождаться начиная со второго потока, в первом же лишь спустя значительное время, каждый раз разное, независящее от количества выполняющихся методов. Как пофиксить? Что почитать?
609 1693008
>>693001
Вызов GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced,true, false) ничего не меняет.
610 1693050
>>692783
>>692757
Попробовал оба аттрибута
[OnDeserializing]
[OnDeserialized]
и походу они не для System.Text.Json.JsonSerializer

А про создание объекта, я не знал что он так работает так как разбирал другие json библиотеки и в них всегда создавался объект при чем такой же косяк был с заменой свойств даже если они существуют.
Что в принципе для моей логики не подходит и вообще хотелось бы десериализатор в который можно прокинуть объект которых хочешь десериализовать и чтобы в нем заменились лишь то что есть в json.
Но походу для такого придется писать свой велосипед, что не радует, так как велосипед в 99% случаев равен куче косякам в будущем.
611 1693160
>>693001

>собирает мусор из разных потоков?


В смысле из разных потоков? То что в стеке потока, гц не трогает ибо стек, а куча с потоками никак не связана.

>Что почитать?


Ну Рихтера почитай.
612 1693168
>>692713
Вроде нет, это же сборка
613 1693264
Есть консольное приложение и подключенная ДЛЛка, которая выводит текст в консоль. Есть ли возможность как-то прочитать, что было написано в консоле не мной (ДЛЛкой) ?
614 1693282
>>693264
Есть пара идей тупая и не производительная.
1) Закомментить все свои вызовы или пометить их чтобы отличать от чужих
2) Console.SetOut с собственным TextWriter где ты перед выводом берешь стэк вызовов и смотришь откуда пришел вызов тем самым определяя эту длл.
Untitled.png28 Кб, 1106x260
615 1693403
Здарова, недавно начала вкатываться в сишарп и асп.кор, никак не могу понять в чём дело.
Задача вывести в хтмл элемент количество записей с определённым возрастом через контроллер, пикрил мой вариант пользуясь документацией и стаковерфлоу.
Когда добавляю какой-либо параметр после FromSqlRaw("...") страница выдаёт SqlException: An expression of non-boolean type specified in a context where a condition is expected, near ')' .
Заранее спасибо!
616 1693472
>>693403
Потому что надо начинать с основ. Запрос надо не толко создать, но и выполнить.
617 1693482
Используют ли спецификаторы доступа для инкапсуляции?
618 1693485
>>693482
Скорее да, чем нет.
Ох сейчас срач нанется
619 1693516
>>693482
Всё что скрывает данные от внешнего кода используют для инкапсуляции.
620 1693670
Ебусь с аутентификацией-авторизацией битую неделю. Вопросы в следующем:
1. Сгенерировать, зашифровать, выдать JWT токен я понял как, что дальше? Где его хранить? Сохранять в кукисах браузера пользователя? Сопрут же нахуй.
2. Нужна ли Global autentification? Типо давай логинься, тварына, потом суй свой нос. (Знаю, что субъективно, я про best practice)3
3. Самое ебонутое для меня - refresh token. Как и когда? Типо в Access token зашифрован Exp, по истечении которого он должен обновиться Refresh токеном? Чи шо? Перечитал уже тонны материала, все вроде понятно, но как реализовать - хуй его знает.
4. Access токен для каждого юзера должен быть свой? По сути да, ведь там Claims, то чурбаны-индусы создают его в StartUp (хуй знает зачем) и выдают один и тот же при Auth.
Спасибо
621 1694245
Шарпач-помогач, как справиться с такой задачей:
Подается лист из объектов bar, есть доступ к bool(bar, bar).
Мне нужно как-то отсортировать поданный лист, разделив его на разные листы, где обретаются только объекты с true между собой и false со всеми остальными, как это лучше сделать?
15802378576410.webm855 Кб, webm,
720x1280, 0:03
622 1694276
>>694245
/pr/, который вы заслужили. Разделить один лист на два. Я не хочу тебя обидеть, но ты тупой или да? Может тебе еще задачку с разделение на upper case разделить?
623 1695100
Сап, как мне вытащить /ru/feedback из <a href="/ru/feedback">?
Чтобы это работало если будет даже <a href="/ru/feedback/hui/s/masloь"> ? Что можно использовать?
624 1695113
Начал изучать ASP Core, пытаюсь сделаь сайт на razor pages. Возникли впросы по валидации.
1. В примерах в основном используется биндинг параметров запроса к классу модели, где через DataAnnotation настроены ограничения. У меня модель настроена для EF через Fluent Api, очевидно при валидации эти ограничения не учитываются. Какой путь правильный? Не хочется размазывать логику по кофигурации сужностей и на флюент и на аннотации. Писать отдельные классы для EF и для запросов? Какие бэст приктис есть?
2.Как валидировать параметры, которые передаются не через привязку к модели, а как аргументы метода:
OnPostAaa(int n)
if(n < 0)
...//что тут писать, что б страница отобразила ошибку? Какой акшнрезалт возвращать?
3. В примерах используется такая конструкция
if(!model.IsValid) return Page();
Это хорошо работает, если на странице ничего нет. А если методом Get тянутся данные из бд и прочее, то при вызове пост оно не загружено и если вернуть Page(), то будет ошибка. Что возвращать? RedirectToPage? Вызвать Get (if(!model.IsValid) return Get())? Но тогда параметры гета будут просраны.
Поясните плз.
625 1695190
Шарпач помоги, аноны я писал код на VS WF, и похерил конструктор, все данные об объектах остались в коде, но сам конструктор чист. Так вот как востановить состояние конструктор, со всеми объектами на своих места?
626 1695232
>>695190
Во-первых, исользовать Git, чтоб не было такого "ой, я что-то поменял, а оно все сломалось". Во-вторых, откуда нам знать как ты там конструктор похерил? Ошибки есть? Предупреждения? В какие файлы лазил? Что значит конструктор чист? И т.д. и т.п.
627 1695254
>>695100
Регулярки, очевидно.
628 1695255
>>695190
Хуй знает что ты высрать пытался из своей тупой бошки. Могу лишь рефлексию посоветовать.
629 1695286
>>695113
>>695190
эх, сейчас бы решеточки поучить. До карантина вакансий не было, сейчас вообще пиздец - у нас 4 проекта закрыли, с начала карантина всех джунов нахуй повыгоняли, на сейчас - кто может во что ни будь кроме решеток - на бенч, остальных - нахуй. Я на реакте сейчас помогаю педалить под RoR и пыху, а вы все решеточки учите, лол. А стоп, учебный год же не закончился, забыл
630 1695464
>>695286

>пук

631 1695542
>>695100
Надёжнее и быстрее всего через XPath
https://metanit.com/sharp/tutorial/16.4.php
632 1695654
>>695113
Ты обязан делать отдельную валидацию для юзерских данных и для твоих БД моделей.

DB entities и User data (Request/Response) должны друг от друга наглухо изолированы быть. В твоей бизнес логике должен быть какой-то маппер, который возмёт данные от юзера и добавит их к БД модели.
633 1695702
Ну всё, теперь буду делать любые манипуляции с данным, в которых нужен перебор, только в unsafe блоках.
Теперь понятно почему жаба петухи нам завидуют. Им ведь не то что указатели, им даже goto не завезли)))))))
634 1695857
>>695654

> Маппер


Какой? В ef core с этим ебля, не помню механизм, но null не разрешает. Как нормально это сделать? Это основная моя проблема на пути понимания DDD Вторая – Boundaries Context и проброс сообщений между контекстами

Для валидации советую FluentValidator
635 1695860
>>695702
Ужасный пример.
Я не буду утверждать со 100% уверенностью так как ил код не смотрел, но скорее всего в первом примере внутри цикла тупо был удален весь код и идет только цикл и он пустой, а во втором как раз таки не удален так как помимо получения данных из массива там вроде при вызове по индексу есть проверка выхода за пределы массива. Если добавить зависимость на внутренний цикл типа суммирование массива, то результат скорее всего будет примерно одинаковым.

Плюс весь этот unsafe код можно заменить на Span и результат будет тем же самым что с unsafe., но только более читаемый.

Но результат во всех 3 случаях думаю будет примерно одинаковым (+-5% разница) при условии обмана оптимизации цикла чтобы он не исчезал.
636 1695963
>>665540 (OP)
Аноны, а разве массивы в структурах не ссылочные? Они что ли прям в структуре на стеке находятся?
Как тогда прилепить ссылочную коллекцию? Использовать List? Он сильно больше памяти жрёт?
637 1695967
Сап пр, у меня есть такая хуйня на винформ:
в форм1 есть объект Client client и в нём есть всякая залупа(свойства взял из текстобоксов итд), так вот, как мне всю эту залупу перетащить в форм2?
638 1695979
>>695860
Так посмотри, ничего не исчезает. Можно также и память забивать создавая обекты в куче не присваивая их никуда. У Рихтера часто такое используется для демонстрации работы gc.
639 1695992
>>695860
Так и есть, хоть два кода и выглядят похоже, но сравнивать их бессмысленно.
>>695963
Массив - ссылочный тип.

>Они что ли прям в структуре на стеке находятся?


В структере хранится ссылка на массив (сама ссылка - значимая). Где хранится структура - зависит от контекста.

>Как тогда прилепить ссылочную коллекцию?


Бери да прилепляй

>List? Он сильно больше памяти жрёт


Есть минимальный оверхед на хранение внутренних переменный листа. Но по дефолту, если место во внутреннем массиве кончилось, то лист увеличивает массив в два раза. Т.е. если у тебя есть миллион объектов и ты вставляешь еще один, для которого нет места, то внутренний массив становится размеров в 2 миллина, 999999 из которых пустые записи. Что займет лиших ~8Мб для ссылочных типов х64.
>>695967
Разделяй модель и представление. Если форма2 создается новая, можешь пропихнуть нужные зависимости через констрруктор. Если форма2 живет паралельно, и должна следить за изменениями данных, то события. Слишком абстрактый вопрос.
640 1695996
>>695992
Уже сделал через конструктор, а так спасибо всё равно за ответ
641 1696025
>>695979
Значит рантайм пропускает то что внутри цикла будет, просто у тебя фундаментальная ошибка измерения перформанса.
Замени сохранение переменной, на суммирование ее в переменную до Start:, в результате ты увидишь что разницы практически не будет. А все потому что теперь нельзя выкинуть код внутри цикла.

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

Раньше вот считалось что Activator.CreateInstance медленный и надо его оптимизировать, а точнее заменять на Expression версию, будет лучше, сейчас же разница на уровне погрешности.
А в C# 9.0 вообще новая веха наступает когда можно писать код не только быстрый, но и с 0 аллокацией памяти.
642 1696083
>>695992

> В структере хранится ссылка на массив


Тогда почему при копировании структуры копируется весь массив и при изменении копии оригинал не меняется?
struct.png12 Кб, 678x448
643 1696089
>>696083

>при изменении копии оригинал не меняется?


Отвечаешь за базар?
644 1696336
Подскажите смысл функции: https://pastebin.com/bJCtXjPY там суммируются все элементы вектора или все кроме последнего? Я C# не знаю, пытаюсь на питон перевести.

double VectorSum(double[] A)
{
double sum = 0;
double n = A.Length;
for (int i = 0; i <= n - 1; i++)
sum += A;
return sum;
}
645 1696337
>>696336
Собсна вот доказательство того, что те, кто учат питоняшку первым языком не смогут в другие языки. Даже в элементарное понятие синтаксиса.
646 1696348
>>696337
А по делу не подскажешь? Рэнджи в питоне по другому задаются и я не знаю как интерпретировать for (int i = 0; i <= n - 1; i++). Онлайн компилятор вообще ошибку выдает.
647 1696379
>>696348
Складывает все элементы массива А и возвращает сумму. Написано очень криво
648 1696384
>>696379
Спасибо. Из-за n - 1 думал, что последний элемент не берут. Если что писал не я это https://www.quantalgos.ru/?p=544.
12123.jpg86 Кб, 950x694
649 1696411
>>696025

>Рихтер писал давно и скорее всего по умолчанию имел ввиду версию кода без оптимизаций



Всё также работает, как и при Рихтере. Это .NET Core 3.1.
650 1696426
Вот новый тест.
1 - Span<int>
2 - указатели
3,4 - обычный массив

Код: https://pastebin.com/H7KCDYXt

И происходит какая-то херня в случае с обычным массивом. Если обозначить метод Sum как статичный, то скорость падает до уровня Span. Если сделать его методом экземпляра, то скорость чуть хуже чем у указателей.
При этом IL код одинаковый, разница лишь в том, что в случае статики вызывается 0 аргумент, а в случае экземпляра 1 аргумент (потому что 0 аргумент это this).
Также скорость падает если убрать модификатор in/ref у аргумента функции. Эти модификаторы никак не влияют на время выполнения в случае Span, он также показывает 6100-6300.

Пробовал тоже самое компилировать в VS 2019, релиз версия, включенная оптимизация кода. Результаты одинаковые. В случае с массивом тоже самое - если создать экземпляр Program и вызывать у него метод Sum, то скорость выполнения будет выше, чем если объявить метод Sum как метод типа и вызывать его напрямую.

Почему так?
651 1696430
>>696426
stackalloc span - где эта залупа в реальных проектах применяется? И зачем это говно в 7.2 притащили в решеточки?
652 1696433
>>693670
бампэлло, тварыны
653 1696482
>>696430
Там где нужна производительность и работа с пайплайнами. Аллокация памяти происходит не в куче, а на стеке, т. е. у тебя не создается оверхеда от создания указателей на тип и блок синхронизации. Также предотвращает боксинг и анбоксинг, потому что Span это ref struct.
Но по мне так самая незаменимая их функция это способность искать определенную последовательность/последовательности при помощи indexOf и indexOfAny.
15855935722820.png18 Кб, 389x547
654 1696494
>>696426
3 пик не тот, вот нужный.
655 1696495
>>696482

>Аллокация


>оверхеда


пиши или на русском или не коверкай ангельский

>Аллокация памяти происходит не в куче, а на стеке


>Также предотвращает боксинг и анбоксинг, потому что Span это ref struct.


Америку открыл, гранд этому

>указателей


какие нахуй указатели? Это не тред крестов, алло

>Но по мне так самая незаменимая их функция это способность искать определенную последовательность/последовательности при помощи indexOf и indexOfAny.


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

Но я так и не услышал реального ответа - в каком именно проекте ты дрочишь эту шнягу в unsafe блоках? Стэк, технология, сфера, решение какие задач?

>Там где нужна производительность


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

>какие нахуй указатели? Это не тред крестов, алло


Ты не слышал об указателях в шарпе?
vom1.gif121 Кб, 220x123
657 1696512
>>696501
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/unsafe-code-pointers/how-to-use-pointers-to-copy-an-array-of-bytes
я в этом ебучем болоте под названием "unsafe code" не сижу. С 7 версии в решетки пихают все, что душе угодно. Скоро ФП будут запихивать. Будут и тут reduce,maps, функции высшего порядка и казино с шлюхами. Фу блять, фу нахуй
image.png105 Кб, 1920x1080
658 1696517
>>696512

>Скоро ФП будут запихивать


Ебать тебя даже шторм не разбудил
659 1696520
Тестер репортинг итт. Получил доступ к проекту разрабов, решил его пощупать, а там в ебало отсутствующие пакеты, рефы, dll-ки и прочий пиздец.
Я полдня решал ошибки, а они сыпятся каждый ребилд одна за другой.
Скажите, так в любом языке при вкатывании в рабочий проект? Почему все так хуево? Я хочу кодить, а не ебаться с настройками окружения.
660 1696527
>>696517
чтобы писать качественный код на решетках не нужны все эти ебучение замашки ФП и байтоебство (если конечно даун архитектор не решил написать какой то хайлоад кусок на #, земля ему пухом).
Update by update они поднасирают какими то новыми "фичами" от которых не знаю толи родоваться, толи плакать.
>>696495

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


Жду ответа
661 1696532
>>696520

>решил его пощупать, а там в ебало отсутствующие пакеты, рефы, dll-ки и прочий пиздец


>ебаться с настройками окружения.


>настройками окружения.


>настройки


>окружения


зачем так толсто, маQAQA? Ты моки умеешь писать? Интеграционные и блочное тестирование хорошо освоил, что ты клюв суешь?
662 1696533
>>695286
А во что тогда вкатываться? В куа 300 рыл на место буквально, фронтов тоже до жопы, на жабе и пыхе сейчас вакансий на джуна не сильно больше чем шарпе, да даже 1с просел - ну оно и ясно.
только начинаю учить решетки
663 1696536
>>696527

>не нужны все эти ебучение замашки ФП


Наоборот, писать на шарпе без это ебучее макакство
664 1696538
>>696532
Не понимаю твоего петушиного.
665 1696545
>>696533
я слету могу назвать 3 стэка, на какие я бы хоть сейчас перепрыгнуть, но в силу лени, стабильного дохода и занятности - дрочу бибу на бенче
>>696536
так пиздуй на Erlang, что ты в # забыл, нимакака?
666 1696547
>>696538
ну да, тестировщик, который тесты не знает как писать, а в проект лезет. Классика жанра
667 1696554
>>696545
Я на шарпе писал ещё когда ты не родился, хуесосина
668 1696565
>>696554

>Я на шарпе писал ещё когда ты не родился


>Наоборот, писать на шарпе без ФП (добавил за тебя) это ебучее макакство


ФП начали добавлять с 7 версии шарпа, а это 17 год. Предположим, что ты начал писать 3.5 фреймворка (не такой тухлый, как предыдущие патчи), который был в 7 году. Т.е. ты 10 лет был макакой? Нахуй ты себя так овнишь?
Мне конечно интересно подискусировать с ФП решеточными богами нет, но меня из всего срача интересует только один вопрос - где вы их нахуй применяете. С конкретико й - стэк, проект, сфера применения, задачи. Всо
669 1696566
>>696547
Знает.
670 1696571
>>696565

>ФП начали добавлять с 7 версии шарпа, а это 17 год.


LINQ с 2007 года
671 1696584
>>696545

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


Напиши, интересно.
672 1696590
>>696495

>Америку открыл, гранд этому


Так ты спросил зачем нужно, тебе ответили.

>вообще хз зачем ты это написал


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

>эту шнягу в unsafe блоках?


Для Span не нужен unsafe блок.

>Стэк, технология, сфера, решение какие задач?


Тебе же сказали - в пайплайнах. А именно, в сериализации/десиреализации, в обработке сетевых запросов. В общем, везде где тебе нужно получить какой-то массив данных и предеать/обработать/изменить его с максимальной производительностью и скоростью.
673 1696592
>>696512

> Будут и тут reduce,maps



Уже есть со времён LINQ. Aggregate = reduce, Select = map
изображение.png26 Кб, 412x392
674 1696629
>>696426
Вот https://pastebin.com/Hqmga8R2
Дает вот такой результат для 3.1 под релизом с выключенным arithmetic overflow.
Предполагаю у тебя такая разница как раз из-за него, потому что с указателями ты обходишь эту проверку отсюда и такой выигрыш.
675 1696633
>>695857

>Какой?


Кастомный. Но можешь и automapper заюзать.
676 1696634
>>696584
react/vue/RoR/Golang (последние два на любителя, денег на них много не заработаешь)
>>696592
>>696571
LINQ это ФП? Not sure about it (см. различие метода и функции, в LINQ может и написанны алгоритмы приближенные к идеалу, но это скорее методы, чем функции). Могу ошибаться, не буду спорить
>>696590

>Тебе же сказали - в пайплайнах. А именно, в сериализации/десиреализации, в обработке сетевых запросов


Задача, стэк, приложение? Я не совсем понимаю, что ты сериализируешь и какого рода сетевые запросы. Я скажу больше, я даже не пойму о каком уровне OSI мы говорим
677 1696690
>>696426
>>696411
Каким ебаном на быть, чтоб тестить перформанс в дебаг конфигурации? Ты бы хоть в сэмплы линкпада зашел и посмотрел как это в нем делается.
678 1696748
>>696634
Ну вот тебе простая задача:
Ты получаешь ответ на сетевой запрос, для этого тебе нужно создать буфер, при каждом новом пакете ответа ты должен записать последовательность полученных байт в этот буфер, при этом ты должен отслеживать получение конца ответа, допустим это последовательность байт вида 13 10 13 10 (\r\n\r\n).
С помощью Span Это делается легко и красиво:

byte buffer = new byte[1024];
int bytesRead= 0;
byte[] endSequence = new byte[] { (byte)'\r', (byte)'\n', (byte)'\r', (byte)'\n' };

//Нет необходимости отслеживать смещение и вычитать его из уже полученных данных, всё делается с минимум переменных, в одну строку
bytesRead = networkStream.Read(buffer.AsSpan(bytesRead));

//Заменяет целый цикл по перебору массива и легко позволяет найти нужную последовательность в полученных данных
if (buffer.AsSpan(0, bytesRead).IndexOf(endSequence == -1)
{
if (bytesRead == buffer.Length) Array.Resize(ref buffer, buffer.Length*2);
continue;
}

Я всё не пойму чего ты пытаешься добиться. Что кто-то признает, что если ты это не используешь и не можешь придумать где это использовать, то значит нинужна и хуйню сделали?
679 1696778
>>696748

>ответ на сетевой запрос


Какой протокол, уровень OSI? Конткретней можно?

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


Мне все равно, как применяют инструмент, меня конфузит, когда используя этот инструмент N лет я вижу конструкции типо int* и начинаю гуглить, что это за хуйня возле типа прилипла, поэтому и интерисуюсь, какие сферы затрагивает решение задач ФП на # (это я про unsafe блоки). Единственное, что я хочу из всего этого диалога понять - это сфера применения. Ни задача, ни проблема, ни пример, а именно сфера применения.
И да, все, что можно сделать на ++ лучше сделать на ++. В # могут что угодно запихнуть, от этого язык лучше не станет. Кто думает "Азаза чем больше возможностей, тем лучше" - поспрашивайте от чего Java в говне тонет
680 1696779
>>696690
Каким ебаном надо быть чтобы для таких простых тестов разворачивать целую бенчмарк библиотеку?
681 1696783
>>696778

>Какой протокол



А что, в каком-то протоколе не нужно искать определенные последовательности?

>уровень OSI



Любой кроме физического и канального. Сетевой это один из уровней OSI, тебе привели пример, но ты спрашиваешь УРОВНИ? ПРАТАКОЛ!? Ты правда дурачок или просто немного с ума сошел от осознания того, что язык на месте не стоит вместе с тобой?

>когда используя этот инструмент N лет я вижу конструкции типо int



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

>от чего Java в говне тонет



От того что погряз в легаси и не развивается, как раз из-за таких дурачков как ты, которые боятся поломать старые устои и перед тем как использовать что-то новое крестится тысячу раз (а потом всё равно не использует). У них и половины от шарпа нет, а главное и не предвидится.
682 1696814
>>696783

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


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

>тебе привели пример, но ты спрашиваешь УРОВНИ? ПРАТАКОЛ!?


если ты даже не можешь конкретную задачу привести и уже 3 или 4 пост кидаешься абстрациями. Тебе стыдно сказать проект, в котором ты пишешь код? Или у тебя свистелка-перделка на высчитываение доли секунд запросов и обработки?

>Ну потому что ты используешь этот инструмент на более высоком уровне и не заботишься об оптимизациях


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

>При этом даже из интереса не заглядываешь в исходники этого инструмента


facepalm. Дрочило, попутавшее стэк на месте. Не хочу толстить за бинарники и команды процессора, устал уже от этой хуйни. Я даже благодарен таких дурачкам, как вы, которые вкатышам за килобаксы советуете начинать с Таненбаума, Кнута и освоение ассемблера

>От того что погряз в легаси и не развивается


ты за апдейтами Java следишь, что пишешь такую хуйню?
Я устал от попыток диалога с тобой, могу лишь сделать вывод, что ты скорее всего студентота, когда то дрочившая C/++, пытаясь в очередной раз изобрести колесо
SAGE 683 1696819
>>696779
Мда
684 1696854
>>696814

>Тебе стыдно сказать проект


>ты скорее всего студентота



Да, ведь для того чтобы интересоваться и изучать возможности языка на котором ты пишешь, нужно обязательно использовать эти возможности в проекте, либо нужно быть студентом, который дрочил С. Не перестаю проигрывать с животного. Ну сиди ты /b/ и перди там вместе с таким же быдлом как ты, этот раздел и тред как раз и создан для того чтобы обсуждать язык и его возможности, нахуй ты сюда лезешь?
685 1696875
>>696854
чтобы что то изучать, нужно понимать для чего ты это изучаешь. Только студентота и дрочилы бьються головой об стену изобретая изобретенные вещи еще и не тем инструментом

>Не перестаю проигрывать с животного. Ну сиди ты /b/ и перди там вместе с таким же быдлом как ты


не знаю, чем так поджег твою жопу, но видимо аргументация была моя верна, раз такой триггер пошел. И да, это уже 5ый пост с пуков в воздух твоего Unmanagement code. Жаль тебя вобщем.
686 1696894
>>696875
Да-да, ты всех затроллил, аргументированно насрав себе в штаны.
687 1696942
>>696894
мальчик, мне интересен был проект или идея, где используется этот код, а не троллинг. Ты видимо и сам не так давно из /b/ пришел, раз такую дичь пишешь
688 1696949
'NavigationExpandingExpressionVisitor' failed. This may indicate either a bug or a limitation in EF Core. See https://go.microsoft.com/fwlink/?linkid=2101433 for more detailed information.

Крашится LINQ запрос на GroupJoin. Стаковерфлоу говорит там какую-то непонятную хуйню про вычисление на стороне клиента итд. Чем мне заменить мой GroupJoin-то можно? Подскажите плз
689 1696997
>>696942

>мне интересен был проект или идея



Так в чём проблема? Открываешь Github, вбиваешь в поиск Span с любым интересующим аргументом типа, смотришь на массу проектов и идей. Что, в чём проблема? Ах, да, так ведь будет сложно манямирок свой подкреплять в котором всё новое не нужно, нигде не используется, нигде не применимо.
Я понимаю, что тебе сложно осознавать свою ущербность из-за которой ты вместо того чтобы изучать, ищешь оправдания, но разве это причина для того чтобы начинать нести какую-то чушь и повторять из сообщения в сообщение одно и тоже? Ты хотя бы хоть немного оригинальности добавил, а то совсем скучно.
15842999757210.jpg5 Кб, 224x225
690 1697064
>>696997

>манямирок


>всё новое не нужно, нигде не используется, нигде не применимо.


>сложно осознавать свою ущербность


мальчик, ты какой то тупенький. Мало того, что ты не можешь в 2 словать описать что ты делаешь, так ты еще не понимаешь смысла зачем ты это делаешь. Может ты оптимизаторы для Linq делаешь? Или какой то низкоуровневый API? Not sure about it. По поводу всего остального, что ты брыжешь желчью, когда тебя тыкают носом в говно - я тебя на путь истинный пытаюсь вывести да нет, на самом деле мне похуй на тебя И да, серьезно жаль тебя
691 1697108
>>697064
Ты уже определись, тебе конкретно я интересен или "проект или идея". Даже страшно представить, почему я стал интересен умственно отсталому и он так сильно пристал именно ко мне.
692 1697151
>>696949

>GroupJoin


Твоя база это не поддерживает. С 3.0 на клиенте больше не выполняется.

>Чем мне заменить


Ручками делать после выполнения запроса. А вапще это от тебя зависит что ты там понаписал и хочешь - иди читай, переписывай.
https://github.com/dotnet/efcore/issues/17068
https://stackoverflow.com/questions/60588364
https://stackoverflow.com/questions/58622571
693 1697396
>>697151
Я просто нихуя не понимаю причем здесь клиент, у меня вебапи приложение.
694 1697506
>>697396
Ой вэй! Твое приложение и есть клиент по отношению к бд.
695 1697577
>>697506
Ааа, вот оно что епт. Охуеть просто. Теперь понял всё. Спасибо.
696 1697989
Можете пояснить неофиту кто такой сишарп, а кто такой дотнет? Сишарп разработчик == .Net разработчик?
697 1698254
>>697989
Шарп - язык программирования.
.NET - фреймворк.
698 1698265
>>693670
бамп, по всему разобрался кроме refresh token
699 1698423
>>698254
Это понятно, но тут же вроде ситуация не как с явой и спрингом и не как с питоном и джангой. Вроде как наоборот - сишарп входит в состав .NET. Если это так то что еще входит в его состав?

>Сишарп разработчик == .Net разработчик?

700 1698431
>>698423

>Вроде как наоборот - сишарп входит в состав .NET


Не входит, а может использовать функционал .NET, так же как и куча других языков программирования, даже на С++ можно писать для .NET
Можешь свой компилятор написать и обходиться без .NET, как это сделали создатели Mono или Unity.

>Сишарп разработчик == .Net разработчик?


Не обязательно, если ты под Unity пишешь, то с .NET у тебя не так много общего.

.NET это основа. Чистый .NET Это стандартный набор библиотек. Потом уже идут всякие ответвления типа ASP .NET, WPF, Win Forms, Xamarin и т. д.
images (1).jpeg8 Кб, 252x200
701 1698634
Шарпаны, появилось острое желание освоить мобилки. Пробовал кто-нибудь xamarin forms? Собрал дефолтный проект, 16 мб apk весит. Запускается около секунды на 835 snapdragon, это уже терпимо. Раньше, насколько помню, было хуже. А вот анимация плавная или нет – не пойму. Кажется, что стабильно 30 кадров, как на консолях

Второй стул – Flutter. Совершенно противоречивые отзывы в сети. Говорят даже, что гугл наебывает со списком компаний, которые его используют, агрессивно пиарит и делает это лишь затем, чтобы иметь запасную технологию, если oracle начнет брыкаться. Зашел в новость на сайте Microsoft по поводу MAUI, в который превратится Xamarin, Flutter прямо таки не любят. Но вдруг он будет лучше?
Смущает то, что контролы там не нативные, но как бы и в forms так же ебаться с xml для Xamarin native желания нет

Вообще, все языки разметки для меня вызывают какую-то боль. Не получается их просто так изучить на достойном уровне, просто листая документацию. Взять тот же XAML – я им пользовался, пока писал на wpf. Многословный, неинтуитивный. Очень сложно сделать что-то красивое. Но этот же XAML и в Xamarin. Попробовал Vue.js – охуел от удобства

В общем, отпуск у меня две недели, и хотелось бы потратить их с пользой, заперевшись в своем чулане. Если кто-нибудь имел опыт с двумя этими технологиями, был бы рад услышать отзыв
702 1698680
Сап аноны, насколько сильно я проебался начав вкатываться в дотнет? Что должен уметь падаван, по вашему мнению? И почему так мало вакансий в России?
703 1698705
>>698680

>насколько сильно я проебался начав вкатываться в дотнет?


Довольно сильно.

>Что должен уметь падаван


Всё. Я бы дал 80%, что будешь фулстеком и в итоге перейдешь на реакт

>почему так мало вакансий в России?


Странный вопрос. Сколько надо кодеров, столько и вакансий.
704 1698716
>>698705
Я с дотнетом проебался в плане того, что надо перекатываться в Японию, а там мир победившей джавы
Насчет фулстека ты прав, попробовав пописать на wpf, через месяц перескочил на Vue и кайфую уже полгода. Теперь думаю, то ли б-гмерзкий js изучать и всю его экосистему на нормальном уровне, чтобы во фронт уйти, или продолжать дрочить дотнет с неизвестной перспективной при перекате
705 1698719
>>698716
ЖС-то все равно придется учить, потому что опять же, подавляющее большинство c# разработчиков это ASPшники. Но раз тебе про Японию, то я ничего не знаю. У них там всегда все не как у людей.
706 1698737
>>698719
Да хотелось бы просто бекендом деньги зарабатывать, です
Но да, учить js придется. На работе можно клепать простые сайты для внутрикорпоративных нужд, не понимая особо промисов, но далеко так не уедешь. Да и по шарпу я не то чтобы спец, весь мой код синхронный, не считая мест, где без параллельности никак. Но и там простые Task.Factory.StartNew(() = {}). Просто не успеваю все это изучать. И фронт, и бек, и алгоритмы, и японский. Сейчас очень сильно себя виню за то, что был распиздяем в универе и слил пять лет фактически свободного времени впустую
707 1698785
https://ideone.com/WbRgpT
Зацените мой первый код
708 1698794
>>698785
Хороший код для первого раза, читается по диагонали, です
Я бы на твоем месте навернул абстракций, потому что сегодня ты хранишь инты в качестве сущности мира, а завтра захочешь дома и дороги – вместо массива с интами массив с объектами. И презентер к нему
Добавил бы интерфейсы, DI, заменил общее исключение на ArgumentException

Но это так, не забивай голову. Ты очень понятно написал, мой первый более менее осмысленный код был дерьмом по сравнению с твоим
Сколько изучаешь и как?
709 1698796
>>698785
У тебя set и get одно и тоже делают. Проверка не нужна, так как тот же самый результат ты получишь при обычной попытке доступа к значениям находящимися за границами массива.
710 1698800
>>698785
И Console.Write + Console.WriteLine() нужно заменить на StringBuilder, а в конце добавить Console.WriteLine(sb.ToString())
711 1698830
>>698785
Ты же за критикой пришел, верно?
-Вынеси в отдельный метод вывод мира из Main
-Не захардкоживай числа
-Check - плохое имя метода, когда в коде появится world.Check(..) первая мысль - проверяется сам мир на какие-то параметры, как вариант CheckCell, а лучше упомянуть что именно проверяется, например IsCoodrdinatesBelongToWorld.
-В методах гет и сет (опять плохие имена, не понятно что именно устанавливается и получается), ты проводишь проверку и кидаешь эксепшн. Что плохого? Во-первых, при неверных координатах сам массив и так бросит АутОфРэнж, а во-вторых, ты бросаешь максимально обобщенное исключение - Exception, что сильно усложнит обработку исключений на верхних уровнях. Всегда генерируй максимально специфичные исключения.
-Твои гет/сет логичнее заменить индексатором, прочитай про него.
-Еще ты вроде с индексами проебался, попробуй сделать не квадратный мир

https://ideone.com/oyNcSe
712 1699024
Куда при codefirst ентитя записывает базу?
Делаю как в ссылке, но в sql manager'е не могу нигде ее найти
https://www.entityframeworktutorial.net/code-first/simple-code-first-example.aspx
713 1699033
>>699024
Посмотри в папке пользователя
714 1699036
>>699033
Ооо, спасибо!
715 1699056
>>699036
Отметь как ответ
Untitled.png5 Кб, 1008x82
716 1699102
Как в ef 6 реализовать seed?
Делаю все в точности как в ссылке
https://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code-first.aspx
мне прилетает пикрил в конструкторе контекста Database.SetInitializer.
717 1699136
Зачем нужна асинхронищина в ef core? Все эти async методы-аналоги стандартных, писать await перед каждым итд. Типа рантайм разбивает на потоки как-то если их используешь? В жсе всё понятно - чтобы не блочить юай.
718 1699138
>>699102
>>699102

>Делаю все в точности как в ссылке


А вот и нет. Проверяй куда что вставляешь. Ты вставляешь инициализатор туда, где нужен контекст.
Зачем тебе EF6, когда уже кор3 вышел?
719 1699140
>>699136

>Зачем нужна асинхронищина в ef core?


Как и везде, чтоб не блокировать поток. Пока бд проперживается поток твоего приложения спеет сделать что нибудь полезное.
720 1699173
>>699140
Теперь понел
721 1699267
>>699138
Бля, разобрался, мне нужно было написать
Database.SetInitializer(new laba1DbInitializer());
вместо
Database.SetInitializer(new CreateDatabaseIfNotExists<laba1Context>());
722 1699326
Помогите, пожалуйста!
Работаю с цмсками и решил обратно вкатиться в программирование на шарпах в асп.нет. В связи с этим возник вопрос контроля версий. Чтобы делать все по-человечески, отслеживать изменения. Но не могу понять как к этому подойти. Что сделать сначала? Как начать работать с гитом? Как потом из Гита на продакшн разворачивать?
Не мог бы кто-нибудь мне подсказать?
723 1699388
>>699326
Просто ставишь гит и открываешь мануал по нему, там две с половиной интуитивные команды.
Без названия.png655 Кб, 1534x1440
724 1699539
>>699326

>Работаю с цмсками

725 1699634
>>699326
Это то есть ты если что то сломаешь и забудешь как было тогда не сможешь пофиксить? Проиграл
726 1699667
>>699326
Смотри, если ты только начинаешь работать с системами контроля версий, то я советую выбрать GitHub (Да, я хорошо осведомлён о том, что он сейчас принадлежит Microsoft, в нём есть анальная слежка и вообще всё плохо.). Соответственно хостинг уже выбран, а значит выбрана система контроля версий Git.
Далее установи себе GitHub Desktop с официального сайта. А в установщике Visual Studio в разделе дополнительных компонентов убедись, что стоит галочка "Git для Windows".

Теперь действуй так:
1. Создавай решение и проект Visual Studio, где тебе удобно на локальном диске. Во время создания проекта поставь галочку "Включить в систему контроля версий Git";
На этом этапе Visual Studio создать тебе проект и инициализирует локальный репозиторий вместе с файлом игнорирования .gitignore.
2. Далее ты можешь управлять своим локальным репозиторием непосредственно из обозревателя решений Visual Studio, но так и через GitHub Desktop (и последнее я считаю удобнее).
3. Поэтому запускай GitHub Desktop и там найди пункт меню "Add local repository" ("Добавить локальный репозиторий"). И укажи путь в корень той папки, где у тебя лежит файл решения твоего проекта (это который имеет расширение .Sln).
4. Теперь вверху окна открой список веток (Branch) и создай новую с именем "development". В программных кодах своего проекта делай именения с коммитами в эту ветку.

Расписывать тут можно ещё дальше поэтому, если тебе действительно это нужно, то можешь обратиться с вопросами мне в телегу. (Зловещий Дед)
727 1699670
>>698634
Привет тебе)
В Xamarin с мобильной всё как-то не очень. Есть и положительные моменты, но больше отрицательных на мой взгляд.
Я так понимаю, что ты хочешь иметь один проект для обоих платформ iOS и Android, если выбирал Xamarin. И далее вижу, что тебе понравился Vue.js. В таком случае я советую ознакомиться с Vue-Native тут https://vue-native.io
728 1699671
>>699326
https://git-scm.com/book/ru/v2
Хотя бы глазами пробежаться стоит, понять, что такое ветки. А в остальном тебе анон прекрасно расписал
>>699667
На работе локальный гитлаб поднят. В одной программе используются dll от какой-то левой библиотеки, которые сами не установятся при dotnet restore. Решили проблему в лоб – просто поправили gitignore, и теперь проект заливается на гитлаб с dll. Но коммит почему-то горит красным. Кажется, "commit failed" пишет. Но при клонировании все выгружается как положено. Что это может быть? И какой был оптимальный способ?
729 1699673
>>699671

>На работе локальный гитлаб поднят. В одной программе используются dll от какой-то левой библиотеки, которые сами не установятся при dotnet restore. Решили проблему в лоб – просто поправили gitignore, и теперь проект заливается на гитлаб с dll. Но коммит почему-то горит красным. Кажется, "commit failed" пишет. Но при клонировании все выгружается как положено. Что это может быть? И какой был оптимальный способ?



Тут можно несколькими путями пойти же.
Если уже существует репозиторий с такой зависимостью, то можно использовать git submodule.
Ещё можно написать свой скрипт развёртывания для конечных машин, где перед dotnet restore какой-нибудь условный Wget или Curl будет качать зависимости.
15429816506660.jpg46 Кб, 532x531
730 1700347
Объясните по хардкору за динамическое добавление в WPF, в какую сторону копать?
Мне нужно динамически по нажатию на кнопку добавлять "строку элементов" (насколько я понял лучше всего в stackpanel) по типу "текстбокс/кнопка/текстбокс". Как это реализовать лучше всего? Во что "завернуть" мне строку?
731 1700350
перекотите тред!!!
732 1700388
>>700347
А почему бы не в листвью/листбокс добавлтяь?
733 1700446
>>700350
Вот дебил
734 1700474
Что поменяли в 4.8 .net wpf? У меня нихуя теперь кнопки к коммандам не биндятся старым кодом.
735 1700483
А, все, отбой, я забыл прибиндить viewmodel в view.cs.
736 1700515
>>700388
А можно поконкретнее?
737 1700618
>>700515
Ты первый.
738 1700802
Как отсортировать по блоги последнего комментария?
Вот мое выражение ебаное и оно не хочет работать совсем кидаясь System.ArgumentException: Expression of type 'System.Linq.IOrderedQueryable`1[Comment]' cannot be used for return type 'System.Linq.IOrderedEnumerable`1[Comment]'

await blogs
.Include(b => b.Comments
.OrderBy(c => c.Date)
)
.OrderBy(b =>b.Comments.Last().Date)
.Skip(BLOGS_ON_PAGE * page)
.Take(BLOGS_ON_PAGE )
.ToListAsync()
739 1700804
>>700802

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

740 1700913
>>700802
Нахуй нам твоё выражение, кидай пример того как выглядит блог.
741 1700924
>>700913
Какая разница? У блога есть Id, у комментариев есть BlogId, 1 к многим. Две таблицы - комментарии и блоги.
742 1701458
>>665540 (OP)
Аноны, как пофиксить :
the type or namespace name 'windows' does not exist in the namespace 'system'
Интернеты советуют добавить reference System.Windows.Forms, но такого нет. Есть System.Windows.Forms.DataVisualization и System.Windows.Forms.DataVisualization.Design, просто System.Windows.Forms нет.
743 1701490
>>701458

> но такого нет


Проект у тебя под что собирается? Какая версия фреймворка?
744 1701501
745 1701548
>>700618
Да я помоему все описал. С текстбоксов нужно будет считывать значения, а кнопка в строке должна удалять эту строку (кнопка "х"). Пока что нагуглил что-то подобное https://overcoder.net/q/1006835/динамическое-добавление-элементов-в-пользовательский-интерфейс-в-c , но мне походу нужно будет это как-то перепердолить под mvvm.
Можно как-то без задней мысли создавать класс с полями элементов, потом коллекцию этого класса в вью модели прибиндить в листвью (или чему лучше?)? Алсо нужно еще заранее выровнять эти элементы, т.е. размер такой строки элементов и самих элементов - статический.
746 1701550
Алсо в отличии от примера в ссылке мне нужно только вниз добавлять строки.
747 1701661
>>701501
Тут смотрел C:\Windows\Microsoft.NET\Framework64\v4.0.ххххх?
748 1701792
У кого-нибудь визуалка уходить в полный аут, не отвечая, когда наводишь мышкой на подключенную Oracle DB в обозревателе серверов? Я уже 10 раз пытаюсь, каждый раз такая хуйня. Вот когда подключал ее, то норм было, все работало.
изображение.png19 Кб, 720x504
749 1702266
Блять! Пытаюсь второй день реализовать эту хуйню >>701548. Объясните ньюфагу - что за хуйня из под коня этот ваш mvvm в wpf? Яннп.
В этих ваших тырнетах пишут что пытаться достучаться к элементу view через viewmodel напрямую, а не через биндинг - это хуевая практика и вообще типа нихуя уже не mvvm.
Хорошо, теперь объясните - как мне тогда динамически добавлять/удалять эти самые элементы, ведь по идее это должно быть в viewmodel?
Вот есть код типа пикрил, как его можно реализовать в viewmodel без задней мысли? Можно конечно при ините viewmodel отправлять в конструктор текущую view (this), но тогда назревает вопрос - нахуя нужны биндинги?
750 1702349
Как в wpf xaml реализовать ScrollViewer в itemscontrol? Код следующий
<ItemsControl
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
При попытке завернуть над гридом - на каждый грид появляется свой скролл. При попытке завернуть itemsControl либо же в Scrollviwer+Grid/Dockpanel - он какбэ есть, но он нихуя не работает.
751 1702361
Все, сделол, держу вкурсе. Надо добавить докпанель, указать высоту и под докпанелью ебануть скролвью, а затем уже все остальное.
752 1702372
>>700802
Help me
753 1702458
На wpf окне есть одна кнопка с командой и условный список. Как сделать так чтобы в команде кнопки CanExecute() тригерился на изменение количества элементов в списке на форме?
754 1702498
>>702372
хуй знает мб после OrderBy(date) добавь .AsEnumerable()
755 1702628
>>702498
Так я не хочу в память грузить всю эту дрисню( хочу элегантный простой запрос чтобы он шел в базе
756 1702631
>>700802
Не скажу где у тебя затык, но вот вижу 1 явную логическую проблему.
.OrderBy(c => c.Date)
)
.OrderBy(b =>b.Comments.Last().Date)
Второй должен быть ThenBy() иначе у тебя первая сортировка не работает.
757 1702745
>>700347
Может быть имеет смысл использовать DataTemplate и ItemTemplate? Там можно будет сделать привязку данных к коллекции, а по нажатию на кнопку в этой коллекции создавать объект. А данные сами добавятся в твой ListBox.

Вот тут почитай: https://metanit.com/sharp/wpf/14.3.php
758 1702760
>>702372
Я тут в треде выше бомбил из-за Last() и TakeLast() которые не работают для IQueryable. Плюс вызывает сомненеие сортировка для инклюда, но тут я не уверен. Я б сделал тип такого:
await blogs
.OrderBy(b=>b.Comments.Max(c=>Date))
.Skip(BLOGS_ON_PAGE * page)
.Take(BLOGS_ON_PAGE )
.Include(b=>b.Comments) //если надо явно загрузить комметнты
.ToListAsync()
759 1702807
>>702745
Спасибо, но я уже сделал вот так >>702349.
760 1702842
>>701661
Анон, извини только увидел твоё сообщение.
Да, System.Windows там есть!
Но почему то Microsoft Visual Studio не видит эти файлы.
761 1702844
>>701458
Сделай скрин списка ссылок в проекте. И проверь чтобы mscorlib был включен.
762 1702850
>>701458

>Интернеты советуют добавить reference System.Windows.Forms, но такого нет


>Да, System.Windows там есть!


Ну вто его и добавь в референсы. И ты так и не ответил что за тип проекта ты создал.
763 1702851
>>702844
>>701661
Разобрался, спасибо за подсказку!
764 1702855
>>702850
Почему то Microsoft Visual Studio сама не находила нужные референсы и из-за этого выдавала ошибки. Как оказалось, всё это есть тут >>701661 и нужно было показать это студии.
Я нашел рандомный проект на гитхабе и решил его допилить, заодно вкатиться в c#.
765 1702858
>>702855
Что за проект?
766 1702877
>>702858
Десктопный чат (desktop chat c# поисковый запрос).
Судя по гитхабу это тоже вкатывальщик его делал, возможно, даже из этого треда.
767 1702893
>>702877
Tcp/ip?
768 1702898
769 1702968
Писал код на ASP.Net Core, столкнулся с таким багом. Код, который ещё утром работал - сейчас выдаёт ошибку 405. С яваскрипта запрос на сервер идёт, он его обрабатывает, отсылает ответ, но браузер выдаёт ошибку 405. Изменил буквально нихуя, вроде назад всё даже вернул что вспомнил - нифига. В чём может быть дело? Или хотя бы где какие то логи посмотреть, почему такая фигня выходит?
770 1702985
>>702968
Выхлоп dotnet run сюда давай.
Безымянный.jpg373 Кб, 1693x893
771 1703021
>>702985
Не совсем понял что надо сделать.. Если запустить проект через консоль - то вот это. Никаких дополнительных логов не пишет, просто браузер выдаёт ошибку 405. Не на весь код. Многое в проекте работает. Но на некоторые вещи вылетает ошибка. Вроде как они все на одной странице находятся, что интересно.
772 1703072
>>702968

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


По-моему самое время начать пользоваться гитом.
>>703021
Зачем ты в половине мест закрасил, то что ты Шевченко? Если шифруешься, то надо было все закрашивать.
773 1703082
>>703072

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


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

>По-моему самое время начать пользоваться гитом.


Было б неплохо, но инет на работе гавно. Половина сервисов работают через жопу
5ff5e6.jzajmv.ecf.ci.a0[1].jpg18 Кб, 450x360
774 1703105
>>703082

>Было б неплохо, но инет на работе гавно.


Дратути, гиту не нужон ентот ваш интернет.
776 1703186
>>703118
Блять нашёл ошибку. Не закрыл тэг <div> на странице. Сука, вот кто мог знать, что с этого такая ошибка может быть?
777 1703226
>>703186
Это еще хуйня. У меня когда-то бот в телеграме лежал полтора дня - сервер работает, а в телегу ничего не приходит. Оказалось что я проебался с вставкой ссылки и у меня вместо http было https.
778 1703228
>>703226
Тоесть наоборот.
779 1703499
>>702760
От души братишка
780 1703879
А существуют какие-нибудь анализаторы на Visual Studio которые могут проблемы связанные с EfCore например показать? Пиздец заебало, нихуя не понятно что ему не нравится
781 1704078
В общем анон, есть картинка. Т. е. Image. Как можно разрезать эту картинку на определенное множество одинаковых частей и какие классы для этого лучше всего использовать?
783 1704097
>>704078
Попробуй копировать по пикселю.
784 1704098
>>703879
Попробуй Jetbrains Resharper, у него неплохой статический анализатор. Или же установи Jetbrains Rider и пиши в нём.
785 1704099
>>704078
Класс Bitmap покакатит. Бери матрицу пикселей и дели её, как тебе надо.
786 1704434
Только не проигрывайте с меня сильно, ладно?
Как в WPF текстбоксе сделать инпут только интовых чисел? Мне нужно чтобы можно было вводить и отрицательные числа, все упирается в "-" в начале строки. Я думал это платиновый реквест - а в тырнете нихуя нету нормального решения, я в ахуе.
787 1704479
>>704434
Можно свой валидатор написать или конвертер, в котором ты будешь пытаться привести строковое значение к числовому и в зависимости от этого давать предупреждение.
В общем, гугли в сторону валидации ввода.
788 1704548
>>704434
Задача крайне примитивная и я не верю что ты не нашел ее в гугле.

<TextBox PreviewTextInput="Preview"></TextBox>

https://pastebin.com/sRhKht8a
789 1704588
>>704548

>не верю что ты не нашел ее в гугле


Нашел разные вариации по типу только плюсовые или минусовые значение, нашел с не целыми числами, нашел что-то с регулярками.
Спасибо, только единственное что твое решение не инпутит "-" если в текстбоксе что-то есть.
790 1704649
>>704588
Не быть тебе походу программистом.
Я лишь показал тебе пример как можно, как правильно я не знаю потому что дел с wpf не имел практически вообще.
Но посмотрев быстренько свойства что мне доступны я моментально нашел решение.
https://pastebin.com/xpBwVn84
image.png10 Кб, 293x245
791 1704676
Сап, есть один проект который нужно скомпилировать в один exe. Пытался это делать при помощи csc но меня шлют нахуй исключением CS0246(не удалось найти тип или имя пространства имён "Newtonsoft").
Сама эта dll-ка подключена и всё хорошо работает, так же добавлена в сборку
792 1704817
Подскажите, что сейчас используют для написания сайтов на C#? Есть задача написать сайт, представляющий собой онлайн сервис, то есть будет регистрация, личный кабинет, баланс, настройки и проч. Сам я, когда-то фрилансил на шарпе и более менее его знаю, поэтому выбрал его. Помню был ASP.NET, но я так понимаю это уже говно мамонта и никто не использует его.
Желательно, что-нибудь самое простое, лучше вообще с конструкторами типа вордпресса, которые еще подпиливать можно под свои нужды, только под шарп.
15274757591720.png187 Кб, 720x720
793 1704844
Тупых вопросов тред.
Нужно запилить логику работы с дб/ентити в отдельную либу. Есть один метод который возвращает записи с бд (IQueryable<T>). При попытке получить (в мейн коде) уже с полученного (с метода либы) IQueryable<T> записи или count прилетает в ебало само собой эксепшн - datacontext has been (ясен хуй) disposed.
Можно конвертнуть его как-то во что-то явное/человеческое, без енумераторов там или я долбаеб?
794 1704845
>>704676

> нужно скомпилировать в один exe.


Еще один свидетель церкви одна программа - один файл? Кор вроде может в один файл все запихать.

>делать при помощи csc но меня шлют нахуй


И правильно. csc ничего не знает про проекты студии. Ему надо ручками все референсы скармливать.
>>704817

>был ASP.NET


Ну раз делаешь новый проекь, то ASP Net Core.

>Желательно, что-нибудь самое простое


Ну можешь с Razor Pages начать.

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


Тогда ты не по адресу.
795 1704851
>>704844
Ты хоть одну книгу прочитал? У тебя вопросы ппц тупые. Тебе надо выполнить запрос, т.е. воспользоваться ToArray/ToList/ToEnumerable и т.д.
796 1704853
>>704851
А, точно, спасибо, я забыл совсем.
797 1704882
Посоветуйте быстрогайд для вката в asp.net mvc за один день.
Мне не нужны все эти контролы, вью, модели, роуты, нужно буквально скрафтить 1 страницу с лейблой, подгружаемой с бд табличкой, текстбоксом и кнопкой, даже без верстки.
798 1704908
>>704882
Попробуйте майкодоки десу.
799 1705098
>>704882

>asp.net mvc


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


Кек.

>1 страницу с лейблой, подгружаемой с бд табличкой, текстбоксом и кнопкой


Бери Razor Pages и в учебнике мсдн/на метаните как раз на таком примере объясняется что к чему.
800 1705100
>>704882
P.S. Лучше пыху возьми для такого.
801 1705182
>>705100
Код то на шарпе
>>704908
>>705098
Спасибо, посмотрю. Алсо я как раз таки с метанита и пришел.
802 1705374
На winform'ax был такй контрол назывался - data что-то там. Ему можно было скормить таблицы, списки и т.д. и он их автоматически подгружал.
Какой подобный аналог есть у wpf, чтобы можно было загрузить лист класса с n полей?
803 1705406
>>705374

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


Datagrid

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


Datagrid
804 1705472
>>705406
Да, оно, спасибо. Просто я не кодил 10 тысяч лет.
805 1705593
>>665540 (OP)
Сап двач, изучаю наследование, сделал всё по видео https://www.youtube.com/watch?v=IF7YRBokJAw
но у меня пишет ошибки, я не понимаю что не так

https://dotnetfiddle.net/eydbBO
806 1705608
>>705593
Я просто хочу разобраться чем у меня отличается код от того, что на видео
Анон 807 1705654
Ебать тут токсики сидят
808 1705669
>>705654
дак жиза же. Все, кто помимо меня отписал - правы. Сначала # за час, потом резюме на почте HR с фразой - "Работаю за еду или бесплатно". И да, # это не JS, где зная основные механизмы языков программирования (что и дает Гоша, просто переписывает под синтаксис языка) можно интуитивно разобраться. В # нужен углубленный подход к изучению.
Геймдев - это еще пиздецовей, чем # интерпрайза. Тебе помимо общей логики, нескончаемой дрочки ООП нужны будут применения тригонометрии, физики и прочего (если ты не Unity-constructor clown).
Хочешь # - начни хотя бы с мутанита, этот ресурс даже дауны осилят.
809 1705683
>>705669
А тебе спасибо. Единственный адекват в треде
810 1705882
Кто-то итт ставил на 19 студию 19 решарпер с торрентов? У меня после инсталла и крякинга - нихуя, в расширениях vs нету решарпера.
811 1705884
мочератор, ты нахуя посты трешь?
812 1705896
>>705884
У него пригорело от собственной ущербности.
813 1705959
посмотрел на ютабе кучу уроков да, не до конца, но какие-то до конца что, блять, означает :
static void Main(string[] args)
во всех уроках это тупо пропускают, мол, вот блять вы потом поймете что это это блять пока знать не надо
814 1705969
>>705959
Это метод который является точкой начала выполнения твоего консольного приложения.

> string[] args


Аргументы командной строки которые ты можешь передать при запуске своего приложения.
815 1706013
>>705969

>твоего консольного приложения.


Любого приложения.
816 1706024
>>705969
спасибо, что вообще ответили, все равно тяжело вникаю, ну не могу продолжать когда не понимаю что и для чего, может ли это объявляться как-то иначе, я именно про string[]args
по отдельности я вижу тут string - строка, [] массив и args щито? а вместе вообще не понятно
817 1706025
>>706024
Вся суть уроков по ютубу - долбоеб не может отличить тип аргумента от его названия.
Бери книгу Троелсена и читай её, зачем ты своё время тратишь на хуйню?
14968184210340.png225 Кб, 486x640
818 1706052
819 1706076
>>706052
что по твоему без метода Main работает? Интересно почитать
820 1706077
>>706013
А еще можно без args.
С async.
И вообще в C# 9 можно без него.
821 1706100
>>706077
Ты путаешь "делает за тебя" и "можно без него".
822 1706104
>>706077
>>706052
это вы, два петушка (возможно один, игнорящий мой пост), решили тут крылешками помахать, что в #9.0 можно высирать код без точки входа?
823 1706109
>>706104
Нет, я не он.
Точка входа не всегда main, а еще ее можно поменять.
824 1706114
>>706109
точка входа - это в первую очередь команда CLI и похуй как ты ее назовешь, если будешь свое говно клепать. Дефолт - это Main, открытие контекста выполнения приложения с последующей передачей CLI команды на ассемблирование сборки. Так что нечего тут выебываться
825 1706140
>>706109
вообще бредовый вопрос от того человека, который начал спрашивать про этот main
а что насчет unity там как это все? там вообще есть точка входа или..ладно, пойду я нахуй тупой я дебил спать ((
826 1706146
>>706109
Приведи пример "не всегда main"
827 1706317
Почему xamarin такое говно?
828 1706323
>>706317
Дай угадаю. Потому что ты макака привыкшая к вин формочкам, у которой от одного вида XAML начинаются нервные судороги?
829 1706490
Что лучше\проще\быстрее для веб разработки - Питон или Шарп? Просто Шарп немного знаю, а Питон впадлу с нуля изучать. Либо проще и быстрее с нуля изучить Питон?
830 1706547
>>706490

>лучше\проще\быстрее


Вордпресс
831 1706561
>>706547
Да ты заебал со своим вордпрессом
.mp42,2 Мб, mp4,
720x900, 0:10
832 1706589
Вопрос про BeginInvoke.
Дано: нужно менять интерфейс из другого потока. Если использовать простой Invoke, то он блокирует поток до окончания своего выполнения,что может быть не очень хорошо, ведь интерфейс может подлагивать, насколько я понимаю. Окей, можно использовать BeginInvoke, который работает асинхронно и его не нужно ждать, но возникает вопрос: если я вызову сразу 2-3-4-...10 BeginInvoke подряд, они будут выполняться подряд, или существует вероятность, что более поздний вызванный BeginInvoke выполнится раньше, чем более ранний? Если да, то вариант пилить отдельный поток, который по команде будет выполнять простые Invoke - хорошее решение?
833 1706598
>>706490
Зависит от того, насколько знаешь шарп. Если уже писал что-то кроме хэллоувордов, то через неделю можно высрать первый сайт на разорпагесах (наверно и за пару дней можно, я изучаю программирование паралельно моей не ИТ работе). Если только знаком с синтаксисом, то хз, наверно на петухоне проще. Но в любом случае еще надо знание хтмл/жс/ксс.
>>706589
Зачем тебе в 2020 BeginInvoke? Юзай async/await.
>пилить отдельный поток, который по команде будет выполнять простые Invoke - хорошее решение
Нет.
834 1706622
>>706589
При Invoke у тебя блокируется вызывающий функцию поток, а не основной поток который будет выполнять то что ты ему через Invoke передаешь (если ты конечно не долбоеб, который Invoke вызывает из основного потока, что вообще приведёт к его дедлоку).

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

>Если да, то вариант пилить отдельный поток, который по команде будет выполнять простые Invoke - хорошее решение?



Нет. Плодить потоки ради вызова Invoke это плохоее решение, тебе нужно синхронизировать нужную часть и делать вызовы из потоков которые либо обрабатывают результаты обработки информации, либо совершаю обработку этой информации.
Допустим, у тебя есть 3 задачи, которые требуют отдельных потоков, но при этом тебе нужно обновлять интерфейс в последовательном порядке, тогда ты на каждую задачу создаешь свой Task, добавляешь их в список, после чего используешь цикл в котором ждёшь Task.WhenAny до тех пор пока все задачи не выполнятся, в цикле проверяешь какая именно задача выполнилась, убираешь её из списка, если эта задача должна обновлять интерфейс первой, значит вызываешь BeginInvoke, если второй или третьей, значит добавляешь её в массив, в котором индексы это порядок выполнения задач и ничего не делаешь.
Выполняется еще одна задача, убираешь её из списка задач, проверяешь какой по счету эта задача должна выполниться. Допустим, что первым выполнилась вторая задача, а второй первая, значит у тебя в массиве заполнены первые два индекса, значит выполняешь каждую, из этих задач последовательно при помощи BeginInvoke.
Ну и т. д.
835 1706664
>>706598
А на чем проще, на разор-пейджс или на ASP (MVC, Core и какие там еще бывают..)
836 1706687
>>706664
На разоре, наверно. Но на 99% это одна хуйня.
.webm4,2 Мб, webm,
960x540, 0:16
837 1706704
>>706622
>>706598
Ага, спасибо.
IMG20200529131343.JPG13 Кб, 456x160
838 1706705
Сишарп, помоги с легким заданием, отсосать готов
839 1706707
>>706705

> отсосать готов


Извини, но тут это делают ради удовольствия. Не помогу
840 1706725
>>706707
Та кмон.
Хочешь я взамен фото блинчиков со сгущенкой скину?
Или оладушков домашних?
Помоги пожалуйста.
841 1706732
>>706705
var givenTenNumbers = new[] {5,9,1,3,7,4,0,6,8,2};
var result = givenTenNumbers[0] * givenTenNumbers[givenTenNumbers.Length - 1];
Жду к 20-00 на ул Пушкина за домом Колотушкина
842 1706744
Короче я выхожу опять на связь >>704882.
Вы все дураки и гомосеки, мне нужно было буквально вот это видео https://www.youtube.com/watch?v=y8iUJXaObGY .
Держу вкурсе.
843 1706757
Засекаем через сколько этот >>706744 запостит "делаю как на видео, но у меня не работает" или "а как сделать хернянэйм, в видео такого нет",
844 1706769
>>706732
Оно должно через текстбокс выводиться.
845 1706770
>>706732
По-моему, это должно через массивы решаться
846 1706780
>>706769
Выводи через что хочешь
>>706770
А у меня через связный список по-твоему сделано?
847 1706782
>>706780
Как мне его вывести?
848 1706787
>>706782
Через текстбокс.
849 1706793
>>706757
Ты дурак или гомосек? Я запостил после того как уже все сделал.
850 1706794
>>706787
Как мне его прописать?
851 1706797
>>706782
>>706794
TextboxName.Text = result.ToString();
Это если ты на формах, если на впф то это тебе бесполезно объяснять.
852 1707172
>>696025

>А в C# 9.0 вообще новая веха наступает когда можно писать код не только быстрый, но и с 0 аллокацией памяти.


Изобрели то, что в нормальных языках вроде C++ было в 70-х? >_<
853 1707174
>>665540 (OP)
Сап, есть такой вопрос.

using(var client = httpClient()) {
var responseMessage = client.sendAsync();
}

responseMessage.ReadAsStringAsync()

Не будет ли проблем из-за того что я читаю содержимое после dispose у httpClient?
Здравый смысл подсказывает что так делать нельзя, но на удивление не падает.
Ответы с сервера ввиде json, стримов там нет.
Есть объективные причины по которым нужно иметь возможность возвращать responseMessage, но при этом не держать клиент открытым
854 1707218
>>707174
Код в твоём посте не будет работать, потому что responseMessage объявляется вне контекста в котором ты обращаешься к нему. Это раз.
И два, если присвоить переменной responseMessage возвращаемое значение client.SendAsync, то никакого отношения оно к этому клиенту уже иметь не будет, у него тоже есть свой Dispose, который нужно вызывать.
855 1707223
>>707172
аргументируй
856 1707422
>>707218

>Код в твоём посте не будет работать, потому что responseMessage объявляется вне контекста в котором ты обращаешься к нему. Это раз.


По-моему вполне очевидно что суть вопроса не в этом
>>707218
>>707218

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


Где это про почитать, я ничего не нашел
857 1707475
>>707422
Проехали, добрался до компа, протестил действительно dispose у httpclient не влияет
858 1707481
>>707174
Диспоузить HttpClient и создавать новый не самая лучшая идея. Алсо не забывай await'ить таски.
859 1707496
>>707422

>Где это про почитать, я ничего не нашел


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

int x = someObject.GetInt();

и после:
someObject.Dispose();
Спрашивать как это повлияет на int x.
860 1707511
Кто-то сталкивался с тем что проект на аспе не может подтянуть существующую ентити бдшку? При том что весь код в либе и сонсоль/винформы/впф/аллах нормально с ним работает. Только создать новую может и уже с ней работать.

> System.Data.SqlClient.SqlException: Cannot attach the file dbname.mdf as database dbname.


На стаковерфлоу в закрепе решение

> Ну короче бля хуй знает, баг воркграунда.


https://stackoverflow.com/questions/17012839/cannot-attach-the-file-mdf-as-database
Все что ниже вроде перепробовал.
Может кто фиксил подобное?
861 1707707
Через gridview пытаюсь сделать удаление и правку записей в таблице, данные берутся из бд на access
По гайдам пытался, никак не выходит
DeleteCommand="DELETE `IP_PC`, `Name_PC`, `MacAD_PC`, `Notice_PC`, `Domain_PC`, `General_ID` FROM `LocalPC`" Работает, но удаляет всю таблицу, а хотелось бы только одну строку
UpdateCommand="UPDATE `IP_PC`, `Name_PC`, `MacAD_PC`, `Notice_PC`, `Domain_PC`, `General_ID` FROM `LocalPC`" править дает, при обновлении выдает ошибку
Спасайте, что делать?
862 1707759
>>707707
Ты ж не указываешь строку. Тебе нужно выбрать строку по айдишнику там...
863 1708268
>>707759
Анон, я разобрался со своей проблемой
Я предполагаю, что ты знающий
Подскажешь, как мне сделать обновление данных на gridview, после того как я в ней данные удалил/изменил
Данные изменились по кнопке в БД, но он показывает все еще старые на gridview
864 1708600
>>708268
Я не сильно знающий и ковырял grid давно, мало того слабо понял твой реквест. Если тебе нужно апдейтить бд после изменения значений в гриде то вангую что тебе нужно гуглить и реализовать ивенты грида что-то вроде cellchanged или как-то так.
Или еще можешь сделать по тупому - реализовать отдельную форму/место для инсерта/апдейта/делейта где есть например текстбокс где юзверь вводит айди конкретной записи (или скролит грид+ивент onclick по записи) и условная кнопка делейт на которой уже вся логика работы с бд.
изображение.png5 Кб, 564x57
865 1708946
Как тут delegate убрать?
866 1708947
>>708946
Надо повесить лямбду на ивент
867 1708959
>>698794
Я из с++ вктатываюсь, по шарпу читал что-то года 3 назад, пытаюсь вспомнить теперь
868 1708961
Сап, учусь работать на wpf, есть таблица в бд которую надо вывести в DataGrid. Это я научился делатьentity framework, но теперь появилась проблема: как эту бд редактировать через этот же DataGrid. Есть ли другие способы вывалить всю таблицу сразу с возможностью редактирования?
869 1708992
Есть program.cs в котором хочу мутить логику, но окошко создаётся с button1_Click, как вынести логику из формы, то есть разделить код и графику? Или на WPF принято писать код в button1_Click?
870 1709007
>>708992
То есть не WPF, a windows forms
871 1709029
>>708961
Не понимаю в чем проблема. Получил данные из БД. Произвел биндинг модели к твоему датагриду, при изменении значения поля, данные объекта будут так же изменены если биндинг двухсторонний. Если ты не выключал трекинг, то после сохранения изменений, в БД все само обновиться.
872 1709128
Смотрите, есть набор запросов. Разным запросам соответствуют разные обработчики(методы которые знают что делать с этим запросом). Так вот, какой вариант будет лучше в коде смотреться для организации этого дела?
1. switch - просто на каждый запрос ебашим case в котором задаем обработчик.
2. словарь - ключ - тип запроса, значение - обработчик.

Вроде как второй вариант мне больше нравится по причине того, что обращение довольно простым будет, типа если этот запрос есть в словарике - попробуй обработать, если нет - верни ошибку. Да и нет switch'а, который понижает читаемость кода. Что думаете, шарпаны?
873 1709226
Аноны, помогите с Drag&Drop в WPF. Вот у меня есть окно, в нём два контрола, которые принимают дроп. Но как только на окно что-то перетянули, мне ведь нужно показать пользователю, куда ему кидать объект. Как мне отследить сам факт того, что на окно уже перетянули какой-то объект, чтоб изменить вид своих DropTarget'ов?
874 1709227
>>709128
Гугли chain of responsibility
875 1709233
>>709226
Вешаешь на самый верхний элемент обработчик PreviewGiveFeedback и в нём можешь менять вид элемента, в котором принимается элемент
876 1709408
>>709029
можешь показать на скринах как это работает? я просто в xaml нихуя не понимаю еще, какие-то биндинги хуиндинги, не ебу
tom-cat.jpg13 Кб, 360x270
877 1709499
>>695286

>сейчас бы решеточки поучить


А хули делать тогда?
878 1709562
Как работать с UDT PL/SQL, вызывая функции из C#? Я бы передал просто строку в качестве аргумента, но я не знаю как внутри ее поделить и привести к нужному типу.
879 1709695
>>709499
вкатывайся в хачкель
880 1709816
Студент первого курса. Из яызков изучали си и джаву на первом курсе.
Как понять на каком я уровне и какую книгу по шарпам начинать читать/какие видео смотреть. Ведь какие-то фундаментальные вещи по типу массивов, переменных и т.д я и так знаю, а более глубокие вещи и дотнет релейтед штуки нет. С чего стартовать чтобы на летних каникулах как следует обмазаться?
881 1709828
>>709816
С троелсона начни.
882 1709881
Oop сейчас в теме?
883 1710049
>>709881
Нет. Сейчас толко ФП.
AnalDestructor2010 884 1710414
EF вообще можно использовать не в хэллоувордах? Куда не шагни везде минное поле. Какого хера он генерирует запрос с outer apply/cross apply для sqlite, если sqlite ну умеет в outer apply/cross apply?
885 1710638
>>709816
Троелсен для старта, потом Рихтер для углубленных знаний. Сразу скажу, у Рихтера очень душное начало, которое будет интересно разве что интрпрайз петухам, но в целом книга действительно годная. Раздел про многопоточность и асинхронность самые топовые из всей шарп литературы.
886 1710661
>>710638
Да, начало душное пизда. Интересно только через год-два вернуться и почитать про это все
887 1710679
Что думаете про .net 5?
888 1710769
>>710679
Что майки движутся в правильном направлении, не нравится только их желание привлечь макак, которое привело к неявному main и коду как в жопаскрипте/петухоне. По мне так лучше бы на что то другое время потратили, например, поддержки socks прокси до сих пор нет.
889 1710782
Cап,
что есть годного на сишарпе для машинного обучения?
пока нагуглил только ML.net, но что-то отзывы слишком неоднозначные
890 1711049
Аноны, где можно посмотреть пример простейшего Self-Hosted WebApi2 приложения. Интересует только как инициализируется само приложение и простейший тривиальный контроллер. Просто у себя на .NET Core 3 собрал, запустил, а эта залупа не обрабатывает реквесты - они просто в очереди, что ли, висят.
892 1711092
>>711073
Не, так же реквесты не принимает нихуя. Забыл сказать, что пробую все запустить под Linux'ом, как обычно наебалово, короче.
893 1711106
>>711092

>запустить под Linux'


фаервол настроил?
894 1711117
Выгонят ли меня с галеры, если я понял что классы не нужны и паттерны тоже и ебашу структурами ну и статичные классы использую вместо неймспейсов? Просто блядь, ну серьезно, весь этот DI где хуй знает сколько ритуалов совершить надо чтоб оно работало, все эти паттерны-хуятерны, с которыми хуй потом в коде разберешься, а тут:
public static class Zalupa{
public static Koncha[] ZdelauConchu(int KakMnogoKonchiNado) => new Koncha[100];
}
Это же очень удобно. Удобнее чем сделать:
public class Zalupa{
public Koncha[] ZdelauConchu(int KakMnogoKonchiNado) => new Koncha[100];
}

Просто потому что чтобы из другого места кода получить много-много кончи, мне не нужно ебучий объект смоздавать, я могу сделать таск и продуцировать сколько хочу кончи асинхронно, и вообще обмазаться ей с ног до головы. При этом и ошибки искать легче, я сразу могу понять в каком классе и из-за чего что-то наебнулось, я не боюсь что сборщик мусора удалит мой объкет, либо что я забуду удалить какой-то и он будет висеть там хуй пойми сколько, просто из-за того что я не отписался от события.
В общем, одни плюсы. Структуры и статичные классы - свет и процветание, обычные классы - тьма и упадок.
895 1711167
Хочу написать программу которая бы висела в треи и выполняла мне кучу периодических действий.
Типа проверяй папочку каждую минуту и если появился файл, то сделай то-то.
Зайди на сайт раз в 5 минут и скачай то-то.
Встал вопрос в том как правильно реализовать эту периодичность?
Пока что есть идея в том что отдельный бесконечный поток который бегает по моим задачкам и проверяет время, а в конце цикла Thread.Sleep(1). Но я не совсем уверен что так делать правильно, какие есть варианты и как вообще подобное делается в настоящих программах?
896 1711169
>>711167
Асинк авейт
897 1711192
>>711167
таймер
898 1711223
>>711167
Делаешь проект типа воркер. Там будет создан класс наследуемый от бекграунд сервиса. Этому сервису реализуешь метод ExecuteAsync. Внутри просто бесконечный цикл, в конце которого await Task.Delay(переодичность выполнения этого самого воркера). Довольно просто и должно работать даже на линуксах, правда я не проверял.
Чтобы оно висело в трее, можешь добавить дополнительно всяких приблуд, но я бы просто добавил приложение в список сервисов и либо поставил в автозагрузку, либо коротенький скриптик для запуска сделал.
900 1711248
Вот все говорят: Иди джуном, там тебя будут бить по рукам за говнокод.
Ну, я пошел. И всем насрать, говорят: "Чел, оно ж работает, ты это, новые фитчи давай делай, а код, как-нибудь потом отрефакторишь".
Никаких кодревью. Никаких советов от старших коллег. Буквально: Дали компьютер со студией, дали проект, сказали - делай.
Так везде? Так и должно быть? Почему постоянно слышу в интернете про эти кодревью, про то как дядьки бьют по рукам за говнокод и в этом духе, но уже третье место и ничего такого нет, просто делай.
Как быть? Что делать? Я просто без какого-то фидбека начинаю галюцинировать и мне кажется что я все неправильно делаю, потому начинаю переделывать то что уже сделал, хотя оно работает нормально, но мне кажется что я что-то сделал не так, потому лучше создам новый проект и быстро перепишу так как надо, но только я его написал так как считаю что надо, начинаю что-то добавлять, все вроде идет норм, но потом понимаю, что что-то мне не нравится и по кругу ебаному. И выходит что я отдаю проект в виде, в котором мне не нравится, но всем похуй, его отправили куда-то, там протестировали, прислали заключение что все заебись и сказали делать другой. Я же так ебнусь нахуй, либо начну забивать на все и буду ебашить как попало, ведь всем плевать же, почему мне должно быть не?
photo2020-06-0219-06-08.jpg31 Кб, 545x468
901 1711255
Народ, может кто помочь, как заставить код ждать выполнения выделенной желтым функции? А то хитрицы на msdn просто sleep вставили не запариваясь.
902 1711267
>>711255
А без легаси дерьма вида BeginExecute никак не обойтись? Какой фреймворк тогда пиши.
903 1711272
>>711255

Алсо, проиграл с AsyncQuery, какой это нахуй асунк, если у них тред в конце блокируется? Код будет выполняться быстрее, если убрать часть с BeginExecute.
904 1711290
>>711267
>>711272
Это для работы с OData. На .net core 3.1 пилю. Так даже майкрософт в своих примерах просто sleep делает. https://docs.microsoft.com/en-us/odata/client/async-operations
905 1711306
>>711290
Так тебе же ниже написали тоже самое, только с использованием async и await
906 1711322
>>711290
И Thread.Sleep там вставлено для того чтобы тот кто хочет прогнать код у себя, смог увидеть вывод в консоль результата асинхронного вызова, а не в качестве примера того, как делать если тебе нужно дождаться выполнения задачи.
907 1711323
>>711255
Ну, я бы сделал как-то так:

while(people==null){Thread.Sleep(0);}

лол кек
908 1711342
>>711323
>>711322
Код перенес к себе. Я не знаю, что там курят создатели этих классов в .net для работы с odata, но нервы мне потрепали знатно. Те классы почти ни с чем работать не умеют.
В итоге сделал через TaskFactory:
var tfc = new TaskFactory<IEnumerable<Название_сущности>>();
IEnumerable<Название_сущности> items = (tfc.FromAsync(query.BeginExecute(null, null), query.EndExecute)).Result;
15911021532710.png98 Кб, 323x239
909 1711344
>>711167
Делаешь цикл while(true), в нем все действия, дальше в конце итерации пишешь int i = 0; while(i > n) i++; где n это условное обозначение времени. К примеру n = 4677448096544 это где-то минута.
В случае чего, лет через 10 когда обновишь пекарню, поставишь в условии цикла (i > n*2) - очень удобно.
910 1711363
Понимаю что есть геймдев. Но таки спрошу тут. Хочу сделать простую игрушку в учебных целях. Естественно с написанием своего движка. Но вот лезть на уровень OpneGL/DirectX как-то не хочется(боюсь что не разберусь я со всеми этими шейдерами и прочим). Собственно вопрос: что есть под шарп для рисование и, желательно, звука, при этом чтобы? Я вот слышал что есть порты SFML и SDL, а их первыми выдает при запросе библиотек для рисования в играх. Оно подойдет? Кто-нибудь прикладывал их к шарпу?
911 1711374
>>711363

> Естественно с написанием своего движка


Нахуя?
912 1711376
>>711363

>что есть под шарп для рисование


GDI+
913 1711379
>>711374
Потому что я хочу разобраться как оно там устроено же чуть больше, чем: Ну, движок это такая вот херовина, которая достает из папочек файлики и скрипты, производит черную магию и как-то из этого игра получается.
>>711376
Спасибо. Пойду курить мануалы.
914 1711388
>>711379
Да тупо делаешь на System.Drawing.Graphics, только двойную буфферизацию сделай, чтобы не мерцало. Для laba1 вполне подойдёт, ничего учить не надо толком, всё есть, вплоть до преобразований в однородных координатах.
915 1711389
>>711388
Ну, я ж не для лабы делаю, а чтоб разобраться.
20200305031119.jpg148 Кб, 977x899
916 1711594
>>711342
Зачем ты BeginExecute использовал, ты совсем отбитый и не понимаешь, что два кода на пикриле выдают совершенно одинаковый результат? Ты зачем-то приплёл не нужный TaskFactory, еще и поток заблочил в конце своим .Result
917 1711595
>>711594
Пердолинг, sir. Думаю, он для Linux приложение делает.
image.png409 Кб, 1920x975
918 1711623
двач, помогай, изучаю WPF и работу с базами данных. не могу подключиться к локальной базе на этом же компе

MS server 2017. при установке все оставлял по умолчанию

и следом, что и куда писать если я хочу подключить к базе данных по локальной сети, при авторизации через SQL профиль (а не профиль виндовс)
919 1711632
>>711623

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


При установке sql сервера он должен был выдать месседбокс со строкой подключения которую ты должен был схоронить и вставить у себя в проекте. Гугли теперь как ее посмотреть.
920 1711693
>>711623
Вроде через SQL Management Studio можно строку скопировать
921 1711713
>>711623
У тебя слева открыт не SQLEXPRESS
922 1711721
Анончики, помогите!
У меня есть текстовый документ, где находятся слова, разделенные пробелом. Я спличу их и добавляю в массив, но при выводе в консоль вместо букв знаки вопроса. Это с кодировкой связано? Как фиксить?
Безымянный.png53 Кб, 931x735
923 1711723
>>711721
вот така хуйня
924 1711762
>>711721

>Это с кодировкой связано?


Да.

> Как фиксить?


У ReadAllText есть перегрузка, которая принимает кодировку. Если пишешь под FW (и если звезды будут благосклонны), то должно помочь Encoding.Default. Если пишешь под Core, то надо явно указать кодировку ISO 8859-1 (её нет в стандартной поставке и надо стянуть нугет пакет). Но это гадание на кофейной гуще, я не ебу что у тебя там за файл, так что сам смотри какая кодировка нужна.
925 1711787
>>711762

>её нет в стандартной поставке и надо стянуть нугет пакет


Я только вкатываюсь, хз как это сделать, помоги пожалуйста

Пишу обычное консольное приложение(.NET Core)
926 1711815
>>711762
Файл - обычный блокнот
927 1711834
>>711815
Если файл сам делаешь, то сохраняй сразу в utf8 и не мучай жопу. Все таки 21 век уже давно настал.
>>711787
Возможно я погорячился с нугетом, это под линь надо, в винде вроде должна быть зарегистрирована 8859. Попробуй сначала так:
ReadAllText(path, Encoding.GetEncoding(28591))
928 1711839
>>711834

>Если файл сам делаешь, то сохраняй сразу в utf8 и не мучай жопу. Все таки 21 век уже давно настал.


Спасибо, все работает!
image.png23 Кб, 810x77
929 1711942
Сап. Решарпер втирает мне какую то дич, причем только в одном солюшине, в других такой хуйни нет. Сброс настроек помогает до следующего перезапуска студии, потом опять тоже самое. Кто нибудь сталкивался?
930 1711969
>>711942
Т. е. решарпер заставляет идти наперекор конвенции от майкрософтов, которые говорят, что свойства должны именоваться с заглавной буквы?
931 1711976
>>711969
Вангую, что это свойство приватное, тогда должно быть с маленькой.
Вряд ли в jetbrains стали бы выдумывать какую-то хуйню.
Либо на уровне проекта кто-то внес своё васянское правило в конфиг форматтера.
932 1712253
Как справиться с паническими атаками из-за того что боишься что твой код упадет уже в продакшене? Просто пиздец, я два месяца назад все сделал, но не сдаю проект, постоянно выдумываю причины, чтобы допиливать напильником, лишь бы не отдавать в продакшн это добро. А код мой никто и не смотрел, посмотрели, что работает и сказали сразу выкатывать. Приходится отпиливать уже впиленные фитчи и тыкать в это, типа вот, в ТЗ есть, а я не сделал.
933 1712268
>>712253
Узнаешь после того как тебя попрут из теплого офиса и ты окажешься в пятерочке рядом с такими же паникерами.
934 1712271
>>712268
Да я бы рад, чтобы меня поперли, но не прут. А заявление брать отказываются.
935 1712312
>>712271
Ну тогда тебе в /b/ надо, там таких пиздоболов не о чём любят.
936 1712315
>>712312
В каком смысле пиздоболов? Я из глухой провинции, тут кодеров почти нет, а они все равно нужны и потому предпочитают откладывать сроки сдачи и отговаривать от увольнений, потому что поиск нового может на годы затянуться.
937 1712317
>>712315
В смысле любителей попиздеть не о чём. Нахуй ты вообще в шарп тред с этим зашел?
938 1712318
>>712317
Я перепутал просто.
939 1712321
Есть транспайлер с новых версий шарпа на старые? Скажем, с 7 на 4-й какой-нибудь?
940 1712463
Где можно посмотреть примеры хорошего кода на шарпах, при этом не излишне переусложненных? Просто я пробовал смотреть то что МС в ветке архитектуры выкладывает и их интернет-магазин какой-то ну слишком замудреный для меня.
941 1712477
Есть класс. В нем есть два асинхронных метода. Суть в том, что желательно чтобы они не работали одновременно, но гарантировать что для одного объекта из разных участков кода эти методы не будут вызваны одновременно не получается. Вот и как решить эту задачу?
Я вот подумал о двух решениях:
1. Я делаю конечный автомат с состояниями и метод не может быть вызван, пока состояние не сменится на какое-то.
2. Я создаю внутри класса очередь выполнения и при вызове просто добавляю нужный метод в очередь, а потом дополнительный класс обработчик, достает эти методы и выполняет.

И оба решения мне не нравятся. В первом случае я не совсем понимаю как мне дождаться нужного состояния(просто вызывающий-то кусок кода не знает о том, что внутри класса происходит, он просто передал параметры в метод и ждет результат). Во втором как результат моего обработчика очереди возвращать туда, откуда метод вызвали.
Я наверное совсем тупой. Извините.
942 1712482
>>712477
Мьютекс не подойдёт?
943 1712492
>>712477
Использовать нужно классы SemaphoreSlim, Interlocked, SpinWait и ReaderWriterLockSlim и тп, в зависимости от контекста. Эффективнее всего будет синхронизация при помощи interlocked, потом идут все что с приставкой слим, самые низкопроищводительные это монитор, мьютекс, авторезетивент и т. д.
944 1712495
>>712492
Где можно почитать про это?
945 1712500
>>712495
https://docs.microsoft.com/en-us/dotnet/api/system.threading
Если из книг, то у Рихтера хороший раздел про многопоточность с примерами реализации. Советую его, но если лень читать, то документации хватит.

Еще присмотрись к
https://docs.microsoft.com/en-us/dotnet/api/system.collections.concurrent

Возможно тебе будет достаточно использовать тред-сейф коллекцию.
946 1712503
>>712500
Спасибо, буду Рихтера дрочить.
Я много с шарпом работаю, но всегда обходился мьютексами и тред-сейф коллекциями, даже не знал, что в шарпе спинлоки есть и всякое такое.
947 1712516
Привет. Хочу себе сделать удобную библиотечку для работы с сетью, чтобы не нужно было каждый раз в своих небольших штуках писать работу с этой самой сетью на базовом уровне. Набросал прототип TCP-сервера. В общем, еще не готовы события, не учитывается число подключений и некоторые другие штуки, но проверил сделав эхосервер и вроде удобно пользоваться получается, по сути из сервера торчит один делегат, в котором можно реализовать какую-то логику. Но я боюсь что где-то обосрался. В общем, если не сложно, то дайте фидбек.
https://ideone.com/jOHYql
948 1712521
>>712516
Поздравляю, ты только что https://github.com/jchristn/WatsonTcp
Только с новыми багами
949 1712624
>>712321
Есть ILSpy, который может декомпилировать сборку в любую версию шарпа. Но только ридонли, т.е. если посмотреть во что превращается сахар, то ок, а если сконвертировать проект - хуй.
>>712463
C# awesome на гитабе
950 1712631
>>712624
Меня больше всего интересуют перегрузки методов со значениями по умолчанию, очень хочется от них избавиться. На читаемость кода плевать.
951 1713096
Стоит вкатываться в решетку? Работа есть для вкатунов?
952 1713100
>>713096
Хуже, чем на жабе, но язык гораздо лучше
953 1713117
>>713100
Стоит попробовать, спасибо.
954 1713167
Анон, посоветуй open-source CMS на .net core (желательно 3+).
Интересует именно личный опыт использования, статей и обзоров я нашёл прям дохуя.
15849625600730.png223 Кб, 512x387
955 1713412
>>713117

>Стоит вкатываться в решетку?


>2k20

image.png83 Кб, 228x222
956 1713454
Бля я придумал топовый кроссплатформенный гуи фреймворк на щарпах.
Вин формс же портанули под нет кор.
Вин формс - это просто обертка над вин апи
Юзаем на линуксе/маке нативный нет кор, а для винформс ставим вайн.

Я гений?
957 1713457
>>713454
Так везде виртуалки ставь и говори, что у тебя кроссплатформенное приложение. Нахуй вообще эти кросплатформенные языки, да?
image.png56 Кб, 1063x543
958 1713518
Вечер в хату.
Пишу значит говнокод и столкнулся с такой херней после обработки исключений не могу прервать метод при помощи return. Подскажите в чем херня?
959 1713521
>>713518
Метод должен возвращать тот тип, который указан в качестве возвращаемого в его сигнатуре. В твоём случае это тип int, а ты пытаешься просто выйти из метода не вернув ничего. Либо пиши return 1, либо меняй сигнатуру метода.
Выйти без возвращения чего-либо, можно только в методах которые помечены как ничего не возвращающие, т. е. методы с void в качестве возвращаемого типа.
960 1713522
>>713518
Можно еще просто пробросить эксепшн в вызывающий код, написав throw; вместо return.
image.png19 Кб, 718x460
961 1713670
Помохите...

изучаю WPF.. читал metanit - них не запомнил, все вылетело из головы. Теперь пытаюсь изучать на практике (я только так могу - пока сам не начну делать - ничего не запоминаю)

короче, вот у меня есть базе данных SQL таблица с тремя столбцами и где-нибудь в 1к строк.

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

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

Да-да, я знаю что тут DataGrid - а можно какой-нибудь пример именно такого? А то нахожу только примеры где область равна размеру окна (без полос прокрутки)
962 1713676
>>713670

>читал metanit


Сочувствую.

>пока сам не начну делать - ничего не запоминаю


Любимые слова лентяев.

Бери книгу и читай. У Троелсена хороший раздел по WPF, как раз интеграция с базой данных идёт. То что тебе нужно.
Вот так чтобы "пакажити как, а я сделаю бля буду" не бывает.
963 1713685
>>713412
А ты кроме гринтекста и боевой картники способен выдать осмысленное возражение?
15898818763460.jpg24 Кб, 540x540
964 1713690
>>713685
да нет, все нормально. Продолжай учить решетки
965 1713696
>>713690
Ожидаемо.
966 1713702
>>713676

>Любимые слова лентяев.


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

>>713676

>Вот так чтобы "пакажити как, а я сделаю бля буду" не бывает.


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

>>713676

>как раз интеграция с базой данных идё


ну тут вопрос не про интеграцию с базой данных, а про возможность сделать прокрутку части экрана. Но сих пор не нашел примеров чтобы у людей она была. выводят три строчки из базы и всё.
SAGE 967 1713708
>>713702
Пиздишь как дышишь.
968 1713714
>>713690
весь рофл в том, что пока все пилили опен сорурс, мелкософты сидели на своем .NET, как на золотом яйце. И что то переседели. Я вообще хз, кто сейчас для проектных решений выбирает стэк кора и всех его прелестей, если сейчас есть альтернативы куда удобней, проще и дешевле, чем .NET
Кстати учат сейчас решетки студентота (задачи с формочками ака welcome back to past), так что да, его стоит учить. Да и в 9 версии ФП завезут, может взлетит
PhP - хоронят 10 лет, работают на нем по сей день
Java - хоронят 5 лет, работают на нем по сей день
C# - не хоронили, но уже не работают (кроме легаси, SOF и пары укуренных SA)
969 1713720
>>713167
суки атвете
970 1713751
>>713670

> этот фронт


Госпаде, деда ты там с делфи перекатываешся?
971 1713761
Господа, мне нужен жабаскрипт для сайтиков фронта на asp.net?
972 1713796
>>713761
А нам откуда знать в чем ты нуждаешься?
Сейчас фронт не делается без фреймворков(рикт, вью, ангуляр)
973 1713866
>>713670
как уебищно выглядит, назад в нулевые. WPF as it is
>>713761
конечно нужен, даже ссаный MVC с Razor View без JS - говно на палке
974 1714246
>>713714
Проще и дешевле – это какие, кроме ноды?
Ходил по собесам год назад работу к тому моменту уже нашел, шел просто ради опыта собеседований, рассказывал, что делал с помощью ASP.NET Core MVC. Интервьюер спросил, мол, а сколько я изучал эту хуйню. Я сказал, что неделю, и ещё 2-4 недели писал. Он крякнул: "Мда, а у нас джава. Со спрингом надо пару месяцев ебстись, прежде чем писать что-то"

Мне, к сожалению, придётся джаву учить, либо оттачивать навыки вротендера, потому что там, куда я хочу, дотнета мало
975 1714248
>>713866

> как уебищно выглядит, назад в нулевые. WPF as it is


Ну VS норм выглядит. Это не отменяет того факта, что майки хуй ложили на впф
976 1714253
>>713761
Не нужен. Но ты через некоторое время ты столкнешься с тем, что захочешь подключить скрипты на свою страницу. А потом изучишь какой-нибудь фронтенд фреймворк и будешь писать на asp не mvc, а api
Может, и нет. Мсдн у майков не SPA
977 1714255
>>713720
Что за КМС и для чего он тебе? Попахивает вордпрессом и 1с
image.png42 Кб, 713x350
978 1714603
я могу на визуал студио работать с mySQL который где-то на линукс сервере установлен? как жто сделать, я раньше только с ms sql server работал
979 1714675
>>714246

>Проще и дешевле


пыха, рор, тот же нод (привет JS-ерам, которые кроме Node бэка не видели). Если крупный проект - Kotlin сейчас взлетает, java и # врядли, разве что из за больше комьюнити

>Интервьюер спросил, мол, а сколько я изучал эту хуйню. Я сказал, что неделю, и ещё 2-4 недели писал


не знаю, что ты ему рассказал и что ты вкладываешь в понятие "учил". Т.е. ты за 1 неделю его знаешь от А до Я и готов выкатить на проект? Очень сомневаюсь, подводных камней очень много (которые перевыпилились новыми камнями с перехода на 2.2 и на 3+)

>Со спрингом надо пару месяцев ебстись, прежде чем писать что-то"


тоже индивидуально. Смотря какие задачи ставяться, как разраб решает проблему. Я лично никогда не писал на JS начал педалить реакт и на плевой хуйне, как Redux просидел ломая голову неделю (хотя это просто ебаный глобал стейт - переведя на C# - класс с набором констант покрытый ассесорами).

>куда я хочу, дотнета мало


я уже писал в этот тред, возможно в предыдущий - когда началась эпидемия - у нас сначало выкосили всех джунов, потом начали закрываться один проект за другим. В итоге я на бенче начал в React, сейчас так же пишу на нем. Не знаю, чем это все закончится и как себя поведет рынок, но # имо такой себе вариант для вката. Я думаю браться за изучение TypeScript/Kotlin, еще не определился
980 1714765
>>713866

>как уебищно выглядит, назад в нулевые. WPF as it is



А при чём здесь WPF и автор-долбоеб из нулевых? Или ты когда пиксельную игру видишь, которая сделана с использованием юнити, тоже начинаешь кукарекать про то что юнити говно, игнорируя качество графики в каком-нибудь Escape from Tarkov?
981 1714767
>>714675
Проиграл с этой аналитики. Ладно еще тайпскрипт куда не шло, потому что жопаскрипт монополист в вебе. Но сравнивать Котлин, который поддерживается говнокомпанией, которая уже забила на его развитие, а также жабу, которая погрязла в легаси и уже несколько лет не развивается с C# и .NET, который поддерживается IT гигантом и постоянно дополняется новыми возможностями, а также улучшается. Это либо быть умственно отсталым, либо совсем не понимать то, о чём говорить и судить обо всём по постам с двача.
982 1714813
В общем, сделал простенькое консольное приложение для просмотра сущностей в БД. Воооот. Само приложение - бесконечный цикл вида: считать ввод, проверить команду - выполнить команду. Вооот. И тут такое дело, при нажатии Ctrl+C программа завершается с ошибкой. Вооооот. Оно как бы не критично, но хотелось бы чтобы этого не было. Я конечно могу запихнуть все в блок try-catch, но мне не нравится так делать. Да и читал что оно нужно для обработок конкретных ошибок, либо какого-нибудь логгирования. Воооооооооот. В общем, как правильно завершать программу, чтобы ошибка не вываливалась в консоль, если пользователю скажем надоест ждать пока его запрос на кучу строк из таблицы будет выводиться в консоль и он ебнет ctrl+c,
983 1714823
>>714767

>Котлин


>говнокомпания


>забила на его развитие


> C# и .NET, который поддерживается IT гигантом


фанаты мелкософта в треде?
парень, я тебе не хочу ничего доказывать, но всю ты пыль, что описал - никак не относиться к созданию и поддержке интерпрайз приложений. Рыночек решает - кому на чем писать. Рыночек сейчас стоит спиной к .NET- и вся работа сейчас - это легаси. Не спорю, возможно запускают новые проекты - у кого на галере сфежаки хотя бы от 2.2 версии - пишите, интересно почитать, что за стэк и какая сфера. У нас же (как я писал раньше) все .NET проекты уже упали с саппорта
984 1714866
>>714823
Проснись, сычуша, ты серишь. На .NET вакансий всего в 2 раза меньше чем на твою жабу. При этом около 50% из вакансий ориентированы на .NET Core, в то время как жаба это в 99% случаев говноспринг который уже задыхается от легасиговна.
985 1714896
>>714866
причем тут Java, если я писал выше, что с .NET пересел на React? Я еще раз повторяю, что никого ни в чем не убеждаю. Гуглите вакансии и аналируйте рынок. У меня все.
986 1714903
Я тупой и не въезжаю в асинхронность и многопоточность.
Вот смотрите есть метод:

public async Task<int> Foo(){
int a = 0;
while(true){
await Task.Yield();
a++;
if(a>100) break;
}
return a;
}

Вот.
Я вызываю эту функцию в двух местах.
Что там происходить-то будет? Сколько итераций будет сделано? И вообще. Просто мне вот кажется, что должно быть как-то так: a будет локальной копией и они никак не будут друг на друга влиять, будет просто 100 итераций. Вот. Но в голове все равно какая-то тупая мысль, что на самом деле это будет одна и та же функция и количество итераций - хуй пойми каким будет. Вот.
В общем, где почитать про это? Ну или объясните сами, если не сложно.
987 1714913
>>714813

> при нажатии Ctrl+C


Стандартная комбинация для завершения консольного приложения

>завершается с ошибкой


Отсюда не видно что за ошибка. Воооооот.

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


Запустить под отладчиком. посмотреть что за ошибка и почему возникает, исправить.
>>714903
Тут не будет никаких отличий от синхронного кода. Каждый метод у тебя работает только со своими локальными переменными. Вооооооот.
988 1714920
>>714913

> Отсюда не видно что за ошибка.


OperationCanceledException. Как я понимаю дело в том, что я ожидаю результата выполнения. Скажем запрашиваю данные из БД или вывожу их в консоль. Воооооот. Ну и Ctrl+C вызывает это самое исключение. А что делать чтобы его не было я не знаю((( Я пробовал и передавать в таск CancellationToken и свой делать из CancellationTokenSource. Все равно если с помощью Ctrl+C останавливать работу в конце будет эксепшн.
989 1714923
>>714920
Попробуй запустить в релизе, а не под дебагом.
990 1715037
>>714896
Реакт это же фронт. Фронт на клиенте. А нет – бекенд. Ты, блядь, с базой из реакта работаешь? Авторизацию на стороне клиента проводишь? Охуеть
992 1715124
>>715120
Все фреймворки жабаскрипта окуколжены, джанга питоновская тоже.
Без названия.jpg15 Кб, 474x260
993 1715125
>>715037

>Реакт это же фронт. Фронт на клиенте. А нет – бекенд


Что за хуйню ты пишешь, дебил? Или у тебя клеймо решеток на жопе набито, что кроме .NET на других языках не пишешь?
image.png19 Кб, 651x189
994 1715144
Стоит вкатываться?
995 1715152
>>715125

> кроме .NET на других языках не пишешь?


Пишу. Дарт, js. Ну и хули
Го? Элексир? Пхп? Джанго? Зачем?

>>715144
Либо твой пользователь загружает бандл 4 мегабайта, либо ты с каждым пользователем поддерживаешь gRPC-коннект. Не вижу пути, по которому тут будут какие-то плюхи. Я рассчитывал, что сделают что-нибудь с xamarin, когда в роадмапе Blazor было заявлено, что в будущем можно будет делать мобилки. Но там такие оговорки, что интерфейс будет не с помощью HTML оформляться, а, значит, скорее всего все тот же XAML будет. Да и xamarin не спешат закапывать, ожидается его ребрендинг под названием MAUI
996 1715191
Есть проект С который ссылается на проект Б, который в свою очередь ссылается на проект А и Д.
При компиляции проекта С в папку к нему копируются файлы из проекта А и Д, хотя везде в ProjectReference Private="False" т.е чтобы не копировало файлы в проект.
Как сделать так чтобы не копировало? Это какая-то проблема зависимостей, если добавить проекты А и Д в С, то копироваться ничего не будет, но это делать надо вручную так как в интерфейсы они указаны как добавленные.
Ситуацию осложняет то что я пилю кучу микропроектов которые имеют как бы наследование друг друга и хочу чтобы все было чистенько, но все портит компиляция.
Я могу придумать костыли, но хотелось бы нормальное решение, а не очередной костыль за который стыдно.
997 1715212
>>715152
нахуй ты мне тогда пишешь, что React, этожи фронт? Да, пересел с .NET на фронта (был фулстэком). Ну и хули? Не будет работы на React, пойду туда, какой стэк понравится.
Я замечаю, что писька .NET-чиков такая маленькая, что ее только зацепи, сразу начинается вонь на пол треда
998 1715294
Зачем нужна херня вида:
private Class _class;
public class { get => return _class; set => _class = value }

?
999 1715360
>>715294
Чтобы даже тому, кто с сахарком не знаком все было сразу понятно.
1000 1715380
>>715294
Не нужна, достаточно просто:
public Class PropertyName {get; set;}
1001 1715418
>>715191
Private больше похоже будто надо поставить на true
1002 1715697
В ходе написания своего рогалика для консольки возникла навязчивая идея сделать кроссплатформенную библиотеку консольного UI. Как минимум чтобы в линуксе и винде работало. Опасаюсь, что это кто-то уже делал. С другой стороны, если кто-то делал опенсорсное решение, я бы был рад спиздить его для своего рогалика. В общем, собственно вопрос: Есть ли открытые кроссплатформенные либы для консольного UI?
1003 1715744
Господа программеры, как реализовать поиск минимального/максимального значения в определенном диапазоне индексов при использовании List?
1004 1715801
>>715697
GUI.CS
1005 1715889
>>715744
Эм.. Ну так же как и при поиске во всем листе, только искать не во всем..
.png21 Кб, 512x515
1006 1715959
>>715744
Например.
image.png3 Кб, 485x26
1007 1715962
Чуваки, мне надо чтобы бот заходил в стим аккаунт. Но проблема в том, что в библиотеке, которую нашёл, там есть код для входа без двухфакторной аутентификации стима, в итоге просто еррор получаю и хуй сосу, как её пройти можно?
https://github.com/SteamRE/SteamKit/blob/master/Samples/1.Logon/Program.cs
1008 1715963
>>715959
->
>>715744

>в определенном диапазоне индексов


Хех мда.
.png19 Кб, 562x500
1009 1715967
>>715959
Блядь, я тупой. Там же диапазон индексов был. Пиздец.
>>715963
Да я уже понял, блядь.
image.png20 Кб, 704x192
1010 1715980
Анончики, есть винформа с кучей кнопок на ней, при нажатии на которые воспроизводятся определенные аудиофайлы, при этом один файл не должен прерывать воспроизведение другого, т.е. они должны играть параллельно, сделал на каждую кнопку пикрилвозможно хуево, но когда нажимаю с большой интенсивностью на кнопки, то спустя 30 сек аудиофайлы перестают воспроизводиться, как пофиксить?
1011 1715989
>>715980
делать код асинхронным
1012 1716032
Посоветуйте книг по SQL? В шапке написано "любую", но ведь есть же какие-то фавориты?
1013 1716042
>>716032
Если ты шарпист, то тебе кроме того что такое ключи(чем первичные от внешних отличаются) и нормальные формы ничего особо знать не нужно. Ну и может быть как join делается и чем left от inner отличатся будет. В исключительном случае - как построить индекс. Все, блин.
1014 1716046
>>715989
Не совсем понимаю зачем он здесь и как его сюда присобачить
.png10 Кб, 522x216
1015 1716051
1016 1716054
>>716051
Почему не таск?
1017 1716074
>>716054
Прост))) Разницы-то особой в данном случае не будет, что тут я запустил тред в котором открыл песенку и проиграл, что там я бы создал таск, который бы открыл песенку и проиграл бы ее.
А вообще что мой пример, что решение того анона - бред. По факту будет создана куча объектов плеера, если чел просто начнет щелкать как не в себя, будет жутких грохот и сожрано куча памяти и процессорных ресурсов. Я ХЗ просто что там за цель у чела, если какая-то программа-прикол, то и так сойдет, если там что-то типа: включил типа фоновый звук, потом голосовую дорожку диктора, потом звуковые эффекты по клику, то так делать не надо.
1018 1716086
>>716074

>цель


Сделать что-то типа пианино, где каждая клавиша - button(1,2,3,etc), клик на который триггерит проигрывание аудиофайла(ноты?)

>сожрано куча памяти и процессорных ресурсов


Мне ясно что так будет, я хз просто как сделать это по другому, чтобы при этом клавиши не прерывали звук друг друга при нажатии
1019 1716101
>>716086
делай await task.run на кнопке
1020 1716117
>>716074

> Разницы-то особой в данном случае не будет


Так у тебя безусловно отдельный поток создастся, а с Task у тебя будут использоваться уже существующие, первое нажатие скорее всего синхронно выполниться.
1021 1716203
>>715962
Всё, решил...
Только теперь непонятно как авторизоваться на сторонний сайт, через стим
1022 1716219
>>716086
Если это именно сорт оф пианино, то тебе надо бы не просто воспроизводить эти файлы, а производить операции со сложениями сигналов. Кстати в данном случае даже асинхронность не нужна будет, у тебя затухающие колебании, при нажатии клавиши ты просто производишь математические операции со звуковым буффером. Такие дела.
1023 1716274
>>716203
>>715962
Как понял, надо копать в сторону OAuth2, но пока нахожу только инфу как его подключить на сайт, а не как залогиниться.
всё ещё надеюсь на шарющего анона
image.png72 Кб, 1347x718
1024 1716441
>>713708
нит. я уже минимум восемь лет кодирую (из которых 5 - за зарплату)

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

>фанаты мелкософта в треде?


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

Который может:
- в базы данных
- в серьезные нагрузки сервера
- интеграцию с документооборотом (возможность из всевозможных доков и экселей собирать данные и выдавать в таком же виде)
- знать про облака для хранения больших массивов данных (сканов например)
- хорошо развертываться в пару кликов без установки ебучих фреймворков
- без велосипедства
1026 1716444
>>716443
а к джаве религиозная ненависть так как всегда бесило
SAGE 1027 1716478
>>714823

>фанаты мелкософта в треде?


>C#/Сишарп/.NET Тред

1028 1716687
Cап,
Хочу создать массив данных (data) из файла состоящего из 2 колонок (ссылка и подпись). У data конструктор принимает в себя 2 строки - ссылку и подпись. Как это сделать на лету?
Код - https://codeshare.io/21Wqz0
1029 1716697
>>716687
Зааускаешь поток который будет считывать строки из файла и добавлячть их в ИммутаблДиктионери. Запускаешь два потока на чтение файла, один будет считывать от начала строки до первого пробела (разделителя колонок), другой от конца строки и до пробела (разделителя колонок). После считывания они добавляют результат в массив. Получится два ассоциативных массива, по одному на колонку, индексы в которых будут означать номера строк.
Если файл большой, то можно разбить его на нексолько частей и обрабатывать их отдельно, а потом сджоинить массивы.
Также можно преобразовать два массива в словарь, но по мне так это лишнее действие.
1030 1716705
>>716697

>Два потока на чтение строк из словаря



Фикс.
1031 1716786
>>716697

> Запускаешь два потока


Зойчем? Если один поток нашел раделитель, смысл второму делать ту же работу но сдругого конца?
1032 1716799
>>716786
Синхронизация потоков и передача информации о нахождении разделителя займет больше ресурсов и времени, чем поиск этого разделителя каждым потоком. Всё равно каждому потоку нужно будет доходить до этого разделителя.
1033 1717019
>>716799
Нет. Не надо ничего синхронизировать. Один поток справится за то же время что и 2. Потому что 2 потока будут делать у тебя в 2 раза больше работы.
1034 1717036
>>716687
4 МБ файл с 300к строк меньше чем за секунду разбирает таким макаром. Если тебе нужно больше, то наверное придется хитрее поступать, но ты ничего про скорость не говорил, потому буду считать, что и так норм.
1035 1717042
>>717036
Блядь, неправильно поля класса обозвал и перепутал ту порядок разбитых строк. И хуй с ним.
.png11 Кб, 979x265
1036 1717051
>>716687
Да, для интереса, я чутка раздул файл. До 100МБ и почти 9 млн строк. ~7 секунд в релизе. Жрет памяти правда как не в себя(ну а хули, в лист-то пихаем, он достигает края и расширяется)
1037 1717059
>>717036
Скинь код и файл, хочу проверить. По идее можно гораздо быстрее парсить.
1038 1717068
>>717059
https://www.dropbox.com/s/brc1gbe1jgqys29/asd.7z?dl=0
Лололо, мну развели на бесплатную работу(((
1039 1717105
>>717019
Ты совсем тупенький? Два потока у меня будут независимы и разделят работу на 2.
Есть у тебя стрка вида

"аааааа<разделитель>ббббб"
Допустим перед и после разделителя в сумме 5к символов. Ты действильно настолько тупой и думаешь, что 1 поток справится с проходом 5к символов быстрее, чем 2 потока каждый из которых одновременно обходи (5к - длина разделителя + 1 (первый символ означающий начало разделителя)) / 2 символов?
code.png16 Кб, 314x571
1040 1717111
>>717068
Как и предпологалось. Ничего особо не меняя, просто выкинув стрингбилдер (хз, что ты пытался им сделать), выкинув псевдоасинхронность (рили зачем? у тебя один потокок который все равно ожидает чтение), ну и главное заменив сплит на индексоф (у нас же гарантировано по условию что два столбца всегда будут) можно неплохо забустить.
1041 1717115
>>717105
А может ты тупой? У анона 2 столбца, те разделитель один на строку. Так зачем его искать дважды, проходом с начала и с конца?
1042 1717120
>>717036
>>717051
Конечно, ты ведь зачем-то создаешь List<Data> в методе, хотя мог принимать из вызывающего кода ссылку на List и избавиться от .AddRange
И split лишний, лишнее создание строки вызовом sb.ToString().
Надо было работать с sb.GetChunks().Span
1043 1717121
>>717115
Уебище тупорылое, задача не найти разделитель, а считать всё что находится слева от него и справа от него. Ты проходишь по массиву байт, который представляют из себя символы, до тех пор пока не встретишь байт который представляет из себя символ-разделитель.
1044 1717125
>>717111

> хз, что ты пытался им сделать


Я не знаю кодировку предполагаемого файла, стрингбилдер умеет ее распознавать. Вдруг у анона там в КОИ-8 строки? Хуй знает.

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


Это в данном случае. Я ХЗ куда тот анон это собирается впихивать. Может быть он решит 10 файлов одновременно читать. Лучше уж тогда будет асинхронно читать, а не создавать потоки под это дело.

> ну и главное заменив сплит на индексоф


Для удобочитаемости. Если разделителем будет два-три символа, придется либо переменную с его размером вводить, либо магические числа в коде использовать.
Ну и да, я вроде не говорил что я оптимальное в плане перформанса решение сделал, просто оно довольно приемлемое и быстрее, чем считать весь файл и пото уже его парсить.
1045 1717126
>>717121
Ты реально дебил или не хочешь признавать обсер? Найти нужный символ легчайшая задача, парсинг такой простой штуки будет ио баундед.
1046 1717225
>>717068

>мну развели на бесплатную работу(((


ты скилл так качаешь

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

-мимокрок
1047 1717338
>>714248
конечно, XAML тому подтверждение. Хотели сделать под десктоп и мобайл один синтаксис на XML, получилось говно говна, в котором и по сей день некоторые плавают
>>714765

>кукарекать


батя твой кукарекает, чухан. И я не говорил, что автор долбоеб, я говорю, что вьюшка выглядит, как в нулевых на Win98. На XAML можно запилить охуенный GUI, но не тому, кто кидал пику. Про юнити, хуюнити можешь мне не писать, на этом говне не пишу и не играю
1048 1717996
Анон, считается ли использование partial - чем-то плохим? Просто блин, у меня файлик с одним служебным классом раздулся до 3к строк кода, и как порезать его на отдельные классы я хз, потому что там, по сути один публичный метод: HandleMessage(Message message, TcpClient cleint) и куча методов для обработки конкретных сообщений. Конечно, в теории можно как-то в стратегии вынести это все дело, но я ХЗ как тогда эти стратегии передавать этому классу, сейчас-то более-менее все просто-понятно. Вот. И тут я глянул исходники .net core, так у них там куча partial-классов. Вот. Но на работе я ни разу не встречал в коде чтобы так делали. Вот и не знаю, надо ли оно, если я не в майкрософте работаю.
1049 1718022
>>717996
Плохим считается любой костыль, который просто откладывает решение проблемы до тех пор, пока вся конструкция из костылей окончательно не развалиться и не сможет решить очередную возникшую проблему.
В данном случае partial это и есть тот самый костыль.
Если использовать его уместно, а это - для того чтобы разделить автогенерируемый код от написанного вручную, либо для того чтобы над классом могли работать несколько человек. То ничего плохого в этом нет.
1050 1718053
Как в консоле сделать "декорирование" текста. Подчеркивания всякие, жирные буквы и это вот все. Еще интересно как курсор отлавливать и его клики. Просто я видел приложения, которые все это умеют в виндовой консоли и они тоже на .net'е написаны были, но когда гуглил почему-то везде пишут что это невозможно в виндовой консоли. Хотя опять же, я видел как в консольке какой-то магией умудрялись картинку отрисовывать и даже не из ASCII и игрой с консольными цветами, а вполне обычную такую картинку. Что это за магия и как такому же научиться?
1051 1718083
>>718053
Ну если ты такое нагуглить не можешь, то в силу интеллекта просто ничего не поймешь и не реализуешь, даже если тебе рассказать "как".
Вот одна из первых ссылок в гугле:
https://stackoverflow.com/questions/33538527/display-a-image-in-a-console-application/33652557
1052 1718159
>>718083
Ну и где там как сделать подчеркивание в консолечке? Я в упор не вижу.
1053 1718168
>>718159
using System;
using System.Runtime.InteropServices;

class Program
{
const int STD_OUTPUT_HANDLE = -11;
const uint ENABLE_VIRTUAL_TERMINAL_PROCESSING = 4;

[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr GetStdHandle(int nStdHandle);

[DllImport("kernel32.dll")]
static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode);

[DllImport("kernel32.dll")]
static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);

static void Main()
{
var handle = GetStdHandle(STD_OUTPUT_HANDLE);
uint mode;
GetConsoleMode(handle, out mode);
mode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
SetConsoleMode(handle, mode);

const string UNDERLINE = "\x1B[4m";
const string RESET = "\x1B[0m";
Console.WriteLine("Some " + UNDERLINE + "underlined" + RESET + " text");
}
}
1053 1718168
>>718159
using System;
using System.Runtime.InteropServices;

class Program
{
const int STD_OUTPUT_HANDLE = -11;
const uint ENABLE_VIRTUAL_TERMINAL_PROCESSING = 4;

[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr GetStdHandle(int nStdHandle);

[DllImport("kernel32.dll")]
static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode);

[DllImport("kernel32.dll")]
static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);

static void Main()
{
var handle = GetStdHandle(STD_OUTPUT_HANDLE);
uint mode;
GetConsoleMode(handle, out mode);
mode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
SetConsoleMode(handle, mode);

const string UNDERLINE = "\x1B[4m";
const string RESET = "\x1B[0m";
Console.WriteLine("Some " + UNDERLINE + "underlined" + RESET + " text");
}
}
1054 1718422
>>717111
Если при парсинге нужна скорость и низкое потребление памяти, гугли System.IO.Pipelines и Span<T>.
1055 1718457
>>717225

>ты скилл так качаешь


у меня 12 тасков на моем проекте, хочешь свои скиллы прокачать? Эстимейт каждого - 3-4 часа, дедлайн - конец недели. ЗП мне, таски тебе - идет?
1056 1718467
>>718457
Я хочу.
1057 1718494
>>718467
нужно написать для core 3.0 web api генератор refresh токенов. JwtBeawer - валидирует access токены. Методы контроллера покрыты атрибутом [Authorize]. Тригер метода на выдачу Refresh должен срабатывать после получение не валидного access с expire time 60m.
Выложи решение на гитхаб, если будет норм - скину еще
1058 1718537
>>718494
if(DataTime.Now > token.CreationTime.AddMinutes(60))
RefreshToken();
Не благодари
1059 1718542
>>718494
Сделаю за 4 часа, час — $50. Тесты пишу, код на модули разбиваю, коммиты делаю атомарными. Аванс — 50%. По рукам?
1060 1718602
>>718537

>DataTime.Now


ясно, иди нахуй
>>718542

>Аванс — 50%


и ты туда же

Кто там хотел таски поклепать - мне нужен тестовый проект с контроллерами, где по роутингу идет редирект от контроллера получающего упавший access, до реализации refresher-a. Refresh пишите какой угодно, все равно свои клеимсы буду пихать.
1061 1718626
>>718602
Да пошел-ка ты нахуй с такими запросами бесплатной рабочей силы!
1062 1718642
>>718542
То чувство, когда получаешь 4,4 доллара за час
1063 1718661
>>718642
Извини :(
1064 1718662
>>718626
ты охуел? >>717225 скиллы качает за бесплатно, чем ты лучше?
>>718642
да он пиздабол, какие $50/h. Сидит на Upwork-e и пердит за $5 конкурируя с индусами
1065 1718666
>>718662
Тебе нужен результат работы того, кто качает скиллы, или того, кто знает что и как надо сделать, чтобы это потом работало и было сопровождаемо?
1066 1718675
>>718666
а это я после получения результата оценю. Не думаю, что увижу что то хуже кода джуна. Пусть на аутентификации скилы покачают, а я таск закрою (может быть)
1067 1718680
>>718675
Тогда удачи. Пиши, если передумаешь.
1068 1718694
>>718662
Ты из ДС? Соснешь мне хуй? Как раз скилл минета покачаешь за бесплатно
1069 1718699
>>718680
$50/час - у меня индус будет за $5 работать, если буду все таски свои плавить ему
1070 1718711
>>718699
Так почему же таска твоя все еще не сделана индусом?
1071 1718719
>>718711
влень искать карманного индуса, который будет делать качественно работу. А тут на халяву готовы таски лепить. Что я теряю? Одни профитаны
1072 1718735
>>718719
Деловой подход. Мы бы с тобой сработались.
1073 1718767
>>718735
я предлогал датчанину сапортить его проект на ASP.NET MVC5 + jquery/vanilla за половину от его рейта ($40/h), а ты тут за 50 толкаешь
1074 1718774
>>718767
Ну, я же не виноват, что ты себя так низко оцениваешь. Кстати, какая-то хуйня с твоим датчанином. $40/в час это какое-то дно для Дании (если он оттуда).
1075 1718782
>>718774
3.2k+ за ремоут мне бы хватило с головой. По поводу Дании - говорит нормальный рейт. Он себя называет фрилансером, хотя за всю жизнь (7 лет пишет) работал только на 3 проектах. И еще если его словят за передачу таска - йому пiзда.
По его словам - у них внутреняя мирка с закрытым рыночком. Т.е. если у них будет открыта вакансия (в Аартусе к примеру) и я им кину CV на английском, то с вероятностью в 95%, что меня пошлют нахуй.
Вообще он говорит, что с "нашим" братом связываются только жлобы. Why i'm not surprised?
1076 1718978
Анон, смотри, я балуюсь с консолькой. В общем в чем суть. Меня не устраивает скорость вывода с помощью Console.Write(). Если я использую его для рендера своей хуйни, то оно работает дюже медленно. При этом я заметил, что Console.WriteLine() работает быстрее намного. Ну, я решил придумать что-то типа кадра, он генерируется, потом выводится с помощью Console.WriteLine(). Только вот беда, мне хочется чтобы у выводимой информации были цвета, но я не знаю, можно ли как-то с Console.WriteLine передать цвет отдельного символа и фона за ним, а если можно то как?
image.png431 Кб, 600x313
1077 1719080
>>718642
РАБОТАЕШЬ В ОДНО ЛИЦО
@
ПИШЕШЬ С НУЛЯ КРИТИЧЕСКИ ВАЖНЫЙ ИНФРАСТРУКТУРНЫЙ СОФТ
@
УЖЕ ЗА ТРИДЦАТЬ
@
ПОЛУЧАЕШЬ 2.2$ ЗА ЧАС
@
НЕТ ДЕНЕГ НА РЕЛОКАЦИЮ ИЗ ДЫРЫ
@
ПО ЖИЗНИ СЫЧ НЕ УМЕЮЩИЙ СЕБЯ ПРОДАТЬ HR-МЕНЕДЖЕРАМ
@
ПОНИМАЕШЬ ЧТО ПОТРАЧЕНО
image.png52 Кб, 1157x605
1078 1719088
Я пытаюсь запустить запустить аспнет сайт, и я не понимаю его иис от меня хочет
1079 1719123
>>719088
там все написано в теле ошибки
1080 1719150
>>719080
это у тебя $400 ЗП? Если это так и ты сам понимаешь, что делаешь важную работу - иди и требуй больше. Если нет - меняй работу.
1081 1719168
>>719150
Два чая и печеньки этому капиталисту.
1082 1719183
>>718978
Как вариант глянь на https://github.com/SadConsole/SadConsole, у нее свой рендинг.
1083 1719253
>>719080

> РАБОТАЕШЬ В ОДНО ЛИЦО


Сейм. Со старта в одного. Слова аджайл и скрам, а также софт-скиллы вызывают ночные кошмары и мочеиспускание
4,4$-24лвл-кун
1084 1719431
>>719123
да я вижу но я не понимаю что от меня хотят, у меня в вебконфиге даже нет таких строк
1085 1719547
>>719431
Файл конфигурации - открой файл, посмотри на 67 строчку (вангую, что тэг не закрыт)
Если нет такого - удали webconfig и посмотри - измениться ли ошибка
1086 1719704
>>719547
ладно, если кому-то надо будет, у меня асп нет было херово поставлен, после переустановки все заработало
1087 1719733
>>719704
НАСТАЛО ВРЕМЯ ПЕРЕУСТАНАВЛИВАТЬ ШИНДОВС ДОТНЕТ СДК
1088 1719885
Смотрите. Я накидал свой линкованый лист. Вот.
Но есть одно но, я могу такую вот херабору как на первом скрине провести и оно не упадет с ошибкой и если я не прирываю цикл, оно не будет останавливаться. В M$ реализациях вылетает исключение, что коллекция была изменена. Как добиться такого же поведения? Ну, т.е. я не совсем понимаю, где я должен кидать исключение и как смотреть что моя хрень изменяется.
1089 1719921
>>719885

> В M$ реализациях


А какие бывают редакции?
1090 1719944
>>719885
добавляешь в список поле version и увеличиваешь его при изменении листа, создаешь свой перечислитель, который принимает в качестве аргумента твой список, и у которого тоже будет поле version, которое при создании будет принимать значение переданного списка. Далее при перечислении будешь сравнивать version перечислителя с version листа и если они не равны, то бросать эксепшн.
1091 1720128
>>719944
Лойс этому подсматривателю в исходники.
1092 1720309
Как конвертировать лист моих объектов (допустим ContactsData) в IDataView? Я гуглил, но микрософт предлагает какой то бред типо записать лист в файл и прочитать его как IDataView. По понятным причинам такое решение для меня не решение, возможно есть какой нибудь другой способ.
mlnet.jpg130 Кб, 1280x943
1093 1720319
1094 1720397
Вот смотрите, у меня есть EF. Вот. Там табличка с юзерами все дела. У юзеров есть номер в диапазоне от 1 до 2^64. Вот. И у меня есть непреодалимое желание, чтобы в этих номерах не было дырок. Вот. Допустим мы удалили пользователя из БД, образовалась дырка. И я хочу чтобы при регистрации нового, я мог найти эту дырку и заменить его.
В чем суть, на SQL я могу сделать что-то типа

SELECT id + 1
FROM mytable mo
WHERE NOT EXISTS
(
SELECT NULL
FROM mytable mi
WHERE mi.id = mo.id + 1
)
ORDER BY
id
LIMIT 1

и найду дырку или верну новый номер этому пользователю. И это работает быстро даже если записей довольное много(на, на 100к записей точно нормально работало). Вот, а вот на EF когда я делаю что-то типа:

var used = db.Set<User>().Select(x=>x.Num).Sort();
if(!used.Any())
return 1;
uint missing = used.First();
foreach(var n in used.Skip(1))
{
if(++missing!=n)
break;
}
return missing;

То уже при 1к записей жрется куча памяти. Я конечно могу делать это же таким же SQL-запросом, либо вынести это в хранимку и ее вызывать, но что-то мне кажется, что тащить эту логику в само приложение - не лучшая затея.
Не бейте ногами, если для шарпа это какая-то ординарная ситуация и я задал тупой вопрос, я просто 5 лет был отвечающим исключительно за БД и все это вот, но в ходе оптимизаций и реорганизаций, теперь я стал фуллстек девелопером и нихуя не понимаю, как на ваших шарпах все это делается.
1094 1720397
Вот смотрите, у меня есть EF. Вот. Там табличка с юзерами все дела. У юзеров есть номер в диапазоне от 1 до 2^64. Вот. И у меня есть непреодалимое желание, чтобы в этих номерах не было дырок. Вот. Допустим мы удалили пользователя из БД, образовалась дырка. И я хочу чтобы при регистрации нового, я мог найти эту дырку и заменить его.
В чем суть, на SQL я могу сделать что-то типа

SELECT id + 1
FROM mytable mo
WHERE NOT EXISTS
(
SELECT NULL
FROM mytable mi
WHERE mi.id = mo.id + 1
)
ORDER BY
id
LIMIT 1

и найду дырку или верну новый номер этому пользователю. И это работает быстро даже если записей довольное много(на, на 100к записей точно нормально работало). Вот, а вот на EF когда я делаю что-то типа:

var used = db.Set<User>().Select(x=>x.Num).Sort();
if(!used.Any())
return 1;
uint missing = used.First();
foreach(var n in used.Skip(1))
{
if(++missing!=n)
break;
}
return missing;

То уже при 1к записей жрется куча памяти. Я конечно могу делать это же таким же SQL-запросом, либо вынести это в хранимку и ее вызывать, но что-то мне кажется, что тащить эту логику в само приложение - не лучшая затея.
Не бейте ногами, если для шарпа это какая-то ординарная ситуация и я задал тупой вопрос, я просто 5 лет был отвечающим исключительно за БД и все это вот, но в ходе оптимизаций и реорганизаций, теперь я стал фуллстек девелопером и нихуя не понимаю, как на ваших шарпах все это делается.
1095 1720442
Попробуй, я под свою бд написал, так что на свои сущности и св-ва поменяй
var firstAvailableId = context
.Posts
.Select(p => p.ID + 1)
.Except(context.Posts.Select(p => p.ID))
.OrderBy(i => i)
.First();
1096 1720443
1097 1720457
>>720397
Просто из интереса: а зачем тебе такая оптимизация? У тебя пропадает автоинкремент и увеличится время записи в базу. Или у тебя настолько частые операции записи и удаления пользователей, что ты точно знаешь, что 2ˆ64 на всех юзеров тебе точно не хватит? В противном случае это выглядит как лекарство, которое хуже болезни.
1098 1720507
>>720457
Ну смотри, я работаю в конторе которая умные штуки делает. Эти штуки надо регистрировать на сервере и периодически всякие данные читать и схоронять. Временами штуки выходят из строя и их нужно заменить. Вот. Заменять вручную ID не вариант, потому что пользователи ПО низкоквалифицированны, им надо чтобы включил и работало, а они только состояние отслеживали. Так вот, был случай когда из-за адреса таки кончились, правда тогда адресов было только 2^16, думали всем хватит, кек, конторка-то была маленькой, из-за этого куча хуйни произошла, было решено сначала до 32байт на адрес выделять, чтобы типа как ОйПи выглядело, но оказалось, что за 5 лет работы с высокими нагрузками и постоянными заменами устройств и этого может не хватать, тогда и прибегли к штуке с вклиниванием адреса для устройств, которые удалили. Вот. Недавно таки решили перейти на 64 битные адреса, но решили, что лучше таки этот костыль оставить, а то вдруг через 20 лет все наебнется, а все кодеры уже помрут к тому времени. Как-то так. Ну, т.е я понимаю, что 2^64 это типа ~18квинтилионов, что дохера, но хуй знает, может быть простоит эта вся хуйня еще 200 лет, устройства будут тот же протокол тащить(ну а хули, наша контора его в 90х придумала, а он все еще используется, кек, а TCP вообще из 80х и скорее всего пока интернет существует он будет основным протоколом), и по всей галактике расползутся, и тут все внезапно встанет. А так еще чутка поработает, пока до 128 бит не расширят адреса.
Просто все тут старые и решаем перестарховаться, потому что в прошлый раз когда новая партия устройств не могла зарегаться и нормально работать, т.к. адреса кончились, нас чуть не разогнали к хуям, потому что это был один из жирных заказчиков и как-бы планировалось долгое сотрудничество, а такие вот оказии как-то не хорошо влияют на репутацию.
1099 1720530
>>720397
Так добавляй используя тот sql который ты написал в примере "на sql я могу". В чем проблемв?
1100 1720533
>>720397
И зачем ты Skip(1) вызываешь, вместо обычного прохода по массиву? Очевидно, что он у тебя памяти жрать будет дохера, потому что каждый раз возвращает новую коллекцию - 1 элемент
1101 1720541
>>720533

>каждый раз возвращает новую коллекцию - 1 элемент


Чего? Skip создаст енумератор и форич пройдет по нему один раз. ХЗ что у него там память жрет, он конечно выгружает себе все Num из таблицы, но на 1к записей это все равно только ~8Кб.
1102 1720590
>>720541
В реальной таблице больше миллиона устройств и как я понимаю именно то что я выгружаю их как раз и жрет столько памяти. Просто, как я сказал уже, я на шарпы только недавно был пересажен, до этого я занимался исключительно SQL и сейчас просто пытаюсь разбираться как оно у вас устроено.
1103 1720605
>>720590
Хм..

>уже при 1к записей жрется куча памяти.


Ты вот это >>720442 попробовал?
1104 1720610
>>720605
Пока не пробовал, потому что сегодня ж выходной, к прод базе доступа удаленно нет. В понедельник посмотрю.
1105 1720650
Не совсем понимаю как работает TPL. С потоками-то все ясно, мы создали поток, в нем какой-то более-менее линейный алгоритм, он выполнился в отдельном потоке, я поймал результат и как-то его использую. А вот с TPL какие-то непонятки. Вот я сделал Таск, запихнул внутрь его еще пару которые жду await'ом, и почему-то у меня на самом верху вызова ожидание прерывается и идет дельше, а потом я ловлю эксепшн, дескать операция отменена. Я чет не догоняю, как оно задумано и должно работать.
image.png25 Кб, 1105x210
1106 1720768
Какого хуя name does not exist? Объявил же буквально на предыдущей строке.
1107 1720777
>>720768
Потому что ты еблан, пытается заполнить словарь в области описания класса?
Что, блядь, тебе мещало так сделать:
Dictionary<byte, string> items = new Dictionary<byte, string>
{
{1, "sword"},
{2, "zalupa"},
{3, "hui"}
}
Или вынести это в метод, скажем InitItemList()?
Нет, блядь, ты какую-то хуйню пишешь.
1108 1720937
>>720650
Ну ебанарот, ну записли минимальный код, воспроизводящий проблнмк, да напиши, что ты ожидаешь, а что есть на самом деле. Очень охуенно с твоих словесных описаний пытаться понять, что у тебя там за код.
1109 1720978
>>720650
Читай CLR via С# и его раздел про многопоточность. Если кратко описать различия, то таск это более интеллектуальный тред, который самостоятельно контролирует распределение процессорного времени и избавляет тебя от части работы по синхронизации потоков.
1110 1720987
>>720937
Ну вот. После того как я получаю данные от клиента, ожидание в методе ProcessSession почему-то оканчивается и начинается двигаться дальше к остановке сессии, потом мой делегат пытается отправить ответ киленту, и выскакивает ObjectDisposedException. Вооооот. Даааа.
Я понимаю, что скорее всего дело в том, что я еблан и пытаюсь ждать void, а это нельзя, но а как тогда сделать? Ну, а чего я хочу? Я хочу вынсти обработку соединения клиента в делегат, чтобы логику разную логику можно было реализовать не особо меняя мой класс. Вот. Да.
1111 1720998
>>720987
Таки да. Заменил обработчик с Action<Session> на Func<Session, Task> и заработало как надо. Другое дело, что как-то все равно непонятно. Тупенький я, наверное.
1112 1721051
>>720998
>>720998
Task.Run выполняется моментально, так как внутри его делегата асинхронная функция, которая просто запускается и возвращает контроль.
Заменив на Func<Session, Task> у тебя лямбда выражение стало неявно возвращать Task (если добавить фигурные скобки твоему Task.Run, то у тебя опять всё наебнется), поэтому await срабатывает именно на этот Task.
Но вообще это говнокод, так как Task.Run в данном случае не нужен, сразу пиши функцию которую ты зачем то засунул в этот Task.Run
1113 1721076
>>721051
Ну, я засунул ее в Task.Run, потому что как раз думал вот что: Task.Run возвращает Task -> обернув асинхронную функцию, я все еще смогу ее ждать. Оказывается не смогу. Вот. Да.
Сейчас оно так выглядит.
Заодно проверил. Вроде 1к клиентов подключились, отправили, получили ответ и отключились нормально. Теперь надо придумать, как какую-то более сложную обработку делать, скажем собрать из пришедших данных HTTP пакет и обработать запрос.
1114 1721138
>>721076

>обернув асинхронную функцию, я все еще смогу ее ждать


Для таких задач есть специальный класс - TaskCompletionSource, но это уже будет выглядеть костыльно и применять его нужно только там где без него действительно обойтись нельзя, например в какой-нибудь сложной цепочке вызовов, выполнение которой нужно ожидать в одном месте.
1115 1721240
Можно ли как-нибудь с помощью рефлексии вызывать метод который принимает ref(in) struct чтобы не было боксинга при вызове при условии что тип через generic мы запрограммировать не можем, но на этапе компиляции нам о типе известно?
Вся суть чтобы не было боксинга, с боксингом это сделать легко.
1116 1721283
>>720987

>Вооооот. Даааа.


>>721076

>Вот. Да.


>>685235

>Вооот


>>714813

>Воооот


>>714920

>Воооооот


Пиздец ты ебан. Тебе даже отвечать не хочется.
Лямбды тоже можно делать асинхронными
1117 1721286
>>721240

>что тип через generic мы запрограммировать не можем, но на этапе компиляции нам о типе известно


С этого места по-подробнее
1118 1721288
>>721240
Создаешь делегат из нужного метода и вызываешь его передав структуру по ссылке
1119 1721290
>>721240
Ответы с SO не подходят?
https://stackoverflow.com/a/9928322
1120 1721291
>>721283
И потом писать await await await
1121 1721294
>>721291
Нет
12123.jpg19 Кб, 721x107
1122 1721304
>>721294
Каким будет порядок вывода в консоль?
1123 1721307
>>721304
Тебе асинк метод возвращает горячую таску, ты нахуя её оборачиваешь еще в таску? Если ты любитель делать Task<Task<Task<Task<Task<Task<Task<int>>>>>>>, о да придется писать await await await await await await, но умственно здоровые люди так не пишут.
1124 1721314
>>721283
Там не все посты мои. Дааааа.

> Лямбды тоже можно делать асинхронными


Я знаю.
1125 1721316
Где устанавливать куки в разорпагесах? Сейчас я впендюрил это в миддлваре, это нормально?
1126 1721319
>>721286
Есть методы в классе которые принимают структуры которые реализует интерфейс, но принимают для оптимизации они через ключевое слово in. Интерфейс лишь нужен для intellisense, потому что если приводить структуру к нему будет боксинг, ну и для связывание только необходимых мне методов.
Так вот в методе мы заранее знаем какой тип он хочет принять, но я хочу вызывать этот метод не напрямую, а через рефлексию.
Вся соль в том что у меня есть список классов в которых есть куча таких вот методов и при загрузки программы они анализируются через рефлексию и происходит связывание между типом структуры и этим методами (которые как бы их обработчики) и таким образом я хочу в любом месте программы создать структуру, затем вызвать на ней extension метод, который найдет все обработчики для этой структуры и вызовет для них методы.

Будет что-то типа new MyStruct(123).Send();
И тут все обработчики этой структуры вызовутся, при том я нигде не должен явно писать что за обработчики, просто пиши методы что принимают такие структуры, а оно само все будет работать.

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

>>721288
>>721290
Там Generic используется, а я на этапе связывания имеют Type структуры в этом и проблема. Без понятия как на этом создать делегат нужного мне метода.
1127 1721322
>>721307
Конечно, все тупенькие, один ты умный. Даже в документации пишут:

>It is often useful to be able to return a Task from a Task<TResult>, where the inner Task represents work done as part of the outer Task<TResult>.


Но куда им, дуракам пишущим документации, до великого знатока с двача, верно?
1128 1721324
>>721319

> все это работало на стэке и не нагружало GC.


Смешно читать такое, когда речь о рефлексии идёт. Ты понимаешь, что боксинг в данном случае вызовет меньшую нагрузку, чем ебля с передачей его по ссылке через рефлексию для избежания этого боксинга?
1129 1721331
>>721322
Так ведь

>It is often useful to be able to


в чем у тебя useful? То что ты able to, не значит что тебе надо так делать. Напомню, на случай, если у тебя паамять хлебушка, то ты сказал буд-то при использовании асинхронных лямбд, надо будет писать цепочку эветов, что не так. ХЗ с чем ты спорить пытаешься.

>Лямбды тоже можно делать асинхронными


>И потом писать await await await


>Нет

1130 1721334
>>721324
Это нагрузка будет только при загрузке приложения, я же хочу получить не супер мега быструю загрузку, а быструю работу приложения.
У меня уже есть рабочее приложение с боксингом, но хочется сделать все по красоте иначе смысл в структурах теряется.
А я хочу написать event ориентированную систему которую не стыдно показать кому-то другому.
1131 1721351
>>721331

>в чем у тебя useful?



Где у меня, долбоеб? Ты настолько отбитый, что в примере c foo и bar начинаешь спрашивать в чём польза этих классов?

>То что ты able to, не значит что тебе надо так делать.


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

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


Ну так покажи мне, как в этом >>721304 примере обойтись без await await или .Unwarp(), скотина тупорылая.
1132 1721361
>>721334

>Это нагрузка будет только при загрузке приложения


А боксинг у тебя на всей работе приложения отразится что ли? Ну создаст он у тебя на старте несколько объектов, потом gc их соберет. В чём проблема? Или у тебя приложение работает пару секунд?
1133 1721380
Кстати, если не сложно, можете указать на ошибочки и объяснить, почему подключение и обработка работает довольно быстро, а вот когда клиент дисконнектится - уже не так быстро и как сделать это быстрее? Ну и вообще, если не сложно, то объясните, что я делаю не так и как надо.
https://github.com/BakaVaka/TcpLib/tree/master/src
1134 1721476
>>721380
Опять этот злоебучий аваилабл.

>Возвращает значение, указывающее количество полученных из сети и доступных для чтения данных.


В реальной жизни тебе будут прилетать сообщения не всегда целиком за раз - т.е. ты прочитал все из стрима и у тебя аваилабл = 0, но часть сообщения еще летит по проводам.
1135 1721487
>>721361
Боксинг происходит на моменте вызова события, т.е как раз во время работы приложения, а не на его старте.
Вроде бы нашел решение через создание generic делегата, которые оказывается дает обычный Delegate, который затем надо приводить к generic типу и тогда боксинга не будет.

Но обнаружил другую странную фигню, оказывается когда передаешь структуру через ключевое слово in, то эта структуру теряет всякую связь с интерфейсами т.е через рефлексию не видно что она реализует какой-нибудь интерфейс, но если убрать in, то видно реализацию интерфейса.
Это я про ParameterInfo говорю.
Тоже самое происходит если использовать ref.

Конечно я уже придумал грязный хак, тупо хранить в словаре по имени названия структур которые реализуют нужный мне интерфейс, а затем проверять по имени подходящая ли структура в том методе что я исследую, там различие только в конце, у не in/ref структуры будет название с & на конце. Но это не совсем правильный метод, но рассмотрев абсолютно все свойства и методы, я на нашел другого способа.
1136 1721496
>>721476
А как надо, если я не знаю по какому протоколу работать будем?
1137 1721537
>>721487
Ну и зачем эта ебля, если ты можешь создать функцию, которая будет вызываться из конструктора структуры, которая будет принимать её в качестве параметра и обрабатывать всеми обработчиками для данной структуры.
Обработчики будешь прописывать в partial классе. Единственный минус в том, что при добавлении обработчика нужно будет явно прописывать его вызов в общей функции, которая этот обработчик вызывает.
1138 1721540
>>721487

>Боксинг происходит на моменте вызова события


Ну вот и получается, что у тебя рефлексия работает на протяжении всей работы приложения, а не только при запуске.
1139 1721563
>>721496
ДатаАвалибле дает тебе знать, готовы ли данные к прочтению, при этом оно может вызвать эксепшн, если удаленный хост внезапно закроет соединение.

>А как надо, если я не знаю по какому протоколу работать будем?


А как ты работать то собрался тогда? Наугад?
1140 1721607
Где можно посмотреть небольшие проекты ASP с грамотной архитектурой? Хотелось бы увидеть пример того как строить авторизацию к различным ресурсам, чтобы минимизировать повторение кода. К примеру есть у меня класс пользователь и документ. Документ может быть публичным(доступен всем пользователям для чтения) или приватным(читать может только создатель). Пользователь может создавать документ и делать его публичным. Соответственно мне приходится в каждом методе контроллера писать проверки типа if document.IsPublic || document.Creator == user ... Хотелось бы как-то 1 раз разграничить доступ еще на этапе чтения данных из базы и не писать одно и то же раз за разом.
1141 1721634
>>721563

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


Ну, оберну чтение в try-сatch и как-то обработаю это дело же.
>>721563

> А как ты работать то собрался тогда? Наугад?


Ну, дык вся логика обработки сообщений, по моей задумке, должна быть вынесена в ProcessSessionHandler, там уже пользователь библиотеки(я), может логику в соответствии с протоколом реализовывать. А TcpServer - Session это просто служебные классы, чтобы не писать каждый раз повторяющийся код. Вот, для примера, скажем мне сегодня нужно реализовать простую логику: клиент подключается, я его регистрирую и шлю ему пакет проверки соединения и потом просто повторяю проверку соедниения по таймеру, чтобы знать что клиент подключен и работает нормально, я просто пихаю эту логику в ProcessSessionHandler. А завтра я решаю что мне нужно HTTP сервер намутить и я не хочу тащить апач или что-то такое, я сделаю класс, который бы собирал из пришедших байтиков запрос, запихну экземпляр в ProcessSessionHandler, буду в цикле пихать в экземпляр класса байты, пока не получу нужный пакет или пока не истечет лимит, если будет валидный запрос - обработаю его и пошлю ответ, если нет - дропну соединение. В этом и задумка как-бы, чтобы сделать такую вот маленькую библиотечку, которая не зависит от протокола и чтобы можно было ее таскать с собой и каждый раз не реализовывать всю эту фигню.
Просто да, я понимаю, что никому нормальному оно не всралось, но я вот такой вот еблан. Изобретаю велосипед и есть готовая нормальная библиотека, для вот этого вот всего, чтобы просто можно было сделать класс который должен был бы парсить байтики, я бы пришедшие данные в него запихивал и когда получал сообщение - отдавал какую-то логику обработки реализовывал. Но я, как не гуглил, нашел только WatsonTCP и NetCoreServer. Watson не подошел потому что он почему-то не хотел вызывать событие получения сообщения, если это было долгосрочное подключение, и я вот шлю-шлю пакеты, а он это событие вызывает только после того как я дропаю соединение, хз, может быть я тупой и не понимаю что-то. А у NetCoreServer на тот момент были проблемы с 500+ соединениями, хотя заявлялось что 10к умеет держать, ну и тогда были утечки, но сейчас гуглил, вроде пофиксили.
Ай, ладно, моих скиллов все равно недостаточно, чтобы такое сделать и чтобы оно было не только мне удобно.
1141 1721634
>>721563

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


Ну, оберну чтение в try-сatch и как-то обработаю это дело же.
>>721563

> А как ты работать то собрался тогда? Наугад?


Ну, дык вся логика обработки сообщений, по моей задумке, должна быть вынесена в ProcessSessionHandler, там уже пользователь библиотеки(я), может логику в соответствии с протоколом реализовывать. А TcpServer - Session это просто служебные классы, чтобы не писать каждый раз повторяющийся код. Вот, для примера, скажем мне сегодня нужно реализовать простую логику: клиент подключается, я его регистрирую и шлю ему пакет проверки соединения и потом просто повторяю проверку соедниения по таймеру, чтобы знать что клиент подключен и работает нормально, я просто пихаю эту логику в ProcessSessionHandler. А завтра я решаю что мне нужно HTTP сервер намутить и я не хочу тащить апач или что-то такое, я сделаю класс, который бы собирал из пришедших байтиков запрос, запихну экземпляр в ProcessSessionHandler, буду в цикле пихать в экземпляр класса байты, пока не получу нужный пакет или пока не истечет лимит, если будет валидный запрос - обработаю его и пошлю ответ, если нет - дропну соединение. В этом и задумка как-бы, чтобы сделать такую вот маленькую библиотечку, которая не зависит от протокола и чтобы можно было ее таскать с собой и каждый раз не реализовывать всю эту фигню.
Просто да, я понимаю, что никому нормальному оно не всралось, но я вот такой вот еблан. Изобретаю велосипед и есть готовая нормальная библиотека, для вот этого вот всего, чтобы просто можно было сделать класс который должен был бы парсить байтики, я бы пришедшие данные в него запихивал и когда получал сообщение - отдавал какую-то логику обработки реализовывал. Но я, как не гуглил, нашел только WatsonTCP и NetCoreServer. Watson не подошел потому что он почему-то не хотел вызывать событие получения сообщения, если это было долгосрочное подключение, и я вот шлю-шлю пакеты, а он это событие вызывает только после того как я дропаю соединение, хз, может быть я тупой и не понимаю что-то. А у NetCoreServer на тот момент были проблемы с 500+ соединениями, хотя заявлялось что 10к умеет держать, ну и тогда были утечки, но сейчас гуглил, вроде пофиксили.
Ай, ладно, моих скиллов все равно недостаточно, чтобы такое сделать и чтобы оно было не только мне удобно.
1142 1721946
>>721537
Затем что я хочу иметь чистый и красивый код.
Отдельно структуры которые являются способом передачи данных.
Отдельно обработчики где я регистрирую только класс (можно и не регать, просто я так ускоряю запуск) и там уже методы сами регистрируются без моего участия. Захотел удалил метод, захотел добавил и нигде ничего писать не нужно дополнительно.
Плюс дебажить такое удобно.
А еще можно через атрибуты отключать/подключать функционал.
Может чего еще придумаю на основе этого.

>>721540
Нет, там при работе вызывается созданный делегат на моменте запуска.
Бенча 2 потому что затем пришла идея проверить скорость вызова делегата и как видишь разница не велика, и это еще возможно из-за каста в дженерик. Но делать я его решил без динамика, уж очень долго с ним.

IdeaCall это то что я придумал.
Дальше тоже самое, но с боксингом, кстати удивительно но нагрузки на GC нет, я думал будет.
DirectCall это прямой вызов.
Delegate это вызов через созданные делегат напрямую.
EventCall это вызов через event EventHandler.
Ну и IdeaDynamicBoxingCall это вызов через DynamicInvoke, т.е через рефлексию.
Все это дело было с повторами в 100_000_000 раз.
Вызывался кстати метод которые суммировал из прокидываемой структуры поле, чтобы не было читинга
1143 1722205
>>721316
бумб
изображение.png24 Кб, 479x492
1144 1722432
Зачем нужен шарп, если всё то же самое можно делать на крестах?
1145 1722436
>>722432
Зачем нужны кресты, если всё то же самое можно делать на шарпе?
1146 1722444
>>722436
Ты не можешь на шарпе контроллировать потребление ОЗУ программой.
.png11 Кб, 415x360
1147 1722470
>>722432
Ну, няша, ты что-то наговнокодил. Что тебе мешало так сделать?
А вообще, у шарпов синтаксис поприятнее, меня вот задалбывало то '->' то '.' использовать и держать в голове, по указателю я обращаюсь или не. Короче, у шарпа оно как-то все более структурированно, имеет какую-то общую фому, плюс глаз легче цепляеется за ключевые слова типа ref out и т.д. Опять же, можно очень сильно упрощать себе жизнь, ловя ошибки на этапе компиляции, вместо того чтобы потом кучу времени искать где же ты там изменил то что должно было быть неизменяемым.
1148 1722482
>>722444
Таки можешь, только вот обычно на шарпе это не особо надо.
1149 1722502
>>722444
Зато в шарпе можно бла-бла-бла. Вопрос поставлен некорректно.
1150 1722510
>>722470
С классом так не сделаешь.
изображение.png17 Кб, 436x389
1151 1722525
>>722432
>>722510
А хотя нет, сделаешь.
1152 1723161
>>719150
да, 400$. полугосконтора в мухосрани в области жизнеобеспечения города.

конечно потребую поднять зарплату, но сначала придется сделать, а то заявляют что все просто, а я просто не хочу работать, а на улице и так полно желающих
1153 1723329
>>722444
Какие ваши юзкейсы для этого?
1592222894279.png38 Кб, 860x596
1154 1723685
>>723329
Мм.. как жи хочеца контлоллировать.. опелативку.. скачать контлоль озу.. так сболщик мусола.. ето не то..
1155 1723695
приведите реальный юзсейс использования рефлекшена. Принцип я понимаю - по методанным получать инфу о типах. Но где это дерьмо используется? Это можно юзать разве что, если нет доступа к самой сборке. И с помощью этого дерьма можно стейт приложения менять? Типо в DI подсунуть другу реализацию?
1156 1723889
>>723695
1. Для расширения приложения сторонними разработчиками. Создаешь определенные условия, которыми должно обладать расширение и подгружаешь дополнительный функционал без необходимости лезть в основной код.
2. Для работы фреймворков. Которые анализируют твой код при помощи рефлексии и дописывают комплексные части за тебя.
3. Для большей автоматизации. К примеру, у тебя есть меню и несколько его пунктов. Не используя рефлексию при добавлении нового пункта, тебе придется лезть в код и помимо описания нового элемента, добавлять его в общее меню, возможно меняя порядок отображения. При помощи рефлексии достаточно написать логику вида - если у класса в имени содержится MenuItem, значит берем его свойство Title и вставляем в отрисовку общего меню в порядке обозначенном его свойством OrdinalNumber. Те для добавления нового пункта, тебе нужно всего лишь создать новый класс с таким названием и задать необходимые свойства, лезть в основной код не нужно. Соблюдая как DI принцип, так и ОC принцип. При этом тратя меньше времени.
4. Для изоляции отдельных компонентов. Подгружаешь их в отдельный домен и работаешь с ними при помощи рефлексии, не опасаясь того, что они повлияют на работу твоегр приложения без твоего ведома.
5. В крайних случаях, можно использовать для запиливания костылей к уже скомпилированному коду, перекомпилировать который нет возможности.
1157 1724002
>>723889
1. Типо есть в рантайме приложение, которое пердит
1158 1724004
У меня тут такое дело. Смотрите, пользователь регестрируется мое API должно отдать ему в случае успешной регистрации его ID, котороый клиентская часть будет использовать для доступа к личной информации. И я чет не совсем понимаю, как сделать это быстро. Типа если я делаю асинхронное сохранение в контроллере, то ID повторяться начинают. Если добавляю lock то ID не повторяются, но уже при 50 клиентах одновременно обратившихся начинается торможение. А как тогда правильно делать-то, если ID это не первичный ключ с автоинкрементом?
1159 1724005
>>723889
>>724002 >стучайно отправил
*хоститься и не лезть в основной код. Но этот код не появиться в сборке и приходиться компилировать отдельно и запускать эту свистелку-перделку уже под рантайм основного приложения. Вопрос - зочем? Ладно, если какой то крупный интерпрайз 24/7 крутиться в продакшене и к нему нет доступа, но если сама же команда разрабов будет пилить такие костыли на ходу, то запуск одного приложения + N костылей (который будет так же с зависимостями - это ад адский). Кстати да, когда по методанным получаешь дерево типов - можно ли делать Reference на них?
2. >дописывают комплексные части за тебя.
К примеру? Не понимаю, о чем речь
3. Почему не перекомпелировать?
4. Это более ли менее здраво
5. Тот же вопрос, что и 1,2.
Ок, есть охуенно огромная сборка, которая компилиться 2-3 часа, а у заказчика нет времени на это. Ты пишешь костыль, как основной модуль узнает, что есть такой вот приставленный костыль? Ведь в основном модуле этот функционал не заложен и на него нет ни эндпоинтов ни ссылок - вообще нихуя.
1160 1724015
>>724004
откуда у тебя одновременных 50 клиентов то?
1161 1724018
>>724015
Ну, я написал для тестирования на формочках простенький эмулятор клиентов. Вбиваешь адрес, количество клиентов, жмакаешь кнопочку, они стучаться и ответ сервера рисуют на своих вкладочках, плюс небольшой текстбокс с текстовым представлением ответа. Как-то так. Понимаю что не самый честный способ проверки.
1162 1724324
Как быстро заставить себя писать на Шарпе? До этого писал пару проектов на Python, но щас дико прокрастинирую по поводу программирования в целом. А Шарп очень сильно бросает в тильте из-за ебучих конструкций язык.
1163 1724389
>>724324
Почитай еще теории. Бросает в тильт не из за корструкций, а из за того что ты динамикопетух, еще и пришел из языка-калькулятора для школьников/ученых. Это как с трехколесного велосипеда перепрыгнуть на мотоцикл и винить во всем конструкцию.
Если боишься, значит не знаешь, значит теорию нужно подтянуть. Я сам на шарп с жопаскрипта перешел, свободно писать начал только после трёх книг по шарпу и одной по ооп и паттернам проектирования.
1164 1724392
>>724324
Попробуй пару лет писать на си и плюсах, кек. Я вот когда на третьем курсе нам начали шарп давать, радугой кончал от того как там все удобненько. Да и какие конструкции там могут быть неудобными или неочивидными? Разве что лямбды попервой, но первое время можно без лямбд кодить, вынося все это в отдельные функции. Ну или ООП, но ООП это отдельная срань, которую нужно отдельно от шарпа учить.
1165 1724398
>>724018
я в смысле, откуда у тебя будет 50 одновременных клиентов?
1166 1724402
>>724398
Странный вопрос. Даже не знаю что ответить, лол.
1167 1724417
>>724402
у тебя там настолько большая штука что по 50 клиентов одновременно регистрируются ?
1169 1724515
>>724392
Мне не дается разделение программы на части. Типа, создаем сервис, к нему еще один сервис, а в результате все работает и легко модифицируемо
Что почитать, чтобы строить красивую архитектуру?

Работаю больше года, вроде руку набил, но уперся в потолок. Вместо совершенствования шарпа изучил js и vue на примитивном уровне, что позволяет писать простенькие spa, а сейчас понимаю, что хороший бекендер ценится больше, чем тяпляп фуллстек
1170 1724989
>>724417
Ну, я не знаю насколько она большая будет. Но считаю что надо заложить производительность на случай если такая ситуация произойдет.
1171 1725296
https://dotnetfiddle.net/NkP3EZ что я делаю не так? Всё ведь сделал как в примере на метаните:
https://metanit.com/sharp/tutorial/3.8.php

Почему конструктор не работает?
1172 1725315
>>725296
статические переменные в абстрактном классе. Братишка - ты долбоеб, земля тебе пухом
1173 1725317
>>725315
Без статического модификатора тоже не работает
1174 1725324
>>725317
иди читай про абстрактные типы, васян
1175 1725327
>>725296
https://dotnetfiddle.net/tT47Dg
В общем, будь внимательнее. Во-первых, ты зачем-то пишешь BMW(...) : Auto(...), так оно никогда не работало. На метаните используется base.
Второе, ты используешь статичные свойства в абстрактном классе. Это значит что все наследники обращаясь к этим свойствам будут последнее присвоенное значение использовать. Если хотел чтобы они больше не изменялись, для этого есть readunly, если хотел чтобы они только внутри класса менялись, делаешь set приватным или протектным.
Ну и в общем с оформлением кода. Почитай гайдлайны, стиль кода это важная штука, особенно если ты скидываешь его другим людям. Создается впечатление, что тебе просто похуй.
1176 1725860
>>725324
Так я этим сейчас и занимаюсь
1177 1736933
>>665549

> .NET5


Долбоёб, купи себе неткор.
Тред утонул или удален.
Это копия, сохраненная 31 августа 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски