Этого треда уже нет.
Это копия, сохраненная 18 ноября 2019 года.

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

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

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

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

Прошлый тред тонет здесь: https://2ch.hk/pr/res/1482351.html#1498035 (М)
2183202145b4aa3e1fc751e84757b24b4f8030615800.gif1,8 Мб, 540x304
2 1499747
>>499746 (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
2183202145b4aa3e1fc751e84757b24b4f8030615800.gif1,8 Мб, 540x304
2 1499747
>>499746 (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
ogog1471255267239651477.jpg67 Кб, 1200x628
3 1499749
>>499747
Сообщение от ОПа.
Привет мой дорогой, няшный анончик. В конце 2018 года я вкатился в этот тред в надежде получить знания об этом языке программирования и с огромной страстью накинулся на все ресурсы что были в шапке. Тогда я ещё не знал что это изменит мою жизнь. Так, что я до сих пор нахожусь в эйфории. Я устроился на новую очень хорошо оплачиваемую работу. Мои проекты помогают компании, людям и в целом лично для меня приносят радость уже тем, что я делаю что-то нужное и важное.
Всё это благодаря тебе анончик! Ты сделал мою жизнь счастливой. :3
48671d6c820f9810c8193b7caee0f949.png177 Кб, 380x304
4 1499760
>>499746 (OP)
Зачем здесь аниме и кошкодевочки? Это скорее про всякие Линуксы и прочий фри софтвер, а Майкрософт для серьёзных уверенных в себе мужчин.
Dr0xaSqVsAI5a6c.jpg large.jpg21 Кб, 422x480
5 1499766
>>499760

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


Да
6 1499772
>>499760

>кошкодевочки


>девочки


Но ведь на фото серьёзный и уверенный в себе мужчина, рыцарь ордена и второй человек в государстве!
7 1499797
>>499749
А я нихуя не вкатился, это энтерпрайз говно, на которое сложно попасть студенту, лучше бы во фронтенд вкатывался, уже бы рубил 3000k/нс
forman.jpg61 Кб, 720x951
8 1499804
>>499797

>студенту


>энтерпрайз


А ты чего ожидал? Ясен пень никто не хочет платить 300к в наносекунду работнику, который пол дня проёбывается на парах и берёт кучу отпусков на экзамены.
9 1499821
>>499746 (OP)
Что такое StateFull класс? Спросили на собеседовании, я аж подохуел.
sage 10 1499824
>>499804

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

11 1499826
>>499821
Stateful может хранить какое-либо состояние между запросами, соответственно контейнер имеет пул таких бинов и для каждой сессии выделяет отдельный экземпляр.
sage 12 1499827
>>499821
Маньки рваные загуглили ооп и начали тебя ебать.
Обычный класс это с данными.
13 1499829
>>499824
Ну с таким подходом можно только дворы подметать.
sage 14 1499831
>>499829
Программирование - это призвание, верно?
Методичку не обновили ещё на съездах манагеров?
forman.jpg61 Кб, 720x951
15 1499832
>>499831
Ты понимаешь что только что сам себе придумал вопрос, сам на него ответил, сам загорелся и теперь у тебя претензии почему-то ко мне. Ты Ебанутый?
16 1499834
>>499832
Он тёлка, это прям шаблон бабское мышление. Самой придумать проблему и обьдеться.
sage 17 1499836
>>499832

>программист обязан сидеть в офисе 24/7


>ты не прав


>иди дворы подметать


>я не ретард я просто троллю /pr/

sage 18 1499837
>>499834
найс семенишь, на швабре забанили?
19 1499840
>>499836
Ты в курсе что рабочий день 8 часов, иногда и меньше? С чего ты взял 24 часа? И да, если тебе СЛОЖНА сидеть в офисе 8 часов за 300к - пиздуй дворы подметать.
20 1499841
>>499837
Это ты у нас спец по ответам самому себе.
sage 21 1499851
>>499840

>ну не 24 а 8 мам ну скажи


Пидорашка у которой работа в количестве измеряется, ты?
В тырпрайзе на поддержке что ты собрался 8 часов подряд безвылазно ебашить?
Начальник или манагер уже выдрессировал, что если он не видит тебя на рабочем месте, то это сразу атятятя к зарплате?
22 1499855
>>499851

>тырпрайзе на поддержке


А, ты видать бордой ошибся, тут программач, тут Программы делают, а не поддерживают.
23 1499860
>>499851
Всё правильно, с утра двор подмёл потом бояры наебнул, 8 часов работать не надо.
24 1499874
>>499851

>Что делать 8 часов на работе


Работать, блядь. Таски сами себя не делают.
Скажи нахуя нанимать чмошника который будет ныть что его работать заставляют, если есть люди которые и приходят на работу работать?
sage 25 1499876
>>499874
Делаю таски за час, что со мной не так?
26 1499886
>>499746 (OP)

>>1499476

>Как скомпарю все эти изменения + ещё свои некие - выложу кот.


Готово, наконец!
Посему, я просто оставлю здесь это:
https://github.com/username1565/nanoboard/commit/0710cea17d73eb7aadad7c2326897fa52e3c459c
И да, я так и не дождался критики самой идеи НАНОБОРДЫ - от анона: >>1498897
Изливай своё уже, обоссым.
27 1499988
>>499876

>что со мной не так?


Пиздабол является ответом на вопрос?
28 1499996
>>499876
Помоги другим значит, хули без дела сидишь хуесос.
29 1500022
>>499876
Значит у вас манагеры/лиды проебываются, что человек на работе есть, а задач для него нет. Кайфуй пока не просекли, хули.
30 1500037
>>500022
На самом деле есть разные методы.
Например Cont improove - подразумевает что у тебя всегда забито всё.
DevOps - подразумевает что ты чинишь только сломанное,
Developer - я тебе дал ТЗ, сделай прогу.
В данном случае человек вообще не вдуплает в энтэрпрайз. Ибо это экосистема. Ты обновил одну прогу, которую юзает финансовый отдел, а там сидел хуй который в 2015 уволился, но он написал скрипт на Excel который импортил из твоей проги, так что ебись. Но таких хуёв 10, а отделов 20! При этом прога завяззана на 10 других прог, пожтому твоё обновление накрыло пиздой международую корпорацию. ЭНТЭРПРАЙЗ СУКА! Тот тролящий пидорас который думает что 8 часов - много, нихуя не работал в энтерпрайзе, он работал в рога и копыта на 15-50 человеки вообще не вдупляет за что синьора называют так и а что дают 300к! Вот блядь за это!
31 1500185
>>499996
мне за это не платят
>>500037
Галерному рабу неприятно
32 1500218
>>500185

>мне за это не платят


Кончено, тебе платят за чистый двор.
image.png44 Кб, 737x481
33 1500288
Лол, а в джаве со времен 1.0.2 есть
import static Classname
34 1500363
На следующей неделе собеседование предстоит. Судя по ожидаемой зарплате middle+, что сейчас модно спрашивать по ASP.NET?
Screenshot1.png13 Кб, 719x330
35 1500438
Почему после вхыода из цикла IF, переменная arrAllFiels зануляется?
При работе диалога имя файлов записываются как надо, а после выхода из цикла null.
Что я делаю не так?
36 1500439
>>500438
Не цикл, а условие, конечно же.
37 1500442
>>500438
Если ты хочешь в static переменную, которая у тебя торчит вне метода что-то записать, то нахуя ты создаешь локальную переменную с тем же именем внутри самого метода?
Что ты вообще пытаешься сделать?
38 1500443
>>500218
У тебя какая-то фиксация на подметании, хочешь об этом поговорить?
39 1500470
>>500438

>Почему после вхыода из цикла IF, переменная arrAllFiels зануляется?


Потому что она объявлена внутри цикла.
40 1500471
>>500470
Не цикла, а условия, конечно же.
41 1500504
Добрый день!
Подскажите что не так с кодом работает на половину.
Ввожу данные массива с клавиатуры есть отдельный метод
и потом вот такой код и задание.Работает корректно только если в массиве нет повторения минимального элемента и только одно отрицательное значение.

//Найти номер первого минимального элемента.
public static void FindIndexFirstMinElement(int[] array)
{

int minelement = array[0];
int minindex=-0;
for (int i = 0; i < array.Length; i++)
{
if (array <= minelement)
{
minelement = array;
minindex = i;
Console.WriteLine("min element");
Console.WriteLine(minelement);
Console.WriteLine("index min element");
Console.WriteLine(minindex);

}

}
42 1500523
>>500504
Как понять первого минимального элемента массива? А есть второй, третий минимальный? А максимальных сколько?
43 1500525
>>500523
Ну вот массив в нем {0,1,2,1,0,0}
И нужно найти индекс первого минимального элемента.
Хотя в массива минимальных элементов несколько.
44 1500527
>>500525
if (array < minelement)
И не будет тебе такой же элемент присваиваться
45 1500543
>>500470
>>500442
Спасибо, аноны. Я уже закончил приложение, и можно сказать лишился программной девственности. не считая хеллоуворлда, конечно

>Что ты вообще пытаешься сделать?


Нужно было сохранить имена файлов в массив, чтобы я мог их обработать в дальнейшем, для вставки в ворд.
46 1500548
>>500543
Листвы ты лишишься при выполнении первого таска на реальной работе. Пока ты только мастурбируешь и кончаешь.
47 1500563
>>500527
Что то ты хуиту написал как можно массив сравнивать с переменной?
48 1500599
>>500563
Нет, это [ i ] из-за разметки на дваче стерлась
я думал ты догадаешься
49 1500795
>>500599
Не догадался)
Но потом так и сделал изменил <= на <
50 1500805
>>500795

>Не догадался)


Ну ты ж шарпист.
А я на самом деле из джава-треда заглянул.
51 1500823
Я правильно понимаю, что после выхода .NET 5 Джава ВСЁ?
52 1500846
>>500823
ты не представляешь, какое количество проектов написанно на джаве, которые так же будут саппортиться десятками лет. К тому же джава не стоит на месте и никто не знает, что будет в следующем релизе
53 1500940
Вопрос про IDataErrorInfo, что я должен указывать в Error? Я знаю что есть более предпочтительный INotifyDataErrorInfo
54 1500967
В общем вот код. Как в нем обработать исключение когда все числа массива одинаковы
//Найти номер первого минимального элемента.
public static void FindIndexFirstMinElement(int[] array)
{
int minelement = array[0];
int minindex=0;

for (int i = 0; i < array.Length; i++)
{
if (array < minelement)
{
minelement = array;
minindex = i;

}

}

Console.WriteLine("min element");
Console.WriteLine(minelement);
Console.WriteLine("index min element");
Console.WriteLine(minindex);

}
55 1500968
>>500953 (Del)
Ты проебал сравнение элемента
if(array == array[0])
56 1500971
>>500968
Или нет, array[переменная i] у тебя там есть и это просто макаба сожрала?
Лей на пасту или ideone как нормальные люди
57 1500982
>>500971
Сожрала
image.png74 Кб, 1003x616
58 1500983
59 1501030
>>500288
К чему это ты написал? А их в шарпе когда-то не было?
60 1501032
>>501030
В 6ом шарпе это появилось. В 2015 году.
61 1501154
>>500288
Саня, ты?
62 1501533
>>501030
Ты даже историю собственного языка не знаешь? Хотя зачем вам, у вас каждые 3 года проект уже переписывать с нуля надо.
image.png90 Кб, 1206x620
63 1501610
Второй день ебусь с исключением если в массиве все элементы одинаковые должно быть сообщение. И как его вывести что бы весь код не выполнялся остальной
Вот весь говнокод значения ввожу с клавиатуры.
Безымянный.png6 Кб, 397x206
64 1501632
>>501610
Сначала научись нормально изъясняться. Вот тебе метод проверки, все ли элеметы массива одинаковые.
65 1501639
>>501632
В общем у меня задание вывести на консоль индекс первого минимального элемента массива. Этоя сделал. Но мне еще нужно обработать одно исключение когда в массиве все числа.одинаковые.
Вот как это проверить я хз.
66 1501658
>>501639
А, так исключение не в смысле exception. Ну так и пиши If(AreTheySame)
{
//показать сообщение
return;
}
67 1501679
>>501639
Что то не понял.
68 1501699
>>501639
Ты же блядь уже это проверил в своем коде
69 1501723
Ну и тред у вас одни вкатывальщики и/или секта святой поделки от Билли. Который спиздил гуй у джобса в 80-ых.
70 1501735
>>501723

>спиздил гуй у джобса


просто сотона
71 1501752
>>499746 (OP)
Добрый день, анон.
Есть проблема - сижу и пишу код в небольшой компании, базовый синтаксис вроде знаю, кое-что понимаю об алгоритмах, но чувствую постоянно какую-то нехватку знаний и компетенции на тезх же собеседованиях. Подскажи пути роста с джуна до уверенного мидла, м.б. книги, курсы, программы. Предвижу - да, читать, конечно, но с чего начать и на что обращать внимание? Заранее спасибо.
72 1501774
>>501752

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


Этого сейчас достаточно для джуна, что ли?
73 1501779
>>501774
Я сам в ахуе
мимо не берут после прочтения всего Троелсена
74 1501781
>>501699
Так да но вывод получается на каждое значение массива и все равно находит первый элемент как минимальный
75 1501786
Как организована память в шарпе? В стеке хранится все?
76 1501822
>>501779
Я с тебя в ахуе
мимо взяли после не всего Троелсена
77 1501825
>>501752
Рихтер. SQL дрочи, DI, вырой книги не для начинающих и ебашь-ебашь, leetcode/codewars/codingame в помощь
мимо предыдущий охуевший си-шарп джун
78 1501836
>>499746 (OP)
Есть сервер и клиент на C# https://metanit.com/sharp/net/3.2.php
Этот код немного модифицирован так, чтобы принимать много байт в одном сокете, а не создавать кучу других.

Вопрос: Как можно эту хуету использовать в браузере?
Ну, чтобы одно соединение открыть, и приёмо-передавать данные туда, а не открывать кучу соединений ёбанных,
по принципу запрос-ответ.
Слышал что можно как-то Keep-Alive соединение открыть, по HTTP 1.0, только блядь как это кодить сервер этот грёбанный, и как к нему с браузера коннектится - хуй знает... Поясните!
79 1501857
>>501786
Как ты себе это представляешь?
У каждого треда свой стек по мегабайту.
Есть еще куча где хранится все подряд.
Дальше сам нагуглишь.
80 1501866
>>501825
Спасибо.
81 1501867
>>501825
Спасибо.

мимо-джун-с-тремя-годами-опыта

Хотя мне все-равно западло, если это не требуется.
82 1501919
>>501836
Вот, смотрите что нарыл: https://stackoverflow.com/questions/10200910/creating-a-hello-world-websocket-example
У этого чела какой-то заголовок в консоли выводится, а потом соединение закрывается. Работает, проверял.
Дальше всё по-английски и непонятно нихуя, это всё ещё и допиливать надо.
Есть у кого-нить примеры сервера на C# и клиента на JavaScript?
Ну, чтобы через websockets лишь одно соединение установить, и уже туда, в это соединение - писать и получать инфу...
83 1501987
>>501533

>историю собственного языка


Это не мой язык, я его не писал. Я на нём писал впервые в 2015 году.
84 1502009
Почему в C# нет полноценных шаблонов (таких же, как в C++)? Это что, так сложно реализовать?
85 1502010
>>501919
socket и websocket не одно и тоже. А тебе советую взять SignalR и не ебать мозг.
86 1502011
>>502009
Какие задачи темплейтов не покрывают дженерики?
87 1502012
>>502011
Не знаю, может быть в C# это и не нужно. А в Джаве тогда почему не сделают шаблоны/нормальные дженерики? Там же хуета с преобразованием типов в рантайме, выходит накладно.
88 1502025
>>502012
Потому что джава поддерживает легаси говно вплоть до первых версий.
89 1502044
>>502025
А разве нельзя ввести новую фичу, оставив при этом старую?
90 1502047
>>502044
Дженериков изначально не было в первой версии жавы, и так как они были введены в язык позже, для сохранения обратной совместимости действуют только на уровне исходного кода, в байт-коде их нет.
91 1502140
>>502044
Можно.
Но тогда придется переписывать триллиарды библиотек, которыми все пользуются, но в которой этой новой фичи нет.
92 1502164
>>501822
Ну молодец
93 1502176
Мы пометим тот тред, где сидит пидорас.
94 1502359
>>502010

>socket и websocket не одно и тоже. А тебе советую взять SignalR и не ебать мозг.


SignalR на Windows XP не ставится, и под .NET 4.0 не билдится, даже версия 1.1.3. Просит какой-то nuget package, отсутствующий.
Поэтому, поставил пока WebSocket Server в виде Fleck2. https://github.com/peters/Fleck2
Сбилидлось нормас, и вроде как даже работает demo.
Как теперь этот WebSocket-сервер в наноборду встроить - ума не приложу.
https://github.com/username1565/nanoboard/issues/5#issuecomment-544768616
95 1502887
Индексаторы классов используются на практике? Столько ебаных фич напилили, вроде бы не просто так, но уместить в голове все способы взаимодействия объектов в ООП просто нереально.
96 1503398
97 1503488
>>503398

>111


Не совсем понял тебя.
Но SignalR версии 1.1.1 - тоже чё-то не билдится. Опять же, по той же причине. Сначала запускается nuget, открывается какое-то соединение, и после этого, соединение разрывается...
Я пока Fleck2 чутое подправил, вроде работает и компилируется.
Вижу при работе demo - одно открытое соединение в фаерволе, и байты передаются по нему одному.
И много соединений не открывается.
98 1503926
>>499746 (OP)

>Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.


Блядь, ну это то можно и исправить уже в шапке. Rider чуть более чем полноценная замена мерзкой студии.
99 1504033
>>503926
Нет.
100 1504084
image.png65 Кб, 960x672
101 1504190
Гайс читаю Троелсена, .NET Core изучаю, но т.к. даже ASP .NET я не юзал(так же прошелся по Троелсену), не догоняю че за сервисы зачем они нужны и их конфигурирование. Есть что почитать(для начала в общих чертах), чтобы догнать все возможности и тонкости, которые можно прикрутить в Core и понять зачем они вообще нужны?
В книге как-то высрано непонятно, плюс бывают ошибки, которые пока фиксишь теряешь нить нахуя это вообще делается. Отразить че вообще делается на скрине.
102 1504195
Возможно ли из дочерней формы вытащить переменные в главную и посчитать их там, если мне нужно из таблицы в дочерней в массив внутри главной?
103 1504199
У меня тупой вопрос.
Что лучше использовать TcpListener или Socket?
104 1504227
>>504190
Сервисы - это инстансы в DI контейнере приложения. Есть встроенные типа DbContext, но ты можешь туда засунуть любой класс.
105 1504320
>>504199
Для чего?
106 1504321
>>504033

Да. Использую Rider вместо VS, все охуенно.
scheme.png41 Кб, 633x1389
107 1504330
Решил сделать трехзвенку с связью на wcf. Как сделать юзерские сессии и аутенфикацию? Пока придумал только что-то похожее на пикрелейтед для создания токенов, которые при каждом запросе на который необходима авторизация отправляются, но даже то что я придумал не работает.

По сути мне просто нужно сделать:
1. Либо сервер логинит пользователя и держит его сессию со всеми данными для авторизации. Это реализуемо, если у нас wcf построен на сервисной модели и вызовы между сервисами как бы не связаны
2. Либо север с клиентом договариваются как генерировать секьюрити токен и им сопровождаются все авторизуемые сообщения. Но я пока не смог придумать как это реализовать грамотно.
108 1504342
>>504330

>1. Либо сервер логинит пользователя и держит его сессию со всеми данными для авторизации. Это реализуемо, если у нас wcf построен на сервисной модели и вызовы между сервисами как бы не связаны?


фикс
109 1504361
>>504321
А что в vs тебе не охуенно было?
110 1504389
Так как стаковерфлоу для лохов, которые не боятся деанона их тупых вопросов, пишу здесь:
1) Как работает эта поебень на первых двух пиках? Я не пишу new Either<>..., а просто пишу через равно сразу или string, или int. При этом даже с варом шарп все понимает. Как бля? Что это за черная магия? мне кажется, она со struct связана
2) Почему на третьем пике оно не приводится, если в конце не дописать toList() или не сделать так:

>return EitherStrict.Right<Response, IEnumerable<Response>>(nextPossible.Right.Where(t => t.Suitable(m, a))


.Select(t => t.Execute(m, c, a, nextPossible)));
?
image.png7 Кб, 283x82
111 1504392
>>504389
Упс, первая пикча отклеилась
112 1504592
>>504389
1. Читай про implicit и explicit операторы, они позволяют производить неявное/явное преобразование типов.

>даже с варом шарп все понимает


не верю. Вар это указание компилятору самому вывести тип переменной, исходя из правой части выражения. Т.е. в е бе\удет стринг. А вот при передаче строки в solve будет произведено неявное (implicit) преобразование.

>она со struct связана


мимо
2. Компилятор говорит, что запрос возвращает коллекцию респонсов, а возвращать метод должен вернуть EitherStrict<Rsponse, IEnumerable<Response>>. Мне не видно от сюда что у тебя там за классы, так что подробности смотри сам.
.png4,5 Мб, 2031x2952
113 1504645
>>504320
Для TCP-сервера.
114 1504658
Сап двачик, такой вопрос. Когда я делаю запрос к апи на пхп, то пишу что-то вроде

>$response = json_decode(file_get_contents("https://2ch.hk/VKids.json (М)"), true);


>echo $response[250]["LastName"];


И таким образом имею доступ ко всем данным. И я никак не могу нагуглить работающую альтернативу этому простому и понятному способу на C#. Реквестирую аналог.
15426720365540.jpg24 Кб, 468x520
115 1504661
Сап шарписты. Есть идеи как перегрузить операторы "<" и ">", которые будут принимать только один параметр ?
116 1504669
>>504661
Нахуя
117 1504671
>>504658
И сразу бамп, помогите плиз очень нужно сегодня пиздос....
118 1504680
>>504669
Ну вот препод мол сказал. Перегрузи мне операторы ">" и "<", чтобы я по списку летал туда сюда. Сам охуел от такого расклада, но сказано сделать.
119 1504689
>>504680
Так с чего ты решил что тебе нужно сделать унарный оператор? Не вижу этого в постановке задачи
120 1504694
>>504689
Ну допустим у меня первым параметром будет экземпляр списка, а второй какой будет ? Не могу же я в шарпах передать поток ввода/вывода ?
121 1504696
>>504658
Бамп вопросу
122 1504768
>>504694
Делегат?
123 1504815
>>504645
Тогда, очевидно, твой выбор TcpClient/TcpListener.
124 1504832
>>499746 (OP)
Благодарю
125 1504850
>>504592

> implicit и explicit операторы


спасибо анон, теперь узнал что это такое.

>не верю.


Ты прав, происходит неявное преобразование через implict. Правда я не понимаю, почему оно не приводит неявно тип, если юзать ienumerable, а не list, array и тд.
Безымянный.png64 Кб, 1258x601
126 1504941
>>504680

> по списку летал туда сюда.

image.png126 Кб, 1154x836
127 1504961
Нужна помощь Я тут наговнокодил и не понимаю 2 момента
Число в массив ввожу с клавиатуры
1.Верно ли я нашел минимальный и максимальный элемент массива
2.Почему суммы не считается как надо
128 1504967
>>504961
Тебе точно нужна сумма всех элементов кроме minElement и maxElement, или все-таки сумма элементов с индексами между minIndex и maxIndex?
129 1505007
У меня начинается батхёрт. Причём такой нехилый. Постоянно на работе доёбываются до кода. Но непо существу а по каким-то вообще абстрактным понятиям.
Например могут доебаться до того, что я при запиле программы не сделал кучку функционала отдельной библиотекой, чтобы потом можно было её юзать в других проектах. Или например какая-то прога написанная непойми кем вдруг потребоавала изменений буквально неделю назад. Изменения уровня "Поставь один if если переменная будет превышать размер в 70 символов." Сделал@отдал. Претензия "А чего ты не переписал всё под MVVM? А чего ты класы не использовал? А потом ведь поддерживать дубет хреново." Да вы с 2012 её нихуя и так не поддерживали. Задачу я решил? Решил, чё блядь вам ещё от меня надо? Откуда вообще такое вот лезет то? Зачем каждый более менее опытный программист пытается свою парадигму на меня применить? Главное ведь решение задачи, а уже потом чтобы всё было внутренне красиво.
130 1505014
>>504961
1. неверно
2. даже не стал смотреть

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

Да иди ты на хуй!
131 1505021
>>504961
1) Нет. Сравнивай с минамксэлементом а не с первым в массиве, да и иинициализируй их минмаксинтом.
2) Потомушо ты сравниваешь со значеим минмаксэлемента, а не индексы. Да и вынеси рэндж в фор.
132 1505035
>>499746 (OP)
Бля, опять эта хуйня. Когда трапа с оппика выкинете?
133 1505038
>>504961
Короче, я не совсем понял, нужно ли не считать сумму если массив состоит из одного элемента. Так же не понял, нужно ли считать сумму если maxidx<minidx, просто потому что у тебя в коде алгоритм завершается а в комменте сверху просто: Выведите сообщение. Ну и когда говорится про "между", подразумевается что крайние элементы не нужно считать или нужно, я подумал что нужно. Вооот.

Короче, вот тебе вариант, заваязанный на том как я понял задание. Если я там что-то не так понял, исправишь за 1 секунду.
https://ideone.com/fDAIB3
134 1505040
>>505007
Потому что ты, еблан, когда-нибудь да уйдешь, а потом придут новые ебланы и им может понадобиться этот говнокод развивать и поддерживать.
Да даже не так. Тебе самому через пару лет потребуется допилить что-то в этот говнокод, отличающиеся от добавления одного 'if', скажем переносить это на какую-нибудь новый модный-молодежный фреймворк. Как думаешь, захочется ли тебе потом переписывать все чуть ли не с нуля, еще и разбираясь, как это говно вообще работает?
135 1505047
>>505007

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


Из макаки хотят сделать нормального человека, а она копротивляется. Как мило.
Выносить какие-то общие алгоритмы, части проекта в отдельные файлы/библиотеки - стандарт. Потом и тебе самому, и другим будет проще работать чем по 10 раз один и тот же велосипед писать.

>Изменения уровня "Поставь один if если переменная будет превышать размер в 70 символов." Сделал@отдал. Претензия "А чего ты не переписал всё под MVVM?"


Чего? У тебя задача добавить условие в иф, а к тебе доебываются почему ты архитектуру не переделал? Ты или не договариваешь, или путаешься сам. Или, как вариант, тебя просто вытравить хотят, что неудивительно судя по той хуйне что ты ляпнул в предыдущем предложении.
136 1505059
>>504961
хуле ты array сравниваешь с array[0], а не с array[minIndex]?
137 1505066
>>504961
Сколько тредов ты эту задачу пердолишь? Может пора учебник открыть?
138 1505136
>>504195
Сделай в дочерней метод, который возвращает нужные данные и дергай его из главной.
139 1505149
Не совсем вопрос по Шарпу, но VS же наверное относится к теме обсуждения?
Так вот, я только недавно узнал что там есть возможность целые конструкции генерировать сокращениями, типа prop, cw и т.д. при том, что еще с 2009 студии начинал. Распробовал эту фишку и она мне понравилась, только вот встроены таких штук маловато оказалось. Можно ли как-то расширить список таких вот штук?
Безымянный.png34 Кб, 839x685
140 1505175
>>505149
Можно. Гугли сниппеты, описываются xml'ом. Пикрелейтед сниппет для теста.
141 1505211
>>505175
Спасибо, няша. Когда будет время запилю себе этих снипетов на большую часть штук, которые систематически приходится писать.
142 1505246
Что почитать толкового по MSBuild?

Уже какое-то время использую кастомные таргеты и до сих пор не могу выявить как работает, например, robocopy в постбилде взятый с MSDNовского гайда. На одном солюшне всё как часы, на другом потребовалось по-другому оформить пути к директориям, в третьем ебля на ровном месте в ходе чего пришлось другой код ошибки вставлять, и ещё много всякого разного.
И это один только несчастный перенос файлов. Как охватить умом всю систему, чтобы оно не казалось таким рандомом? MSDN тут не сильно помогает, увы.
От всяких там мурриканских профи уловил месседж, что Студия скрывает в себя много подводных на этот счёт, но реально критично это должно быть когда компилится враз порядка 7 и выше проектов (т.к. оптимизация билда может аукаться альтернативным проходом тех же таргетов). Но это явно не случай одного несчастного приложения в котором нужно некоторые косметические вещи сделать, правильно ресурсов притащить дополнительных, обфускацию, итд.
143 1505381
Сап. Пишу впф+мввм приложуху. Обычно, что бы закрыть окно по кнопке я ставил ей IsDefault/IsCancel в тру и оно закрывается после выполнения команды. Но теперь появилась необходимость, чтобы при определенных условиях в команде закрытие отменялось. Как это можно сделать в рамках мввм?
144 1505531
>>504961
Типичный двач, мажутся говном уже в первой лабе по шарпам
По алгоритму тут уже всё сказали, по кодстайлу вот:
1. В консоль без дела не срать: убери весь вывод в консоли из циклов
2. Вместо даблслэш используй / somecode / для комментов в несколько строк или summary, если это описание работы метода.

А вообще всё это говно с сортировкой превращается в пару строк с помощью Array.Sort(Array)
145 1505550
>>505531
Что по моему>>505038 кодстайлу сажешь?
146 1505821
>>505550
Лучше, чем у автора
Предусмотрены некоторые исключения, что хорошо. Но слишком много ифов, с набега не въехал в логику работы
Плюс не очень понял, зачем отдавать методам data через ref , но я в чужие дела не лезу. Прописал, значит есть зачем.
Мой вариант таски примерно такой: https://ideone.com/L1Frzn
Приоритет отдал коду в ущерб быстродействию
147 1506011
Раз уж тут в code review играют, то я пожалуй тоже попробую.

>>505038
1. Замени возврат значения через out параметры на нормальный возврат через return. Это явно не тот случай, где следует применять out параметры.
2. Передавать массив через ref не имеет смысла, массив - это ссылочный тип, он и так по ссылке передается.
3.
if (left > right)
{
right = left + right;
left -= right;
right -= left;
}
Не нужно менять значения двух переменных подобным образом, с точки зрения производительности выхлопа здесь никакого не будет, а вот читаемость страдает. Кроме того, возможно переполнение right, если right + left будет больше макс. значения инта.
4. Возможно, у тебя какая-то своя схема именования методов, но в C# стандартом является именование всех методов через PascalCase, даже если они приватные.

>>505821
1. Почему метод называется Sort, если никакой сортировки не происходит и метод делает совершенно другие вещи?
2.

>massive


Транслит в коде - нехорошо.
3.

>int sum = new int()


Не вижу смысла явно вызывать конструктор инта, запись int sum = 0 и короче и понятнее.
3. И наконец, самая большая проблема - код работает неправильно.
В строчке

>sum = massive.Where(p => !(p > minElementId && p < maxElementId)).Sum();


целых 2 проблемы. Во-первых, метод Where работает со значениями элементов, не с индексами, а у тебя идет сравнение с индексами. Во-вторых, твой предикат суммирует те элементы, которые наоборот находятся за минимальным и максимальным элементами, а не между ними.
147 1506011
Раз уж тут в code review играют, то я пожалуй тоже попробую.

>>505038
1. Замени возврат значения через out параметры на нормальный возврат через return. Это явно не тот случай, где следует применять out параметры.
2. Передавать массив через ref не имеет смысла, массив - это ссылочный тип, он и так по ссылке передается.
3.
if (left > right)
{
right = left + right;
left -= right;
right -= left;
}
Не нужно менять значения двух переменных подобным образом, с точки зрения производительности выхлопа здесь никакого не будет, а вот читаемость страдает. Кроме того, возможно переполнение right, если right + left будет больше макс. значения инта.
4. Возможно, у тебя какая-то своя схема именования методов, но в C# стандартом является именование всех методов через PascalCase, даже если они приватные.

>>505821
1. Почему метод называется Sort, если никакой сортировки не происходит и метод делает совершенно другие вещи?
2.

>massive


Транслит в коде - нехорошо.
3.

>int sum = new int()


Не вижу смысла явно вызывать конструктор инта, запись int sum = 0 и короче и понятнее.
3. И наконец, самая большая проблема - код работает неправильно.
В строчке

>sum = massive.Where(p => !(p > minElementId && p < maxElementId)).Sum();


целых 2 проблемы. Во-первых, метод Where работает со значениями элементов, не с индексами, а у тебя идет сравнение с индексами. Во-вторых, твой предикат суммирует те элементы, которые наоборот находятся за минимальным и максимальным элементами, а не между ними.
148 1506031
>>506011
Да, действительно, в Where на ночь глядя ерунду написал. Хотел прописать суммирование через одну строку без явного цикла - поспешил
149 1506037
>>505821

> Приоритет отдал коду в ущерб быстродействию


Зачем лапша из for вместо нормального foreach и бесполезные переменные с крайними элементами?
150 1506093
>>506037
С for можно узнать текущий индекс элемента без костылей (для возможности вывода в консоли "A[i} = ").
Можно обойтись без переменных, я их прописал, чтобы код легче было читать
151 1506094
>>506011

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


Мы вам перезвоним

на самом деле в этой ситуации может не имеет, но в целом имеет, не путай ньюфага
152 1506104
>>506093

> текущий индекс элемента без костылей


Используй List и
foreach (var (item, index) in list.WithIndex())
153 1506143
>>506094
Эх, так и знал что кто-то доебется до этого.
154 1506212
>>505047

>Из макаки хотят сделать нормального человека, а она копротивляется. Как мило.


Типичный проект в конторе - переделать XML в текст. Вся прога строк 320 занимает. Щас бы неделю тратить на всякие либы, потом через пол года в них разбираться вместо того, чтобы просто написать прогу за пол дня и пойти обедать. Я не против когда проект огромный и реально есть что делать отдельно. Но ЭТО НЕ ВСЕГДА ТАК РАБОТАЕТ АНОН!
155 1506214
>>505047

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


Ну да, консольная прога, запустил, нажал кнопку, рад. ПОследний реквест был реально добавить 2 условия уровня if.
Нет просят переписать под UI, чтобы на WPF и чтобы обязательно MVVM. Учитывая что вся прога заняла примерно 5 дней написания и пользоваться будут её исключительно 3 человека из конторы, весьма сомнительно тратить на неё месяц переписывая всё под WPF MVVM. Тем более что работы и так много.
156 1506226
>>505040
Какой-то непонятный аргумент. Ну как понадобится - так пусть и переписывают? Я тут каким боком? В данный момент понадобилось добавить 1 if и я добавил.
А всякие "'скажем 'потом ядро операционки из этого кода надо будет написать " - вообще шиза последней стадии. Что вообще значит "скажем"? Задача есть или нет? Переписывать какой-то код хуй пойми почему - ну так я вообще тогда могу просто днями сидеть и переписывать всё. Смысле только ноль.

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


Опять какой-то странный вопрос. Что вообще значит "захочется ли тебе"? Это моя работа, мне за неё деньги платят. Конечно мне захочется, иначе бы я не работал на этой должности.

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


Такова их работа. Не смогут разобраться - их проблемы. И вообще у тебя аргумент типа "Ух бля в 300 строках разбираться надо!!111"
157 1506251
>>506212

>Типичный проект


Так блядь тем более сука. Если у вас куча однотипных задач, то выносить обобщенную логику в библиотеки сам господь сука велел. Иди нахуй короче, хуле перед мартыхой расписаться, надеюсь тебя уволят к хуям
158 1507093
>>506226

>Непонятный аргумент


Блядь ты тупой или троллишь? Ты работать работу пришел, на дядю. Не на себя. А потом КОКОКО А МНЕ КАКОЕ ДЕЛО ДО ТРЕБОВАНИЙ КУДАХ, да такое что тебе за это деньги блядь платят. Хочешь писать как тебе нравится - пиши петпрожект или мути стартап.
Мартыхан пиздец, "я свою часть высрал а остальные ебитесь как хотите с тем что я высрал"
159 1507110
>>499749
Распиши свою стори. Какие вводные? Как вкатывался? Сколько готовился? Как учился? Что самое сложное было? Сколько времени посвящал? Что на собесе спрашивали?
160 1507119
Зачем придумали микросервисы? Какие у них плюсы и минусы?
image.png145 Кб, 735x438
162 1507284
>>507119
Моя любимая пикча на эту тему
163 1507303
>>506251

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


Сел на стул - написал библиотеку для усаживания на стул.
Пёрнул - написал либу для пердежа.
Пчесал яйцо -написал либу. Вдруг кому пригодится.
Смотришь на коллег у которых по 100 либ на всякую хуйню, кто из них использует свои же либы? Никто. Вот и поговорили.
164 1507307
>>507093

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


Вот дядя мне и ставит задачу которую я решаю за пару часов. А всякие двачеры говорят потратить пару недель на написание либ, вместо решения задачи.
165 1507310
>>507303
Двачую. Максимум - написать нормальный класс и потом подкидывать куда надо.
166 1507313
>>507310
Вот, двачую этого адеквата! Самое хорошее решение в данном контексте.
167 1507315
Что делать, если мне нужно работать с кучей листов, у каждых из которых свой тип? Меня просто трясёт уже, я на ровном месте топчусь и нихуя не могу сделать. Раньше всё прекрасно работало с datatable, но за каким-то хуем нужно весь проект под злоебучий entity framework переделывать, ебись он в рот.
168 1507317
>>507315
Думал всем этим блядским листам тип entityobject сделать, но нихуя не вышло.
ferris-re-zero-kara-hajimeru-isekai-seikatsu-84540.jpg24 Кб, 300x415
169 1507331
>>507110

>Какие вводные?


Кун, 25 лет. До этого баловался художествами. Умел в PHP немного в JS на уровне копипасты и сделал пару сайтов на WP.

>Как вкатывался? Сколько готовился? Как учился?


Вкатился примерно в это время (октябрь ноябрь 2018) год назад к вам в тред. Знакомый сказал что примерно через пол года будут искать джуна на должность со знанием C#. Но его захантили в другую контору и в итоге по знакомству устроится не смог. Собственно от него помощи никакой небыло.
Сидел здесь месяца три вылавливая всё что только можно. Прочитал большинство книг шапки. Прорешал всё что было в задачах. Покликал сайты с шапки. Посмотрел некоторые курсы на ютюбе. Внезапно они оказались безсмысленной тратой времени.
Примерно к марту 2019 у меня было несколько проектов уровня чуть больше чем лаба.

>Что самое сложное было?


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

>Сколько времени посвящал?


Примерно часов 8-10 в день. Благо работа была ненапряжной, админил конторку.

>Что на собесе спрашивали?


MVC, ASP, SQL, очень много про базы данных, вложенные запросы, тригеры, отношения, оптимизации запросов, что вообще-то меня удивило поскольку для меня это казалось что-то уровня "Ты выпускника MIT спрашиваешь про букварь". Админимтрирование немного. C# как ни странно почти не задели. Ну и так, кем работал, какие проекты были, что из проектов было самым сложным и почему. Про PHP спросили потравили анекдотов и баек про него.
170 1507336
>>507315
ProcessList<T>(List<T> list)
171 1507337
>>507315
И у таблиц соответственно типы разные, с ними нихуя сделать нельзя, даже join ёбаный.
172 1507500
Стоит ли использоваться Thread'ы, или лучше всегда предпочитать Task'и?
173 1507522
>>507500
Всегда используй async/await, в 2019 использовать что-то другое будут только пердолики. Thread вообще говно мамонта - очень медленно, надо следить за потокобозопасностью, за количеством потоков, пердолить то что с асинхронностью работает без лишнего кода. А ещё автоматом лишаешь себя всех асинхронных нововведений, которых в каждом апдейте Core/языка завозят гору.
174 1507610
Превозносимые сисярп-Б*ги, такое дело: надо за два дня постичь основы C#, чтобы написать тз (по основам JS, SQL и сисярп) и попасть на курсы. Подскажите, пожалуйста, как это реализовать? На всё у меня в сумме неделя.
175 1507629
>>507610

>чтобы написать тз


Ты должен тз написать?
176 1507642
>>507315
Ты проблему сформулировать нормально можешь блядь? Что за листы, откуда берутся, что конкретно с ними делается? "Доктор помогите у меня болезнь, ну такая, болезнь организма"
177 1507680
>>507629
хуй его знает, как называется, тест какой-то по знаниям вышеуказанного.
179 1507719
>>507691
А можно за 3? Мне лень.
180 1507744
>>507719
Скорость 2х ставь.

И еще... ВЫ СПИЗДИЛИ РЕАЛИЗАЦИЮ ИНТЕРФЕЙСОВ!
181 1507772
Закончил в этом году вышку не по АйТи, за лето сделал несколько проектов в портфолио.
0. https://github.com/42ama/HeadhunterRuStats - пока учился питону сделал парсер хх чтобы вакансии помониторить. Прилагаю как пример ведения гита, потому что в остальных проектах я хуй на него забивал.
1. https://github.com/42ama/UrlShortener - одностраничник сократитель ссылок, с разрешение коллизий.
2. https://github.com/42ama/Little-Blog-Engine - небольшой блоговый движ, с аутенфикацией и авторизацией, постами и поиском.
3. https://github.com/42ama/Boorger-Shop - онлайн-магазин бургеров с товарами, категориями, корзиной и проработанной админкой для управления всем этим.
Проекты в хронологическом порядке. Скидывал резюме с ними на 4 вакансии, позвали на 2 собеса, после личного собеседования говорили что я неплохо все знаю, дали тестовые - сделал, в итоге на обе вакансии взяли челов с большим опытом.
Так вот вопрос, как думаете, мне сейчас дальше с этим портфолио искать себе место чтобы побыстрее получить опыт корпоративной разработки или сделать ещё один проект, ещё лучше, но потратить на это время и силы? Просто от безделья и сидения на мамкиной шее я потихоньку в мини-депрессию скатываюсь.

Уже пытался зафейкать корпоративную трехзвенку, на двух новых для себя фреймворках wpf+wcf в итоге понял что слишком большую задачу взял, думаю на asp.net'е опять её сделать, параллельно про wpf почитать.
182 1507798
>>507772

> 0. https://github.com/42ama/HeadhunterRuStats


Пиздец треш. Ты сам можешь в этом говнокоде ориентироваться?

> 1. https://github.com/42ama/UrlShortener - одностраничник сократитель ссылок, с разрешение коллизий.


Зачем из рандомного туториала скопипастил в гитхаб?

> 2. https://github.com/42ama/Little-Blog-Engine - небольшой блоговый движ, с аутенфикацией и авторизацией, постами и поиском.


Опять копипаст? Сам не можешь ничего сделать?

> 3. https://github.com/42ama/Boorger-Shop - онлайн-магазин бургеров с товарами, категориями, корзиной и проработанной админкой для управления всем этим.


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

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


Не думаю что тебя с таким куда-то возьмут, это даже на джуна за еду не тянет.
183 1507799
>>507798
Хуя ты злой
184 1507833
>>507799
Говорю как есть. Лучше больше не позорься. Я вообще админ и мне нахуй не надо кодить, но я вижу что ты совсем не понимаешь ничего, когда пишешь

> корпоративной разработки


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

> от безделья в депрессию скатываюсь


Ты хоть попробовал бы что-то поизучать? Не? Безделье лучше? С начала лета почти пол года прошло. А у тебя в гитхабе кода как за неделю максимум. Знаю я таких работников. Нихуя не знают, нихуя не делают, никуда не стремятся, а потом кто-то виноват им, когда руководство в очко ебет.
185 1507853
>>507799
Поддерживаю
>>507833
Что поизучать? Спрашивай что хочешь с любых вопрос для джунов, без гугла отвечу. Я в программирование с 0я вкатился, вкатился в теоретические данные по проектированию, вкатился в пару фреймворков на сисярпе, что ещё поизучать?
В 1ом говно код согласен, вчера залез пофиксить баг какой-то сам еле-еле разобрадся.
2, 3, 4 с нуля с идеи сам делал.
На 4ый убил примерно где-то неделю, у тебя какой-том мир слишком идеальный где джуны вкатываются с личной бордой и 5ью рабочими банковскими системами.
Покажи мне хорошие джуновские проекты я посмотрю, получу опыт, постараюсь что-то такое же по качеству сделать. А у меня А - закончились идеи, Б - кончились силы самому себе выдумывать никому не нужную хуйню, а потом её делать.
186 1507861
>>507772

>думаю на asp.net'е опять её сделать, параллельно про wpf почитать.


Зачем тебе одновременно wpf и asp.net изучать? Выбери что-то одно (asp.net) и забей хуй на второе.
187 1507900
>>507861
Соглашусь, просто понравилось построение по принципу мввм, хотел поглубже проникнуть
188 1507930
>>500288
Не удивительно не теперь, почему эта ненужная хуета для даунов, появилась в божественном шарпе. Майки сжалились над умственно отсталыми и добавили.
189 1507932
>>507900
Ты же не понимаешь зачем оно нужно, да?
190 1507945
>>507932
Для упрощения поддержки и расширения кода, для упрощения написания тестов. Как и любой из паттернов м-в серии, просто я не видел новых фреймоврков на мвц и мвп. В мвп больше писанины по сравнению с мввм, так как больше ручками приходится описывать, а с мвц я только в асп.нете сталкивался и либо он как-то не совсем стандартно там применен, либо(что скорее) я не правильно его в контексте понял.
191 1507952
>>507522
Можешь ещё за мьютексы и прочую поебень для синхронизации потоков пояснить? на собеседовании спрашивали
192 1507963
>>507952

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


Зачем? Под Windows 98 писать код собираешься? Хотя если будет задача сделать простейшую задачу максимальным количеством строк кода и выстрелить себе в ногу во время синхронизации потоков, то Mutex идеально подойдёт.

> на собеседовании спрашивали


Скажи что с 2003 года уже много времени прошло, этим говном зашкварно пользоваться в 2k20.
193 1508033
>>507963
Я на ASP.NET WEB Api собеседовался, а вопросы были про мьютексы, сложность алгоритмов и степени изоляции транзакций.
sage 194 1508069
Я вот о чём подумал:
Разве не логичнее использовать одну переменную byte, представленную в двоичном виде, вместо того, чтобы использовать восемь переменных bool? Все равно по памяти что байт, что буль занимают 1 байт.
195 1508070
>>508069
Так и делают, например, когда нужно хранить информацию о возможностях пользователя, например, берёшь 0000 и разбиваешь его на 0 - возможность постить 0 - возможность создавать новые темы, 0 - возможность удалять чужие посты 0 - доступ к закрытым разделам и т. п.
Но в случае C# наверно лучше использовать перечисления. А считать байты это вообще полный долбоебизм, если ты хочешь писать настолько низкоуровневые программы, то тебе не С# нужен, а С++ или С
196 1508074
>>508069
Поздравляю, ты придумал bitmask
197 1508080
>>508069
Так делают, но это медленнее.
Иногда ради производительность наоборот хранят булеаны в 32байтных переменных.
198 1508081
>>508080

>32 битных


конечно
199 1508113
>>507963

>Зачем?


А что еще есть для межпроцессной синхронизации?>>507963

>Скажи что с 2003 года уже много времени прошло,


В 2020 уже не синхронизируют доступ к ресурсам? И рэйс кондишн исячез? Все пишут на Го?
200 1508121
>>508113
В 2k20 в тренде асинхронное программирование. Нет таких задач, когда выгоднее использовать Thread.
201 1508155
>>508121
А при чем тут Thread? Речь же шла про примитивы синхронизаии. Использование тасков с async/await не отменяет необходимости программисту обеспечивать потокобезопасный доступ к общим ресурсам.
202 1508190
>>508155
Про контекст синхронизации и потокобезопасные типы слышал? Какая ещё ручная синхронизация в 2k20? Такой ебенью уже нет необходимости заниматься. Недавно ещё и асинхронные стримы завезли, можно из другого потока в основной данные высерать без лишних телодвижений.
203 1508196
>>508190

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


Угу, заставить все выполняться в родительском потоке? Охуенно.>>508190

>потокобезопасные типы слышал


Которые используют теже самые мониторы, семафоры и прочее. Что там есть из потокобезопасных типов для работы с БД?
204 1508207
>>508196

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


Кто тебе мешает передавать данные в основной поток? Контекст синхронизации вернёт данные куда укажешь.

> Что там есть из потокобезопасных типов для работы с БД?


Зачем? У тебя ввод/вывод асинхронный, пиши/читай из БД откуда хочешь, хоть из основного потока, он же не блокируется.
И если говорить про таски, то там нечего синхронизировать. А ещё таск не обязательно будет в другом потоке выполняться, хуй знает что ты там будешь пытаться синхронизировать. Только ресурсы просрешь изобретая велосипед там, где он не нужен.
205 1508223
>>508207

>Кто тебе мешает передавать данные в основной поток?


Вот есть у меня серв, на нем висит ~150-200 клиентов, все работают асинхронно на тасках, кто в каком потоке выполняется разруливает среда. Ты предлагаешь всем выполнятся с однопоточным контекстом? Это же ебань.

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


Возвращаясь к серву. Ну вот два клиента сделали дело и данные должны улутеть в БД, и произошло это одновременно. Упс, все идет по пизде без синхронизации.

>там нечего синхронизировать


>таск не обязательно будет в другом потоке


Эм, не находишь противоречий?
206 1508232
>>508223

> Ты предлагаешь всем выполнятся с однопоточным контекстом? Это же ебань.


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

> Упс, все идет по пизде без синхронизации.


Лол, нет. С чего ты это взял?
207 1508239
>>508232

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


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

> Плодить потоки без нужды - вот это настоящая ебань


Таски берут потоки из пула, он их не плодит без надобности.

>Лол, нет. С чего ты это взял?


С того и взял. Например, если использовать EF, то есть вероятность создать две записи с одним ключем, очевидно при сохранении база будет такому не рада. Ты хоть раз писал программу, которя выполняется нелинейно и поряд дейсвий тебе неподконтролен?
208 1508240
>>508190

>Недавно ещё и асинхронные стримы завезли


А еще давно завезли асинхронный семафор, хм.
209 1508299
>>508232
Вот еще классический пример. Попробуй закомменть лок на 25ой строке.
https://dotnetfiddle.net/OH9Jgf
210 1508307
>>508239

> И путь три ядра простаивают


Если ты не понимаешь как работает await, то сходи почитай.

> Например, если использовать EF, то есть вероятность создать две записи с одним ключем


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

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


> поряд дейсвий тебе неподконтролен


Как из первого следует второе?
211 1508313
>>508299
Потому что говнокод без нормального использования асинхронности. Кто вообще так таски запускает? Естественно оно через жопу работает, ты пытаешься явно непотокобезопасно вызывать метод из другого потока.
212 1508315
>>508307

>Это проблемы говнокода


Ну так правильно, в нормальном коде будет синхронизация.

>Как из первого следует второе?


Никак, это два разных свойства, на что намекает союз "и". Если б я подразумевал следствие, так бы и написал.
Вобщем пердоль все через один поток, когда понадобятся сам пойдешь изучать синхронизацию но будет поздно.
213 1508316
>>508313
Напиши потокобезопасно с нормальной асинхронностью. По коду будет все видно.
214 1508348
>>501032
>>501533
Вы так говорите, будто это что-то полезное. Добавили костыль для дебилов которым сложно с JS перекатиться.
215 1508396
>>508299
Напрямую в основной поток писать - ебень какая-то, ты же его блокируешь. Лучше просто возвращай результат, вроде такого
https://dotnetfiddle.net/7NhmEb
Это и быстрее в разы и основной поток не блокируешь. Нормальные люди вычисления делают асинхронно, а результат получают синхронно и пишут его куда надо, т.к. профита от блокировки другого потока нет никакого. Опять же, можно возвращать промежуточные результаты, если надо. Стримить данные можно через yield, если надо сразу в другой поток передавать.
Но и если уж припекло, то хотя бы Interlocked.Increment(ref counter) пиши, чтоб не вешать всё локом.
216 1508409
>>508396
У тебя все таски выполняются синхронно и последовательно друг за другом. Представь, что ты зашел на двач и что бы отправить пост ты ждешь в очереди, пока другие двачеры закончат работу с бордой. Не очень хорошо. Получается правильная асинхронность - её отсутствие?
>>508396

>Но и если уж припекло, то хотя бы Interlocked.Increment(ref counter) пиши, чтоб не вешать всё локом.


Таки да. И в итоге знать семофоры/локи/мониторы все равно надо и без них можно обосраться.
217 1508418
>>508409

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


Так должна быть цепочка тасков. Суть асинхронности в том, что код выполняется параллельно, но ты контролируешь порядок выполнения. Внезапно await для этого и нужен, а не просто всё подряд через Task.Run() запускать и ебаться с синхронизацией.

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


Так и есть в однопоточных веб-серверах. Все запросы обрабатываются поочерёдно. Для тебя это новость?

> Получается правильная асинхронность - её отсутствие?


Ну то что ты понимаешь под асинхронностью отсутствует, да.
218 1508421
>>508418

>Суть асинхронности в том, что код выполняется параллельно, но ты контролируешь порядок выполнения. Внезапно await для этого и нужен, а не просто всё подряд через Task.Run() запускать и ебаться с синхронизацией.


Мда.. Суть асинхронности в том, что б не блокировать вызывающий поток (а ты .Result пишешь!). Await нужен, что бы освободить поток (а ты его не вызываешь, тебе даже иде пишет что без него все отработает синхронно) и не ебеаться с коллбэками (компилятор раскрутит async/await в машину состояний и при каждом ивенте завершения таски будет эту машину дергать). В твоем коде, если выкинуть таски ничего не изменется, все равно там нет асинхронности. Даже чуть быстрее все будет.>>508418

>Так и есть в однопоточных веб-серверах. Все запросы обрабатываются поочерёдно. Для тебя это новость?


Так работают синхронные серверы.
>>508418

>Ну то что ты понимаешь под асинхронностью отсутствует, да.


Там её нет ни в одном из пониманий.
219 1508454
>>508421

> Мда.. Суть асинхронности в том, что б не блокировать вызывающий поток (а ты .Result пишешь!).


А что lock делает?

> Await нужен, что бы освободить поток


У тебя как с английским? await нужен для остановки выполнения текущего метода и ожидания результата таска, .Result делает тоже самое, но глобально, т.к. Main синхронный. Ты точно так же можешь вместо await написать .Start() и не ждать результата, а получить его потом через .Result, когда надо.

> (а ты его не вызываешь, тебе даже иде пишет что без него все отработает синхронно)


Блять. Ты читать не умеешь? Там пишется что метод помечен как асинхронный, но в нем не вызывается ни одной асинхронной операции, т.е. всё в нем выполняется по порядку. Это не значит что сам метод выполняется в том же потоке.

> Даже чуть быстрее все будет.


А тебя не смутило, что вариант с lock аж в 5 раз медленнее моего?
220 1508467
>>508454

>А что lock делает?


Пускает только один поток в критическую секцию кода.

>await нужен для остановки выполнения текущего метода


Вот именно метода, а не потока, поток освобождается

>Result делает тоже самое


блокирует поток до завершения таски

>Там пишется что метод помечен как асинхронный, но в нем не вызывается ни одной асинхронной операции


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

>А тебя не смутило, что вариант с lock аж в 5 раз медленнее моего?


Конечно, нет. Он другое показывал.
221 1508479
>>508467
И зачем ты повторил то что я написал?
222 1508483
>>508479
Бывает. Попробуй завтра и потоньше.
223 1508485
>>508467

> скорее всего (но не обязательно) код после await выполнится асинхронно


Вообще-то обязательно. Он может выполняться синхронно только до момента пока не потребуешь результат.
224 1508490
>>508485
Если к моменту await'а таска уже завершена, то выполнение продолжится синхронно.

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


Ты опять все напутал.
225 1508500
>>508490
У тебя логика сломана? Это таск выполняется асинхронно, код после await в любом случае синхронно выполнится.
226 1508506
>>508500
У тебя просто огромнейший пробел в знаниях по всем фронтам.
227 1508625
>>499747
такой вопрос: учу уже несколько дней С#, решил начать с первой книги в списке - руководство игрока от вайтейкера, читаю на английском, прошёл больше четверти книги, но книга эта мне совершенно не нравится, т.к. автор объясняет будто бы для умственно отсталых, я намного больше времени трачу на перевод его длинных объяснений простейших вещей, чем на само обучение.

Можете, пожалуйста, посоветовать другой учебник, где так же будут описаны все основы сишарпа, который подойдёт для изучения с нуля, но, при этом, не будет вызывать ощущение, что автор - мама-птичка, которая срыгивает мне, как птенцу, переваренную информацию в клюв.
228 1508628
>>504190

>В книге как-то высрано непонятно, плюс бывают ошибки, которые пока фиксишь теряешь нить нахуя это вообще делается.


Спасибо, я из поста выше, такая же ситуация, полчаса фиксил код, в котором автор даже не удосужился объяснить новые термины. Буду знать, что читать не надо
229 1508629
>>508625
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/
А протухше книги не читай. Все уже на C# 8 и Core 3.0 сидят.
230 1508723
>>508629
Спасибо. А почему не метанит?
231 1508731
>>508723
Потому что протухшее и поверхностное говно.
232 1508732
>>508723
Потому что это устаревшая хуета для дегенератов, которые хотят получить иллюзорное чувство того, что они изучили C#, при этом на деле не получив никакой полезной информации.
233 1508748
>>508731
>>508732
А можно примеры с устаревшей инфой?
234 1508752
>>508732
ну хз, там вроде как книгу Троелсена по C# 7.0 пересказали)
235 1508767
>>508752
Зачем читать двойной пересказ документации? Если ты хлебушек и не можешь прочитать документацию, то так и напиши. Попробуем отговорить дальше вкатываться, это явно не твоё.
236 1508782
>>508748
Читай в комментах к его главам. Но большая проблема не в устаревшей информации, а в многочисленных опечатках и кривости изложения. Мутанит словно комнатный сыч, который прочитал троелсена, хуево его понял и теперь пытается пересказать тебе, заикаясь и делая ошибки, при этом не желая эти ошибки исправлять.
Вот, один из примеров (https://metanit.com/sharp/tutorial/11.3.php):

>После создания потока мы передаем метод myThread.Start(number); переменную, значение которой хотим передать в поток.



Что мы, блять, передаём? Метод? Может "методу"? Тогда какого хуя ты пишешь "myThread.Start(number);" - это не передача методу, это вызов метода myThread.Start с параметром number. И мы не хотим "передать значение переменной в поток", мы передаем переменную делегату ParameterizedThreadStart, которую он принимает в качестве параметра, и делаем это через метод myThread.Start

И таких опечаток/кривых изложений у него воз и маленькая тележка, при том, что всё пересказано максимально сжато, без пояснений. При этом само повествование не последовательно, почему-то о рефлексии у него речь заходит в 18 главе, а о доменах приложения только в 22.
В итоге даже машинный перевод статей msdn лучше в сравнении с высером мутанита.
237 1508785
>>508752
От Троелсена там только примеры. И у Троелсена 1300+ страниц, а у мутанита едва 100 наберётся. Это даже на краткое содержание не тянет.
image.png185 Кб, 877x827
238 1508787
Антоны, что за хуйня?
Сперва Рихтер пишет

> Оператор await не может использоваться в блоке catch, finally или unsafe.


Но потом я вижу вот это
239 1508790
>>508787
А, бля, все норм, это я в глаза долблюсь, про блок try ничего не написано.
240 1508896
>>508787

> Оператор await не может использоваться в блоке catch, finally


Может.
241 1508898
>>508787
Потому что ты читаешь говнокниги на русском.
242 1508900
Пиздец пошла мода обсирать все источники на русском. Чувак просто невнимательно прочитал предложение и сделал неправильный вывод. В результате набежали хищники со словами: "ДА ПАТАМУШТА НАДА НА АНГЛИСКАМ ЧИТАТЬ, ВОТ НА АНГЛИСКАМ ТЫ БЫ ПРОЧИТАЛ ПРАВИЛЬНО!!!".
243 1508909
>>508900

> ко-ко-ко


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

в офф документацию давно завезли интерактивные учебники.
https://docs.microsoft.com/ru-ru/dotnet/csharp/tutorials/
245 1508999
https://dotnetfiddle.net/GXoYLd

Господа, почему так, подскажите? Почему такое определение не вызывает ошибку на этапе написания, ведь вызов метода подходит к обоим определениям?
246 1509006
Англ источники тоже ничем особо не лучше, прочитал вчера про контекст синхронизации и вообще нихуя не понял практически, надо перечитывать.
247 1509009
>>508900
Потому что если бы он читал на английском, то это было бы не устаревшее говно в виде рихтера, а какой-нибудь Троелсен, тогда бы твой чувак узнал, что асинхронные операции можно выполнять в блоках catch и finally с момента выпуска С# 6.0
248 1509010
>>509009
У Троелсона разбор на гораздо более меньшем уровне, чем у Рихтера.
249 1509014
>>508999 из спеки:

>Parameter lists for each of thecandidatefunction members areconstructed in thefollowing way:


>Theexpanded form is used if thefunction member was applicable only in theexpanded form.


>Optional parameters with no corresponding arguments areremoved from the parameter list


>The parameters arereordered so that they occur at thesame position as thecorresponding argument in the


argument list.
Думаю в этом дело
250 1509015
>>509010
И как твой "гораздо более меньший уровень" понимать? Слишком подробный разбор и всё на низком уровне происходит или не достаточно деталей и мало углублений? Если нужны подробности и внутренние детали, то читать нужно Альбахири. Если для тебя Троелсен слишком низко уровневый, то тебе не программирование надо изучать, а возле зеркала тренироваться, повторяя "Добрый день, что будете заказывать?"
251 1509016
>>509015

>или не достаточно деталей и мало углублений


this

>Если нужны подробности и внутренние детали, то читать нужно Альбахири.


Прочту, спасибо за наводку.
252 1509018
>>509009
а толку ему от английского варианта Рихтера, если последнее издание базируется на C#5.0 и .NET Framework 4.5
253 1509019
>>509018
фикс
Блять, соре чел, не до конца прочитал твое сообщение)
254 1509020
>>508999
А еще в спеке во такое есть

>Otherwise, if Mp is applicablein its normal form and Mq has a params array and is applicable only in its expanded form, then Mp is better than Mq .


Слишком сложно для меня. дальше сам спеки читай.
255 1509026
>>508999
Потому что выбираться будет метод, который более всего подходит под вызов. В данном случае "a1" будет только в том случае, если явно передавать массив из строк в качестве второго аргумента.
256 1509032
>>509026
>>509020

> >Otherwise, if Mp is applicablein its normal form and Mq has a params array and is applicable only in its expanded form, then Mp is better than Mq .


Понятно, если вызов подходит только при раскрытии params, такой вариант автоматически имеет меньший вес. Спасибо за пояснения, аноны, я всё понял. Однако лучше бы в таком случае хотя бы предупреждение вылезало, что имеется несколько подходящих методов, но будет вызван только один конкретный.
257 1509039
>>509032
Может тебе еще предупреждения давать когда ты используешь логические операторы, в зависимости от их приоритета? Ситуация элементарная - если есть какое-то более конкретное определение метода, то будет вызываться оно.
258 1509051
>>509032
Кста, у тебя же там в обоих методах param, поэтому скорее твой случай

>Otherwise, if Mp has more declared parameters than Mq , then Mp is better than Mq .This can occur if both methods have params arrays and areapplicable only in their expanded forms.


Хотя, как он дойдет до этой проверки, если он отбракует метод на предыдущей. Хм.. надо еще понять что такое expanded и normal form
1.jpg224 Кб, 913x1065
259 1509074
Здесь не хватает await перед actualimplementation(); ?

Потому что компилятор пишет, что метод будет выполнятся в синхронном режиме из-за отсутствия в нём await. Если добавить await, тогда предупреждений не будет, но и теряется смысл. Если всё написано так как должно, то зачем тогда добавлять модификатор async при объявлении функции?
260 1509135
>>509074
В данной реализации помечать метод async смысла нет.

>но и теряется смысл


Смысл чего? Await тут по сути ничего не изменит (если предположить что эксепшенов не будет).
261 1509175
>>509135
Await сделает весь метод асинхронным, а суть в том чтобы начало метода выполнялось синхронно для того чтобы не было ситуаций когда проверка выполняется после начала задачи, а не до.
262 1509181
>>508785
Сомневаюсь, что по количеству бульона можно судить о его питательности.
263 1509207
Кстати, Антоны, подкиньте статеек про контекст синхронизации, чёт я статью на MSDN не понимаю
264 1509293
>>509181
Мы и не бульон обсуждаем, а техническую литературу. У тебя прям идеальный склад ума для работника мака - всё с едой сравнивать.
265 1509376
Кто нибудь может подробно описать работу алгоритма нахождения пути А*?
Пилю на unity игру на основе сетки, и пытаюсь сделать алгоритм для перемещения персонажей.
На данный момент есть алгоритм который находит ближайшую точку по отношению к точки финиша.
266 1509404
Антоны, если я хочу добавить на сайт систему авторизации и аутентификации, то мне же необязательно юзать OWIN?
Есть видео с метанита, где все это делается, оно подойдёт?
267 1509464
>>509376
Паласиос, программирование искусственного интеллекта на юнити.
268 1509606
реально ли на .net кодить из под линухи?
269 1509623
>>509606
а что там не реального?
270 1509664
>>509376

>подробно описать работу алгоритма нахождения пути А*?


Куда уж подробнее чем на педивикии?
271 1509672
>>509623
ну типа .net платформа от оконников, да и иде нормального я что-то не могу найти, слышал что для .net надо юзать только визуал
272 1509686
>>509672
Ты в 7 классе? Под Линуксом/Маком работает .NET Core, кодить надо в VS Code.
273 1509697
>>509686

> кодить надо в VS Code


Прикольный конечно блокнотик, но есть же и студия и ридер под линь.
274 1509698
>>509672
Если писать под .NET Framework то да, придется на винде сидеть.

Есть .NET Core.Качаешь .NET Core SDK. Ставишь VS Code с расширением для C#.
Минус в том что под Линуксом доступны лишь Console и ASP.NET Core проекты.

Как альтернатива, есть еще Rider от JetBrains, но стоит он не малых денег.
275 1509699
>>509697
официальной студии же нет под Линукс? Ты имеешь ввиду под Wine`ом запускать?
276 1509710
>>509699
Сорян, обосрамс, под мак завезли думал и под линь тоже. Студии нет, но ридер есть.
277 1509713
>>509710
Похоже у меня двойной обсер. То что они называют VS for Mac это бывший MonoDevelop. Санта-барбара бля.
278 1509779
Перестала работать навигация по коду ctrl-up,ctrl-down. Вместо перемещения курсора прокручивается лист. Как фиксить. Заебался гуглить.
279 1509844
>>509175

>Await сделает весь метод асинхронным


лол нет. часть до await выполниться синхронно, await там может помочь поймать исключение. если что я про await перед actualImplementation, которого в коде нет.
280 1509857
>>509844
Тогда бы не нужно было делать обертку в виде локальной функции, а просто написать проверку перед await Task.Run() в коде выше. Скорее всего Троелсен забыл убрать модификатор async у новой функции внтури которой лежит локальная функция, выполняющаяся асинхронно.
281 1509958
>>509857

>Тогда бы не нужно было делать обертку в виде локальной функции, а просто написать проверку перед await Task.Run() в коде выше.


Локальна функция не причем, и да можно сделать проверку перед Task.Run(), результат тотже.

>Скорее всего Троелсен забыл убрать модификатор async


Ему было лень писать return, и он отдал это на откуп компилятору.
282 1509985
>>509958

>и да можно сделать проверку перед Task.Run(), результат тотже.



Ты английского не знаешь и пытаешься предугадать слова автора по коду?

>You can (and should) add checks to the beginning of the method, but since the entire method is asynchronous, there’s no guarantee when the checks will be executed.



Это комментарий к коду с Task.Run()
Перевод: "Вы можете (и должны) добавить проверки в начало метода, но из-за того что весь метод асинхронный, нет гарантии того "когда" эти проверки будут исполняться"

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



Какой откуп, лол, какой return? Перед actualImplementation? Если его там написать, то компилятор выдаст ошибку.
283 1510204
>>509985

>Это комментарий к коду


Это комментарий к методу MethodWithProblems. У тебя как с восприятием письменности?

>Какой откуп, лол, какой return? Перед actualImplementation? Если его там написать, то компилятор выдаст ошибку.


Ты тупой или притворяешься? Если написать ретурн, то надо убрать асинк.
284 1510224
>>510204

>Это комментарий к методу MethodWithProblems. У тебя как с восприятием письменности?



Это и есть метод с Task.Run(), долбоеб. Теперь прочитай свой высер

>и да можно сделать проверку перед Task.Run(), результат тотже.



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



Если убрать async то компилятор выдаст ошибку из-за того что return стоит в проверке.
В общем, ты что-то высераешь, то сразу пиши, что долбоеб-вкатывальщик, чтобы люди на тебя времени не тратили.
285 1510227
У меня тупой вопрос.
Короче, как я уже говорил, делаю сервер. Типа решил разбить на две сущности: сам слушатель и сессия, слушатель просто ждет соединения, когда получает соединение создает новую сессию - добавляет ее в словарь(id-сессия) и запускает в новом потоке метод из сессии, где идет общение, когда у сессии соединение окончено(долго ничего не просит(т.к. пока не с реальными девайсами общаюсь, а эмулирую девайсы, просто ставлю счетчик и если в цикле общения n раз пришел пакет только 0й длины, обрываю сессию) либо просто прислало пакет о том, что закончило общение), поток закрывается(ставлю флаг sessionClosed = true), на событие закрытия сессии сервер удаляет из словаря эту самую сессию, у сессии в свою очередь реализован IDisposable в котором метод Dispose вызывается при закрытии сессии.
Так вот, к чему я все это. Я запустил на локальном ПК сервер и он даже без подключенных сессий жрет 9МБ оперативки. А если я эмулирую 1000 сессий(просто в отдельном проекте создаю кучу клиентов которые стучат в порт) он уже аж 130МБ съедает. Я конечно не эксперт, но разве это не много? Или для шарпа это норма?
И еще, судя по статистике работы процессора, большую часть времени процессор не особо жрет ресурсы, по сути скачок происходит когда я разом 100+ сессий добавляю или решаю все сессии разом остановить, во время самого общения даже 1% не потребляется, но при этом в консоли(пока интерфейс сервера делаю в консольке) при вводе команд во время какой-то операции заметна задержка, в связи с этим у меня возникла мысль, что я, наверное что-то делаю не так. Думал что для каждой сессии делать отдельный поток - неправильно, но пробежавшись по нескольким книжкам, увидел, что там примерно так и делают.
Короче, жду советов мудрых и может быть книжек, где будет на нормальном примере показано как нормальный сервер пишется, а не очередное: Ну, бесконечный цикл где при подключении мы получаем сообщение, делаем его большими буквами, отсылаем обратно, закрываем соединение и ждем нового подключения.
285 1510227
У меня тупой вопрос.
Короче, как я уже говорил, делаю сервер. Типа решил разбить на две сущности: сам слушатель и сессия, слушатель просто ждет соединения, когда получает соединение создает новую сессию - добавляет ее в словарь(id-сессия) и запускает в новом потоке метод из сессии, где идет общение, когда у сессии соединение окончено(долго ничего не просит(т.к. пока не с реальными девайсами общаюсь, а эмулирую девайсы, просто ставлю счетчик и если в цикле общения n раз пришел пакет только 0й длины, обрываю сессию) либо просто прислало пакет о том, что закончило общение), поток закрывается(ставлю флаг sessionClosed = true), на событие закрытия сессии сервер удаляет из словаря эту самую сессию, у сессии в свою очередь реализован IDisposable в котором метод Dispose вызывается при закрытии сессии.
Так вот, к чему я все это. Я запустил на локальном ПК сервер и он даже без подключенных сессий жрет 9МБ оперативки. А если я эмулирую 1000 сессий(просто в отдельном проекте создаю кучу клиентов которые стучат в порт) он уже аж 130МБ съедает. Я конечно не эксперт, но разве это не много? Или для шарпа это норма?
И еще, судя по статистике работы процессора, большую часть времени процессор не особо жрет ресурсы, по сути скачок происходит когда я разом 100+ сессий добавляю или решаю все сессии разом остановить, во время самого общения даже 1% не потребляется, но при этом в консоли(пока интерфейс сервера делаю в консольке) при вводе команд во время какой-то операции заметна задержка, в связи с этим у меня возникла мысль, что я, наверное что-то делаю не так. Думал что для каждой сессии делать отдельный поток - неправильно, но пробежавшись по нескольким книжкам, увидел, что там примерно так и делают.
Короче, жду советов мудрых и может быть книжек, где будет на нормальном примере показано как нормальный сервер пишется, а не очередное: Ну, бесконечный цикл где при подключении мы получаем сообщение, делаем его большими буквами, отсылаем обратно, закрываем соединение и ждем нового подключения.
286 1510234
Есть книги/руководства в сети или еще чета по серверному?
287 1510240
>>510234
нест
288 1510242
pic1.png18 Кб, 417x260
289 1510248
>>510224
Нельзя быть настолько тупым, если хочешь стать программистом.
290 1510249
>>510227

>жрет 9МБ оперативки. А если я эмулирую 1000 сессий(просто в отдельном проекте создаю кучу клиентов которые стучат в порт) он уже аж 130МБ съедает.


> Я конечно не эксперт, но разве это не много?



Ты из какой мухосрани вещаешь, что для тебя 9 и 130 мб это много?
291 1510251
>>510248
И зачем ты это высрал, дебилоид? Можно полностью метод переписать, вот только сути написанного в книге это не изменит.
292 1510254
Есть ли смысл обмазываться wpf в 2019 году? На работе немного используется, но я только самые основы ухватил и просто пизжу код со стака, с горем по полам его переписывая. Может стоит овладеть им на нормальном уровне?
293 1510255
>>510251
Шизик плес, ты сам мпрашивал зачем там асинк. Я показал, как можно без него.
294 1510261
>>510249
Из глубокой. 100к населения.
Но не в этом же суть. Просто мне кажется, что ну не должно быть так, что всего 1000 клиентов, которые отправляют пакеты по 10КБ, их сервер обрабатывает и шлет ответ уже жрут 100+МБ оперативки, а в будущем эта хрень должна минимум 100к клиентов на одном сервере поддерживать, даже если увеличение потребления памяти будет линейным, это все равно буде 10+гигов.
Мне кажется, что я где-то наговнокодил, а ведь по сути еще ни СУБД не присобачил, ни логирования какого-то не сделал, ни интерфейс не запилил, ни всего остального не сделал. Так вот продолжу и будет эта хреновина кучу памяти жрать и тормозить.
295 1510264
>>510261

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


Так ты посмотри, линейное оно или нет. Скорее всего нет, потому что мусоросборщик начнет просыпаться чаще.
296 1510266
>>510261
10 гигов на 100к человек это дохуя по твоему? Ну тогда пиздуй из треда в тред байтоебов на плюсах писать
297 1510271
>>510255
Я не спрашивал зачем там async, я спрашивал есть ли опечатка в книге и если есть, то в каком месте.
298 1510273
>>510261

>https://habr.com/ru/company/microsoft/blog/473172/


>В наших тестах один экземпляр Standard_D1_v2 в Azure (1 vCPU, 3,5 ГБ памяти) мог обрабатывать более 5000 одновременно работающих пользователей без снижения задержки.


>Экземпляр Standard_D3_V2 (4 vCPU, 14 ГБ памяти) обрабатывал более 20 000 одновременно работающих клиентов.

15608892497620.png245 Кб, 400x617
Сижу ахуел 299 1510275
Блять, сярписты, посоветуйте как быть.

Устроился на работу .NET разрабом. Работаю уже 2 неделю. Собеседовали на C# + ASP.NET + SQL Паттерцы-хуятерны, солид, кишочки шарпа. В итоге, насколько я понял, мне придется поддерживать код на VB.NET + ASP.NET Legacy + работа с SVN и Jira. На шарпе там только новые проекты, и я понимаю что быстро меня туда не пустят.

Я понимаю что обосрамс, и надо перекатыватся. Но даже если отработать там пол года - год кушац хочеца, я могу претендовать на зп не как у человека с 0 опытом шарпа? Чисто за счет прокачанных софт скилов и вообще опыта коммерческой разработки? За условия что я буду пилить свои проекты на шарпах.
sage 300 1510318
>>510275
Чего ты ожидал?
За бугром сложные схемы отлова кадров на которые влияют еще сотрудничества института по контрактам с мс
Ты выучил это говно находясь в рамках мертвого .net рынка с аутсорсящими белонегроидными шарашкими конторами
Наслаждайся своей энтерпрайзной коммерческой разработкой, вряд ли найдешь лучше
301 1510324
>>510318

>sage


>pooq

302 1510334
>>510275

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


Что ты как маленький, на новой работе будешь рассказывать, как архитектором работал на этой.
303 1510339
Чем .Net отличается от .Net Core, особенно Asp.Net? Хочу галеру сменить, а вакансии почти все коровские. Что почитать или посмотреть?
304 1510420
>>509074

> зачем тогда добавлять модификатор async при объявлении функции?


>>510271

>Я не спрашивал зачем там async,


Шизик, успокаивайся.
305 1510441
Может кто-нибудь объяснить как в ASP.NET, RESTfull подход применять. Выставление на странице input formmethod="delete" и атрибута HttpDelete в контроллере не помогает. Вроде бы надо AJAX для посылки форм надо юзать, но я в душе не ебу и нагуглить что-то вразумительное с примерами не могу.
306 1510442
Почему У Майкрософта Вечно Всё С Большой Буквы? Функции, Константы, Свойства, Даже Небо, Даже Аллах.
307 1510445
>>510442
комплексы
308 1510447
>>510445
Аааа, это Micro soft, понял.
309 1510467
>>510420
И зачем ты из контекста вырываешь, шизик? При этом ты его убрал и переписал тело метода добавив хуеты, очевидно, что автор книги бы это заметил и опечатки там либо нет, либо она в чём то другом.
310 1510470
>>510339
У Кора упор на кросплатформенность и веб-приложения, а .Net это вообще всё что связано с .Net, те и core и framework
311 1510473
>>510442
Это называется соглашением об именовании. Всё кроме локальных переменных, имён полей и аргументов метода пишется с прописной буквы в ПаскальКейсе, эти три пишутся в камелКейсе со строчной.
312 1510477
>>510473
Ты не ответил мой вопрос, ты повторил то что я сказал.
313 1510480
Бля, Антоны, мне ответили, теперь придется повторять ебучий джаваскрипт и sql.
Как думаете, знаний из современного учебника javascript хватит, чтобы пройти собеседование?
314 1510485
>>510477
Ты ничего о соглашениях не писал, будто это майкрософтская прихоть придерживаться подобных соглашений. Большинство внутри майкрософт посчитало, что так удобней и читается лучше, также как и в других случаях с подобными соглашениями.
315 1510491
Если я хочу написать базовый запрос на LINQ, а потом вызывать его обновляя результаты, как это сделать? Мне кажется что он при первом вызове выполнится, данные загрузятся в память и будут оттуда тянуться, несмотря на изменения в БД.
316 1510494
>>510491
Именно поэтому все linq запросы выполняются отложенно. Каждый раз перечисляя какое-либо перечислимое, которое состоит из linq запроса, ты получаешь обновленные данные.
317 1510497
>>510491
+ если хочешь зафиксировать результат, то нужно вызывать преобразовательные методы вида .ToList()/.ToArray()
318 1510513
>>510497
>>510494
Найс, спасибо
319 1510515
>>510491
Вообще не знаю такой проблемы, приведи пример кода.
320 1510521
>>508629
При этом опу никто не советует что-либо заменить. Но как обосрать - сбегается толпа экспертов мирового уровня.
321 1510528
>>510521
ОП смешал говно с годнотой, он мутанита то только недавно убрал, не смотря на то, что только редкостный говноед не высказывался о его хуевости. Я и сам стал жертвой мутанита, начав с него, но ничего, плохой опыт тоже опыт, теперь хотя бы есть с чем сравнить.
322 1510531
>>510528
Посоветовали и убрал. В остальном все сидят с кривым еблетом и морщатся, при этом ничего дельного предложить не в состоянии. Вы вообще опа не теребите лишний раз, уже забыли как пару лет шапка была из ШАРП ТРЕД и рандомной пикчи? Авось уйдёт от вас, будете потом эту платину (сап что прочесть ньюфагу) каждый день читать с горящей жопой.
Алсо не понимаю гона на ментанит, никто же не заставлял его читать. Просто было написано вот есть такой сайт, посмотри.
323 1510537
>>510531

>Посоветовали и убрал.


Советовали 100 раз, убрал только на 101, все поняли, что советовать смысла нет. Не малую роль играет то, что тут этих "всех" 1.5 анона.

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



Так сразу ссылку на гугл вставляй с запросом "C# books, tutorials", почему нет? Советы на то и советы чтобы отсеивать говно, а "вот есть такой сайт, посмотри" ничего о материале не говорит, особенно для новичка, который ничего до этого не читал.

> Вы вообще опа не теребите лишний раз, уже забыли как пару лет шапка была из ШАРП ТРЕД и рандомной пикчи?



Другого от анимешника ожидать и не приходится. После подставы с мутанитом мне вообще похуй на шапку, я просто захожу на https://libgen.is/, ищу материал по теме и самостоятельно выбираю.
324 1510539
Бля, кому вообще не похуй на шапку, вы серьезно ей пользуетесь, для кого она существует?
Все нормальные посоны уже давно знают про учебники и годные ресурсы.
325 1510540
>>510539
ОПу и его ЧСВ, а также вкатывальщикам, которые верят, что на дваче могут посоветовать что-то полезное.
326 1510542
И, кстати, чем метанит так плох? Если нужно освежить знания по какому-нибудь говну, то почему бы и не почитать его?
У Троелсона из книги в книгу копируется одно и тоже говно, есть разбор CLI, сам мутанит больше похож на книжку того Шилдта. В том же Троелсоне разобрано вообще не все, про отражение сказано мало, так что читайте Рихтера.
327 1510546
>>510467
Ну шизик. Нет там опечатки, читай по буквам, если тяжело воспринять сразу. Async там нужен только для того, чтоб не писать ретурны. Как сделать тоже самое, но без асинка, а с явными ретурнами я тебе показал, раз для тебя это оказалось слишком тяжело.
328 1510547
>>510542
Из треда в тред пишут почему мутанит говно, даже в этом треде написано почему он говно, но долбоебы (а скорее долбоеб) продолжает спрашивать "ЧЕМ МЕТАНИТ ПЛОХ!?!?!?!".

>У Троелсона из книги в книгу копируется одно и тоже


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

>В том же Троелсоне разобрано вообще не все, про отражение сказано мало



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

>читайте Рихтера.


Сейчас бы в быстроразвивающемся мире IT советовать говно мамонта шестилетней давности. Не удивительно почему у тебя метанит подозрений не вызывает.
329 1510551
>>510547

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


Читал еще год назад какую-то версию Троелсона, по сравнению с Рихтером он очень поверхностен, не вижу какой-то особой разницы с метанитом, кроме разбора CLI.

>Чего там тебе мало?


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

>Сейчас бы в быстроразвивающемся мире IT советовать говно мамонта шестилетней давности.


Зато оно сделано подробно, да и в языке не произошло чего-то особого, что делает Рихтера неактуальным, разве что выход .Net Core, но мне норм, ибо я к нему не прикасался и не собираюсь, пока разработка ведется не на нем.
330 1510552
>>510551
Да и не только отражение, Троелсен не рассматривает, как работают делегаты изнутри, у него мало про уборку мусора написано, про строки, про асинхронку и многопоточку.
Этого даже для джуна не хватит по факту.
331 1510555
>>510551

>не вижу какой-то особой разницы с метанитом


Разница в детальном объяснении, последовательности, отсутствии перепрыгивания с темы на тему, а также отсутствии желания рассказать всё на 5 страницах текста.

>Зато оно сделано подробно


Для подробного есть Альбахири, как раз его и нужно читать после Троелсена.

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


Произошло C# 6.0, C# 7.0, а это кортежи, оператор is, switch по типам и с условиями when, локальные методы и еще куча годноты о которой твой Рихтер и не знал.

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


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

>как работают делегаты изнутри


И правильно делает, зачем новичку эта информация, особенно когда есть события и лямбда-выражения о которых будет полезнее знать, чем о том как внутри работают делегаты. При этом у него есть рассмотрение самого IL и упоминание ildasm, которые дадут почву для изучения всех внутренностей, если ты этого так хочешь.
332 1510558
Для .NET Core надо переучивать какие-то API, или там всё то же самое?
333 1510559
>>510537

>Советовали 100 раз, убрал только на 101,


>Шапка edition #13


Сдаётся мне ты пиздаболишко.
334 1510564
>>510551

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


Overдохуя вакансий на .NET Core 2.0+, рыночек перевернулся на Core, все перепиливают актуальные проекты под Core. И только анону на дваче это нахуй не надо, ибо его контора пишет на монолитном фреймворке. А когда легаси сгорит и его попрут из конторы - тогда и познакомится с Core.
Наес
335 1510565
>>510555

>Произошло C# 6.0, C# 7.0, а это кортежи, оператор is, switch по типам и с условиями when, локальные методы и еще куча годноты


Учится за день с одной рукой в трусах.

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


Просто ни с чего сделал вывод, ведь главное говном мазнуть.

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


Это и у Рихтера разбирается.
И новичку, видимо, не нужно знать про SynchronizationContext, встретит он ConfigureAwait(false) и все, иди кривую статью на MSDN ковыряй.

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


Да, охуенно, что-то уровня указания на msdn
image.png17 Кб, 557x221
336 1510568
>>510564
Ага, охуенно, переквалифицировался, куда деваться, ток вакансий на сам C# раза в 3 больше.
337 1510569
>>510546
Какие ретурны, долбоеб? Если убрать async и добавить return Task.CompletedTask и return actualImplementation(), функция будет возвращать Task от actualImplementation, в случае если всё оставить так как есть в книге, будет возвращаться Task функции MethodWithProblemsFixed, никто за тебя "ретурны" дописывать не будет.
Зачем ты вообще продолжаешь срать себе в штаны, если написал, что MethodWithProblems и MethodWithProblemsFixed ничем не отличаются?
338 1510570
>>510537
Ух какой у нас бомбящий шизик в треде завёлся. Не иначе как тебя ментанит в жопу выебал в детстве. Иначе и не обьяснить этого хейта.

>Советовали 100 раз, убрал только на 101, все поняли, что советовать смысла нет.


Советовали РОВНО 1 раз в 4 треде, в 6 уже ссылки небыло. До этого были единичные посты "Ой чот мне лично ментанит не нравится". Хотя тут таких постов сотни про любой ресурс. Возьми хоть дебила который Visual Studio хейтил потому-что на мак не мог ссылку найти. Оп таких дятлов не слушает, я тоже и тебе советую.
339 1510573
>>510539
Шизикам не похуй. Каждый тред тут человек 5 пытаются говорить с пастой 2016 года.
340 1510576
>>510565

>Просто ни с чего сделал вывод, ведь главное говном мазнуть.


Вывод сделан с того, что на момент написания рихтера был только C# 5

>Учится за день с одной рукой в трусах.


Сразу видно юного падавана мутанита. У того весь C# за один день с рукой в трусах учиться.

>И новичку, видимо, не нужно знать про SynchronizationContext, встретит он ConfigureAwait(false)


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

>иди кривую статью на MSDN ковыряй.


Проблемы быдла, который в 2к19 не знает английского, никого не волнуют, это правда.

>Да, охуенно, что-то уровня указания на msdn


Это уровень последовательного и уместного повествования. Сначала читаешь Троелсена, потом читаешь Альбахири или про какие-то конкретные области, которые тебя интересуют.
341 1510578
>>510570

>Не иначе как тебя ментанит в жопу выебал в детстве.


Может это он тебя выебал и сейчас у тебя Стокгольмский синдром из-за которого ты из треда в тред его защищаешь?

>Советовали РОВНО 1 раз в 4 треде, в 6 уже ссылки небыло.


Его тут каждый тред засерали, либо упоминали его в ироничном контексте, но у тебя то конечно всё учтено, прям до раза. Наверно и номера постов записаны, лол. Я даже лично расписывал по полочкам, тыкал носом в дерьмо метанита, но после этого он продолжал висеть в шапке.
Хотя понятно, ведь любой совет можно списывать на "Ой чот мне лично ментанит не нравится", а потом еще и в пример какие-то случае с макоглиномесами приводить.
342 1510584
>>510578

>ты из треда в тред его защищаешь?


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

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


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

>но у тебя то конечно всё учтено, прям до раза.


Ахуеть расчёты досчитать до одного! Рокет саенс, не иначе.

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


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

А вообще я не понимаю к чему ты этот срачь устроил снова. Метанита в шапке нет уже несколько тредов, а жопа у тебя по прежнему горит. Может быть дело всё-таки в тебе?
343 1510587
>>510576

>Сразу видно юного падавана мутанита.


Ох лул, я в разработке уже 2 года и таки нововведения учил за день.

>У того весь C# за один день с рукой в трусах учиться.


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

>Для этого и есть книги за авторством Альбахири, от которых не воняет стариками типа рихтера.


Бля, ну это уже вышка, Рихтер старик, а значит хуевый.
Вот это аргументация.

>Проблемы быдла, который в 2к19 не знает английского, никого не волнуют, это правда.


>БЫДЛА НЕ ЗНАЕТ АНГЛИЙСКИЙ, АРЯЯЯ


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

>Сначала читаешь Троелсена


Точно с такой же эффективностью сначала можно читать метанит, пиздецовой разницы нет.
Говорю как человек, что читал и Троелсона и метанит и Рихтера и даже Албахари, которого ты считаешь очень подробным, хотя по факту это не так.
344 1510589
>>510584

>спрашивает про мутанита


>продолжает рассуждать о нём


>А вообще я не понимаю к чему ты этот срачь устроил снова



Ты сам с собой разговариваешь что ли?
345 1510590
>>510589

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


>Ну ты же сам спросил про мутанит!


Тебе только галоперидол. Остальное уже не поможет.
346 1510593
>>510590
Мутанит это единственное, что ОП убрал, поэтому я его и упомянул, при этом это самый яркий пример говна о котором говорили много, но долго не убирали. Но ты конечно можешь выдумывать шизиков у себя в голове и приписывать это им.
347 1510594
>>510569

>если написал, что MethodWithProblems и MethodWithProblemsFixed ничем не отличаются?


Пруф? Или опять шиза играет?
>>510569

>"ретурны" дописывать не будет.


Вот тут >>510204 я тебе не просто так второй пик прикрепил.
348 1510595
>>510587
И вообще смешно, когда человек общается на уровне 13-летней залетухи из /b, но зато он АНГЛИЙСКИЙ выучил, а все, кто его не знают, они БЫДЛО, вот он особенный, ибо смог кое-как выучить один из легчайших языков.
Козырял бы ты китайским или японским, то я бы еще это понял, но для изучения английского вообще никаких усилий прикладывать не надо.
349 1510596
>>510593
Пошли манявры. Ещё раз тебе шизику говорю, что ты сперва САМ его начал в треде форсить, потом сам же бомбанул от него, а потом ещё и попытался на меня стрелку перевести, мол это я его упомянул. Хуя ты шизик!

>Мутанит это единственное, что ОП убрал, поэтому я его и упомянул


Ещё раз тебе вопрос повторю, его убрали. Какие у тебя ещё блядские претензии ебобо?

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


Что-то я захожу в прошлый тред и не вижу чтобы что-то просили убрать ещё. Видать это всё в твоём манямирке было. Говорят такое бывает когда ты шизойд.

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


Ясно.
350 1510598
>>510596
Выгоните вообще этого шизика из нашего уютного тредика, не нравится шапка - пусть пишет свою. Хотя, блджад, кого она вообще ебет, можно и без нее, но пусть будет, если кому-то удобно
351 1510601
Тем кто не шизик я напоминаю что ОП СПЕЦИАЛЬНО создал >>1482359 пост. В котором всего 2 ответа. Вот и вся предложка.
>>510598
Он тут в качестве анона который генерирует срачеконтент вокруг которого держится общение. Так как мы на дваче, такое поведение привлекает посетителей в тред. Адекватные аноны пьют чай и общаются друг с другом вежливо. А кому скучно может подразнить шизика и получить интересные посты в ответ. Ну разьве не милота?
352 1510607
>>510601

>Ну разьве не милота?


Ну свое собственное цирковое животное - это может и хорошо, но поскольку я к вам не так часто заглядываю, ибо вопросов у меня обычно нет, то смотрите сами.
Всех благ.
353 1510616
>>510607
Заглядывай почаще. Тут иногда такие тёплые беседы ведутся, что даже и просто почитать бывает интересно.
354 1510660
>>510594

>Пруф? Или опять шиза играет?



>Локальна функция не причем, и да можно сделать проверку перед Task.Run(), результат тотже.


И вот еще относительный высер

>Await сделает весь метод асинхронным //из моего поста


>лол нет. //твой высер


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

>Вот тут >>510204 я тебе не просто так второй пик прикрепил.


Может ты наконец перепишешь пример из книги и перестанешь выставлять свою тупость на показ? Ты написал return перед внутренним таском, который оборачивается в примере в локальный метод, говоря о том, что если оставить async, то этот return допишет за тебя компилятор. На деле при async он допишет его не перед локальным методом, а в конце метода MtethodWithProblemsFixed. Поэтому твой высер про "лень было прописывать ретурны" выглядит более чем нелепо.
355 1510664
>>510596
Ясно. Шизик любой пост с упоминанием метанита воспринимает как крясную тряпку и теряет его суть. Я мутанита как пример привёл, но у шизика почему-то пример превратился в претензию, лол. Еще и форсы какие-то придумал. Как я уже писал, мне похуй на шапку, можешь вернуть туда своих мутанитов и одноклассников, это не отменит того факта, что твой мутанит редкостное дерьмо.

>Что-то я захожу в прошлый тред


А, ну раз в прошлом треде нет, значит никогда не было. 10 из 10 логика, долбоеб.
356 1510671
>>510664

>Как я уже писал, мне похуй на шапку


>Нет, тя не понял мне похуй


>Посмотри вот на этот и ещё 24 поста о том как мне похуй

357 1510680
>>510671

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



Почему без боевых картиночек? Или может еще одним монологом вроде этого >>510601 >>510607 >>510616 порадуешь?
image.png86 Кб, 1657x479
358 1510686
>>510680
Бля, шиз, у тебя теперь вокруг еще и Семены, лул.
Хватит серить себе в штаны
359 1510700
>>510680

>Гринтекст не имеет смысла


>Я не шизик, это ты шизик


>А ещё ты семён


>А ещё я скажу про картиночки чтобы было типа я олд


>Я не шизик


>Ну мааааааааам скажи им

360 1510703
А можно, кстати, пруфы к этому?

>Вы можете (и должны) добавить в начало метода проверки, но поскольку весь метод является асинхронным, нет никаких


гарантий, что такие проверки выполнятся
Если я впишу код проверки перед await Task.Run без этого вашего локального метода, то по идее все выполнится, так как стейт машина следит за последовательностью выполнения.
361 1510706
>>510703
Я, если честно, не понимаю проблемы.
По идее и в самом таске можно впихнуть проверку данных и отменить операцию.
image.png35 Кб, 628x310
362 1510731
>>510706
>>510703
Короче, пока кто-нибудь не пруфнет, что проверка как на пике не сработает будем считать, что Троелсен написал хуйню.
.png37 Кб, 547x368
363 1510740
Господа, конфуз! Что, во имя Минервы, я сделал не так?
364 1510743
>>510660
Ты снова обосрался. Ищи быстрей свой галоперидол.

>Await сделает весь метод асинхронным <-твое


>лол нет. <-мое


>разбить метод на синхронную и асинхронную часть <-троелсен


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

>MethodWithProblems и MethodWithProblemsFixed ничем не отличаются <- ты приписал это мне


>Локальна функция не причем, и да можно сделать проверку перед Task.Run(), результат тотже <- то, что я писал


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

>>510660

>На деле при async он допишет его не перед локальным методом, а в конце метода MtethodWithProblemsFixed.


Ты все еще еще не понимаешь чем разговор и во что компилятор разворачивает async/await. Да я и не писал куда компилятор вставит ретурн (это было на скрине), я показывал куда вставлять ретурны, если писать без async. Не путай меня со своими голосами в башке.
365 1510745
>>510703
>>510706
>>510731

Да по-разному можно проверить. Тем более тот пример не из главы про асинхронность, а про локальные методы. Плюс если делать метод с авэйтом, то еще и нормальный проброс ексепшона получишь. Но как я написал, там пример не про это.
>>510740
нет неявного преобразования из дабл в инт. Либо приводи явно, либо пусть метод дабл возвращает.
.png6 Кб, 344x104
366 1510749
>>510740
Разобрался. Число было вставлено из калькулятора (стандартный Windows 10), и он вставил в результат непечатаемые символы. Пришлось перепечатать всю строку, чтобы заработало.

>>510745

> нет неявного преобразования из дабл в инт.



Нет, он остановился на проблеме с отсутствующим ;. До преобразования даже не дошел.
367 1510750
>>510740
хотя он прости ";".. есть еще ошибки? может ты со скобками накосячил
368 1510756
>>510750
Спасибо, глюк оказался чуднее, чем я думал. Никогда такого ещё не встречал, но поимею в виду.
369 1510783
>>510745

>Но как я написал, там пример не про это.


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

>Пришлось перепечатать всю строку, чтобы заработало.


Как же шарпистам тяжко приходится.
371 1510793
>>510745

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


Это глава как раз про многопоточку и асинхронность и находится оно как раз в части с асинхронкой.

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


Где автор это сам указал? У него конкретно написано, что юзать локальный метод нужно из-за того, что проверка может не выполниться в силу асинхронности метода.
Это неправда.
Вот и читай вашего Троелсена после такого.
372 1510798
>>510793
выполнится*
373 1510804
>>510793
Вот что значит отсутствие пояснения про StateMachine.
Этот делегат в Task.Run никоим образом не может выполниться раньше проверки, никакой экзепшен тут не будет выбрасываться, поскольку выход из метода произойдёт прямо во время проверки.
Вообще, эти локальные методы сомнительная штука.
374 1510827
>>509175

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


Этого вообще никак не может произойти.
.png15 Кб, 492x451
375 1510830
Шарпаны, чому вы переменные и методы обзываете английскими словами? Неудобно же читать потом. Вот просто посмотрите на прикриплейд. Все ясно-понятно, не нужно пытаться вспомнить что значит какое-то слово и ты можешь даже без комментариев кодом пользоваться. Да и запомнить неймеспейсы, названия классов намного проще. Вот просто сравни:
StreamReader и ПотоковыйЧтец. Вот сразу же понятно что оно делает.
Надеюсь в будущем кто-нибудь сделает русскоязычную обертку для всего .Net, чтобы человек не тужился вспоминать: "Что это за Dictionary такой?", а сразу понимал: "Ага, словарь, сейчас в него запишу что-нибудь".
376 1510844
>>510830
Легче выучить английский, сириузли, это очень легкий язык.
index.png8 Кб, 224x225
377 1510845
378 1510850
>>510844
Ну, знаешь ли, когда ты оказываешься в команде, где куча бывших джавистов, сишников и пару человек с асмом и все вы вместе пилите на шарпе, получается такая вот фигня, что джавист привык Map писать и к каждому словарю дописывает Map, UserMap, ClientMap, ListnerMap, а тебе нужно каждый раз из-за этого наводить мышкой чтобы понять что это Dictionary<>, сишник думает что писать что-то в духе "ctr1()"- круто, даже в шарпе и т.д. Писали бы по русски, не приходилось бы даже задумываться о том что это значит. Ну или хотя бы писали одинаково нет, каждый хуй хочет частичку себя, блядь, оставить и чтобы все потом охуели пытаясь понять, что за говно он там понаписал и как, а главное почему, оно вообще работает.
379 1510851
>>510743

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



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

> MethodWithProblems не делает проверок и валится в асинхронной части,



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

>Да я и не писал куда компилятор вставит ретурн (это было на скрине), я показывал куда вставлять ретурны, если писать без async. Не путай меня со своими голосами в башке.



Ну да, на скрине одно, а писал ты совсем про другой. В голосину, тебе самому не смешно от своих нелепых оправданий?
380 1510853
>>510804
Троелсен называет такие ситуации одной из причин, по которой ввели локальные методы. Но вот не задача, Троелсену с его 20-ти летним опытом, про стейтмашин не пояснили оказывается. Не перестаю проигрывать со всезнающего анона.
381 1510854
>>510827
Троелсену это скажи. Он два примера разных приводит, но оказывается этого никак произойти не может.
382 1510856
>>510853

>Троелсен называет такие ситуации одной из причин, по которой ввели локальные методы. Но вот не задача, Троелсену с его 20-ти летним опытом, про стейтмашин не пояснили оказывается.


Начнем с того, что ты тупо отсылаешь к авторитету Троелсена, что демагогия и вообще не аргумент.
А теперь тебе вопрос, знаешь, чем отличается await Task.Run от обычного Task.Run?
image.png28 Кб, 547x326
383 1510861
>>510854
Окей, скажите мне, как с ним связаться.
Вот вам, блядь, пример.
Если я напишу await Task.Run, то такой случай невозможен.
А знаете почему? Потому что стейтмашина сохраняет порядок вызова кода.
384 1510862
>>510856
Тебя уже выше по этому поводу обоссали, ты всё никак не угомонишься и за второй порцией лезешь? Прислушайся к этому >>508506 посту и прекрати срать в тред.
image.png72 Кб, 1497x343
385 1510863
>>510862
Это другой Анон.
386 1510865
И еще, это даже не только я могу подтвердить, но и обычный пример со стаковерфлоу, где человек говорит тоже самое, причем даже не один человек, а два.
У них тоже проеб по всем фронтам, просто надо читать нормальную литературу, а не Троелсена.
https://stackoverflow.com/questions/37360905/what-is-the-difference-between-task-run-and-await-task-run

>The difference between them, is that in the first example, when Task.Run returns the code which immediately follows that line gets executed immediately(provided no thread switch happened). And in the second example the lines which follow await get executed only when LongOperation completed on some thread provided by the thread pool(DoWork immediately returns when it encounters await).



Да и вообще, что это за аргумент ссаный, ты либо нормально Анону ответь по факту, либо не выебывайся.
1.jpg216 Кб, 1233x549
387 1510866
>>510863
Еще я долбоеб и хуй сосу.
388 1510867
>>510866
Да, чувак, мне есть охуенный смысл лезть в фотошоп, чтобы убедить шизика в треде, что я не Семен.
По факту давай приводи пруфы, что Троелсен не обосрался.
389 1510868
>>510865

>речь про локальные функции и проверки в асинхронных функциях


>долбоеб тащит стэковерфлоу с Task.Run и await Task.Run


>ПАЧИМУМНЕНАРМАЛЬНА НИАТВИЧАЮТ МАААМ СКАЖИ ИМ!! ТРОИЛСИН ЛОХ!!!



В голосину. Почему ты перескочил с асинхронной функции и локальных функции на await, хотя про него никто и не говорил и не спрашивал? Был скрин из книги авторитетного автора, был конкретный вопрос. Зачем ты сюда лезешь со своей обосранной сракой и своим "вы нихуя не понимаете, троелсен говно, верьте моему шизобреду"? Ты либо опровержение делай, подкрепляя авторитетными источниками, либо нахуй иди и не засоряй тред.
390 1510872
>>510868

> Был скрин из книги авторитетного автора, был конкретный вопрос


Авторитет автора хуйня, нужно все по факту проверять.

>Почему ты перескочил с асинхронной функции и локальных функции на await, хотя про него никто и не говорил и не спрашивал?


Вообще-то про await говорилось в самой книге Троелсена, у него вызывается делегат через await и сказано, что проверка может выполниться после.
Я же привел пример со стаковерфлоу, где еще два человека, кроме меня, поясняется, что функция вызванная через await выполняется в том порядке, в котором она написана, что как бы подразумевает, что выполниться до какого-либо синхронного кода она не может.
Но тебе, великому чтецу Троелсена, такая логика вообще непостижима видимо.
391 1510876
>>510872
И я могу закинуть пруфов, просто прочитайте то, как работает конечный автомат и сразу все станет ясно.
392 1510878
>>510872

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



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

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

>>510876
Ты так сразу и скажи, что ничего не понял из того что на твоих скриншотах. Еще и в русике всё, а пытаешься на английском что-то читать. Оно и понятно откуда такие пробелы.
393 1510881
>>510878

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


Верно.

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


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

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


Нет, имеет, поскольку показывает свойство statemachine.

>Еще и в русике всё, а пытаешься на английском что-то читать. Оно и понятно откуда такие пробелы.


Ох лул, доказывай, что русский перевод хуев в этой части или получай мою струю урины.
image.png57 Кб, 868x777
394 1510916
>>510881
И еще раз в подтверждение мною же сказанного.
395 1510934
>>510916
>>510881
Дегенерат умственно отсталый, вопрос был по книге и почему Троелсен так написал. Зачам ты сюда со своей хуйнёй лезешь? Если бы я этого не знал, у меня бы и не возникло никаких вопросов, я бы прочитал и пошел дальше.
396 1510947
>>510850
И как это решает перечисленные тобой проблемы? Джавист будет писать КлиентКарта, шарпист будет наводить мышкой чтобы понять что это Словарь<>. Сишник будет думать что хуй1() – это круто.
397 1510962
>>510947
Я просто надеюсь на то, что на русском они будут таки руководствоваться здравым смыслом при именовании, а не привычкой. В кодинге же такое дело: тривиальные задачи, коих 95% от работы, люди пишут на автомате, как привыкли. Если заставить всех резко писать на русском, они вынуждены будут хотя бы на секунду задуматься о том, как нужно обозвать переменную и, возможно, таки разум возьмет верх и человек напишет: СловарьПользователи. А потом это войдет в привычку, но уже будет более-менее понятно, что какой кусок кода делает.
398 1510964
>>510934

>вопрос был по книге и почему Троелсен так написал


Троелсен хуйню написал про то, что асинхронный метод может вызваться до проверки, я даже уже код скомпилировал, чтобы показать, что такого быть не может.
Либо я как-то неверно понимаю случай, когда порядок может измениться и проверка может выполниться после метода, тогда дайте пример такого кода.
399 1510979
Сап, как сделать метод который останавливает работу другого метода?
400 1511001
>>510979
Можешь засунуть один метод в Task и из другого вызвать отмену операции.
401 1511003
>>510979
Создаешь CancellationTokenSource, передаешь из него .Token в метод который нужно остановить, добавляешь в цикл метода либо проверку .Token.IsCancellationRequested, либо .Token.ThrowIfCancellationRequested() , в останавливающем методе при необходимости вызываешь .Cancel у объекта CancellationTokenSource.
402 1511110
Стоит ли читать вот это
https://www.introprogramming.info/wp-content/uploads/2013/07/Books/CSharpEn/Fundamentals-of-Computer-Programming-with-CSharp-Nakov-eBook-v2013.pdf
совсем новичку в программировании или материал слишком устарел?
403 1511250
>>511110
Стоит, вполне хороший материал по основам. Устаревать там особо и нечему, потому что затрагиваются основы. Прочитай это, а потом можешь переходить на Троелсена или Рихтера.
404 1511255
>>511250

>1000+ страниц


>основы


Там что? На 200 страниц про циклы рассказывают?
405 1511258
>>511255

>Introduction to Programming



42 страницы. Больше чем про циклы в 2 раза.
406 1511260
>>511110
Да, только я бы посоветовал читать самые основы, потом про многопоточку уже у Троелсона можешь прочитать, ток будь осторожен и все проверяй, Троелсон и напиздеть может.
407 1511263
>>511260
Ну или у Шилдта.
408 1511265
>>511260
Про многопоточку нужно у альбахири читать.
409 1511335
>>499746 (OP)
Привет шарпики. Кто-нибудь работал с FluentFtp? Срочно нужна помощь.

Краткое описание проекта : WPF на "чистом" MVVM + FluentFtp. Проект типа простого Ftp клиента

Проблема заключается в том что ответ от сервера приходит с разным интервалом от 300 мс до 2 секунд. Ответ в плане получения списка файлов и папок на удаленном сервере.
410 1511345
>>511335
Я просто оставлю здесь long polling. Погугли.
411 1511349
>>510441

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


Если коротко - загугли ASP .NET Web API.
Да, через ajax можно кидать форму (данные, пикчи и говно) по конкретному пути и получать ответ. Таким образом не только устанавливается связь View-Controller, но и появляется возможность бескостыльно использовать контроллеры как API для любых клиентов, гонять данные и юзать контроллеры без апдейтов страниц и прочее. Годная вещь, рекомендую к изучению.
К слову, если полезешь в Core пробовать - очень советую сразу загуглить, как изменить дефолтный парсер JSON на Ньютонсофтовскую говнину. Дефолтный в Core не умеет в большие данные и крашится к хуям при передаче формы в 8 полей.
412 1511700
>>503926

>Rider


По факту лучшее иде для дотнета, я испытываю оргазм когда не пользуюсь эксплоером а просто щелкаю хоткею
>>504361
ты говноед?
413 1511703
>>500363

>ASP


dependency injection оно же частный случай dependency invercion, пайплайн, cicd, транспорт данных типа rabbitmq, мб кеш redis, тесты обязательно, желательно по bdd, причем не только юниты, можно сквозные писать (тестируют api) и ui тесты на селениуме
414 1511704
>>504190
di контейнер, ну и пайплайн мидлварей (middleware)
415 1511710
>>507945
самое лучше упрощение написания тестов - с них начинать
изображение.png41 Кб, 1078x432
416 1511714
>>509672
а запрос, 2 кнопки, ну и установленных линукс, ты бы блять его сначала установил, а потом бы вопросы задавал, долбаеб
417 1511718
>>509698
лол у меня три тачки, на всех райдер и на всех я взломал, но камон 350 баксов в год, работающий дотнетер может себе позволить на лучшую иде в мире
418 1511720
>>510339
лол перекатывайся пол часа назад просто дотнет каменный век, на коре блазор работает
419 1511745
Короче, меня раздражает студия тем, что она постоянно какую-то хуйню с неймспейсами творит по дефолту. Еще меня раздражает, что папка с исходниками превращается по дефолту в какое-то говно, где потом без студии хуй что найдешь. Какие есть нормальные альтернативы? Чтобы и интелисенс, и возможность в папочках все организовать и т.д.?
421 1511798
>>511745
Очередной долбоеб, который не знает языка, ничего учить не хочет и винит во всём IDE, лол.
422 1511866
>>511798
Как вообще мое недовольство дефолтным поведении студии при выборе неймспейса связано со знанием языка, лол? Или то что мне не нравится что студия упорно не хочет создавать папки в проекте, а кидает исходники в одну папку, если ты вручную не переключишь режим на работу с папкой, но тогда у тебя пропадает возможность использовать шаблончики, которые таки очень удобны.
423 1512046
>>511866
Тут дело в неумении пользоваться студией, говорящее о том, что ты ни одной книги нормальной по шарпу не прочитал, следовательно его не знаешь. Начитаются своих метанитов, а потом оказывается, что студия виновата.
424 1512308
Есть такой код:
class Fraction
{
public int num;
public int denom;

public Fraction() { }
public Fraction(int N, int D)
{
num = N;
denom = D;
}
public int Numerator
{
get { return num; }
set { num = value; }
}
public int Denominator
{
get { return denom; }
set { denom = value; }
}
public static Fraction Plus(Fraction fract1, Fraction fract2)
{
Fraction result = new Fraction();

if (fract1.Denominator != fract2.Denominator)
{
result.Numerator = fract1.Numerator fract2.Denominator + fract2.Numerator fract1.Denominator;
result.Denominator = fract1.Denominator * fract2.Denominator;
}
else
{
result.Numerator = fract1.Numerator + fract2.Numerator;
result.Denominator = fract1.Denominator;
}
return result;
}
public static Fraction Simple(Fraction result)
{
Fraction simpleResult = new Fraction();
int nod = NOD(simpleResult.num, simpleResult.denom);
if (nod != 0)
{
simpleResult.num /= nod;
simpleResult.denom /= nod;
}
return simpleResult;
}
public static int NOD(int a, int b)
{
while (b != 0)
{
int temp = b;
b = a % b;
a = temp;
}
return a;
}
public override string ToString()
{
return num + "/" + denom;
}
}
class Program
{
static void Main(string[] args)
{
Fraction fract1 = new Fraction();
Console.WriteLine("Введите числитель первой дроби: ");
fract1.num = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите знаменатель первой дроби: ");
fract1.denom = Convert.ToInt32(Console.ReadLine());

Fraction fract2 = new Fraction();
Console.WriteLine("Введите числитель второй дроби: ");
fract2.num = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите знаменатель второй дроби: ");
fract2.denom = Convert.ToInt32(Console.ReadLine());

Fraction result = Fraction.Plus(fract1, fract2);
result = Fraction.Simple(result);
Console.Write("Результат сложения: ");
Console.WriteLine($"{fract1.num}/{fract1.denom} + {fract2.num}/{fract2.denom} = {result}");

Console.WriteLine("Нажмите ENTER, чтобы выйти...");
Console.ReadLine();
}
}
В методе NOD должен производиться поиск наибольшего общего делителя дроби, а в методе Simple, исходя из наличия НОД, должно производиться упрощение. Однако, при запуске программы, независимо от введенных данных, результат сложения выдается как "0/0". Если убрать эти два метода, код работает и всё правильно считает. Не могу понять, в чём проблема. Может кто подскажет.
424 1512308
Есть такой код:
class Fraction
{
public int num;
public int denom;

public Fraction() { }
public Fraction(int N, int D)
{
num = N;
denom = D;
}
public int Numerator
{
get { return num; }
set { num = value; }
}
public int Denominator
{
get { return denom; }
set { denom = value; }
}
public static Fraction Plus(Fraction fract1, Fraction fract2)
{
Fraction result = new Fraction();

if (fract1.Denominator != fract2.Denominator)
{
result.Numerator = fract1.Numerator fract2.Denominator + fract2.Numerator fract1.Denominator;
result.Denominator = fract1.Denominator * fract2.Denominator;
}
else
{
result.Numerator = fract1.Numerator + fract2.Numerator;
result.Denominator = fract1.Denominator;
}
return result;
}
public static Fraction Simple(Fraction result)
{
Fraction simpleResult = new Fraction();
int nod = NOD(simpleResult.num, simpleResult.denom);
if (nod != 0)
{
simpleResult.num /= nod;
simpleResult.denom /= nod;
}
return simpleResult;
}
public static int NOD(int a, int b)
{
while (b != 0)
{
int temp = b;
b = a % b;
a = temp;
}
return a;
}
public override string ToString()
{
return num + "/" + denom;
}
}
class Program
{
static void Main(string[] args)
{
Fraction fract1 = new Fraction();
Console.WriteLine("Введите числитель первой дроби: ");
fract1.num = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите знаменатель первой дроби: ");
fract1.denom = Convert.ToInt32(Console.ReadLine());

Fraction fract2 = new Fraction();
Console.WriteLine("Введите числитель второй дроби: ");
fract2.num = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите знаменатель второй дроби: ");
fract2.denom = Convert.ToInt32(Console.ReadLine());

Fraction result = Fraction.Plus(fract1, fract2);
result = Fraction.Simple(result);
Console.Write("Результат сложения: ");
Console.WriteLine($"{fract1.num}/{fract1.denom} + {fract2.num}/{fract2.denom} = {result}");

Console.WriteLine("Нажмите ENTER, чтобы выйти...");
Console.ReadLine();
}
}
В методе NOD должен производиться поиск наибольшего общего делителя дроби, а в методе Simple, исходя из наличия НОД, должно производиться упрощение. Однако, при запуске программы, независимо от введенных данных, результат сложения выдается как "0/0". Если убрать эти два метода, код работает и всё правильно считает. Не могу понять, в чём проблема. Может кто подскажет.
425 1512319
>>512046
Ну давай, расскажи мне, как сделать так, чтобы студия
1. По дефолту делала неймспейс вида: SolutionName.ProjectName.Folder1.SubFolder1.SubSubFilder...
2. При создании проекта в солюшине по дефолту 1. Создавала папку проекта. 2. Кидала исходники в папку src и затем, при создании папки в проекте помещала исходники в эту папку на диске, не переключаясь между режимами папок и солюшинов.
426 1512327
>>512308
В методе Simple ты создаешь класс Fraction используя стандартный конструктор, т. е. задаешь полям значения по умолчанию, у int это 0, после чего ты делишь эти нули на то, что у тебя вернул метод NOD. Поэтому у тебя всегда будет выдаваться 0.

И тебе нужно использовать автосвойства Numrator и Denominator или хотя бы сделать поля num и denom приватными, иначе никакого смысла в этих свойствах и полях нет.
427 1512334
>>512327
Спасибо!
428 1512366
Почему во всех примерах с TCPListener и сокетами данные сохраняют в byte[] методом Read?
Чем плоха конструкция:
List<byte> buf = new List<bute>();
while(stream.DataAvailable)
{
buf.Add((byte)stream.ReadByte());
}
?
429 1512395
>>512308
крутик
430 1512429
>>512366
Медленно
431 1512433
>>512366
Памяти больше жрёт и по скорости проигрывает.
432 1512537
Вечер в хату шарписты!
Кароче я тут уже до строк добрался так что заданиями с цифрами вас заебывать не буду ,да и со строками наверное тоже.В общем подскажите где годной инфы глянуть или как гуглить про строки и работу с ними, сейчас нужна информация как определить тип символа в строке (число, буква, пунктуация и т.д.) Ну а елси вы мне тут чутка распишете про подобные методы и как использовать то я прям вам по Имэйлу тонну нефти скину.
433 1512608
>>512537
Документацию читай если тебе что-то не хватает в книгах.
434 1512663
>>499746 (OP)
Добрый день. Подскажите тупому, что я делаю не так.
Ориентируюсь вот на этот гайд (https://metanit.com/sharp/windowsforms/1.1.php) как простенькое оконное приложение сделать. Но графического редактора не вылезает, всё перепробовал. Так же не добавляются никакие активные элементы ни в какой раздел, всё серого цвета. Вроде редактор XML слева вывел, но он тоже неактивен.
Как бля сделать то это? Визуал перезапускал, проекты новые создавал - нихуя. Всё неактивно. В отладке окно возникает ясен хрен, но как его отредактировать вне отладки то?
Я нуфаг если что. Подскажите, где у меня косяк.
1 пик - редактирование, 2 пик - запущено.
435 1512675
>>512663
Xaml открывай, а не cs.
436 1512681
>>512537
char.IsLetterOrDigit
char.IsPunctuation
char.IsSeparator

и т. д. Открываешь мсдн и читаешь всё про класс char и string.
437 1512684
>>512663

>Подскажите, где у меня косяк


>https://metanit.com/


>metanit



Вот здесь у тебя большой косяк.
988888.jpg222 Кб, 1400x976
438 1512691
>>512663
У меня его походу в принципе нет(стоит 2019 комьюнити бесплатная). Как его скачать и он вообще доступен в бесплатной версии?
изображение.png941 Кб, 811x811
439 1512771
Всем привет.
В этом году вкатился в IT разработчиком на C#, хотя начинал изучать программирование на Java.
Всё получается легко и интуитивно, мне очень нравится новая специальность.
Теперь вопрос. Я сейчас пишу ПО для фреймворка BPM Online. Бэк - C#, по сути ASP.NET, фронт - JS, БД MSSQL, всё работает на IIS.
В какую сторону развиваться теперь?
Сел писать микросервис .NET + React.

Если верить
https://stackoverflow.com/questions/51390971/im-lost-what-happened-to-asp-net-mvc-5
.NET Framework умирает и будет полностью заменён .NET CORE.
Всё верно?
440 1512941
>>512771

>.NET Framework умирает и будет полностью заменён .NET CORE.



Нахуй ты стэковерфлоу читаешь, когда есть блог майкрософт? В нём они дали понять, что просто объединят Framework и Core и сделают из него Core 3.0 после чего именоваться всё будет только с окончанием Core. Понятно, что упор будет делаться на Core, так время диктует, но и про Framework никто забывать не будет, просто из названия уберут.

С остальным тебе нужно идти сюда https://2ch.hk/pr/res/1512359.html (М) потому что в этом треде 1.5 анона и все они вкатывальщики, ты не вписываешься в рамки текущего треда.
facepalm-1.0.jpg141 Кб, 1400x1400
441 1513035
>>512771

>вкатился в IT разработчиком на C#


>.NET Framework умирает и будет полностью заменён .NET CORE.


Ты или долбоеб или пиздабол. Одно из двух.
.NET core - на текущий момент не может существовать без .net framework, т.к. по сути - это CLR+FCL+ВНИМАНИЕ! Сам .NET Core, как инструмент веб разработки.
Как блять .NET framework может умереть? Произойдет объединение - скорее всего, т.к. потребность в WPF,UWP,Xamarin etc (who knows what else) может банально отпасть. Кто будет сапортить говно 20 летней давности?
442 1513090
>>513035
Вот это подростковый выкрик.
изображение.png15 Кб, 402x41
443 1513114
Что это значит? Типа, треугольные скобки как на пике, что в них указывается?
444 1513117
>>513114
Дженерики, иди читай материал, рано тебе еще код писать.
445 1513118
>>513117
Спасибо.
446 1513134
>>513114
Шаблоны
447 1513224
>>513114
генерики
448 1513260
>>512691
Два раза щелкнуть по Form1 не пробовал?
449 1513403
>>512663
На NetCore конструктор ещё не допилен. Но он накатывается в виде плагина, гугли в этом направлении.
450 1513412
>>512663
Алсо, нахуй на NetCore вообще? На Net Framework выбери.
451 1513444
Сап хлопчаки. Вопрос по Ninject и DI контейнерам.
https://gist.github.com/Hotriden/126f74448cadbdbef5f8eb7cebf94bb8
Как по итогу инициализировать классы с DI? Везде создавать экземпляр интерфейса и передавать в конструктор класса?
452 1513538
>>513403
А с кором теперь можно собрать портабельное WPF с окошками без необходимости ставить фреймворк? Например чтоб на XP завести без ебли с пердолингом дотнета 4.5?
453 1513564
>>513538

>А с кором теперь можно собрать портабельное WPF с окошками без необходимости ставить фреймворк?


Да.>>513538

>тоб на XP завести без ебли с пердолингом дотнета 4.5


Нет. Кор дружит с виндой от 7 Sp1 и далее.
Безымянный.png202x19
454 1513581
Аноны, я закоммитил такой код. Я молодец?
455 1513599
>>513581
Нет, ты дурачок. Во-первых, твой var делает твой код еще более нечитаемым чем он есть, во-вторых, конструкция !(counter > 3) ничем не отличается от более простого counter <= 3
456 1513620
>>513599

>твой var делает твой код еще более нечитаемым


тут не соглашусь, все давно привыкли к вар, да и пишут в иде-хах а не блокнотах

>!(counter > 3) ничем не отличается от более простого counter <= 3


Да, но тогда декремент и сравнение не объединятся в один символ в так любимых местными шрифтами с лигатурами. Признайся, ты же подвис, читая эту строчку? Жаль автоформатирование это поломает.
457 1513648
>>513444
В контейнере регистрируешь соответствие интерфейсов и классов, настраиваешь время жизни и все остальное. Это место называется composition root. И если всё нормально спроектировано, то контейнер сам будет автоматически передавать нужные объекты в конструкторы.
458 1513710
>>511349
Спасибо, все прочекаю
459 1513718
Заимплементил свойство только для интерфейса (Interface.Property { get; }), но присвоить ему новый объект в конструкторе нельзя.
Облом?
460 1513721
>>513620

>все давно привыкли к вар, да и пишут в иде-хах а не блокнотах



Дело не в привычке, а в читаемости кода. Пока не прочтешь то что после = не поймешь, что это булевая переменная. Каждый раз тебе нужно либо читать, либо наводить мышку на var. За такое в продакшене пиздят и обоссывают.

> Признайся, ты же подвис, читая эту строчку?



Нет, я сразу понял, что эту хуйню можно переписать в counter <= 3 и мне стало стыдно за человека, который эту строку написал.
461 1513768
>>513721

>За такое в продакшене пиздят и обоссывают.


Какая-то у вас контора старперов. У нас наоборот стайлгайд предписывает вар использовать.

>я сразу понял, что эту хуйню можно переписать в counter <= 3


Значит код хорошо читаем. Жаль. Думал мозголомку придумал.
462 1513843
>>512681
>>512608
Тонны нефти скинул на почту каждому
463 1513916
>>513648

>настраиваешь время жизни


Не совсем понял. Насчет привязки интефейс-реализация это я понял - отдельным NinjectService выносить тригер при запуске приложения.
У меня вопрос в передаче интерфейса через конструктор - получается цепь передачи конструкторов через вложение класса с DI контейнером в другие классы. Как пример из гиста:
Я захочу создать класс объеденяющий самураев, к примеру - Baracks, то и в нем мне нужно будет делать передачу интерфейса IWeapon, т.к. вложение самурая требует в конструкторе этот интерфейс.
Тоже самое при инициализации экземпляра у меня должен быть объевлен интерфейс IWeapon для передачи в конструктор.
464 1513961
Новый блейзор в действии.

https://www.youtube.com/watch?v=0bQi4tkD3Ck
picture.jpg101 Кб, 972x443
465 1514041
НУ И КАК В ЭТОМ ПИСАТЬ? ААА?
466 1514063
>>514041
Измени с 125 до 100.
467 1514066
>>514063
ты блядь не видишь, РЕКОМЕНДОВАНО 125!
468 1514069
>>514066
Так это системой рекомендовано, не все приложения в рамках этой системы заточены на подобное.
469 1514087
>>512941
Ты тоже читал плохо, походу. Майки пишут, что будет одна ветка - NET 5. Без какого-либо Core. По-сути, это и есть продолжение Core, он теперь и будет основным. Это как раз Core из названия уберут, его влили в основную ветку.

>>512771

>Я сейчас пишу ПО для фреймворка BPM Online. Бэк - C#, по сути ASP.NET, фронт - JS, БД MSSQL, всё работает на IIS.


Хрена себе, я точно на такую же вакансию недавно устроился. Только учил кресты, в основном. А, ну и еще база MySQL и через их прокладку взаимодействие.
В какой энтерпрайз-сфере работаешь-то?
470 1514094
>>514069
МОЖЕТ МНЕ ЕЩЕ ВРАПЕР НАПИСАТЬ НА CPU-Z И ТАМ РАЗРЕШЕНИЕ СМОТРЕТЬ?
471 1514106
>>514094
Нет, достаточно прописать в манифест вот это:
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
472 1514112
>>514087
>>512771
И да, кстати говоря, BPM Online - это CRM-система, а не фреймворк. Ты, скорее всего, на шарпах конфигурационные сервисы пишешь в виде библиотек фронт для морды, бизнес процессы на JSe
473 1514133
>>514106
А с чего ты взял что я пишу dpiaware приложение? может я просто статистику собираю и мне нужно точное разрешение монитора.
474 1514152
>>514133
Мне похуй что ты пишешь, я сказал как узнать точное разрешение и что для этого ничего придумывать не надо.
475 1514166
>>514152
НЕТ ТЫ ПРЕДЛАГАЕШЬ ИЗДАТЬ МАНИФЕСТ ВИНДУВСУ ЧТО МОЕ ПРИЛОЖЕНИЕ НЕ НУЖНО СКЕЙЛИТЬ СИСТЕМНЫМИ ФУНКЦИЯМИ ВИНДОВС ПОТОМУ ЧТО Я ЕГО СКЕЙЛЮ САМ СВОИМ ЗАПАТЕНТОВАННЫМ МЕТОДОМ, а я просто хотел посмотреть разрешение экрана.
476 1514172
>>514166
Ты просто тупой и не знаешь, что эти настройки можно менять в рантайме, а не только в манифесте. Поменял на dpi aware -> узнал разрешение -> поменял на dpi unaware.

Неужели в макдональдсе всё так плохо, что даже такие долбоебы уже в it лезут?
477 1514194
>>514172
Может это ты тупой? Везде специально для тебя написано, менять в рантайме - STRONGLY UNRECOMMENDED.
478 1514201
>>514194
Таким как ты к компьютеру подходить тоже STRONGLY UNRECOMMENDED. Но ты же подошел...
479 1514205
>>514201
ТЫ СКОЗАЛ?
480 1514209
Для чего нужны хешкоды в объектах? Почему они формируются в Int32, а не в string с символами? Где вообще хешкоды применимы помимо Compare?
481 1514216
>>514205
Ты сам это подтвердил своими постами.
482 1514219
>>514209
ЭТА ТВОЙ ПОСТ >>514201 ??????????
ПОТОМУЧТО C# ТИПИЛИЗОВАНЫЙ ЯЗЫК, ТУТ НЕТУ JSON, ГДЕ ТЕБЕ ВСЕ ПЕРЕМЕННЫЕ ХРАНЯТСЯ В СТРОКЕ ВИДА {ХУЙ: [жопа]}
a851c00ad103fc2a493e60da629a4751.jpg30 Кб, 300x251
483 1514222
>>514219
сливаешься после >>514201 поста? Пшел нахуй отседова, петух ряженный
484 1514224
>>514209

>Для чего нужны хешкоды в объектах?



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

>Почему они формируются в Int32, а не в string с символами?



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

>Где вообще хешкоды применимы помимо Compare?



Везде где тебе нужно узнать уникальность объекта в сравнении с объектами такого же типа.
485 1514225
>>514222
А ссышь ты тоже в кровать, ну и что что рекомендуют в унитаз, окно открыл, проветрил, можно дальше спать.
486 1514226
>>514219
>>514222
>>514225

Хуя тебе припекло, аж на окружающих кидаться начал и во всех своего обидчика видишь. Потом еще и такие >>514205 глупые вопросы задаешь, когда говорят, что ты опасен для общества. Самому не смешно?
picture.jpg25 Кб, 568x176
487 1514229
>>514224
ЭТА >>514201
ТВОЙ ПОСТ???????
488 1514233
>>514229

>In .Net Framework Strings are immutable reference types. All .net datatypes has default size except string and user type. So String is a Reference type, because it does not have default allocation size.

489 1514241
>>514233
Пиздец, походу надо виндуос переустанавливать, ниче не работает.
490 1514248
>>514224
Спасибо
>>514225
долбоеб, ты не со мной до этого вел диалог
491 1514256
>>514224

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


Не, я, конечно, могу предположить, что в шарпе такая хуйня.
Но с вероятностью 99.9% ты - тупой хуесос, который сам не шарит, и анонов на дваче наебывает
492 1514260
>>514248

>Спасибо


Он тебя наебал, мудила

Two objects that are equal return hash codes that are equal. However, the reverse is not true: equal hash codes do not imply object equality, because different (unequal) objects can have identical hash codes.
493 1514277
>>514256
Что сказать то хотел, дурачок? Или ты просто пукнуть сюда зашел?
>>514260
Я пишу:

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


А в том что ты процитировал говорится об объектах в целом, без уточнения типа. Ну и конечно нужно учитывать, что GetHashCode это функция которую можно перезаписывать, и долбоеб вроде тебя может создать тип и перезаписать GetHashCode таким образом, что она всегда будет возвращать одинаковое значение, независимо от состояния объекта, поэтому только на неё нельзя полагаться. Но это уже проблема говнокодеров, а не предназначения функции.
too-funny-bro.jpg32 Кб, 600x345
494 1514314
>>514260
обсер на обсире. Not your day bro
495 1514354
>>514277
Уебок хэш-код нужен для равномерного распределения по корзинам в хэш-структурах. Единственное к нему (нестрогое) требование - именно равномерность. (Ну и, чтобы у двух одинаковых объектов был один хэш-код, чтобы не положить, блядь, их в разные ебаные корзины)
Если ты используешь хеш-код для сравнения объектов на эквивалентность, ты просто безграмотный хуесос.

Тебе два раза об этом сказали. Вместо того, чтобы почесать в затылке и почитать ЭЛЕМЕНТАРНУЮ теорию, ты продолжаешь с надутыми щеками пердеть в лужу.
Пиздец, откуда в шарпном треде макаки с интеллектом яваскриптера?
496 1514387
>>511349
Вот кстати хорошая статья про json сериализаторы в 3.0
https://michaelscodingspot.com/the-battle-of-c-to-json-serializers-in-net-core-3/
497 1514408
Ну что ребята, как вам в итоге Кор 3.0 кто в прод уже пустил?
498 1514409
И ещё кто нибудь уже на блазоре что-нибудь классное сделал?
499 1514411
>>514354
В голосину с этого подрыва. Где я писал

>используешь хеш-код для сравнения объектов на эквивалентность



Или может я написал, что метод Equals - не нужная хуета, потому что есть GetHashCode?

>Ну и, чтобы у двух одинаковых объектов был один хэш-код, чтобы не положить, блядь, их в разные ебаные корзины



Это я и имел ввиду. Хэш код это всего лишь добавление для Equals и существует он в основном для классов Hashtable и Dictionary<TKey, TValue>.
Если ты не способен понять смысла прочитанного, то не нужно на нормальных срываться, это не поможет твоей проблеме.
500 1514420
>>514224

>Где вообще хешкоды применимы помимо Compare?


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


Мы вам перезвоним.
501 1514422
>>514420
Не очень то и хотелось...
502 1514427
Как в линке при селекте хранить какое-то значение между вычислением элементов?
504 1514470
>>514427
Или если тебе нужно из массива X взять результат, а потом объеденить его с результатом из массива Y, то можно писать так:
from x in xarray
where x.Length > 3
from y in yarray
where y.Length < 3
select new { x, y};
505 1514484
>>514411

> Где я писал


>используешь хеш-код для сравнения объектов на эквивалентность



Вот здесь:

>Для того чтобы определять одинаковы объекты или нет



>Это я и имел ввиду.


Но написал совершенно другое.

Я понял. Для тебя не только с# непонятен, но и русским ты не владеешь.
Иди на хуй, короче, уебок.
Сри в мозги таким же пидорам, как ты сам, мне больше неинтересно.
506 1514493
>>514484

>понял что обосрался


>мне больше не интересно



Держи в курсе.
507 1514537
>>514465
годнота, спасибо

мимо проходил

>>513444
>>513916
ап ап
508 1514549
>>514465
>>514470

Спасибо, похоже я пропустил что into появился. Let не подходит так как действует перед вычислением всего Select, а мне надо внутри лямбды под селектом аккумулятор держать.
509 1514614
>>514549

Похоже into мне тоже не подходит, он работает с группами или тоже всей последовательностью, а мне надо между элементами последовательность промежуточный разультат хранить.
510 1514652
>>514549
Просто покажи что тебе сделать нужно и я за тебя сделаю.
511 1514672
>>514652

На входе последовательность в упакованном виде как приращение относительно предыдущего элемента, надо её распаковать.
Capture.PNG16 Кб, 713x370
512 1514718
>>514427
Можно сделать нечто такое.
513 1514720
Аноны, подскажите, web-api приложение, когда делаю post-запрос на добавление сущности выскакивает ошибка 500 (internal server error) (видно в swagger). Пошагово выполнение смотрел, ошибка появляется при использовании await _context.SaveChangesAsync(). Как быть - не знаю.
514 1514725
>>514718

Внешняя переменная все равно используется, а мне бы одним выражением.
515 1514728
>>514725

Я погуглил, вроде это невозможно, по крайней мере на SO сам скит в похоже ситуации советовал кастомный итератор писать.
516 1514747
>>514728
хуя ты сеньер Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>)
Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value.
517 1514752
>>514427
Aggregate попробуй.
518 1514759
>>514720
ДЕБАГ КОНФИГУРАЦИЮ ПОСТАВЬ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
519 1514988
Наслушался Radio-T, обсуждали темы сборщиков типо Docker,Basil. Внимание вопрос - какие сборщики используются в.NET разработке? С какими вы проектами сталкивались, написанные не только на .NET (JS/CoffeScript/TypeScript как фронт ASP.NET не в счет) и какими сборщиками пользовались вы?
520 1514992
>>514988
Мы используем самописный сборщик.
521 1515037
>>514992
На чем написан? Какой размер проекта, команды? Какие языковые сборки помимо .NET входят?
522 1515184
>>514752
>>514747

А она разве не одно значение возвращает? Мне-то надо одну последовательность преобразовать в другую.
shinobu-oshino-299.jpg22 Кб, 300x450
Shinobu 523 1515208
Тред утонул или удален.
Это копия, сохраненная 18 ноября 2019 года.

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

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