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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
C#/Сишарп/.NET Тред - Шапка edition #15 /csharp/ 1528262 В конец треда | Веб
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем 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, делать намного сложнее.

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. С# для мобильной разработки
Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.
Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
Из актуальной литературы
- Xamarin Mobile Application Development
- Xamarin Essentials

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

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

Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn Overview
Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C#-6

ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ

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

Прошлый тред тонет здесь: >>1515204 (OP) (OP)
2 1528263
>>28262 (OP)
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.

10. Более хардкорный материал
- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.
- CLR via C# (Jeffrey Richter) - это классика, это знать надо.

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
2 1528263
>>28262 (OP)
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.

10. Более хардкорный материал
- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.
- CLR via C# (Jeffrey Richter) - это классика, это знать надо.

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 1528283
ЛУЧШИЙ ОНЛАЙН РЕСУРС ПО C#/JS/SQL И СОПУТСТВУЮЩИМ ТЕХНОЛОГИЯМ
https://metanit.com/
4 1528638
>>28262 (OP)
Ты заебал, выкинь этого аниме-трапа нахуй уже
5 1528852
>>28263
Уже 8.0 книжки выходят, ты все 6.0 подсовываешь.
picture.jpg43 Кб, 646x306
6 1528918
Ну и как это отлаживать? Хули он мне целый тред повесил?
7 1528922
>>28852
Ты можешь предложить любую книжку в любой момент. Если захочешь.
8 1529000
>>28918
Переходить на Rust
9 1529103
Аноны сейчас осиливаю С# по учебнику "Полное руководство C# 4.0".
Идет тяжеловато и со скрипом, но дальше хуже. Что мне стоит изучать после киньте пожалуйста литературы и советы если есть какие полезные кроме ВЫЕБЫВАТЬ И УЧИТЬ
10 1529117
>>29103
гугли hh по своему региону, смотри стэк, который требуют
11 1529138
Вот так первые 4 открыл.
Подскажите на что из этого лучше нацелится я так понимаю мыслить надо адекватно и смотреть на пик 1 джун, но что-то там ключевых наваков дохуя, а платят нихуя во-о-о-т.
Еще и опыт JavaScript это что подъеб такой? Я в C# хочу вкатиться чтоб JavaScript поучить?
Вообще посоветуйте на какой из пиков лучше нацелиться и еще раз хорошей литературы по теме. Да я тупой
12 1529148
>>29138
Что за вакансии на рузком языке, лул? Это аборигены, которые ищут дурачков без знания ангельского на легаси? Улыбнуло "есть рядом столовая". Что за чуханские вакансии? 4 пика это mid+, туда даже не смотри. 1 - это за хлеб работа, ищут пиздюков.

По сабжу - что прет делать, то и учи. Сейчас веб - это 90% вакансий. А там решай сам.
13 1529189
>>29148
У меня в городе всего 16 ваканский C# из них лишь одна на ангельском и там надо столько, что я охуел
За то 50+ на 1С не то я учу ой не то.
У меня уже ручки трясуться и я готов все бросить не поеду же я в ДС за работой ладно пока буду продолжать учить может нормальные вакансии появятся
14 1529194
>>29189
я всегда удивляюсь логике вкатывальщикам на двоще. Если ты кодишь, чтобы работать, так бери стек, который больше всего востребован. Если ты кодишь по кайфу, то берешь самый привлекательный (лично для тебя) язык по синтаксису и возможностям.
Тоже самое и за релокейт. Готов - смотришь вакансии в городах, куда можешь поехать. Не готов - свой регион.
15 1529213
>>29194
Но я слышал, что 1C это пиздец помойка для умственно отсталых, что-то вроде ассенизаторов в мире программистов и даже программистом называться права не имеешь ты червь пидор который ковыряется палкой в говне без возможности роста всю жизнь вынужденный тыкать в одно и тоже говно палкой
16 1529220
>>29213
Вот тебе реальность из взрослого мира.
Знакомый челик кодит в 1с для нефтянки. В провинции. Выплатил ипотеку за двушку в хорошем районе, семья, дети, на отдых ездит регулярно. Не перерабатывает, не парится, после работы фреймворки не учит. Как ты думаешь, похоже на помойку?
17 1529222
>>29213
1С это пиздец, а сисярп это язык больших корпораций и легаси десктопного говна, в твоей мухосрани нужны небось натягиватели верстки на вордпресс и фронтэндеры, бэкенд-языки вряд ли в принципе твой выбор, так как вакансий в самом деле будет 3 штуки на каждый из 10 бэкенд языков, зато во фронте один жс и фронт в принципе востребован. И бэкендеры тоже должны жс знать, правда хуже.
18 1529224
>>29222
Понятно говна я поел только время зря потерял. КАКОЙ ЖЕ Я ДОЛБОЕБ А-А-А СУКА Я и так не сильно умный, но так проебаться боже мой.
>>29220
Я уже закрыл учебник у меня еще год полтора пойду в 1С знаю сложный он и что кого.
19 1529236
>>29213

>1C это пиздец помойка


так и есть. Все на рузком языке (тем, кто не осилил ангельский самое оно)
ООП? с 8.3 какую то пародию делали, но это не точно (только со слов 1Сника слышал)

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


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

Да кстати, разрушу миф вкатывальщиков, что с 0 проекты мало кто пишет, восновном сапортят/фиксят. И если в вакансии пишут - продуктовая, необходимо знание жизненного цикла продукта с 0 - посадят на проект, который галера сапортит уже N лет и будешь ковырять, как ты говоришь, не то что говно, а такой пиздец, что в страшном сне не придумать.
20 1529237
>>28638

> аниме-трапа


Ты чо, пёс. Это лучшая девочка!
21 1529240
>>29237
>>28638
а то, что название треда Без названия, видимо никого не смущает
22 1529278
>>29213

>1C это пиздец помойка для умственно отсталых



зато работу на нем можешь найти в любом мухосранске. Практически все российские компании завязаны на 1С.
23 1529369
Почему если я пишу:
{var foo = Task(bar);
foo.Start();}
оно выполняется вроде как асинхронно
А если пишу:
{var foo = bar;
foo.Start();
}
async Tasl bar(){}
Оно работает синхронно?
25 1529381
>>29380
я хочу сгенерировать див а внутри дива сгенерировать а с линком
26 1529528
>>29369
async не делает метод асинхронным, это знают взрослые и дети
и это написало в любой книге/статье, ебаный рот, когда вы начнете читать
27 1529714
>>29528
Я это знаю, но почем, блин, первый вариант с той же функцией просто засунутой внутрь таска делает?
28 1529722
>>29714
Потому что таск выполняется асинхронно?
29 1529726
>>29722
Ну так а почему тогда второй пример не выполняется асинхронно? Да, там я опечатался, но можно догадаться что
async Task bar() должно быть.
30 1529860
Может ли один юнит тест быть подвязан к другому? На сколько я знаю, каждый юнит тест должен отделять конкретный метод от всей системы. Но как протестировать, например метод Update? Сравнить массив до Update и после?
31 1530048
>>1525310
твой пост не оставляет покоя в голове. Реализовую DbContext с 15+ сущностей DbSet, в каждом из которых пишу методы CRUD-a. Причины:
1. Не могу брать базовый функционал от DbSet - т.к. нет проверки на null, если введут хуйню;
2. Все CRUD методы DbSet идут без SaveChanges. Так что хоть так, хоть так нужно будет переписывать методы.
32 1530248
>>29714

>Я это знаю


Очевидно нет. Тебя там даже компилятор должен варнинг кидать,что без авейта не будет асинхронности. А еще скидывай валидный код, потому что не понятно в чем у тебя там загвоздка ибо та хуйня даже не заработает ибо нельзя стартануть (.Start()) задачу, возвращаемую из асинхронного метода.
33 1530995
Блядь, я наверное совсем тупой, но вот попытка номер ТРИ!
https://ideone.com/EmOlmj
https://ideone.com/XETOkj
https://ideone.com/OOtswd

Суть, я вроде как проверил и оно даже вроде как работает, пока клиентов мало. Но вот я сделал 500 клиентов которые ломятся в мой сервер и в определенный момент ошибка что компуктер отклонил подключение, сессии, вроде как, отключаются, но новые подключатся не хотят и приходится перезапускать.
34 1531025
>>30995
Может на гитхаб зальешь?
35 1531026
>>31025
А как на него отдельные файлики а не весь проект заливать? Не хочу чтобы все видели мои попытки реализовать HTTP-парсер
36 1531047
>>31026
Закидывать-то можно, но я имел ввиду именно проект, чтоб можно было запускать.
37 1531063
>>31047
Ну ладно, я вроде как разобрался как сделать чтобы не целеком проект кидать.
https://github.com/BakaVaka/MySuperTcpServer/tree/master/src
sage 38 1531296
>>28922
C# 8.0 in a Nutshell
39 1531410
>>31296
C# 9.0 in a Nutshell
40 1531412
>>31410
C# 3.5 Изгой один.
image.png208 Кб, 480x320
Sage 41 1531442
АНОНЫ, помогите! тут такая фигня, мне нужно получить инпут в формате datetime но я не могу найти нигде как-то сделать?
42 1531449
>>31442
может нахуй сходишь, с такими вопросами? То блять со строками играют, то инпут даты нужен, что за кретины тут сидят? Где аноны, обсуждающие тонкости работы CLR и архитектурных принципов?

давай, помогай таким. А потом сиди и скроль ленту с даунскими вопросами
image.png166 Кб, 480x360
Sage 43 1531452
44 1531476
>>31449

>обсуждающие тонкости работы CLR


А нахуя? Вот есть Рихтер, нахуя его читать, кто пояснит?
45 1531491
>>31476
ofc, лучше даунам писать, как инпут датой получать. Спору нет.
46 1531508
>>31449
Давай лучше поговорим в каких чулочках ты программируешь?
Носишь ли ты дома юбочки?
47 1531679
Что-то я жёстко туплю. Вот у меня есть некий лист items. И мне нужны его properties. Тогда я делаю
PropertyInfo [ ] Props = items.First().GetType().GetProperties()
И я получаю ВСЕ свойства этого листа, но как мне получить не все, а только определенные?
1111.png2 Кб, 698x66
48 1531690
>>31679
Например так
49 1531702
>>31690
А это можно как-то в цикл засунуть? А то я изначально не знаю имена нужных свойств.
50 1531735
>>31702
Можно
51 1531736
Короче, никто таки не знает как >>31063>>30995 нужно сделать нормально? Тогда единственный оставшийся мне выход - делать на асинхронных сокетах, как мелкософт показывает. Эх.
52 1531808
Как повышать свой скилл, если на работе мне в основном приходится обмазываться wpf? Просто я боюсь, что в случае чего мне просто некуда будет податься с этим говном.
53 1531818
>>31736

>Не можешь в базовый протокол


>Даже с помощью супер высокоуровневых перделок для домохозяек


Первокурсники совсем дегроднули
54 1531829
>>31818
В какой еще базовый протокол? У меня свой с свистелками-перделками и несколькими уровнями, включая криптографический(я или в вашей ветке, или в нуботреде описывал его).
Да и я таки смог, действую по примеру https://docs.microsoft.com/en-us/dotnet/framework/network-programming/asynchronous-server-socket-example просто я не понимаю, что изначально делал не так. Вроде же все нормально и оно даже работает, но потом решаешь "стресс-тест" устроить запустив 10к клиентов, и оно сначала вообще ломалось, потом я таки догадался и запихнул один кусок в try-catch и оно не ломалось, но после подключения кучи клиентов очень долго думало и один некоторые клиенты отваливались не дождавшись ответа, а потом я решил из браузера покидать пакеты и почему-то мой сервер после 3 подключений именно из браузера 90% мощностей процессора съедал и 20 гигов оперативки куда-то улетало, я хуй знает с чем это связано и просто переписал на по примеру(ну не совсем по нему, сессии-хуессии и все остальное таки перенес, а то как-то не представляю как их методом можно организовать нормальную работу и разные протоколы) и внезапно оперативу даже с кучей клиентов даже 100мб не жрет, процессор загружен всего на 1%, опять же, хуй знает чому так. Вот мне и интересно же, чому так, может анон умный и знает где я в первой реализации обосрался.
55 1531837
>>31736
Ты хоть какую нибудь книгу читал? Не код, а сплошная дичь.
56 1531840
>>31829

>догадался и запихнул один кусок в try-catch и оно не ломалось


Ну это вообще пушка. Ошибки не так исправляют, так ты просто проглотил исключение.
>>31829

> 90% мощностей процессора съедал и 20 гигов


А чего ты ждал, один метод Purge может все ресурсы выкачать.
57 1531851
>>31829

>Не может в хеллоу ворлд на сокетах


>Высерает пласт текста на 2 абзаца


Очень интересно, сейчас всё прочитаю
58 1531853
>>31837
А зачем что-то читать, когда можно писать? Деды-то ничего не читали, а сразу писали, а потом для бак записывали что написали в книжки. Чем я хуже дедов-то?
>>31840

> Ошибки не так исправляют, так ты просто проглотил исключение.


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

> А чего ты ждал, один метод Purge может все ресурсы выкачать.


Ну, это я вроде понимал и потому каждый Purge после очистки тред усыплял же. Да и как я понимаю, если все потоки заняты, то таск с Purge хрен когда выполнится. Судя по отладке все съедал метод чтения у сессии, но я как не ебался так и не понял как его правильно сделать и, как уже сказал, все переписал на пример майкрософта и вроде как пока нормально работает.
59 1531857
>>31851
Если это так просто, то чего же ты не покажешь как надо?
60 1531859
>>31857
1. Ты не заплотил
2. Я пока еще не опустился до сярпа
61 1531865
>>31853

>Чем я хуже


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

>падало-то из-за отключения клиентов


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

>Ну, это я вроде понимал


Навряд ли. С использование тасков у тебя беда и 0 в понимании асинхронности. И выкинь финализатор ты им показываешь отсутствие знаний и напрягаешь лишний раз GC.

>не покажешь как надо?


Дай нормальное описание того, что тебе надо и я накидаю тебе на выходных пример.
62 1531892
>>31865

> 0 в понимании асинхронности


Я знаю...

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


Мне надо чатик с комнатками(т.е. не всем клиентам рассылается то что отправил кто-то а только тем кто в комнатке с этим клиентом, при этом может быть и общий чатик) и возможностью клиентов друг с другом общаться без лишних ушей, по кастомному бинарному протоколу с разными типами клиентов(кто-то админ и может забанить матершиника, кто-то просто может цветной текст делать, кто-то картинки отправлять, кто-то в муте и может только читать что в комнате), при этом чтобы сессия не завершалась если пользователь отвалился, а жила какое-то время на случай если человек переподключится и его клиент пришлет пакетик с нужной инфой.
Да и я бы таки все же не примеров кода хотел(потому что то что я накатал сейчас, как мне кажется, за 10-20 минут не напишешь), а действительно книжек, но сколько я не просил что тут что в нуботреде, никто ничего годного не посоветовал, а то что советовали это очередное Один клиент-один сервер, почитай до <EOF> , отправь аперкейсом и закрой сессию.
64 1532245
Поясните такую вещь, вот у меня есть класс и в нем поле, я хочу сделать его приватным, но при этом я хочу чтобы некоторые объекты, не являющиеся наследниками, таки могли его изменять. Как это реализовать не выпячивая наружу всем метод для изменения этого поля?
65 1532272
>>31892
ты изобрел IRC
66 1532276
>>32245
вообще странное требование, стоит подумать как сделать без этого гемороя.
конкретно по твоей ситуации мне видится вариант использования 2 интерфейсов, которые твой класс реализует 1 - публичный без метода, 2 - для некоторых наследников с методом
67 1532364
>>32245

>некоторые объекты


По каким критерия определяется дозволено ли иметь классу доступ?
68 1532615
>>32364
По критерию: Мне кажется что удобно было бы этим объектом иметь доступ к данным полям, но при этом другим объектам даже этого класса низя и а уж объектам другого класса - тем более.
69 1532627
>>32615
Модификатор private
70 1532641
>>32615
Хуйня какая-то а не критерий. Думай дальше.
71 1533515
>>32627
И как он поможет мне? Вот я сделал поле private, как мне теперь без рефлексии сделать так, чтобы объект класса B мог изменить поле класса A?
>>32641
Нормальный же. Скажем, вот у меня есть класс Enemy, и я не хочу создавать новый класс, который просто будет отличаться тем что имеет интерфейс какой-то, но хочу чтобы некоторые Enemy, например красного цвета, понижали скорость передвижения объекта класса Hero, при этом я не хочу вводить новый класс Effect, которые будут такой вот затычкой для этого всего. Хочу просто чтобы крассные Enemy имели возможность понижать скорость Hero и всё.
72 1533528
>>28262 (OP)
Может шапку пора уже обновить? Какой VS 2015, какой C# 6.0? А уж про совет почитать Professional ASP.NET MVC 5 я вообще молчу, есть намного свежее издания, вы совсем говно мамонта советуете. Не все новички могут додуматься найти более свежие версии книг, пожалейте этих людей, обновите шапку!
73 1533556
>>33528

>Какой VS 2015, какой C# 6.0



Ты че несешь? До сих пор миллионы проектов собираются в восьмой студи и/или под старые версии языка. Пятнадцатая до сих пор не может в стабильную работу, не говоря о новейших релизах. Хуяк-хуяк продакшн зумеры не нужны.
74 1533695
>>33515
Ну ты можешь, например, накладывать баффы/дебаффы на юнита (этим должен заниматься какой-нибудь менеждер, а не сами юниты) в зависимости от условий. А уже юнит считает свою скорость учитывая их. Можно еще посмотреть на паттерн visitor. А лучше поискать популярные решения в гейдеве, ты не первый, кто пишет игру, наверняка есть бест практисес.
75 1533790
>>33515

>Не хочу


Мало ли что ты хочешь
76 1533835
Шарпаны, а еще такой вопрос, как лучше реализовывать свой бинарный протокол с несколькими уровнями? Я просто погуглил-погуглил и что-то не нашел примеров на шарпе, кроме плоских протоколов вида: [t,[payload]delim], где t- тип пакета, payload данные и delim - байтик конца пакета. Это как-то тривиально и я так не хочу, я хочу так: [0xff,[t[payload]userID,hash[salt],],0xff], при этом все что между ноликами зашифровано моим супер алгоритмом(с помощью xor'а), чтобы злыдни не прознали что на сервер приходит. Ну так вот, а как собственно сервер должен понимать, что с пакетом делать, если ключ для каждого клиента свой? Я вот что имею ввиду, вот смотрите, я получил пакет, благодаря 0xff я предполагаю, что это, вроде как, не мусор, но ведь я из-за того что userID зашифрован не могу просто так полезть в БД и посмотреть там его ключик, чтобы расшифровать пакет и понять что с ним делать дальше. А если вынести userID наружу, то получится что какой-нибудь злой злыдень будет знать id пользователя и, как минимум, поймет что вот тот человек что-то там писал в этот мой супер чатик, а я не хотел бы чтобы кто-то знал что за клиент в мой чатик писал.
77 1534083
Бля посоны я сейчас ебнусь, что ему не нравится???????
https://dotnetfiddle.net/Widget/DmX0X3
78 1534100
>>34083
Что в статическом методе используется нестатическое поле.
79 1534104
>>34100
Я поставил статик лист, ошибка вроде пропала, но жопой чую что это неправильно. Как решить правильно?
80 1534158
>>33835
злыдень-шизоид, сейчас бы на интерпрайз языке писать протоколы, эх блять, где же мои кресты...
>>34083
не нравиться, что ты читать не умеешь. Тебе компилятор все написал.
81 1534785
Почему нельзя сравнить типы данных? Мне надо проверить, есть ли хороший корень у числа, если число после нахождения корня - целое, значит у числа хороший корень. Но здесь какие-то странные ошибки выдаются
82 1534809
>>34785
Блин, я видимо с JS попутал, тут typeof чё-то другое. Ну а как тогда с этой же логикой можно сравнить типы данных?
screen-0002.png48 Кб, 967x623
83 1534811
>>34785

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


Сколько тебе лет? Ты в курсе, что есть как минимум два нормальных способа проверить целое ли число? Нахуя ты микроскопом забиваешь гвозди?
84 1534816
>>34811
Я уже понял как сделать грамотнее, сейчас в принципе интересует, есть ли как в js такое сравнение типов? Есть is as, но это только с ссылочными типами работает
85 1534922
Короче, можно ли как-то вашу интерпрайз парашу превратить в няшный?
Просто кресты отвратительны, ваша параша поприятнее во многих моментах, но блядское ООП всюду, еще и это говно со сборкой мусора, IL, необходимостью тащить всякое говно чтобы просто консольное приложение запустилось и т.д.

Поясню что я хочу:
using System;

bool IsOpHui => true;

void main(){
Console.WriteLine("Hello world");
}

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

Вот как добиться подобного эффекта?
86 1535001
>>34922
Шарп это язык для крупных приложений а не для хеловордов, попробуй го
87 1535019
>>35001
Так мне и нужно для крупных приложений, только без такой жесткой привязки к ООП. Шарп во всем остальном меня устраивает, кроме того что для того чтобы 1 блядскую функцию захуячить нужно создавать отдельный класс, а если будешь в том же классе хуячить на тебя будут смотреть как на дебила, ведь ООП же, нужно для всего свой класс сделать, иначе не тру, и вообще логику отдельно представление отдельно, модель отдельно, и похуй что ты просто дублируешь данные и из-за этого у тебя просто какое-то говно вместо решения задачи, MVVM и MVC же, как ты можешь не запилить отдельный класс экшенов, а данные не забиндить, вместо того чтобы просто менять их по своему желанию в кнопочке, умные же дяди говорят что так надо делать, и плевать что это неудобно, делай как сказали и не выебывайся.
88 1535097
>>35019

>ООП язык


>А можна без ООП???7


Говорю же - попробуй го какой-нибудь
89 1535100
>>35019
Скажи честно, ты студент или стажёр?
90 1535103
>>35097
Ну блин((( Шарпик таки очень удобный во всем что не касается ООП. А го я посмотрел и это какой-то джаваскрипт. Видимо придется с крестами ебаться.
91 1535110
>>35100
Я распиздяй, который уже получил вышку, постажировался, поработал кодером и понял что именно работать кодером - не мое(я не могу без творческой свободы что-то делать, не могу когда есть дедлайны, не могу в команде работать), но писать что-то свое все равно хочется.
92 1535115
>>35110
Действительно, кодинг не твоё
93 1535127
>>35115
Не кодинг совсем, а именно работа кодером. Скажем, олимпиадки в вузе мне нравились, нравится свои штуки делать, нравится на кодворсах всякое решать. А вот работать, ну такое.
94 1535371
>>35103

> удобный во всем что не касается ООП


А что в шарпе не ООП? inb4 linq
>>35103

>c крестами ебаться.


Так они тоже ООП. Хочется функциональщины иди в F#/Haskell или чистый C.
95 1535555
>>35371

> Так они тоже ООП


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

> А что в шарпе не ООП


Структуры, например. Да много вообще всяких фишек которые именно к ООП не привязаны. Опять же, мне просто не нравится что нужно для всего делать класс(а класс, в моем понимании должен быть чем-то семантически оформленным, и именно что объединяющим класс задач которые решает объект класса, например чтение строк, запись в файл, взаимодействие с сетью и т.д.), при этом еще и в неймспейс запихнуть. На кой? Вот почему просто нельзя ебануть функцию внутри неймспейса и жить себе счастливым, нет тебе для этого нужно сделать класс и получается что у тебя в коде появляются статические классы, со статическими функциями которые по сути выполняют роль неймспейсов и являются дурным тоном для всех ООПшников.
96 1535568
>>35555
Ты или шизик какой-то или вообще не понимаешь как шарп работает.
Ну хуле, не нравится так ебашь все в Main()
97 1536048
Есть вопрос - как в шарпе можно наиболее удобно организовать глобальные переменные? А то как ни пытаюсь сделать, постоянно очущение, что делаю через жопу и можно проще. (Если что, я пишу на C в основном, шарпом приходится пользоваться в силу обстоятельств)

Всех кукаретиков с ответами вида "не делай глобальные переменные", "у тебя неправильная архитектура", "глобальные переменные эта плоха, эта низзя" прошу заранее пройти нахуй.
sage 98 1536071
>>36048
public static class ...
{
public const ...

public const ...

.....
}
99 1536141
>>36048
Если именно переменные, то
public static MyVars{
public static int a;
public static int b;
...
}

Это кстати еще одна хуйня из-за которой я бомблю с шарпа. Но меня уже назвали шизиком, потому не буду высираться, но просто, блядь, действительно был бы годный язык, если бы ООП было одной из, а не основной парадигмой. Столько удобных фитч из коробки, синтаксис не так перегружен как у крестов, огромная библиотека на все случаи жизни, если бы ООП сделали необязательным, цены бы не было.
100 1536208
>>36141
Так пиши на питоне
101 1536499
>>36208
Не хочу. Хочу на шарпе. Ну или чтобы в Си завезли все что может шарп, только без ООП.
103 1536673
>>36499

У тебя на группировку по смыслу аллергия?

Тебе нужно обязательно чтобы стопицот хуиток общей кучей на нулевом уровне без разбора лежали?
104 1536851
>>36499
Ты третий день в треде срешь. Тебе уже посоветовали фшарп.
105 1536892
106 1536906
>>36673
У меня аллергия на необходимость плодить сущности без необходимости. Зачем мне делать отдельный класс, если он не будет переиспользоваться и вообще не особо несет в себе смысла, кроме как выполнить 2,5 функции. Так бы я просто ебанул эти 2,5 функции и все, когда нужно вызвал, когда не нужно не думаешь о них.
>>36851

> фшарп


Не советовали. Мне только про Го говорили. Посмотрю этот твой эфшарп.
107 1536908
>>36048
csharpindepth.com/articles/singleton
image.png2 Кб, 371x163
108 1536918
Есть проблемы с виузалкой, заместо русских символов выводятся вопросы, как это можно пофиксить? Нашёл эту статью, но где скачать на сайте майкрософт apploc.msi не нашёл
https://support.microsoft.com/ru-ru/help/907291/question-marks-unexpectedly-appear-instead-of-localized-characters-whe
Спасибо
109 1536936
>>36906
Ты ещё и пиздоглазый
>>35371
110 1536938
>>36936
Зачем ты меня обзываешь? Ну не заметил или забыл уже из-за того что большую часть времени не советовали что-то а доказывали что ООП нужно.
111 1536939
>>36906

>Зачем мне делать отдельный класс, если он не будет переиспользоваться и вообще не особо несет в себе смысла, кроме как выполнить 2,5 функции


Ну так, блядь, не делай
У тебя походу вообще 0 понимания проектирования и ООП, зато своим охуительным мнением который день в тред срешь.
112 1536945
Я сениор-хуениор С++ разработчик, хочу выучить шарп полноценным вторым языком, т.к. некоторые вещи в дотнете сделаны в гигатонны раз проще, чем дергать их через Winapi.

Есть что-то в мире типа книг "C# для умеющих программировать"?
113 1536946
>>36939

> Ну так, блядь, не делай


И что прикажешь, прямо в классе какого-нибудь юнита каждому объекту явно указывать где лежат ресурсы с ним? Это же как раз не по ООПшному. При этом делать отдельный класс, который будет вызывать только 1 функцию: загрузи ресурсы из этого файла, это пиздец как тупо.

> 0 понимания проектирования и ООП


Ну, моего понимания ООП достаточно, чтобы считать его в большинстве ситуаций перегруженым говном, а его адептов - каргокультистами, которым ООП нужно ради самого ООП. Ну а проектирование это вообще отдельная тема, я, в отличии от тебя, смотрел исходники того же net core и могу с уверенностью сказать, что все это же на каком-нибудь питоне можно было бы написать элегантнее.
114 1536959
>>36946
Так шёл бы в какой-нибудь тред без ООП: раст, хаскель, тред любого фп языка. Что ты здесь забыл?
115 1536964
>>36945

>Есть что-то в мире типа книг "C# для умеющих программировать"?


зачем? если ты умеешь программировать, то просто берёшь и начинаешь писать решение своей задачи на шарпе. гуглишь лучшие инструменты для этого на шарпе. всё. если ты до этого хорошо на крестах писал, то на решетке будешь так же хорошо писать, просто беспокоиться нужно о меньшем количестве вещей.
116 1536973
>>36918
Забыл сказать, это визуалка 19
117 1536984
>>36964
я сейчас так и делаю, но это достаточно ублюдочно получается без базы о всяких там IDIsposable, GC и прочей object model
118 1537000
>>36984
если ты в своих задачах зачем то обращаешься к GC, то не лучше бы тебе эту задачу на крестах это делать и в шарпе дёргать через pinvoke?
119 1537006
>>36946
Съеби уже, стажёр вечный
120 1537010
>>37006
Н-н-н-о я же просто школьник.
>>36959
Мне нравится шарп во множестве аспектов, кроме ООП. Не думаю что я один такой на весь сосач. Вот и хотел узнать, может кто знает альтернативу близкую к шарпу, но при этом без ООП. Видимо такой нет, к сожалению.
121 1537022
>>37010

>Люблю хуярить собак палкой, но мне нравится, что они визжат, а ещё не нравится палкой махать — рука устаёт.


>Я вот думаю, может есть что-то похожее, но без визжания и махания?


Перекатывайся уже в хаскель, если хочешь ФП с GC, или в ржавчину, если хочешь отсутствие и ООП и GC.
122 1537030
>>37010
а что не так с ООП? особенно в шарпе с его сладким синтаксисом
мимопроходил
123 1537037
>>37000
я про базовые вещи
124 1537043
>>37037
зачем тебе в базовых вещах к GC обращаться? с IDisposable тоже всё просто. оператор using автоматически за тебя его вызовет по выходу из скоупа. зачем тебе целые книги об этом читать? но ладно, так беседа может в срач скатиться. я просто никогда не видел практической пользы от книг. всего ты всё равно не запомнишь, а нужную информацию непосредственно при необходимости всегда можно поднять на stackoverflow, благо коммьюнити у шарпа на объяснения не скупится.
125 1537044
>>37030
ООП — порождение макакинга и ебанутости людей: "Одноклеточное -> простейшее многоклеточное -> земноводное -> макака -> человек". В итоге у человека есть аппендикс, копчик, иногда другие генетические проблемы. Код ДНК вырожденный — триплеты онли; никаких utf-4 кодировок, где часть можно закодить одной парой или двумя парами, онли триплеты, как я уже сказал. Программы с ООП страдают теми же проблемами.
126 1537046
>>37044
что? даже если проводить такую параллель, то тут проблема не самого ООП, а его неграмотного использования. если бы аппениксы и копчики были вынесены в интерфейсы, то проблем бы не было, если бы человек их не наследовал. Хотя тут конечно можно доебаться непосредственно к ООП шарпа, неподдерживающего множественное наследование, но всё равно играя интерфейсами и абстрактными классами не пришлось бы реализовывать тыщу раз интерфейсы аппендиксов и прочих рудиментов.
127 1537051
>>37046
Проблема в том, что ООП поощряет аппендиксы и копчики, а не в том, что от них можно избавиться при грамотном написании кода. Макакич не будет тебе делать абстрактный класс — он просто ебанёт наследование от макаки к человеку.
128 1537061
>>37051
всё равно не вижу в этом проблемы ООП. пока что всё, что ты говоришь, что ООП может привести к ебанутой архитектуре из за неграмотности программиста. это всё равно, что обвинять кухонные ножи в том, что ими алконафты иногда убивают людей. чё теперь, ложкой мясо резать? может быть, ты можешь предложить парадигму программирования получше для задач, предполагающих постоянное состояние приложения и работу с данными?
129 1537063
>>37030
То что оно не везде нужно и там где оно не нужно оно создает кучу лишнего кода из-за того что все нынешние реализации ООП лютое говно, которое построено на костылях и костылями погоняет. Ко всему выглядит неэстетично, порождает завышенные требования к аутистичности программиста, работает в большинстве случаев медленнее, если делать так как говорят гайдлайны и умные дядьки, ко всему оно просто неочевидно работает в большинстве случаев и из-за этого обосраться с ООП намного легче чем без него.
130 1537067
>>37010

>Я же просто школьник


Оно и видно
131 1537074
>>37063

>То что оно не везде нужно и там где оно не нужно оно создает кучу лишнего кода


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

>все нынешние реализации ООП лютое говно, которое построено на костылях и костылями погоняет


почему?

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


вкусовщина

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


чего? наверно от реализации конечно зависит, но по крайней мере в шарпе неочевидного ничего не помню. документация по языку в помощь.
132 1537078
>>37061
Нет наследования (или оно реализовано через раздраконивание ануса, а не одним знаком) — нет проблем. И для постоянной работы с состоянием и данными используют DOD, а не ООП, потому что ООП ускоряет только работу с кодом, а работу кода может разве что замедлить. Чтобы реализовать DOD в ООП языке, ты должен забыть всё, чему тебя научило наследование.
133 1537082
Итт школьники и стажёры поясняют почему проверенные десятилетиями продакшна решения не нужны, я правильно понял?
Ну ладно, я сам таким в 17 был, когда для себя пистон открыл. А потом с первым проектом серьезнее мувисерчера пришло понимание необходимости ООП, ФП и прочих подходов к структурированию программ на уровне синтаксиса.
134 1537118
>>37082

> КТО-ТО ХОЧЕТ ИСПОЛЬЗОВАТЬ ОГРОМНЫЙ ФУНКЦИОНАЛ КОТОРЫЙ ПРЕДОСТАВЛЯЕТ .NET НЕ ДЛЯ ТОГО ЧТОБЫ ДЕЛАТЬ ОЧЕРЕДНУЮ КРУДОШЛЕПСКУЮ ХУЙНЮ НА ГАЛЕРЕ! ДА КАК ОНИ СМЕЮТ ПРОСТО ПОДУМАТЬ ОБ ЭТОМ! Я ВОТ ДЕЛАЮ ПО 10 КРУДОШЛЕПСКИХ ХУЕВИН В НЕДЕЛЮ И ВЫ ТАК ДЕЛАЙТЕ, ИНАЧЕ ВЫ НЕ ПРОГРАММИСТЫ



Блядь, а меня потом шизиком называют. Мне, блядь, нравится что шарп может из коробки, но при этом мои задачи как раз не предусматривают ЧЕГО-ТО БОЛЬШОГО. Вот вы же выпросили себе ML, хотя нахуй он сдался в вашем говнопрайзе?, а я хочу вся библиотека шарпа и его приятный синтаксис не были привязаны к ООП, что в этом такого странного-то? Т.к. ты макака, я для тебя большими буквами напишу: ЕСТЬ ЛЮДИ, КОТОРЫЕ НЕ РАБОТАЮТ НА ГАЛЕРАХ, ПРИ ЭТОМ ОНИ ХОТЯТ ИСПОЛЬЗОВАТЬ ШАРП ИЗ ЗА ОБИЛИЯ ПЛЮШЕК, ОДНАКО ВСЯ ЭТА ПОДЗАЛУПНАЯ СРАНЬ С ООП ИМ НЕ НУЖНА И В ИХ ПРОЕКТАХ ПРОСТО УВЕЛИЧИТ КОЛИЧЕСТВО СТРОК КОДА, А СЛЕДОВАТЕЛЬНО ВРЕМЯ НА РАЗРАБОТКУ. Может быть так дойдет.
135 1537133
Задача следующая: нужно расшифровать текст зашифрованный неизвестным ключом шифром Виженера.
Как это сделать?
136 1537157
>>37118
Назови не-ооп плюшки шарпа, которых нет ни в одном другом языке, раз так дрочишь на них. Линк и тот всего лишь кастрированные списочные функции из любого ФП-языка, лол.
Основная сила шарпа в ООП и платформе с кучей готовых либ, а не в синтаксическом сахаре, которого и в других языках навалом. Не нравится ООП - уебывай в тред ФП, там иногда фшарперы проскакивают.

>В их проектах


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

>Выпросили себе ML


Что ты несёшь блядь господи.
137 1537165
>>37118
Заебал, тред по скале 2 блока ниже
138 1537191
>>28262 (OP)
Анон, есть один корпоративный git-репозиторий с парой сотен grpc'шек, каждая с несколькими протобафными dto'шками.
Я хочу всё это запихнуть в отдельные nuget'ы, чтоб при каждом обновлении git-репозитория тимсити мне все это собирала и пушила во внутренний nuget-репозиторий.
Как это грамотнее сделать?
Пока придумал только такое:
- для каждого grpc создавать папочку с проектом
- копировать шаблоны .csproj, AssemblyInfo.cs и .nuspec в эту папочку, проставляя названия пакета, версию и зависимости
- компилировать grpc и protobuf'ы в .cs'ы
- вписывать вновь созданные проекты в .sln
- билдить все проекты в сборки netstandard2.0, собирать .nuget'ы и пушить в репу

Какие подводные?
Можно ли сделать кучу сборок из единого .csproj проекта?
Можно ли это упростить как-то?
139 1537258
>>37133
сходить на лекцию по истории крипты или попросить у одногруппников фото презентации
140 1537308
Анон, есть два солюшена, запускаю через райдер. В одном два проекта - сама консольная программа на последний дотнет, в другом nunit тесты.
Во втором солюшена все то же самое.
Но - почему-то в первом случае тесты видят неймспейс программы (т.е можно через using достучаться), а во втором нихуя, не видит. В чем может проблема быть?
images.jpg7 Кб, 299x168
141 1537344
>>37308
нужно создать третий солюшен и запустить
142 1537363
>>37308
Загляни в csproj с тестами, есть ли там ProjectReference на проект с программой?

Еще могут TargetFramework не совпадать
144 1537710
Снова привет, шарпаны. Я тот анон что спрашивал про сервер. Короче, я таки сделал что память никуда не утекает и даже если куча сессий запущена процессор не жрет все ресурсы, и даже не на сокетах, а переписал на TcpClitnt(оказалось что я просто забыл закрыть сессию когда клиент отвалится и сессия пыталсь до последнего что-то прочитать из закрытого сокета, а т.к. все было в try-catch ошибка не вываливалась и я только поняв что резкий прирост потребления ресурсов появляется после отключения сессии догадался ее заканчивать, вот я бака).
Даже чатик между клиентами реализовал по своему супер протоколу. Принес преподу, а он говорит, что это как-то не серьезно: второй курс и просто байтики прочитал-отправил, потому нужно, чтобы клиенты после регистрации и всех обязательных операций могли по своим кастомным протоколам общаться, типа они сами могут описать его у себя в файлике, отправить друг-другжке, а потом общаться этим протоколом, если захотят, а не моим.
И я чет не понимаю как это-то сделать. Типа у меня завязано принятие клиентов на сервер по моему супер протоколу, все остальные пакеты я считаю мусором еще на моменте если первые два байтика не единички нолик и сессию что присылает мусор даже не создаю, а тут нужно как-то понять что вот это не мусор вовсе и я не совсем понимаю как. Конечно у меня появилась идея, типа добавить класс ClientInfo, в который вынести из обработчика сессии всю инфу о клиенте, и реализовать такую вот логику: Клиент сначала входит, отправляет все пакеты регистрации-авторизации и если все проходит нормально, то я в классе ClirntInfo ставлю флажок что: Это свой пацан, можно все подряд принимать, только вот я не понимаю, а как мне, если протокол может быть любой, понять кому сервер должен переправить пакет, потому что у меня то кому отправляются данные указывалось в пакете, а значит я не смогу узнать кому переправить данные, если во-первых не знаю структуру протокола, во-вторых, если таки знаю, в протоколе не указан получатель.

К чему я это все написал? На самом деле просто изложив в письменной форме проблему мне самому легче ее проанализировать, потому можете не обращать внимания, конечно от книжек и советов мудрых я не откажусь.
144 1537710
Снова привет, шарпаны. Я тот анон что спрашивал про сервер. Короче, я таки сделал что память никуда не утекает и даже если куча сессий запущена процессор не жрет все ресурсы, и даже не на сокетах, а переписал на TcpClitnt(оказалось что я просто забыл закрыть сессию когда клиент отвалится и сессия пыталсь до последнего что-то прочитать из закрытого сокета, а т.к. все было в try-catch ошибка не вываливалась и я только поняв что резкий прирост потребления ресурсов появляется после отключения сессии догадался ее заканчивать, вот я бака).
Даже чатик между клиентами реализовал по своему супер протоколу. Принес преподу, а он говорит, что это как-то не серьезно: второй курс и просто байтики прочитал-отправил, потому нужно, чтобы клиенты после регистрации и всех обязательных операций могли по своим кастомным протоколам общаться, типа они сами могут описать его у себя в файлике, отправить друг-другжке, а потом общаться этим протоколом, если захотят, а не моим.
И я чет не понимаю как это-то сделать. Типа у меня завязано принятие клиентов на сервер по моему супер протоколу, все остальные пакеты я считаю мусором еще на моменте если первые два байтика не единички нолик и сессию что присылает мусор даже не создаю, а тут нужно как-то понять что вот это не мусор вовсе и я не совсем понимаю как. Конечно у меня появилась идея, типа добавить класс ClientInfo, в который вынести из обработчика сессии всю инфу о клиенте, и реализовать такую вот логику: Клиент сначала входит, отправляет все пакеты регистрации-авторизации и если все проходит нормально, то я в классе ClirntInfo ставлю флажок что: Это свой пацан, можно все подряд принимать, только вот я не понимаю, а как мне, если протокол может быть любой, понять кому сервер должен переправить пакет, потому что у меня то кому отправляются данные указывалось в пакете, а значит я не смогу узнать кому переправить данные, если во-первых не знаю структуру протокола, во-вторых, если таки знаю, в протоколе не указан получатель.

К чему я это все написал? На самом деле просто изложив в письменной форме проблему мне самому легче ее проанализировать, потому можете не обращать внимания, конечно от книжек и советов мудрых я не откажусь.
145 1537790
>>37710

>можете не обращать внимание


>от мудрых я не откажусь


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

TPC клиент на шарпах, что за долбоеб
146 1537941
>>37790
А на чем я должен делать, если в ВУЗе только шарп преподают?
147 1537985
В сисярпе есть records?
148 1537996
>>37985
Есть.
149 1538003
>>37996
А в чем их смысол? В таких строгих ооп язычках вместо них классы.
150 1538009
>>38003
Так класс/структура это вариант рекорда, не?
151 1538020
>>38009
Да, но как в ООП стиле одновременно применять и классы, и рекорды? Одних классов достаточно.
152 1538155
Вы тупые. Вам когда-нибудь об этом говорили?
153 1538186
>>38155
Да каждый тред какой-то неосилятор кукарекает.
sage 154 1538189
>>38020
struct-ы очень полезны как Value Objects например
155 1538193
>>38189
Я не про структуры.
156 1538201
>>38193
а, это новая фича
https://blog.cdemi.io/whats-coming-in-c-8-0-records/
удобно конешно
157 1538202
>>38020

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


А как можно применять не одновременно, если класс это и есть рекорд с плюшками.
158 1538206
>>38202
Я не в том смысле.
Когда следует юзать records, а когда class?
image.png89 Кб, 701x537
159 1538226
160 1538230
>>38226
Но это как бы понятно, что в классах мы тупо ссылку присваиваем и обеими указываем на сейм обжект.
161 1538233
>>38206
Ладно, вскрываемся. Что ты называешь record'ами?
162 1538235
>>38233
Это новая фишечка из 8 версии, еще она буит в яве в марте.
163 1538256
>>38235
Тогда в чем смысл вопроса есть ли они в шарпе?
164 1538402
>>38256
Ну плюсовики иногда шутят, что в с++ структур нет. Вот я и шутканул.
165 1538999
Аноны, я полный ноль в программировании не так давно вкатился в си шарп
У меня возник вопрос
На чём создавать WPF приложения?
Помимо визуал студио
Я вот работаю в редакторе кода -- vs code и там, конечно, такое сделать не получится
166 1539021
>>38999
Почему не получится? Кодом, xaml-ками. Пиши и будет работать
167 1539032
>>39021
Серьёзно?
Разве vs code на такое способен?
Это же редактор кода, а не полноценная среда разработки
Поправь, если не прав
168 1539034
>>39032
Ну, ты хоть в блокноте можешь писать, если у тебя все либы фреймврока есть. Какая разница? Да, никакого драг-н-дропа, но кто тебе мешает справляться без него?
169 1539039
>>39034
В общем, я пока слишком нубасик
Наверное, мне лучше пока забыть о примитивных приложениях и изучить базовый синтаксис
170 1539292
>>39039
Лучше всегда сначала изучить синтаксис. А приложения в студии действительно проще делать, хоть впф, хоть формы, хоть ксамарин. Я её тоже не люблю, но куда деваться
171 1539317
Можете подсказать литературу по структурам данных? На метаните вообще не понимаю что написано
172 1539321
>>39034
А разве там компиляция не через жопу консоль будет с ручным пердолингом через baml? Или code умеет собирать сама впф поректы?
173 1539324
>>39317
Иди в тред компутер саенс, там тебе пояснят за литературу. А у нас обходятся википедией и мсдн.
174 1539346
>>39317

>На метаните вообще не понимаю что написано


забей тогда на CS. Если на метаните не понятно, то в других источниках точно ничего не поймешь
175 1539353
>>39346
Окей, но это мне ведь не помешает в изучении коллекций? Или лучше разобраться со структурами?
176 1539523
>>39317
"Грокаем что-то там" почитай, оно с картинками
177 1539534
>>39523
Грокаем алгоритмы? Думал там только про алгоритмы, спасибо
sage 178 1539893
Война это мир
Сисярп это рабство
Незнание альтернатив мелкософту сила
1984
179 1540193
>>39523
Да, крутая книга, супер понятно объясняет, спасибо ещё раз
180 1540218
Нубский вопрос. Как оптимизировать вижак, чтобы он грузился быстрее, чем за минуту?
181 1540225
>>40218
Купить ссд
182 1540353
>>40218
Взять VSCode и кодить в нем. Вижак нужен только когда ты отлаживаешь программу, чтобы ловить утечки и смотреть как ресурсы распределяются.
А вообще, я не понимаю, что такого в том, чтобы грузился он долго, ведь его один раз запустил и не закрываешь, пока работу не доделал.
183 1540559
Мёртвый тред.
sage 184 1540563
Мертвого языка.
185 1540705
>>36499
Си и так может всё, что может шарп, и ещё в десять раз больше. Что тебе ещё нужно-то, я не понял?
186 1540740
>>39321
Можно и через консоль, можно и скрипт автоматизированный написать скачать
187 1540758
>>40705

>десять раз больше


всмысле только в десять? C - язык богов, он может АБСОЛЮТНО все. Нам не нужны управляемые модули с MSILом, только расходование ресурсов. Там не нужны типобезопастные типы, С боги и так пишут все правильно. Да даже IDE нахуй не нужна - Notepad наш инструмент.
>>40559
>>40563
>>39893
полностью поддерживаю. Потраченные годы на этот говноязык мелкософта
>>40218
удалить
188 1540762
>>28262 (OP)
>>40758

>говноязык


Что он тебе сделал, лол. Я рад что начал именно этот язык учить, работаю в энтерпрайзе, уютный офис, халявная еда, нормальная зп. Не понимаю претензии
189 1540781
>>40762
Это местный шиз, забей
190 1540806
Ребзя, посоветуйте хороший мануал по TPL. Чтобы нормально было расписано про ConfigureAwait(false)
191 1540844
>>40353
Когда уже починят anti-alising? Шарам итак пизда от монитора тут ещё и мыльное говнецо, вместо шрифтов.
192 1540883
Как вы безопасно элементы класса в лист записываете? Я чё-то с этими гетенумераторами совсем запутался.
193 1540886
>>40883
https://pastebin.com/pMjXaXve
На всякий случай говнокод закинул
194 1540887
>>40883
Ебать дебил, ты класс сам в себя засовываешь.
195 1540894
>>40887
А как объект засунуть в _numbers?
196 1540926
>>40894
Вынеси в отдельную функцию, лол.
Ты понимаешь же, что все наебывается из-за того что у тебя рекурсия, потому что ты в конструкторе всю эту хуйню делаешь? Просто поставь точку останова в конструкторе и посмотри как оно проиходит по шагам.
197 1540934
>>40883
чел, ты...
198 1540938
Няши, у меня тупой вопрос. Короче, смотрите, я сделал событие в базовом классе, сделал несколько наследников. Делаю 2 класса, которые подписывается на это событие у наследников, но блджад, почему-то один класс подписывается и делает что надо при срабатывании события, а другой - не подписывается. У обоих классов подпись происходит в конструкторе. Я долго ломал голову, почему так происходит, и пришел к выводу: Всему виной асинхронность(потому что других причин не нашел), сделал те классы что генерируют событие потокобезопасными синглтонами и все нормально стало происходить. Но блядь, мне кажется что это я какую-то хуйню сделал, потому что ну не дело же каждый раз делать синглтон хуячить на случай если тот класс на который нужно подписаться еще не создался. А как тогда правильно делать? Просто вот мне захотелось свое логирование сделать своему супер серверу, а не брать Serilog, и я хотел чтобы мой лог просто подписывался на события, типа: пришло сообщение, клиент отвалился, сервер закрыл сессию; но как я уже сказал, пока я "сервер" не запихнул в синглтон почему-то логер не хотел подписываться, хотя мой обработчик сессий ровно по тому же принципу работает что и должен был логгер, но он на эти же события нормально подписывался и обрабатывал.
image.png62 Кб, 686x639
199 1540946
>>40934
>>40926

Хуйня какая-то
.png21 Кб, 557x647
200 1540969
>>40946
>>40883
Лучшая реализация коллекции интов что можно придумать. Дарю просто так.
201 1540973
>>40969
Cпасибо, схоронил
202 1540991
>>40946
Ты троллишь тупостью?
Короче, лень объснять, читай https://docs.microsoft.com/en-us/dotnet/api/system.collections.ienumerable?view=netframework-4.8
203 1540993
>>40991

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


И как мне это поможет?
Ну IEnumerable помогает использовать foreach для экземпляров класса, и шо
204 1540996
блять, поясните долбаебу как обратиться к уже созданному экземпляру класса? Я создаю экземпляр класса в одном классе, записываю данные в переменную, мне нужно вызвать этот экземпляр в другом классе. Уже два дня не могу решить эту проблему, пиздец.
.png23 Кб, 534x815
205 1541001
206 1541004
>>40996
Попробуй почитать любой учебник, модификатор паблик
207 1541021
Хм, а я тут подумал насчет вот этого >>40996 вопроса и у меня возникла странная мысль: А как вызвать метод какого-то класса из другого класса, не создавая объект того класса? Скажем, вот у меня класс А, он имеет метод: печатать строку; вот у меня класс Б, он хочет напечатать строку методом из класса А, но при этом не хочет никак с классом А напрямую взаимодействовать и даже через интерфейсы и промежуточные классы. Разве нельзя просто как-нибудь из памяти достать указатель на функцию класса А и что-то сделать с ней в классе Б? Конечно, наверное это все какая-от хуйня, и вообще такие вещи рефлексией делаются, но, как я читал, использование той же рефлексии может к непредсказуемым последствиям привести, если ты в опциях компиляции решишь оптимизацию включить, да и раздувает размер сборки.
sage 208 1541037
>>41021
static
209 1541041
>>40969

>Лучшая


Ну тогда сделай класс еще и потокобезопасным.
210 1541053
Откуда такой наплыв вкатывальщиков в тред блядь
211 1541062
>>41041
А что там делать? Добавил просто объект синхронизации и местах где кто-то может ресурс затребовать и ебанул lock.
212 1541063
>>41053
В чём проблема? Тебе нравился мёртвый тред?
213 1541073
>>41063
Лучше мертвый тред чем засраный
214 1541092
>>41073
Ты мне лучше скажи, что он хотел сказать >>40991
215 1541107
>>41092
Я хотел чтобы ты посмотрел как реализуют коллекции умные люди, потом посмотрел на свою и больше так не делал.
216 1541109
>>41107
Я посмотрел открытые поля, и понял, что msdn сосёт, о чём ты
217 1541110
>>41109

>посмотрел на*

218 1541111
>>41001
Огромное спасибо! Я еще не до конца понял как это работает в твоем примере, но главное работает!
219 1541115
>>41053
Тебя ебет, козла ебаного? Хотим и задаем тут вопросы, пошел нахуй если чего - то не устраиват.
220 1541141
>>41092
Чтобы ты шел учебники читать >>41115
Так если я уйду, кто вам хуесосам тупорылым помогать будет?
221 1541239
Котаны, есть следующая проблема. Пишу виндоус формочки. У меня есть метод comboBoxSelectArrayType_SelectedIndexChanged(object sender, EventArgs e). Но если я пишу в другом методе строчку comboBoxSelectArrayType.SelectedIndex=2, то первый метод не вызывается. Как быть? Пробовал вызывать первый метод с аргументами this и EventArgs.Empty, нихуя не работает.
222 1541258
>>40969
найс ты с DefLessons урок с коллекциями копипастишь. Держи с полки пирожок.
>>41053
в воскресенье доучивают уроки и начинают мозги ебать на право и налево. типо такого >>41239
>>41073
двачую
223 1541285
>>41107

>как реализуют коллекции умные люди



Вот так:

List<int> numbers = new List<int>();

Или так:

int[] numbers = new int[] {0, 1, 2, 3, 4, 5};
224 1541296
>>41258

>DefLessons


Чё это? Не гуглится
225 1541326
>>41258

> DefLessons урок с коллекциями


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

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


Пиздос, мне бы такой вузик. Учим паскаль
227 1541724
>>41062
Мы вам перезвоним.
228 1542003
Нужны ли вообще делегаты? Редко с ними встречался ( хотя не особо много когда видел в своей жизни), такое ощущение что выполняешь одни и теже действия по несколько раз.
229 1542033
Сап двач, захотел вкатиться в шарпы и поэтому решил написать простой код для решения квадратного уравнение, расписав переменную для ввода с клавиатуры, она у меня не выводиться... В чем трабл подскажите( пик 1, 2)! если уберу текст, то спокойно выводит (пик 4 и 5.)
230 1542034
>>42033
Где ты присваиваешь значения a?
231 1542036
>>42034
А, я слепой
232 1542038
>>42033
Попробуй Console.WriteLine($"a = {a} ");
233 1542040
>>42038
>>42034
Да и лучше сразу конвертить ридлайн в переменную, зачем отдельная переменная?
234 1542043
Отвлекитесь от лаба2, есть серьеный вопрос.
Как слить два Linq Expression в один? То есть есть model => model.Field и field => field.Nested, нужно сложить их в model => model.Field.Nested.
Просто вызвать второй экспрешн от первого не канает, т.к. используемая библиотека для своей работы раскладывает переданный экспрешн, и единственный способ решить поставленную задачу - передать ей именно "model => model.Field.Nested". А у меня есть только model => model.Field и field => field.Nested.
235 1542048
>>42040
А не подскажешь как это написать?
236 1542049
>>42048
Подумай сам, это несложно, вся информация есть
237 1542050
>>42038
Вот так получилось) Спасибо
239 1542058
Какой оптимальный способ проверки вхождения одной коллекции в другую. К примеру есть:
List<int> listInt = new List<int>() { 1, 3 ,5 } - лист, который должен содержать другая коллекция
List<int> listIntTest1 = new List<int>() {1,3,4,6} - false
List<int> listIntTest2 = new List<int>() {1,3,5,7} - true
List<int> listIntTest3 = new List<int>() {1,2,4,8} - false
Как это можно реализовать без LINQ All?
240 1542060
>>42003
Погуглил события, видимо здесь и нужны делегаты
241 1542088
>>42003
Publisher-subscriber загугли, что это такое и поймешь зачем они нужны
242 1542095
>>42043
Ты сам то понял чего хочешь? Какаую-то хуйню написал. В общем, показывай код или иди нахуй.
243 1542103
>>42058
static public bool IsIntersects(IList<int> target, IList<int> second)
{
return target.Intersect(second).Count() == target.Count;
}
244 1542117
Как перечислить свойства всех экземпляров? Вот у меня допустим есть 2 экземпляра с разными номерами, надо вывести этот список.
Писать %объект_name%.Number естественно невозможно будет, если клиентов 100. Вот написал код, но это форич только для 1 экземпляра.
Спасибо
245 1542122
>>42117
foreach (var customer in customers )
{
Console.WriteLine(customer.number);
}

В общем, читай как работает foreach и не пиши хуйни.
246 1542135
>>42095
Метод имеет следующую сигнатуру:
Expression<Func<TIn, TOut>> Merge(Expression<Func<TIn, TMiddle>> first, Expression<Func<TMiddle, TOut>> second)
Принимая на вход m=>m.Field и f=>f.Nested, должен вернуть в точности m=>m.Field.Nested - любое эквивалентное ему по смыслу возвращаемое значение не подходит, нужна именно такая форма.
Не могу допереть как реализовать.
247 1542144
>>42122

>customer.number


По моему это ты не знаешь как форич работает
248 1542147
>>42144
Как знаешь, не мне лабу2 сдавать надо.
249 1542148
>>42147
Чел, ты ща у локальной переменной пытаешься найти свойство/поле намбер.
250 1542161
>>42148
У тебя коллекция List в которой хранятся объекты типа Customer, при перечислении этой коллекции тебе будут возвращаться объекты этого типа, у каждого такого объекта есть свойство Number. Но судя по твоим постам у тебя полная каша в голове, к тому же ты долбоеб непробиваемый, поэтому могу посоветовать тебе нахуй пойти.
251 1542164
>>42161
А, спасибо
252 1542333
>>42103
Сначала подумал, что за метод Intersect, потом понял, что это метод расширения, о котором за более полу года использования LINQ только узнал. Спасибо.
253 1542447
>>41021
Насчёт напрямую - разве что рефлексией, но есть вариант - делегаты. Передаешь в класс делегат через метод/конструктор и делаешь с ним что захочешь.
254 1542712
Аноны, подскажите глупому человеку в чем проблема, как мне сделать так что бы при изменении выбранного элемента из списка что-то происходило,
255 1542797
>>42712
Тебе же русским языком пишут, что событие может находиться только в левой части операции += или -=
Советую отталкиваться от слова событие и гуглить в эту сторону.
image.png1 Кб, 196x46
256 1543481
двачик что за херня с этим ебанным аспом, почему это такое говно?

я хочу сделать красивую кнопочку для контрольки fileupload но вот беда fileupload не поддерживает стили, то есть он конечно формально поддерживает но поверх все равно пыхает вот эту ебанутюу херню на первом пикриле
ну думаю бля костыльную херню надо исправлять костыльным кодом, написал что что типа
fileUpload : display none
и решил просто ссылаться на него через джаваскрипт который буду вызывать уже нормальной кнопкой, но вот херня, мне надо название файла, и если вы думаете что его мнжно взять просто через fileupload.filename то нет, потому что fileupload не задает page.postback и страница тупо файла не видит, думаю ну блять пиздец надо тогда вызвать page.postback через скрипт дописал и блять ЭТА ХУЙНЯ ВСЕЕ НЕ РАБОТАЕТ потому что скрипт и загрузка файла работают асинхронно и страница может все еще не видеть файла, пробовал уже тогда сделать просто input type = file эта хуреня тоже не подошла я уже пол часа пытаюсь как-то накостылять код на эту парашу, господи как же у меня горит от этой аспшной хуйни
костыль на костыле блеять, и костылем погоняет.
257 1543490
>>42712

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



Тебе в событие надо лямбду хуйнуть.
258 1543492
>>43481

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

https://primefaces.org/primevue/#/
259 1543501
>>43492
ты лучше скажи как мне получить postback по загрузке файла?
260 1543505
>>43501
>>43492
ладно не надо, я уже закостылял решение
261 1543629
Какой парсер HTML используете?
262 1543726
Блядь, объясните, как найти причину ObjectDisposedException? Я просто, блядь, не понимаю, был класс, в нем два сокета, один принимает сообщение и пересылает в другой, все было нормально, решил прикрутить БД, чтобы промежуточный объект контекста сохранял данные в БД, ничего там не диспозю, но, блядь, почему-то эндпоинт диспозится, я просто блядь не понимаю. Вот как и почему? Я даже, блядь, решил с точкой остановы посмотреть, выглядит так: Вот два сокета, как только первый биндится, у промежуточного объекта, который даже никак с ним не связан, просто диспозится сокет и все идет по пизде. Вот что это за хуйня? И еще эта ебаная студия, которая почему-то в проекте на 5к строк кода не может найти место где эксепшн возникает и просто валится с сообщением что он возник, заставляя меня как деда ебаного писать кучу хуйни вида Console.WriteLine("Зашли в метод Хуй класса Пизда"); Console.WriteLine("Вызвано событие Залупа класса Жопа"). Пиздец нахуй.
263 1543738
>>43726
Значит его диспозит GC. Попробуй использовать GC.SuppressFinalize на объекте который у тебя эксепшн вызывает, но это сомнительный костыль и проблема может быть в том, что у тебя этот объект объявляется не на глобальном уровне, а в каком-нибудь классе/методе который выходит из области видимости и поэтому диспозится GC.
264 1543744
>>43738
А можно как-то посмотреть что GC решил задиспозить? Вообще, наверное тупой вопрос, но может быть в студии есть какая-нибудь приблуда, которая бы отображала созданые мной объекты и их состояние в данный момент и в какой момент они задиспозились и все это вот?
Да и горит у меня из-за того что ну вот, работало же, 100 раз проверил, а сейчас я просто хочу считаную инфу в базу записать, а оно теперь не работает в том месте где работало.
265 1543812
>>28262 (OP)
Везде в вакансиях на дотнетчика указано базовое знание JS - на каком уровне его нужно для вката?
266 1543815
>>43812

> на каком уровне его нужно для вката


Можешь написать SPA любой сложности чисто на JS.
267 1543874
>>43812
На уровне знания React/Vue/Angular
268 1543878
>>43812
2+ года коммерческой разработки на JS.
15749385279560.jpg30 Кб, 512x512
269 1543968
>>28262 (OP)
иди нахуй пидр сишарповский
270 1543977
Вкатываюсь к вам прямиком из мира фронтенда реакта жса тса. Держу в курсе.
271 1544228
>>43977
Ну удачи. Наверное будет сложно, ведь во фронтенде думать не надо было
272 1544277
Я ща мозг нахуй сломаю с этими событиями. Ебабоба, вот есть делегат, я могу его нахуй вызвать в любой нахуй момент ( если уже сохранил туда методы ) А нахуя собственно события?
273 1544278
>>44277
ыааааыаыаыаыаыаыаыаыаы патписчики атписчики нипанятна
274 1544279
>>44278
Ещё не понятно, то EventHandler когда ивент объявляешь, то ли название другого делегата ыаыаыаыаыаыаыаыаыа
275 1544293
>>44277
События созданы для того, чтобы не надо было создавать методы для добавления/удаления методов из списка вызова делегата. С событиями ты создаешь один делегат и несколько событий связанных с этим делегатом, а компилятор дописывает за тебя методы для добавления обработчиков этих событий.
276 1544448
>>43815
>>43874
>>43878
Т.е. по сути джун-дотнетчик - это уже готовый джун фронтендер? А сверху еще бэкэнд надо знать?
277 1544452
>>44448
Вообще обычно учат шарп, к нему джс, а в итоге становимся фронтендерами, ведь шарп страдает
278 1544461
>>44452
вообще учат плюсы, а остальным хуй подтирают
279 1544476
Можно ли как-то в конструкторе добавлять в List<Class> экземпляр класса ?
То есть при создании экземпляра класса они добавлялись в List<Class>, а не в ручную каждый экземпляр добавлять в лист.
280 1544488
>>44476
Ну так передай в конструктор лист и добавь в конструкторе this в лист
Вот только нахуя тебе такой дерьмокод?
281 1544491
>>44488
А, вообще забыл что такое this.
А почему дерьмокод? Ну надо же хранить где-то пользователей, допустим, вот в листе удобно и сортировать, и форичить. Сказка же
image.png34 Кб, 459x452
282 1544499
>>44491
И у меня не видит этот лист в мейне. Всё публичное
283 1544512
>>44491
Потому что во первых не надо создавать зависимостей на ровном месте, во-вторых не надо раздувать функционал класса там где не надо. Это усложняет переиспользование кода
А в третьих это нечитабельно нахуй.
284 1544513
>>44499
Как ты к этому листу в мейне обращаешься? Если через тип, то и не будет видеть, т.к. лист - член типа. Если через экземпляр - то должно видеть
285 1544514
>>44512
да пусть помесит глинку, со временем поймет, что это говно. Все через это проходят
image.png25 Кб, 496x244
286 1544516
>>44513

>экземпляр


Ну customers, название листа, через него обращаюсь.
287 1544517
>>44516
customers - член типа, а не экземпляр. Создай экземпляр и обращайся к его членам
.png61 Кб, 1793x865
288 1544532
Блядь, пиздос шарп странный. Короче, я вчера писал про ObjectDisposedException. Короче, нашел в чем была проблема. В классе который обрабатывал запрос при попытке записать пришедшие данные вылетал эксепшн, из-за того что я недоглядел и пытался сохранять строку в виде класса. Так вот, блядь, почему диспозится сокет, когда эксепшен вообще в другом классе и сокет никак не связан с тем что там происходит?
Я даже картинку нарисовал чтобы было понятно как это выглядит со стороны. Вот и как такое предотвращать? Вообще, с какого хуя эксепшн в одном объекте, не связаным ничем, кроме передаваемых в него данных, вызывает диспоз у сокета, который просто передает хендлеру данные и дальше не при делах?
289 1544554
Хочу сделать игру, но не хочу шквариться об юнити. В идеале хочу свой движок с блекджеком написать. Так вот, у меня два стула: взять OpenGL или directx. Что лучше, учитывая что игра должна быть изометрической пиксельной РПГ?
290 1544556
>>44448
Да, различие лишь в том, что тебе не надо знать всех мелочей, т. е. спрос меньше, так как ты шарп знаешь. Твоя основная задача это бэкенд.
291 1544559
>>44499
Тебе нужно свойство customers (которое List) сделать статичным.
292 1544563
>>44532
Без кода твой пост похож на шизовысер. Мы тут по картинкам гадать не умеем.
293 1544565
>>44554
C/С++ тред двумя боками ниже, дружок-пирожок. На С# движки для игр не пишут.
294 1544566
>>44563
Ты будешь 5к строк смотреть, лол?
295 1544571
>>44566
Показывай место эксепшена и сокета который диспозится.
Дело может быть и не в этом, может быть у тебя там используется многопоточность и из-за твоей криворукости убивается работающий поток который отвечает за сокет. Такое может происходить если ты используешь Thread.Abort() (поток завершил свою изначальную задачу и принялся выполнять другую, и в это время ты его завершил абортом).
296 1544575
>>44571
У меня все на тасках завязано. Разве должен эксепшн в таске убивать поток целиком?
297 1544577
>>44575
Таск это такой же поток, различие в том, что он может выполнятся в отдельном потоке или в уже существующем. Тогда как Thread это всегда отдельный поток.
298 1544583
>>44577
Хм, я почему-то думал, что таск это такая хреновина, которую засовывают в пул потоков и она там по потокам прыгает до завершения, если есть свободные ресурсы, а если умирает, то с потоком ничего не происходит. Именно потому таски и решил использовать, лол. Наверное глупой затеей было садиться писать асинхронный сервер, ни читая ни одной книги.
299 1545639
Анон, объясни неосилятору на примере говна и жопы на пальцах, что такое ивенты и зачем они нужны. По учебникам и гуглу понятно не становится.
300 1545644
>>45639
Это такая хуйня, которая позволяет тебе не ебаться с реализацией одного популярного паттерна. Оч удобно, что есть из коробки.
Нужна, чтобы понизить связность сущностей, при этом добавив какую-то хитрую логику. На, банально, вот у тебя в формочке юзер изменяет постоянно что-то, а то что он там изменяет хорошо бы на лету обсчитывать, например сразу сказать: Слыш, пидрила, хули ты в поле год рождения буквы пишешь или год больше текущего, охуел чтоли, а ну давай нормально, или вообще не дать пидорасу это сделать. Вот ты и делаешь эвент: TextChanged, на него вешаешь подписчика, который смотрит что там пидрила ввел и решает принимать текст или подсветить красным и не дать кнопочке сохранения стать активной. Это самый популярный сценарий, но вообще ты можешь и без них жить, просто у тебя в коде где было бы TextChanged?.Invoke(this, new EventArgs()) будет куча методов вида: db.OnTextFieldChanged("Хуй залупа"), GUI.OnTextFieldChanged("Хуй залупа"), webServed.OnTextFieldChanged("Хуй залупа") и т.д. Короче, это сахарок такой вот, позволяет тебе делать штуки с меньшими движениями жопы. Всю пользу поймешь, когда решишь свой проект на 10к+ строк написать.
301 1545648
Бля, я>>45644 конечно хуево описал. Просто нужно самому попробовать использовать и тогда поймешь. Попробуй более-менее нормальный тудулист сделать с возможностью задачи по группам создавать, синхронизацией с сервером, возможностью залогиниться из браузера, и с возможностью "начальнику" всем "подчиненным" добавить задачу, типа он добавляет задачу: "Выполнить пятилетку за три года", а все его "подчиненные" должны это сразу в списке своих дел увидеть.
302 1545655
>>45639
Для того чтобы не писать кучу бойлерплейт кода при работе с делегатами. По сути это обертка над делегатами чтобы было удобней с ними работать, можно всё на делегатах делать, отличие будет лишь в количестве кода которое тебе нужно написать.
303 1545659
>>45655
Будто делегаты это тоже не сахарок. Деды все это на сях указателями на функции делали и ничего, жили себе, писали высокопроизводительный софт, который жрал почти нихуя памяти, а сейчас хелловорлд шарповский пару мегобайт весит и сразу отжирает 6мб оперативки, чтобы ебучую строку текста в консоль вывести. Эх, было же время. Ух. И хуй-то стоял...
304 1545845
Нужен совет
есть функция (не моя, оптимизировать не получится) которая вызывается в foreach
проблема в том что каждый цикл выполняется тыщу лет (около секунды),
меня посетила идея запихнуть каждый цикл foreach в отдельный поток и паралельно выполнить все (или N циклов)
можно ли как то по простому это реализовать?
.png24 Кб, 881x466
305 1545852
>>45845
Можно.
306 1545855
>>45852
Спасибо!
307 1545886
>>45845
Каждый не надо, на переключение туда-сюда больше времени проебешь
308 1545889
>>45886
там довольно большой объем операций
полный цикл foreach занимал на тестах около 5-6 секунд ( а на боевом сервере я хотел увеличить входящие данные в два раза минимум)
потому не факт что это заняло бы больше времени
async предложенный выше полностью решил проблему с временем выполнения
1.jpg47 Кб, 408x484
309 1545922
>>45659
Что еще спизданешь? Пикрил - программа для переключение частоты обновления монитора в один клик, при этом в ней использована сторонняя библиотека, что явно больше чем хеллоу ворлд.
310 1546120
Можно ли создать объект класса на уровне класса, а не метода? Если да то как, если нет, то как получить доступ к объекту класса из другого метода?
311 1546125
>>46120
Что ты спросить-то, блядь, хочешь? Какой еще уровень класса, метода? Совсем ебанулся?
312 1546511
>>46120
у тебя каша в голове

>создать объект класса на уровне класса, а не метода?


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

>как получить доступ к объекту класса из другого метода?


создать ссылку на этот объект (тип) из пространства имен, в котором ты работаешь. Если поля (метод в твоем случае) этого типа не закрытые, то ты можешь к ним обращаться.
313 1546543
>>45639
Я, кстати, также не понимал, но мне пояснили вот как
Если оставить делегаты как анонимные методы в стороне, то события и делегаты соотносятся как свойства и поля.

1. Событие — это свойство с методами "add" и "remove".
2. Вызов свойства доступен только изнутри класса.
3. Событие может быть как обёрткой над полем-делегатом (аналог автосвойства), так и хранить ссылки на делегаты в какой-то другой форме и вообще содержать любую дополнительную логику.
4. Событие может быть виртуальным и т.п.
314 1546552
>>46511
>>46125
Забейте, я разобрался. Хуйню написал.
315 1546668
Анончик, нужен совет. Нужно разработать апликуху под ШINDOWS - выбираю технологию. WPF - зарекался связываться с вонючим xaml, консоль не пойдет - нужен базовый клиенский UI, WinForms - говно мамонта, не хочу даже связываться. Я бы на Core написал, там html+razor - более интуитивно понятно, но мне для юзверов нужно, а он запускается в Kestrel/IIS - проблема. Посоветуйте на чем захуячить. Требование - чтобы у юзвера был только .NET framework и всо.
Спасибо.
316 1546674
>>46668
На WPF, что ты там зарекался никого не ебёт.
317 1546722
>>46674
но этой залупе жить от силы пол года. С выходом Core 3.0 все забудут за это убожество Xml-а под подливой WPF
318 1546732
>>46543
ИМХО, такое объяснение даже сложнее для понимания. Я бы, будь совсем нубом не понял нах оно надо. Да и делегаты тоже имеют методы add-remove.
Тут нужно, ИМХО, именно область применения понимать и попробовать что-то с ними намутить. Например чтобы при приходе данных на сервер ты не мутил отдельный метод записи в БД, а просто подписался из контекста БД на событие и сразу добавлял что пришло.
319 1546756
>>46543
>>46732
у рихтера отличное объяснение с факсом, принтером, телефоном и почтовым сервером. Гугл рихтера, начало главы про делегаты-события
320 1546778
>>46722
Долбоеб, wpf приложения можно и на неткоре делать.
321 1546803
>>46778
долбоеб, зачем ты это высрал?
https://docs.microsoft.com/en-us/dotnet/desktop-wpf/migration/convert-project-from-net-framework
Или ты думаешь я буду клиентов мигрировать через апдейт на .net core? Тем более как писал выше

>зарекался связываться с вонючим xaml


так что нахуй идет WPF
Какие еще предложения, господа?
322 1546816
>>46803
Уебище тупорылое, у тебя нет приложения, зачем ты ссылаешься на статью для тех, кто писал своё приложение используя net framework? WPF приложения уже можно писать используя .Net Core, представь себе.
323 1547199
Шарпаны, поясните, а когда нужно использовать кортежи? Ну, т.е. вроде как понятно, что типа если у нас функция принимает кучу аргументов это неудобно и лучше запихнуть эту кучу в кортеж и тогда, скажем, будет 2 аргумента, но ведь это, на мой взгляд, какая-то залупа, которая просто те же переменные прячет под коврик, а на деле все то же самое. Ну или скажем приводят пример с тем что в одном месте программы приходят данные и тебе влом заводить отдельный класс для этого дела, потому делаешь кортеж и пихаешь в него, дальше что-то там с пришедшими данными делаешь и все, но такая же херня выглядит как какой-то говнокод, особенно с ростом мест, где ты будешь пользоваться кортежами. Может быть я не совсем понимаю, но разве действительно есть какая-то острая необходимость наличия кортежей в шарпе, кроме: "Везде есть, пущай и у нас будет!"?

То же касается и новой фишки с дефолтной реализацией в интерфейсе. Вот нахуй оно надо-то? Мне несложно было для этого сделать абстрактный класс и проделывать все те же свистопляски в нем, а так получается что не понятно теперь, когда что использовать.
324 1547241
>>47199
Кортежи для возврата удобны
У нас в легаси проекте дохуища классов типа ValidationResult, ParsingResult, ConvertResult итд которые нужны исключительно чтобы вернуть 2-3 переменные из функции.
А ещё дохуя функций, которые возвращают данные и успешность операции. Там вообще на out bool построено, что ебано.
Были бы кортежи - стало бы в разы проще.

Про реализацию в интерфейсе - напомни, сколько классов ты можешь наследовать за раз в одном сабклассе, а сколько интерфейсов реализовывать?
325 1547275
>>28262 (OP)
Как защитить свой код от реверс-инжиниринга? Я тут написал годную десктоп-программку на C#, уже был готов раздать коллегам на тестирование, в расчёте через какое-то время монетизировать и не присесть на бутылку как Сысоев. Но решил проверить, не спиздит ли кто-то годноту. И таки да - спиздить ничего не стоит. Dot peek позволяет просматривать все кишки моих dll и exe.
Как сделать так, чтобы нихуя нельзя было понять по бинарникам?
Пока есть только идея переписать ключевые моменты на C++, оставив в C# только IO.
326 1547304
>>47275

> Как защитить свой код от реверс-инжиниринга?


Нанять штат юристов.
327 1547345
>>47241
все, что ты перечислил можно сделать с передачей класса, в который входят эти поля. Я как то упустил из внимания эти кортежи и сам иногда задаюсь вопросом - нахуй они нужны.
328 1547354
>>47275
Обфускаторы.
329 1547397
>>46756
Прочитал. Ахуеть. То есть я правильно понимаю, что ивенты - это синтаксический сахар, чтобы вместо Fax1.DoSomething(); Pager1.DoSomething(); писать одну строку аля NewMail(), да?
330 1547406
>>28262 (OP)
Такая проблема: Вот у меня есть несколько переменных, которым я хочу присвоить значения в цикле do while, в который будет встроена обработка исключений таким образом, чтобы к концу этого цикла всем переменным были присвоены некоторые корректные значения. То есть по замыслу нет возможности покинуть цикл и далее использовать эти переменные в программе, если они не присвоены корректными для них значениями в некотором диапазоне.
Но вот в чем дело: несмотря на все это я не могу просто объявить их в начале программы а уже потом присвоить им значения в цикле, в любом случае мне нужно присвоить хотя бы фиктивное значение. Как избавиться от него?
P.S. Чувствую, что спросил максимально многословно и нелаконично, может даже и не понятно, прошу прощения за это.
код - https://ideone.com/5JfbWs
.png20 Кб, 618x728
331 1547429
>>47406
Не понял в чем проблема просто объявить переменные как-то так:
bool? f;
int? n;
int? m;
do{...}while(...)
У них значение по-умолчанию будет null.
Еще не понял, на кой черт ты while(f) используешь. Я вижу что ты так останавливаешь цикл, но нахуя, если можно break сделать? И нахуя тебе do-while? И вообще зачем там делать try-catch опять же?
332 1547432
>>47429
Бля, только условие не то сделал, у тебя же там (0;50], думаю сам понимаешь как исправить.
.png20 Кб, 608x611
333 1547436
>>47429
Хотя да, try-catch как защита от дурака можно использовать. Тогда код будет как-то так выглядеть.
photo2019-12-1516-02-58.jpg17 Кб, 482x199
334 1547437
>>28262 (OP)
Добрый день, уважаемые.
Давненько не юзал уже asp.net, уже аж core 3.1 вышел.

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

Я как привык - есть access_token, который как-то генерируется и который выдается тому, кто у меня его запросил.

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

Я думал, это можно сделать, унаследовав атрибут Authorize. но в нем есть какие-то
Клеймы
Политики
Роли

, назначение конторых мне непонятно от слова совсем.
Никаких методов в этом классе нет совсем.
Роли - еще могу понять - reader/writer какой-нибудь.

https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies?view=aspnetcore-3.1

Был тут, после чего совсем уже совсем тупым себя ощутил.

Можете, пожалуйста, на пальцах объяснить, что значат все эти клеймы, политики и роли, как с ними работать на уровне МиддлВаре и на уровне моих контроллеров/экшнов применительно к моей задачке с access_token?
335 1547463
>>47429

>Не понял в чем проблема просто объявить переменные как-то так:


>bool? f;


>int? n;


>int? m;


Блять и правда. Спасибо, анон.

>Еще не понял, на кой черт ты while(f) используешь.


>Я вижу что ты так останавливаешь цикл,


>но нахуя, если можно break сделать?


Да, наверное ты прав. Так и правда логичнее.

>И нахуя тебе do-while?


Всмысле нахуя мне do-while? Мне цикл для чтения ввода нужен и он должен продолжаться до тех пор, пока не будет введено корректное значение.

>И вообще зачем там делать try-catch опять же?


Ну а вдруг я вместо числа введу строку? Или что-нибудь еще некорректное сделаю. Может быть я конечно и здесь проебался, но не вижу пока в чем.
336 1547467
>>47397
не правильно. У тебя есть 3 устройства, у каждого из которых может возникнуть событие (а может и нет) на получение сообщения. Когда создаешь экзепляр такого объкта, где из полей есть событие, которое принимает делегат, ты можешь сделать подписку на него, а можешь не делать (в зависимости от политики проектировки типа).
Приведу другой пример - у тебя есть материнка, на ней куча сокетов. Один из сокетов для спикера. Ты можешь его подключить, чтобы он выдавал тебе сигналы, а можешь не подключать, но шаблон проектирования материнской платы всегда подразумевает возможность подключения спикера.
Если и сейчас не понятно - почитай про паттерн publisher-subscriber
337 1547501
>>47463

> Всмысле нахуя мне do-while? Мне цикл для чтения ввода нужен и он должен продолжаться до тех пор, пока не будет введено корректное значение.


Ну так вот>>47436 Обычный while, будет продолжаться пока не введешь корректное значение, а do-while, на мой взгляд, это довольно мутная темка, которая снижает понятность кода, ведь ты, обычно, стараешься читать код сверху-вниз, а тут получается что ты сначала видишь do, спускаешься к концу блока, смотришь условие выхода из цикла, а потом что в самом цикле происходит, конечно это не то чтобы прямо страшная фигня, но зачем писать лишние строки, если их можно не писать?

А насчет try-catch я таки сам понял зачем ты его используешь. Просто как-то уже отвык от ситуации когда корректность ввода так надо проверять.
338 1547512
>>47345
Долбоеб тупорылый, он и говорит, что у него это реализовано классами, а если бы были кортежи, то не нужно было плодить кучу классов для возврата нескольких значений.
339 1547574
>>47512
Класс удобнее, потому что его можно переиспользовать и ты всегда знаешь что это за сущность. В крайнем случае можно структуру ебануть. А кортеж он выглядит просто как данные в вакууме и хуй пойми зачем оно надо, потому что не все удосуживаются имена членам кортежа дать и у тебя получается что-то вида: (int, int, double, string), а при работе с этим кортежем ты вынужден чере a,b,c,d обращаться к значениям.
340 1547576
>>47574
Ага, а кортеж переиспользовать тебе никто не даст. Что за хуйню ты несёшь?
341 1547590
>>47576
>>47512
мамкин кодер из шараги решил свои 5 копеек вставить. В интерпрайзе выкатишь код со своими кортежами и попробуй не закоментить, что ты там возвращаешь - индус нашлет порчу. Или же сам увидешь свой код и будешь вспомнитать, что ты там высрал год назад.
Для возвращения объекта создаются отдельные сервисы, которые читабельны (не нужно вспоминать, что делает код) и более понятны (есть ребята, которые фич с 7.0 в работе не видели)
Весь ебучий синтаксический сахар на производительность не влияет, убирая лишние 3-4 строчки кода делает код не читабельным.
342 1547595
>>47590
Скорее мамкин нонконформист решил доказать всему миру, что кортежи не нужны. У членов есть имена, поэтому тебе не нужно запоминать, что они возвращают. Классы возвращать нужно там, где это полноценный класс, а не набор полей, которые ты потом в переменные преобразуешь, именно для этого и нужны кортежи.
343 1547665
каков положняк по си шарпу к 2020?
344 1547678
>>47590
А что, любая фича должна влиять на производительность, гений?
345 1547703
>>47678

>любая фича должна


как один из пунктов. Но точно не вредить. С каждым апдейтом запиливают сахара все больше и больше. Возьми чувака с легаси .NET core >4.0 он вообще охуеет от синтаксиса
>>47595
ты просто видимо кроме решеток не на чем не писал и не знаешь, что хороший язык тот, который:
1. Выполняет задачу;
2. Имеет friendly сигнатуру
3. Вытекает из 2 - Легко читается, сапортится
Есть некоторые фичи, которые нахуй нужно выпилить из языка
>>47665
все так же, мертвый язык. Почитай что выше пишут, одни вкатывальщики из шараги
346 1547706
>>47354
Есть годные бесплатные?
347 1547707
>>47703

>1. Выполняет задачу;


>2. Имеет friendly сигнатуру



Это и достигается при помощи лаконичных кортежей, а не тысячей классов вида ValidationResult, ParsingResult, ConvertResult ...
При этом, если говорить о производительности, то твои классы будут сосать у ValueTuple, поэтому тебе придётся делать структуры, которых в твоей "нормальной" джаве нет, как и кортежей.
.jpg69 Кб, 640x640
348 1547724
Сейчас пишу программу, в котором получилось очень много блоков switch. И заметил следующую хуйню: если в условном case 1 у меня есть int hui, то в case 2 я не могу объявить int hui, потому что ЭТА ПЕРЕМЕННАЯ УЖЕ ОБЪЯВЛЕНА.
То есть что это такое, анончики? Я пишу переменную для case 1, но компилятор воспринимает ее как переменную всего блока switch? Это же пиздец какой-то, нет? Как в плане синтаксиса (потому что я в case 2 могу использовать переменную hui, которая объявлена в case 1. А если у меня между объявлением и применением переменной 300 строк кода?), так и в плане оптимизации (если мне массив нужно объявлять для case 2, то независимо от того, какой case в итоге выбран, у меня этот массив в памяти висеть будет, даже если он нахуй не нужен).
Это я долбоеб или switch - это сомнительный синтаксический сахар, который при это убивает на корню всю эффективность решения? Я где-то читал, что компилятор воспринимает switch как if-elseif-else, но это же тогда полная хуита получается, потому что в if-elseif-else переменные остаются локальными. Рассудите, анончики.
20190929094910.jpg36 Кб, 311x273
349 1547735
>>47724
Бывший петухонщик, ты? Всё объявлять можно, достаточно в фигурные скобки заключить блок case.
350 1547740
>>47735
Благодарю покорнейше. Впервые услышал, что так можно.
Петухоном ни разу не пользовался
351 1547744
>>29860
Через Mock`ирование ?
352 1547746
>>31808
Те же мысли, параллельно изучаю Java..
353 1547750
>>31808
Читать книги, очевидно. Если времени много, то можешь на их основе пет-проекты делать.
354 1547766
>>47703

>Вредить


Она вредит только в твоём шизомирке.

>Сахара все больше


И это хорошо, не любишь сахар - можешь пиздовать на сях писать сразу
355 1547770
>>47746
Только смотри не учи Swing/JavaFX
356 1547785
>>47770
Не-не, я понял, что бабло в hibernate + spring
357 1547802
>>47707

>в твоей "нормальной" джаве


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

>очень много блоков switch


говном завоняло с соседьнего треда. В решетках ООП, ты еще про Goto вспомнил бы
>>47744
>>29860
хоть через что. Модульное тестирование - отрезать кусок от инфраструктуры и тестить. Подвязывать один тест на другой - зашквар, т.к. если упадет один, упадет и зависимые
>>31808
так и есть, в Core уже запилили WPF, так что возможно не сгниет и xaml будет процветать (но это не точно)
>>47766

>Она вредит только в твоём шизомирке.


понаписывают такие дебичи, как ты () => () конструкцию на 10 этажей и сиди разбирай. Еще про Си вспомнил, что за долбоеб, земля тебе пухом
358 1547840
>>47199
Анон, поясни за перспективы Шарпа в датасаенс. Кто-то его юзает или проще забить хуй, удалять Rider и качать мануалы по питону и R?
359 1547841
>>47840
Блядь, ссылку на случайный пост сделал
360 1547842
>>47840
Расскажи, какие ты задачи в "Дата саенс" хочешь решать?

еня вот позавчера один "дата саентист" очень слёзно просил ему в sql-server Включить поддержу питона, потому что тока на нем можно быстро работащий код написать для его дата-аналайзиса.

Открываю, значит, его код на питоне, а там просто все данные из таблички в память засаываются, а потом циклами всякие медианы считаются. Было для меня небольшим откровением о том, что такое дата-сайнс.
361 1547847
>>47842
Ну вот к примеру обсчет данных секвенатора, чтобы из обрывков последовательность ДНК собирать
Хотя я ж еще не практик, я просто мимовкатыш.
362 1547849
>>47842

>"дата саентист"


>поддержу питона


99% этих бездарных уебищь только для этого питон и используют
363 1547987
>>47847
Тогда не уверен, что шарп тебе подходит.

Мелкомягкие сделали ML.Net, однако он выглядт, как набор готовых решений: «бери и используй», а все, что выбивается за рамки регрессионного анализа, всяких там популярных подходов, вряд ли будет сделано хорошо.
image.png260 Кб, 1666x686
364 1547995
.NET НЕ ГОВНО ПОВТОРЯЮ .NET НЕ ГОВНО
МАЙКРОСОФТ ГИГАНТ С СЕРЬЕЗНЫМ ЭНТЕРПРАЙЗЕМ
В БИНАРНИКАХ АНАЛЬНЫХ ЗОНДОВ НЕТ
365 1548361
>>47802

>Понаписывают


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

Бтв в одном я неправ, признаю. Тебе не в тред плюсовиков, слишком умно для тебя будет. Тебе к гошникам, которые даже дженерики осилить не могут и кричат НИНУЖНА. Вот там ты точно приживешься.
366 1548398
реквестирую код на шарпе, который будет менять бинд смены раскладки. то есть, с шифт-альта на ктрл-шифт. с меня как обычно нихуя
367 1548407
>>28262 (OP)
Хочу выучить байткод C# с целью реверсинга софтины, скомпиленной под .NET. Какую книгу подскажете?
368 1548416
>>48407
Не байткод, а MSIL он же CIL (Common Intermediate Language). У Троелсена есть глава в которой он рассматривает некоторые примеры.
369 1548479
>>48407
Нахуя, когда ты можешь рефлексией из сборки вытащить абсолютно все?
370 1548503
сап пр, собсна дрочусь с файлами и делегатами. запихуваю в string[] делегат методы которые возвращают string[].
Пытаюсь записать их в файл, но пишет что я долбоеб и System.String[].
да, я в курсе что делегаты - это ссылки на метод, а не контейнер хранящий методы.

Однако, пик 1 - работает, а пик 2 - нет.

На пик 3 - метод, который принимает string[] и ДОписывает в файл.
Помогите, чому в файл записывается System.String[] вместо нормального текста. Я пытался создавать отдельный массив в который записывал примерно так:

string[] newarr = new string[] {Convert.ToString(searchImageFiles(path)), Convert.ToString(searchVideoFiles(path))};

Всё равно в файл дописывалось System.String[]
В гугле не забанили, пытался гуглить - в итоге нихуя не понял. Ебусь второй день. Да, я долбоеб, говнокодер итд итп. Прошу помогите
371 1548505
Короче, два тупых вопроса.
1. Смотрите, я подключил EF Core и заметил что если обращаться к контексту БД постоянно, производительность существенно падает. Как я понял, связано это с тем, что я сохраняю постоянно прямо в базу при каждом изменении полей классов, которые мне нужно держать в актуальном состоянии. Я ебанул костыль с тем что при запуске программы создается статичный класс с хэштаблицей, который все что мне нужно из базы один раз читает, я в таблицу пишу-апдейчу, при закрытие "синхронизирую" это говно с базой. И как-бы да, производительность сразу возросла в разы, только я чет думаю что я хуйню делаю. Как правильно-то? Я думал что может просто убрать сохранение изменений и вызывать его по таймеру, но не уверен что это правильный выход.
2. Как правильно свой вебсервер реализовывать на базе HttpListner? Просто я как-бы сделал простенький, но получается, что в классе этого сервера куча методов которые просто идут в папочку и достают страничку. Скажем, я догадался парсить URL запроса и рефлексией методы вызывать, чтобы не делать огромный switch-case, но вот что как настроить маршрутизацию нормально? Типа тупо же делать кучу одинаковых методов которые нужны просто чтобы /Home /Index и просто / выдавали одну и ту же страничку, но по другому я пока не представляю как делать, типа думал может сделать файл с "маршрутами", в виде словарика, в котором кусок URL - ключ, а значением выступает метод, тогда получится, что я из URL могу получать название методов и даже может от рефлексии можно будет отказаться, но тоже хз.
372 1548558
>>48503
Какой тип имеет searchFiles?
Почему на первом пике в case 2 ты сначала отнимаешь, а потом присваиваешь совершенно другое значение, затирая предыдущее? Тебе не кажется, что что-то тут лишнее?
не факт что помогу, но интересно
.png135 Кб, 1920x1034
373 1548567
>>48503
УМВР
374 1548573
>>48558
тип - string[]
чтобы избавиться от ссылки на другое значение
>>48567
search.Invoke это что бля такое ваще, а Where?
375 1548598
>>48573
Invoke я по привычки ебнул. Вообще правильно было бы написать: search?.Invoke(path), так делегат выполнится только если ему что-то присвоено -> внезапно твоя фиговина не упадет из-за NullReferenceException, при этом это короче чем if(search!=null) писать.

> а Where


Это хуйня из linq. Linq крайне приятная штука на самом деле при работе с любыми коллекциями, списками, массивами и т.д.
376 1548599
>>48598
Так что Invoke делает?
377 1548623
>>48599
Просто выполняет(вызывает?) делегат. Экзекуцию производит.
378 1548639
>>48573
Если это тип string, то почему ты передаешь ей аргумент (path)? Короче я хз что у тебя происходит. Я правильно понял, что вместо пути ф файл записывалась строка "System.String[]"?
На втором пике в case 3 аргументы справа от знака присваивания твои собственные? Возможно, где-то в них что-то не так?
image.png20 Кб, 679x354
379 1548650
>>48639
В файл должен записываться путь, который возвращает метод. Проблема в том, что я не знаю как возвратить нормально массив со значениями, из-за этого в файл записываются не пути а system.string[]
380 1548655
>>48650
Массив в шарпе - это указатель, соответственно ты можешь передавать имя массива как аргумент или возвращаемое значение, и все должно быть ок.
381 1548656
>>48655
нихуя не работает, значит не можно.
image.png24 Кб, 395x150
382 1548668
>>48567
что у тебя идет после Where?
.png19 Кб, 970x429
383 1548669
>>48650
Твой проеб в этом месте из-за того что ты пытаешься массив конвертить в строку. Соответсвтенно вызывается метод ToString(), который и возвращает тебе System.String[]. Тебе нужно было просто объединить массивы. Мог, например, создать третий размером как эти два и в него закинуть все, либо просто ебануть список и в него впихнуть эти два.

Еще 5 копеек.
Зачем тебе считать в цикле, если ты можешь просто свойство Length у массива посмотреть? Т.е если тебе нужна была сумма, ты мог просто Console.WriteLine($"Amount: {TxtFiles.Length+DocxFiles.Length}");
Ну и да, с Linq это короче было бы.
384 1548672
>>48669

>Зачем тебе считать в цикле, если ты можешь просто свойство Length у массива посмотреть?


Точно, совсем об этом почему-то не подумал. Ты прав

>Твой проеб в этом месте из-за того что ты пытаешься массив конвертить в строку.


Понял, спасибо. Я пытался объединить массивы, но нихуя не получалось. Спасибо тебе большое
image.png6 Кб, 526x288
385 1548675
>>48656
Тыщу раз так делал, все работает.
386 1548679
>>48675
Зачем ты из войда ретёрн делаешь после того как форич завершился? Я еще понимаю, типа чтобы "аварийно" выйти из метода, но тут-то зачем?
387 1548680
>>48679
Для порядка, по привычке.
388 1548709
>>48669
Можешь объяснить хотяб чуть-чуть на счет того, как работает Where в твоем коде? Я погуглил, +- что-то понял, но всё как-то запутанно
.png8 Кб, 526x213
389 1548736
>>48709
Проходит по всей коллекции и сравнивает значение коллекции с условием, которое я передал в лямбдой, возвращает элементы которые соответствуют этому условию. Можно было бы не лямбду использовать, а передать метод, как на скриншоте, просто лямбдами в данном случае проще.
image.png17 Кб, 496x383
390 1548746
>>48736
Понял, спасибо.
Можешь скинуть код, у меня почему-то файл не создается. Отдельный класс не делал, так как пока что похуй на него
391 1548748
Вот бы написать конвертер .Net-байткода в Java-байткод…

А то люблю шарп, но джава на большем кол-ве платформ есть…
393 1548753
>>48748
Это будет хуйня костыльная, которая будет работать в два раза медленнее. Лучше уж сразу компилятор в java байткод делать.
394 1548775
>>48749
Хз, у меня всё равно как бы я не дрочил твой код - не создаётся файл. Я пытался делать через File.AppendAllText, но там 2 аргумент это то, что записывать с типом string, в то время как методы возвращают string[]
Пытался сделать файл в ручную - всё равно нихуя не записывается
395 1548784
>>48775
всё, проблема решилась сама
396 1548824
Как передать в метод сеанс юзера? В апликухе, которая работает с БД есть сущности, которые юзер может гонять через CRUD. Вопрос: Как поместить в круд методы именного того юзера, который это делает?
397 1548827
>>48824
Через куки
.jpg2 Кб, 125x125
398 1548829
Как оттачивать свои навыки кодинга, если у меня нет фантазии на не очень полезные тренировочные проекты, и при этом нет скиллов на полезные реальные проекты? Писать лабы 2 студентам?
399 1548834
>>48824

>Методы юзера


>Поместить в бд


Што
400 1548842
>>48829
Все тренировочные уже за тебя придумали.
Fundamentals-of-Computer-Programming-with-CSharp-Nakov-eBook-v2013
Вот в этой книге годные примеры.
401 1548933
>>48829
Шутишь, наверное !
Вполне можно рассматривать в качестве "проекта" даже написание одной единственной, но крайне полезной функции. А таких функций, которые ещё нужно написать, но они пока не написаны - буквально вагон !
Потом из этих готовых функций уже проще собирать программы.

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

Или, скажем, такая функция : в неё передаёшь в первом параметре строку в которой искать, а во втором массив структур. Сама структура описывается двумя полями : первое поле - искомая подстройка, а второе поле - число. Число или 1 или 0 в зависимости от направления поиска в искомой строке(вперёд или реверс).
Функция возвращает позицию последней в массиве экземпляров стркутур подстройки в искомой строке или -1, если подстройка эта не найдена.

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

Или вот, недавно написал уже правда, в функцию передаёшь строку, она возвращает массив, представляющий собой бинарник файла изображения формата PNG, в растр которого "вшита" строка, переданная в параметре.
И обратная функция - ей передаёшь в строке путь к файлу PNG, а она возвращает строку, "вшитую" в растр этого файла, если найдёт в файле маркер IMG-архива.

Но мне надо усовершенствовать, чтобы в обратную функцию передавать не путь к файлу, а массив с бинарником файла.
402 1549045
Хосспаде, как же хочется кунчика -сисярп программиста. Приходить с работы, а он там в одном фартучке и анальной пробке ждёт тебя. Потом берёшь его за ушко, вытаскиваешь пробку из его попки и начинаешь сочно трахать, пока он тебе про свои коммиты на гитхабе рассказываешь.
403 1549110
Сижу, изучаю шарпы, вникаю в ООП, и охуеваю с количества инфы. ЭТО КАПЕЦ, А ВЕДЬ Я ЕЩЕ ДАЖЕ НЕ ИЗУЧАЛ НИКАКИХ ФРЕЙМВОРКОВ, ПРОСТО ОГРОМНАЯ ГОРА ИНФЫ. Я думал будет проще получать 300кк/сек
404 1549158
>>49110
Шарпы это сложный бэкенд язык со статической типизацией, для легких 300к надо ноду, но на нее нет джунов
405 1549172
>>49110
Фреймворки же наоборот упрощают жизнь, разве нет?
406 1549243
>>48827
у меня ONION архитектура, вся бизнес логика спрятанна внутри, а в ней работа с БД. Через входящие параметры запуливать эти куки? Как это вообще работает?
>>48834
действия юзера, описочка
Мне нужно на каждого клиента вести историю изменения объектов, которые реализованны через методы
407 1549260
Зачем нужен WebApi на проекте? На глобальных, типо соц сетей и прочей дрысни, я это вижу как привлечение аудитории, которые могут/хотят запилить доп. фичи в проект (те же боты в телеге или инсте). Для чего в каких ни будь сайтиках он нужен?
И еще, думаю косвенно заденет первый вопрос. Как JS макаки пилят код под backend? Через WebApi? Я не думаю, что проекты на ASP.NET высирают через View-Razor (разве что full-stack), думаю что как раз таки через webApi.
Поправьте, если что не так, т.к. всегда писал серверную часть и с UI мало имел дела (за исключением пары высранных проектов в MVC5)
408 1549271
>>49260
тебе низачем
409 1549287
>>49243

>у меня архитектура


>Вопрос про основы веба из учебника 8 класса информатики


>Как это вообще работает?


Главная проблема сярпомакак: дрочите платформу и какие-то паттерны, абсолютно без понимания происходящего
410 1549301
>>49243

>у меня ONION архитектура


Сука, как же я заорал на всю хату. Что ж у тебя не хексагональная-то, архитектура твоя?
411 1549321
>>49271
>>49287
>>49301
лучше на вопрос ответьте, а не обезьянничайте
412 1549331
Нашёл сайт по шарпу, мне показался довольно годным
https://ulearn.me/
Советую вкатывальщикам
image.png149 Кб, 817x578
413 1549332
>>49331
Это если чё не пиар, автор походу умер в 2015
414 1549370
>>49331
>>49332
Этот ресурс создали и поддерживают СКБ Контур. Видео староватые, то тексты и задания обновляются. Кстати недавно новый дизайн сайта запилили. Так что ты не прав.
415 1549371
>>49332
Если заниматься по этим материалам, есть шанс умереть?
416 1549380
>>49371
Ю а олреди дед инсайд
417 1549434
>>49332
Автор в гермаху съебал
418 1549455
>>49434
Уральские ебеня или Гермашка... Хм, что бы выбрать...
По дискретке курс годный
419 1549456
>>49243
>>49260
двачую вопросы. Кроме пердежа в воздух ничего толком не увидел
420 1549459
>>49243
Реализуешь логин на свой говносайт, создаешь базу пользователей, каждому присваиваешь идентификатор, используя его в своих методах для определения отдельного пользователя. Что, блять, сложного в этом?
421 1549462
>>49331
Всё нужное есть у Троелсена, далее ты закрепляешь всё Альбаири, после чего можешь пройтись по классике вида Рихтера. Никакие видеоговнокурсы не нужны, только время потратишь, хуже будет только чтение метанита.
422 1549468
Блять, да как нахуй писать код ебучий. Я вообще не понимаю, мне нужны основные правила, что можно делать, что нельзя. Все обзываются, мне неприятно, как исправлять - непонятно. Я не могу сам догадаться, что так нельзя сука делать, потому что это некрасиво ( допустим огромный мейн)
IMG20191127195906.jpg138 Кб, 710x947
423 1549491
>>49462
Двачую про Троелсена, купил его, отлично все расписано, читать все подярд не обязательно, некоторые вещи можно пропустить вначале, например манипуляции с родительскими классами типа System.Object,да и самые первые главы про работу компилятора тоже, если ты совсем ньюфаг. Есть кучу примеров, единственное я еще хотел бы упражнения для самостоятельной работы, но их нет, благо я придумал себе пет проджект, на нем и испытываю все новое, что изучаю
424 1549492
>>49459
мне пишут тут через куки это делать. К тому же получается в каждый метод, где нужна регистрация пользователя, нужно передавать POCO пользователя, я правильно понял?
425 1549495
>>49331
сейчас бы мертвый язык учить в 2к19, земля тебе пухом
426 1549536
>>49491

>купил


Как понять, что у человека низкий IQ
427 1549539
>>49491
Читать лучше в оригинале.

>например манипуляции с родительскими классами типа System.Object



Этого как раз пропускать нельзя, это основы которые должен знать каждый, как только ты их поймешь, так сразу легче будет понимать всё остальное.
428 1549540
>>48842
Ты по ней вкатываешься? Как тебе эта книга?
429 1549553
>>49540
Нет, для вката она не совсем подойдёт, так как 2013 года и код в ней может быть местами устаревший. Начинать лучше с Троелсена, а её использовать для закрепления материала, потому что примеров там много и они все годные и интересные.
430 1549612
>>49539
Понятное дело лучше, но когда у тебя уровень А1 как у меня, смысла нет вообще, я буду через слово искать в словаре. Инглиш стараюсь в местах попроще подтянуть.
431 1549812
>>49434

>Автор в гермаху съебал


Кого ты называешь автором? Их там много.
432 1549814
>>49495

>мертвый язык


Очередной школошизик
433 1549919
>>49260
Так Web-макака - как раз ты, раз не понимаешь, зачем web api нужен.

Очень просто:
1. для команд, где фронт и бэк разделены, например, где фронт пилят на Angular.
2. Для интеграции с дургими системами, например, ваша CRM-система находится в облаке (bitrix-24), к тебе с сайта падает заявка в базу, как ты ее отправишь в CRM? через Web Api, который разработчики CRM-системы предусмотрительно для тебя сделали.
434 1550105
>>49919

>Web-макака - как раз ты, раз не понимаешь, зачем web api нужен.


Я же не веб макака, чтобы мне такое знать
Энивей, спасибо за ответ
435 1550192
>>48479
Обфускаторы никто не отменял
sage 436 1550301
>>49243
в этом могут помочь события
твои методы могут публиковать события когда пользователь меняет сущности
модуль записи изменений слушает события и сохраняет их
разумеется, вместе с изменениями событие должно будет содержать объект или айдишку пользователя

https://martinfowler.com/eaaDev/EventSourcing.html
не совсем твоё но прочесть стоит
sage 437 1550304
>>42135
лол, лаба3?
Merge(first, second) => m => second(first(m))
sage 438 1550314
>>40938
покажи код?
439 1550316
>>50304
Спасибо, кэп, но нет:

>Любое эквивалентное ему не подходит



>Лол, лаба3?


Хуже используемая в проде либа генерит разметку, разбирая экспрешн три
sage 440 1550332
>>50316
тогда тебе придётся с рефлексией поебстись
почему именно так? покажи больше кода
441 1550345
>>50301
я суть понимаю, как это реализовать, но как правильно - нет. Поэтому и обратился к анону. По сути можно и входящим параметром передать POCO usera, где по полям записывать данные, но мне нужна была та практика, которая считается эталонной (правильной).
Энивей, спасибо за совет
442 1550373
Может кто-то сталкивался. Есть WPF окно, в нём есть ComboBox, ItemsSource которого привязан к List<T>. При изменении этого листа, информация DropDown меню обновляется ровно до тех пор, пока его не открыть. При этом проблема только в визуальном обновлении, если закрыть окно и открыть его заново, то вся добавленная информация отображается как надо.
443 1550382
>>50373
В общем, решил сам. Надо было в классе делать не List<T> а BindingList<T>, но так как класс уже сохранён и если сделать данное изменение, то он не загрузится, то пришлось делать костыль вида:
foreach (var win in App.Current.Windows)
{
if (win is WindowWithComboBox cbw)
{
cbw.CmboBox.Items.Refresh();
}
}
444 1550406
Короче, поясните, 3к добавлений записей в минуту в EF core это нормально? Просто я думаю что это как-то ну слишком медленно, а если это не нормально и я обосрался, то как искать из-за чего так медленно?
sage 445 1550410
>>50406
профайлер
446 1550423
Ребятушки, смотрите, я делал примерно так:
while(client.Online)
{
await ReadAsync(buffer);
var response = await handler.ParseAndMakeResponse(buffer);
await WriteAsinc(response.ToBytes());
}
Предупрежу что это псевдокод, а не настоящий код из моей хуйни.
И, в общем, то, оно работает нормально, только вот срань в чем: Если клиентов много и все они онлайн, мой сервер, судя по отладчику, большую часть времени занимается тем, что переключается между тредами, на втором месте стоит как раз этот метод общения. Мне это чет не нравится. Как делают умные люди, если сервер не просто должен запрос-ответ делать, а сохранять открытым подключение с клиентами, которых может быть довольно много?
447 1550426
>>50423
Умные люди используют готовые решения, а не велосипеды пилят.
image.png86 Кб, 679x841
sage 448 1550433
>>50423
в ненси например вроде рекомендуется что-то подобное, но хуй знает, чот говняво
я бы не велосипедил как сверху уже сказали
.jpg667 Кб, 868x1228
450 1550445
>>50426
А я бы и рад, только вот как я могу нормально готовым решением пользоваться, не понимая всего этого? Вот возьму я готовый TCP сервер, сделаю просто обработчик своего супер-протокола, а потом окажется что там какая-то фигня случается, а я не знаю почему и как починить.
>>50433
Тут коммуникация заканчивается после приема сообщения. А у меня клиенты - тупой конечный автомат, эмулирующий работу одной железяки, которым нужно чтобы канал все время сессии был открыт.
451 1550456
>>50445

>не понимая всего этого?



Для этого книги есть, с примерами. Уверен, что в примерах рассматривается такой вариант. Но нахуй нам книги читать, если можно долбится в стену как баран, используя то, о чём ты не имеешь представления, при этом надеяться, что это представление у тебя появится чудесным образом.
452 1550474
>>50456
Я читал книги, лол. Там в плане голого TCP/IP со своим протоколом как раз все время примеры примерно как у меня, а дальше идет про HTTP и фреймворки для работы с ним, а мне не нужен HTTP, с HTTP любой дурак может, я хочу свой супер-протокол, с блекджеком и шлюхами, без кучи ненужной инфы, при этом чтобы нужная инфа была в форме которую я хочу получить, а не здоровенного пакета с гипертекстом, жейсоном и прочим говном. А все книги по голому TCP/IP для ебучего Си написаны и я нихуя в них не понимаю.
453 1550527
>>50474
Ну вот ты и пришел к правильному логическому выводу - ты выбрал не тот инструмент. Учи Си и изобретай свои велосипеды, у шарпа совсем другое предназначение.
454 1550540
>>50527
Я таки базово знаю си. И с ним проблема в том, что если что-то наебнется, я через месяц об этом через 500 лет узнаю. А писать сразу так чтобы не наебнулось я не умею. Весь мой кодинг состоит из собирания всех возможных граблей и ломания того что работало в процессе починки того что не работало.
455 1550638
>>50540
Суть в том, что весь твой кодинг имеет смысл только в плане обучения, для решения задач уже есть готовые библиотеки и фреймворки.
456 1550773
>>50445

>а потом окажется что там какая-то фигня случается, а я не знаю почему и как починить.


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

>я хочу свой супер-протокол


тредом ошибся, додик
>>50540
еще один шизоид. "Если сломается..." А если тебя завтра машина собьет, то что?
image.png26 Кб, 972x455
457 1550801
https://docs.microsoft.com/ru-ru/visualstudio/test/walkthrough-creating-and-running-unit-tests-for-managed-code?view=vs-2015#BKMK_Create_the_first_test_method
Если мы снимаем деньги, зачем прибавлять к балансу количество денег?
MSDN.jpg24 Кб, 808x319
458 1550807
459 1550809
>>50807
А, изначально неправильно написали, я не дочитал, сори
460 1550868
>>50474
Чего блять? Если у тебя есть реализация своего протокола, то бери TcpClient и гоняй байты через него.
461 1550887
>>50868
очередной ссаный студент изобретает колесо
сагай и делу конец
1.jpg55 Кб, 962x346
462 1551025
>>50801
Потому что надо на языке источника читать.
.jpg361 Кб, 1000x1000
463 1551181
>>50868
Я хочу чтобы было оопшно, чтобы не просто байтики гонять для одного протокола, а можно было, в теории, любой с минимумом телодвижений, чтобы расширяемо и масштабируемо и это вот всё.
464 1551258
Есть метотод, который принимает стоку, и если в ней есть перенос строки, то возвращает часть до переноса, если нет, то возвращает исходную строку. Как можно назвать такой метод? TakeSingleLine, TrimToLineBreaker?
465 1551270
>>51258
.Split(new string[] { "\n" }, StringSplitOptions.None)[0]
466 1551271
>>51258
var str = str.Split('\n')[0];
sage 467 1551335
>>51258
TakeFirstLine
точно не Trim

>>51270
>>51271
лол
468 1551355
>>51335
А что лол-то?
469 1551429
https://github.com/BakaVaka/SuperTcpServer/tree/master/SuperTcpServer/src/SuperTcpServer
Это снова я. Типа решил переписать свой супер сервер. Посидел часика 2 и выдал это. Хуй знает лучше ли так чем было, потому реквестирую кодревью, если кому не лень.
sage 470 1551464
>>51429
поменяй чтоб поддерживал несколько конкуррентных сессий
поменяй чтоб я мог инжектить собственные хендлеры без привязки к твоему Handler
и в продакшен (нет)
471 1551546
>>51429
https://github.com/BakaVaka/SuperTcpServer/blob/master/SuperTcpServer/src/SuperTcpServer/Request.cs

запрос сам себя читает и возвращает запрос?
у стрима есть метод CopyToAsync(), которым можно скопировать весь стрим сразу в MemoryStream. все эти манипуляции с буферами непонятно.
Bytes не будет работать, если не вызван ReadAsync(). это называется temporal coupling и от этого нужно избавляться.
вообще не понятен смысл этого класса. это бесполезная обертка, которая не делает ничего.

https://github.com/BakaVaka/SuperTcpServer/blob/master/SuperTcpServer/src/SuperTcpServer/Host.cs
зачем то добавляешь сессии в словарь и они там остаются навсегда

вообще много классов, которые не делают ничего. просто пустые обертки, которые просто отправляют все клиенту обратно. это можно заменить одной строчкой.
var client = await _listener.AcceptTcpClientAsync();
var stream = client.GetStream();
await stream.CopyToAsync(stream);
472 1551549
>>51429

>реквестирую кодревью


>переписать свой супер сервер


>Посидел часика 2


Ну и получился у тебя тцпшный хеллоуворлд, чего хотел-то?
473 1551556
>>51546

>await stream.CopyToAsync(stream);


Сам-то пробовал такое с нетворкстримом проворачивать?
474 1551561
>>51429
while((DateTime.Now-startTime).Minutes<10)
{;}
Здравствуйте! Я представитель гугла, как можно с вами связаться? Я бы хотел вам предложить работу старшего ведущего главного программиста за 300МММ/нсек.
475 1551580
>>51556
Нет. Но внутри этой просто цикл чтения/записи.
476 1551584
>>51580
КопиТу у нетворка не закончится до тех пор, пока стрим не будет закрыт каким либо способом (клоуз/диспоз/ексепшн из-за отвала клиента).
477 1551597
>>28262 (OP)
У шарпа тоже как и у джавы дженерики во время рантайма трутся?
478 1551632
>>51597
Нет, нормальный же язык а не жава
479 1551653
>>51584
Так в том коде аналогичное поведение вроде бы.
481 1551688
>>51653
Да тот код будет валится от любого чиха. Автора уже не раз тыкали носом и объясняли, что и почему. Но он продолжает писать херню и бредить про свой проктакол.
482 1551756
Кто-нибудь юзал asp.net core и rails или django? Стоит ли использовать asp.net core?
483 1552179
>>51632
>>51665
О, это действительно жирный плюс.
.jpg163 Кб, 489x649
484 1552198
>>51688
Ну блин, няша, я понимаю про что ты говоришь, но только вот дело в том, что если писать как вы говорите не получится универсально. В этом проблема, одни протоколы передают заголовком длину, у других конец отмечается разделителем, третьи вообще не предполагают что есть какой-то конец пакета, и коммуникация завершается при разрыве соединения. Я хочу чтобы все это было можно впихнуть в мой супер сервер просто описав протокол(его уровни, какие там данные, каким алгоритмом шифровать и это вот всё) и просто дописывать новые протоколы, не меняя ничего в логики приема реквестов и формировании респонсов, если они нужны. Т.е., условно, чтобы если мне нужно было новый протокол реализовать, я бы мог просто его описать, создать хэндлер и впихнуть его в сессию, и больше ничего не трогать.
Неужели ты думаешь, что я не понимаю о чем вы говорите? Блин, все я понимаю, только вот ваши советы подходят для конкретных реализаций, а моя цель - сделать мою хреновину универсальной.
Я, конечно, пока не придумал, как это все сделать чтобы мне понравилось. Например, в текущей реализации конкретного протокола(моего супер протокола), я вообще циклов для чтения не делал, у меня там стейтмашина, в которую записываю что при очередной итерации комменикации пришло, у стейтмашины - евент детекции пакета, который слушает хендлер, хендлер при срабатывании - формирует ответ и добавляет в очередь отправки. Таким образом само общение выглядит примерно так:
int readed = 0;
byte[] buffer = 0;
while(!session.Stoped){
readed = await stream.ReadAsync(buffer, 0, buffer.Lengnh);
sessionStateMachine.addAndParse(buffer,0,readed);
while(sendingQueue.Length >0)
await stream.WriteAsync(sendingQueue.Dequeue().ToBytes());}
}

В этой, более новой реализации, я от конкретики пытаюсь отойти. Плюс, меня смущает что сейчас у меня получается стейтмашина еще и сессией управляет(может закрыть ее, если пакет невалидный(слишком длинный, например), когда детектит пакет - отдает его хендлеру, который вообще на хую вертит сессию как свою шлюху, еще и в базу пишет, вообще стейтмашина и хендлер теми еще Ерохиными вышли и в них слишком много логики было и когда я попытался от них наследоваться чтобы другой протокол реализовать, слишком много нового кода пришлось присать, при том что отличие протоколов в наличии шифрования и отсутствии пары уровней).
.jpg163 Кб, 489x649
484 1552198
>>51688
Ну блин, няша, я понимаю про что ты говоришь, но только вот дело в том, что если писать как вы говорите не получится универсально. В этом проблема, одни протоколы передают заголовком длину, у других конец отмечается разделителем, третьи вообще не предполагают что есть какой-то конец пакета, и коммуникация завершается при разрыве соединения. Я хочу чтобы все это было можно впихнуть в мой супер сервер просто описав протокол(его уровни, какие там данные, каким алгоритмом шифровать и это вот всё) и просто дописывать новые протоколы, не меняя ничего в логики приема реквестов и формировании респонсов, если они нужны. Т.е., условно, чтобы если мне нужно было новый протокол реализовать, я бы мог просто его описать, создать хэндлер и впихнуть его в сессию, и больше ничего не трогать.
Неужели ты думаешь, что я не понимаю о чем вы говорите? Блин, все я понимаю, только вот ваши советы подходят для конкретных реализаций, а моя цель - сделать мою хреновину универсальной.
Я, конечно, пока не придумал, как это все сделать чтобы мне понравилось. Например, в текущей реализации конкретного протокола(моего супер протокола), я вообще циклов для чтения не делал, у меня там стейтмашина, в которую записываю что при очередной итерации комменикации пришло, у стейтмашины - евент детекции пакета, который слушает хендлер, хендлер при срабатывании - формирует ответ и добавляет в очередь отправки. Таким образом само общение выглядит примерно так:
int readed = 0;
byte[] buffer = 0;
while(!session.Stoped){
readed = await stream.ReadAsync(buffer, 0, buffer.Lengnh);
sessionStateMachine.addAndParse(buffer,0,readed);
while(sendingQueue.Length >0)
await stream.WriteAsync(sendingQueue.Dequeue().ToBytes());}
}

В этой, более новой реализации, я от конкретики пытаюсь отойти. Плюс, меня смущает что сейчас у меня получается стейтмашина еще и сессией управляет(может закрыть ее, если пакет невалидный(слишком длинный, например), когда детектит пакет - отдает его хендлеру, который вообще на хую вертит сессию как свою шлюху, еще и в базу пишет, вообще стейтмашина и хендлер теми еще Ерохиными вышли и в них слишком много логики было и когда я попытался от них наследоваться чтобы другой протокол реализовать, слишком много нового кода пришлось присать, при том что отличие протоколов в наличии шифрования и отсутствии пары уровней).
485 1552202
Посмотрел исходники .net core и заметил что там почему-то using'и внутри неймспейсов вставляют. В чем профит? И почему, если в этом есть профит, студия их все равно засовывают в самый верх исходника?
486 1552205
Какие основные недостатки разработки шарпа под андроид или иос?
487 1552215
>>52205
2-3 года назад замарин требовал от тебя слишком много знаний специфики обоих платформ, при этом чтобы что-то красивенькое сделать, нужно было слишком много самому писать или ебашить с помощью браузера, лол, в то время как у нативной разработки куча всего было из коробки либо на расстоянии вытянутой руки, и выходило что написать два приложения по времени и затратам было проще чем ебаться с кросплатформенностью замарина. Ко всему, 2 года назад была куча багов внутри самого замарина, которые никто не спешил фиксить. Потом я съебался из той конторы и не знаю как сейчас с замарином дела, но т.к. от тех кто остался я слышал, что в фирме решили таки нанять таки IOS и андроид разрабов, вместо того чтобы ебать замарин, думаю не особо лучше.
image.png21 Кб, 180x169
488 1552236
>>52215
Благодарю анон, за инфу.
489 1552452
>>52198
Такие универсальные штуки уже сделаны - TCP/UDP. А дальше поверх их реализуешь свою логику описав протокол(его уровни, какие там данные, каким алгоритмом шифровать и это вот всё) и просто дописывать новые протоколы, не меняя ничего в логики приема реквестов и формировании респонсов, если они нужны. Т.е., условно, чтобы если мне нужно было новый протокол реализовать, я бы мог просто его описать, создать хэндлер и впихнуть его в сессию, и больше ничего не трогать.
490 1552503
>>52452
Каждый раз заебисто писать как собирать байтики в объект чтобы работать с ними уже в твоем приложении, няша. Хочется чтобы просто описал то как данные должны выглядеть, какие типы пакетов есть и все это, и у тебя при получении таких вот данных рождались объекты нужного вида, с которыми ты уже можешь роботать и логику работы самого приложения строить.
491 1552512
>>52503
это сериализация. и никакие серверы для этого не нужны.
вот например декларативная сериализация для любых протоколов https://github.com/jefffhaynes/BinarySerializer

хотя я считаю что этого не стоит. гораздо проще наскриптовать решение под конкретную задачу, чем писать какую-то универсальную программируемую систему.
новички особенно страданием созданием абстракций систем.
492 1552543
>>52512
Хм, и почему не стоит-то? Выглядит удобно вроде как.
493 1552769
Поясните ньюфаг, а нахуя нужны все эти манипуляции с переопределением и использованием методов System.Object? Какой от этого профит разработчику?
494 1552776
>>52769
ToString - потому что многие стандартные методы используют его для отображения пользователю. Например, вывод в консоль или вывод в контрол WPF/WinForms.
Equals для того чтобы стандартные методы и методы библиотек могли правильно сравнивать объекты твоих классов.
GetHashCode для того чтобы объекты твоих классов можно было безопасно помещать в хэш таблицы и использовать в качестве ключей словаря.
495 1553108
>>44228
Проще, чем был для меня фронт потому что после ТСа большая часть вещей очевидны сходу. В делегатах и событиях за часок разобрался, хотя итт вон люди по нескольку раз спрашивают эту хуету.
Сижу вечерами в качестве развлечения за изучением шарпа пока что.
496 1553512
Перекатывайте уже, мне вопрос задать надо
image.png20 Кб, 840x460
497 1553570
Встал вопрос накатить бэкенд на что-то типа джавы, потыкал даже в скалу и котлин (и немного вляпался в го), но потом вспомнил что сделали кроссплатформенный ASP.NET Core и чет прям проникся я шарпом.

В общем, я решил активно продолжать вкатываться в сей шедевр, но хотелось бы перед всем этим услышать все возможные подводные камни ASP.NET Core на линуксе (если таковые имеются). я программист пуганый, поэтому критику нормально воспринимаю.
498 1553571
.NET Framework 4.0 рулит! Вся хуйня, которая на фреймворках выше - она обратно-несовместима, неполноценна, и непортабельна.
499 1553581
>>53570

>подводные камни ASP.NET Core на линуксе


Сейчас самому впердолить практически нереально даже моно, приходиться ставить бинарники
500 1553582
>>53581
Ты имеешь ввиду собрать из исходников? А чем (в этом контексте) плохи бинарники?
501 1553583
>>53582
Куй пойми что вообще ставится и происходит
502 1553588
>>53583
Не пойму тебя, нормально объясни. Не поймешь какие бинари куда кладутся или что?
image.png220 Кб, 501x373
503 1553589
Как же так? Кроссплатформенность же завезли!
504 1553596
>>53588
Ну все вытекающие проблемы из бинарников, бля

Заблоаченые блобы со всем, что можно
Танцы с бубном, если %либанейм% отсутсвует или тем более что-нибудь динамическое типа glibc неподходящей версии
Возможные конфликты зависимостей поставленных одновременно рантайма и сдк
Ожидание, пока кто-то наконец родит пакет последней версии, победив весь депенденси хелл

Это просто пиздец, учитывая, что все давно опенсорснулось
505 1553623
>>53596
Звучит как-то странно для официальной поддержки, тем более что для МС это официальная кормушка для azure.
Можешь реальный пример, а то выглядишь как зеленый.
506 1553626
>>53623

>Можешь реальный пример


Попробуй собрать сам, лол
507 1553636
>>53626
Да ну нафиг мне ее собирать, когда есть пакеты уже.
image.png152 Кб, 1837x979
508 1553643
https://www.opennet.ru/opennews/art.shtml?num=50641
Нехренатушки, во время я решил накатить шарпея.
509 1553693
>>53643
Выглядит как очередная попытка майков поднять обосранные штаны. WPF мёртв, WinForms мёртв, все приложения переделывают в SPAшки, переписывая на ангуляр. В качестве фреймворка для разработки предлагают ебанный Electron, которым пользуются JS макаки (производительность соответствующая). Сделали код опенсорсным когда он уже нахуй никому не нужен, сейчас выкатят какую-нибудь забагованную хуету, ебатся с которой никто не захочет, все будут использовать уже проверенные решения. Даже не знаю на что майки надеятся.
510 1553706
>>53693
Как бы тебе сказать то помягче, десктоп давно уже практически мертв. Что ты там ожидаешь нового? Это уже узкая ниша. В любом случае, залёт хотя-бы части шарп разработчиков на линух, сделает его хотя бы частично юзабельнее.

>забагованную хуету, ебатся с которой никто не захочет


Это слияние всех проектов, дотнет становится полностью опенсорс и един.
Надеюсь они захватят долю wasm, когда тот станет вменяемым и вопрос о выборе языка перестанет быть актуальным.
511 1553714
>>53706
Не мёртв, если речь идёт о программах, которые работают на маке, линуксе и винде одинаково. А не для десктопа у шарпа есть только бэкенд, в котором он далеко не лидер.

> захватят долю wasm



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

.
512 1553730
>>53714
Да, да, мы все поняли, Шарп не нужен, Майкрософт обосрались, дотнет мертв. Съеби уже из треда, которую неделю срешь, клоун
513 1553736
>>53714
А как же TypeScript? Он сейчас в трендах.
Тот же IoT и POS на Винде намного более вменяемый, чем лютый пердолинг с иксами на Линуксе.
514 1553748

>wasm


Это технология, которая позволит писать полноценный апплиухи без реактов и прочей тормозящей херотени. Если кучка программистов пытается сделать что-то с DOM, когда все взаимодействие происходит через js и тормозит как js. То конечно, это вызывает много вопросов.
Мне почему-то кажется, что все не до конца понимают зачем это все делают.
Кстати уже играются - Blazor.

>в котором он далеко не лидер.


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

Дотнет достойная технология, с качественными решениями, в которую реально инвестируют немалые ресурсы. осталось только пара балбесов линуксоидов из нулевых, которые не выросли мозгами и вечно воют с маздаем.
515 1553808
>>53748
blazor это хуита, которая интерпретирует .net код и подгружает весь ебаный рантайм для своей работы. У этого нет будущего.

Надо ждать когда в wasm завезут сборку мусора, может тогда получится хоть как-то транслировать net код.
516 1553817
Может кто не объяснить, что вообще событие делает? Допустим в данном случае. Нихуя ведь не вызывается, просто this и какой-то пустой EventArgs. Такое ощущение, что просто так написали эти строчки кода. Больше нигде событие и не используется
517 1553829
>>53817

>Может кто не объяснить, что вообще событие делает?


вызывает по очереди все методы, ссылки на которые были добавлены к этому делегату.
image.png62 Кб, 1238x591
518 1553833
>>53829
Но тут же у делегата только объявление ивентов
519 1553858
>>53833
Ты туда можешь добавить свой метод, который вызовется
520 1553890
>>53858

>можешь добавить


В данном случае, событие ничего не делает?
521 1553916
>>53890
Зачем делать событие, которое что-то делает?
522 1553919
>>53916
Двачую. Событие УЖЕ произошло. Как оно может что-то сделать, лол? Какие же тупые двачеры пошли.
523 1553924
>>53919
Нихуя не понял. Здесь какая-то хуита. Просто сделали какую-то хуйню чтобы просто так её вызвать
524 1553951
>>53924
Блять. Событие ничего не делает. Это обработчик событий может что-то сделать.
525 1553966
>>53817
Передает объект в метод, который подписан на событие. Ты же не можешь обработчик для каждого отдельного случая предугадать, поэтому у тебя есть event, который передает параметры и принимает методы, которые будут обрабатывать эти параметры в определенный момент времени - в данном случае во время начала/конца/прогресса копирования. Как они это будут делать - их дело, сколько их будет тоже неважно.
Удобно это и тем, что обработчиков вообще может не быть, что их можно добавлять, а потом убирать. Вот была бы у тебя программа с прогресс баром, ты бы вставил в метод, где сейчас event, обычный обработчик, который отображает прогресс загрузки файла. В итоге для кастомизации (например, если ты не хочешь чтобы этот прогресс отображался), тебя нужно было делать отдельную переменную, которая проверялась бы каждый раз. Если бы ты хотел отображать загрузку каких-то определенных файлов, то и для этого нужно было делать отдельные переменные-флаги. С событием всё это делать не нужно. Ты просто добавляешь обработчик, когда он нужен и удаляешь его, когда не нужен. Для отдельных файлов тоже самое, при этом для перезаписи логики обработки тебе не нужно лезть в код основного метода в котором это событие вызывается.
526 1553971
>>53966
Вроде понял. Спасибо
527 1554293
>>53808

>когда в wasm завезут сборку мусора


Ну вот, ты уже и сам понимаешь что wasm не в конечной стадии сейчас.
528 1554311
>>54293
...и местами он будет даже не про html другой вопрос как на это согласился гугл и эпл, так как это будет прямой конкурент мобильным приложениям
529 1554425
>>54311
wasm это не замена, а дополнение. Смысла заменять им мобильные приложения нет, потому что по скорости будет проигрывать. wasm выигрывает только в тех местах, где нужны глубокие и долгие вычисления.
530 1554547
>>54425
Про замену ты сам сейчас написал.
Полноценные сайты-приложения, убьют потребность в половине существующих мобильных круд-приложений.
В общем, риа-сайты очень невыгодны мобильным вендорам, не зря же флеш и прочие плагины так убивали.
531 1555375
Немного не в тему, но Version controll thread is dead, so
Объясните на пальцах, как работать с Git-ом командой. Везде пишут, что задача проект дробится на задачи и над проектом в одно время работают N человек, которые создают N веток. У меня вопрос: Как мерджить в master, чтобы код добавлялся, но не выпиливал куски другого кода. Объясню еще проще: Если проект разбить условно по версиям:
Path1 version = 1.0
Path2 version = 1.0
Path3 version = 1.0
Над проектом работает 3 человека, каждый работает над своим куском. Когда начинаем мерджить в master, то что получается:
Мерджит 1 человек свой Path1:
Path1 version = 1.1 (условно)
Path2 version = 1.0
Path3 version = 1.0
Мерджит 2 человек свой Path2:
Path1 version = 1.0 (тут должен быть 1.1, но когда человек начинал разрабатывать проект, то версия его ветки была 1.0 и соответственно ее и замещает в master)
Path2 version = 1.1
Path3 version = 1.0
Спасибо за ответ
532 1555467
>>55375
уже подсказали в Version Control треде
533 1555700
Всем похуй на перекат?
C !ndViRcEtb2 534 1555704
535 1572367
Привет, ребят, как можно в асп в конфигах (xml которые) сослаться через configSource на файл, который лежит в директории, которая на уровень выше, чем та, где я храню свой конфиг?
536 1576141
через ../ попробуй
537 1581354
>>76141
никогда, configSource требует расположения файла в той же директории или директорией ниже
Тред утонул или удален.
Это копия, сохраненная 9 февраля 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски