М.Двач / Программирование

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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

C#/Сишарп/.NET Тред - Шапка эдитион #8 /csharp/ Felix 7 июля, 02:35 1429504 В конец треда | Веб

38 Кб, 400x400148 Кб, 710x111682 Кб, 800x112262 Кб, 628x961

Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.

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

1. Ресурсы:
- https://metanit.com/sharp/
- https://stackoverflow.com/questions/tagged/c#
- https://www.tutorialspoint.com/csharp/
- https://professorweb.ru
- https://habr.com/ru/hub/csharp/

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

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

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

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

6. С# для мобильной разработки
Если нужны инструменты для разработке под мобилы, ставь сразу VS2017 и при установке выбирай все нужные компоненты.
Больше информации тут - 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# 8.0: https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8

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

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

Позапрошлый тред тонет здесь: https://2ch.hk/pr/res/1366885.html (М)
Прошлый тред тонет здесь: https://2ch.hk/pr/res/1378307.html (М)

Ответы29505303193032732857366553953540331

2 7 июля, 02:35 2 1429505

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

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

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

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

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

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

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

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

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

18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978

2 7 июля, 02:35 2 1429505

>>1429504 (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

Показать весь текст
Ответы29506

31 Кб, 680x383
3 7 июля, 02:37 3 1429506

>>1429505
В начале января стал посещать этот тред. Теперь я джун, на испытательном. Испытательный закончился и я уже полноценный джун который пишет на шарпе.
Спасибо всем анонам что помогали мне, особенно тем, что создали гайд из оп поста. Всё благодаря вам.

Ответы34971

4 7 июля, 09:20 4 1429564

>>1429418
Добавление в лист как раз будет производиться быстрее, чем в хранилище вида ключ/значение, а вот доступ к уже добавленным элементам осуществляется медленнее, со сложностью O(n) где n это количество элементов в коллекции.

Ответы2957529707

5 7 июля, 10:07 5 1429575

>>1429564
Алёша, внутри листа обычный массив.Добавление в конец в среднем O(1) (в худшем O(n) если надо увеличить размер массива), дотуп по индексу тоже O(1) ибо просто надо высчитать смещение index*objectSize, а вот поиск за O(n).

Ответы29621

6 7 июля, 11:28 6 1429621

>>1429575
Хуею с дауна. Тупа-проста-долбоеб, показывай книги твоего авторства на уровне С# in a Nutshell от Joseph Albahari & Ben Albahari, раз ты споришь с тем что там написано.

Ответы296272962829631

7 7 июля, 11:35 7 1429627

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

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

Ответы29633

8 7 июля, 11:36 8 1429628

>>1429621
>Joseph Albahari & Ben Albahari
Два дебила - это сила.

9 7 июля, 11:38 9 1429631

>>1429621
Пруф, что албахари написал такую хуйню.

10 7 июля, 11:41 10 1429633

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

11 7 июля, 13:49 11 1429707

51 Кб, 1038x42334 Кб, 1255x228

>>1429564
Смотрим исходники.
Думаю говорить о том что доступ к массиву по индексу это О(1) операция излишне.
Если в книге было написано иначе, либо это жесткая опечатка, либо автор лютые долбаеб и не понимающий самых основ.

Ответы29713

12 7 июля, 14:01 12 1429713

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

Ответы2971829750

13 7 июля, 14:07 13 1429718

>>1429713
Никого не защищаю, но разве чтобы осуществить поиск, не нужно сначала получить доступ?
мимо

Ответы29728

14 7 июля, 14:13 14 1429724

Ребята, иду начинающим мидлом в ДС2 на .net, какую ЗП просить?

Ответы29729

15 7 июля, 14:15 15 1429728

>>1429718
Доступ по индексу/ключу это когда ты пишешь MyList[index] или MyDictionary[key], а осуществление поиска это когда ты перебираешь все значения коллекции с целью найти определенное значение, индекс/ключ которого тебе не известен.

Ответы29732

16 7 июля, 14:17 16 1429729

>>1429724
Ты собес то пройти сможешь? Сначала пройди пару собесов и проси минималку, потом уже решай какую именно зп тебе просить. Обычно такие мидлы заканчивают тем, что идут на джунов.

17 7 июля, 14:21 17 1429732

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

Ответы2974629750

18 7 июля, 14:45 18 1429746

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

Ответы29751

19 7 июля, 14:51 19 1429750

>>1429713
Ну тогда сорян.
Я думал речь идет о доступе.

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

Ответы29751

20 7 июля, 14:58 20 1429751

>>1429750
>>1429746
Поясните, я правильно понимаю: есть базовые структуры данных, в информатике вообще: массивы и ссылочные списки. Классы являются инкапсуляцией этих структур данных, предоставляя ООП-интерфейс для работы с ними. Я предполагаю, что классы TArray и TCollection это обёртки над массивом, а классы TList (по сортам их) - это обёртки над ссылочным списком.

Ответы29768

21 7 июля, 15:26 21 1429768

>>1429751
Пол базовые структуры правильно, а про классы нет. Любая коллекция реализует интерфейс IEnumerable, что даёт ей минимальную функциональность (только перечисление). Далее идут коллекции реализующие ICollection, добавляющий больше функционала, например подсчет количества элементов. И потом уже идут коллекции с интерфейсом IList и IDictionery, которые добавляют еще больше функционала, например доступ к значению по ключу/индексу. При этом List<T> это обертка над массивом, которая позволяет тебе не беспокоится о размере массива, потому что он будет автоматически меняться по мере добавления элементов (но не при удалении, для этого есть отедльный метод TrimExcess). Dictionery<TKey,TValue> в свою очередь является оберткой над хэш-таблицей, со свими плюсами и минусами.

Ответы29772

22 7 июля, 15:29 22 1429772

>>1429768
> оберткой над хэш-таблицей
Это что?
А ссылочные списки на каком этапе проебались?

Ответы29782

23 7 июля, 15:38 23 1429782

>>1429772
Связные списки используются в классе ListDictionary, который эффективен только когда у тебя не более 10 элементов в коллекции, либо в HybridDictionary который автоматически превращает ListDictionary в Dictionary когда число элементов превысит 10.
>Это что?
Тебя в гугле забанили?

Ответы29793

24 7 июля, 16:09 24 1429793

>>1429782
> Тебя в гугле забанили?
Зачем мне гугл, когда у меня есть ты, анончик :3

10 Кб, 160x195
25 8 июля, 08:08 25 1430103

Товарищи, готовлюсь к сдаче сертификации 70-483 от Микрософт. Никто не имеет у себя пикрелейтед? В гугле не забанили, найти 2 версию не смог.
Exam Ref 70-483 Programming in C#, 2nd Edition By Rob Miles

Ответы3012230150

26 8 июля, 09:39 26 1430122

>>1430103
>найти 2 версию не смог.

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

27 8 июля, 10:26 27 1430150

>>1430103
Какая-то книга для вкатывальщиков, при этом написано, что она предназначена для разработчиков с опытом. Разработчики с опытом не знают о многозадачности и асинхронности что ли? Им обязательно надо давать примеры вида "представьте кухню и повара"?

Ответы30277

28 8 июля, 14:31 28 1430262

Анончики вы для своих пет проект где хостинг берете? VPS или Azure?
Как пользоватся ажуром чтобы не остатся без штанов?

Ответы3027130278

29 8 июля, 14:46 29 1430271

>>1430262
Для моего пета хватает впс на лине за 100р/мес. На самом деле, так как я единственный пользователь, то хватило бы локалхоста.

Ответы30276

30 8 июля, 14:50 30 1430276

>>1430271
Да жаль нету аналога fiirebase или heroku для .net core.
Почему шарписты должны страдать?

Ответы30294

31 8 июля, 14:51 31 1430277

>>1430150
А какие примеры надо давать опытным?
"Представьте комнату с 400 мужиками. Как надо отсосать все 400 хуёв в 12 потоков?"

Ответы30317

32 8 июля, 14:51 32 1430278

>>1430262
тебе нужно что-то сложнее докера для своего пет проджекта?

33 8 июля, 15:19 33 1430293

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

Ответы30322

34 8 июля, 15:19 34 1430294

>>1430276
>heroku - вообще если там задать какие-то кастом билд скрипти , то можно задеплоить и работает. месаца 3 назад хостил.

35 8 июля, 16:20 35 1430317

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

Ответы30318

36 8 июля, 16:22 36 1430318

>>1430317
>Exam Ref
>наткнулся на хуйню для вкатывальщиков.
Эм... окей бро. Ты думал что Exam Ref не хуйня для вкатывальщиков. Я нихуя не понял почему, но окей. Алсо не хуйня для вкатывальщиков во втором посте за шапкой. Но ты продолжай искать святой грааль.

Ответы30324

37 8 июля, 16:23 37 1430319

>>1429504 (OP)
Что там по поводу xamarin? Слышал, что приложения довольно жирные получаются, да и по быстродействию не сильно лучше swift/kotlin. Хотелось бы вкатиться, т.к. flutter хуйня ебаная, а писать на двух сразу языках похвально, но проблемно сопровождать.

Ответы303413034530356

38 8 июля, 16:25 38 1430322

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

Ответы303233033530350

39 8 июля, 16:26 39 1430323

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

Ответы30326

68 Кб, 899x201
40 8 июля, 16:27 40 1430324

>>1430318
>Я нихуя не понял почему, но окей.

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

Ответы30328

41 8 июля, 16:29 41 1430326

>>1430323
Ну можешь изобрести велосипед и сам создать подобный класс, кто тебе мешает? Task это вообще обертка над более старым Thread, можешь считать его синтаксическим сахором, вот только это не синтаксис, а отдельный класс. По такой логике и всякие List, которые внутри хранят Array - тоже синтаксический сахар. Да и вообще любой ЯП это синтаксический сахар, ведь в итоге всё преобразовывается в байткод.

Ответы30331

42 8 июля, 16:30 42 1430327

>>1429504 (OP)
Добавь в шапку уже Visual studio for mac в раздел по ide

Ответы3032930334

43 8 июля, 16:31 43 1430328

>>1430324
Это ведь американцы. У них всё что дальше 1 книги прочитало - уже продвинутый программист. Я одного нигру смотрю сейчас у которого 2 миллиона подписоты, а он на шарпе делает что-то уровля лаба номер 4. При этом работает в какой-то крупной компании прогером.
В любом случае я отклонился от темы. Книги ты читать читай, но знай что не факт что ты сможешь найти что-то под свой уровень бро.

44 8 июля, 16:31 44 1430329

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

Ответы30336

83 Кб, 1024x944
45 8 июля, 16:33 45 1430331

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

46 8 июля, 16:36 46 1430334

>>1430327
>Visual studio for mac в раздел по ide
Нет. Макоёбы - не люди. Мак - не компьютер - а бытовая техника. Дауны которые вместо программирования будут срать в тред "у меня яблоко, а вы все петухи" - в треде нежелательны.

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

Ответы30338

47 8 июля, 16:37 47 1430335

>>1430322
Каким образом?
Есть ли разница в объявлении дочерних тасков или в создании их с помощью фабрики тасков для пула потоков?

Ответы30349

48 8 июля, 16:39 48 1430336

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

Ответы30354

49 8 июля, 16:40 49 1430337

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

Ответы30351

50 8 июля, 16:41 50 1430338

>>1430334
Нищееб порвался. Как вы остоебенили уже. Пишешь, что надо добавить ссылку для полноты, в ответ РРРРЯЯЯЯ, МАКИ НИНУЖНЫ, БЫТОВАЯ ТЕХНИКА, КАК ЖИ БОЛЬНА. Ну ты как бэ понял, да?
Иди воняй в /бэ, это твоя привычная параша.
Ссылку добавить надо, да и шапку переделать уже.

Ответы30344

51 8 июля, 16:41 51 1430340

Гля, аутисты срутся за шапку.

52 8 июля, 16:43 52 1430341

>>1430319
Бамп вопросу.

53 8 июля, 16:44 53 1430344

>>1430338
Зайдешь по ссылке, а там ТРИ СРАНЫХ КНОПКИ для скачивания дистрибутивов под мак, винду и прошный дистр. Если у макоёба на этом этапе возникнут проблемы с нажатием на нужную кнопку - пусть нахуй идёт. Ссылку блядь отдельную. Ахуеть вообще. Проблемы у него блядь, в 3 кнопках запутался, идиот блядь.

Ответы3034630347

54 8 июля, 16:46 54 1430345

>>1430319
>по быстродействию не сильно лучше swift/kotlin.
У свифта есть одна очень серьёзная проблема, которую разрабы не могут исправить с самого его рождения.

55 8 июля, 16:46 55 1430346

>>1430344
РРРРРРЯЯЯЯЯЯ, СМАРИТЕ КАК Я ГАРЮ! МЫ ТЕРЯЕМ КОНТРОЛЬ ВДВОЕМ!
Тебе на яйца кто-то этой ссылкой давит, что тебе больно или как?

Ответы30348

56 8 июля, 16:47 56 1430347

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

Ответы30353

57 8 июля, 16:48 57 1430348

>>1430346
Нет, честно говоря я просто не понимаю сути проблемы. Ибо по ссылке которая есть - дистр для мака присутствует. Ты либо сам по ней не ходил. Либо я хз чего ты хочешь ты просто доебался до опа с какой-то хуйнёй.

58 8 июля, 16:51 58 1430349

>>1430335
ТаскФактори.СтартНью принимает объект ТаскШедулер при помощи которого осуществляется тонкая настройка, если использовать Таск.Ран то будет использоваться дефолтный таскшедулер. Также он принимает ТаскКреатионОптионс при помощи которого ты тоже настраиваешь создаваемые потоки.

Ответы30360

59 8 июля, 16:51 59 1430350

>>1430322
Боже упаси. Таски это не потоки.

Ответы30358

60 8 июля, 16:52 60 1430351

>>1430337
Я прочитал и пожалел, потому что потратил своё время на мутанита. Теперь читаю нормальные книги от нормальных авторов, которые только во втором посте фигурируют (и то устаревшие на год-два).

Ответы30360

61 8 июля, 16:52 61 1430353

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

Ответы30360

62 8 июля, 16:54 62 1430354

>>1430336
Она говно не потому что не не нравится ссылка, а потому что материал по этой ссылке - говно, его подача тоже говно.90% шапки ненужное говно, остальные 10% устаревший материал.

Ответы30359

63 8 июля, 16:54 63 1430355

Кто хочет новую шапку и имеет предложения - пишите в ответы на оппост. ОП просматривает всё перед созданием нового треда.

Ответы30361

64 8 июля, 16:56 64 1430356

>>1430319
Кому не похуй на быстродействие и жирность, когда у каждого смартфон сравним по мощности с персональным компьютером начала 2000-х? Если используешь C#, то используй ксамарин, если нет, то пиши на Java.

Ответы30362

65 8 июля, 16:56 65 1430358

>>1430350
Смотри на собесе такое не спиздани, а то тебя сразу нахуй пошлют, еще и обманут, сказав, что перезвонят.

Ответы3036332264

66 8 июля, 16:56 66 1430359

>>1430354
Я просто напомню что 4 треда назад шапкой была фотка, и надпись
"СЕ ШАРП"
Есть предложения - предлагай. А с криками "Все говно, один я тут илитный программист, просьба не засорять тред".

Ответы30361

35 Кб, 912x105
67 8 июля, 16:57 67 1430360

>>1430349
>при помощи которого ты тоже настраиваешь создаваемые потоки
Какие потоки там создаются? Таски же помещаются в очередь и все. А про таск шелдер я чет и забыл, лол.
>>1430351
Твои проблемы.
>>1430353
>А вот если какой-то из твоих тасков ты должен будешь прибить раньше остальных - это интересное применение.
Вот тут не понял, ты вот про это?

Ответы30367

68 8 июля, 16:58 68 1430361

>>1430359
>>1430355
Тебе уже на протяжении трёх тредов предлагают убрать мутанита или хотя бы засунуть его в жопц, или хотя бы сделать пометку, что качество материала весьма посредственное. Ты хоть что-то из этого сделал? Нет. Наверно потому что ты и есть мутанит.

Ответы3036530366

69 8 июля, 16:58 69 1430362

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

70 8 июля, 16:59 70 1430363

>>1430358
Если ты считаешь таск = поток тебя даже не позовут на собеседование.

Ответы3036430371

71 8 июля, 17:00 71 1430364

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

Ответы30368

72 8 июля, 17:01 72 1430365

>>1430361
Нормальный там материал. По крайней мере быстро ознакомиться с EF/WPF и прочими технологиями норм заходит.

73 8 июля, 17:03 73 1430366

>>1430361
>Наверно потому что ты и есть мутанит.
Всё пропало мы нас раскрыли. Ты раскусил меня и можешь теперь нахуй из треда свалить.
А вообще я тебе по секрету скажу что ссылку ты и сам можешь удалить.

Ответы30369

74 8 июля, 17:04 74 1430367

>>1430360
>Какие потоки там создаются? Таски же помещаются в очередь и все.

Потоки либо берутся из ThreadPool, если они там остались, либо создаются новые, в зависимости от опций которые ты передаешь, например, если передать TaskCreationOptions.LongRunning, то передав 1000 тасков на каждый создастся отдельный поток (что в результате приведёт к тому, что у тебя будет в большинстве случаев не параллельность, а асинхронность), если этой опции не передать, то твои таски будут выполняться по мере освобождения потоков и в зависимости от скорости их выполнения могут создаваться новые потоки (если у тебя будет много тасков которые выполняются по 100-200 мс то количество потоков будет расти, если нет, то они будут ставиться в очередь).

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

Ответы30375

75 8 июля, 17:05 75 1430368

>>1430364
Чот с этой точки зрения - фабрика тасков - вообще говно какое-то.
Запускаешь ты себе хром, а он тебе 900 тасков накручивает.

Ответы30378

76 8 июля, 17:05 76 1430369

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

Ты ножкой топнуть забыл и мамкой пригрозить.

Ответы30370

77 8 июля, 17:06 77 1430370

>>1430369
Нет, про материнские платы срачи - другой раздел.

78 8 июля, 17:07 78 1430371

>>1430363
Класс Task это обертка над классом Thread, в нём используется тот же самый Thread, а обертка создается для того чтобы, например, получить результат выполнения потока без написания дополнительного кода (потому что для тебя его написали создатели Task).

Ответы30382

79 8 июля, 17:13 79 1430375

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

Ответы30376

80 8 июля, 17:17 80 1430376

>>1430375
>Рихтер

Зачем ты говно мамонта ковыряешь? Сначала начни со свежего материала, потом уже к говнецу можешь притронуться.

Ответы30377

81 8 июля, 17:18 81 1430377

>>1430376
Да я уже потрогал все, что можно было, чай не первый месяц учу.

Ответы30379

82 8 июля, 17:19 82 1430378

>>1430368
>Запускаешь ты себе хром, а он тебе 900 тасков накручивает.
Иди проспись

Ответы30383

83 8 июля, 17:20 83 1430379

>>1430377
Что именно? Мутанита? Как можно было не понять работу классов Task? В C# 7.0 in a Nutshell довольно хорошо это объясняется.

Ответы3038030381

84 8 июля, 17:22 84 1430380

>>1430379
Иди нахуй со своим мутанитом, ты уже заебал.

85 8 июля, 17:22 85 1430381

>>1430379
Троелсона, Мутанит и немного Шилдта

86 8 июля, 17:22 86 1430382

>>1430371
Нет. Разумеется таска выполняется в треде, в винде любой код выполняется в тредах. Но даже это всего лишь деталь реализации. Просто посмотри на названия классов Thread(Поток) и Task(Задача) и уже многое прояснится.

Ответы303853041130532

87 8 июля, 17:23 87 1430383

>>1430378
Это метафора, не более.

88 8 июля, 17:27 88 1430385

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

Ответы30390

89 8 июля, 17:33 89 1430390

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

Ответы30393

90 8 июля, 17:37 90 1430393

>>1430390
Таски это параллельность, которая выполняется максимально эффективно за счёт дополнения асинхронностью.

Ответы30398

91 8 июля, 17:47 91 1430398

>>1430393
Кек. Иди проси 300к/сек, с твоими познаниями тебе не откажут.

Ответы30400

92 8 июля, 17:54 92 1430400

>>1430398
Не, ну он прав, че ты такой токсичный.
Если таску назначить соответствующий флаг, то под него будет сделан отдельный поток, который при наличии свободного процессора будет выполнять параллельно.
А если нет, то переключение и все, пизда.

Ответы30423

93 8 июля, 18:32 93 1430411

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

94 8 июля, 19:04 94 1430423

>>1430400
Ты про Longrunning? Не факт, что создаст. Работой потоков управляет инфраструктура, а челик говорит
>Task это обертка над классом Thread

Ответы30428

281 Кб, 719x813
95 8 июля, 19:09 95 1430428

>>1430423
Да, челик, написавший книгу C# 7.0 in a Nutshell прям так и говорит. Но васяну с двача, конечно, виднее.

Ответы3044630450

96 8 июля, 19:31 96 1430446

>>1430428
Это ты higher-level abstraction перевел как обертка? Лучше читай на русском, там перевод не очень, но таких обсеров у тебя не будет.
А еще там написано may or may not bebacked by a thread. Ты пруфанул свою неправоту, молодец.

Ответы30452

97 8 июля, 19:40 97 1430450

>>1430428
Тут не написано, что таск является оберткой, тут написано:
>В сравнении с thread, Task - это высокоуровневая абстракция - оно представляет параллельные операции, которые могут быть поддержаны потоком

68 Кб, 617x539
98 8 июля, 19:46 98 1430452

>>1430446
>may or may not bebacked by a thread
Да, это как раз тот случай, когда задача выполняется асинхронно, потому что параллельное выполнение невозможно из-за недостатка свободных потоков.

>Это ты higher-level abstraction перевел как обертка? Лучше читай на русском, там перевод не очень, но таких обсеров у тебя не будет.

Смотри пикрил, тупорылая чмоня. Для тебя тут развернули то, что делает Task.Factory.StartNew. Всё еще продолжишь срать себе в штанишки и кричать "врёёёти ниправда"? На прошлом скрине в самом начале два пункта выделили, которые объясняют таким даунам как ты, для чего нужно было придумывать Task, но нет, даун продолжает кричать "етадругое".

Ответы3046530471

99 8 июля, 20:17 99 1430465

>>1430452
>Для тебя тут развернули то, что делает Task.Factory.StartNew.
А вот это пиздеж.
Рихтер говорил, что TaskScheduler принимает эти флаги как рекомендацию, которая необязательно будет выполнена.
Авторитет Рихтера больше, чем авторитет любого другого писаки.

Ответы3046730494

100 8 июля, 20:25 100 1430467

>>1430465
Не, таки я не ошибся, что выбрал Рихтера после Троелсона, перечитывал бы ваш этот натшел, там мне бы еще и напиздели.

101 8 июля, 20:33 101 1430471

>>1430452
>задача выполняется асинхронно, потому что параллельное выполнение невозможно из-за недостатка свободных потоков.
Ну тут ты совсем поплыл. Тебе впору перечитать пример про повара в ресторане.
>>1430452
>что делает Task.Factory.StartNew
Ты либо скрином ошибся, либо вообще невдупляешь о чем говоришь, там у тебя уже про задачи-марионетки пошла тема.

Ответы3047330477

102 8 июля, 20:40 102 1430473

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

103 8 июля, 20:47 103 1430477

>>1430471
>we can write our own Run method (до этого описывался метод Task.Run)
>calling this mthod is equivalent to calling Task.Factory.StartNew

>там у тебя уже про задачи-марионетки пошла тема.

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

Ответы30491

104 8 июля, 21:00 104 1430491

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

Ответы30492

105 8 июля, 21:01 105 1430492

>>1430491
Извини, не знал, что ты не знаком с синтаксисом C#. Хотя это и не удивительно, учитывая твои высеры и недоумения.

Ответы30500

106 8 июля, 21:03 106 1430494

>>1430465
На то это и in a Nutshell чтобы не вдаваться в подробности и детали.

107 8 июля, 21:19 107 1430500

>>1430492
А при чем тут синтакис? TaskCompletitionSource.Task это и есть задача-марионетка или у тебя и на этот счет есть своя неверная инфа?

Ответы30505

108 8 июля, 21:29 108 1430505

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

Ответы3050930532

109 8 июля, 21:34 109 1430509

>>1430505
>что внутри класса Task используется класс Thread
А есть какие-то доказательства этому?

Ответы30528

116 Кб, 1001x547
110 8 июля, 22:07 110 1430526

Ответы3052830533

111 8 июля, 22:09 111 1430528

>>1430509
>>1430526

112 8 июля, 22:17 112 1430532

>>1430505
>как ты начал говорить, что Task и Thread "этадругое" и Task не включает в себя Thread?
>>1430382
>Разумеется таска выполняется в треде

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

Ответы30540

113 8 июля, 22:21 113 1430533

>>1430526
А тебя override и прергрузка TaskFactory.StartNew, которая принимает шедулер не наводи на мысль что шедулеров может быть больше чем 1?

Ответы30552

114 8 июля, 22:48 114 1430540

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

Ответы30551

115 8 июля, 23:00 115 1430551

>>1430540
Покажи как ты будешь управлять потоками через таски. И предвидя твои маневры скажу, что ЛЮБОЙ код работает в каком-либо потоке.
>>1430540
>ткнули в дерьмо
Вот только в дерьме ты, не я один тут тебя уже унизил

Ответы30564

116 8 июля, 23:00 116 1430552

>>1430533
И?

144 Кб, 1440x458
117 8 июля, 23:15 117 1430561

Блин, я даже на минуту засомневался и пошел в гугл, но не, Рихтер не пиздит

Ответы30567

118 8 июля, 23:33 118 1430564

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

Task task = Task.Factory.StartNew (() => {...}, TaskCreationOptions.LongRunning); - выполняю код в отдельном потоке.

Task task = Task.Factory.StartNew (() => {...}) - выполняю код предоставляя её управление стандартному диспетчеру задач, который при необходимости можно настроить

task.ContinueWith(res=> {...}, TaskContinuationOptions.ExecuteSynchronously) - выполняю код по завершении выполнения кода в задаче task используя при этом поток в котором выполнялась задача task
task.ContinueWith(res=> {...}) - тоже самое, только теперь код будет выполняться, по возможности, в отдельном потоке.

>тебя уже унизил

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

Ответы3060630691

119 8 июля, 23:36 119 1430566

Есть годная литература по кору? Заебался Фримена читать ещё с асп.нетом, а тут, как я понял, он - самое годное, что есть для вката

Ответы30569

120 8 июля, 23:38 120 1430567

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

Ответы30600

121 8 июля, 23:42 121 1430569

>>1430566
Pro C# 7 With .NET and .NET Core Троелсена и Джапикса

Ответы30577

122 8 июля, 23:59 122 1430577

>>1430569
Спасибо

123 9 июля, 01:21 123 1430600

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

31 Кб, 1058x418
124 9 июля, 02:00 124 1430606

>>1430564
Таки он прав, с помощью longrunning рабочие потоки создаются куда активнее, чем без этого флага.
Без него потоки тоже создаются, но более лениво.

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

125 9 июля, 09:35 125 1430690

Как превращать синхронные методы в асинхронные?

В общем, у меня есть класс с кучей моделей конфигурационных файлов. Классы по очереди парсятся и загребаются через дженерик ДАО (которые, в свою очередь берутся с жесткого диска), хочу поиграться-поучиться работать с асинхронностью и проиграть в билдере с директором.
Почитал Альбахари и его знаменитый талмуд про асинк и мультитред - не могу выйти за пределы абстрактных примеров в реальный мирок.

Просто оборачивать в Task.Run всё и ждать в Task.Wait? Или за такое в приличном обществе бьют по голове?

Ответы306963071531137

126 9 июля, 09:35 126 1430691

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

Ответы30709

127 9 июля, 09:43 127 1430696

>>1430690
>Task.Wait
За такое побьют, заставит поток ждать выполнения таски. В лучшем случаем код отработает как синхронный, в худшем получишь дэдлок. Покури еще async/await сильно упрощает работу с асинхронностью.

Ответы30727

128 9 июля, 09:49 128 1430709

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

129 9 июля, 09:55 129 1430715

>>1430690
Не Wait, а ContinueWith до тех пор пока не выполнишь конкретную задачу.

130 9 июля, 10:10 130 1430727

>>1430696
А WaitAll тоже плохо?

Ответы3073530740

131 9 июля, 10:19 131 1430735

>>1430727
Всё что блокирует вызывающий поток - плохо. У тебя основной поток с wait будет простаивать и ждать, в то время как он мог бы выполнять какую-нибудь работу.

132 9 июля, 10:22 132 1430740

>>1430727
Тоже самое, но для нескольких тасков. Делай так
await Task.WhenAll(t1,t2,t3);
WhenAll вернет новую таску, которая завершиться, когда завершаться все таски переданные в WhenAll.

79 Кб, 858x615
133 9 июля, 19:59 133 1431137

>>1430690
Можно это сделать вот так, если таск не получится сделать

Ответы31175

134 9 июля, 20:45 134 1431175

>>1431137
Но зачем? Почему просто не обернуть метод в Таск.Ран? Зачем таска-марионетка? И мешать Tread и Task плохо даже в демонстрационных целях, есть православный Task.Delay();

Ответы3117831181

135 9 июля, 20:47 135 1431178

>>1431175
Я хуй знает, вообще не понимаю, как это говно работает, но оно есть.

Ответы3118131182

136 9 июля, 20:50 136 1431181

>>1431175
>>1431178
Минуту, но Task.Delay и Thread.Sleep же немного разные.
Один блокирует поток, второй нет, да и Task.Delay выполняется асинхронно и никакого смысла использовать его в синхронном методе SomeAction нет

Ответы31182

137 9 июля, 20:53 137 1431182

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

Ответы31185

138 9 июля, 20:57 138 1431185

>>1431182
Почему не использовать нормальные таски или async await?

Ответы31186

139 9 июля, 21:01 139 1431186

>>1431185
А, я понял
>В простых случаях (как выше) это не так очевидно, но в коде нет связи возвращаемого Task и какого-либо делегата. Что это дает Пусть, например, метод возвращает данные из СУБД и есть кэш. Тогда, если результат уже был загружен, его можно вернуть сразу, вместо вызова Task.Run(). Это позволит не занимать поток, пусть даже не надолго, и не нести соответствующие накладные расходы.
Бля, надо у Рихтера не полениться и про конечный автомат прочитать, а то я совсем не одупляю про эти потоки ввода-вывода и всю херню.

Ответы31206

140 9 июля, 21:27 140 1431206

>>1431186
Да это у всех написано, даже на msdn.
>Represents the producer side of a Task<TResult> unbound to a delegate, providing access to the consumer side through the Task property.

Ответы3123531246

141 9 июля, 21:51 141 1431235

>>1431206
Я видимо совсем глупый, но о каком делегате идет речь?

Ответы31247

142 9 июля, 22:29 142 1431246

>>1431206
Который передается в конструктор Task или Task.Run() и т. п. Ты, например, можешь создать TaskCompletionSource<TResult> в главном методе, а завершить его в одном из звеньев цепочки тасков и ожидать его выполнения в главном методе.

Ответы3124731659

143 9 июля, 22:29 143 1431247

>>1431235 ----> >>1431246

144 10 июля, 16:37 144 1431659

>>1431246
Теперь более понятно
Но я все понял после прочтения статьи http://hamidmosalla.com/2018/05/27/task-run-vs-taskcompletionsource-vs-task-factory-fromasync/
Вот тут все годно рассказывают.

Ответы31716

145 10 июля, 17:40 145 1431716

>>1431659
Но это все еще выглядит как какая-то магия, если честно.
Ладно, что хоть принцип работы понял.

146 10 июля, 22:51 146 1431931

Суп аноны. Пишу прогу сервер для себя. Суть простая , сервер на который принимает сообщения типа string по udp , и записывает их на SQL базу данных. И по запросу возвращает на клиент всю базу данных.
Как мне легче всего реализовать подобное?

Ответы3193832053

147 10 июля, 22:59 147 1431938

>>1431931
>возвращает на клиент всю базу данных.
По UDP? Удачи.

148 11 июля, 00:32 148 1431984

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

Ответы32445

149 11 июля, 02:32 149 1432053

>>1431931
Накатал сервер с туториала но но крашит после получения первого же сообщения . https://pastebin.com/MN7zS4c3
Подскажите в чем здесь ошибка.

Ответы321223218432210

150 11 июля, 07:33 150 1432122

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

151 11 июля, 08:43 151 1432184

>>1432053
Ошибка в тебе. Ты не можешь ни код нормально написать, ни вопрос задать.

152 11 июля, 09:05 152 1432210

>>1432053
по-моему с переиспользованиями у сокетов так себе дела
вообще был прав челик парой сообщений выше, велосипедить своё решение - это: 1) неэффективно; 2) долго; 3) неоправданно

26 Кб, 481x455
153 11 июля, 09:18 153 1432216

ИТТ есть перекатившиеся в веб с умирающего десктопа? Расскажите, как перекатились в веб.

У меня опыт - несколько лет пердоления кговагого заводского энтерпрайза на WCF + Winforms/WPF после университета и гомоармии, первая работа. Устал от десктопа, от четвертого дотнета без кучи синтаксического сахара, от кривого вотерфолла с моделью разработки
>быстро бросили всё и зделоли то что просит главбух/финдир, а то -50% к зарплате всем
, от скрипучего, тормозного переезда с свна на гит в течение 4 лет, от портянок запросов на голом sql, потому что нхибернейт обсирается на любом мало-мальски сложном юзеркейсе и так далее. Коллеги - семейные ипотечники под 35+ лвл, которые сидят на жопе ровно, но жадно забирают любую мало-мальски интересную работу, оставляя мне отчёты, формошлёпство и разбор проводок с бабой Клавой из бухгалтерии и пропавших пенсионеров с тётей Глашей из отдела кадров. Короче, чую, что из переджуна-недомидла я здесь никогда не вырасту, пет-прожекты не спасают ситуацию.

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

Ответы32217

154 11 июля, 09:23 154 1432217

>>1432216
А какой ты ответ хотел услышать? "просто бросаешь всё и знания неткор появятся автоматически"? Нет, дружок, это так не работает, твоя работа сейчас служит оправданием твоей лени, когда её не будет, то её отсутствие будет служить оправданием твоей лени, ты будешь говорить что-то вроде "ой, да какой там нет.кор, мне работу нужно найти сначала". Т. е. пока ты сам не начнёшь учить не смотря на возможные оправдания, никто и ничто тебе не поможет.
Трать на обучение хотя бы 2 часа в день, как выйдешь на стабильные 60 часов в месяц, тогда и можно подумать о дропе текущего места работы и вката в новое на максимальной скорости.

155 11 июля, 10:50 155 1432264

>>1430358

Что ты несешь, поехавшая веб-макака? Таски != потоки. Таски = асинхронность.

Если я написал await Socket.ConnectAsync("127.0.0.1") это не означает что пока я жду подключения, занят поток. Это лишь значит что ядро ОС зарегистрировало мне колбэк который возобновит асинхронный метод после того как подключение состоится и выполенние метода продолжится там где остановился await. По сути большая часть WinAPI/POSIX это асинхронные операции в самом ядре ОС.

Говорить что таск = поток можно в контексте Task.Run(), тогда да. Но если речь о чистом асинхронном методе то таск = поток не верное утверждение.

Ответы322653228432298

156 11 июля, 10:52 156 1432265

>>1432264

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

157 11 июля, 11:24 157 1432284

>>1432264
> Таски != потоки
> я написал await Socket.ConnectAsync("127.0.0.1")

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

Ответы3229832300323013236132679

158 11 июля, 12:00 158 1432298

>>1432264
Даже не пытайся до него достучатся, он непробиваемо туп. Вон >>1432284 уже на говно исходится. Сейчас начнет кидать скрины из книги, не понимая ни написанного ни контекста.

Ответы32301

159 11 июля, 12:02 159 1432300

>>1432284
>Для асинхронности существует класс CancellationTokenSource

Что ты блять несешь ебанная веб-макака? охуеваю с уровня тупости

160 11 июля, 12:06 160 1432301

>>1432298
>>1432284

Тупые джуны идите нахуй просто.

https://blogs.msdn.microsoft.com/benwilli/2015/09/10/tasks-are-still-not-threads-and-async-is-not-parallel/

https://blog.stephencleary.com/2013/11/there-is-no-thread.html

Ответы3236132362

161 11 июля, 12:18 161 1432307

Дорогие люди, подскажите. Вот есть ссылочные типы данных, а есть value, насколько я знаю, string относится к ссылочным. Несмотря на это, я столкнулся со следующей проблемой:
Есть несколько строк, допустим code1, code2, code3...
Есть свойства, Code1, Code2...
Get выглядит так:
get
{
if (code1 == null)
{
code1 = GenerateNewCode();
GeneratedCodes.Add(code1);

}
return code1;
}
Суть в том, что если обратиться к этой переменной, генерируется рандомное значение, которые при дальнейшем обращении остается тем же, т.к. используется в разных частях программы. Но в какой-то момент необходимо обнулить все используемые строки, чтобы сгенерировалось новое значение. Для этого я их при использовании добавляю в список, и имею функцию, которая обнуляет значения переменных в этом списке и очищает его.
Но когда я обнуляю значение переменной в списке, например GeneratedCode[0] = null; то обнуляется только значение в списке, а не сама переменная.
Если я добавляю объекты какого-нибудь класса в список, а потом их меняю, обращаясь к ним как к элементам списка, то меняется непосредственно сам объект, а вот со строками это так не работает, хотя они, как и классы, относятся к ссылочным типам. Почему так происходит? Наверняка я делаю хуйню, и есть более разумный способ такое реализовать?

Ответы323163237532397

162 11 июля, 12:34 162 1432316

>>1432307
со строками так тоже будет работать
тонкость работы со string-ами в дотнете в том, что большинство операций являются иммутабельными, т.е. в случае чего создается новый инстанс. а чтобы макаки не плодили тонны одинаковых экземпляров, есть такая штука как интернирование строк. короче, все очень сложно. если тебе рили-рили нужно иметь дело именно со String и никак иначе, это распедаливается ансейфом (или, м.б. есть какие-то методы, вытащенные наружу, но под капотом использующие unsafe). я бы тебе рекомендовал упаковать твою строку в тип, например: https://dotnetfiddle.net/qIlCql.
можешь использовать нативный StringBuilder, но там может быть оверхед при каждом ToString() начиная с .NET 4.0

163 11 июля, 13:32 163 1432361

>>1432301
И нахуй ты мой >>1432284 пост закоментил, даун? Твои ссылки подтверждают мои слова.
>https://blogs.msdn.microsoft.com/benwilli/2015/09/10/tasks-are-still-not-threads-and-async-is-not-parallel/

Вот этот пример наглядно показывает работу тасков как инструмента для гибкой работы с потоками. В первом случае от класса используется только само название, во втором случае используется Task.Delay() без каких либо дополнительных настроек, т. е. асинхронно будет выполняться только метод в котором используется ключевое слово await, а именно await Task.WhenAll(t1,t2,t3);
Поток будет переключаться между UI и поочередно между задачами в WhenAll т. е. сначала он выполнит t1, а в конце t3.
Далее await добавляется в функцию DoWorkAsync, что и делает её асинхронной (не тип возвращаемого значения Task, не модификатор async). Поэтому мы видим переключение задач в то время когда Task.Delay выполняет задержку в 100 мс.
Далее к Task.Delay(100) добавляется .ConfigureAwait(false) что равносильно оборачиванию идущего за Task.Delay(100) кода в Task.ContinueWith, позволяя каждой задаче оторваться от контекста и выполняться в отдельном потоке.

164 11 июля, 13:34 164 1432362

>>1432301
>tasks-are-still-not-threads-and-async-is-not-parallel
>there-is-no-thread
Опять пруфнул свою некомпетентность. Держи класс.

165 11 июля, 14:13 165 1432375

>>1432307
Тебе нужно работать с индексами коллекции GeneratedCodes возвращая не значение какого-либо ключа/индекса, а сам ключ/индекс которому соответствует требуемое значение. Соответственно там где это значение используется будет храниться индекс/ключ для массива GeneratedCodes и в любом месте где нужен код будет конструкция вида GeneratedCodes[хранимый ключ/индекс].

166 11 июля, 14:32 166 1432397

>>1432307
Это связано с оптимизациями стрингов, по факту создавая поле стринг в нем ты хранишь ссылку на стринг который находится в куче и создавая десять одинаковых стрингов они будут указывать на одну ссылку чтобы не тратить место за зря. В твоем случае ссылки стрингов в списке никак не связаны с твоим классом, хоть они и указывают на одно место в памяти.
Функционала который ты хочешь добиться можно сделать несколькими способами.
1) StringWrapper, и уже в нем ты хранишь свою строку, а дальше в списке хранишь этот Wrapper где можешь обнулять строки как ты хочешь
2) Сделать Action на обнуление строки и хранить в списке его.
При том все это дело можно хранить как статичная переменная в классе и когда нужно обнулять тупо дергать все что там накопилось.

98 Кб, 888x501
167 11 июля, 15:00 167 1432444

Антоны, что тут запрещает Треду2 сперва прочитать, а потом уже треду1 записать значение?
В чем смысл вообще этой операции с read и write, если все равно хуй поймешь, как треды будут работать.

Ответы3244732511

168 11 июля, 15:01 168 1432445

>>1431984
Бамп, антоны, никто не работал с доменами и сборками?
Имеет ли вообще это смысл?

Ответы32511

169 11 июля, 15:02 169 1432447

>>1432444
> m_
Ты не на плюсах пишешь.

Ответы32450

170 11 июля, 15:03 170 1432450

>>1432447
Такое и в сишарпе я часто вижу, а это пример из Рихтера

Ответы32511

171 11 июля, 15:57 171 1432511

>>1432450
Такого и в сурсас FCL навалом, но там солянка всевозможных стилей. Куча команд, куча времени сделали свое дело. Тебе так писать не надо.
>>1432445
>Имеет ли вообще это смысл?
Для тебя нет, ибо очевидно, что ты вообще не шаришь что это. Хотя один домен и с десяток сборок будешь использовать не подозревая об этом.
>>1432444
А это не про порядок вызовов. В данном случае тред2 либо прочитает 5 при флаге = 1 либо ничего не прочитает. Но не будет ситуации, когда будет прочитан 0 при установленном флаге.

Ответы32515

172 11 июля, 16:03 172 1432515

>>1432511
>Для тебя нет, ибо очевидно, что ты вообще не шаришь что это.
На основании чего ты вообще сделал такой вывод?
>Хотя один домен и с десяток сборок будешь использовать не подозревая об этом.
Ну да, как бы очевидно.
>>1432511
>Но не будет ситуации, когда будет прочитан 0 при установленном флаге.
А, тогда я понял.

Ответы32517

173 11 июля, 16:05 173 1432517

>>1432515
>На основании чего ты вообще сделал такой вывод?
На основании твоего вопроса. Может я его не понял, тогда поясни связь доменов и сборок с твоим вопросом про бота.

Ответы32519

174 11 июля, 16:11 174 1432519

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

Ответы32523

175 11 июля, 16:18 175 1432523

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

Ответы32548

878 Кб, 800x1088
176 11 июля, 17:29 176 1432545

Сап, шарпач.
Уже спрашивал в прошлом треде, но хотелось бы еще мнения экспертов.
Помогите разобраться с тремя мини-прогами.
Нужно описание-разъяснение происходящего в 4-10 строк текста, чтобы я точно понял.
Есть 100р на киви, скину помогателю за 5-10 минут его времени.
Почта vadim./!eb.smirnoffANUSgmail.C2PUNCTUMcLBAom

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

Ответы32546325473255032551

177 11 июля, 17:30 177 1432546

>>1432545
сами проги. Если нужны мои 100р - пишите на почту
https://pastebin.com/Y18EthW6
https://pastebin.com/ZgSKBgh6
https://pastebin.com/HgCQpgFw

Ответы32550

178 11 июля, 17:31 178 1432547

>>1432545
И да, скинул бы больше баблишка, но 100р это все мои свободные финансы на данный момент, так что сорян

179 11 июля, 17:32 179 1432548

>>1432523
>работа с доменами это больше про безопасность, чем про какие-то оптимизации
Окей, просто Рихтер все расписывал так, что это удобно всяким серверам для оптимизации.
> расходы на дополнительный домен
Ну, выполнять все операции с доменом нужно будет раза 4 в день, не более.
>Ты лучше не храни ненужные объекты и диспозь диспозуемое, тогда твой бот не выжрет всю опереативу.
Так тоже можно, но проект с ботом очень большой

Ответы3255932714

180 11 июля, 17:36 180 1432550

>>1432545
>>1432546

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

Ответы32554

181 11 июля, 17:36 181 1432551

>>1432545
Оно так не работает. Если ты полный ноль, то тебе объяснить не получится, придется тебя учить с нуля. Если ты прочитал хоть какую-то книгу, то ты должен уже что-то понимать и тогда задавай конкретные вопросы. Пока не сделали такой молоток, которым можно забить знания в голову.

Ответы3255432891

182 11 июля, 17:38 182 1432554

>>1432551
>>1432550
окей босс

183 11 июля, 17:41 183 1432559

>>1432548
>Ну, выполнять все операции с доменом нужно будет раза 4 в день, не более
Сделай задание в шедулере, винда (в линупсе тоже должен быть планировщик) сама будет запускать твое приложение. Пусть оно отработает и закроется.

Ответы3256332664

184 11 июля, 17:46 184 1432563

>>1432559
Разве для этого не создаются службы виндоус?

Ответы32564

185 11 июля, 17:49 185 1432564

>>1432563
Сделай службу. Но лучше погугли более компетентные ответы.

186 11 июля, 21:20 186 1432664

>>1432559
А как мне передать информацию, через посредника в виде БД/текстового файла?

Ответы32668

187 11 июля, 21:23 187 1432668

>>1432664
Куда передать, откуда передать? Пиздец ты тупой, блять. Запускаешь своё дерьмо через виндоус таскшедулер, в своём дерьме делаешь необходимые операции, после которых оно автоматически себя закрывает. Всё.

Ответы32670

188 11 июля, 21:27 188 1432670

>>1432668
>Запускаешь своё дерьмо через виндоус таскшедулер, в своём дерьме делаешь необходимые операции, после которых оно автоматически себя закрывает. Всё.
Ты предлагаешь каждые 5 минут запускать и закрывать?
Не, лучше тогда диспозить изначально класс с ботом буду.

Ответы3267732714

189 11 июля, 21:33 189 1432677

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

Ответы32681

190 11 июля, 21:34 190 1432679

>>1432284
>Класс Task работает с потоками, используя настройки класса TaskScheduler, при этом делает это максимально эффективным способом, асинхронность в нём заключает в очереди из которой таски отправляются в освободившийся поток тредпула
Не обязательно, если нет свободных потоков, то создастся новый для операции.
>При этом если ты используешь стандартные настройки, то он как раз будет выполнять каждую задачу по мере освобождения твоих реальных ядер процессора, а не асинхронно - создавая дополнительные потоки и деля между ними процессорное время.
Нет, даже при использовании стандартных настроек при необходимости будут создаваться дополнительные потоки, я даже приложение выше показывал, где даже без longrunning потоки создавались.

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

Ответы3268332704

191 11 июля, 21:36 191 1432681

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

192 11 июля, 21:37 192 1432683

>>1432679
>при вызове CancellationTokenSource
Блджад, криво выразился, что происходит с потоком при отмене задания.

Ответы32721

193 11 июля, 22:04 193 1432704

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

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

194 11 июля, 22:15 194 1432714

>>1432548
> раза 4 в день, не более.
>>1432670
>каждые 5 минут запускать и закрывать?
кек

Ответы32717

195 11 июля, 22:17 195 1432717

>>1432714
Да, я написал, что данные на сайте могут появиться раза 4 в день, но точного времени я не знаю, поэтому чекать нужно постоянно.

196 11 июля, 22:19 196 1432721

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

Ответы3272332725

197 11 июля, 22:22 197 1432723

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

Ответы32757

198 11 июля, 22:24 198 1432725

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

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

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

Ответы32761

199 11 июля, 22:24 199 1432726

6 Кб, 130x2287 Кб, 589x95

Здарова, работяги! Я тут метод с утреца заебенил. Как думаете, разделить или и так норм? Заказчик грит, малаца.

Ответы327323273332769332483331335607

200 11 июля, 22:33 200 1432732

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

201 11 июля, 22:33 201 1432733

>>1432726
Страшно, вырубай.

Ответы32735

202 11 июля, 22:35 202 1432735

>>1432733
Легаси, оно такое. А ты думал, в сказку попал?

203 11 июля, 23:01 203 1432757

>>1432723
Yep, потоками управляет инфраструктура. Лол, ты целыми днями сидишь на борде? В течении 20 минут умудряешься взбзднуть.

Ответы3276132771

204 11 июля, 23:03 204 1432761

>>1432757 --> >>1432725

205 11 июля, 23:13 205 1432769

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

206 11 июля, 23:16 206 1432771

>>1432757
Начальник отдает приказ рабочим, но управляет ими не начальник, ими управляют ноги!

Ответы32929

207 11 июля, 23:51 207 1432797

Антоны, в чем смысл await Task.Delay(-1).ConfigureAwait(false);
Оно блокирует вызывающий поток навечно?

Ответы32932

208 12 июля, 01:07 208 1432857

>>1429504 (OP)
Уже перекат четвертый, а шапку до сих пор никто не пофиксил.

Ответы32870

209 12 июля, 01:43 209 1432870

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

Ответы32993

210 12 июля, 05:50 210 1432891

>>1432551
>>Пока не сделали такой молоток, которым можно забить знания в голову.
Хотел бы поработать над такой технологией? Ну "молотком"

211 12 июля, 08:38 211 1432929

>>1432771
Совсем гусей погнал.

Ответы32941

212 12 июля, 08:41 212 1432932

>>1432797
Задача, которая никогда не завершится. Но поток не блокирует.

213 12 июля, 08:51 213 1432941

>>1432929
Быстро ты слился.

214 12 июля, 10:17 214 1432979

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

215 12 июля, 10:39 215 1432993

>>1432870
Хули ты такой токсичный? Меня два треда просили сделать шапку. Я взял шапку 15го года и немного переделал под 2019, но проебался с разметкой. Тогда в треде развелся срач на 100 постов какая шапка говно. И вот уже несколько тредов никто из тех, кто это кричал, ничего не исправил.

Ответы32998

216 12 июля, 10:42 216 1432995

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

Ответы3299833004

217 12 июля, 10:44 217 1432998

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

Ответы33002

218 12 июля, 10:47 218 1433002

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

Ответы33005

219 12 июля, 10:49 219 1433004

>>1432995
Зачем РАБотать, когда можно пилить свои проекты и получать с них доход? C# идеально для этого подходит + твои знания уж точно в жопу не улетят, как это случилось с рубистами, потому что за C# стоит майкрософт.

Ответы3300733120

220 12 июля, 10:50 220 1433005

>>1433002
Ну хз, рекордсмен джава вроде как, на сишарпе раза в 2 меньше работы.

Ответы33021

221 12 июля, 10:51 221 1433007

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

Ответы33017

222 12 июля, 10:58 222 1433017

>>1433007
Чем лучше, почему пустая? Руби уже сдох, от него только легаси говно осталось + пара маняотрицающих хипстеров.
То что разрабы С# взяли курс на net core и его кроссплатформенность, только добавляет мотивации для его изучения. C# это убийца жабы, особенно учитывая что сейчас со скалой происходит.

Ответы330203302233023

223 12 июля, 11:01 223 1433020

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

Ответы33037

224 12 июля, 11:03 224 1433021

>>1433005
вроде как го абсолютный рекордсмен, к сожалению

Ответы3302633052

225 12 июля, 11:04 225 1433022

>>1433017
> Руби уже сдох,
а версии стабильно выходят каждый год,щас вот скорость допиливают,рельсы все также не дохнуть,обрастая возможностями.в рф может и сдох,на Швитом-нет

226 12 июля, 11:05 226 1433023

>>1433017
а пхп?

Ответы33037

227 12 июля, 11:09 227 1433026

8 Кб, 548x626 Кб, 442x725 Кб, 532x81

>>1433021
В рашке точно нет

Ответы3302733029

6 Кб, 456x73
228 12 июля, 11:09 228 1433027

>>1433026

229 12 июля, 11:11 229 1433029

>>1433026
тю
я про зарплаты же)

Ответы33031

230 12 июля, 11:12 230 1433031

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

Ответы33038

74 Кб, 776x729
231 12 июля, 11:13 231 1433033

Они что, стебутся? За знания джавы, разработки CRM и ERP 160к рублей без опыта работы?

Ответы3303933041

232 12 июля, 11:19 232 1433037

>>1433020
Я тебе уже про рыночек сказал. Если ты хочешь рыночек - то у тебя три стула - 1C, php/wordpress, Java. А найти работу, имея хорошие знания C#, не составит труда, поэтому не надо пытаться усидеть на двух стульях и учить что-то другое. Можно питон разве что выучить, потому что есть возможность встраивать его в C#.
>>1433023
Хороший вариант если тебе похуй на будущее и ты просто хочешь заработать денег.

Ответы33046

233 12 июля, 11:19 233 1433038

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

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

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

Ответы33045

234 12 июля, 11:20 234 1433039

>>1433033
Просто читали последний доклад разработчиков C# и поняли, что за ним будущее.

235 12 июля, 11:20 235 1433041

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

236 12 июля, 11:22 236 1433045

>>1433038
Тогда бы и писал про зарплаты, чего ты про работу начал говорить?
Мне джуну пофиг на зарплату, главное без работы не остаться

Ответы33052

237 12 июля, 11:22 237 1433046

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

Ответы33053

238 12 июля, 11:26 238 1433052

>>1433045
это сообщение: >>1433021 было моим первым во всей ветке
я, как обычно, мимокрокодил тут и вставил свои пять копеек

239 12 июля, 11:27 239 1433053

>>1433046
Показываешь людям свои проекты и они понимают, что у тебя есть опыт. Или для тебя так сложно соблюдать принципы SOLID, применяя паттерны проектирования при написании собственного кода? На крайний случай можешь пофрилансить пару месяцев.

Ответы33056

240 12 июля, 11:29 240 1433056

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

Ответы33061

241 12 июля, 11:32 241 1433061

>>1433056
Совсем тупенький? Какой нахуй пхп, когда у тебя asp .net под рукой?
>максимум,что можно высрать,это бложик
Да, только если учесть, что ты обезьяна с двузначным IQ.

242 12 июля, 11:33 242 1433062

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

243 12 июля, 11:42 243 1433075

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

Ответы33077

244 12 июля, 11:44 244 1433077

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

Ответы33078

245 12 июля, 11:45 245 1433078

>>1433077
Есть какие-то тесты производительности и долговизны разработки на схожие проекты?

Ответы33080

6 Кб, 251x251
246 12 июля, 11:49 246 1433080

>>1433078
рыночек как бы намекает

Ответы33081

247 12 июля, 11:49 247 1433081

62 Кб, 1292x52459 Кб, 1376x412

>>1433080
Хм, интересна

Ответы3308533088

248 12 июля, 11:51 248 1433085

>>1433081
а теперь принеси пхп

Ответы33086

249 12 июля, 11:53 249 1433086

56 Кб, 1307x36962 Кб, 1397x531

>>1433085
Тут не такой жесткий сасай, в 3 раза сайтов на php больше, а не в 10, так шо Джангу стоит брать в последнюю очередь.

Ответы33093

250 12 июля, 11:55 250 1433088

>>1433081
выкинь оттуда тырпрайз

Ответы33090

251 12 июля, 11:59 251 1433090

>>1433088
Websites
2

252 12 июля, 12:02 252 1433093

>>1433086
ну все,бегу покупать виндовс сервер

Ответы33103

253 12 июля, 12:23 253 1433103

>>1433093
Прснись, соня! Уже давно кор выкатили, скоро уж третья версия поспеет.

254 12 июля, 12:40 254 1433120

>>1433004
Лучше уж тогда свои проекты на хацкиле писать. Ну или лиспе/идрисе или любой другой эзотерической, интересной и веселой хуйне.

Ответы33122

255 12 июля, 12:43 255 1433122

>>1433120
Плюсы шарпа в легкости создания GUI-приложений, которые заточены под самую популярную ОС.

Ответы33185

256 12 июля, 13:27 256 1433185

>>1433122
Ну если для дохода создавть десктоп приложения, то мб ты прав. Майки пиздец как вылизали сишарп, чтобы любой дебил разобрался в том, как делать гуи приложения. Осознаю это, когда попробовал хелловорлды на гтк.
Энивэй, в 2к19 лучше писать на говноэлектроне, чтобы твоя революционная программа работала еще на 10% рынка макос и 1% гнулинакса с бсд.

257 12 июля, 15:31 257 1433248

>>1432726
хороший метод на 17к строк не будет

258 12 июля, 16:47 258 1433313

>>1432726
Нихуя ты мощный, за утро 17к строк высрать.

Ответы33353

259 12 июля, 17:34 259 1433353

>>1433313
Чел решил скопировать весь стэковерфлоу, чтоб наверняка.

29 Кб, 1116x327
260 12 июля, 21:22 260 1433524

Мне надо, чтобы при команде /music бот выдал музыку https://telegrambots.github.io/book/2/send-msg/audio-voice-msg.html
У меня есть мп3 файл на компе, я закинул его в репу к боту. Но выдаётся ошибка когда включаю бота ( сервак мой же ). Как в общем сделать так, чтобы из папки доставалась эта мп3шка?

Ответы3353033547

49 Кб, 824x401
261 12 июля, 21:36 261 1433530

>>1433524
Собсна и ошибка.

Не знаю, может как-то не видит эту мп3...

Ответы3353633547

262 12 июля, 21:53 262 1433536

>>1433530
Аудиофайл должен быть на сервере телеграма. И ты в метод передаешь Id этого файла

Ответы33539

30 Кб, 781x231
263 12 июля, 21:54 263 1433539

>>1433536
А как этот id узнать? Я вроде что-то похожее нашёл

264 12 июля, 22:07 264 1433547

>>1433530
>>1433524
Передавать надо не путь, а URL, хули ты тупой то такой? По твоей же ссылке первый пример:
Message msg = await botClient.SendAudioAsync(
e.Message.Chat,
"https://github.com/TelegramBots/book/raw/master/src/docs/audio-guitar.mp3"
/ ,
performer: "Joel Thomas Hunger",
title: "Fun Guitar and Ukulele",
duration: 91 // in seconds
/
);

Заливаешь на любой открытый файлообменник и вставляешь прямую ссылку в метод.

Ответы33548

265 12 июля, 22:09 265 1433548

>>1433547
Я просто ссылку скинул, где по гайду бота делаю. Я написал прямым текстом что МНЕ нужно, а не что там написано. МНЕ надо, чтобы с моего компа мп3шка доставалась, а не где-то в интернете
Андерстенд?

Ответы33559

266 12 июля, 22:26 266 1433559

>>1433548
Попробуй так:
Message msg;
using (var stream = System.IO.File.OpenRead("путьктвоейговномузыке")) {
msg = await botClient.SendAudioAsync(
e.Message.Chat,
stream
);
}

Если не сработает, то возможно нужно сначала загрузить твой файл используя:
https://telegrambots.github.io/book/3/files/upload.html

Ответы33563

267 12 июля, 22:29 267 1433563

>>1433559
Спасибо ооооогромное. Да, всё заработало.

Ответы33565

268 12 июля, 22:30 268 1433565

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

24 Кб, 658x476
269 13 июля, 11:23 269 1433818

Как мне через флюент апи настроить автоинкремент свойства?

Ответы33821

270 13 июля, 11:33 270 1433821

>>1433818
нашел ValueGeneratedOnAdd, это оно?

4 Кб, 290x72
271 13 июля, 13:41 271 1433895

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

С IEnumerator я вроде разобрался, мне нужно реализовать его методы IEnumerator.MoveNext() (инкремент счетчика, возвращает false если дальше инкрементировать некуда), IEnumerator.Reset() (сброс счетчика) и свойство IEnumerator.Current (в него пишем возвращаемый объект).

А вот как реализовать IEnumerable? Visual studio делает так:

IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}

т.е. для реализации интерфейса IEnumerable я должен реализовать его метод IEnumerable.GetEnumerator(), который возвращает что-то с типом IEnumerator. И вот тут я не понимаю, что именно оно должно возвращать?

Ответы3391134184

272 13 июля, 14:12 272 1433911

>>1433895
>перебирать в цикле foreach
На самом деле форыч использут подобие утиной типизации. Что б он работал твой класс должен иметь метод GetEnumerator(), который возвращает объект, у которого есть метод bool MoveNext() и свойство Current.
>>1433895
>А вот как реализовать IEnumerable?
Три способа:
1. Так как обычно ты будешь использовать внутри какую-то стандартную коллекцию, то можешь просто вернуть её енумератор
GetEnumerator() => innerList.GetEnumerator();
2. Возвращаешь, класс который реализует IEnumeraotor, с ним ты разобрался.
3. Использовать yield return. Похоже на второй способ, но класс за тебя сгенирирует компилятор.

Ответы33949

273 13 июля, 15:05 273 1433930

Куда сейчас перспективнее вкатываться? Бекенд .NET CORE?

Ответы33936

274 13 июля, 15:12 274 1433936

>>1433930
ASP NET MVC для веб легасиговна
ASP NET CORE для нового веб говна
Winforms/wpf/wcf для ынтырпоайз легаси говна
net core для стартап говна
Все вышенаписанное пиздешь и неправда

Ответы33940

275 13 июля, 15:15 275 1433940

>>1433936
> легаси
Это значит для староговебговна? То есть асп нет МВС сейчас изучать мало смысла?

Ответы3395233956

276 13 июля, 15:25 276 1433949

>>1433911
Я запустил, но не совсем понимаю, как это работает.

У меня есть класс:

class TestClass : IEnumerable, IEnumerator
{}

В нём я определил:

object IEnumerator.Current
{...}
bool IEnumerator.MoveNext()
{...}
void IEnumerator.Reset()
{...}

IEnumerator IEnumerable.GetEnumerator()
{
return this;
}

Получается при попытке прокручивания экземпляра класса через foreach сначала вызывается GetEnumerator, который возвращает опять этот же экземпляр, внутри которого мы начинаем использовать остальные три метода? Зачем, тогда, вообще нужен IEnumerable? Чтобы можно было выносить IEnumerable.GetEnumerator() в отдельный класс? Но зачем? Или я внутри GetEnumerator могу какую-то хитрую логику реализовать?
Еще вопрос - для структур невозможно перечисления реализовывать?

Ответы33985

277 13 июля, 15:26 277 1433952

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

Ответы33957

278 13 июля, 15:28 278 1433956

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

279 13 июля, 15:28 279 1433957

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

Ответы3395933985

280 13 июля, 15:29 280 1433959

>>1433957
Пока все перейдут на аспнет кор пройдет уже лет 6 и ты миддлом станешь.

Ответы33961

281 13 июля, 15:30 281 1433961

>>1433959
Ну я пока абитура, не знаю, как раз 6 лет буду онли учиться, хотя не знаю как там с нагрузкой в вузе. (бакалавр+мага)

Ответы33965

282 13 июля, 15:32 282 1433965

>>1433961
А, ну если через 6 лет планируешь работать, то учи неткор.
Хотя сейчас хоть вебформы можно учить, они все еще есть.

283 13 июля, 15:53 283 1433985

>>1433957
Так себе идея два этих интерфейса в од>>1433949
>Зачем, тогда, вообще нужен IEnumerable? Чтобы можно было выносить IEnumerable.GetEnumerator() в отдельный класс? Но зачем?
Ну можно вообще все в мэйне ебашить. Например, енумераторы стандартных коллекций отслеживают их изменения, ты наверняка встречал исключение блабла коллекция была изменена, так вот это их проделки.
>>1433949
>внутри GetEnumerator могу какую-то хитрую логику реализовать?
Обычный метод, можешь любую хуйню творить. Но обычно просто возвращает енумератор, в котором уже вся хитрая логика.
>>1433949
>невозможно перечисления реализовывать?
С чего ты взял?

Ответы34000

284 13 июля, 15:59 284 1433992

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

Ответы33996

285 13 июля, 16:03 285 1433996

>>1433992
Внимательно посмотри на 98ую строчку

Ответы33998

286 13 июля, 16:04 286 1433998

>>1433996
Ты ебан? У меня всего 70 строк.

Ответы34003

287 13 июля, 16:05 287 1434000

>>1433985
>невозможно перечисления реализовывать?
>С чего ты взял?
Всё, почитал про yield и вдуплил как это сделать, спасибо за помощь.

288 13 июля, 16:08 288 1434003

>>1433998
А должно быть 132, ты забыл что-то написать.

Ответы34006

289 13 июля, 16:11 289 1434006

>>1434003
Сработало, спасибо.

Ответы34008

290 13 июля, 16:22 290 1434008

>>1434006
Не за что.

291 13 июля, 19:34 291 1434184

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

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

370 Кб, 1024x768
292 14 июля, 16:05 292 1434971

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

Ответы35444

181 Кб, 600x650
293 15 июля, 07:50 293 1435444

>>1434971

294 15 июля, 12:16 294 1435607

>>1432726
это на каком проекте такая страхоебина?

Ответы35628

295 15 июля, 12:46 295 1435628

>>1435607
на любом, который существует 7+ лет

Ответы35632

296 15 июля, 12:52 296 1435632

>>1435628
один метод на 17к строк? Циклы индусы писали с проверкой if-else на каждое значение от 1 до 17к?

Ответы35636

297 15 июля, 12:59 297 1435636

>>1435632
если тебе повезло не плавать в подобном, я тебе завидую
иначе нет смысла объяснять ибо ты сам всё видел. просто умножь масштабы бедствия на 4 или на 4000

Ответы35660

298 15 июля, 13:22 298 1435660

>>1435636
еще не вкатился даже, поэтому да, не видел. Про легаси шит наслышан, но блять не на 17к строк же. Сможешь куда ни будь на репозиторий закинуть? Интересно посмотреть на эту хуйню

Ответы35733

299 15 июля, 14:42 299 1435733

>>1435660
ну настолького пиздеца у меня не было
из похожего, были стены подобной копипасты: https://pastebin.com/AYDPJG5f. причем, это не самая большая, я просто заебался искать. а еще был конструктор на 120+ параметров

Ответы35737

300 15 июля, 14:51 300 1435737

>>1435733
Бля, да как можно написать конструктор на 120 параметров?? Это отбитым быть надо, либо кодген какой-то. Я просто не могу представить в какой компании может быть такой код, пройти ревью, не подвергнуться рефакторингу - это полный бред же. Ну вот параметров 20 мб накопилось со временем, ок, но 120 то как блять???

Ответы357393575335758

301 15 июля, 14:52 301 1435739

>>1435737
>как можно написать конструктор на 120 параметров?
Просто и без задней мысли.

302 15 июля, 15:06 302 1435753

>>1435737
>пройти ревью
короче рассказываю. приходишь на проект, а там вафланы коммитят локальные айпишники в конфигах, просто небилдящийся код (вечером перед выходными), пирог из if-else, методы на 17к строк. ты такой: посаны, ну так низя. давайте я бесплатно за выходные вам че-нибудь порефакторю, тебе отвечают: не, ну слишком сложно. а еще тестить надо, а нам на вчера нужно было выкатить вон те две фичи, которые уже два года в разработке. а еще мы пообещали 99.999999999999999999999999% SLA заказчику, а сервер стартует 40 минут. давай потом как-нибудь когда будет время.
в это же время другому челику просто понадобилось добавить одно проперти в класс и инициализировать его в конструкторе. вот он без задней мысли добавляет 121-е поле и ливает с проекта вместе с тобой

303 15 июля, 15:07 303 1435754

Ребят, очень хочу вкатитьсяв elasticsearch кто может покидать ресурсов на эту тему? работать буду с asp, желательно так, чтобы с примерами, гугление выдает просто статьи, по качеству такие же, какие я писал, будучи школотроном (аля "способы не потерять себя во время беременности" качество у них не очень)

Ответы35760

304 15 июля, 15:08 304 1435758

>>1435737
>пройти ревью
я хоть и не практикующий, а только вкатывающийся, но в Украине есть портал - ebanoe.it называется. Вот там постили пару раз такие фирмы, которые занимаются выполнением работ с фриланс бирж. Кидают на таск какой ни будь проект с freelancer.com или с fiverr и главная цель - высрать нужный клиенту проект в сжатые сроки. Никакого код ревью там и близко нет. Если завтра эта апликуха будет эксплоидить при включении - никого не ебет, главное сейчас срубить денег с заказчика, взять себе кусок и кусок гребцу
>120 параметров??
на лурке читал, что раньше индусам платили за кол-во строк кода. Если легаси >2010 года, то в теории такое может быть

305 15 июля, 15:09 305 1435760

>>1435754
эластик это просто базочка данных (просто немножко особенная). какая разница, используется там рядом с ней ASP или RoR?
иди в документацию и Quick Start ну и все )

Ответы35783

306 15 июля, 15:32 306 1435783

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

Ответы35810

307 15 июля, 15:45 307 1435810

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

Ответы35820

308 15 июля, 15:47 308 1435820

>>1435810
работал на луашке только с SQLite

Ответы35839

309 15 июля, 15:58 309 1435839

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

310 15 июля, 16:23 310 1435872

Антоны, как происходит снятие блокировка с потока? Сам по себе или ещё один поток создаётся?

Ответы3597436001

311 15 июля, 16:58 311 1435974

>>1435872
Какой блокировки? Кто заблокировал? Кто разблокирует? Где я?

312 15 июля, 17:13 312 1436001

>>1435872
lock юзать пробовал? Я работая с потоками поверхностно за 1 минуту на sof нашел ответ на твой вопрос: https://ru.stackoverflow.com/questions/395363/Многопоточность-и-блокировка-в-c

Ответы36221

313 15 июля, 20:29 313 1436221

>>1436001
Нет, я вообще не об этом спрашивал, там не объясняют, как блокировка снимается.

Ответы36238

314 15 июля, 20:43 314 1436238

>>1436221
автоматически снимается, когда поток ставящий блокировку исполняет код в блоке lock

Ответы36283

115 Кб, 931x501
315 15 июля, 20:47 315 1436241

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

Ответы3627336276

316 15 июля, 21:08 316 1436273

>>1436241
Вангую, что это ссылка на книгу/статью. Автор Susing. Либо 15-й год, либо 15-й номер в списке литературы. Смотри раздел References.

Ответы36308

317 15 июля, 21:11 317 1436276

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

Ответы3628136308

977 Кб, 350x197
318 15 июля, 21:12 318 1436281

>>1436276
>Еще говорят, что среди программеров нет долбоебов
Кто говорит?

Ответы36290

319 15 июля, 21:14 319 1436283

>>1436238
>автоматически снимается
Каким образом, поток сам это делает, это делает пул потоков, какие-нибудь службы windows, другой поток?
Алсо, Аноны, я правильно понимаю, что методы Sleep, Yield и SpinWait класса Thread служат для того, чтобы при блокировке в одном процессе

Ответы3628636313

320 15 июля, 21:16 320 1436286

>>1436283
Блджад, миссклик
>Алсо, Аноны, я правильно понимаю, что методы Sleep, Yield и SpinWait класса Thread служат для того, чтобы при наличии заблокированного потока, которому винда может выдать низкий приоритет мы могли выйти из него.
Типа Sleep явным образом говорит, что поток нужно остановить.
Yield говорит, что нужно запланировать другой поток.

321 15 июля, 21:17 321 1436290

>>1436281
thedevochki.com, кто же еще
Проиграл с гифки

Ответы36295

43 Кб, 854x480
322 15 июля, 21:21 322 1436295

>>1436290
>Проиграл с гифки
Надо бы досмотреть, а то на середине первого сезона остановился N лет назад

181 Кб, 689x1009
323 15 июля, 21:37 323 1436308

>>1436273
Нет, по смыслу даже не подходит.

>>1436276
Нет там никаких созданных типов, методов которые близки по написанию к слову Susing15

Ответы36317

324 15 июля, 21:44 324 1436313

>>1436283
>Каким образом
Сначала он присваивает объекту-замкусвой номер, другие потоки считывают этот номер и если он не совпадает с их нормером, то ждут, как только поток занявший объект-замок удаляет из него свой номер, то первый поток обратившийся к объекту-замку занимает его записывая в него свой номер.
Если вызвать Sleep в блоке lock, то поток будет занимать объект-замок и при этом ничего не делать до тех пор пока не пройдёт таймаут слипа, для того чтобы освободить объект-замок при этом не выходя из блока lock используют Monitor.Wait и Monitor.Pulse.
Про Yield и SpinWait ничего сказать не могу.

Ответы36342

325 15 июля, 21:45 325 1436317

>>1436308
лежит на столе Nutshell, только в рузком. Место Susing15 должно быть - Class MemoryStream
Все равно тупой, раз не мог посмотреть в другой редакции/переводе

Ответы36331

326 15 июля, 21:53 326 1436322

Делюсь с антонами годнотой

https://bitbucket.org/chernikov/lessons/src/f777636121ae734125dc1ceda76bc1cf0792ef4b/asp.net mvc.docx?at=default

Пошаговый туториал по созданию веб приложений на ASP.NET MVC (Nlog, DI, DB, Routes, Аутентификация, View, Razor, Json, scaffolding, Tests). Не первой свежести - 12 года, но все равно очень полезный материал

Ответы36332

327 15 июля, 22:03 327 1436331

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

328 15 июля, 22:06 328 1436332

>>1436322
>12 года

Для новичка который ASP.NET не щупал, такое не полезным, а вредным будет.

Ответы3633736573

329 15 июля, 22:10 329 1436337

>>1436332
я нуб, щупал только по гайду metanit.com, типо GetStarted - сейчас прохожу материал по этой методичке и просто дрочу на применимость 99.9% вещей в этом туториале

Ответы36341

330 15 июля, 22:12 330 1436341

>>1436337
Ну после мутанита и говно вкусным покажется, я на своём опыте узнал.

Ответы36347

56 Кб, 749x637
331 15 июля, 22:13 331 1436342

>>1436313
Да речь вообще не про lock была, не понимаю, откуда вы это взяли
Я уже во всем разобрался, у меня есть вот такая вот структура(пик1)
Если не добавить в метод AccessResource в конец Thread.Sleep(100) или Thread.Yield(), то в консоль сообщение "Ожидание в цикле" выведется очень много раз, а если добавить, то их будет мало, так как винда даст исполниться второму потоку.

Ответы3634536348

19 Кб, 649x245
332 15 июля, 22:15 332 1436345

>>1436342
Метод AccessResource

333 15 июля, 22:15 333 1436347

>>1436341
это ты на professorweb еще не был...

Ответы3635036363

334 15 июля, 22:18 334 1436348

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

335 15 июля, 22:18 335 1436350

>>1436347
А где ещё asp.net core учить, кроме официальной документации?

Ответы36360

336 15 июля, 22:24 336 1436360

>>1436350
я не core учу, а mvc - оф. доки не юзаю вообще. Начинал с metanit, professorweb, сейчас чаще stackoverflow юзаю и вот мануальчик хороший с хабра нашел (там больше по компоновке и фичам в целом, чем по Asp.net mvc)

337 15 июля, 22:25 337 1436363

>>1436347
А вот не гони, на professorweb годнейший перевод книги Фримана по Asp.Net MVC5

338 16 июля, 09:18 338 1436573

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

Ответы36603

339 16 июля, 10:13 339 1436603

>>1436573
На какие ключевые моменты нужно обратить внимание? Что знать Must have? Нужно ли знать JS? Тоже хочу на asp.net mvc вкатиться, но из за изабилия информации теряюсь, за что хвататься

Ответы36606

340 16 июля, 10:18 340 1436606

>>1436603
дотнетчики, преимущественно, вынуждены знать фронтач. в зависимости от проекта варьируется и требования по жс. реальным исключением являются проекты на .net core, где разрабы, в основном, пилят бэкенд
ключевые моменты чтобы что? если чтобы пройти собес - время жизни запроса, рутинг, биндинги (основы, без погружения), фильтры, что-то из HTTP/REST, взаимодействие контроллеров и вьюх, возможно очень-супер-мега базово IIS

Ответы36609

341 16 июля, 10:26 341 1436609

>>1436606
да, пройти собес. Мало того, что тонны материала по мат. части C#, знание SOLID, patterns еще и по технологии Asp.net + entity (некоторые упоротые для джуна пишут еще React/Angulare - ну охуеть)
что по IIS? Конфиг по подключению или размещение БД? Кстати СУБД какие, MS SQL или Mongo?

Ответы36623

342 16 июля, 11:08 342 1436623

>>1436609
SOLID и паттерны знать от джуна это глупо по меньшей мере. разве что ты хотя бы в курсе, что эти буквы означают. ну или хотят, говоря "адаптер" какой-нибудь, чтобы ты понимал, что от такого класса можно ожидать.
и тонн шарпного материала тоже не требуют. на самом деле, спрашивают настолько базовые знания, что иногда кажется, кого это будет ебать в реальной разработке на самом деле никого и так не ебет, просто если спрашивать сложные практичные вещи, то джуна можно сразу в техлиды промоутить
я за 5+ лет опыта на собесах только говорил "фронтач только знаю как выглядит, требовать от меня че-то там на полном серьезе пилить тупо бесполезно". примерно половину это не устраивает сразу (я так подозреваю, на таких проектах только jQuery и ковырять), остальным большего и не надо

по IIS, например, я помню что-то вроде Classic/Integrated Mode и как добавить пул/аппликейшн. на практике я еще статическим роутингом чуть-чуть занимался

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

Ответы36625

343 16 июля, 11:13 343 1436625

>>1436623
спасибо за отзывы, но читая вакансии в 2к19 на позицию джуна (перекатываюсь из финансов) начинаешь охуевать от пробитого дна IT сектора (Украина на связи). Нужно знать все, говорить на ангельском, иметь comunication sofl skills еще и получать не больше 500 USD.

P.S. Знакомого RoR на собесе джуна в ЗП 400$ гоняли по алгоритмам сортировки и поиска НА БУМАЖКЕ КАРЛ. Думаю он просыпается ночью в холодном поту после этого.

Ответы36626

344 16 июля, 11:18 344 1436626

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

345 16 июля, 13:01 345 1436655

>>1429504 (OP)
Помогите, пожалуйста ньюфагу с Visual Studio.
Nuget package manager позволяет устанавливать библиотеки с локальной папочки, однако все равно требует подключения к интернету для установки.

Exception 'System.AggregateException' thrown when trying to add source 'https://api.nuget.org/v3/index.json'. Please verify all your online package sources are available.

Что я делаю не так? Могу ли я с мобилки скачать этот файлик и кинуть в папочку с библиотеками?

Ответы36659

346 16 июля, 13:03 346 1436658

Что анон бы посоветовал посмотреть по реализации MVVM на WPF?

Ответы36659

347 16 июля, 13:05 347 1436659

>>1436658
есть фреймворк - Prism, я его юзал. Есть GetStart, в котором показанна базовая реализация View-ViewModel
>>1436655
в чем проблема это сделать из VS? Зачем тебе локально это делать?

Ответы3666336683

348 16 июля, 13:09 348 1436663

>>1436659
>есть фреймворк - Prism, я его юзал. Есть GetStart, в котором показанна базовая реализация View-ViewModel
Не, только WPF. Я не погромист, а хуй простой начинающий любитель, по чуть-чуть пытаюсь учить. Посмотрел метанит, доки на микрософте и примеры там же, пару книжек - и от всего голова кругом и не покидает ощущение, что примеры какие-то куцые и местами с ними что-то не то.
Хотелось бы что-то краткое и ёмкое посмотреть с хорошим исчерпывающим примером.

Ответы36669366713667537124

349 16 июля, 13:17 349 1436669

>>1436663
MvvmLight
а так гугли "шо такоэ mvvm" и "шо такоэ бинденг". читай сотни статей пока не поймешь

Ответы37329

350 16 июля, 13:19 350 1436671

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

Ответы37329

351 16 июля, 13:25 351 1436675

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

Ответы37329

352 16 июля, 13:38 352 1436683

>>1436659
Интернет только на мобилке.
Просто странно, раз функционал такой есть, значит работать он должен, по идее, просто перетащил nuget с другого проекта и кодишь дальше. Но что-то как-то оно не очень работает.

Ответы36691

353 16 июля, 13:52 353 1436691

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

354 16 июля, 21:40 354 1437124

>>1436663
Можешь попробовать эту статью:
https://msdn.microsoft.com/en-us/magazine/dd419663.aspx
Некоторые вещи в ней конечно устарели, однако суть неплохо объясняется.
Код примера здесь:
https://github.com/djangojazz/JoshSmith_MVVMDemo

Ответы37329

355 17 июля, 05:10 355 1437329

>>1437124
>>1436675
>>1436671
>>1436669
Может я тогда "на примере" спрошу?
Пусть будет один класс, содержащий одно свойство базового типа, с "простыми" геттером и сеттером. Можно даже автосвойство до тех пор, пока не понадобится INotifyPropertyChanged. Этот класс, очевидно, относится к модели, так?
Дальше нужна коллекция, и вот тут начинаются сложности. В примерах, что я видел, используют ObservableCollection, потому что у неё уже есть реализация INotifyPropertyChanged и INotifyCollectionChanged. К ней уже напрямую биндят листбокс, потом к ивентам интерфейса цепляют методы, добавляющие в коллекцию новые итемы. Это вроде понятно, но чем тогда является объект ObservableCollection - ViewModel или Model? Если Model, то к нему не должно быть прямых биндов, значит ViewModel, но тогда это уже не MVVM.

Ответы37374

356 17 июля, 08:41 356 1437374

>>1437329
>Этот класс, очевидно, относится к модели, так?
Или вьюмодели. Или вью. Под такое описание практически любой класс подходит.>>1437329
>потом к ивентам интерфейса цепляют методы
Так себе. Чаще через комманды.>>1437329
>ObservableCollection - ViewModel или Model?
Зависит от ситуации.>>1437329
> Если Model, то к нему не должно быть прямых биндов,
Почему нет? Не стоит все доводить до крайностей.

>>1437329
>Может я тогда "на примере" спрошу?
Пример у тебя максимально абстракный, поэтому можно давать противоположные советы. Один хрен в настоящем примере будет подругому.

Ответы37384

357 17 июля, 09:18 357 1437384

>>1437374
>Так себе. Чаще через комманды.
Я пока видел только ивенты и хендлеры для них и все.

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

Ответы3738837476

358 17 июля, 09:26 358 1437388

>>1437384
>Я пока видел только ивенты и хендлеры для них и все.
одна из целей MVVM для WPF непосредственно - оставить нетронутым весь code-behind для UI элементов

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

359 17 июля, 12:12 359 1437476

>>1437384
>Разве смысл MVVM не в том, чтобы логика никаким образом не была связана с интерфейсом
Если ты можешь выкинуть папку Вью из проекта и сделать принципиально новый® нексучный® интерфейс так, чтоб в модели и вм не пришлось поменять ни строчки, то у тебя MV* паттерн работает.
>ивенты и хендлеры для них
С ними такая беда: либо ты делаешь в вм хэндлер события, что прибъет

Ответы37482

360 17 июля, 12:15 360 1437482

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

Ответы37490

361 17 июля, 12:23 361 1437489

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

362 17 июля, 12:23 362 1437490

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

Ответы3751837521

363 17 июля, 12:58 363 1437518

>>1437490
Тянешь из тырнета готовую реализацию ICommand и пихай её вовсюда, вместо подписки в замле пиши Command = SomeCommand, где SomeCommand это свойство вьюмодели, которое возвращает ICommand. Для начала этого будет достаточно.

Ответы37521

364 17 июля, 13:02 364 1437521

>>1437490
>>1437518
это то, о чем я писал в начале - Prism. Реализация - элементарная. Есть GetStart, чего себе мозги лишний раз дрочить, если есть готовый велосипед. Сел и поехал.

Ответы37527

365 17 июля, 13:09 365 1437527

>>1437521
>Prism.
>Реализация - элементарная
ебать ты шутник

Ответы37541

366 17 июля, 13:19 366 1437541

>>1437527
https://prismlibrary.github.io/docs/commanding.html
Ты не можешь в этом разобраться?

Ответы37556

367 17 июля, 13:39 367 1437556

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

Ответы37558

368 17 июля, 13:43 368 1437558

>>1437556
а он чего хотел? И почему нет?

Ответы37572

369 17 июля, 14:20 369 1437572

>>1437558
потому, что
>новичку
и Prism
>охуительно огромный фреймворк

Ответы37574

370 17 июля, 14:24 370 1437574

>>1437572
И что с того? Нужно решить задачу? Нужно.
Какое имеет отношение широкого инструментария фреймворка к применению одного из них для решения задачи?

371 17 июля, 16:29 371 1437652

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

372 17 июля, 16:37 372 1437655

Как в блядском ReSharpere над классами включить показ ссылок?

Ответы37660

373 17 июля, 16:42 373 1437660

>>1437655
так это фишка студии 2017+, а не решарпера, не?

Ответы37668

374 17 июля, 17:04 374 1437668

>>1437660
недавно эту шнягу увидел, но версия точно раньше 17. Думал решарпер. Как включить, кто знает?

Ответы37712

375 17 июля, 18:33 375 1437712

>>1437668
Поищи в настройках CodeLens.

Ответы37714

376 17 июля, 18:33 376 1437714

>>1437712
Tools > Options > Text Editor > All Languages > CodeLens > Disable

Ответы37717

377 17 июля, 18:34 377 1437717

>>1437714
Блять, enable. Нутыпонел.

Ответы3776737817

378 17 июля, 19:31 378 1437767

>>1437717
находил на SOF такое же решение, на работе тупо нет вкладки CodeLens, думал может я идиот, может студия старая. Домой пришел - все появилось. Спасибо.

328 Кб, 1664x979
379 17 июля, 20:24 379 1437817

>>1437717
Что не так? установил уже SSDT, все равно не появляются ссылки. Может из за того, что Community edition?

Ответы3812938131

380 17 июля, 20:31 380 1437822

Могут ли на собесе спросить про конструкции синхронизации, типа мьютексов, семафоров, мониторов?

Ответы378363808238129

381 17 июля, 20:50 381 1437836

>>1437822
>Могут ли на собесе спросить про конструкции синхронизации, типа мьютексов, семафоров, мониторов?
Вообще предполагается, что эти вещи надо знать, если идёшь на C#/Java/C++. Естественно могут.

Ответы3786738212

382 17 июля, 21:23 382 1437867

>>1437836
Блять, самая бесполезная ебень.
Ну ладно, таки дочитаю.

Ответы380933810338133

383 18 июля, 08:53 383 1438082

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

Ответы38090

384 18 июля, 09:13 384 1438090

>>1438082
что это за задача про круглые люки?

Ответы38094

385 18 июля, 09:25 385 1438093

>>1437867
У рихтера есть?

Ответы38139

386 18 июля, 09:35 386 1438094

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

Ответы38102

387 18 июля, 10:01 387 1438102

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

Ответы38112

388 18 июля, 10:06 388 1438103

>>1437867
>самая бесполезная ебень.
без нее обосрешься на первом же многопоточном приложении.

389 18 июля, 10:51 389 1438112

>>1438102
на собеседовании расскажешь, мне нахера отвечать ))

390 18 июля, 11:54 390 1438129

>>1437822
На какую позицию? Сеньера могут что угодно спросить, даже - умеешь ли ты танцевать
>>1437817
Comunity - обрезанная в этом плане, Professional поддерживает то, что тебе нужно

Ответы38139

391 18 июля, 11:57 391 1438131

>>1437817
Не, в community тоже должно работать. Пишут, что доступно с Visual Studio 2017 Update 8. Рекомендую чекнуть версию студии.

392 18 июля, 11:59 392 1438133

>>1437867
Тогда рановато тебе на собес.

Ответы3813938230

393 18 июля, 12:32 393 1438139

>>1438093
Есть все, но эти последние 40 страниц трудно дочитывать.
>>1438129
На джуна.
>>1438133
Да, мне еще js надо повторить.

Ответы38301

394 18 июля, 14:54 394 1438212

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

Ответы38219

395 18 июля, 15:01 395 1438219

>>1438212
например?

Ответы38265

396 18 июля, 15:12 396 1438230

>>1438133
А когда будет не рано? Я уже всего Рихтера прочитал, написал свой сайт на Asp.net MVC, написал бота для дискорда.
Мне фактически ток js осталось выучить.

Ответы38231

397 18 июля, 15:13 397 1438231

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

Ответы38232

398 18 июля, 15:14 398 1438232

>>1438231
>многопотоки в их числе
А например?
Кстати, поясните, для чего нужен Spinwait?

Ответы3824438293

399 18 июля, 15:25 399 1438244

>>1438232
например value/reference types, исключения и try/catch/finally блоки. хз, дохуя всего: наследование, конструкторы, дженерики, конструкторы/деструкторы, IDisposable
>System.Threading.SpinWait is a lightweight synchronization type that you can use in low-level scenarios to avoid the expensive context switches and kernel transitions that are required for kernel events
я хз, погуглить попробуй

Ответы382453824938310

400 18 июля, 15:26 400 1438245

>>1438244
>например value/reference types, исключения и try/catch/finally блоки. хз, дохуя всего: наследование, конструкторы, дженерики, конструкторы/деструкторы, IDisposable
Ну вроде не сложно, только с IDisposable у меня некоторые затруднения имеются.

Ответы38247

401 18 июля, 15:27 401 1438247

>>1438245
та оно все несложно если знать

402 18 июля, 15:29 402 1438249

>>1438244
Ты базовые понятия перечислил, как их можно не знать и не использовать, при этом делать свои пет-проекты?

Ответы38255

403 18 июля, 15:36 403 1438255

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

Ответы38263

404 18 июля, 15:41 404 1438263

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

Эти знания приходят с прочтением первой книги по C#.

Ответы38273

405 18 июля, 15:42 405 1438265

>>1438219
volatile и finzlize - на практике вообще неприменимы.
LinkedList - Зачем нужен, если есть arrayList?
Я юзаю геттеры и сеттеры, но в 90% случаев нужно либо get либо set. Но задаю и то и то, потому-что ТАК БЛЯДЬ НАДО!
Интерфейсы в реальности нужны только для 2 задач (лямбды ), для всего остального проще использовать анонимные классы. Они ещё и быстрее и пижже. Алсо вы в курсе что буквально 99,999999999% всех преподавателей вообще не понимают для чего они нужны? В большинстве случаев приводится описание либо некорректное, либо анонимной функции.
Я знаю хренову тучу алгоритмов сортировки. Могу рассказать какой лучше для чего. На практике за 10 лет применял знания только на собеседованиях. Обычно сортировка это "ORDER BY NAME" в SQL.
SOLID принципы - это блядь все знают и все на них просто надрачивают было 0 раз чтобы после захода в bitBucket хоть один из принципов хоть кто-то применял (Даже у люкссофта их нет), но на собеседованиях спрашивают каждый раз. Буква L - это вообще жопоболь. У вас будет 10 программистов в команде, и будет 10 определений. 100 программистов - 100 определений.

Ответы38272382733846838966390973918139330

406 18 июля, 15:48 406 1438272

>>1438265
Нормализации баз данных придумали мудаки для мудаков. На деле нормальность выше третьего уровня выебет тебя самым изощрённым способом, когда твоя база достигнет 300 миллионов записей.

407 18 июля, 15:50 407 1438273

>>1438263
ну так возвращаясь к твоему же вопросу - часто ты это юзаешь эти знания в пет-проектах?

>>1438265
>LinkedList - Зачем нужен, если есть arrayList
>но в 90% случаев нужно либо get либо set
>Интерфейсы в реальности нужны только для 2 задач
проиграл с твоих 10ти лет опыта
>Даже у люкссофта
лол, в помойке что-то не соблюдают, охуеть новости

Ответы38277

408 18 июля, 15:57 408 1438277

>>1438273
Заметь спиздануть ты спизданул, а примеры привести не привёл.
Назови где ты применял интерфейсы в РАБОТАЮЩЕЙ программе и когда это была не лямбды и не callback?
>LinkedList - Зачем нужен, если есть arrayList
Ну так зачем? На практике ты его где применял?
>в помойке что-то не соблюдают, охуеть новости
Топ контора аутсорс прогеров. Уж там должны знать как код писать, ну или менеджить.

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

Ответы3828538298

409 18 июля, 16:08 409 1438285

>>1438277
Этот из Гуртан прав в сообществе программистов сложились какие-то странные традиции. И не дай бог ты где-то скажешь что определённая функция - говно ебаное, сразу поднимутся споры, срачи в которых чаще всего ты же и станешь крайним про которого будут думать "просто дебил не умеет в программирование". Хотя вон в JS треде дебилы уже foobar не могут написать без применения фрэймворков, при этом ЧСВ как у Билла Гейтса только потому-что он не говорит что чего-то не знает.

410 18 июля, 16:24 410 1438293

>>1438232
Когда тебе нужно получить доступ к заблокированному ресурсу и ты УВЕРЕН что ресурс очень быстро освободится. В таком случае спинвэйт будет самым легким в плане ресурсов способом. Но обычно используют *Slim, они сначала крутят некоторое время спинвэйт и если ресурс не освободился переходят в ожидание на уровень ядра.

411 18 июля, 16:28 411 1438298

>>1438277
>Назови где ты применял интерфейсы в РАБОТАЮЩЕЙ программе
я теперь уже сомневаюсь, что мы об одних и тех же интерфейсах говорим. почти для всего нового функционала выделял интерфейсы и внедрял зависимости через них, а не ссылками на реализацию, хз какие тут примеры приводить
>На практике ты его где применял?
я не скажу, что применение LL в моем случае было так обоснованно, но пхал там, где была важна строгая последовательность элементов с отстутствием накладных расходов на ре-аллокацию памяти под новый массив и копирования данных со старого. ArrayList не применял вообще ни разу в своей жизни
>Топ контора аутсорс прогеров
топ она только в рейтинге по количеству сотрудников и, может быть, по уровню зарплат (что спорно). ходил на собесы два раза, абсолютно таких же помойных валер я встречал и в местной ОАО Рога И Копыта. и вместо проекта был стандартный аутсорсный легаси на 10+ лет. конечно, можно подумать, что именно мне так повезло, но в конторах попроще я в среднем встречал проекты/собеседующих на порядок адекватнее
>Я не боюсь сказать что эта хуйня - хуяня
>будешь себе яйца выкручивать, но пытаться доказать что это зачем-то нужно
лол. я тебе что-то пытаюсь доказать?

Ответы38312

412 18 июля, 16:36 412 1438301

>>1438139
На джуна мьютексы и семафоры?
>Да, мне еще js надо повторить.
Это где такие джуны нужны? 100% бади шоп, будешь хуярить за 400 баксов, а работодатель с тебя будет 3к получать

Ответы38327

413 18 июля, 17:00 413 1438310

>>1438244
можно завалить абсолютно людей хуйней, если ставить такую цель. Есть целая пачка вопросов, которые нужно выдрочить, если тебя будут валить. Более задроченные придумают свои, которые выстреливают раз в 10 000 лет

414 18 июля, 17:03 414 1438312

>>1438298
>топ она только в рейтинге по количеству сотрудников и, может быть, по уровню зарплат
Ты знаешь другую контору которая делает на аутсорс проги уровня "Вот тз на 1200 страниц, и потом нам нужна поддержка года на 3"? Я вот знаю в силу опыта. Но даже я не могу сходу назвать больше 2 контор на всю!
И да,я полагаю что в такой конторе есть лиды которые следят за кодом. Если там нет - что в остальных творится - ужас тихий.

Ответы38655

415 18 июля, 17:21 415 1438327

>>1438301
>На джуна мьютексы и семафоры?
Я еще даже не джун, но вот сейчас пишу обычные крестики нолики по сети и уже понадобился семафор.

Ответы3834938357

416 18 июля, 17:44 416 1438349

>>1438327
Что-то неправильно пишешь значит. Максимум lock (по сути mutex) понадобится может и то сомнваюсь

Ответы3835438400

417 18 июля, 17:50 417 1438354

>>1438349
У меня все на асинхронности, поэтому никаких локов. А у семафора есть WaitAsync вместе с максимальным количеством потоков = 1, дает нужный эффект.

418 18 июля, 17:58 418 1438357

>>1438327
На C# крестики нолики? Этот мир сошел с ума

Ответы38367

419 18 июля, 18:13 419 1438367

>>1438357
В чем проблема? Надо же на чем то практиковаться.

420 18 июля, 19:15 420 1438400

>>1438349
Но Lock - это же не мьютекс, а монитор.

421 18 июля, 20:52 421 1438468

>>1438265
>Интерфейсы в реальности нужны только для 2 задач (лямбды ), для всего остального проще использовать анонимные классы.
Я что-то не понимаю, какое отношение интерфейсы имеют к лямбдам или анонимным классам? Интерфейсы они ведь про наследование, полиморфизм, абстрагирование и т.д.

Ответы38939

57 Кб, 695x658
422 18 июля, 21:27 422 1438488

Антоны, почему Рихтеру не нравится такой код?

Ответы38517

423 18 июля, 22:21 423 1438517

>>1438488
Потому что не стоит делать lock(this) и тот код это демонстрирует.

Ответы38586

424 18 июля, 22:43 424 1438534

Насколько гайд на метаните по MVC5 актуален? Я про бекенд-фишки типа авторизации, введения в энтитифрейморк итд.
И что вообще нужно знать при устройстве джуном на мвс5

425 19 июля, 01:13 425 1438586

>>1438517
А почему не стоит? Все же выполняется.

Ответы386273865538666

426 19 июля, 07:10 426 1438627

>>1438586
Откуда ты этот код взял? Там что, нет никаких объяснений? Тогда прочти это https://www.google.com/url?sa=t&source=web&rct=j&url=https://stackoverflow.com/questions/251391/why-is-lockthis-bad&ved=2ahUKEwjQnruAjsDjAhXhlYsKHUp6ASYQFjABegQIBxAB&usg=AOvVaw0RMjv6CCPHWR8h_Ddxaph4

427 19 июля, 09:16 427 1438655

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

>>1438312
чисто теоретически таким может заниматься абсолютно любая контора. я в подобных проектах не бывал и утверждать ничего не могу. с другой стороны к Hui Pizda Inc. не придут с серьезным контрактом тоже, очевидно.
а лиды и девы, следящие за кодом, есть во всех конторах, это утверждать я могу точно. в некоторых они на вес золота и обласканные заботой, другие конторы заявляют подобное только на бумаге, в некоторых их наличие ставится за must have (к подобной Люкс я не отношу только из-за своего опыта собеседований там (и, отчасти, из-за отзыва других работавших там людей)). хотя, естественно, на ту хуеву тучу народу, что там работает, приходится большая такая группа высококлассных спецов

428 19 июля, 09:45 428 1438666

>>1438586
Сборщик мусора может удалить этот объект и твои потоки получат дедлок

Ответы38680

429 19 июля, 10:14 429 1438680

>>1438666
залоченный объект разве не является рутом?

Ответы38686

430 19 июля, 10:16 430 1438682

В С# нет стандартных классов для работы с socks протоколами. Какие сторонние пакеты лучше использовать в этом случае?

431 19 июля, 10:27 431 1438686

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

432 19 июля, 12:05 432 1438703

Ребят, как в asp.net core можно вытащить токен, который приходит при авторизации, через jwt собственно

Ответы38709

433 19 июля, 12:05 433 1438704

Почему выстреливает 40 ошибка при конекте к MS Sql с VS через ADO.NET? Sql server работает, захожу и через SQL Management studio и через VS в обозревателе серверов.

Ответы38709

434 19 июля, 12:33 434 1438709

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

>>1438704
Allow remote connections посмотри как тут: https://www.c-sharpcorner.com/article/resolve-error-40-could-not-open-a-connection-to-sql-server/

Ответы38713

435 19 июля, 13:11 435 1438713

>>1438709
спасибо
По сравнению с Sqlite MS Sql это машина ошибок и исключений, шаг в лево, шаг в право - ERROR

Ответы38717

436 19 июля, 13:20 436 1438717

>>1438713
а по-моему однохуйственная херня
оставлять конфигурацию ms sql по дефолту на практиен - то же самое, что открыть соединение с db.sqlite3

437 19 июля, 13:53 437 1438735

поясните ньюфагу, чем заниматься те 40 минут пока собирается мой аспдатнет проект?

Ответы3875338772

438 19 июля, 14:18 438 1438753

>>1438735
учить Azure. потом при очередном билде будешь деплоить конфигурацию в облако 40 минут и смотреть на происходящее синхронно в двух окнах

439 19 июля, 14:39 439 1438772

>>1438735
при каждой правке делать ребилд на 40 минут? Я в своих пет проджектах делаю по 5 правок в минуту, это мне понадобиться на 5 правок 3 часа?

Ответы38963

440 19 июля, 17:00 440 1438939

>>1438468
>Интерфейсы они ведь про наследование, полиморфизм, абстрагирование и т.д.
Тоесть ООП без интерфейсов невозможно?
Тааааак. Мы вам перезвоним.

Ответы39097

441 19 июля, 17:23 441 1438963

>>1438772
секрет успеха 300кпнс фспдатнет сеньера
я просто после каждой правки...
читать продолжение в источнике

442 19 июля, 17:25 442 1438966

>>1438265
Я впринципе понимаю из SOLID только пару принципов, остальное настолько странно сформулировано во всех источниках, что я даже с 10 прочтения не могу понять. Хотя формальные признаки я могу выполнять, но сама суть от меня скрывается. Прямо какая-то заоблачная магия.

Ответы38986

443 19 июля, 17:41 443 1438986

>>1438966
Это читал? https://habr.com/ru/post/348286/

Что непонятно? Про Лисков хороший пример с нарушением.

Ответы38990

444 19 июля, 17:49 444 1438990

>>1438986
Лисков сложен.
>Функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа, не зная об этом.
Какие могут быть подтипы у базового типа? Я не понимаю.
Ну хорошо, я тупой, и хочу разобраться. Что имеется ввиду под определением тип? Разьве тип это не int, bool, string? Тогда что это?
>Классический пример нарушения. Есть базовый класс Stack, реализующий следующий интерфейс: length, push, pop. И есть потомок DoubleStack, который дублирует добавляемые элементы. Естественно, класс DoubleStack нельзя использовать вместо Stack.
Эммм, это нарушение. А пример не нарушения будет?
>У этого принципа есть забавное следствие: Объекты, моделирующие сущности, не обязаны реализовывать отношения этих сущностей. Например, у нас есть целые и вещественные числа, причем целые числа — подмножество вещественных. Однако, double состоит из двух int: мантисы и экспоненты. Если бы int наследовал от double, то получилась бы забавная картина: родитель содержит 2-х своих детей.
double состоит из двух int... ЧЕГООООБЛЯДЬ?
>В качестве второго примера можно привести Generics. Допустим, есть базовый класс Shape и его потомки Circle и Rectangle. И есть некая функция Foo(List<Shape> list). Мы считаем, что List<Circle> можно привести к List<Shape>.
С чего мы так считаем то? Где логика?
>Однако, это не так. Допустим, это приведение возможно, но тогда в list можно добавить любую фигуру, например rectangle. А изначально list должен содержать только объекты класса Circle.
Эм... А причём тут Liskov Substitution Principle?

Опять же опыт позволяет мне это принцип соблюдать на уровне нативности. Но сформировать основные тезисы как я его соблюдаю и какие параметры надо соблюдать - я вообще не могу. Да и определения с примерами довольно загадочны.

Ответы3901639023

445 19 июля, 18:40 445 1439016

>>1438990
>double состоит из двух int... ЧЕГООООБЛЯДЬ?
Именно так. Изучай представление вещественных чисел, они даже в специальных стандартах описаны. Мантиса, экспонента и знак ещё.

Ответы39181

446 19 июля, 18:44 446 1439023

>>1438990
>Эммм, это нарушение. А пример не нарушения будет?
Что такое double stack?
Есть Deque. Он расширяет Стек, просто добавляются методы для чтения и записи слева. Все правые методы остаются прежними.

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

447 19 июля, 20:28 447 1439097

>>1438939
Читать научись, блядь. Я просто сказал, что интерфейсы связаны с этими вещами (ну как я это понимаю), это не значит что без них ООП невозможно. Лучше б ты объяснил что за хуйню имел ввиду >>1438265 со своими двумя задачами. Как и для чего использовать анонимные классы вместо интерфейсов и каким хуем интерфейсы используются вместе с лямбдами. Я вообще не понимаю что он имел ввиду.

Ответы39267

448 19 июля, 23:23 448 1439181

>>1439016
Стандарт называется IEEE754, покажешь где там написано что double
то два int? Конечно, в компе вся инфа из нулей и единиц и размер дабла равен двум размерам int32, но утверждать, что дабл состоит из двух интов это тупость. Тогда флоат это инт32 и вообще любой тип это n интов.

>>1438265
LSP самый простой (не в смысле следования, а в понимании), т.к. у него есть четкое формальное описание
> если для каждого объекта o1 типа S существует объект o2 типа T, такой, что для любой программы P, определенной в терминах T, поведение P не изменяется при замене o1 на o2, то S является подтипом T.
И берешь и смотришь подходит твоя иерархия под это или нет.

Ответы39268

449 20 июля, 04:47 449 1439267

>>1439097
Тебя просят для рассказать для чего нужны интерфейсы и какие задачи ими решаются НА ПРАКТИКЕ, а ты приводишь три слова из ООП. Ну анон, это ТЫ должен научиться читать.

Ответы39330

450 20 июля, 04:52 450 1439268

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

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

Ответы392923930639367

451 20 июля, 09:48 451 1439292

>>1439268
уровень объяснения: БОГ

103 Кб, 1600x900
452 20 июля, 10:38 452 1439306

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

453 20 июля, 12:11 453 1439330

>>1439267
Меня вообще-то никто ничего не просил. Я изначально спросил, что это за задачи, про которые пишет >>1438265, а ты мне уже 2 поста втираешь что я нихуя не знаю. Ну естественно я нихуя не знаю, у меня опыта работы вообще нет, поэтому я и спрашиваю. Нахуй мне твое злорадное "мы вам перезвоним"?

Ответы39357

454 20 июля, 13:36 454 1439357

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

Ответы39369

455 20 июля, 13:57 455 1439367

>>1439268
Хуита, ты не передал соль, о том что дочка не должна накладывать больших ограничений на пользование хатой, чем маман. Тогда как вариант есть тян, которая принимает в попчанский засунуть фалическиеобъекты. Есть Ероха, у котрого обычный член - он не нарушает LSP, а есть пёс Бобик, у которого после траха узел застревает в тянке - она на такое не расчитываля, значит Бобик нарушает LSP. Но все равно аналогия говно, поэтому я и написал про четкое формальное определение.

Ответы39777

456 20 июля, 14:04 456 1439369

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

Ответы39775

50 Кб, 885x423
457 20 июля, 15:24 457 1439425

Аноны, надеюсь, здесь есть гуру WPF с MVVM.

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

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

Попробовал реализовать INotifyPropertyChanged в классе-модели(пикрелейтед) - нихера, текстбокс не обновляется.

В общем, как апдейтить содержимое текстбоксов, привязанных к геттерам?

Ответы394493945239464

458 20 июля, 15:57 458 1439449

>>1439425
Я не профи, но можно попробовать вместо листа сделать ObservableCollection<string> _parameterList
Потом привязать к её изменению обновление строки в методе RefreshList, который сам напишешь. Наверное, там придётся просто новую строку делать, и вьюха сама обновится:
_parameterList.CollectionChanged += (s, e) => RefreshString()

А может, и не придётся, и строка сама додумается обновиться, так как коллекция observable. Блять, как идти на собеседование с моими знаниями

Ответы3950239666

459 20 июля, 15:59 459 1439452

>>1439425
> RefreshList
> RefreshString
Перепутал названия, это одно и то же, там ты обновляешь свою aggregated строку

Ответы39666

460 20 июля, 16:14 460 1439464

>>1439425
Чтобы AggregatedParameterString обновлялось, нужно для него вручную файрить событие PropertyChanged после изменения коллекции _parameterList. WPF не детектит что у тебя там геттер теперь что-то другое возвращать будет, тебе надо самому указать, что значение свойства изменилось.

Ответы3948539666

461 20 июля, 16:30 461 1439485

>>1439464
> файрить
А как это? OnPropertyChanged(Aggregated...) на изменение _parameterList?

Просто сам задавал вопрос на SO, но, так как я использовал Fody для генерации INotifyPropertyChanged, меня послали прописывать все ручками и я удалил вопрос спустя пару недель
анон выше

Ответы39502

462 20 июля, 16:46 462 1439502

>>1439485
С примера выше:
>_parameterList.Add(parameter);
После этой строчки добавляешь
>OnPropertyChanged(AggregatedParameterString);
Тоже самое делаешь при удалении или изменении элементов коллекции. Можешь сделать как >>1439449 предлагает, тогда можно будет файрить событие только в одном месте, без повторений.
To fire event означает вызвать, запустить или триггерить событие.

Ответы39507

463 20 июля, 16:50 463 1439507

>>1439502
Спасибо, анон, дошло, что мне на SO объясняли
небольшая путаница — анон, который задал первоначальное вопрос, пока не ответил, его пост в единственном числе

464 20 июля, 17:26 464 1439535

>>1429504 (OP)
Поясните за ConfigureAwait(false)
Вот у меня обычный asp.net core api контроллер, из него дёргаю базу.
var stuff = await _repostitory.GetStuff()
return stuff;

мне чё надо всё время писать _repostitory.GetStuff().ConfigureAwait(false) чтобы рабочий поток webServer'а не блокировать?
Короче объясните чё эта за хуйня ConfigureAwait. Прочитал кучу статей так и не понял когда её юзать надо.

Ответы3956239587

465 20 июля, 18:03 465 1439562

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

Ответы39597

466 20 июля, 18:31 466 1439587

>>1439535
В асп нете, если не додаш херотень, то после того как закончиться колл до дб, то оно пристроет к новому потоку дание о о локали и еще какието статичние дание к реквесту. Если напишеш ConfigureAwait(false) то нихера не додается.

Ответы39597

467 20 июля, 18:47 467 1439597

>>1439562
>>1439587
Ага. те это не актуально для .net core, потому что там один запрос может несколькими потоками нормально обрабатываться, а в старом ASP.NET один поток на запрос и если потерять изначальный поток, то всё сломается.
Я правильно понимаю?

Ответы39603

468 20 июля, 19:00 468 1439603

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

469 20 июля, 21:50 469 1439666

>>1439464
>>1439452
>>1439449
Всё, сделол, спасибо за пояснения.

470 21 июля, 00:37 470 1439712

Есть огромное приложение с кучей плагинов которое в котором есть ошибка. Суть в том что при его работе в случайный момент времени где-то что-то передается неправильно и оно начинает потреблять все ресурсы ЦП (оно многопоточно и поэтому действительно под 100% нагрузка) и начинает жрать оперативку. Как отловить подобный баг если прикрепить дебаггер невозможно так как при попытки это сделать приложение тупо падает, а во время дебаг сессии даже за пару часов использования баг не возникает и вообще он настолько рандомный что может раз в десятки часов возникать.
Воспроизвести баг намеренно тоже не удается, так как не ясно из-за чего он возникает.
Как подобные косяки решать?

Ответы39732

471 21 июля, 02:07 471 1439732

>>1439712
Подробно в лог пиши всё, что делаешь.

472 21 июля, 07:33 472 1439775

>>1439369
>Юнит тесты,
Эмм а причём тут интерфейсы?
>DI, сотни fcl классов, которые работают с интерфейсами.
ОПодробнее.
> Я вобще не представляю как можно писать поддержиаваемое приложение даже средних размеров без использования интерфейсов.
Значит ты плохой программист.
>Ну и плюс в нормальной тиме тебя пошлют нахуй если коллегам придется работать с твоими реализациями, а не интерфейсами.
Нормальная - это ИП Ебанько? Потому-что я как-то работаю (Англия если что) и ничкто мне и слова не сказал. Может это у тебя что-то не так с конторой?

Ответы39827

473 21 июля, 07:36 473 1439777

>>1439367
>дочка не должна накладывать больших ограничений на пользование хатой, чем маман.
Это само собой разумеется. Как ты вообще это представляешь?
>Тогда как вариант есть тян, которая принимает в попчанский засунуть фалическиеобъекты.
Это уже не ограничения мамки, это ограничения тни.
>а есть пёс Бобик, у которого после траха узел застревает в тянке - она на такое не расчитываля
Сорян, я не понимаю JavaScripy аналогий.

Ответы39827

474 21 июля, 11:43 474 1439827

>>1439775
>Эмм а причём тут интерфейсы?
Моки, стабы хуябы, когда у тебя всё на интерфейсах отвязать от окружения тетстируемый класс как два пальца. Точнее его даже отвязывать не надо, так как он не привязан.
>ОПодробнее
Эм, что именно подробнее?
>Значит ты плохой программист.
кек, значит все плохие программисты, кроме тебя, конечно.
>Потому-что я как-то работаю
Вот именно, что как-то.
>>1439777
>Это само собой разумеется. Как ты вообще это представляешь?
Ты просишь маман открыть форточку и она открывает ей,ты просишь дочу открыть форточку, а она говорит, что она короткая ей не достать.>>1439777
>Это уже не ограничения мамки, это ограничения тни.
Эм, в моей аналогии вообще мамки нет.

Ответы3982939833

475 21 июля, 11:49 475 1439829

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

Ответы39937

476 21 июля, 12:00 476 1439833

>>1439827
>Моки, стабы хуябы, когда у тебя всё на интерфейсах отвязать от окружения тетстируемый класс как два пальца. Точнее его даже отвязывать не надо, так как он не привязан.
Ну ты не умеешь тестировать, я понял.
>Эм, что именно подробнее?
Почему они работают у тебя ТОЛЬКО с интерфейсами работают?
>кек, значит все плохие программисты, кроме тебя, конечно.
В этом был твой тезис, но ты несколько постов никаких фактов не приводишь.
>Вот именно, что как-то.
А вот и зависть. Ещё раз Я использую интерфейсы там где они нужны. А если ты просто выучил 1 интерфейс и теперь запихиваешь его всюду.

Ответы39937

477 21 июля, 12:00 477 1439834

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

Ответы39836

43 Кб, 500x268
478 21 июля, 12:04 478 1439836

>>1439834
>DI без них не работает

Ответы39841

479 21 июля, 12:08 479 1439841

>>1439836
Ох лол, какой-нибудь Ninject позволит тебе сделать все только через интерфейсы, как ты через классы будешь реализовывать?

Ответы39859

480 21 июля, 12:20 480 1439859

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

Ответы39874

481 21 июля, 12:23 481 1439874

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

482 21 июля, 12:44 482 1439916

Подскажите пож, зачем нужен Reflection в c#, кто то где то его применяет вообще? Зачем я буду менять через это говно отражение приватное поле, зачем мне смотреть поля, атрибуты? кто то объясните, пожалуйста, реальное приминение Reflection, используете ли вы его в повседневной жизни?

Ответы399193996840714

483 21 июля, 12:47 483 1439919

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

Ответы39968

484 21 июля, 13:11 484 1439937

>>1439829
Проблема в нарушении LSP>>1439833
>Почему они работают у тебя ТОЛЬКО с интерфейсами работают?
Где я сказал, что только? Ты сказал, что кроме лямб (лол) и коллбеков интерфейсы негде использовать, я тебе показал, где еще.
>В этом был твой тезис
Покажи.
>А если ты просто выучил 1 интерфейс и теперь запихиваешь его всюду.
Какой? Или ты под интерфейсом понимаешь, что-то особенное а не тип?

485 21 июля, 14:38 485 1439968

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

>>1439919
Для кодогенерации к примеру.
В одной программе я использую атрибуты для генерации меню, когда у меня есть класс с настройками на основе которого и генерируется меню. Так вот это позволяет добавлять описание свойствам класса, добавлять индексы и делать иерархию и т.д.

Ответы39980

486 21 июля, 15:03 486 1439980

>>1439968
>у меня есть класс с настройками на основе которого и генерируется меню.
Я помню делал такое на делфях в 2004. Считывал файл, на основании его делал менюшки. Только кодогенерации небыло. Было что-то есть в файле пункт "1" вот его покажи.
А ты что накрутил? Хотелось бы понять как ты развил это всё. Прям интересно.

61 Кб, 958x550
487 21 июля, 16:38 487 1440020

Раньше на сайт нельзя было зайти от ASP.NET?
Что значит предназначено для Windows?
Или урезан функционал какой-то? Я просто не представляю себе, как это, сайт на каком-то устройстве не работает.

Ответы4002240035

488 21 июля, 16:39 488 1440022

>>1440020
>Раньше на сайт нельзя было зайти от ASP.NET?
Я имею в виду с мака или линукса.

489 21 июля, 16:48 489 1440035

>>1440020
Это значит, что сервер может работать только под виндой. Юзеры смогут с любых девайсов заходить, но сам сайт может быть размещен только на Windows сервере.

Ответы40041

490 21 июля, 16:52 490 1440041

>>1440035
Спасибо

Ответы40043

64 Кб, 982x627
491 21 июля, 16:53 491 1440043

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

492 21 июля, 18:12 492 1440083

Поясните за Redis, что это за хуйня, в чем преимущество перед MS SQL?

493 21 июля, 20:05 493 1440136

8 Кб, 436x19964 Кб, 819x412

Сап сярписты. Хочу спарсить инфу с динамически прогружаемой страницы эмулируя ajax-запросы Апи не предоставляет всю нужную инфу.
Делаю гет запрос, достаю куки и с этими куками отправляю пост. Токен иногда меняется, но это уже другой разговор, пока только копирую с хедеров. А что делать с этим cid? откуда его брать? если ставить рандом число то респонс с csrf ошибкой. Реально ли вообще провернуть такое или это защита от парсинга?

Ссыль на сайт: https://www.deezer.com/artist/13
Код: https://pastebin.com/dZgdRcWN

Ответы4014740193

494 21 июля, 20:24 494 1440147

>>1440136
Новый cid или возвращают в ответе на запрос, или он получается каким-то другим запросом (поработай напрямую с сайтом запустив снифер и посмотри какие там запросы отправляются/получаются), или он обновляется по какому-то алгоритму который запрятан в коде и его надо найти.

Ответы4018340493

495 21 июля, 21:40 495 1440183

>>1440147
Нашел такую строку в жиесах:

s=new URL("https://".concat(l.a.get("host_website_ssl"),"/ajax/gw-light.php")),u={api_token:encodeURIComponent(d.a.getState().user.checkForm),api_version:"1.0",cid:Math.floor(1e9*Math.random()),input:3,method:t};Object.entries(u).forEach(function(e){var t=i()(e,2),n=t[0],r=t[1];

Значит по идее значение должно быть рандомным. А что тогда по поводу csrf ошибки? Немного почитал про csrf-токены, их юзают для защиты от POST - запросов не с формы на сайте. Получается инфу никак не достать? Просто не хотелось бы костылить все это дело через селениум.

Ответы40196

138 Кб, 1917x586
496 21 июля, 21:51 496 1440187

Может кто подсказать, как фавикон заменить? Чё-то уже всё перепробывал, даже если полный путь указываю, не меняется.

Ответы40194

497 21 июля, 22:08 497 1440193

>>1440136
Заходишь на сайт.
Жмёшь F12.
Переходишь на вкладку Networking
Отмечаешь опцию Preserve log
Делаешь нужные действия, анализируешь заголовки запросов и их параметры
Повторяешь всё программно

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

Ответы40202

498 21 июля, 22:10 498 1440194

>>1440187
Может я всё-таки ico не туда закидываю. Хотя много где перемещал, но всё равно без результатно. Например в папку wwwroot

499 21 июля, 22:21 499 1440196

>>1440183
Во первых это сообщение от ошибки бекэнда и оно может отдаваться на что угодно, его могут специально сделать таким чтобы запутывать. csrf-токены применяют для защиты от xss атак там немного другое. Суть в том что скрипт получает этот токен перед каждым запросом, или генерирует его. Ты точно также можешь это сделать, нужно только понять как. Но это нужно погружаться глубже. Моя единственная идея это снифать трафик и разбирать заголовки. Ну или headless браузер который дваскрипт может выполнять. PhantomJS или что-то типа того. Может как-то через WebView открывать и парсить оттуда.

Ответы4020240493

500 21 июля, 22:56 500 1440202

>>1440193
>Заходишь на сайт.
>Жмёшь F12.
>Переходишь на вкладку Networking
>Отмечаешь опцию Preserve log
>Делаешь нужные действия, анализируешь заголовки запросов и их параметры
>Повторяешь всё программно

Ну так я это и делал. Получение токена через апишку потом запилю, там проблем по идее нету. cid как я понял рандомно генерится. А вот этот csrf токен ни в куках, ни в хедерах я не нашел. Если же он хранится в сессии, как он присваивается если я в браузере листаю без авторизации?

>>1440196
Буду делать через Selenium + PhantomJS, пошло оно все...

Ответы40209

501 21 июля, 23:26 501 1440209

>>1440202
Убираешь любой символ из api-token - получаешь ошибку invalid CSRF token. Значит проблема в том, что ты не правильный api-token вписываешь.

Ответы4022940493

502 22 июля, 00:21 502 1440229

>>1440209
Так и есть скорее всего

api_token:encodeURIComponent(d.a.getState().user.checkForm)

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

Ответы40280

503 22 июля, 07:00 503 1440280

>>1440229
На самом деле он получается из ответа на запрос
https://www.deezer.com/ajax/gw-light.php?method=deezer.getUserData&input=3&api_version=1.0&api_token=

В ответном json объекте есть поле checkForm, значение которого и является этим api_token.

Ответы40493

504 22 июля, 07:18 504 1440283

Где лучше всего почитать про юнит-тесты на шарпе, и главное- что именно и как тестировать?

505 22 июля, 10:49 505 1440310

Прочел тут давеча статейку про вопросы собеседования на дотнет-джуна и как-то охуел.

https://habr.com/ru/post/338102/

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

Ответы40317

506 22 июля, 11:44 506 1440317

>>1440310
дно давно пробито, на собесе джуна могут спросить такое, что ты просто охуеешь. Побитовые операции сдвига, алгоритмы, код IL Dasm методов, рефлексия и т.д.
Да, еще же нужно на JS писать и знать хотя бы 1 фреймворк, совсем забыл

Ответы4039840400

507 22 июля, 12:05 507 1440331

>>1429504 (OP)
Перекат
https://2ch.hk/pr/res/1440329.html (М)

Ответы4034646034

508 22 июля, 12:57 508 1440346

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

Ответы40422

509 22 июля, 16:01 509 1440398

>>1440317
Сириусли? Кроме SQL задачек ответил на большинство вопросов из поста по ссылке. Но то, что ты говоришь, это совсем перемога. Битовые операции я смогу, даже регистры сдвига расскажу, так как на инженегра учился, но мне бы методичку при этом разглядывать

510 22 июля, 16:02 510 1440400

>>1440317
И, да, js. Заметил, что он в большинстве вакансий даже на джуна. Раздражает изрядно

511 22 июля, 16:22 511 1440422

>>1440346
Тащемта я в легаси с головой и так.

512 22 июля, 17:41 512 1440493

103 Кб, 830x77526 Кб, 624x685

>>1440280
>>1440209
>>1440196
>>1440147
Спасибо вам всем огромное, аноны, получилось!

513 22 июля, 22:45 513 1440714

>>1439916
Использовал для кастомного маппера данных (как Generic- метод) из PostgreSQL в объект C# без привлечения Dapper или EF

1 Кб, 250x81
514 30 июля, 19:22 514 1445075

ВААААААААААААААААААААИИИИИИИИИИИИИИИИИ

Ответы45962

791 Кб, 684x733
515 30 июля, 19:37 515 1445086

Ответы4509845962

516 30 июля, 19:50 516 1445098

>>1445086
интересно много ли еще таких лингвистических "спаек" в CLR и каком-нибудь кровавом энтерпрайзе?

15 Кб, 281x181
517 30 июля, 20:25 517 1445115

Вот зачем составителям стандарта создавать такую эстакаду в центре брока?

182 Кб, 387x290
518 31 июля, 03:12 518 1445295

Т.е. с одной стороны - в шарпе - грубо говоря virtual и override это взаимоисключающие токены. С другой стороны эти два термина, взятые из двух соседних тесно связанных "словарей" (IL и
C#) обозначают одно и то же свойство процедуры. Или я наебал сам себя в очередной раз?

Ответы45296

519 31 июля, 03:13 519 1445296

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

520 31 июля, 12:37 520 1445373

У меня есть две строки, в каждой из которых текст с ртф. Как мне объединить эти две строки в одну, чтобы для каждой сохранилось форматирование?

521 31 июля, 21:56 521 1445643

сап. Обьясните что такое возвратные и не возвратные. Что значит возвратить значение?
Помогите у меня жопа горит со своей тупости все понимаю кроме этого

Ответы46034

522 1 авг, 14:43 522 1445962

>>1445075
>>1445086
Что это значит то?

Ответы46128

523 1 авг, 16:34 523 1446034

>>1440331
>>1445643
ПЕРЕКАТЫ АЛЛО!

524 1 авг, 19:45 524 1446128

>>1445962
метод обозначенный в C# как override при компиляции в IL обозначается как virtual.
Т.е. c языка C# на язык IL слово override переводится как virtual.
"virtual" и "new virtual" переводится как "newslot virtual".
При этом на языке C# слова "virtual" и "override" взаимоисключающие. как мокрый и сухой.
тебя это не смущает?

Ответы46623

525 2 авг, 14:52 525 1446623

>>1446128
Меня это не смущает только потому, что я ньюфаг и этого не знал. Спасибо тебе анон.

Тред утонул или удален.
Это копия, сохраненная 11 августа 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion