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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
12cf3ba1a46dd9272669a8289d6b11fbfileformat48-512.png16 Кб, 512x512
C#/Сишарп/.NET Тред - Шапка edition #17 /csharp/ CSharp 1586030 В конец треда | Веб
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.

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

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

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

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

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

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

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

7. Дополнительные инструменты для разработки на C#
LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
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/ru-ru/dotnet/csharp/whats-new/csharp-8

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

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

Прошлый тред тонет здесь: https://2ch.hk/pr/res/1555702.html (М) ( >>1555702 (OP) )
Архивач: https://arhivach.ng/thread/527520/
Архивач в TOR'e (доступен через TorBrowser): http://arhivachovtj2jrp.onion/thread/527520/
2 1586031
>>586030 (OP)
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 7.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином. Уже появилось издание для 8.0, однако в интернетах пока его нет.
- C# 7.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- Pro C# 7: With .NET and .NET Core (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
3 1586054
Таки вопрос: Что вы делали на своем первом рабочем месте в первый месяц? Сильно ли вас ебли, были ли дни когда не написали ни 1 строчки кода?
Что делать если прошел собес, взяли на работу а как пришла пора работать понимаешь что нихуя не знаешь?
4 1586091
>>586030 (OP)
шапка без аниму? Я сплю?
>>586054
устанавливал IDE, скролил двощь, создал 3 POCO, пофиксил 1 баг (супер легкий), читал книгу (имитировал чтение), пиздел с другими гребцами по моей прошлой работе, pet projecty. А ну да, еще я пил кофе и хавал.
Всо
5 1586095
Бамп
6 1586101
Традиционный шапка-говно пост
Традиционный пост хейтера метанита
Традиционный пост шизика
7 1586102
>>586091
И что, даже базу не дропнул?
8 1586106
>>586091
Так заебись, что без пидорасни анимушной
9 1586109
>>586101
Ну метанит рил гавно, подсмотреть там что то можно но как сайт для обучения полная хуйня
10 1586110
>>586102
нет конечно, я же не дебич. Когда то выкатили мой код не с REBASE, где я сделал правки 2 строк, а другой чувак перелопатил его. Не знаю, чем закончилось, но походу чувак тот после мерджа удалил ветку и снес проект. Пришлось дебику заново переписывать
>>586106
два чаю
11 1586111
>>586106

>C#


>без пидорасни анимушной


DivideByZeroException
12 1586118
Аноны.
Скажите, можно ли вкатиться в шарп на линукс? То есть юзать монодевелоп. Тррелсен нормально для этого или надо все же на винде тренироваться?
13 1586146
>>586118
уже давал ответ в прошлом треде, никак не угомонишься?
15799342307091.jpg89 Кб, 569x563
14 1586155
>>586146
Прошлый тред утонул. А ответ я не видел.
15 1586174
>>586155
у тебя в голове утонул? Я вообще удивлен, что ты смог дистрибутив установить. Небойсь убунту еще?

>1585903

16 1586175
17 1586182
>>586111
Гофер, ты?
18 1586347
Ебаны рот этого казино
На SO.ru пишут юзайте TPL вместо Thread, на хабре пишут Предпочитайте async/await вместо Task
Там же пример
public async Task<Data> GetDataAsync()
{
var result = await MyWebService.FetchDataAsync();
return new Data (result);
}

Ебаны рот тут и ТПЛ есть и авейт
ПИЗДА, нихуя не понятно
Был сначала Thread, потом добавили TPL, потом добавили async/await
async/await - это что? Это прибулада для TPL? Или это отдельная функция языка?
19 1586362
>>586347
Эвейты-хуейты. Создал по старинке Thread'ов столько, сколько нужно, и работаешь. Вся эта новомодная хуита всё равно в них превращается компилятором.
20 1586386
>>586362
Нет нет нет. Учит мать часть уродец.
Вообще есть 2 типа Task`ок(одни с тредом, другие без), крч гугли узнавай.
https://blog.stephencleary.com/2013/11/there-is-no-thread.html
21 1586401
>>586362
>>586386
Я хочу сделать многопоточный парсер, но для этого сначала нужно разобраться с потоками. Как я понял Авейт/эсинк это ожидания выполнения метода, пока не выполнит хуй куда пойдет.
Как мне просто к примеру запустить 100 раз один метод, в каких то случаях он выполнится в каких то нет, в каких то будет исключение.
Но мне не надо ждать выполнения этого метода, мне надо выполнять другие методы пока выполняютсе 100 раз тот метод.
22 1586459
>>586401
await это не ожидание выполнение метода, а передача процессорного времени основному потоку. Если тебе надо 100 раз один метод, то твой выбор это TPL.
24 1586561
>>586174
>>1585903
зачем рекомендуешь танненбаума, если мой вопрос был касаемо учебников и опыта разработки на Шарпах в ОС Линукс?
15802378576410.webm855 Кб, webm,
720x1280, 0:03
25 1586670
>>586561
что бы ты, уебище тупорылое, не задавал тупорылых вопросов, а занял себя чем ни будь
26 1586688
>>586670
че такой злой? день не удался?
27 1586719
Что означает такое использование стрелочек? Я просто посмотрел гайды в интернете по лямбда-функциям, там везде примеры где её присваивают делегату или используют в LINQ, а тут нихуя не понятно зачем это нужно.
28 1586728
Давно нетрогал шарп, там за последние годы было что-то новое?
Например в плане асинхронного программирования? Там асинк авейт может как-то улучшили?
29 1586731
>>586719
Ну, обычный геттер в данном случае. Чтобы не писать кучу раз a{get{return b;}}; b{get{return c*60;}}...
Ну и да, лямбда, по сути, любая анонимная функция, ты можешь прямо в коде например что-то такое сделать:
x = 10;
for(int i = 0; i< 100000; i++)
Task.Run(()=> Console.Writeline(Interlocked.Increment(ref x));
и ничему ее не присваивать, просто тебе нужно какую-то логику реализовать, а выносить ее в отдельную функцию не хочется из-за того что будет использоваться один раз в одном месте. Хороший пример это как раз конфигурирование хоста, ты же не будешь делать кучу методов по настройке, а просто запихнешь это дело в лямбды.
30 1586736
>>586728

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


Тебя там не было!
31 1586746
>>586731
А что не так с асинавэйтом? А так в 7ой и 8ой версиях один сплошной сахар много разных плюшек завезли
32 1586747
Господа, вкатившиеся, сколько примерно у вас проходило времени между тем как вы начали рассылать резюме и первым откликом?
33 1586759
>>586746

>А что не так с асинавэйтом?


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

И обмен данными был проблемой.

Может удобства какие завезли для многопоточных асинхронных приложений?
34 1586784
>>586688
потому, что /pr это не для идиотов не осиливших софт. Вы, вкатыши, при первой проблеме должны гуглить, а не бежать на 2ch/SOF и создавать тред. Или вы думаете вы прийдете на галеру и будете дергать за юбку ментора при каждой проблеме? Вас нахуй выгонят в первую неделю
35 1586799
>>586784

>/pr это не для идиотов не осиливших софт


ORLY? Тут кроме студентоты и ванаби нет никого.
15802378576410.webm855 Кб, webm,
720x1280, 0:03
36 1587002
>>586799

>ORLY? Тут кроме студентоты и ванаби нет никого.


И как же ты это определил, мне интересно? Судя по твоему логическому заключению ты не осиливший первый раздел дискретки. Это или за решетки только конченные дауны берутся, не умеющие гугл или правила базовой логики, или IT-боги пробивают дно?
37 1587009
>>587002

>ты не осиливший первый раздел дискретки


Как и ты.
Как и все вы, тащем-то.
38 1587076
>>587009
аргументируй? Я могу аргументировать свое высказывание - ты привел всех к общему знаменателю вкатышей, хотя если бы читал треды и знал, какие задачи решают вкатыши/студенты, какие джуны и какие мидлы - ты бы понял, что твое суждение не верное. Соответственно ты или дебил, не умеющий анализировать прочитанную информацию или сам вкатыш.
39 1587077
>>586030 (OP)
Какую структуру данных лучше выбрать, для хранения комментариев к картинкам?
Количество комментариев может изменяться,
поэтому самое простое что пришло на ум - это хранить список комментов в одельных файлах, по строкам.
Есть что-то лучшее, без базы данных?
40 1587087
>>587002

>И как же ты это определил


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

>не осиливший первый раздел дискретки


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

> конченные дауны


имиджборды всегда были пристанищем особо одаренных ¯\_(ツ)_/¯
15802378576410.webm855 Кб, webm,
720x1280, 0:03
41 1587090
>>587087
заовнен, несите следующего
42 1587130
>>587077
elasticsearch
pepe6.jpg137 Кб, 1920x1080
43 1587326
>>586759
>>586728
Бамп вопросу.
Нагуглил что в 8мой версии асинхронные стримы появились.
Ещё что-то поменялось?
44 1587372
>>586784
Гуглить я и без тебя умею. Хотелось бы услышать мнение профессионала, насколько шарп применим в линукс, а не твои фантазии о вкатышах и дискретке.
Если сказать нечего по теме, зачем гадить?
Ты же не родился со знаниями комплюктор саенс, и тоже когда-то учился.
0.jpg13 Кб, 493x267
45 1587383
>>587372
Каждая жаба-макака так и хочет везде выебнутся. Печет жопу, что жаба - говно. 5 стадий принятия неизбежного.
46 1587443
>>586030 (OP)
Что я делаю не так? Или я как-то не так понимаю как действуют массивы?

using System;

public class Program
{
public static void Main()
{
string [] namess = new string [5] {
"Sergei", "Vasya", "Anders", "Oleg", "Kirill"};
string [] zap = new string [5]{
", ", ", ", ", ",", "};

int a = 0;
int c = 0;
while ((a < namess.Length) || (c <= zap.Length)){
a++;
c++;

Console.Write(namess[a]);
Console.Write(zap[a]);

}

}
}

Пишет:
Vasya, Anders, Oleg, Kirill
Run-time exception (line 19): Index was outside the bounds of the array.

Stack Trace:

[System.IndexOutOfRangeException: Index was outside the bounds of the array.]
at Program.Main() :line 19
46 1587443
>>586030 (OP)
Что я делаю не так? Или я как-то не так понимаю как действуют массивы?

using System;

public class Program
{
public static void Main()
{
string [] namess = new string [5] {
"Sergei", "Vasya", "Anders", "Oleg", "Kirill"};
string [] zap = new string [5]{
", ", ", ", ", ",", "};

int a = 0;
int c = 0;
while ((a < namess.Length) || (c <= zap.Length)){
a++;
c++;

Console.Write(namess[a]);
Console.Write(zap[a]);

}

}
}

Пишет:
Vasya, Anders, Oleg, Kirill
Run-time exception (line 19): Index was outside the bounds of the array.

Stack Trace:

[System.IndexOutOfRangeException: Index was outside the bounds of the array.]
at Program.Main() :line 19
47 1587445
>>587443

\t там нет, я не знаю откуда они появились
48 1587446
>>587445
>>587443
Вот нормально:

using System;

public class Program
{
public static void Main()
{
string [] namess = new string [5] {
"Sergei", "Vasya", "Anders", "Oleg", "Kirill"};
string [] zap = new string [5]{
", ", ", ", ", ",", ", " "};

int a = 0;
int c = 0;
while ((a < namess.Length) || (c <= zap.Length)){
a++;
c++;

Console.Write(namess[a]);
Console.Write(zap[a]);

}

}
}
48 1587446
>>587445
>>587443
Вот нормально:

using System;

public class Program
{
public static void Main()
{
string [] namess = new string [5] {
"Sergei", "Vasya", "Anders", "Oleg", "Kirill"};
string [] zap = new string [5]{
", ", ", ", ", ",", ", " "};

int a = 0;
int c = 0;
while ((a < namess.Length) || (c <= zap.Length)){
a++;
c++;

Console.Write(namess[a]);
Console.Write(zap[a]);

}

}
}
javaiscobol.png421 Кб, 900x900
50 1587479
Почему лучше вкатиться в C# чем в Kotlin?
51 1587492
>>587479
на сишарпе можно делать игруфки!!!!
52 1587495
>>587492
а гарбаж колектор не ебет?
53 1587499
>>587495
На апдейте не создаешь объекты.
54 1587501
>>587499
По-подробнее тут?
56 1587509
>>587495
Ебёт, но не сильно. В Юнити недавно запилили incremental собиратель мусора, плюс делают фреймворк для data oriented design
57 1587517
>>587509
Надо как в расте - с автоматическим лайфтаймом.
58 1587522
>>587503
Как у вас глаза к концу дня от черной темы не вытекают??
Особенно напрягает, когда прыгаешь на сайт с белой темой (не обязательно в гугл, может и свой сайт) глаза просто вытекают.
59 1587523
>>587517
там с владением натрахаешься, кто получил ссылку, кто владение, а кто ваще вывалился
60 1587525
>>587523
Пишешь как на каком-нибудь F# и про специфику владения можно не думать, если в ансейф не лезешь.
43225aba74ba46ba733f83ec5084e73d.jpg10 Кб, 700x525
61 1587527
>>587522
У меня черный браузер с плагином, который делает все сайты черными. На самсунге галакси даже не нужен плагин, оно это по дефолту делает.
62 1587528
>>587525

>F#


че там у нас еще хипстерского есть
64 1587541
На F# тоже что-то есть, например, https://nbomber.com/
65 1587543
>>587517
Они взяли с плеч программиста прямое управление памяти и положили его снова на плечи в извращенной форме.
66 1587547
>>587543
Все равно лучше плюсов, меньше UB.
67 1587555
Может ли кто-нибудь нюфане объяснить, почему не работает метод Change_group_order? Точнее будет сказать, что он работает, но когда массивы структур передаются обратно в Main по ссылкам, они не передаются на самом деле. С меня как всегда нихуя.

https://pastebin.com/HZ11FY3J
Вызвал метод в единственном месте - 104 строка.
68 1587556
>>587543
В шарпе тоже пердолинг с памятью появился, всякие:
Span<int> numbers = stackalloc int[length];
struct of arrays + ref structs
69 1587558
>>587556
Или фиксированные массивы в структуре.
70 1587565
>>587555
Потому что это говнокод, поэтому и не работает, очевидно.
72 1587571
>>587565
Говнокод != неработающий код
73 1587572
>>587567
Храни тебя Б-г.

>>587565
Я это и так знаю. Только что в нем такого говнистого?
74 1587576
>>587571
99.99% в тырпрайзе - говнокод.
maxresdefault.jpg60 Кб, 1280x720
75 1587578
>>587576
Будь аджайл как говорится.
76 1587591
>>587547
Ну у тебя были с++ со структурным программированием, но с прямым контролем памяти (на самом деле тоже йобу завезли).

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

Это как с асинхронным программированием, или вообще с многопоточностью. Кажется все просто и легко, но накладывает на тебя определенный слой проблем и требований. И код уже не такой легкий.
В общем, шило на мыло поменяли. И все равно мы видим что пишут unsafe.
77 1587594
>>587591

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


Только если в ансейф залазишь, а так, чисто субъективно, владение ресурсами проще и лучше умных указателей, или самописных костылей. Зато нет ГЦ.
78 1587595
>>587591

>И все равно мы видим что пишут unsafe.


Он если и есть, то локализированный, а не размазанный по всему коду.
79 1587599
>>586759
>>586728
Бамп.
Вы тут что-то кроме тырпрайз асп и лаба1 делаете?
80 1587600
>>587591

>Это как с асинхронным программированием, или вообще с многопоточностью.


Всего-то разобраться с атомиками, мемори барьерами и иммутабельностью.
81 1587602
>>587599

>Вы тут что-то кроме тырпрайз асп


Кококой асп? У меня тырпрайз в облаках - без асп.
82 1587610
>>587599
Вот, кстати, мобилки, игрушки, разбери пи - это тырпрайз в твоем понимании?
83 1587617
>>587600

>мемори барьерами


Вот это вообще как два пальца обоссать, потому что есть только полная версия из вроде 4 на плюсах.
84 1587630
>>587600
Нет, елемннтарные примитивы это просто, сложность возникает в решении реальных задач.

>>587610
Нет наверное.

>>587602
И что вы там делаете, асинхронный хайлоад меня интересует.
85 1587646
>>587630

>сложность возникает в решении реальных задач


Надуманная сложность про реальные задачи.

>асинхронный хайлоад меня интересует


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

Можно, конечно, продавить свое квадратное колесо: по типу микросервисы/акка/орлины. Присобачить кеш, носиквел, очереди, эвенчул персистентность, кибану какую-нибудь. Но тут нужен прокачанный архитектор или мастерство вешать лапшу на уши. И все равно получится агрегатор между сервисами, только еще и самописным горизонтальным масштабированием, реплецированием. И не дай боГ ты пишешь аля биллинг.
image.png158 Кб, 1348x1200
86 1587650
Почему си-шарп будет лучше чем питон?
87 1587656
>>587650
Я бы этому сайту не доверял:

>tools


>PedidosYa


>https://github.com/netflix жаба, потом жабаскрипт

88 1587659
>>587656
Да просто рандом картинка с выдачи поиска.
89 1587661
>>587659

>Почему си-шарп будет лучше чем питон?


На вкус и цвет все фломастеры разные.
90 1587727
аноны помогите. Чего бы запилить для диплома, что бы с компьютерными сетями было связано.
91 1587730
>>587727
Покер с блекджеком и шлюхами на мобилках.
92 1587735
>>587730
боюсь экзаменационной комиссии это явно не понравится)
93 1587784
>>587646

>Надуманная сложность про реальные задачи


Это ты свое самолюбие потешить хотел? Теорему фреди крюгера знаешь?
94 1587806
Блядь, как же быстро вы засираете тред короткими дебильными постами неинформативными.
Скоро, походу, бамплимит. Это говно даже в архивач лить не хочется.
95 1587808
Поясните за Memory<T> и этот Span<T>. Типа как я понял эта хуевина нужна чтобы не тащить указатели в C-стиле, а с памятью хочется поработать. Так же? Но блин, там же не особо удобно это все сделано, нельзя нормально расширить эти Memory и Span, а как я понимаю, если я решу скопировать в объект побольше, то это ничем от работы с массивами отличаться не будет, только индексатора нет. Или я что-то упускаю? Поясните, если не сложно.
96 1587819
>>587806
Сам же высрал неинформативную и короткую фразу, которая даже к треду не относится.
97 1587853
>>587808
Идея в избегании аллокации памяти, так как это дорогая операция, нагружающая сильно сборщик мусора, у определенного ряда задач, например, парсера.
98 1587898
В шарпе документация только в xml формате? Нет классического javaDoc типа @param @return?
99 1587902
>>587898
Зависит от используемой тулзы для генерации доки. Такая дока нахуй не нужна.
100 1587907
>>587819
Это не фраза! Это три предложения.
101 1587910
>>587907
Я хоть не прихожу и не ноу своих архиважным мнением для сливного бочонка.
изображение.png1,3 Мб, 1280x720
102 1587916
103 1587924
>>587916
Уроки делать бегом!
104 1587934
>>587924
Удачи.
105 1587936
>>587934
Слился!
106 1587938
>>587936
Я знаю что ты слился, можно не уточнять.
107 1587939
>>587938

>нет ты

108 1587942
>>587939
Да, ты.
109 1587945
110 1587989
>>587454
Ты скинул ссылку просто на компилятор
111 1587991
>>587989
Это не компилятор. Я твои \t читать не буду.
112 1588027
>>587902
Какие варианты популярные есть, нашел только xml
114 1588033
>>588027
Я так посмотрю тебя в гугле забанили и ты не знаешь жабу. Их тысячи, вот на жабе https://swagger.io/
115 1588035
Сап двач.
Допустим, у меня есть некий код с игрой, которую я хочу запускать через exe в консоли.
Как это сделать в Visual Studio? Я создал проект типа "Консольное приложение" и поместил код как показано на 2 пике
116 1588036
>>588031
Ты, блядь, код для кого пишешь? Для людей или для машины? https://dotnetfiddle.net/f2okTJ
117 1588037
>>588035
Нажми на зеленый треугольник
118 1588044
>>588033

>Не могу найти в гугле


>Я смотрю тебя в гугле забанили.


Какое у нас комьюнити токсичное ппц.
119 1588046
>>588044
Только я токсичен, когда не умеют задавать конкретный вопрос.
120 1588047
>>588033
Что ты мне высрал, какие еще есть виды документаций кроме xml
121 1588051
>>588046
Да ты дуан этого треда, который говнит язык хуже чем гоферы.
122 1588052
>>588037
Не, мне нужно создать именно что exe с игрой, чтобы был один файл, который запускался бы через консоль и там была игра
123 1588056
>>588036
Спасибо
У меня проблема была, оказывается, только в том, что я сделал (a++; c++;) до вывода этого в консоли. Я думал, у меня там вообще всё не так
124 1588072
>>588051
Я говню только тебя.
125 1588075
>>588047
Эх, я думал, умею говорить на жаба языке, чтобы понимали такие как ты. Похоже, такие как ты, не лечатся.
126 1588085
В общем, смотрите какая фигня. Я хочу написать хелловорлд.
Так вот, я сделал интерфейс, в нем объявил свойство которое должны имплементировать классы, которые будут предоставлять строку "Hello world!".
Потом я добавилс класс HelloWorldServce, который собственно должен будет имплементировать этот интрефейс.
Ну и собственно добавил бекграунд сервис, который выводит вызывает метод сервиса.
Собираю это все хостбилдером, чтобы внедрить зависимости. И вот тут затуп. Смотрите, когда сервис вывел строку, мой хелловорлд не закрывается и продолжает работать, ожидая пока я нажму Ctrl+c. Как это исправить? Я думал насчет того, чтобы добавить событие HelloWorldPrinted и мой синглтон при возникновение этого события, будет завершать программу, но мне кажется, что тут я нарушаю какую-то концепцию связанную с DI, ведь нелогично получается. Может быть есть какой-то более правильный способ завершить приложение, после вывода строки, а то не хочу чтобы мой Хелловорлд был говнокодерским.
127 1588086
>>588085
Зачетная тема. Похожа на свекольник.
128 1588095
>>588085
Ран асинк на последней пикче блочит завершение приложения. https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-3.1#waitforshutdownasync
129 1588097
>>588095
Хм. Нет, все еще не завершается. Ждет пока нажму ctrl+c.
130 1588101
>>588097
Я не умею гадать на кофейной гуще. По ссылке пример реализации, дергаешь StopAsync, когда тебе надо.
131 1588109
>>588101
Во, залил на гитхаб. Аж со второго раза разобрался как это делать. Сложная штука этот ваш гитхаб...
https://github.com/BakaVaka/Hello-world
132 1588127
>>588072
Судя по всему ты наговнил так, что один тут тухнешь вместе вкатывальщиком.
134 1588130
>>588127
Посрал на тебя.
135 1588136
>>588128
Ооо. Спасибо! Ты спас мой хелловорлд!
136 1588150
>>588130
Малолетний долбаеб.
137 1588155
>>588150
А вот и не малолетний!
138 1588242
Нахуя приддумали F#?
Его ваще кто нибудь использует чи он для прикола?
139 1588244
>>588242
По мнению некоторых это тестовый полигон фич C#.
140 1588246
>>588052
Правой кнопкой на проекте -> publish
141 1588267
Привет всем. есть какая-нибудь конфа анонов шарпистов мы телеге? Заранее спасибо
142 1588271
Аноны кто-нибудь работал с tdlib или tdsharp под . net core? Есть пару вопросиков, по тому как с ней работать и как правильно завести эту шайтан библиотеку, буду очень благодарен.
143 1588278
>>588271
У тебя в пидорахе заблочен он.
144 1588288
>>588278
Не. Там транспорт идет через mtproto, с этим все норм. Просто когда пытаюсь вызвать библиотеку через viewmodel страницы razor в blazor, то blazor вылетает
145 1588292
>>588288
Блейзор - это шарп в жс песочнице. На нем мало чего из библиотек работает.
146 1588305
>>588292
Вот. Мне и нужна помощь как завести tdlib под blazor. Единственное что пришло это через .net core web API. Но tdsharp вообще не хочет заводится. В репозитории в примере написано одно, а в nuget пакете вообще другие классы, как быть хз
147 1588307
>>588305
И сам пример в репозитории вылетает с переполнением вызовов класса
1466388462642.jpg43 Кб, 1200x640
148 1588308
149 1588315
>>588305
Зависит, что ты пытаешься получить. Если тупо отобразить в браузере, то делаешь мидлварь (например webapi) по середение, которая работает с либой, а на вьюху отправляешь результат.
150 1588323
>>588315
да, я так и хочу. Будет 3 стороны типа (MVC). View - blazor, control - .net core web api, model - tdsharp. С первыми двумя нет никаких проблем, осталось завести tdsharp, а как я не знаю
151 1588329
>>588323
Так начни с чего простого на коленке: аутентификация, вывод названий чатов. А потом просто наращивай функционал.
Если не понимаешь как работает либа, то лучше сперва выкинь блейзор - сделай обычное консольное приложение.
152 1588333
>>588329
понимаешь, библиотека просто вылетает и не хочет работать. Я же говорю даже пример вылетает с переполнением вызова метода из tdlib.dll
153 1588339
>>588333
Он написал тупой враппер над апи, ты и сам такое сможешь написать. Даже https://github.com/egramtel/tdsharp/pull/32 не работает?
154 1588341
>>588339
да я про этот пример и говорю, щя кину с чем вылетает пример
155 1588351
>>588341
лол. Походу я тупой, щя кое-что попробую, походу завелась
156 1588354
>>588351
так теперь новый прикол. В примере просит вызвать SetTdlibParameters, при отправки этого метода просит вызвать CheckDatabaseEncryptionKey. А при вызове этого метода просит вызвать SetTdlibParameters, лол это как?
158 1588365
>>588354
Он это и так делает на 37 и 51 строках. Надо только константы задать на 10-12 строках.
159 1588368
>>588365
так константы есть. А при обычном вызове, пример зависает на ResetEvent.Wait(); и все
160 1588373
>>588368

>зависает на ResetEvent.Wait()


Ожидает UpdateAuthorizationState или UpdateUser при обработке события. Ставишь дебаг на дефолт ветку и смотришь что приходит, скорее всего какая-то ересь пришла.
Этот пример лучше: https://github.com/tdlib/td/blob/master/example/csharp/TdExample.cs#L73
161 1588377
>>588373
ладно, пойду переписывать этот пример под tdsharp, спасибо
162 1588386
>>588377
ага, перепишу. Я даже не знаю чем ClientResultHandler заменит из примера в tdlib, пиздец. пойду дальше ебаться
163 1588388
>>588386
есть еще идея разобрать https://github.com/egramtel/egram.tel и посмотреть как там сделано, но там вообще пиздец, мне до такого уровня еще топать и топать
164 1588519
Ребят, есть у кого C# 7.0. Справочник. Полное описание языка | Албахари Бен, Албахари Джозеф ? Дайте ссылку плеасе
165 1588978
Гимн треда.

https://youtu.be/KMU0tzLwhbE
166 1589018
Дратути. Я тут настроил на .net core api аутентификацию по клиентскому сертификату по гайду отсюда https://docs.microsoft.com/en-us/aspnet/core/security/authentication/certauth?view=aspnetcore-3.1
Но сервис аутентификации выстреливает на каждый экшн каждый раз. В коде проверка сертификата в сервисе валидации вроде простая - просто проверяю thumbnail на имеющийся в базе. Но меня пугает, что возможно kestrel/iis в бэкграунде с сертификатом делают кучу других действий для валидации, и всё это может вылиться в нехуёвый оверхед а я как раз делаю api из соображений, что реквестов будет много, допустим по 30 в секунду от клиента, и каждый будет весить ~2мб+.
Так вот, стоит ли мне заморачиваться и выносить аутентификацию в отдельное приложение, которое требует клиента предоставлять серт и заставлять его перед запросами сначала сходить на апи аутентификации, там ему на успешную валидацию сертификата возвращать какой нибудь токен, с которым клиент уже будет ходить на обычный апи в другом приложении без запроса клиентского сертификата и записать токен в базу?
167 1589046
tdsharp опять выходит на связь. Оказывается взятый mtproto был кривой и ничего не делал. Нашел другой, но теперь метод AddProxy зависает, как быть?
mtproto был заранее проверен в телеге
168 1589059
>>588519
На рутрекере
169 1589072
Нахуй вообще нужен Web API в ASP.NET Core? Ведь все тоже самое может делать и обычный проект?
170 1589162
>>589072
Стильно модно молодёжно
171 1589217
>>589162
а если серьезно, в чем соль? В простом ограничении, что WebApi возвращает только данные? Почитал статейки на SOF и других порталах - это все, что я понял :(
172 1589234
>>589072
Чтобы ты сущности отделял друг от друга. Когда у тебя фронт на JS, тебе в проекте в 95% случаев не нужно все то говно что есть в дефолтном проекте, а возиться с пустым ты не хочешь, вот ты и ебанул web api проект в свой солюшн, сделал там пару api контроллов, которые json'чики возвращают, токены и прочее и не трогаешь больше его.
Так-то ты и в консольном приложении можешь как контроллы начать использовать, так и запилить свой велосипед с HttpListener'ом или вообще ебануть на сокетах и сам будешь Http парсить, и все то же самое, в конечном итоге делать, но тебе добрые индусские господа сделали готовы шаблон именно когда тебе только api нужно, в который просто напихай своих api контроллов и оно будет со своей задачей справляться.
173 1589235
>>589072
Инверсия контроля очевидная - интерфейс в виде апи можно прихуярить к чему угодно - к фронтенд фреймворку, к мобильному приложению, к десктопу, к чему угодно, что к интернету подключается.
MVC пережиток прошлого и уг
174 1589252
>>589234

>>Когда у тебя фронт на JS


а он что, бывает на чем то еще?

>>95% случаев не нужно все то говно что есть в дефолтном проекте


выпиливается 3-4 кликами
>>589235

>>Инверсия контроля очевидная


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

>>можно прихуярить к чему угодно


как и обычный web core

Нипанимаю
175 1589262
>>589217
соль в том, что майки развивают .net core, а в стандартный asp.net фичи уже не завозят. пока что это не критично и всё фичи .net core, идущие из под коробки, за разумное время можно реализовать и в старом asp mvc 5 приложений. но не факт, что так будет всегда и в .net core в дальнейшем не завезут каких либо киллер фич

кого то прельщает кросплатформенность. хочешь - хости на iise, хочешь на линуксе через kestrel

и это только внешняя сторона вопроса. возможно они еще и внутри переделывают .net, чтобы был производительнее и тыры пыры
176 1589275
>>589252

> а он что, бывает на чем то еще?


Блядь, разором, сука можно делать, чего ты как ебанат? Можно хуячить на веб-формах, на Жаве, сука, блядь, ньюфажина ебучая.

> выпиливается 3-4 кликами


А можно взять готовый проект и нихуя не выпиливать, ебанат ты этакий.
Пиздец, ему по полочкам разложили, а он как ебучий ребенок, сука. Не нужен - не пользуйся, вообще, можешь все проекты с пустого текстового файла начинать и ебашить, а собирать с помощью .net CLI, пидрила ты тупая.
177 1589279
>>589262
asp.net умрет

останется webapi core
178 1589280
>>589275
А чё ты на оскорбления срываешься сразу, быдло?
179 1589291
>>589280
А то, что тебе объяснили зачем оно надо, а ты продолжаешь дурочка строить из себя. Как тебе еще сказать, чтобы ты понял, блядь?
180 1589292
>>589291
Я другой анон. Но тот анон просто задавал вопросы, а ты сразу говнишь, мразь. Иди нахуй в андроид треды с таким отношением к коммьюнити, там все такие токсичные, как ты.
181 1589307
>>589292
Я ему ответил нормально сразу, он из себя строит дауна. Почему я должен к тому кто строит из себя дауна относиться не как к дауну?
182 1589312
>>589275

>Блядь, разором, сука можно делать, чего ты как ебанат? Можно хуячить на веб-формах, на Жаве, сука, блядь, ньюфажина ебучая.


хуясе порвался даун. Я тебе приотрою тайну, что фронт на 99% состоит из JS, твой рейзор (интерпритатор html+C# в HTML) без JS != фронт 2к20.
На джаве веб, ну нихуя себе даунил в треде сидит
>>589307

>>ответил нормально


лучше бы вообще ничего не писал, профита больше было бы
183 1589315
>>589312

> Я тебе приотрою тайну, что фронт на 99% состоит из JS


А бек на 80% из ПХП, хули ты в шарпотреде сидишь, дебич? Фронт на JS онли, бек на PHP, и горя не знай. Нахуя тебе дотнет вообще нужен?
184 1589327
>>589315
Маня, ты ебанулся? Ты не различаешь фронт от бека. После этого

>>Блядь, разором, сука можно делать, чего ты как ебанат? Можно хуячить на веб-формах, на Жаве, сука, блядь, ньюфажина ебучая.


я вообще не знаю, зачем тебе что то пишу. Ты же просто отбитый. Создай .NET Core проект, скомпилируй и посмотри во View, что такое бандлы, рендеринг и как работает View с Razor.
Я вопросы людям задаю, а не животным
185 1589335
>>589327

>Я вопросы людям задаю


И тебе уже по человечески ответили что блядь вебапи нужен ДЛЯ УДОБСТВА, когда тебе нужен только апи. А мвс нужен когда у тебя фронт на разоре каком нибудь. И что это просто шаблон. Сразу же тебе так ответили, черным по белому и без мата.
Но ты продолжил спрашивать А НАХУЯ, А Я МОГУ УДАЛИТЬ ТО, А МОГУ СЕ. Ты ж или тупой или тупостью троллишь. Все правильно тебя хуями покрыли.

мимо тоже пригорел
186 1589344
>>589335

>>мимо тоже пригорел


тоже фронт на джаве пишешь наверное?
Я свято верю, что на борде сидят не только окатыши. Но все чаще разочаровываюсь :(
187 1589359
>>589344

>Фронт на жаве


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

>Окатыши


И нахуя ты мем из пораши притащил, ещё и используя его неправильно? Ты точно дегенерат.
188 1589369
>>589359
парень ты конечно извини, но ты далек от разработки приложений на .NET Core (судя по тому, что ты пишешь)
Я уже получил ответ и решил развернуть дискуссию на тему "Зачем возу 5ое колесо"

>>И нахуя ты мем из пораши притащил


вообще не понял о чем ты, ты видимо какой то дегрот 7ой параллели
Окатыш - маленькие камешки (см. малолетки)

я на двоще получил много годных советов, не как строчки местами поменять, а касающихся архитектуры и компоновки проектов, но из за таких, как ты мне стыдно говорить, что сижу на борде
189 1589575
вкатился
190 1589656
кто может помочь с поиском максимума от минимума в матрице
191 1589691
>>589656
алг матрица_мин_макс
нач
мин = макс = М[1, 1]
для и от 1 до Н
нц
для ж от 1 до М
нц
если М[и, ж] > макс то
макс = М[и, ж]
конец если
если М[и, ж] < мин то
мин = М[и, ж]
конец если
кц
кц
вывод мин
вывод макс
кон
image.png5 Кб, 260x96
192 1589717
>>589691
Мне именно максимум от минимума нужен, а не минимум и максимум
193 1589727
>>589717
Непонятно, что подразумевается под минимумом по j. Найти "минимальный столбец"? А как столбцы сравнивать, если над векторами не определена операция сравнения?
image.png140 Кб, 799x450
194 1589735
>>589727
Это из теории игр с природой, критерий Вальда
195 1589763
>>589735
Вот поэтому я и не осилил эту хуйню в свою время, что даются какие-то неформальные формулы, будто не математика, а гуманитарщина какая-то.
Значит, должно быть максимальное значение в столбце и при этом минимальное в строке? Хуита какая-то. И наверняка есть готовое решение.
196 1589770
>>589763
Находятся минимальные элементы во всех столбцах и из них выбирается максимальный элемент в строке, это и будет оптимальной стратегией
197 1589773
>>589763
На бумажке то оно на раз решается, но следующие критерии ещё хуже, а я уже на первых встал с переводом в программу
198 1589875
Нас 75-летний препод на теории алгоритмов заставлял делать хеллоуворлдные задачки на
алг
нач
кон
в тетрадке.
И компилировал у себя в голове.
Сука, а я так надеялся, что он нас научит всяким сортировкам, обходам графов, балансировке деревьев...
199 1589885
>>589875
а потом ебал скалкой в жопу за пропущенную точку с запятой, угадал?
200 1589893
>>589875
А нам вот вполне адекватно преподавали плюсы. На контрольных можно было выбрать, на бумажке будешь делать или на ЭВМ. Но если на ЭВМ, спроса с тебя было больше, в конце обязательно должна получиться работающая прога. А на бумажке могли закрыть глаза на косяки.
201 1590213
Сап, ананасы, помогите студенту!
Суть такая - есть клиент-серверное приложение, клиент - WIndows Forms на фреймворке, сервер - консолечка на Core
На клиенте и сервере прописана структура из 2 полей - строка и массив байт
Я хочу эту структуру передать по TCP и для этого преобраую ее в byte[] с помощью Marshall. При сериализации на клиенте получается массив из 12 байт, его я отправляю на сервер. Сервер получает эти 12 байт и пытается их десериализовать в такую же структуру. Однако, когда я получаю размер структуры на сервере чрез Marshal.SizeOf(), то вместо 12 байт он получает 24 и в итоге при дальнейшем копировании указатель уходит в никуда.
В чём проблема? Почему абсолютно такая же структура имеет другой размер на сервере?
202 1590334
>>590213
Показывай код.
203 1590342
>>590213
Код бы показал.
204 1590346
>>590334
>>590342
Деньги вперед.
205 1590354
>>590346
Можно без денег, я готов потратить на тебя и твой говнокод 10 минут бесплатно.
206 1590367
>>590213
Я б свою сериализацию сделал. Там две строчки, но зато понятно что и откуда было б.

Аноны, поясните, ASP.NET и ASP.NET Core - по написанию кода примерно одно и то же? Или разный подход? Хочется учить свежее, Core, но по нему не могу годных гайдов найти.. По ASP.Net полно, но на первый взгляд кажется что это вообще разные вещи.
207 1590370
>>590367
Принципы теже, детали отличаются.
208 1590378
>>590370
Ок, спасибо. Осталось найти всё-таки гайд по core, что б какую-нибудь простейшая програмка была разобрана, а не сразу портал по взлому пентагона.
Нет на примере ничего?
209 1590408
>>590378
Есть ненавистный местными обитателями метанит.
210 1590417
>>590408
Видимо я тоже ненавистник.
Как то люблю гайды, что б для чайников было. Сначала запускаем пустое приложение, потом выводим текст, кнопку, реакцию на кнопку и т.д. С усложнением, но что б можно было реализовывать сразу. А там - просто теория сплошная. Уже пробовал по ихнему гайду - разочаровался.
211 1590459
>>590417

>А там - просто теория сплошная


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

>Запуск приложения. Класс Program


>Класс Startup


>Конвейер обработки запроса и middleware


>Методы Use, Run и делегат RequestDelegate


>Методы Map и MapWhen


>Создание компонентов middleware


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


>IWebHostEnvironment и окружение


>Статические файлы


>Работа со статическими файлами


>Обработка ошибок


вот тебе шаг за шагом, и маленькое приложение готово.
>>590417

>выводим текст, кнопку, реакцию на кнопку


Так это тебе к фронтендерам и жс макакам.
>>590417

> Уже пробовал по ихнему гайду - разочаровался.


Ну не зашло, так не зашло. Можешь попробовать максимальный уровень деградации - видеотуториалы.
212 1590462
>>590459
Сейчас вот, кстати, почитал гайд этот ещё раз. Как раз первые 7 пунктов - сплошная теория. А в восьмом уже идёт построение приложения. Попробую завтра реализовать. А уже потом может быть стоит разбираться в нюансах, если пойдёт.
213 1590469
>>590462
Так без первых семи, ты в восьмом сможешь только скопипастить код и охуевать от того, что там понаписано. Но дело твое.
214 1590472
>>590378
У Троелсена есть.
Из новых:
Mark J. Price - C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development Fourth Edition-Packt (2019)
Мутанита не трогай, это дерьмо можно использовать только как краткий справочник и только когда ты не знаешь какой именно класс из стандартной библиотеки тебе нужен, но знаешь, что какой-то есть.
215 1590478
>>590469
Да вроде описано.. Но надо что б работало, а потом уже разобраться что и зачем. Как по мне.
>>590472
Ок, погуглю, пасип.
216 1590522
>>590472

>>Mark J. Price - C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development Fourth Edition-Packt (2019)


Есть у кого схоронить eng/rus doesn't matter? Pdf/Word/html?
217 1590542
>>590522
У меня в пдф есть.
218 1590555
>>590542
залей пожалуйста на https://dropmefiles.com/
219 1590749
>>590213

> этого преобраую ее в byte[] с помощью Marshall


Зочем? Просто сделай метод в структуре: ToByte() В нем что-то вроде:
byte[] msg = new byte[str.Length+byteArray.Length] // со строками правда нужно учитывать, что если это UTF какой-нибудь, так низя будет, нужно будет сначала строку с помощью Encoding перевести в байтики.

Потом в этот массив msg в цикле запихни все это. Это СТОПРОЦЕНТНЫЙ способ, потом побайтова распарсь. Базарю. Серелизации-десерелизации, когда это не какой-то общепринятый стандарт, это хуйня и в рот ее ебал.

> В чём проблема? Почему абсолютно такая же структура имеет другой размер на сервере?


Потому что в Маршал размер в рантайме смотрит и он может меняться в зависимости от положения звезд и того, как компилятор решил оптимизировать твое дело за тебя: Может взять и дырки заполонить, может не туда байтик лечь и твою структуру из 3 байтиков распидорасит на 32 бита. Потому либо ебешься со своей серилизацией, либо берешь готовую, либо как настоящий хакер в массивчик руками кладешь.
220 1590772
Анончики выручайте, как из datagridveiw с размерами n на m
занести данные в список, который будет представлять из себя матрицу List<List<double>> Matrix = new List<List<double>>();
221 1590800
>>590749

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


Либо RPC используешь.
222 1590811
>>590749
>>590800
Скорее всего структура не имеет правильное директивы о возможности сериализации.
Вроде массивы вообще по умолчанию не сериализуються. Они же ссылочные.

Короче он там просто хуйню лепит.
shitcode.png32 Кб, 655x329
223 1590831
>>590772
Не надо пытаться есть через жопу. Контрол, нужен для отображения данных и взаимодействия с пользователем. У тебя уже должны быть данные, к которым ты привязываешь DGV.
224 1590878
>>586109
почему?
225 1590917
>>590831
Спасибо
226 1590931
>>590878
Банально потому что там не вдаются в детали, а дают простой пример для простой задачи, который ты и без них легко бы сделал за полчаса. Лучше уж тогда какую-нибудь книжку нормальную почитать.
227 1591004
Прочел Шилдт. C# 4.0: полное руководство, вроде основные моменты понятны. Но если смотреть сложный код200строк% то чета нихуя не понятно, чета создается обьект класса, затем этот обьект передается в другой. Что код делает примерно понятно но в основном нет.
Дак вот вопрос как дальше прокачивать скилуху? Стоит ли еще прочитать Албахари Джозеф, Албахари Бен. C# 6.0. Справочник. Полное описание языка ? Или ограничится прочтением самых непонятных глав и сделать упор на написании своих каких то мелких программ?
228 1591041
>>591004
Нахуй тебе шилд устаревший, когда есть троелсен? Читай теперь Рихтера, хули.
229 1591050
>>591041
Рихтера сейчас тоже читаю но по главам, интерфейсы многопоточность и классы
230 1591061
>>591004

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


Язык -- это инструмент. Зная, как использовать гаечный ключ, ты не получаешь автоматически знание, как устроен автомобиль, с помощью которого он сделан.
Олсо, реверс-инжиниринг чужого кода (в запущенных случаях бывает даже своего годичной давности) -- это вообще отдельный навык, от языка в эпоху доминирования ООП слабо зависящий.
231 1591103
Анонче, помоги:
>>1591099 (OP)
232 1591112
В четверг иду писать тест по шарпу, страшно
233 1591126
>>591112
Один уже тут такой был. Не видели его с тех самых пор, как он писал про то, что идёт на собес.
234 1591136
>>591126
Он не знал про интерфейсы?
235 1591144
>>591126
Вначале тест, потом собес, если сдам. Потом практику ещё у них как работу по времени, но не платят, потом, может, работа. Пизда мне, короче.
236 1591150
>>591144
Ты главное сразу настройся на то, что помимо того, что дальше теста не пройдёшь, над тобой еще похихикают и будут унижать морально. Прошлый анон слишком позитивно настроен был, даже грозился скайп-интервью записать, в итоге даже в треде не отписался.
237 1591151
Есть говнокод, есть datagrid, который создаю через 2 текстбокса чтобы была матрица n на m , матрицу записываю в листы, проблема в индексах, если создаю матрицу больше 2х2 то по кд выскакивает аут оф рендж, даже если каунтам в цикле ставлю -1
238 1591166
>>591151
бротишка, если тебе за это не платят и не ставят оценки, то бросай нахуй это дело. winforms мертвее мёртвого wpf. если так нравится шарп - учи asp.net core, и учись там на js/ts делать все эти таблицы шмаблицы. не трать золотое время на изучение мёртвых технологий
239 1591222
>>591150
И физически. Уже избиваю себя палками.
240 1591245
>>591151
Ты даже код не смог переписать - обосрался с индексами. Индексатор dgv первым параметром принимает индекс столбца, а вторым строки.
15775198252460.png1 Мб, 720x1096
241 1591273
>>590542
спасибо, что залил
242 1591308
>>586036 (Del)

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


Этож твои проблемы. Вакаба сжимает картинки и в любом случае даёт тебе мелкие. Большие ты грузишь только если сам куклоскрипту сказал чтобы он тянул большие.
243 1591421
>>591308

>>Вакаба сжимает картинки и в любом случае даёт тебе мелкие


Ты в этом уверен? Такие посты в /pr/ видеть - это как себе на ебало ссать
post.png42 Кб, 490x344
244 1591432
>>591421
Ебобо?
245 1591445
>>591432
То, что в UI идет пережатый формат - это да. И где тут сжатие, если сорсы картинок все равно хрянятся на ресурсе?
246 1591450
>>591445
Выйди из /pr еблан, ты слишком тупой.
247 1591458
>>591450
Выйди из /pr еблан, ты слишком тупой, чтобы понять, что хранилище с https://2ch.hk/pr/src/1586030/15808148098740.png (М) - тоже часть движка вакабы
248 1591466
>>591458
Ты траллируешь тупостью сучёнок? Включи network в браузере и посмотри что хайрез какртинка ТЯНЕТСЯ с хостинга по клику. Нахуй ты настолько тупорылый что даже ОДНУ СРАНУЮ КНОПКУ не смог нажать ип посмотреть сам? НАХУЙ ты в 2020 на трафике экономишь? Нахуй тебя сразу не послали нахуй всем тредом за такие тупые запросы?
249 1591467
>>591273
Уже бы давно нашёл. Мне конкурентам смысла нет помогать, извини.
250 1591498
>>591467

>2ch


>Конкурентам


А ты не очень умный да?
251 1591503
>>591466

>Ты траллируешь тупостью


Уровень /pr/ двача. Пиздец просто. Начнем с того, что твои small-size пики тоже на хосте храняться. А что делает из оригинальной пики small-size? Господь б-г?
252 1591506
>>591503
Фронтенд даун, ты?
Сервер картинку сжимает, ебаный ты дегенерат. Не клиент.
253 1591510
>>591503
Пиздец какой ты тупой. Как ты до сих пор не умер выходя в окно перепутав его с дверью? Я не понимаю.
254 1591514
>>591510
У меня так сосед шизик умер лол
мимо
255 1591519
>>591503
Вот анон, это >>591514
твой сосед.
256 1591529
>>591510
Квартироблядь детектед.
257 1591535
>>591510
>>591514
Дверебляди соснули у окнобогов.
258 1591536
>>591506

>Сервер картинку сжимает


Ты хотя бы понимаешь, что такое Wakaba и как работает борда?

>Не клиент


проиграл в голос
>>591510
твой одноклеточный брат постом выше
259 1591542
>>591536

>Ты хотя бы понимаешь, что такое Wakaba и как работает борда?


Тебе блядь тупорылая скрин с исходником кинули, хуйле тебе непонятно?
unnamed.jpg60 Кб, 512x384
260 1591546
>>591536

>Спорит с исходным кодом

261 1591560
>>591542
>>591546
Боже блять, вкатыши вы обрыганные. На серверной стороне есть хранилища как для full size, так и для small size картинок. Full size - это исходник, который загружает User. Small size - генерится серверной стороной (Вакабой дауны вы тупые) и так же ложит в хранилище и дает линк на UI борды (чтобы страница были легче).
Пиздец уровень /pr/ я в ахуе. Походу тут с шараг и с курсов только даунята сидят.
262 1591567
>>591498
Тут куда не плюнь в программиста попадёшь.
263 1591576
>>591560
А вот тпеперь даун, ответь сам на вопрос, какой файл ты грузишь когда открываешь тред.
А потом иди нахуй, потому-что ты сказал ровно то, что тебе ответили в первом же посте. Тупорылый уёбок.
264 1591584
Вот тут >>591445 даун проебался, когда начал искать связь между сжатием и хранение исходных картинок на сервере.
На сервере хранятся как сжатые, так и исходные картинки, сжатые тебе выдаются при загрузке треда, исходные по клику. О чём и говорил анон изначально.
265 1591586
>>591576
Более того, этот дебил сейчас пишет то же самое что в прошлый раз процитировал и сказал что видеть такие посты это как на ебало ссать себе: >>591421
Биполярочка
266 1591596
>>591560
Ещё раз, тебе блядь, показали исходный код где видно что сайт грузит мелкую ресайзнутую картинку.
ХУЛЕ ТЕБЕ НЕПОНЯТНО ЕБОБО? НАХУЙ ТЫ ПРОСИШЬ МАЛЕНЬКИЕ ПИКЧИ В ОП ПОСТ?
267 1591621
>>591576

>какой файл ты грузишь когда открываешь тред.


Если загружаю - full size, мне борда выдает пережатый - small size, full хранит в hiden link
>>591584
>>591586
>>591596
пиздец вы аутисты, какие то посты мне приписываете. Это такие маневры уровня /pr/ шараги?
268 1591627
>>591621

>Если загружаю - full size, мне борда выдает пережатый - small size, full хранит в hiden link



Ты хоть сам себя понимаешь, хуйло тупорылое? Что ты вот сейчас высрал? Если загружаю - фул сайз. Мне борда выдает пережатый - смалл сайз.
Пиздец просто, скажи, что это такой тончаший троллинг.
269 1591630
>>591621

>full хранит в hiden link


Пиздееееееееееееееееееееееееееееееец ты еблан, хоть в анусе у тебя хранит. Складку сеть открываешь и видишь что в итоге по клику происходит загрузка с сервера.
270 1591633
>>591621

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


Это троллинг, расходимся.
ultimate-face-palm-because-sometimes-even-a-double-facepalm[...].png182 Кб, 500x398
271 1591641
>>591630
пиздец ты уебище тупое, hiden link from server. Из чего еще может быть линк?
>>591627
походу тот же, что и запостил >>591421

Я пытался, правду пытался, но уровень шараг и вкатышей-манарегров просто ставит меня в тупик. Один линки в разметке хранит, другой сервером картинки пережимает (сервер != wakaba)
272 1591652
>>591641

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


Ну раз ты даун, то тебя и шараги в тупик постявят.

>линки в разметке хранит


А, ну тоесть a href - это не разметка теперь да? Теперь ты уже даже html не осилил. Ясно, понятно. Видимо ты какой-то особый случай мозгового ампутанта. С чем я тебя и поздравляю.

>(сервер != wakaba)


Даун, ты тут один единственный про вакабу что-то пиздишь. Заканчивай. Никто тебе слова про вакабу не сказал.
273 1592095
Учу Asp.Net Core, до этого с вебом дел не имел, только десктопные приложения писал.
Я правильно понимаю, что веб приложения никак не оперируют данными в оперативной памяти? Ну то есть если пришёл запрос, то код должен его обработать, отослать ответ и какие то промежуточные данные где то сохранить (физически на диске. Просто в тхтшник или в бд). Придёт новый запрос - надо брать данные с диска (ассоциировать их с пользователем). Хранить их в оперативке никак не выйдет (ну то есть можно, конечно, написать десктопную прогу, которая будет запускаться параллельно и отправлять данные в неё, но так, в общем то, не делают)
274 1592316
>>592095

>Я правильно понимаю, что веб приложения никак не оперируют данными в оперативной памяти?


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

>Ну то есть если пришёл запрос, то код должен его обработать, отослать ответ и какие то промежуточные данные где то сохранить (физически на диске. Просто в тхтшник или в бд).


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

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


Можно хранить и в ОП, но только нужно иметь всегда актуальную копию в базе или на диске, или на другой машине. Можно использовать in-memory базы данных, например Aerospike, которые хранят данные как раз в оперативке, и поэтому у них высокая производительность.
275 1592331
>>592316

>Хотя насчет стека я не уверен


тоже в оперативке

>Можно хранить и в ОП


всегда будет сервер, хотя бы для самого софта или хранения логов/аутентификации
276 1592493
>>591004
Сделать упор на написание того что тебе интересно, блядь.
Я просто хуею с таких вот: прочитают от корки до корки, пройдут миллион курсов, но дома даже строчку кода не напишут. Открываю тебе секрет: Все что нужно чтобы начать кодить что-то реальное или устроится на работу джуном - понимание булевой алгебры, базовые знания компьютерной математики, элементарная логика и умение строить алгоритмы, 95% остального ты будешь гуглить, от фишек языка и его библиотеки, которые не знал, до алгоритмов которые лучше подходят для решения задачи. Никто, не заучивает наизусть все, ты на проекте уже разбираешься, как устроены те или иные штуки, как работает твой фреймворк и все остальное, а понимание того как строить правильную архитектуру приходит именно после написания своих проектов.
Нет, будем страдать фигней бесполезной, будем читать миллион книг и через неделю забывать что там прочитали и записываться на курс, который будет заставлять программировать. Вот и нафига-то тогда изучать? Ты же будешь на работе страдать, потому что минимум 95% времени первые лет 5 - чисто работа с кодом.
277 1592506
>>592095

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


Не выйдет, только при чем тут веб-приложения в целом? Ты получил запрос, он будет в куче, ты его как-то обработал, в процессе обработки пару раз обратился к диску, чтобы, скажем, статичный файл считать и отправить или данные из БД достать, запихнуть их в json и опять же отправить, если этот ответ повторяется много раз, ты можешь вообще не обращаться к диску, а создать какую-нибудь свою хитрую очередь, в которой "горячие данные"(к которым чаще всего обращаются) в начале расположены, "холодные" - в конце, те что "очень холодные" выгружаются из оперативки, таким образом поиск будет быстрее, сэкономишь пару миллионов таким макаром.
Ну и вообще, веб-приложения не ограничиваются HTTP, ты можешь запилить хуевину, которая принимает поток данных, обрабатывает и сразу посылает ответ, тут никаких обращений к диску может не быть, все будет либо в куче, либо на стеке происходить.

> Придёт новый запрос - надо брать данные с диска (ассоциировать их с пользователем).


Не обязательно. Если у тебя не очень много запросов отовсюду, то ты вполне можешь поддерживать открытое соединение пока не получишь запрос, либо пока сокет не отвалится; можешь по кукисам проверять залогинен ли пользователь, вообще много чего можешь делать.
278 1592533
Ребят чаму не работает?
https://gist.github.com/Datakda/e769fb154a20cc081f63aa7c8041a7fd
А именно этот кусок


for (int i = 0; i < arrayTask.Length; i++)
{
//запускаем таски по одному до числа кратного 50
arrayTask.Start();

if (i % 50 == 0 && i != 0)
{
for (int a = c; a != i; a++)

{
c++;
//Проверяем на завершение тасков, если запущеные таски из 50 штук не завершены то новые не запускаем
while (!("RanToCompletion" == arrayTask[a].Status.ToString()))
{
Console.WriteLine("Ждем выполнения потока " + c);

}

}

}

}

Смысл таков: Есть массив Тасков, в тасках метод который делает Task.Delay(5000) и запускает метод который пишет в консоль, они должны запускатся по 50 штук и ждать выполнения а потом снова 50 штук запустить, но чета не работает, помогите плиз, вроде же все должно работать хуй его знает
278 1592533
Ребят чаму не работает?
https://gist.github.com/Datakda/e769fb154a20cc081f63aa7c8041a7fd
А именно этот кусок


for (int i = 0; i < arrayTask.Length; i++)
{
//запускаем таски по одному до числа кратного 50
arrayTask.Start();

if (i % 50 == 0 && i != 0)
{
for (int a = c; a != i; a++)

{
c++;
//Проверяем на завершение тасков, если запущеные таски из 50 штук не завершены то новые не запускаем
while (!("RanToCompletion" == arrayTask[a].Status.ToString()))
{
Console.WriteLine("Ждем выполнения потока " + c);

}

}

}

}

Смысл таков: Есть массив Тасков, в тасках метод который делает Task.Delay(5000) и запускает метод который пишет в консоль, они должны запускатся по 50 штук и ждать выполнения а потом снова 50 штук запустить, но чета не работает, помогите плиз, вроде же все должно работать хуй его знает
279 1592537
>>592533
фикс
в самом верху
int c = 0;

И вообще мб есть что из коробки для контроля потоков? Что то типо ThreadPool только для отдельных задач?
Мне давали ссылки на решение это проблемы но для меня пздц как сложно разобратся в этом, неуж то нету решение из стандартной коробки? Типо Передаешь массив тасков и число потоков, например так Magic(arrayTask,50), в массиве 5к тасков, и эти таски будут выполнять 50 потоков,
280 1592566
>>591004
Если ты не писал такой код, который читаешь, то ты никогда его не поймешь. Ты можешь прочитать тысячу книг о фичах языка, но если ты сам их не писал и не запускал, то ты никогда их не поймешь и не запомнишь. Прокачивается одним только способом, - написанием кода. C# ты выбрал зря. Слишком много фич и синтаксиса. Начни с языка по-проще, а как будешь уверенно писать код без справочника, тогда и за C# берись.
281 1592567
>>592493

>Я просто хуею с таких вот: прочитают от корки до корки, пройдут миллион курсов, но дома даже строчку кода не напишут.


К сожалению, большинство думает, что можно научиться программировать читая книги или смотря видео. Когда-то и я был в их числе. Потом понял, что скилл прокачивается только когда пишешь.
282 1592571
>>592493
>>592493
Ну ахуеть, как писать код если не понимаешь?
Вот я могу написать ну там цикли хуиклы, а вот как доходит до хуйни типо которую я выше скидывал то начинается пиздец.
283 1592572
>>592506

>Не выйдет


С чего это вдруг? Предположим пользователь ввел данные, или они пришли как-то по-другому, - теперь они находятся в процессе, в котором запущена программа, их можно использовать в программе спокойно, до тех пор пока процесс не будет прекращен. Все зависит от аптайма, если он непрерывный, то данные можно не сохранять нигде, а хранить внутри процесса. В Эрланге например данные хранят в процессах, только не в процессах ОС, а в эрланговских процессах.
284 1592577
>>592572
Няша, я просто из-за того как построен вопрос, ответил криво. А именно

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


Конечно, если только запросы обрабатываются и логика обработки не подразумевает обращение к диску, ты можешь полностью в оперативке все приложение делать.
.png11 Кб, 517x374
285 1592581
>>592533
Примерно так.
286 1592600
>>592571

> Ну ахуеть, как писать код если не понимаешь?


Вот так вот брать и писать. Городя велосипеды и развивая таким образом инженерное мышление. Неужели ты хочешь сказать, Шилдта ты не усвоил циклы, переменные, массивы, функции и классы, а сверху не понял как работает if и логические операции? Это база, которой достаточно, чтобы что угодно сделать, в процессе поймешь, зачем тебе нужны списки, как работать с файловой системой, потоками, зачем нужны события, где надо использовать вместо них делегаты и т.д.
287 1592618
>>592533
Используй SemaphoreSlim или Semaphore
288 1592622
>>592600
Уже пол года работаю, так и не понял, зачем нужны события и делегаты наверное потому, что сам ими не пользовался и у сеньора в коде не видел вроде
Безымянный 7.png19 Кб, 503x570
289 1592760
Как сделать чтобы после конца цикла переменная (int, double ...) сохранила своё значение?
То есть, то значение, которое получилось в рамке перешло вниз?
290 1592767
>>592760
https://dotnetfiddle.net/QkrIr9
Вот код для удобства
291 1592777
>>592622
При написании гуев, например.
Ты пишешь какую-то свою фунуцию и подписываешь ее на событие -- нажатие какой-то кнопки, при котором эта функция вызывается. Это очень похоже на функции высшего порядка в ФП (в шарпе кстати и они тоже есть), когда ты делаешь как бы "инъекцию" кастомной логики в более обобщенную логику. Например, в стандартной библиотеке Си есть функция qsort, которая может сортировать массив элементов произвольного типа, если определено отношение < на множестве значений типа. Т.е. сама функция qsort не знает, как сравнивать элементы, ты должен это туда передать. Только там это сделано некрасиво и не типобезопасно через указатели на функцию.
292 1592795
>>592760
У тебя условие while не выполняется никогда.
293 1592830
>>592760
Нах два раза переприсваивать переменные? Я плохо знаю синтаксис сишарпа, но как мне кажется, тебе цикл не нужен вообще, ведь значения не будут меняться, нет никакой прогрессии.
294 1592854
>>592760
У тебя и так они сохранятся
Прочитай про локальные переменные
preview.PNG104 Кб, 1008x514
295 1592888
>>591308
Двачую. Не учёл, что сперва прогружаются превьюшки. Пикрил.
Но блядь, что за срач я вижу ниже? ОЛОЛОЛОЛОЛ!
296 1592897
>>592760
Таки да, у тебя условие выхода никогда не выполняется. Ты либо в условии выхода что-то перепутал, либо в формуле расчета.
Можешь просто добавить выход по счетчику, скажем через 10 итераций выходи.
sage 297 1592902
>>586036 (Del)
Зарепортила
298 1592903
>>592316
>>592506
Пасип за ответы, ну буду ковырять дальше.
Просто имею опыт написания для себя десктопных приложух, даже онлайн игру пилил правда не допилил, точнее то что допилил - оказалось неиграбельным, но там как то меньше всяких нюансов знать нужно, как мне кажется.
Вот вообще суть такая - хочу сделать типа базу данных определённую с веб интерфейсом. Десктопная есть. Там суть что программа считывает данные с бд, и потом уже хранит её в оперативной памяти. А пользователь может её как угодно крутить, фильтровать, графики строить по этим данным. Как вносит изменения - так они в бд сохраняются.
В веб версии, насколько я понимаю, фактически при каждом новом запросе (например применить фильтр) надо снова обращаться к бд на диске. И всякие промежуточные настройки тоже или где то сохранять на диске или каждый раз выгружать на форму в скрытых параметрах, а потом получать назад.
Как бы объяснить..
Вот, допустим, у меня в бд хранится список из 100 строк. Пользователь применил фильтр, осталось 20 строк. Пользователь применяет ещё один фильтр. На десктопной версии я просто применяю его к промежуточному списку из 20 строк, получаю 10 и показываю. В веб версии, фактически, мне надо показывая список из 20 строк ещё и выгрузить параметры первого фильтра, что бы потом получить оба фильтра назад, снова загрузить из бд полный список, к нему применить оба фильтра и показать итоговый результат.
Или есть ещё способы?
299 1592930
>>592903
Юзай in-memory database. Или по хардкору бери Эрланг или Эликсир, там есть Mnesia, база данных реального времени, которая встроена в язык. Кроме того там есть ETS таблицы, которые хранят данные в процессах, то есть в оперативке, и дают доступ к данным за фиксированное время. Используй что-то готовое, проверенное, иначе ты будешь строить велосипеды с квадратными колесами.
300 1592950
>>592930

>Или по хардкору бери Эрланг или Эликсир


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

>Юзай in-memory database


Я как бы могу, конечно, напилить ещё одну програмку, которая будет запускаться параллельно, и с которой мой веб сервер сможет общаться и передавать данные. А та уж пусть решает что хранить в оперативке, а что хранить на диске.
Проблема в другом.
Десктопное приложение априори работает с одним пользователем и в оперативке хранит данные этого пользователя. Веб версия должно быть спроектированно так, что бы с ним могли параллельно работать несколько пользователей. И в данном случае - всё равно как то надо ассоциировать хранимые данные с пользователем. В принципе я делал подобное в онлайн игре, но там клиент тоже был приложением, которому я мог задать логику как передавать данные аутентификации и что б это было не так уж легко взламываемым. А тут.. Короче гуглить надо вот эту аутентификацию через браузер... Сам задал вопрос, сам ответил.
301 1592960
>>592777
выкати пример, интересно посмотреть
>>592902
пошла нахуй с борды, селедка
302 1593028
>>592493

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


Вот, а у меня зеркальная ситуация. У меня дофига своих проектов, я на текущей работе (мало связанной с IT) написал херову тучу разных обвязок и программ для облегчения работы, автообработки данных и прочего. Мне (пока что) доставляет программировать, IDE открыта всегда, достаточно часто мне просто в голову приходит какая-нибудь занятная вещь/алгоритм, и я это реализую сразу же (правда достаточно часто это оказываются велосипеды, врать не буду). Но я не учился на это, никогда не читал никаких книг, не проходил никаких курсов (пробовал разок - это скучно пиздец как).

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

В итоге продолжаю сычевать на своей неайтишной работе, и не понимаю, что делать дальше. То ли читать книжки и ебаться с теорией, хотя мне этого совсем не хочется. Или чистить свой код и вываливать проекты на гитхаб, хотя там всё узкоспециализированное под мою текущую работу. ХЗ короче.
303 1593033
>>593028
Почти аналогично, только учебник для чайников я читал. Тоже хочу перекатиться в айти, боюсь слива из за незнания каких то специфических терминов или базовых алгоритмов.
304 1593074
Почему в шарпе нельзя нормально перечислениям задать методы и свойства и приходится извращаться с методами-расширения?
305 1593250
>>593074
Наверно потому что ты долбоёбушка. Пили пример что сделать хочешь, так нихуя не ясно.
306 1593362
>>593250
Скорее всего там классическая невозможность заоверрайдить ToString для энума.
307 1593415
Сходил на тест. Его писал шиз, который свалил из компании. Такая хуета.
308 1593495
>>593415
так и пиши - обосрался.
А еще лучше - пиши вопросы, от твоего строчки профита нет, только убытки
309 1593580
>>592897
Так не получится, в каждом случае нужно будет разное количество итераций
310 1593585
>>592854
Почему тогда при выводе они другие?
311 1593597
>>592760
>>593585

> int fx0 = -1


> while (fx0 > 0)


Чот проиграл немножко.
312 1593606
>>593362
Лол, нет.
>>593250
Бля, что не ясного-то?
Вот я сделал енам:
public enum Transport{
car,
bike,
boat,
airplane
}
Я хочу сделать так:
if(user.Transport.IsNeedOil)
{
//какая-то хуйня
}
В джаве я могу прямо в enum сделать все это, тут же я должен отдельно пилить статичный класс с методами расширения.
Что-то типа:
public static TransportExtension{
publc bool IsNeedOil(this Transport transport) => transport!=Transport.bike;
}

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

Да, этот пример не показателен, но вот представь, что у тебя есть клиент-устройство, у устройств разные версии протокола по которой должен обрабатывать их сервер, какие-то шаги есть у всех версий, какие-то уникальны, в какой-то версии протокола по этому адресу лежит одна информация, в какой-то другая, какие-то пакеты для данной версии протокола требуют подтверждения, какие-то требуют шифрование, довольно удобно вынести версии в перечисление и потом просто что-то типа:
if(cleint.Protocol.IsNeedConformOnRequest()) client.Send(Response.Conform(Request));
//какая-то общая логика обработки запроса
if(cleint.Protocol.IsNeedCipher()) cleint.Response.Cipher(client.SecretKey(), Protocol.CipherAlgorithm());

Да, это все можно расширениями делать, да можно в классы вынести, но блядь, в жаве-то можно было нормально, хули в модном-молодежном шарпе это так заебисто сделано?
312 1593606
>>593362
Лол, нет.
>>593250
Бля, что не ясного-то?
Вот я сделал енам:
public enum Transport{
car,
bike,
boat,
airplane
}
Я хочу сделать так:
if(user.Transport.IsNeedOil)
{
//какая-то хуйня
}
В джаве я могу прямо в enum сделать все это, тут же я должен отдельно пилить статичный класс с методами расширения.
Что-то типа:
public static TransportExtension{
publc bool IsNeedOil(this Transport transport) => transport!=Transport.bike;
}

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

Да, этот пример не показателен, но вот представь, что у тебя есть клиент-устройство, у устройств разные версии протокола по которой должен обрабатывать их сервер, какие-то шаги есть у всех версий, какие-то уникальны, в какой-то версии протокола по этому адресу лежит одна информация, в какой-то другая, какие-то пакеты для данной версии протокола требуют подтверждения, какие-то требуют шифрование, довольно удобно вынести версии в перечисление и потом просто что-то типа:
if(cleint.Protocol.IsNeedConformOnRequest()) client.Send(Response.Conform(Request));
//какая-то общая логика обработки запроса
if(cleint.Protocol.IsNeedCipher()) cleint.Response.Cipher(client.SecretKey(), Protocol.CipherAlgorithm());

Да, это все можно расширениями делать, да можно в классы вынести, но блядь, в жаве-то можно было нормально, хули в модном-молодежном шарпе это так заебисто сделано?
313 1593608
>>593606
Блин, статик забыл в publc bool IsNeedOil но думаю и так ясно.
314 1593616
>>592960
Я не шарпист, так что конкретного примера не привиду.
315 1593620
>>593606
Потому что это, блять, перечисление, с какого хуя в нём должны быть методы и свойства? Это не логично и будет путать при чтении такого кода. Вот увидел ты эту хуйню в коде и будешь гадать, что там васян нахуевертил - класс или перечисление.
316 1593630
>>592960

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


Я не он, но вот тебе абстрактный пример:
У тебя есть кнопка, кнопку ты планируешь много где использовать и кнопка, собственно всегда одна и описывается банально:
public class Button : UIComponent
{
public int X{ get; set; }
public int Y{ get; set; }
public bool IsActive{ get; set; }
public bool IsVisible { get;set; }
public Color BackgroundColor{ get; set; }
public Color BorderColor{ get; set; }
public Margin Margin{ get; set; }
...
public void Click(){
//Собственно общая для всех кнопок логика: Кнопочка потемнела, проигралась какая-то анимация, может быть какой-то звуковой сигнал подала, и т.д.
...
Clicked?.Invoke(this, new ClickEventArgs());}
}

И вот ты в своем GUI разместил кнопку, хочешь чтобы при нажатии у тебя миллиард запросов на сервер отправлялось, а данные брались из других компонентов, ты просто подписываешься на событие Clicked и у тебя происходит магия, при этом в сам класс кнопки ты не лезешь, не делаешь отдельную кнопку: SaveButton, не делаешь еще что-то, просто подписался и каждый раз когда жмакаешь кнопку - что-то происходит, потом ты решил, например ты еще при этом хочешь в файлик начать писать, ты просто к этому событию добавил еще одного подписчика, тот метод вообще не трогаешь, а при этом у тебя добавилась новая логика. Удобно.
Другое дело, как я уже говорил, что это очень много нудной работы по созданию всех этих хендлеров, статичные события в нестатичных классах считаются моветоном, и вообще, когда делаешь в небольшой компании и вы не какую-то библиотеку пишете а активно решаете конкретную бизнес-задачу, события отходят на третий план.
317 1593659
>>593620
Ну смотри, няша, во-первых, окольными путями это таки делается.
Во-вторых, это же удобно. Предложи мне способ более удобный для каких-то более-менее статичных вещей, получать разную логику, не перегружая рабочий код кучей свитчей и ифов? Сделать класс Transport, добавить глобальных констант и из них брать инфу? Не сказал бы что это удобнее, плюс какой-нибудь еблан возьмет и где-то в 1,5кк строк кода создаст новый экземпляр, там все переопределит и потом ищи из-за чего сломалось, тут, даже если добавят в перечисление какой-то новый метод, ничего старого не должно сломаться.
Я же не предлагаю классы заменять. Но опять же, вот ты сделал enum Color, хочешь чтобы Red+Green давало какой-то производный цвет, при этом он брался не из суммы целых, которыми они обозначены, а из (r1+r2, g1+g2, b1+b2), иногда это очень удобно на самом деле. Опять же, в жаве это прямо в enum делается, можешь сразу так вот сделать:

public enum Color{
red(255,0,0),
green(0,255,0),
blue(0,0,255)
;

private final short red;
private final short green;
private final short blue;

Color(short r, short g, short b){
this.red = r;
this.green = g;
this blue = b;}
}
318 1593670
>>593620

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


Да, еще кое-что, в ООП - все, по сути, классы. И на мой взгляд, как раз постоянно разделять: Это класс, это перечисление, это структура, это еще какая-то фигня; запутывает больше.
319 1593672
>>593659

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


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

>Во-вторых, это же удобно. Предложи мне способ более удобный



Делаешь абстрактный класс Transport, а от него производные. Если что-то переопределять нельзя, то используешь модификатор sealed.

>Я же не предлагаю классы заменять.


Ты предлагаешь мешать перечисления с классами. Это не добавляет коду читаемости, это запутает тебя после того, как ты вернёшься к этому коду через несколько недель.
320 1593675
>>593670
Структура и класс отличаются по методу хранения в памяти. Перечисление это просто список идентификаторов. Всё распределено и понятно, а у джавистов мало того, что нет структур, так еще и перечисления смешаны с классами.
321 1593680
Аноны, а можно ли сделать override ToString например у int? Не то что бы это было нужно мне, просто интересно, возможно ли.
322 1593681
>>593680
Нельзя, только метод расширения создавать, назвав ToStr, например.
323 1593684
>>593681
Да, тоже проверил сейчас. Забавно, что метод расширения можно назвать ToString, и он даже будет отображаться в подсказках, но компилятор его наличие будет молча игнорировать, даже ошибки не выдаст.
324 1593690
>>593672

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


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

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


Я знаю это. Что при этом должно мешать мне наследоваться от структуры? Скажем вот у меня есть struct Point2d, хочу сделать Point3d, отличия будут в одном поле и паре методов, в остальном почти все аналогично, но нет, я должен буду либо сразу пилить point3d и выставлять там z - ноликами, либо копипастить из Point2d

> список идентификаторов


И что мешает списку идентификаторов добавить какие-то свойственные какому-то идентификатору свойства? Опять же, вот для игры:
enum Enemy
{
orc, slime, wolf, warlok, elfArcher
}
Скажи, по твоему удобнее в классе писать:
if(!(enemy == Enemy.warlok|| enemy == Enemy.elfArcher)) rangeAttack(Enemy.warloc l? castSpeel() : shootArrow())
else meleeAttack();
или свичем:
switch(enemy)
{
case Enemy.warlok:
case Enemy.elfArcher:
...
default: meleeAttack(); break
}

чем
Enemy.Attack(), а уже в перечислении ты указал, будет это ближняя или дальняя атака
Делать кучу экземпляров и эти твои фабрики, которые будут мне производить орков, эльфов и т.д. на мой взгляд скорее перегружает код, и запутывает человека, который не страдает паттернами головного мозга.
324 1593690
>>593672

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


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

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


Я знаю это. Что при этом должно мешать мне наследоваться от структуры? Скажем вот у меня есть struct Point2d, хочу сделать Point3d, отличия будут в одном поле и паре методов, в остальном почти все аналогично, но нет, я должен буду либо сразу пилить point3d и выставлять там z - ноликами, либо копипастить из Point2d

> список идентификаторов


И что мешает списку идентификаторов добавить какие-то свойственные какому-то идентификатору свойства? Опять же, вот для игры:
enum Enemy
{
orc, slime, wolf, warlok, elfArcher
}
Скажи, по твоему удобнее в классе писать:
if(!(enemy == Enemy.warlok|| enemy == Enemy.elfArcher)) rangeAttack(Enemy.warloc l? castSpeel() : shootArrow())
else meleeAttack();
или свичем:
switch(enemy)
{
case Enemy.warlok:
case Enemy.elfArcher:
...
default: meleeAttack(); break
}

чем
Enemy.Attack(), а уже в перечислении ты указал, будет это ближняя или дальняя атака
Делать кучу экземпляров и эти твои фабрики, которые будут мне производить орков, эльфов и т.д. на мой взгляд скорее перегружает код, и запутывает человека, который не страдает паттернами головного мозга.
325 1593729
>>593690

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



На фортране с goto тоже проекты на несколько сотен тысяч строк писали и не запутывались. Это не оправдание.

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



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

>Скажи, по твоему удобнее в классе писать:



Создаешь перечисление AttackType и делаешь соответствующее поле у классов Orc Slime Wolf и т. д.

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



Так пиши сразу на С, зачем тебе вообще ООП, мозг засорять только. Твоя проблема в том, что у тебя хуевая архитектура приложения и ты жалуешься на то, что язык мешает тебе эту хуевую структуру реализовать.
326 1593787
>>593729

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


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

> Создаешь перечисление AttackType и делаешь соответствующее поле у классов Orc Slime Wolf и т. д.


Чем, блин, это приницпиально отличается-то? Да ничем, только строк кода больше написать придется, а потом искать по всему коду где ты что-то зафакапил, в то время как в данном случае ты, если и зафакапил, то точно знаешь где и за 10 секунд исправишь.

> Так пиши сразу на С, зачем тебе вообще ООП, мозг засорять только


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

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


Нормальная у меня архитектура: гибкая, расширяемая и при этом если что-то кто-то сломает, сразу легко локализировать проблему. Если же у тебя есть какая-то иерархия, плюс в базовом классе какая-то логика, то на поиск конкретного места, где что-то пошло не так, может полчаса уйти, даже если ты все-все-все логируешь.
327 1593960
>>593729

>структура хранится в стэке, а не в куче


Доказать можешь? Ты ведь откуда-то это взял, значит где-то прочитал. Где?
328 1594056
>>593630

>ты просто подписываешься на событие Clicked


это и есть паттерн publisher-subscriber ака события в C#
329 1594075
>>593960
Это основы различия value type от reference type. Структура это value type
77.jpg257 Кб, 520x438
330 1594097
>>593690

>Скажем вот у меня есть struct Point2d, хочу сделать Point3d, отличия будут в одном поле и паре методов, в остальном почти все аналогично,


Лол нет, это принципиально разные сущности, лучше одно от другого не наследовать.

>либо копипастить


В чем проблема?

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

Используй интерфейсы, и только если вот совсем прижмёт - наследование.
Если у тебя нет интерфейсов, но есть наследование - ты что-то серьёзно делаешь не так.
15798913824070.jpg80 Кб, 540x533
331 1594099
>>593787

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


Расскажи о логике хранимой у тебя в структуре Point2d ?
332 1594256
>>594075
Не всегда, о обычно. И это не главное отличие, а деталь реализации.
333 1594257
>>594075
Про различия этих типов я знаю. Но я не могу въехать в то как хранятся структуры в стеке. Как функции живут в стеке я понимаю. Есть стековые кадры и прочее. А как структуры не могу понять. Где можно об этом почитать?
334 1594259
>>594099
Не пости такие пикчи. Будь человеком.
66.jpg205 Кб, 520x450
335 1594280
>>594257

> Но я не могу въехать в то как хранятся структуры в стеке. Как функции живут в стеке я понимаю. Есть стековые кадры и прочее. А как структуры не могу понять. Где можно об этом почитать?


Ты контуженный или что?
Ну структура допустим int32 double byte
4+8+1 = 13 байт.
Вот блядь берем, и пушим эти 13 байт в стек, в чем проблема? Что тебе непонятно в этом?
336 1594307
>>594280
Как при раскрутке стека это все хранится и используется?
337 1594314
>>594307

>Как при раскрутке стека это все хранится и используется?


Так же как и обычные переменные, отличия никакого нет.
338 1594954
Этот тред для тех, кто хочет освоить язык для лоботомированных дебилов устаревший в момент его создания.
339 1594955
>>594954
Джавист, ты?
Безымянный.jpg7 Кб, 395x47
340 1594996
Подскажите можно ли в Windows Forms в CheckBoxList сделать больше 1 чекбокса для каждого элемента в списке? (пример на картинке, слева как есть, справа как хочу)
341 1594997
>>594996
Нахер зайцу пятая нога?
342 1595001
>>594997
Хочу мониторить элементы в CheckListBox, 1 состояние не позволяет пометить элемент для разных условий (например первый чекбокс просто добавляет в список отслеживания, второй указывает надо ли совершать какие либо действия)
343 1595004
>>595001
Добавлю, я мог бы с 1 полем добавить в разные списки элементы в несколько проходов в ручную, но но я хочу сделать наглядно и просто, с возможностью в любой момент поменять значения у элементов без надрачивания кнопок
344 1595008
>>586030 (OP)
Нужно ли совать try-catch во все методы, или достаточно пихнуть его только в основной, из которого они вызываются?
345 1595043
>>595008
try-catch очень трудоемкий процес. Так что желательно пихать его в верхние слои приложения, чтобы не вызывать каждую секунду. Или делать стейт отлавливатель ошибок.
А еще лучше возьми хороший проек/библиотеку и посмотри как там сделано, чтобы не слушать анонов с двача
346 1595045
Аноны всем привет. Кто-нибудь работал с ResetEventSlim?
Суть такова:
Вызывается метод GetState, запускается таск с подпиской на приходящие уведомления о новых состояниях, как только в StateReceived поступит нужное состояние, в StateReceived вызывается ResetEvent.Set();

private State GetState()
{
CurentState = null;
new Task(() =>
{
agent.Received += StateReceived;
}).Start();

ResetEvent.Wait();

agent.Received -= StateReceived;

return CurentState;
}

Пару вопросов:
При повторном использовании программа вылетает без ошибки.
Иногда при работе с другим классом вызывается данный таск.
Как быть? Как можно улучшить данный говнокод?.
347 1595059
>>586030 (OP)
Кто ищет потёртую мочёй наноборду - добро пожаловать, через TorBrowser, вот сюда: http://nboardn46ay6ycdi.onion/
348 1595061
349 1595092
>>595045
Зачем ты вынес подписку в отдельный таск?

> программа вылетает без ошибки


Очень маловероятно. Попробуй писать лог для AppDomain.CurrentDomain.UnhandledException, и можешь подписаться еще на AppDomain.CurrentDomain.FirstChanceException, если ты где-то наебался с catch'ами.

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


Чего бля? Если не надо, не вызывай.
>>595045

>Как можно улучшить данный говнокод?.


Лучше б описал, что а задачу ты решаешь этим кодом
350 1595103
>>595092
мне нужно реагировать на разные состояния которые приходят из agent.Receive, а точнее EventHandler<State> Receive.
Вынес в отдельный таск так как в нем крутится ожидание нужного состояния:
private void StateReceived(object sender, State e)
{
if(e == State.Ready)
{
IsReady = true;
ResetEvent.Set();
return;
}
}

>Чего бля? Если не надо, не вызывай.


Вызывается из другого класса, так как другой класс так же работает с состоянием
351 1595116
>>594996
В каком списке? ListViev? https://www.codeproject.com/Articles/9188/Embedding-Controls-in-a-ListView . А вообще кастомизация контролов форме это боль. Если нужно что-то не стандартное пили на wpf. Еще можешь попробовать через datagridview, у него есть поддержка колонок с чекбоксами.
352 1595117
>>595092
Короче. Напишу полностью, а код псевдоязыком, так быстрее и понятнее будет.

У меня есть собственная Web Api, которую я сейчас пишу. Она через мною написанного посредника вызывает библиотеку api одного сервиса.
В этом посреднике, есть методы которые стучат в библиотеку api одного сервиса.
Когда посредник стучит "api одного сервиса" он возвращает состояние, по типу: готов, не готов, уже готов.
Мне и нужно чтобы посредник возвращал, выполнен ли метод, по вызову библиотеки api одного сервиса, успешно.

К примеру:
В мою Web Api стучат по данному адресу: https://localhost:/Initialize
Web Api обращается к моему посреднику через: public async Task<bool> CheckReady
Сам посредник стучит в стайт у себя GetState()
Потом в методе посредника public async Task<State.Ready> CheckReady смотрит какое состояние пришло: var state = GetState() и смотрит что пришло: if (state is State.Ready) return true
353 1595123
>>595103

> реагировать на разные состояния


Ну напиши через свитч, вызов нужного обработчика на конкретный стейт. Я в похожей ситуации делал менеджера с методом RegisterListener<StateType>(action<stateType>) и менеджер разруливал когда кого вызывать.

>Вынес в отдельный таск так как в нем крутится ожидание нужного состояния


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

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


Не понятно. Если ты теребонькаешь один и тот же ресетевент, то чего ты ожидаешь?
354 1595134
>>595123
а есть кусочек примера менеджера?

>Не понятно. Если ты теребонькаешь один и тот же ресетевент, то чего ты ожидаешь?


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

То есть надо создать что-то типа такого:

public async Task<State> RegisterListener<StateType>(action<stateType> callBack, State waitState)
{
var state = Как из agent.Received взять нужный стейт?
if (state is waitState.type()) callBack();
}

Это понятно, но как мне ожидать и получать от agent.Received нужный мне стейт?
355 1595161
>>595117
https://pastebin.com/8bGJcH6X
так?

>>595134

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


https://pastebin.com/PwnzmdRd - хуйня для хранения обработчиков (не помню, почему я лочил вручную, а не использовал конкурентдикшинари, возможно просто проебался)
https://pastebin.com/9xsVNfNt - хуйня которая получает сообщения

>>595134

>Это понятно, но как мне ожидать и получать от agent.Received нужный мне стейт?


Тебе надо повторять запрос, пока одноапи не вернет рэди?
14060607257298.jpg37 Кб, 456x367
356 1595173
>>595161
ОГО! Спасибо огромное, с меня как обычно

>Тебе надо повторять запрос, пока одноапи не вернет рэди?


Нет. В начале при старте и инициализации agent и подписки на agent.Received присылаются пара стейтов примерного типа: StateReadyInialize, StateStartInitialize
И как только пришли данные стейты нужно сразу реагировать и инициализировать библиотеку стороннего апи
357 1595236
>>595173
так я нашел лучшее решение. rxjs для net. Прям то что нужно, осталось пару вещей прикрутить и будет самое то. Но все равно спасибо анон за примеры, очень выручил
358 1595333
>>586030 (OP)
Недавно понял что хочу вкатиться в геймдев. Сейчас раздумываю над карьерой. Понятно что я нуб.
Но как цель я вижу себя работающим с играми на юнити, благо он популярен.
И я знаю что для работы с юнити нужно знание си Шарп.
А для знания си Шарп лучше всего перед этим выучить си/си++, чтобы знать основы.
Хочу пойти в мой областной госунивер для переподготовки. Год занятий, знания, знакомства в айти сфере, официальная бумажка о переподготовке.
Естественно, я понимаю что мне нужно и самому учиться. И свои какие то проекты делать.
Просто хочу узнать насколько жизнеспособен мой план?
359 1595419
Зачем может понадобиться вот это:
if (obj is var _)
{
// Делать что-то.
}
360 1595432
>>595419
Не за чем. Если только как плохой пример использования пустых переменных
361 1595434
>>595432
Бля, хотел добавить выразительности, написав по слогам, а получилось как будто даун написал.
362 1595511
1. В чём разница между Hashtable и Dictionary<object, object> ?

2. Что будет, если использовать в Hashtable ключи типа Long, и попытаться добавить две пары ключ-значения, в которых ключ будет разным значением Long, но иметь одинаковый HashCode()?

3. Что будет в случае из п.2 для Dictionary?
363 1595536
Почему ReferenceEquals = false в данном случае?

int x = 5;
ref int y = ref x;
ref int z = ref x;

Console.WriteLine( object.ReferenceEquals( y, z ) );
364 1595568
>>595511

>Hashtable и Dictionary


Это же устаревшие коллекции, не?
365 1595605
>>595568
Вместо hashtable лучше использовать HashSet<T>, Dictionary<K,V> полностью актуален. Но вопрос скорее про принципиальные различия, а не про конкретные классы библиотеки.
>>595536
Молодой человек, у вас структуры упаковались.
366 1595664
Как правильно сравнивать спан со строкой без аллокаций?

https://pastebin.com/EMHaYy4D
367 1595828
Объясните тупому зачем нужны делегаты. В идеале с примером для дурачков. Спасибо.
368 1595831
>>595828
обсосанная 101 раз тема. Гугли паттерн Publisher-subscriber и смотри какие задачи он решает.

Вопрос к анону про использование асинхронных методов. Есть клиент-серверное приложение. На каком этапе нужны асинхронные методы:
1. На серверной (business model)
2. На клиентской (controller)
3. И там и там.
Спасибо
369 1595853
В чём отличие int.Parse() от Convert.ToInt32()?
370 1595884
>>595511
referencesource
371 1595887
>>595884
Это что ли?
https://github.com/microsoft/referencesource
Там нихера нет. System.Collections нет в том числе.
372 1595891
>>595887
пиздец, referencesource.microsoft.com
посмотри там свои коллекции, узнай как они решают коллизии
373 1595893
Начал писать веб-приложение на связке Net. и React.
Начать с Net.4 или сразу с Net.Core? В этом году, с выходом Net.5 разделения уже не будет же.
374 1595895
>>595828

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

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

Другое применение - сигнализация о событиях.
event - это сахарок над делегатом, который обеспечивает потокобезопасное добавление\удаление методов, а также ограничивает доступ до собственно добавления и удаления.
375 1595907
>>595043

try бесплатен если нет исключения.

Конечно, чем выше по стеку ловишь, тем лучше.

Но надо учитывать, что у MS в их стандартном API исключение потенциально может кинуть любая операция, небо, земля и Аллах.

Поэтому надо смотреть - где ошибка допустима и можно продолжать, там тоже ловить, вместо того чтобы тупо падать.
376 1595909
>>595419

Это проверка типа с последующим кастом в этот тип

interface IA { }
class B : IA { }

void test()
{
B b = new B();
if(b is IA a)
{
a. // a приведено к типу IA
}
}

Альтернатива:

IA a = B as IA

Если B не имеет нужный тип, то результатом будет null
377 1595912
>>595853

Небольшая разница в поведении - методы Convert не кидают исключение от null на входе (но по прежнему могут кинуть если значение не парсится)

TryParse вообще не кидает исключений ни в каком случае. Лучший (единстенный разумный) вариант, когда надо много парсить, т.е. не упарывается производительность
378 1595914
>>595893

>с выходом Net.5 разделения уже не будет


Пока что Net.Core, в отличие от Net.Framework, не позволяет работать с офисом (excel, word и т.п.). Подключить например Microsoft.Office.Interop.Excel для работы с объектами Excel в net.core нельзя.
Когда это исправят? В Net.5? Раньше? Или никогда?
379 1595927
>>595914

Вот у них семпл есть под последний неткор: https://github.com/dotnet/samples/tree/master/core/extensions/ExcelDemo

В районе 2ой версии были проблемы с COM Interop

Ну и с добавлением в проект пока надо пердолиться
380 1595935
>>595893

Net 5 будет на базе NET Core

NET 4.x это легаси, они его будут поддерживать, но не будут развивать. Он уже не поддерживает новый Net Standard.

Т.е. с точки зрения будущего, лучше учить неткор. Но только не факт, что условная контора, в которой ты работаешь/будешь работать будет на него переходить. Получается что старый дотнет тоже знать неплохо, а там разница в API (тот же асп нет перепилили)

А вообще заебали они, мусорная свалка вместо экосистемы.
381 1595990
>>595914
Epplus для excel, с вордом не работал
382 1595991
>>595935
Сделали бы что-нибудь вместо xamarin
383 1596027
Анон помогите, а то туплю сильно.
Нужно записывать в json новый пришедший объект и добавлять в json как массив:
[
{
Name: 1
Id: 0
}
]
Пришел новый объект и добавлять его к старому в json
[
{
Name: "AA"
Id: 0
},
{
Name: "BB"
Id: 1
}
]

Как быть?
384 1596037
>>595333

>А для знания си Шарп лучше всего перед этим выучить си/си++, чтобы знать основы.


Ебу дал? Сразу шарп учи, качай книжки из шапки и пиздуй на ulearn.
385 1596080
>>596027
Читаешь старый жейсон, записываешь новый. В чем конкретно проблема? В шарпе 100% должен быть парсер жейсона встроен.
386 1596083
>>596080
как перый элемент записать как элемент массива,
как добавлять новый элемент в массив json. Ведь читать, парсить в list и обратно записывать, очень дорого стоит. Есть более оптимальные пути?
387 1596086
>>595831
бамп
388 1596101
>>596083

>list


В шарпе не в коллекции объекты парсится?

>очень дорого стоит


Памяти? Какой размер жейсона у тебя?

Поясни свой юзеркейс.
389 1596149
>>596083

Экономия на спичках, по-моему.

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

Можно упороться и не десериализовывать существующий json, а сериализовывать новый объект и руками дописывать текст.

Все упираяется в то, что юзкейс неясен
390 1596150
>>596080

System.Text.Json есть только в последнем неткоре и он дико негибкий.

Все юзают newtonsoft.json

https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-migrate-from-newtonsoft-how-to

У некоторых юзкейсов даже workaround'ов нет
391 1596152
>>595990
Это сторонняя поделка, которую вполне могут прекратить развивать.
У которой к тому свой собственный синтаксис, отличный от объектной модели excel'я. Если надо какую-то хитрую хуйню в екселе сделать - делаешь вручную, записывая макрос, и получаешь все ответы. Со сторонней хуетой вместо этого будешь сутками курить мануалы.
Ну и в целом учитывая объём функционала Excel'я и тонких особенностей поведения, что-то слабо верится, что всё это будет работать нормально, если задача будет чуть шире, чем вставить неформатированные данные в ячейки.
15397846649820.jpg17 Кб, 452x339
392 1596159
Вопрос по Листам List<T>.
Как находить объекты в листе, если он изменился по наполнению (что-то удалилось, что-то прибавилось)?

Например: у меня есть "объект1".
Я добавил его в "Лист1", в котором было уже 4 других объекта. Т.е. индекс "объект1" в листе будет 5.

Теперь я удаляю какой-то объект из тех четырех из листа, порядок объектов по индексу в листе ведь меняется. Как мне теперь отыскать "объект1"?
dwe00234g04.gif13 Кб, 154x218
393 1596165
>>596159

>Как мне теперь отыскать "объект1"?


Этот объект чем-то уникальным среди остальных объектов выделяется?
ДА :- ищи по этом уникальному свойству.
НЕТ :- в твоей архитектуре этот объект ненужен.
394 1596166
>>595927
Это работает и на нет.кор 3.1. Спасибо.
395 1596173
>>596159

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

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

Если ключ - сложный объект, придется пердолиться либо с IEqualityComparer, либо оверрайдить Equals и GetHashCode. Лучше так не делать
396 1596178
>>596101

>В шарпе не в коллекции объекты парсится?


Приходится делать костыль в виде новой коллекции и туда добавлять элемент. Это если в файле ничего нету, а объект надо сохранить как элемент массива.

>Памяти? Какой размер жейсона у тебя?


Где-то 10-15 объектов с 6 свойствами. 1 свойство лонг, 3 стринговых и 2 int. Это чудо парсится на сервере и передается в виде строки пользователю, там строка парсится в объект опять.
397 1596181
>>596037
Нужно знать основы C/C++. Не в смысле уметь применять детали последних стандартов. Но какую-нибудь книгу из серии "Освоить за 21 день" надо почитать и поделать примеры/упражнения.
Байтоёбство, управление памятью, указатели на указатели на указатели. Без этого в ряде аспектов ты в шарпе сможешь работать только как макака на интуиции, без понимания.
398 1596189
>>596181
Всё нужное объясняется в книгах по шарпу. То что ты там "выучил" из книги Освоить за 21 день, забудится через 21 день и никакой пользы не принесёт, только запутать может.
399 1596203
>>596189
В книгах по шарпу даётся объяснение на словах. И потрогать ты можешь всё это только в трёх презервативах через много слоёв абстракции.
По учебникам по С/С++ можно позапускать примеры или упражнения оттуда и потрогать указатели и память, как она есть.
unnamed.jpg61 Кб, 512x341
400 1596229
>>596203
этот все верно говорит. Без С и C++ в решетках делать нечего. А еще лучше - Assembler (низы низов, так сказать). Если хотите копнуть глубже и вы харкорщик - бинарный код. Вот, чем можно удивить на собесе и вывалить на стол на качалку докторской колбасы. Он тебе про преобразование виртуальных полей в CLR, а ты ему ряд из нулей и единиц. Сразу поймут, что ты человек серьезный и больше спорить с тобой не будут.
Вообще не понимаю всех этих пидарских новомодных решеток, когда есть старые, добрые, проверенные временем так сказать, Cobol и SmallTalk (без последнего ООП не осилишь никогда).
Поэтому да, бросайте эти ваши решетки, где 99% кода делает IDE и разбирайтесь в низкоуровневых вещах.
401 1596236
Сука ебанный blazor. Как загружать данные VM до того как view загрузилась и делать это асинхронно? OnInitializedAsync не работате, страница зависает.
402 1596261
>>596229

>преобразование виртуальных полей в CLR


И опять пук в лужу. В С++ тебе на первых 100 страницах любого учебника расскажут, что такое vtable, как оно устроено и как работает.
В решеточке макаке расскажут, что не надо париться, там внутренняя магия, написанная серьезными дядьками на С, сама за тебя всё сделает.
403 1596284
>>596178

>Где-то 10-15 объектов с 6 свойствами. 1 свойство лонг, 3 стринговых и 2 int. Это чудо парсится на сервере и передается в виде строки пользователю, там строка парсится в объект опять.


Так тебе стримить нужно клиентам новый жесон челе?
Ну ебана, парси просто символы прямо из стрима, если хочешь оптимизировать всё до упора.
binary-code-2987483960720.jpg309 Кб, 960x678
404 1596289
>>596261

>И опять пук в лужу


>В С++


Ты понимаешь хоть как vtable отдает нативные команды процессору? Как кеширование и преобразования в двоичный код происходит? Ты на ассемблере сможешь пояснить за твои витруальные таблицы?
Без этих знаний ты такой же пустоголовый погромист, который работает с абстракциями, как и решеточники. Грош цена твоим знаниям.
405 1596297
>>596284
Да. Клиенту приходит json стринг и нужно его превратить в объект
изображение.png791 Кб, 640x640
406 1596350
Сел писать веб-приложение для саморазвития, резюме и карьерных перспектив. Есть старые туториалы для .Net 4.7 (включая Entity Framework 6 и ASP.NET MVC), есть новые для .Net Core (ASP.NET Core + Entity Framework Core).
Насколько я понимаю, разница не особенно критична, и в резюме работа с Core будет смотреться интереснее, а разобраться со старыми версиями, если на новом месте будет легаси-код, будет не сложно. В свете ожидания .Net 5, думаю, лучше будет сразу написать приложение на Core, верно?
407 1596366
>>596350
Конечно Core. Но будь готов к жопе, ибо множество библиотек еще не перешло на core и внутренние вещи еще не допилены, а компании не готовы пока переносить свой старый рабочий код. Так что дилемма и надо знать все
408 1596374
>>596350
Присоединюсь к вопросу. Тоже думаю, стоит ли в своих самообучающих проектах переходить на кор?
Вот это вот имеет какое-то значение для учебных целей?
Может быть такое, что макака умеющая в кор, не сможет в фреймворк? Или наоборот?
409 1596437
Давайте набежим в МВП тред и будем шарп форсить и унижать там всех!
410 1596449
>>596437
давай ты нахуй сходишь, быдло. Ок?
image.png5 Кб, 891x53
411 1596473
Анончики, помогите идиоту, как сделать чтобы текст бокс принимал записи такого типа т.е как математические формулы, ибо через парс не выйдети не должно, а по другому я не могу найти как это сделать
412 1596513
>>595831
бамп
413 1596528
>>595907
Вообще-то нет, не бесплатен.
По факту он чуть дороже if блока, при условии что не вылетает исключения иначе дороже в 10000 раз (цифра примерная, возможно в реальности все куда хуже).

>>596473
Искать библиотеки которые за тебя будут это парсить, либо делать все ручками.

>>596289
Эти знания не несут практической пользы для 99.8% программистов, они больше академические.
414 1596533
>>596473
В смысле принимал? Если ты хочешь чтобы в такой форме можно было представлять данные, а потом вычислять, то гугли про конечные автоматы и как их использовать при синтаксическом анализе. Если коротко: делаешь словарь лексем, затем разбиваешь "текст" на "слова", кладешь числа в стек с числами, операторы в зависимости от приоритета в стек с операторами, потом достаешь из стека число, оператор и еще одно число, результат операции кладешь на вершину стека. В конце, если запись была валидной, у тебя в стеке с числами должно остаться одно число, оно и будет результатом вычисления.
415 1596573
>>596473
Насчет этого поста >>596533, с алгоритмом я немного напутал, давно уже это было. Суть, гугли алгоритм вычисления с помощью обратной польской записи. Там одного стека достаточно, ну и изначально проверить чтобы в строке только валидные символы были, которые ты умеешь обрабатывать.
416 1596577
>>596573
Спасибо, попробую почитать
417 1596641
Поясните, MVC .NET Core будет работать из коробки на линуксе через моно?
418 1596644
>>596641
уже давали ответ в этом треде >>1585903 →
419 1596729
Антоны, у меня есть необходимость кучу файлов распарсить в папкеИх реально много, больше 100к, каждый нужно открыть, вырезать из него знаки табуляции, перезаписать, скопировать текст и потом сделать Distinct.
С одним потоком я знаю как, а вот как в нескольких потоках это сделать, пока есть идея только разделить заранее файлы по количеству доступных потоков и в каждом все делать отдельно.
420 1596761
>>596729

>есть идея


делай, потом приходи и скидывай результат
421 1596784
>>596729
Что мешает просто для каждого файла в папке сделать таск в таск передавать файл, там уже делать то что тебе надо?
dwe00234g09.gif50 Кб, 324x414
422 1596787
>>596513

>бамп


>>595831

> На каком этапе нужны асинхронные методы


Для чего нужны?

Ты лабу делаешь, или тебе за это деньги платят? Если платят, то я могу 10ток таких как ты заменить.

Это я к чему, архитектура у тебя какая? Задачи какие решаешь? Всё зависит исключительно от конкретного юзкейса.
Сервер ты скорее всего хочешь асинхронный делать, но это не всегда так.
423 1596805
>>596787

>Ты лабу делаешь, или тебе за это деньги платят?


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

>Если платят, то я могу


Высрать 3 строчки флуда и еще 3 беспонтовых советов. Такого рода совет я мог у любого бездарного мимо_ойтишника ака манагера получить
424 1596809
>>595831
Асинхронные методы нужны там, где выполнение метода может задержаться из-за необходимости долгих вычислений, либо из-за ожидания стороннего ресурса. Т. е. ответом будет - и там и там.
425 1596842
>>596729
Думаю по примеру ты разберешься.
426 1596844
>>596805
Ты чего на ровном месте разорвался?
Джавашизик ты?
427 1596847
>>596809
спасибо, уже разобрался с этим. Как на серверной стороне, так и на клиенской (в виде аутентифицированных пользователей) создается стек запросов, который пополняется и выполняется поочередно не затрагивая основной поток
428 1596877
>>596842
Оу, не ждал такого быстрого ответа.
Но я реализовал по другому, так как помнил, лол.
Сделал через дочерние таски с флагом longrunning.
И все сработало в итоге, не ожидал, что мой аутизм окажется плодотворным
429 1596895
>>596784
Ты чего там, хочешь, чтобы у меня 183к тасков на компе было?
Я взял один list из fileinfo, поделил его на 6 частейколичество ядер процессора и передал их дочерним таскам.
Просто помню, что longrunning может обрабатываться в другом потоке
430 1596899
>>596895

> 183к


Будто это много, лол.
431 1596963
>>596528

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


диды на паскале писали, на каболе писали, на фортране, мать его, писали. Какой ты погромист, если дидов не уважаешь? Так, конструктор типа в бинарный код, на бумажке. Потом будем побитовые сдвиги делать и переводить обратно в ассемблер.
432 1596972
>>596963
Звучит как "Это классика, знать надо" и "Не мы придумали традиции, не нам их и отменять".
hqdefault.jpg11 Кб, 480x360
433 1596980
>>596972
Собралась тут значит, перхоть. МОЛЧАТЬ. Чем Cobol отличается от APL? Какой код в Assembler делал возврат к циклу? Это знать нужно. Это классика блять.
434 1597009
>>596980
Заебали вопросы из собеседований палить. Мне теперь новые придумывать
мимо HR
435 1597034
Если есть Х классов, которые в той или иной мере между собой схожи (например у всех есть интерфейс INotifyPropertyChanged), стоит ли запиливать иерархию базовых классов, если конечные классы кастить не нужно? То есть базовые классы нужны только чтобы код не дублировать.
436 1597095
>>597034
Винеси в статик класс хелпер
437 1597099
>>597095
Как именно?
Можно на примере того же INotifyPropertyChanged
438 1597132
>>597099
Скинь код свой, че-то может вийдет.
Но наследование всегда плохо.
439 1597431
>>597132
Скидывать не буду - там такая каша, что я сам уже не разбираюсь. Я не знаю, что хочу, постоянно порываюсь переделать, думая что ща станет лучше, поэтому пиздец. Тем более я учу по чуть-чуть, наскоками, так что сам понимаешь.
Я думаю, как поступить - сейчас у меня "концепция" из кучи похожих между собой классов - например все реализуют INotifyPropertyChanged и у всех есть свойство Name, но не у всех есть сеттер. Мне казалось очевидным запилить базовые классы, но это развесистое дерево, и использовать базовые классы я не собирался, поэтому висеть они будут мертвым грузом. Алсо мне не нравится постоянно лезть в иерархию. Это, конечно, мои ньюфагодебилопроблемы, но как-то так.
440 1597452
Короче, был класс, вышел на 1,5к строк. Я как не пытался придумать как его декомпозировать, ничего не придумал лучше, чем порезать его на partial, разделив более-менее на функцие которые каждый кусок выполняет. Так вот, сильно ли это плохо? Типа это же, по сути, запихивание под ковер пыли. С другой стороны, а как декомпозировать-то конечный этап обработки пакетов? Типа вот пакет регистрации, вот пакет сохранения файла, вот пакет передачи инфы о клиенте. Я хз, потому просто покрамсал как раз на MessageHandler.SaveFile, MessageHandler.Registration, MessageHandler.Auth, а в обычном MessageHandler просто свитчем ебанул какой метод на какой пакет выбирать. Хз короче.
441 1597491
Помогите с регекспом. Как мне прописать условие или символ, например, '#', или начало строки. Пример

#abc - йеп
abc - йеп
vabc - ноуп
442 1597495
>>597491
отбой, я обосрался
443 1597497
>>597491
^#?abc
444 1597539
>>597452
У нас были 2 некомпилирующихся проекта, 75 классов, 5 DI контейнеров, UML диаграмма и целое множество сущностей всех сортов и расцветок, сиглтон, а также фасад, адаптер, бридж, чистый SOLID, как он есть и 2 абстрактные фабрики. Не то чтобы это был необходимый запас для хорошего проекта, но если начал собирать проект, становится трудно остановиться. Единственное, что вызывало у меня опасение — это сиглтон. Ничто в мире не бывает более беспомощным, безответственным и порочным, чем абуз сиглтона. Я знал, что рано или поздно мы перейдем и на эту дрянь.
445 1597773
>>586030 (OP)
Как засунуть изменённые значения массива, внутри словаря находящегося - в другой массив,
да так, чтобы не изменять значения в изначальном массиве, который по ключу в словаре?
446 1597782
>>597773
Суть вопроса - в следующем коде: https://rextester.com/FGCO14814
ВТФ? ЧЯДНТ?
447 1597812
на раз-два... анон, есть два месяца на перекат (дальше выгоняют на улицу).

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

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

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

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

И чтобы это все было описано наиподробнейше. Потому что я тупой, мне надо раззжевывать
448 1597816
>>596152
Для Microsoft.Office.Interop.Excel нужен установленный офис там, где исполняется код. Ставить на сервер майкрософт офис - дело достаточно сомнительное и у нас пропадает кроссплатформенность (что, внезапно, фишка core).
Для EPPlus офис не нужен. Со всеми преимуществами этого решения. Макросы на нем тоже можно делать. Все там достаточно нормально работает, мне всего один раз пришлось костыль лепить.
449 1597819
>>597812

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


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


>Потому что я тупой, мне надо раззжевывать



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

>чтобы вот щас изучить и сразу же вкатится во фриланс


Во фриланс вкатиться сложнее, чем на галеру

Выглядит как no way
450 1597880
>>597812

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



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

Читай Троелсена, потом Рихтера. По паттернам любая книга подойдёт. Но вообще за 2 месяца реально только в веб-макаку вкатиться, при условии, что каждый день будешь заниматься плотно.
451 1597907
>>597819

>За два месяца с хлебушка до зп хорошего такого дотнет миддла,


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

>>597880

>а потом уже объемней проси,


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

>>597880

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


все алгоритмы придуманы много лет назад. Но одни актуальны, другие нет.
Например там щас говорят набирает моду какой-то новый алгоритм дерева.. ну как новый еще до моего рождения был придуман, а юзать стали только в 2010 году вроде.
452 1597918
>>597782

>string[] copystrings = dict["key1"]; //копируем массив по ключу, из словаря...



Ты не массив скопировал, а ссылку на массив, соответственно поменял оригинал. Array это reference type.

Array.Copy в помощь, ну или ручками:
string[] copy = new string[original.Length];
for(int i = 0; i < original.Length; i++) copy = original

Да, бзв, string это тоже reference type, только с поведением как у value type. Когда ты модифицируешь строку, ты ее не модифицируешь, а создаешь новую.
453 1597920
>>597918

>for(int i = 0; i < original.Length; i++) copy = original



самофикс
454 1597924
>>597920
да блять, ебаная разметка
короче там индексы в цикле, разберешся
455 1597930
>>597816

>кроссплатформенность (что, внезапно, фишка core).



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

Named mutexes, любой потомок EventWaitHandle, некоторые методы для пайпов, любая хуйня связанная с COM и возможно что-то еще - все это осталось в коре и нихуя нигде кроме винды не работает. Естественно это не документировано и ты либо знаешь досконально, какие апи специфичны, либо подрываешь на деплое (либо юзаешь их api checker)
456 1597933
>>597816

>кроссплатформенность (что, внезапно, фишка core)


...Во времена докера.
457 1597949
>>597933

А что докер? Он же нигде кроме жму/пинуса не работает. Docker for windows работает через виртуалку.

С вероятностью 99% хоститься ты будешь не на винде. Но хотя бы возможность работать в нормальной IDE, не погружаясь в мочу aka desktop linux 2k20 дорогого стоит
458 1598034
>>597907

>я работаю (профессионально) на другом яп


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



Ты уже определись, homebrew или профессионально
459 1598086
Посоветуйте что ни будь по проектам Core, который можно будет использовать, как скаффолдинг в проектах. Ибо все, что я смотрю на ютубе - это какой то калл индусов и прочего биомусора (в т.ч. СНГшного). Когда то давно на хабре был тутор по ASP.NET 3.0, но сейчас это говно мамонта и не подходит под новомодные SPA под реакт.
Лучше книги конечно, но если будет и видео ряд, то и он сканает. Спасибо.
460 1598130
как адекватно добавить wwwroot в пустой проект ASP.NET Core?

Или как всегда происходит какая то магия под капотом?

Просто тупо взял и сделал в пустом проекте, как в проекте с шаблоном mvc, но в итоге статические файлы так и не видит.
462 1598166
>>598149
ок, по примеру сделал. Работает.
теперь другой вопрос.

Помечу стили не применяет? сделал папку css/site.css

в _Layout.cshtml прописал путь ~/css/site.css

делаю в visual studio code
463 1598174
>>598166

>сделал папку css/site.css


Внутри wwwroot?
464 1598188
>>598174
внутри

боже, какой я тупой. У меня Layout был = null. Весь день рыл гугл просто так....
465 1598239
>>597918
>>597920
>>597924
Бля... Я тебя понял. Зашёл туда на rextexter, вписал твой код, и ещё свой в довесок,
затем нажал кнопочку "Fork it", ввёл другое название, и вот результат: https://rextester.com/VZEG40272
Со строками мы разобрались.
А что если вместо строк, в массиве строк - массив массивов, или массив объектов со свойствами?

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

>for(int i = 0; i < original.Length; i++){ copy[ i ] = original [ i ]; }//где copy и original - объекты со свойствами?


>//copy.property1, copy.property2, и так далее.

466 1598250
>>597773
>>597782
>>598239
>>597918
А если этот словарь - это кэш на сервере, то можно таким образом, через присваивание - хакнуть кэш сервера и написать в словаре - ОП-хуй?
467 1598267
>>598239
Всё, я понял. Надо не присваивать объект, используя "=", а клонировать его: https://metanit.com/sharp/tutorial/3.22.php
468 1598285
>>598239

Со строкой это работает, потому что как я написал ранее - для строки реализовано специальное поведение, несмотря на то что она тоже reference type. Вообще говоря строка иммутабельна (неизменяема). Любая попытка изменения приводит к созданию нового экземпляра.

Если элементами массива являются обычные reference type объекты, то при поэлементном копировании опять же будет копироваться ссылка на них. При изменении свойства, ты увидишь изменение свойства в обоих массивах.

Если элементами массива являются value type объекты (объявленные через struct), то будет производиться именно копирование, т.к. такие объекты передаются по значению.

Если нужно именно копировать экземпляры классов, то здесь начинаются проблемы. Гугли shallow copy и deep copy.
469 1598310
Всегда ли нужно писать новый метод чтобы код не повторялся? Или не обязательно? Если в if/else похожий код на 3 строчки, но с разными знаками.
470 1598312
>>598285
Я видел при гуглёжке shallow copy, но только сейчас понял, IClonable реализует deep copy.

Я-то думаю, хуле блядь не копируется в кэш - массив постов, вот здесь:
https://github.com/username1565/nanoboard/blob/e9984842cd69b5636f0d699cab5a70084950fc25/nanodb.exe-source/Database/PostDb.cs#L657
Хотел GetReplies закешировать, чтобы оно не грузило проц.
А то кулеры свистят и пердят от каждого посетителя
НАНОБОРДЫ.
Через TorBrowser она вот здесь: http://nboardn46ay6ycdi.onion/,
а прямо из веба - через Tor2Web gateway "onion.ly": http://nboardn46ay6ycdi.onion.ly/ (только постинг не пашет)


Добавил, короче IClonable куда-то сюда: https://github.com/username1565/nanoboard/blob/master/nanodb.exe-source/Database/Post.cs
И совсем другое дело. Кэш теперь и работает и обновляется, и нихуя железака не пердит.
471 1598313
>>598310
Да, всегда. Иначе у тебя весь код будет состоять из "ну там всего немножеко дублирования, ну можно же", потому что ты привык писать херню
image.png38 Кб, 652x492
472 1598390
ПАЦАНЫ ПОМОГИТЕ

В этом случае GetHashCode у t1 и t2 будет одинаковым, у меня это 346948956
Если у структуры имеющей 2 поля будут одинаковые значения, GetHashCode генерируется одинаковый
Почему так? Неужели для такой просто структуры реализация GetHashCode использует xor?
473 1598445
>>598390
https://github.com/dotnet/runtime/issues/4414

Судя по обсуждению, положняк такой: влез в кастомные value type'ы, пердоль до конца, реализуй свой корректный хеш
475 1598539
>>597816

>фишка core


Это для кого-то важно, но я вот не могу оценить невозможность писать на C# 8.0 нормальные поделки для екселя. И перспектива остаться на NF 4.8 как-то не радует. Это не фишка, а сужение возможностей языка и платформы, пока что.

>Для EPPlus офис не нужен. Со всеми преимуществами этого решения.


Для генерации выгрузок в ексель на сервере - это плюс. На этом пожалуй плюсы заканчиваются. Офис есть на компьютере у 100% целевой аудитории любых поделок для офиса.
476 1598622
>>598390
Потому что если у объектов одинаковые хэшкоды, то это не обязательно значит, что они идентичны. Но вот если у тебя Equals при сравнении двух объектов возвращает true, то это означает, что у них должен быть одинаковый хэшкод.
Это важно запомнить, иначе будешь смешить всех постоянно и хуйню в коде делать.
477 1598764
>>598539

>100% целевой аудитории любых поделок для офиса.


Нет, ты не учитываешь фирмы, пользующиеся лицензионным ПО, в которых ради экономии 70% сотрудников сидят на всяких либре офисах и т.д.
478 1598806
>>598312
Если не хочешь чтобы компареры работали при каждой прогрузке страницы,
то там проще сделать

>Dictionary<string, List< string > >


и не себе ебать мозг с этими массивами и объектами.
хэш ответа - > массив хэшей постов.
А сами посты, по хэшам - они и так в кэше есть.
479 1598965
>>598806
Ну так совсем другое дело.
А то я ориентировался на тип метода, и если он возвращает массив постов,
значит и кешировать надо массив постов.
Ну и наебался же я с этими массивами и объектами.
С таким словарём, реально - намного проще. Эдакий маленький кэш.
Сунул ещё один метод обновления списка по хэшу, и в PutPost, где true возвращается вызвал его,
и ещё в DeletePost очистку присобачил - вообще красава, шустрит борода теперь, даже камень не плавится.
480 1599039
>>598086
бамп тварыны
481 1599105
Аноны у меня дилемма. Есть 2 сервиса. Один управляет настройками, сохранение, загрузка, выдача загруженных настроек и т.п. А есть сервис который производит регистрацию пользователя.
Куда мне передавать первичные настройки пользователя при регистрации, в сервис настроек или в сервис регистрации? И тот и тот сервис использует полученные данные от пользователя.
482 1599107
Не хочу читать книжку по ASP.NET. Вообще не очень люблю всякий веб. Но мисос говорит, делай лабу на Net Core 3, в виде клиент-серверного приложения для какой нибудь хуйни.
Я, мягко говоря, вообще в веб не ебу. Что бы мне такого почитать лёгкого для понимания /вообще/ по этой теме? Даже не по самому C#, а просто чтоб понять, чего от меня хотят.
Может, курс какой есть на микрософтлёрне или что-то типа того? Только чтоб совсем для людей, а не для веб-программеров, которые просто учат новую веб-технологию
484 1599315
Анончики сможет кто-нибудь помочь с лабой?
Необходимо реализовать на формах или можно на впф задачу потребительского выбора, её лучше делать через парсер математических выражений, но лучше обойтись костылём 3 пик, могу скинуть 1к за неё,вот сам сайт где можно посмотреть как это работаетhttps://axd.semestr.ru/econ/consumer-choice.php
485 1599375
>>598313
Спасибо, тогда буду переписывать.
486 1599396
Кстати, я тут заметил, что EPPlus с пятой версии для коммерческого использования лицензию требует.
487 1599481
>>599396
300 бачей/год. Пиздец однако скатились...
488 1599564
>>599315

>её лучше


>но лучше



Нахуя такие в программисты идут?
489 1599571
>>599564
Это называется когда обосрался со сроками и костыль, который проще и быстрее реализовать и впрямь будет лучше
490 1599574
Что прочитать про архитектуру клиент-серверных приложений ньюфагу, который хочет таки сделать свой супер-пупер TCP-сервер на голых сокетах, чтобы он был удобный, модульный, расширяемый и масштабируемый?
491 1599609
Как задать максимальный размер данных для HTTP POST request?
Хочу 50 мегабайт JSON'a в одном POST-запросе отправить... Чё-то не фурычит. Поговаривают, что лимит 4096KB. Как его убрать??
492 1599640
>>599609

>лимит 4096KB


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

> Хочу 50 мегабайт JSON'a в одном POST-запросе отправить


Брат, братишка, зачем тебе столько? Если тебе надо 50 метров json вываливать, то, скорее всего, ты что-то делаешь неправильно.
494 1599730
>>599711
Какое-то странное мнение
495 1599736
>>599730
Сам посуди, в реалиях современного интернета это займёт 30 секунд в идеальном случае, а может и больше минуты быть. Что сделает юзер, будет смиренно ждать, или свалит со словами "не грузится, хуйня какая-то"? Конечно, в некоторых случаях это может быть оправдано, но таких не слишком много.
496 1599751
>>599730
Кейс свой опиши
497 1599760
>>599640
В grpc 4 мб это лимит, например.
>>599609
Проверь сначала, что сервер тебя не пошлёт нахуй такими размерами.
>>599736
Accept-Encoding: gzip и вместо 50 уже около 7.
498 1599765
>>599760

>grpc


Ну и? Он ведь не про специализированные фреймворки говорит, а про стандартные библиотеки.
499 1599771
>>599751
>>599736
Я другой анон. Но это может быть корпоративная ебалайка, где и 50 мб это норма. Лучше, конечно, разделять и лениво подгружать, если это для таблицы используется, например
500 1599966
>>599640

>Тогда бы ни одна страница не грузилась, не говоря об изображениях.


Изображения - это GET-запрос.
Клиент отправляет не 50 метрабайт, а просто ссылку на пикчу, а она грузится потом просто потому что сервер отдаёт клиенту данные.
Но если клиент, POST-запросом, пытается вгрузить 50 мегабайт, не каждый сервер примет такой запрос.
GET-запросом 50 мегабайт не передать:

>If you are using the GET method, you are limited to a maximum of 2,048 characters, minus the number of characters in the actual path.


Поэтому POST. А лимит 4096 КБ, я взял отсюда:
https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.httpruntimesection.maxrequestlength?view=netframework-4.8

>The maximum request size in kilobytes. The default size is 4096 KB (4 MB).



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


У меня не закрывается соединение, браузер ждёт ответа до последнего.
Но на сервере вылазит вот это (выловил при помощи конструкции try-catch-filanlly):

>Необработанное исключение: OutOfMemoryException.



>>599711

>Брат, братишка, зачем тебе столько? Если тебе надо 50 метров json вываливать, то, скорее всего, ты что-то делаешь неправильно.


Ща расскажу...
>>599730

>Какое-то странное мнение


Двачую. Поток FullHD забирает 25 мегабит/сек, а тут какие-то 50 мегабайт миллипиздрических, в 2к20м-то году...
>>599736
Всё просто. Вот здесь:
https://github.com/username1565/nanoboard/blob/e9984842cd69b5636f0d699cab5a70084950fc25/nanodb.exe-source/Server/DbApiHandler.cs#L39
Метод Upload_Posts, принимает на сервер, от рандомного, анонимного клиента - массив нанопостов в JSON.
Размер этого массива может даже превышать даже 50 мегабайт, в отдалённой перспективе.

Задача, тихо-тихо записать инфу с запроса в некий стек, кэш, или файл,
ограниченного размера, и вернуть клиенту как можно скорее (чтобы он не ждал), ответ на POST-запрос,
содержащий текст вида:

>"Ваш запрос слишком большой, он помещён в кэш/стек, (записан в файл), и будет обработан чуть позже."


Либо:

>Ошибка DDoS-защиты: Стек/кэш/файл - переполнен. Отмена.



Теперь, вернусь к этому:

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


Но на сервере вылазит вот это (выловил при помощи конструкции try-catch-filanlly):

>Необработанное исключение: OutOfMemoryException.



Со временем, я понял в чём бида. И вижу, что где-то вот здесь: https://github.com/username1565/nanoboard/blob/e9984842cd69b5636f0d699cab5a70084950fc25/nanodb.exe-source/Server/TcpServer.cs#L101
оно долго читает данные с запроса, а потом вываливает exception.

Как бы так и записать данные, и не обрабатывать их методом (если их слишком дохуя), и ответ клиенту - поскорее отправить?
500 1599966
>>599640

>Тогда бы ни одна страница не грузилась, не говоря об изображениях.


Изображения - это GET-запрос.
Клиент отправляет не 50 метрабайт, а просто ссылку на пикчу, а она грузится потом просто потому что сервер отдаёт клиенту данные.
Но если клиент, POST-запросом, пытается вгрузить 50 мегабайт, не каждый сервер примет такой запрос.
GET-запросом 50 мегабайт не передать:

>If you are using the GET method, you are limited to a maximum of 2,048 characters, minus the number of characters in the actual path.


Поэтому POST. А лимит 4096 КБ, я взял отсюда:
https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.httpruntimesection.maxrequestlength?view=netframework-4.8

>The maximum request size in kilobytes. The default size is 4096 KB (4 MB).



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


У меня не закрывается соединение, браузер ждёт ответа до последнего.
Но на сервере вылазит вот это (выловил при помощи конструкции try-catch-filanlly):

>Необработанное исключение: OutOfMemoryException.



>>599711

>Брат, братишка, зачем тебе столько? Если тебе надо 50 метров json вываливать, то, скорее всего, ты что-то делаешь неправильно.


Ща расскажу...
>>599730

>Какое-то странное мнение


Двачую. Поток FullHD забирает 25 мегабит/сек, а тут какие-то 50 мегабайт миллипиздрических, в 2к20м-то году...
>>599736
Всё просто. Вот здесь:
https://github.com/username1565/nanoboard/blob/e9984842cd69b5636f0d699cab5a70084950fc25/nanodb.exe-source/Server/DbApiHandler.cs#L39
Метод Upload_Posts, принимает на сервер, от рандомного, анонимного клиента - массив нанопостов в JSON.
Размер этого массива может даже превышать даже 50 мегабайт, в отдалённой перспективе.

Задача, тихо-тихо записать инфу с запроса в некий стек, кэш, или файл,
ограниченного размера, и вернуть клиенту как можно скорее (чтобы он не ждал), ответ на POST-запрос,
содержащий текст вида:

>"Ваш запрос слишком большой, он помещён в кэш/стек, (записан в файл), и будет обработан чуть позже."


Либо:

>Ошибка DDoS-защиты: Стек/кэш/файл - переполнен. Отмена.



Теперь, вернусь к этому:

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


Но на сервере вылазит вот это (выловил при помощи конструкции try-catch-filanlly):

>Необработанное исключение: OutOfMemoryException.



Со временем, я понял в чём бида. И вижу, что где-то вот здесь: https://github.com/username1565/nanoboard/blob/e9984842cd69b5636f0d699cab5a70084950fc25/nanodb.exe-source/Server/TcpServer.cs#L101
оно долго читает данные с запроса, а потом вываливает exception.

Как бы так и записать данные, и не обрабатывать их методом (если их слишком дохуя), и ответ клиенту - поскорее отправить?
501 1600161
>>599966
На первый взглаяд, какая-то ебола с переменной len. Дебагер тебе в руки.
502 1600245
>>599966

>The MaxRequestLength property specifies the limit for the buffering threshold of the input stream.



Это buffering threshold, а не лимит на размер реквеста в целом. Поэтому тебе его возможно уменьшить надо, раз у тебя outofmemoryexception вылетает.
503 1600302
Пацаны, есть я, недо .net core джун, хочу пойти попробоваться на работку(джун\трейни). Есть какой-то общий список вопросов по asp.net core, ef и т.п. ? Нашёл только чувака на dou который себе список на мидла составлял https://docs.google.com/spreadsheets/u/1/d/1Jny9yIZydos19Yx0cFaHE-_3adGIYzq-cnyAhofAHiY/htmlview Если кто-то джунов собеседовал, или сам недавно проходил, можете рассказать, что спрашивали и т.п.?
image.png7 Кб, 517x181
504 1600368
>>600302
Вопросы норм на мидла, вот только с 90 строки справа в углу какая то хуйня прилипла у этого додика. Пусть уберет ее и не позорится, а то мать сам знаешь, что с ней будет

Особенно проиграл с Web security
Обзор методов и техник взлома
DDOS
XSS
Fishing
SQL Injection
Broot force
Exploits
Сканеры уязвимостей

Приходишь такой значит .NET-тчиком на собес, подходит к тебе прыщавый анон с /pr/, которого заигнорили в треде с алгоритмическими задачками и говорит - "Кароч нужен забрутать или зафишить логин/пасс шкуры с ВК, смогёшь?"
505 1600436
>>600245
Я, короче, прямо при чтении потока, в TcpClient.cs, решил парсить JSON из строки readData,
и добавлять посты по одному, блоками по 4 мегабайта (4096 KB),
и сразу же обрезать, блоками, всё это говно, и никуда его не передавать ни в какой HttpServer ни в какой hanler-хуендлер.
А то оно по нескольку раз копируется, гоняется туда-сюда,
и вот так, этими запросами ебучими и заДДоСсить могут, нахой, блеать!
506 1600537
Использование везде где только можно дженериков - зашквар? Просто ничего не могу с собой поделать, так нравится писать: ClassA<A,B,C,D,E,F> : BaseClassA<A,B,C,D,E,F> where A : Zalupa where B : Pizda... Получаю какое-то извращенное удовольствие.
507 1600562
>>599280
интересно, спасибо. Этого я почему-то не нашёл. Наверное потому что из азуры смотрел, а там курсы вроде "деплоим приложения асп на азуру" и прочее. А есть что-то ещё более базовое про сервер-клиент отношения среди приложений, запросы и прочее? Или тут есть эти основы тоже?
508 1600717
DotGNU не взлетел, с чего вы взяли, что mono взлетит?
509 1600720
>>600717
Core взлетит. А Моно уже летает, хоть и не супер высоко, но более чем часто встречается в коммерческой разработке (не говоря уже о Unity)
510 1600778
>>600562

>Этого я почему-то не нашёл


Я до сих пор не понимаю, как там что-то искать. Есть doc, есть mdsn, может ещё что есть. С заглавной страницы оттуда вообще хер что найдёшь. 100 кликов накликаешь и не факт, что хоть до чего-то нужного доберешься. Если в выдаче поисковика нет ссылки на нужную страницу, считай, ты её не найдёшь.
511 1600796
Должен ли синьор уметь читать и писать CIL код? Стоит ли трать время на то, чтобы с этим разобраться?
512 1600814
>>600796
Читать должен даже крепкий джун, не говоря о мидлах и сеньорах. Сеньор помимо чтения должен и писать, потому что есть ситуации из которых иногда можно выйти при помощи редактирования CIL кода.
513 1600844
Saying that .Net Core is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
514 1600893
>>600814

>редактирования CIL кода


Двачую. CIL код редактировать, убирая сопли за компилятором, приходится часто. Раньше, когда не понимал его, не обращал внимание. Но когда понимаешь как это работает, видя кучу вопиющих неоптимальностей, то уже не можешь просто пройти мимо. Уж как минимум бесконечные копирование структур при доступе к свойствам нужно убирать в критичных местах. Хотя в коре вроде эту хуйню почти везде поправили. Если производительность играет роль, то CIL код будет редактироваться так или иначе. Отдельные критичные функции на нём и пишутся.
Ну и знать Си тоже желательно, во всяком случае в нашем проекте, т.к. зачастую многие тяжелые вычисления проще написать на Си и в шарп уже сишную либо подключать.
515 1600906
>>600893
Лол. Вот серьезно просто лол. Просто объясни, зачем писать на шарпе в таком случае-то? Шарп изначально позиционировался как язык для замены жавы только под винду, а достоинство жавы всегда было что можно за месяц нахреначить что-то рабочее, если ты лезешь в IL, то ты изначально не тот инструмент для своих задач выбрал.
516 1601174
Существуют ли кейсы, когда DispatcherSynchronizationContext может пригодиться при написании кода для WPF?
Ведь асинхронные операции, если не отключать использование контекста просто дедлочатся. А для обновления UI из другого потока можно банально использовать Invoke.
517 1601320
>>600844
бородатая шутка из мира холивара Java vs .NET хоть бы перевел, вкатыши /pr/ не умеют в ангельский
>>600893
>>600814
двачую адекватов, но они забыли добавить, что помимо MSIL нужно знать assembler. Без него за решетки можно даже не браться. IL - это лишь жалкий промежуточный слой, который все равно передается в нативные команды процессора. Еще желательно, но это уже джун+, знать двоичное преобразование команд MSIL, вдруг лишний байт преобразовывается процессором, а ты чики-брики и оптимизировал команду. Это не вершина совершенствования, еще будет к чему расти. Советую начать выдрачивать базовые команды MSIL в 16 ричном опкоде - это чистая дискретка, к тому же их не много - около 120 (к каждому типу конечно же, пуш 0x67 отличать от 0x68, потом переходить к командам среды - их чуть побольше, но без них .NET не работает)
Вот сорсы если что https://www.codeguru.com/csharp/.net/net_general/il/article.php/c4635/MSIL-Tutorial.htm
На собесе джуна или интерна обязательно это спрашивают. Это я вам инсайды палю, те вопросы типо "Как триггерится статический конструктор в сборке" или "Апкасты вариативность" - это уровень даунов как бы, нужно знать основы, чтобы браться за что ни будь более высокоуровневое.
Дерзайте.
518 1601381
Кто на ASP.NET Core react JS пердолил? React из WebApi хватает только private static readonly коллекции? И как в такие коллекции пушить данные? Может тутор посоветуете какой? https://reactjs.net/ - тутор по Core говнщие редкое
519 1601990
>>601320

>бородатая шутка из мира холивара Java vs .NET


Очень тупая шутка. .NET Core лучше JVM по всем показателям. Это самый универсальный из всех современных стеков. В нем собрано лучшее из разных языковых платформ. Да и язык C# лучше Джавы примерно как конфета вкуснее говна.
520 1602218
>>600906

>как язык для замены жавы только под винду


ясно, не пиши пожалуйста больше
>>601990

>.NET Core лучше JVM


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

>Да и язык C# лучше Джавы примерно как конфета вкуснее говна.


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

Пиздец тут долбоебы сидят, даже хуже, чем в треде джавистов
521 1602230
>>602218

>нет структур


>нет кортежей


>нет in/out модификаторов параметров


>даже ебанного goto нет


>Ты вообще вкурсе, что решетки и джава имеют практически идентичный синтаксис



Мань, возвращайся в свой тред джавистов и не высовывайся из этого загона.
522 1602239
>>602218

>называет .NET Core библиотекой


>Пиздец тут долбоебы сидят



Милости прошу к нашему шалашу
523 1602249
>>602230
маня, пишет за кортежи 2ым пунктом, которые реализовываются врапером в 2 строчки и видимо не знает за Kotlin. Типикал /pr/ вкатыш. Как бы это смешно не звучало, но зная Java можно сесть и педалить на # и наоборот, так что можешь не копротивляться за свои любимые решеточки даже за linq не написало, ничтожество ебаное И кто тебе сказат, что # > java? Препод из твоей шараги? Если да - плюнь ему в ебало. Знаешь, почему мелкософт прогнулись под кроссплатформенность? Потому, что ебучий MsSql со своим IIS будет стоить в десятки раз дороже, чем Oracle/another relation DB. Хотя куда тебе такое знать, тебе вначале вопросы собеса нужно выучить
sdf.jpg121 Кб, 1659x453
524 1602250
>>602239

>пиздец тут долбоебы сидят


>земля им пухом

525 1602253
>>602249

>вторым пунктом



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

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



Потому что это тренд современности. Хотя зачем объяснять что-то шизику с двузначным IQ, который судит о языке по популярности запросов в гугле/стэковерфлоу, блять. Тебе самому не смешно? Да, легаси говна больше на жабе, да у неё настолько хуевая документация и стандартные библиотеки, что вместо того чтобы прочитать её и использовать их, макаки бегут в гугл и на стэковерфлоу. И почему-то именно это, в манямирке шизика, является плюсом языка.
526 1602261
>>602253

>всё что вспомнил


>не написал LINQ


>не написал за ORM из коробки


>не написал за лямбды


>не написал за management code


>не написал за GC


>не написал за методы расширений


ты думаешь с тобой есть смысл о чем то дальше спорить? Ты кроме статей C# vs Java что ни будь видел?

>тренд современности


попадешь на свою первую РАБотку (хотя есть сомнения по этому поводу) узнаешь, как работает тырпрайз

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


https://www.codingdojo.com/blog/the-7-most-in-demand-programming-languages-of-2019
Почитай, чтобы твой маня мирок не трескался лишний раз.

>хуевая документация


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

мимо анон, в стеке которого # 6-ой по счету язык
527 1602264
>>602261

>захожу в этот тред подкинуть батхерда



Как ты там еще не сгорел полностью то, всё тебе мало.
528 1602318
Вижу здесь, регулярным выражением, извлекают JSON из строки.
https://stackoverflow.com/questions/40361407/extract-json-from-string-in-net
Вопрос, как модифицировать эту регулярку, чтобы она доставала массивы JSON-объектов, с квадратными скобками этими, массивными.
Например:

>string s = "[{\"List\":[{\"ID\":\"175114\",\"Number\":\"28992\"}]}, {\"List\":[{\"ID\":\"175114\",\"Number\":\"28992\"}]}, [{\"List\":[{\"ID\":\"175114\",\"Number\":\"28992\"}]}]]";

529 1602319
>>602318

>и текст ещё какой-то там, внутри строки, до или после объекта. Допустим, это заголовки запроса.

530 1602337
>>602218

>ты сравниваешь виртуальную машину с библиотекой?


Ты далбаеб? .NET Core это модульный рантайм. JVM как я понимаю голимый легаси монолит. А вот .NET Core модульный, потому что современный.

Что такое библиотека? Код в файлах. Отличие библиотеки от виртуальной машины? И там и там код в файлах.

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


Ты вкурсе, что C# имеет совершенно другую семантику? У JS и Си тоже одинаковый синтаксис, дебил.

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


Первая версия C# или вторая, не помню, была написана на Хаскеле, разработчиками компилятора GHC, профессорами, у которых есть премии Тьюринга, и другие премии, писалось в Microsoft Research. И по сей день там трудятся лучшие спецы в CS. Кто писал и пишет Джаву? Индусы-говнокодеры.
531 1602338
>>602249

>IIS


То-то блять IIS долгие годы был самым популярным в мире веб-сервером, с долей рынка 70%. Сосать. Теперь есть Kestrel. .NET Core кстати ебет Netty только так. В два раза быстрее его. Это тот Netty, который долгие годы был одним из лидеров по производительности.
532 1602339
>>602253
>>602261
C# самый популярный язык на SO. Шах и мат.
533 1602457
>>602337

>.NET Core это модульный рантайм


>модульный рантайм


>JVM как я понимаю


> как я понимаю


>понимаю


>JS и Си тоже одинаковый синтаксис


>Кто писал и пишет Джаву? Индусы-говнокодеры.


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

> IIS долгие годы был самым популярным в мире веб-сервером, с долей рынка 70%


https://www.datanyze.com/market-share/web-and-application-servers--425/microsoft-iis-market-share
в твоем маня мирке 70%? Ты хоть знаешь, сколько стоит перенести автопарк на ШINDOWS для IIS? Ты знаешь ценники на IIS от мелкософта? Зачем ты, как и другие дебичи кидаетесь какими то цифрами, если не плавали в этом?
>>602339

>SO


SOF может быть? Судя по тому, что высирают в этом треде, # могут быть только популярные в шарагах
534 1602460
>>602318
>>602319
И где ты это применять собрался? Парсишь сайты в которых текст смешан с JSON и при этом никак не размечен?
535 1602583
Вообще не понимаю, как люди работают с впф. Я за год научился только пилить простейшую хуйню, копировать чужой код и дорабатывать его. С нуля я хуй бы что написал.
536 1602597
>>602583
Двачую.
Вин.формы - очень просты и понятны, даже не программисту.
Зная их я как-то пробовал перескочить на впф. Думал, должно быть интуитивно всё понятно, хотя бы в какой-то степени. Создал в студии голый проект впф, добавил мышкой кнопку на форму. А потом пару часов пытался привязать к нажатию этой кнопки вызов метода. Но так и не смог продвинуться ни на шаг. Не гуглил.
537 1602601
>>602583
>>602597
А потом такие говорят, что вёрстка и фронтенд это просто, лол.
538 1602609
>>602597
Привязка-то осваивается в конечном итоге, но вот всё остальное - пиздец, впф так и остался навечно сырым, многие фичи просто нереализованы или они есть, но чтобы ими воспользоваться, нужно рвать жопу и писать много кода, не говоря уже о том, что ты буквально через раз натыкаешься на какую-то недокументированную залупу, ради которой приходится неистово гуглить и дай Бог, чтобы что-нибудь нашлось.
539 1602859
>>602601
Фронтенд, а вернее гуй на WPF — это реально пиздец. Я тоже его не понял, как и аноны выше. Dependency property, сотни вложений в одном компоненте, какая-то поебистика. После этого стал интересоваться фронтом vue, и теперь кайфую. Просто пилишь одностраничный сайт, и пользователи через него работают
540 1602996
>>602457
Песпруфные кукареки. .NET Core это рантайм. Докажи обратное. IIS много лет был лидером в веб-серверах, пока Nginx не появился, а появился он не так давно. SO сам написан на C# и C# долгое время был там самым популярным тегом. Сейчас на 3 месте, хорошо, согласен. В русскоязычном кстати до сих пор самый популярный тег.
541 1603013
Спарсил 2к вакансий с хх по запросу C#
В 428 есть упоминание о высшем образовании.
В 710 есть упоминание о английском языке.
В 128 упоминаниях о junior.
В 256 упоминается о WPF и только 24 упоминания о Windows form.
Хуй знает что с этим делать но вот так.
542 1603113
Решил обмазаться DI, это нормально, что конструктор распух до 6 параметров. И где проходит та граница, когда уже хватит инжектить. И есть ли какие-то приемы по уменьшению количества зависимостей (слышал, что сервислокатор это антипаттерн и вобще фу-фу)?
543 1603195
>>602218

> не пиши пожалуйста больше


Ну ты и мудак. Вот серьезно. Почти всю историю своего существования сам M$ позиционировал шарп как жаву, но под свою экосистему. Так было ровно до того момента, пока они не осознали, что проебали все рынки, кроме десктопа и на пост гендира не забрался индус, который теперь заигрывает с опенсурс сообществом. Блядь, ты просто посмотри, какие задачи на дотнете вплодь до середины десятых решались, пока не стало понятно, что жизни на десктопе нет, а под мобилки на шарпе не покодишь. Пиздец, пришли жаваскриптеры, которые только кору застали, еще и выебываются. Пидорас ты, вот что я хочу сказать. Причем мерзкий такой, выебываешься на пустом месте. Тьфу на тебя, мудила.
544 1603197
>>603113
Выделяешь контекст (фасад) для общей хуйни по типу логгеров или https://blog.ploeh.dk/2017/02/02/dependency-rejection/

>>603013
Пользы в этом нуль, так как много вакансий пишутся хрюшами на отьебись, а на деле будет другой стек технологий.
545 1603209
>>602996

>.NET Core это рантайм


>SO


так это ты один и тот же дауненок, пишуший мне по 3 поста. А я думал у вас "Сила трёх".

>В русскоязычном


проиграл в голос. Сейчас ru SOF почитать, эх.

>.NET Core это рантайм


.NET (как и Core) - это фреймворк. Ты хоть понимаешь значение слова "runtime"?

>Докажи обратное


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

>IIS много лет был лидером в веб-серверах


>Песпруфные кукареки


писал выше
Иди готовься короче, слабый еще
547 1603236
>>603195
Таки не сила трёх, походу "Сила двух". Ок, давай и тебе поясню за решетки.

>Почти всю историю своего существования сам M$


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

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


ты рофлишь? Ты хоть знаешь штат аналитиков evilcorp? Больше, чем твоя зассаная шарага

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


{facepalm} Какой нахуй индус? Рыночек сам порешал, что должно быть. Причем тут индус?

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


жизнь на десктопе есть, но не такая развитая, как в вебе. Веб пришел и задал мировую тендецию. Вакансии? 95% веб.

>а под мобилки на шарпе не покодишь


есть J2ME, зачем нужен шарп? Тем более evilcorp не заходили в мобайл (не знаю почему) и везде был andoid, iOS

>Пиздец, пришли жаваскриптеры


пришел джавист/.net-тчик и нассал всем на ебало, т.к. мало того, что не знают как их среда работает, так еще и хватаются за решетки, как за одеяло. Вы блять тупые, язык - это инструмент. Вообще похуй на чем писать, похуй на чем хостить. Главное чтобы:
1. Было легко и удобно;
2. Было дешево;
3. Было кем писать и в определенные сроки.
Берем ту же Java:
1. Легко? Да - джава хоть и отстает по фичам и высокоуровневым реализациям от #, но имеет хорошую базу знаний. Удобно? Да, легко ложится на любой сервер (Linux-овый, а не вонючий WS)
2. Дешево? Да уж дешевле мелкософта в 10ки раз. А когда сорсы весят по 4-5 гбт и обслуживает проект не один десяток машин, так тем более
3. Есть кем писать? Плюнь в бэков 3 раза и точно 1 раз попадешь.

Писал вчера, пишу сегодня - слушайте дядек, которые в тырпрайзе работают, а не которые в шарагах вам # дают и говорят - "Вот это заебись". Я не спорил, что # говно - язык сам по себе очень годный и во многом превосходит Java. Но вся экосистема разработки - это фирменный стиль мелкософта - монополизация, коммерция. Поэтому они и страдают. И вы тоже. Как бы все.
547 1603236
>>603195
Таки не сила трёх, походу "Сила двух". Ок, давай и тебе поясню за решетки.

>Почти всю историю своего существования сам M$


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

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


ты рофлишь? Ты хоть знаешь штат аналитиков evilcorp? Больше, чем твоя зассаная шарага

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


{facepalm} Какой нахуй индус? Рыночек сам порешал, что должно быть. Причем тут индус?

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


жизнь на десктопе есть, но не такая развитая, как в вебе. Веб пришел и задал мировую тендецию. Вакансии? 95% веб.

>а под мобилки на шарпе не покодишь


есть J2ME, зачем нужен шарп? Тем более evilcorp не заходили в мобайл (не знаю почему) и везде был andoid, iOS

>Пиздец, пришли жаваскриптеры


пришел джавист/.net-тчик и нассал всем на ебало, т.к. мало того, что не знают как их среда работает, так еще и хватаются за решетки, как за одеяло. Вы блять тупые, язык - это инструмент. Вообще похуй на чем писать, похуй на чем хостить. Главное чтобы:
1. Было легко и удобно;
2. Было дешево;
3. Было кем писать и в определенные сроки.
Берем ту же Java:
1. Легко? Да - джава хоть и отстает по фичам и высокоуровневым реализациям от #, но имеет хорошую базу знаний. Удобно? Да, легко ложится на любой сервер (Linux-овый, а не вонючий WS)
2. Дешево? Да уж дешевле мелкософта в 10ки раз. А когда сорсы весят по 4-5 гбт и обслуживает проект не один десяток машин, так тем более
3. Есть кем писать? Плюнь в бэков 3 раза и точно 1 раз попадешь.

Писал вчера, пишу сегодня - слушайте дядек, которые в тырпрайзе работают, а не которые в шарагах вам # дают и говорят - "Вот это заебись". Я не спорил, что # говно - язык сам по себе очень годный и во многом превосходит Java. Но вся экосистема разработки - это фирменный стиль мелкософта - монополизация, коммерция. Поэтому они и страдают. И вы тоже. Как бы все.
548 1603243
>>603233

>NET Core is composed of the following parts:


>COMPOSED


>The .NET Core runtime, which provides a type system, assembly loading, a garbage collector, native interop, and other basic services. .NET Core framework libraries


>etc


>>602250
Не осиливший дискреточку или логику?
549 1603245
>>603236
Заметил, что у жабистов есть специальная олимпиада обсирать шарп, чем-то похожи на гофистов. В обратном направлении - редкое явление, ибо всем похуй.
550 1603247
>>603243
Не знаю о чем ты, болезненный, толдычишь, но .NET Core - это собирательное понятие.
551 1603253
>>603245
сижу в двух тредах, отвечаю с такой же периодичность туда и туда. Никогда такого СВЧ и рвания жопы за язык не видел, как тут. Такое ощущение, что мелкософт создает уникальный продукт, как панацению. У меня для вас плохие новости на этот счет
>>603247
ты уже заселфовнился, назвав .NET Core рантаймом. Можешь теперь не копротивляться
552 1603271
>>603253

>назвав .NET Core рантаймом


Все однострочные посты начиная с 1603197 мои. Выше нет моих постов.
553 1603276
>>603253

>Никогда такого СВЧ и рвания жопы за язык не видел


Тут много студентов сидит, которую всякую хуйню несут.
554 1603290
Как в виндовую консоль шарпом графику рисовать? Хочу не символы, а пиксели рисовать. Жуть как хочу. Не знаю как.
555 1603293
>>603253

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


Но ведь так и есть. Лучше шарпа в мире нет. Еще бы не был так привязан к .net'у, цены бы не было.
556 1603297
>>603290
Знаю только два способа:
1. Нормальный - рисовать псевдографикой, она же ascii art
2. Ненормальный - получить хендл окна через винапи и рисовать поверх самого окна консоли, используя винапи и любую графическую либу
557 1603300
>>603293
Rust.

мимо 10 лет программирую на шарпе
558 1603303
>>603297
Второй вариант мне кажется подходящим под то что я хочу делать. Как это сделать? Хотя бы скажи где смотреть, а то я студент, который окромя калькулятора в консольке ничего не делал, и не умею правильно гуглить.
559 1603309
>>603303
Не знаю, почему он тебе кажется подходящим, если намного лучше и проще использовать любую либу, которая умеет рисовать окна, коих дофига. Мне лень расписывать, например https://stackoverflow.com/a/43788951
560 1603314
>>603245
То-то в жаботреде недавно рванула бомба с говном со стороны решеткофагов.
561 1603316
>>603314
Хз, не посещаю жаба тред. Зато в более публичных местах больше всего жопа горит у жабистов и гофистов, непробиваемая стена своих убеждений.
562 1603319
>>603316

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


На ebanoe.it и подобных парашах?
563 1603320
>>603319
Нет.
564 1603325
>>603276
это понятно судя по задачам, которые они пытаются решить в этом треде. Но их препод долбоеб, потому, что он пытается научить их программированию не заложив фундамент, что разработчик - это профессия не привязанна к языку, а к решению задач. Это тоже самое, что учить строителя только ебашить молотком и говорить - вот этот инструмент заебись, все остальное - говно.
>>603293

>Лучше шарпа в мире нет


Если когда ни будь устроишься на работу и тебя посадят на легаси, после 1-2 месяцев работы ты будешь проклинать решетки (особенно если это будет старый ASP.NET) и молить, чтобы кинули на другой проект, пусть даже не .NET
Со многими такое случается, кто приходит на аутсорс, особенно если он не привязан к проектам, а педалит на фриланс биржах. Если есть бенч, не удивляйся, если ты, обученный шарпику, будешь пидалить еще на WP/PHP/Java/etc.
>>603245
это потому, что джависты борды не пишут хуйни за то, чего не знают наверняка. Хотя там тоже студентота сидит, дрочащая алгоритмы. Зато тут - мало того, что нихуя не знают, так еще и пытаются тебе это навязать. Комьнити двача Java > C#. Однозначно.
565 1603327
Я студент, нам препод сказал буим 100к получать, а я спросил, а почему вы не програмист тогда и меня выгнали из айдитории
566 1603332
>>603327
проиграл. На самом деле жиза - на курсах может прийти выещик за килобаксы, а в институте, а тем более в шараге - только ебаные неудчники сидят
567 1603333
>>603332
Бывает и курсы делают неудачные вайтишники, лол.
https://youtu.be/zmyxRagCH8Q
568 1603334
>>603327
Хз, у меня один из преподов, владелец своей ит компании, говорил, что ему нравится просто преподавать. Зарплата - заправить два раза свою машину. Еще жену свою зачем-то посадил на преподавание.

Другой препод, параллельно работал в компании, шутил "не умеешь программировать - учи программировать".

Остальные преподы преподавали какую-то устаревшую хуйню. Им было лет за 50.
569 1603342
>>603325

>проклинать решетки (особенно если это будет старый ASP.NET)


Мне синтаксис c# не нравится, слишком много бойлерплейт хуйни приходится писать. На некоторых проектах были ебанутые архитекторы. На текущем проекте есть silverlight и vbs. Вебформы - это еще повезло.

У меня даже иногда получалось продавливать свои решения: бизнес любит цифры, а не какие-то хотелки.
570 1603351
>>603333

>3333


зачем далеко ходить, ведротон - вкатывальщик. Хотя заливает говно в уши, что он гуру
>>603342

>бизнес любит цифры, а не какие-то хотелки.


все хотелки - это желание сэкономить. Весь тырпрайз, все задачи (за исключением стартапов) - это бизнес. В бизнесе нужна автоматизация, чтобы не раздувать штат, которым нужно платить в разы больше, чем за софт.
>>603334
это энтузиасты. Сам знаю пару таких. Но это скорее исключение из правил
571 1603352
>>603342
Хотя, вот эти кандидаты выглядят неплохо, но в фшарпе лучше https://www.calvinallen.net/csharp-8-is-old-news-onward-to-csharp-9/
Все равно подумываю нахуй свалить с дотнета.
572 1603359
>>603352
решетки двигаются в том же направлении, что Java. Сейчас на джаве порой код на столько не читабелен, что не то, что в логике разобраться, нужно разобраться в коде.
573 1603368
>>603359
Я столько дерьма повидал, что мне уже как-то похуй:
- Смотрю код как-то так https://youtu.be/dlrjDvS7wxo
- Отвлекаю товарищей от работы и снова повторяем процесс из видео
- Игнорирую хуево написанный код, который могу исправить
- Если используется какая-то инородная хуйня, скажем es+kibana на жабе или тензерфлоу на питоне, то мне проще найти место бага, завести тикет и больше нехуя не делать
- На инвестигейт отчитываю дохуя времени, хотя хватает пары минут, максимум час, чтобы понять проблемы
- На решение трачу несколько дней, даже если там написать надо строк 10
- На митингах с умным лицом рассказываю как охуенно исправил проблему
image.png51 Кб, 751x573
574 1603370
>>603352
Это же будет в жяве в марте.
575 1603373
>>603370
Шарп будет обновляться вроде каждый ноябрь по принципу: нечетная версия - не lts, четная версия - lts. Рекорды в шарп давно добавить хотели, но пересрались из-за синтаксиса.
576 1603397
>>603373
А почему именно ноябрь? Из-за no nut november, чтоб ничего не отвлекало от изучения новых фич?
577 1603398
>>603368
пофиксишь за 10 минут - заплатят $100/d. Подкинут еще тасков
пофиксишь за 480 минут - заплатят $100/d. Не подкинут тасков
На программистов вайнят, что ленивые и хитрожопые. Зато осилившие логику.
578 1603402
>>603397
Откуда мне знать? Найди роадмап, там точнее написано, когда и что.
579 1603431
>>602460
Не, всё просто. От клиента, на сервер поступает POST-запрос, с headers и JSON'ом. Программа - парсит JSON, но при попытке прочитать 50 мегабайт JSON'a вылазит OutOfMemoryException.
Было решено записать JSON в файл, но он пишется с headers. Надо сматчить теперь всю эту хуйню, но не полностью, оно не полезет и опять всё зависнет нахуй.
Надо, короче, по блокам читать JSON, и из фрагментов вытаскивать записи регулярным выражением каким-то, а фрагменты эти, ебучие - клеить снова и дальше парсить и скармливать - блоками. Как-то так.
580 1603498
Кто ни будь писал на ASP.NET Core + react JS? Как CRUD хуки делать? Как роутинг происходит? Почему триггер идет именно Index? Где вообще тригер первой страницы? Что это за хуйня индусов? Я только начал пилить эту хуйню, ни документации в интернетах, ни туторов (индусовский высеры не в счет). https://reactjs.net/tutorials/aspnetcore.html - вообще залупень какая то, пытался step by step сделать - нихуя не работает. Пиздец блять. Мелкомягкие совсем охуели такое говно высирать? Или адаптивность со всем, что не мелкософта не ок?
Бьюсь на этой залупой неделю, не могу обычный CRUD реализовать. Это что за хуйня вообще? На пыхе или пайтоне это делается щелчком пальцев, на .NET ритуал какой то нужно провести или на хинди заговорить? Блевать хочется...
581 1603518
>>603243
Какую нахуй дискреточку и логику?! Еще про теорию алгоритмов вспомни. Обосрался, а теперь с темы соскакиваешь.
582 1603519
>>603253
Еблан, .NET Core это в первую очередь рантайм. А уж что там вокруг не важно. Естественно там есть некая SDK обвязка, вроде консольного интерфейса, API, и других необходимых штук. Но в первую очередь это рантайм, как и в доке написано, куда тебя ткнули носом как котенка.
583 1603527
>>603498
Делаешь фронтенд, вешаешь его на nginx на какой-нибудь адрес. По этому адресу заходит клиент, ебать его в рот.
Делаешь бек и тоже на как-нибудь адрес вешаешь. Общаешься через запросы, данные в json пакуешь

В итоге у тебя независимый фронт и бек. А то, что предлагает шаблон — я тоже не понял. Я, правда, скачал для vue из галереи Microsoft. Там vue приложение было в папке wwwroot, которое начинало компилиться при старте отладки
Только нахуя? Не понял я этого прикола. Во-первых, IDE удобнее разные использовать. Во-вторых, как эту кучу дерьма деплоить — непонятно
584 1603534
>>599107
Посмотри в шапке пхп и жс тредов, кажется там было что-то такое.
585 1603583
>>603527
хочу фронд на react, бэк на .NET Core. Бэк даже уже частично написан, а вот слепить в кучу - хуй. Не могу разобраться, как базовый функционал CRUD-ов реализовать, как routing настроить. В ASP.NET MVC5 как то блять и то проще было
586 1603589
>>603583
В MVC было WebAPI. Так и здесь. Пишешь апишку и тестируешь, например, посманом или фидлером. Потом, отдельно от асп, пишешь фронт на реакте.
587 1603635
>>603589
спасибо, буду пробовать
588 1603739
Уважаемые, решаю детскую задачку вот тут https://acmp.ru/index.asp?main=task&id_task=711
Подскажите пожалуйста, почему такой вариант проходит
https://dotnetfiddle.net/yjJ6uy
а такой не проходит и даёт runtime error
https://dotnetfiddle.net/aOVclh
По сути вся разница в том, что я хотел сократить код просуммировав элементы массива через foreach, чтобы не вводить дополнительную переменную, хранящую количество элементов в массиве.
589 1603751
>>596350
Бамп вопросу.
590 1603768
>>603739
Работают оба кода. Вот только число m всё же надо хранить, иначе программа будет делать не нужную работу. Потому что если m = 3, как в примере, то возвращать можно сразу первое имя сумма кругов которого равна m, в твоём же случае программа продолжит своё выполнение и сделает лишнюю работу.
591 1603793
>>603768

>Работают оба кода.


Вот почему-то второй вариант не пролазит в компилятор сайта

>>>1603768


>Вот только число m всё же надо хранить, иначе программа будет делать не нужную работу. Потому что если m = 3, как в примере, то возвращать можно сразу первое имя сумма кругов которого равна m, в твоём же случае программа продолжит своё выполнение и сделает лишнюю работу.


Но ведь m не показывает ничего, кроме количества кругов, а оно у всех будет одинаковое. Как мне кажется это избыточная информация, если используешь foreach.
592 1603801
>>603793
По количеству кругов ты знаешь минимальное количество которое у тебя может получиться при суммировании. Возьми из примера данны, твоя программа будет парсить все данные , а если учесть if (sum == m) return name то она остановит своё выполнение на 4 участнике и выдаст правильный результат.
1509953221883.png378 Кб, 720x758
593 1603804
Можно ли писать не говяный бэкенд/фронтенд на решётках, вместе с тем зарабатывая бабос?
594 1603816
>>603804
.NET разрабы живы?
595 1603821
>>603804
Можно, разрешаю.
596 1603888
>>603821
Научи.
slide-1.jpg124 Кб, 1024x767
597 1604023
>>603518

>Какую нахуй дискреточку


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

>.NET Core это в первую очередь рантайм


так это рантайм или в первую очередь? Ебать у вас маня-мирок трескается, когда мокаешь мордой в говно. И зачем ты мне пишешь по 2 коммента?
>>603519

>.NET Core это в первую очередь рантайм


>А уж что там вокруг не важно


если бы ты знал компоненты библиотеки, ты бы сейчас так не копротивлялся.

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


CLR via C# - пока первую главу не пройдешь, не возвращайся. И зачем ты пишешь, такую дичь, как

>ткнули носом как котенка.


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

>CLR via C#


Не актуальная книга.
599 1604050
Привет аноны. У меня есть api которая должна получать путь к локальному файлу и фронт в котором должен быть выбор файла и получение его локального пути. В это и проблема. Как через браузер получить полный путь локального файла?
Может отправлять серверу файл, чтобы тот его скачивал у себя и получал нужный путь?
Как быть?
600 1604063
>>604050
Если эти файлы включены проект и ты юзаешь .NET core - то это статические файлы. Добавляешь

app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), "MyStaticFiles")),
RequestPath = "/StaticFiles"
});
И по пути получаешь содержимое фолдера
601 1604067
>>604063
нет не включены. Бэк и фронт в разных местах будут находиться. Нужно с фронта получить, как-то полный путь файла и отправить его в бэк. Так как это не возможно, надо как-то с фронта на бэк отправлять файл и сохранять на сервере, вот только как
602 1604070
>>604067
https://docs.microsoft.com/ru-ru/aspnet/core/mvc/models/file-uploads?view=aspnetcore-3.1

Пробовал как тут, но OnPostUploadAsync не работает. В postman в body->binary не вызывается апи
603 1604074
>>604070
так, это я тупой, все вызывается. Теперь выскакивает ошибочка
415Unsupported Media Type
604 1604132
Почему стали после 1000 перекатывать?
605 1604160
>>604132
Нумерацию проебали, шапку лет 5 не обновляли, тред скрывали из ленты, а его перекаты интересуют.
1561243133811.gif23 Кб, 74x98
606 1604358
Превед всем в этом чятике.
Призываю знающих анонов.

Нужно ли окончить ВУЗ, чтобы стать хотя бы джуном-решёточником?
Правда, что джуны всегда ебуцца с вебом?
Кроме веба для джуна на решёточках ничего нет?
390405.jpeg19 Кб, 585x389
607 1604551
>>604027
хочешь сказать в .NET core нет CLR/SDK?
Вот это у .NETчиков тусовочка собралась. Один фреймворк рантаймом называет, второй пищит "# лушше джавы". Ну охуеть тут клуб интересов.
Может парни ну его нахуй этот ваш .NET, может лучше в версточку? Теги, селекторы там, может на препроцессоры перейдете. Возможно (но не точно) когда ни будь и до JS-а дойдете.
Бросайте вы это, зачем вы мучаетесь...
608 1604554
>>604551
Хочу сказать, что ты максимум трейни, если советуешь эту книгу.
unnamed.jpg44 Кб, 512x399
609 1604583
>>604554
via C# это ваша библия, ее на наизусть знать нужно
610 1604594
откуда у вас такое желание сосать???
611 1604598
>>604583
В этой книге почти все главы неактуальны, за 7 лет много чего изменилось, но думать ты можешь, что хочешь.
612 1604614
Парни, не могу нагуглить я дибил, мне нужно написать свой генератор псеводозначений ге можно найти инфу?
613 1604639
>>603801
точно
614 1604652
>>604598
давай по пунктам, заинтриговал
615 1604659
>>604614
Зависит от ожидаемого результата. Кнут описывал одну из реализаций. Вся идея не криптостойкого алгоритма в нахождении формулы от сида и взятии остатка от деления. Например: https://pastebin.com/WwTHjf0R

Такие формулы удобно проверять рисованием точек на 2д плоскости. Если на изображении нет очевидных узоров, а у стандартного Random вроде ромбы, то ты нашел правильную формулу.
616 1604668
>>604652
Мне лень чего-то тебе доказывать по пунктам, если конечно у тебя нет, чем меня можно мотивировать.
617 1604674
>>604668
конечно есть чем - ты пиздабол. Такой же, как и остальные высерки .NET треда, которые пишут не понимая того, о чем они пишут
Замотивировал?
618 1604676
>>604674
Не, старайся лучше, а то ишь удумал, по пунктам ему.
619 1604680
>>604676
это тебе было адресовано >>604551
620 1604681
>>604680
Как тебя-то порвало, кек.
tom-kruz17790267orig.jpeg58 Кб, 500x498
621 1604688
>>604681
чего еще ожидать от .NET-чика?
Зашел Java-Бог раз в кое веки почитать, что там о ваших новомодных Core пишут. А оказалось, что еще самому даунят учить пришлось. I'm not surprised
EER49AbXkAAgZRq.jpg80 Кб, 1051x504
622 1604689
623 1604785
>>586030 (OP)
Имеется

>byte[] bu


и нужно записать его в TCP-поток:

>stream.Write(bu, 0, bu.Length);


а затем закрыть его нафиг:

>stream.Flush();



Вся эта конструкция взята в try-catch.
При достаточно малых bu.Length запись в поток происходит без проблем,
но если увеличить размер массива bu до 20-30 мегабайт - вываливается вот такой Exception:

>System.IO.IOException:


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


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


>---> System.Net.Sockets.SocketException:


>Невозможно выполнить операцию на сокете,


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



Вопрос... что делать? Можно ли записать блоками?
Если да, то как грамотно нарезать большой byte[] bu
на маленькие блоки new byte[buffer_size]
чтобы записать их по отдельности, в цикле?
624 1604789
>>604785

>как грамотно нарезать большой byte[] bu


>на маленькие блоки new byte[buffer_size]


>чтобы записать их по отдельности, в цикле?


Под выражением "грамотно нарезать", подразумевается создание подмассива байт, таким бразом, чтобы не копировать 500 зеттабайтный byte[] bu этот ебучий.
625 1604813
>>604785
>>604789

>Можно ли записать блоками?


Да.

>Если да, то как грамотно нарезать большой byte[] bu


на маленькие блоки new byte[buffer_size]
чтобы записать их по отдельности, в цикле?
Без задней мысли, берёшь и нарезаешь: https://rextester.com/FHNR75546

>Под выражением "грамотно нарезать", подразумевается создание подмассива байт,


>таким бразом, чтобы не копировать 500 зеттабайтный byte[] bu этот ебучий.


Копируется только блок, не весь массив.
Хотя хз, может быть он всё-же обрабатывается весь, пока копируется.

И это... try-catch ещё добавь где stream.write, а то оно не всегда может записываться и ошибки бить.
В цикле пытайся писать, если кетч - Thread.Sleep.
А если ошибок 500 наберётся, просто выходи из цикла.
626 1604822
>>604813
Всё-равно, иногда, при попытке записать данные в поток - вылазит вот это:

>System.IO.IOException: Не удается записать данные в транспортное соединение:


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


>---> System.Net.Sockets.SocketException:


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


> в System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)


> в System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)


> --- Конец трассировки внутреннего стека исключений ---


> в System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)



Пробовал также, показать вот эти свойства:https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.networkstream?view=netframework-4.8
В частности - эти:

>stream.CanWrite: True


>stream.CanTimeout: True


и задать таймаут:

>stream.WriteTimeout = 50


А потом показать...

>stream.WriteTimeout: 50



Может как-то можно блокирующие сокеты для NetworkStream использовать?
627 1604849
>>604822
Там вон, по твоей ссылке, чуть ниже, есть метод асинхронной записи: stream.BeginRead, принимающий на вход, в качестве параметра - callback-функцию.
В свою очередь, метод EndWrite(IAsyncResult) - хэндлерирует конец процесса записи в сетевой поток NetworkStream, и пока оно не прохендлерировалось - сокет занят, и заблокирован,
это значит, что для всех других попыток записи,
пока идёт запись - можно выдерживать таймаут в цикле по условиям:

>while(!stream.CanWrite || data_still_writting == true){//if cann't write to the stream, or if data still writting


> Thread.Sleep(1); //just sleep 1 millisecond


>}



data_still_writting = true;
перед записью данных в поток,
а в коллбек-функции, по окончанию процесса записи - data_still_writting = false.

УМВР.
628 1604858
Посоны, правда ли, что Неткор значительно обошёл по производительности Жаву?

https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=plaintext&l=zijzb1-f&f=zijunr-zik0zj-zik0zj-zik0zj-zik0zj-zik0zj-hra0hr-zik0zj-zik0zj-e7

ГОРЖУСЬ ДОТНЕТОМ
629 1604860
>>604023
JVM это что? Ты щас скажешь, что виртуальная машина. Чем .NET Core отличается? Да ничем ёпты. Только внутренним устройством. Компоненты можно вынимать, менять, так задумано. В JVM все прибито гвоздями, ну разве что компилятор как компонент.
630 1604861
>>604023

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


>CLR via C# - пока первую главу не пройдешь, не возвращайся. И зачем ты пишешь, такую дичь, как


Чиво блять? Когда книгу писали .NET Core еще в проекте не было. Еблан, доку почитай. .NET Core состоит из рантайма CoreCLR, SDK, в который не помню что входит, а гуглить неохота, компиляторов для C#, F#, VB, и т.д. Я не все компоненты перечислил.
631 1604863
>>604023

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


Слыш ты, джявя-даун, ты мне про .NET будешь лекции читать? Я его знаю лучше тебя. Ты хоть хелловорлд на .NET Core на Линуксе написал?
632 1604866
>>604551
Не смешной, толстый, тупой троллинг.
633 1604867
>>604023
>>604866
Ты блять хоть порвись, но .NET Core это в первую очередь рантайм. Это рантайм для управляемого кода. Без него нельзя запустить C# код в Линуксе например. Ну можно через Mono по старинке, но это костыльная история получится. .NET Core у любого нормального человека ассоциируется с рантаймом, как и JVM. Помню на винде когда сидел, бывало что нужно было Java-приложения запускать, требовалось установить JVM или JRE. И туда и туда входит рантайм. Похуй что JVM еще имеет некое SDK для разработки, основная ее функция это рантайм, выполнять код.
634 1604874
Посоны, хочу написать на связке .Net Core + ReactJS + MSSQL проект, думаю над сутью. Есть идея написать приложение для приютов домашних животных, с учётом живности, расписанием привививок и ветеринарных мероприятий, учётками для волонтёров и гостей, фронтом для потенциальных хозяев. Всё это распространять бесплатно для приютов.
Норм идея?
635 1604881
>>604874

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


Нихуя непонятно что это будет.

>Норм идея?


Идеи обычно всегда выглядят красочно, а вот с реализациями часто проблемы. Тут главное понимать, что тебе придется разрываться между бэком и фронтом. Необходимо декомпозировать задачу. Закон Парето никто не отменял. Необходимо найти и понять те задачи, которые отнимут больше времени и сил. Чтобы их эффективно решить, а незначительные задачи оставить на пропотом.
636 1604896
>>604881
CRM для приютов. Для гостей подбор животных и подача заявок на усыновление. Плюс, сбор денег. Для сотрудников - распределение животных по волонтерам, планирование прививок и лечения, все такое.
637 1604935
>>604785
>>604813
Нахрена разбивать массив, что бы GC повесился? Ты когда писал

>stream.Write(bu, 0, bu.Length); тебя не интересовало, зачем ты написал 0 и bu.Length? Спойлер: это как раз указывается часть массива, которую надо записать в поток.



>а затем закрыть его нафиг:


>>stream.Flush();


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

>because NetworkStream is not buffered, it has no effect on network streams.



>System.Net.Sockets.SocketException


Там еще должен быть ErrorCode, какой он?
638 1604963
Слушаете ли вы музыку при работе\обучении в программирование?И каким образом Вы взрастили в себе привычку не отвлекаться на окружение, свои мысли\проблемы и т.д.?
639 1604966
>>604935

>Нахрена разбивать массив, что бы GC повесился?


>Ты когда писал


>>stream.Write(bu, 0, bu.Length);


>тебя не интересовало, зачем ты написал 0 и bu.Length?


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


Я просто бегло глядя на всё это, проинтерпретировал 0, как смещение в потоке, куда писать надо.
Спасибо. Теперь вижу, что это:

>The location in buffer from which to start writing data.



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


Тогда, .Dispose(true)

>Там еще должен быть ErrorCode, какой он?


>WouldBlock


>10035


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


Поэтому я бегло прочитал здесь https://ru.stackoverflow.com/questions/371655/В-чем-разница-между-сокетами-блокируемыми-неблокируемыми-и-синхронными-асинхронн
про блокирующие и неблокирующие сокеты,
и захотел присобачить - блокирующие.
548.jpg40 Кб, 460x318
640 1604968
>>604860

>Да ничем ёпты


>ЁПТЫ


>Компрессор холодильника это что? Ты щас скажешь, что это устройство для сжатия и перемещения паров хладагента в холодильных установках. Чем .NET Core отличается? Да ничем ЁПТЫ.


>>604861

>гуглить неохота


>>604863

>ты мне про .NET будешь лекции читать? Я его знаю лучше тебя


сомневаюсь
641 1605031
>>604874
Ну так начни писать. Что еще услышать хочешь?
642 1605034
>>604358

>Нужно ли окончить ВУЗ, чтобы стать хотя бы джуном-решёточником?



Без опыта работы ты не будешь джуном. И ВУЗ тебе в этом точно не помощник.

Ради корочки поступить можно. Но учить всё нужно будет самому.
643 1605047
>>604813
Немного лишней хуйни написал, можно проще - рассчитать частное и остаток в начале, а не на каждой итерации.
Вот, тут пример с двухсторонней конвертацией и сравнением: https://rextester.com/HGST29246
только вместо NetworkStream - MemoryStream.

>>604966

>.Dispose(true)


Не пашет чёт. Про какие-то защищённые члены попёздывает.
.Finalize() - тоже чё-то ругается.
А вот просто .Dispose() пашет.
644 1605059
>>604785

Вместо того чтобы грузить массив на 20-30 мб полностью в память, подумай о том чтобы читать данные через стрим.

Прокидывать один стрим в другой через буфер, причем предпочтительно меньше 85000 байт, чтобы не попадать в Large Object Heap (но если у тебя что-то одноразовое, то наверное похуй)
645 1605089
>>605034
Понял.

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

И с чего лучше начать?
646 1605091
>>604863
Вот ты вроде знающий.
Запили контакты, у меня есть несколько вопросов.
647 1605100
>>605034

>И ВУЗ тебе в этом точно не помощник.


Вроде нормальные вузы предоставляю практику, хотя бы пару месяцев и уже хорошо
d5da445-2852f2a7-ab91-42eb-983d-92070fb4d01d.png199 Кб, 800x562
648 1605112
>>604358
конечно, без ВУЗ-а вообще никуда. Лучше конечно начать с шараги 90% запостивших тут свои высеры именно они, а там уже в ВУЗ и сразу по специальности. Курсы бери C,F,Q#, VB, etc Желательно, чтобы преподы индусами были, а то мелкософт без них не обходиться.
Сидим, педалим - все .NET-тчики выпускники тех. вузов по специальности - программист-педальщик. Брат жив, пульс нормальный, не штормит.
1535862373116.png66 Кб, 404x404
649 1605114
>>605112

> конечно, без ВУЗ-а вообще никуда


Больной ублюдок.
650 1605117
Привет аноны как отправить в net core web api Base64String? отпраляю через StringContent пишет что апи не поддерживает, как быть?
Funnytw0inoneseat+Funnychair+twoguyssharingonechair+interes[...].jpg24 Кб, 400x300
651 1605127
>>605114
сидит рядом учитель истории, менеджер по продажам и психолог. И я, бывший экономист утверждаю, что без высшего ТЕХНИЧЕСКОГО КАРЛ никуда вообще. Коллеги со мной солидарты, ехидно улыбаясь кивают в знак согласия.
1565801664755.png9 Кб, 212x272
652 1605151
Для кого написаны первые 3 главы в CLR via C#?
Для совсем нулячих штолие
653 1605153
>>604874

>Всё это распространять бесплатно для приютов.



Бесплатность ломается на

>MSSQL



Если деплоить онпрем, то бедным приютам откуда-то нужно взять своровать лицухи на sql и возможно на винсервер.
Если на азуру, то опять же банкет оплачивать надо кому-то.
654 1605155
>>605153
Альтернативы?Постгресс какой-нибудь?
655 1605156
>>605047

> Dispose(true)Не пашет чёт.


>Finalize() - тоже чё-то ругается.


>просто Dispose() пашет.


Может тебе прочитать статейку какую нибудь про освобождение ресурсов, а не тыкать наугад?
656 1605157
>>605155

Да, как вариант.
657 1605187
>>604867
В дотнет кор нет разделения на рантайм + sdk или просто рантайм?
То есть ты хочешь на линукс серваке развернуть уже скомпилированный файл какого расширения, кстати? и ты скачиваешь рантайм дотнета и компилятор, даже если он не нужен?
658 1605211
>>605089
Начать лучше с ассемблера, чтобы понять с чего все началось.
Перфокарты с машинными кодами все же не советую, мы не настолько историки.
Потом вздохнуть с облегчением на сишечке, затем прочитать про концепцию ООП и немного изучить с++ и как оно там реализовано. Немного утомившись, перестать работать с памятью вручную, изучить джаву версии 1.4 (именно после этой версии появился шарп), немного выдохнув на нормальном ООП и затем посмотреть, какие фичи были в шарпе 1.0, изучить их, потом 2, 3 и так плавно до 8-ой версии дойти, эволюционно.
Если сразу броситься на изучать все-все фичи 8-го шарфа, какие есть, будет слишком много информации для нуба, и полное непонимание, почему именно так сделали, зачем и для чего. Нужно идти постепенно, от версии к версии.

C# is sort of Java with reliability, productivity and security deleted.
1513734562571.png104 Кб, 500x652
659 1605217
>>605211
Сука, хороший ответ, но к ассемблеру больше не полезу.
Посоветуй, лучше, книжек каких-нибудь; Player's Guide приглянулся, но смотря на via я вижу две абсолютно разные конструкции, которые кажутся несовместимыми.
И это всё хорошо, но как-то далеко от истины. Мне кажется, никто так не запаривается с этим, и все сидят формочки делают – но их-то я и делал, а важно мне понимание языка. Не в плане, какой там электрический говно-ток попадает в комп я всё-таки не жидофин, это уже то, чем я займусь на пенсии.

Я хочу писать программы на си-шарпе всеми возможными инструментами базовыми – как художник делает мазки краской.
Вот бы кто мне помог определиться, ёбанарот.
660 1605223
>>605155
SQLite :D
661 1605261
Сишарп вендорлок на mssql, вендорлок на азуре, вендорлок на винде
662 1605288
>>605211
двачую адеквата, без этого на # никак
663 1605366
>>605151
Толсто.
664 1605370
>>605366
Тебе потолще?
15814188681272.jpg135 Кб, 600x600
665 1605405
666 1605409
>>605370
>>605405
Полезно знать че такое сборка как создать с строгим именем, как в памяти все сохраняется....
667 1605420
>>605409
я не знаю, как хомяки педаляк свой высокоуровневый кодик, не зная, как работает среда. Вот блять не понимаю без приколов. Я когда написал Hello world меня не покидали мысли о загадочном методе Main, контексте, почему консоль сразу закрывается и как происходит преобразование под капотом. Я гуманитарий, но без этих знаний была асфиксия. Как в ДМБ - "Секс в резинке - движение есть, результата нет". Я даже первую репу на SOF заработал по вопросам работы стэка и хипа (писал полную ересь конечно), но тем не менее разобрался
668 1605441
>>605420
Пишут.
Есть охуенно огромное количество миддлов на том же Java, которые и в хуй без того не дуют.
669 1605453
>>605441
да ты выше почитай, что пишут. Не отличают фреймворк от среды исполнения. Я не знаю, как нужно нелюбить то, чем занимаешься, чтобы банально не удилить 1-2 часа времени и разобраться с цепочкой процессов, которые выполняются при каждой компиляции сборки. Это не вышка, не дискретка, не алгоритмизация даже (хотя любят некоторые вздрочнуть своим merge/bubble sort), это банальная работа механизма. Часто вижу в вакансиях Required - Granted tech education и проигрываю с этого. Ну получил корочку, и хули? А сидит и педалит на тонне библиотечек, даже не зная что такое JDBC/ODBC, а тем более -как происходит процесс компиляции. Вкатыши одним словом. Тысячи их.
670 1605460
>>605453
Ну мне лично похуй, тоесть я доверяю что реализация интерфейса ISosuHui, сосет хуи, и мне не нужно разбираться глубоко ли заглативает, мне похуй.
671 1605461
>>605453
Я читал, что там выше — это позор ёбаный.
Было бы здорово, если б такие хоть как-то отсеивались по мере становления серьёзными прогерами, авотхуй!
Опять же, возвращаясь к жабе, в которой в раза 2 всё полегче относительно механизма (и читается это действительно как какой-то роман, запоминающийся в голове), люди не желают в этом разобраться.
Тенденция какая-то, слогом не объяснить русским.

И я не этот гражданин — >>605460
sage 672 1605558
Хватит кормить явашизика.
image.png208 Кб, 421x468
673 1605646
674 1605974
Напомните-ка, каким же лучше образом задать второй параметр в ParameterizedThreadStart?

>bool parameter1 = false;


>Thread name = new Thread(new ParameterizedThreadStart(method))


>t_lite.Start(parameter1);


>...


>а в самом методе


>bool parameter1 = (bool)Obj;



Надо как-то второй парам засунуть, вообщем.
675 1605982
>>605974
bool param1 = false;
bool param2 = true;
Thread name = new Thread(()=>method(param1,param2));
name.Start();
676 1606015
В веб приложении с базой данных, куда запросы могут делать несколько человек если писать методы взаимодействия с БД сихнронно, поток будет один для всех пользователей? Я просто не понимаю:
1. Выделяется ли каждому юзеру свой поток;
2. При запросе юзера (хуй с ним одного) блокируется основной поток (интерфейс). Будет ли заблокирован интерфейс у другого пользователя?
3. Для чего вообще нужна эта еботня с асинхронностью? Когда пердолил в WPF - там все было понятно, в вебе - нихуя не понятно.
Спасибо
677 1606031
>>605982
Благодарю, заработало.
А просто System.Threading.Thread чем-то хуже ParameterizedThreadStart или не? Разные объекты всё-таки...
678 1606032
>>606031
Ты хуйню несешь, читай документацию.
679 1606089
Шарпаны, у меня вопрос относительно лаконичности описания асинхронных операций. Вот нафига асинхронному таску писать Task<T>? Почему компилятор за меня этого сделать не может? Он же и так кучу магии делает, так пусть и async T оборачивает в async Task<T> , если я явно не укажу что это какой-то другой IAsyncEnumerable<T>
680 1606092
>>606089
Есть еще ValueTask. В определении метода всегда надо указывать тип, что иногда дико выглядит, если там есть IEnumerable, Expression, Func. Может введут автовывод когда-нибудь как в плюсах или как в фшарпе.
1480453218170255041.jpg70 Кб, 800x452
681 1606102
>>586030 (OP)

Пюрешки с котелткой вам в хату, анончики.

Приветствует вас вкатывальщик-хуятывальщик 30 лвл.

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

Ради практики языка и в целях лучшего осознания базовых идей, задумал написать ОЧЕНЬ простой mvc фреймворк на С#, ибо плохо понимаю эту концепцию, этот паттерн и вообще как должен такой фремворк работать.

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

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

Тысячу нефти и персональный чай всякому, решившему помочь мне.
682 1606129
>>606015
бамп
683 1606188
В вакансия часто читаю требование - пользование и настройка IIS, MsSql. Ладно MsSql - покрутить, чтобы ошибки не триггерились при каждом чихе, но блять что настаивать в IIS? Киньте ссыль где можно почитать об этом. Спасибо
684 1606299
>>606015
http реквест = поток, IIS сам за тебя делает
685 1606302
>>606015
Асихронность здесь нужна
1) Для паралельних задач
2) Пока твой поток ждет что-то из Бд допустим он может делать другую полезную работу. Нужно для скалабили, и не сильно ощущаеться пока нет сотней запросов в секунду.
686 1606334
>>606302
вот у меня есть казалось бы банальная задача - добавление данных в БД. Нужно ли делать ее асинхронной? Казалось бы - интерфейс пользователя если не будет блокироваться, то так или иначе должны всплыть служебное сообщение - типо "Success" или "Data already exist".
>>606299
потоки эти синхронно обрабатываются? Один закончился - начался другой? Чего возникают такого рода вопросы - запросы могут быть тяжелые, чтобы не создавался стэк запросов для обработки, если такого рода задачи могут решаться многопоточно задействуя все ядра. Вопрос скорее в реализации многопоточности и асинхронности на нижнем уровне. Нужна ли эта реалиация на уровне интерфейса? Если нет, то зачем тогда эти методы у контекста EF - SaveContextAsync или AddAsync etc?
687 1606336
>>606334
SaveChangesAsync - быстрофикс
688 1606447
>>606334
Новий запрос на сервак, начинется новий поток, а че делал на старом ваще пох.
Что такое UI на вебе? У тебя MVC или есть JS клиент?
689 1606449
>>606447

>Новий запрос на сервак, начинется новий поток


Это же пиздец.
690 1606473
>>606188
А действительно, что там настраивать? Указал папку с проектом. Включил или нет возможность показа директорий, указал файл по умолчанию нахуй не нужно, и, вроде, все, с чем я сталкивался
Но у нас все iis'ы крутятся на виртуалках, может, там сисадмин озаботился чем, а я и не знаю
691 1606477
>>606334
Анон, ты задал очень хорошие вопросы. Мне самому интересно, но все руки не доходили спросить/почитать
Aspnet-codegenerator, который, собственно, и делает шаблоны контроллеров в студии, по дефолту делает CRUD асинхронные. Значит, есть смысл в этом. Но да, какой смысл, если следующая операция — вывод плашки "бд обновлена"
692 1606486
>>606447

>Новий запрос на сервак, начинется новий поток, а че делал на старом ваще пох.


не подскажешь, где об этом можно почитать?

>Что такое UI на вебе? У тебя MVC или есть JS клиент?


React JS на фронте с web api asp.net core
>>606473
Вот я тоже самое сказал - типо веб сервер, пусть сис. админы и ебутся. А мне фыркнули типо, нихуя губу раскатал. Теперь собираю инфу, что это за настройки такие
693 1606501
>>606477

Смотреть сюда >>606015

Вообщем есть пул потоков, допустим 100.
Одновременно пришло 100 реквестов, все одновременно отработало.
Дан.
Но если пришло 101, то последний должен ждать пока будут свободние потоки.

При чем тут асинхронность, так вот во время жизни потока 90% времени он ждет что-то из БД или же шустро видает результат.

Когда твой реквест делает что-то в бд поток ждет окончания операци, ему не нужен поток он может делать другую полезную работу. Тогда он может обработать 101 реквест и отработать.

Тоесть Add метод говорит что он будет закончен на том же потоке на котором начал.
А метод AddAsync говрит что будет закончен на любом потоке которий будет свободним.
694 1606522
>>606501
Я анон, который задавал >>606015
По вопросам Add и AddAsync у меня выстрелило в работе через UI->WebApi->EF->MsSql->IIS local. Методом Add - просто жду выполнения метода, он закончен - данные проходят по цепочке и попадают в БД. На каком этапе распределение и выделение потоков происходит - в душе не ебу, поэтому и задал этот вопрос.
Потом начал копать инфу - наткнулся на асинхронную реализацию методов - все запилил под AddAsync или SaveChangesAsync - начал обсираться на том, что данные банально не сохранялись в БД. На каком этапе идет обсирание понятно, что на том, кто создавал - не понятно.

>100 реквестов


А где эти ограничения указываются? Я у знакомого DevOps спросил - он говорит на уровне IIS указывается максимально обрабатываемый пул потоков.
Короче я запутался - нужны ли вообще эти ебучие асинхронные операции в CRUD-е? Опять же повторюсь с опытом из WPF - там это мастхев - Load bar, функционал UI и т.д. Как при цепочке, которую я описал - хуй его знает.
695 1606635
Собираюсь перейти на rider, какие подводные?
696 1606638
>>606635
Брат есть? Если да, то для него плохие новости
697 1606639
>>606638
Он умрёт? Я его выебу?
698 1607033
>>605187

>В дотнет кор нет разделения на рантайм + sdk или просто рантайм?


Есть. Есть версии с одним только рантаймом, их сейчас 3, .net core runtime, asp.net core runtime, desktop runtime. И есть runtime + sdk.

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


Exe или dll будет. Можно заюзать CoreRT/.NET Native, чтобы скомпилить в линуксовый бинарник.

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


Нет. Можно рантайм упаковывать в приложение, тогда не нужно на сервер ничего ставить даже.
699 1607035
>>605211

>Начать лучше с ассемблера, чтобы понять с чего все началось.


А что не с машинного кода? Прямо нули и единицы пердолить.
700 1607041
>>605261

>Сишарп вендорлок на mssql


Нет. В доках есть примеры с postgresql.

>вендорлок на азуре


What? Докер?

>вендорлок на винде


Давно уже нет. Сам на линуксе, винду не перевариваю, но .NET Core как экосистема превосходен. Пересмотрел все что сейчас есть из платформ, .NET Core это лучшее. Нигде нет такой продуманной экосистемы. F# прекрасен. Еще бы лиспоподобный язык прикрутили.
Без названия.jfif9 Кб, 225x224
701 1607044
>>607035
это путь труе программера, таким никому не стать кроме миня
702 1607074
Как передавать кукисы из аутентификации в методы? Какой то контекст выполнения должен быть? Короче мне действия каждого юзера нужно передавать флагом в БД (id/unautorized). Как такое сделать? Спасибо
703 1607106
>>607074
и еще вопрос - каким образом передавать ответ пользователю? Я говорю про механизм обратной связи. К примеру - Все ок, 200 или User already exist или Access denied - 403. Пилить масседж хендлеры и передавать их через return в методах? Через Web Api это можно будет хукнуть и отследить?
704 1607165
C# is close to becoming a legacy platform.
705 1607189
Microsoft is doing lots of things, the community is not supporting it. Community not creating open sourced libraries and frameworks. Thats is the sad part. Currently open source is the way now. Thats why Microsoft is made .Net as open source. But as usual they were late, Very much late.
706 1607219
>>607165
>>607189
ай верри гуд спек англсх лангуаге
707 1607498
На линуксе можно запускать игры на unity?
708 1607510
>>607498
разрешаю
709 1607511
>>607510
Я ожидал этой тупой шутки от m$ дельфистов.
710 1607520
>>607511
Я ожидал таких тупых вопросов от неосиляторов. Хочешь полных развернутых ответов - плати.
15807192137810.jpg193 Кб, 720x605
711 1607533
712 1607537
713 1607539
>>607520
Ты у меня через 5 лет будешь еще собеседоваться, понял:
714 1607541
>>607533
полаты?
715 1607554
Как скрыть главное окно приложения на Wpf, что-бы остальные формы по типу кнопок остались видны?
716 1607562
>>607541
лопаты
717 1607569
>>607554
AbstaractFrameVisabilityFactory.buildNewFrameVisabilityInstance.setVisible(false);
718 1608005
>>607537
Кароч иди нахуй читать метанит.
719 1608016
>>607074

>Как передавать кукисы из аутентификации в методы?


с этим разобрался, осталось >>607106 и >>606522
>>608005
я не против - скинь ссыль. После фразы - "Ищи сам" - Сам знаешь, что будет
720 1608019
>>608016
Скинул в личку.
2037999b-98d1-4621-b226-68e8e5e56c29.jpeg50 Кб, 630x420
721 1608035
>>608019
давай суда кидай, я что, зря деньги за интернеты плачу?
722 1608050
Человек вас попросил разобраться, а вы его отпедалили на сайт вкатывальщика.
723 1608053
>>608050
Я разобрался, используя сайт для вкатывальщика + гугл, всем советую.
724 1608055
>>608053
Но если тупой и сложно найти что читать, то вот линк - https://docs.microsoft.com/en-us/archive/msdn-magazine/2014/october/async-programming-introduction-to-async-await-on-asp-net
1500528035622.png320 Кб, 433x380
725 1608066
Добрый вечер. Не могли бы мне помочь с вопросом.

Виндоус форм. Есть десяток условных кнопок. Нужно при нажатии получать номер нажатой кнопки. Единственное что приходит в голову это получать их имена, заранее поименованые их с номером, а потом, получив, как то извращаясь вырезать слово button из имени.

Но я таки верю что есть способ умнее. Может у вас можно как нибудь свои номера/переменные у кнопок устанавливать?
726 1608096
>>608066
В Tag пропиши что тебе надо.
1451614665846.png50 Кб, 600x600
727 1608103
>>608096
Спасибо бро. От души.
VagueSnarlingIcelandicsheepdog-sizerestricted.gif2,8 Мб, 640x360
728 1608107
>>608055
Как же я не догадался на MSDN посмотреть иди нахуй
729 1608109
>>608103
Может есть варианты и получше. Я не программист вообще, просто развлечения ради на шарпах всякую мелочь пишу.
sage 730 1608132
>>608066
>>608109
Опиши задачу, тогда можно будет подумать о решениях.
1549235518938.PNG38 Кб, 1006x506
731 1608237
>>608132
Если я расскажу, над чем работаю, меня в треде засмеют
732 1608258
>>608237
Над клоном хартстоуна.
733 1608329
А под Шарп есть какие-нибудь продакшн-риди фреймворка для bigdata?
Или это область исключительно джавы? Хадупы, спарки, акка, штормы...
734 1608343
>>608329
Это область исключительно змея, хз нафиг ты сюда жабу приплел, дурашка.
735 1608347
>>608343
Хоть бы погуглил хадуп...
736 1608349
>>608347
Хоть бы погуглил змея...
737 1608351
738 1608354
739 1608356
>>608354
Инглиш учи, село.
740 1608372
>>608356
Тупой ньюфаг, ты должен был ответить "Зубочистку?"
Тебе вчера интернет провели, селюк.
741 1608375
>>608372
Я не знаю, что ответить дауну, который услышал где-то, что 2+2 = 5 и повторяет как попугай услышанное. Приплел он систему взаимодействия к бигдате.
sage 742 1608376
>>608237
Пикрандом? Как картинка свзана с кнопками?
743 1608377
>>608329
В Azure все есть.
744 1608378
>>608377
Не отвечаю ему, он и малейшего понятия не имеет в его высранных базвордах.
745 1608388
>>608375
hadoop это crm для бигдаты, учись.
746 1608397
>>608388
Теперь перечитай, что выше написано, может придет осознание.
747 1608403
>>608378
>>608375

Еблан.
Есть устоявшийся термин - бигдата.
И так же джентльменский набор тулов, часть которых я перечислил.
Будь я их знатоком, я бы был бы уже джавистом, а тебя поливал говном. Но я просто думаю, стоит ли оставаться в шаорпе, или валить в интересную область.
Судя по вакансиям Шарп - либо игры, либо формошлепство в тырпрайзе.
748 1608406
>>608403
Несите нового, этот порвался.
749 1608414
>>608406

Ты просто туповат, видимо.
Жду кого-то поопытнее.
750 1608418
>>608403
Еще десктоп забыл.
751 1608419
>>608414
Кого ты там ждешь 20 лет, опущенец?
752 1608422
>>608403
Еще забыл как я твою мамку ебал.
753 1608425
>>608422
На шарпе можешь выебать только оперативку и свап на диске.
754 1608427
>>608425
И это мне говорит жаба-макака.
755 1608429
Т.е. на шарпе вообще ничего стоящего не написать? Формошлепать и простые вебсервисы на кор?
756 1608430
>>608429
Насчет формошлепить не уверен, там нет жабы, но на жабе можно писать только простые вебсервисы.
757 1608434
>>608427
А ты чем лучше?
758 1608436
>>608430

>Нет, ты


Классика.
759 1608438
>>608434
Я лучше тем, что не обсираю другой язык и не пытаюсь навязать свое мнение, подумай, хлебушек.
760 1608444
>>608436
Ты, кстате, не Сергей Немчинский?
761 1608445
>>608438
Я вообще другой анон, а не тот, что про бигдату тут затирать начал.
762 1608449
>>608444
Нет, я Егор Бугаенко.
763 1608451
>>608449
А, значит это у вас общее.
764 1608453
>>608451
Что общее?
"Классика." это вообще отсюда:
https://youtu.be/Uz2pvOuUM8Y
765 1608454
>>608453
О, боже, на борде школьник или с умственной отсталостью.
766 1608456
>>608445
Я тебе не верю, доказательства будут?
767 1608460
>>608258
Ну так то скорее ХС клон таких игор.

>>608376
Регулярки на скрине для ловли лога, а кнопки для ручного управления. Так как у них лог кривой и некоторые карты вроде призовых приходится тыкать самому. А так как карт и кнопок дохуя я и делаю все через массивы номеров кнопок.
768 1608463
>>608454
Я короля с 2009 смотрел.
769 1608467
>>608456
Скрин могу дать, что нет красной полоски.
Но это ведь легко подделать другим окном броузера.
770 1608468
>>608463
Ай, шутник.
771 1608470
>>608460
А зачем ты делаешь игру на десктоп формочках?
772 1608474
Подытожим, пиздабол с расстройством личности.
773 1608482
>>608474
Какой пруф ты хочешь? Скрин?
774 1608483
>>608474
Не удивлюсь, что вся беседа была от одного ананаса
1550385386040.PNG34 Кб, 343x441
775 1608484
>>608470
Это не игра, а трекер по типу Хертстоунского. Считает что вышло и что осталось, а учитывая что тут есть режим готовых сборок можно и колоду противника со 100% уверенностью видеть
776 1608487
>>608483
Я не один! Нас много!
777 1608492
>>608482
Мне нужен пруф твоих слов про бигдату. Ты когда открываешь рот, подкрепляй его фактами. А пока будешь попугаем.
778 1608493
>>608482
Скрин в качество доказательства в /pr
Куда катится двач
779 1608501
Господа, вкатился к вам из геймдева с Unity, подскажите пожалуйста такой вот вопрос- Unity webGL слишком оверкил для моих целей, мне нужна браузерная веб версия простой игры с сложным социальным взаимодействием больше UI, меньше физона/ геймобжектов.

Может быть существуют какие-то фреймворки для создания динамических и красивых браузерных веб приложений на C#? Или C# вообще не для этого? А если для этого, то как это гуглить вообще? Или у меня нет варианта, если это не webGL то придется ебаться с CSS и всякой такой еботой?
780 1608504
>>608492
Я другой анон.
781 1608505
>>608504
И? Ты читать умеешь, что у тебя спрашивают?
782 1608507
>>608505
Моих слов про бигдату итт нет.
783 1608510
>>608507
Зачем влез тогда?
784 1608513
>>608510
Чтоб ты не оскорблял на ровном месте.
785 1608515
>>608513
Ну прости меня, дай обниму.
786 1608518
>>608515
Только не сильно.
787 1608520
>>608515
>>608518

Ыыы, я даже не рассчитывал что мой наброс про бесполезность шарфа приведет к такому срачу и воссоединению гей пар xD
788 1608521
>>608520
Вот ты и прокололся!
789 1608533
>>608520

>обосрался


>хыхыхыыыы наброс))))



И правда смешно получилось :)
790 1608537
Заебали флудить, тварыны ебаные
791 1608539
где перекат?
792 1608541
>>608539
После 1000 поста.
793 1608545
>>608541
Но почему?
794 1608596
>>608501
Blazor, но он еще сырой очень
795 1608728
>>586030 (OP)
Есть приватный статичный массив обеъектов.
Объекты, в этом массиве - меняются, как и их количество.
Есть метод, возвращающий первый объект из массива объектов.
Задача - каким-то образом прицепить таймер в этот метод так,
чтобы метод гарантированно возвращал объект только тогда, когда он есть или появится в бущущем.
Thread.Sleep() не катит, он тормозит всю прогу, блядь.
796 1608757
>>608728
Используй задачу марианетку.

TaskCompletionSource<object> tcs;

public Task<object> GetOrWait() => objects.Length > 0 ? Task.FromResult(objects[0]) : tcs?.Task ?? (tcs = new TaskCompletionSource<object>()).Task;

//Где-то, где добавляются элементы
objects.Add(newItem);
tcs.SetResult(newItem);
tcs= null;

//клиент
var obj = await GetOrWait();

Это концепт, синхронизацию и прочее пердоль сам.
797 1608774
>>586030 (OP)
Как на .NET 2.0 реализовать async-await?
798 1608786
>>608774
Никто не вернется в 20075
799 1608788
>>608596
Спасибо, будет с чего начать поиск.
800 1608835
>>608786
Ну, мож либы какие-то есть уже?
IMG20200220094525.JPG617 Кб, 3532x898
801 1608837
Сап, двач.
На связи первый курс.
Как написать этот код? Взял цифры от -5 до 5. Дошел до Array, а что с ним делать - без понятий. Выручай.
802 1608841
>>608774
Через IAsyncResult, BeginInvoke и подобную залупу.
803 1608852
>>608837
ну так в чем проблема то?

перебирай элементы массива. Через If задавай условия и складывай, умножай.

Задача изи. Если учишься на программиста, то такое стыдно не решить.
11.png29 Кб, 446x428
804 1608865
>>608837
На шарп сам перепишешь, задача уровня 6 класса.
805 1608876
>>608774
Реализовал асинхронность при помощи System.Threading.Thread: https://rextester.com/MMKXT99662
Всё правильно сделал?
806 1608878
>>608865

Так не пишут ни на js, ни тем более на шарпе.
Какой смысл писать на высокоуровневом языке, как на с?
807 1608879
>>608876
Заебись, и либ никаких не надо. А то от этих слов криптоных >>608841 - я аж пересрал.
Пойду асинхронизировать асинхронно - асинхронизацию асинхронизациоанальную,
асинхронизациоаналистично и даже асинхронизацианалично.
image.png40 Кб, 651x676
808 1608883
>>608837
не шедевр конечно, но всё равно держи анон.
image.png52 Кб, 259x194
809 1608884
>>608879

>криптоных


крипотных
810 1608890
>>608883
Но это процедурный стиль как в бейсике. Смысл шарпа без ооп?
811 1608893
>>608883
Благодарю
812 1608912
>>608890
Создатель Hello World Enterprise Edition, не ты ли это?
813 1608913
>>608876
Ты путаешь асинхронность и многопоточность, манька.
814 1608916
>>608878
Я же написал, значит пишут. Могу на шарпе также написать. И что ты мне сделаешь?
815 1608930
>>608916
Не возьму на работу, если увижу.
Быстро переписал в функциональном стиле.
А потом, для закрепления, с помощью linq на шарфе.
816 1608936
>>608890
открою страшную тайну, но именно так учат шарпу во всяких шарагах. И смею предположить, что анон именно пишет оттуда. И написав с ОПП или Linq, его код преподаватели могут просто не понять.
image.png8 Кб, 577x135
817 1608946
>>608930
вот тебе с linq, правда только первое условие остальное лень делать)

мимо другой анон
818 1608950
>>608728

BlockingCollection из TPL посмотри, оно правда скорее для Producer-Consumer, но может у тебя как раз такая задача?
819 1608954
>>608835
Зачем такой архаизм нужен? Даже на ХР можно 4йы накатить

>либы какие-то


Есть Microsoft.Bcl.Async, но нужен net4. А еще это все работает в свзке с компилятором и нужна студия 2012+.
Но раз уж хочется писать на доисторическом дотнете, то пиши как деды, через IAsyncResult.
820 1608955
>>608930
>>608837
на держи короче еще один говнокод
image.png41 Кб, 631x652
821 1608956
быстрофикс
822 1608957
>>608913
Бле, внатуре.
Меня просто заебали эти notif'ы ебучие:
https://github.com/username1565/nanoboard/blob/e9984842cd69b5636f0d699cab5a70084950fc25/nanodb.exe-source/Server/NotificationHandler.cs#L42
Как видишь, метод возвращает HttpResponse
только когда Queue<string> Messages содержит нотификацию,
но он, этот метод, всё-равно должен возвращать HttpResponse, даже если там нихуя нет.
Возвращая new HttpResponse(StatusCode.Ok, "");
клиент повторно отправляет запрос...
Из-за этого открвается хуева туча соединений, и это так бесит - пиздец!

>Thread.Sleep(10); // Wait.


Вообще, нахуй - тормозит всю программу.

А если сделать так >>608876 , то вроде как запрос от клиента повисает в Pending, и нотификация приходит тогда, когда она есть,
но при этом, на каждый запрос нотификации от других клиентов - стартует новый поток.
Это же пиздец какой-то ещё больший, ведь клиенты могут отключаться, а потоки эти, многопоточные,
в памяти рекурсивно всё-равно будут крутиться, и возвращать нотификации - в никуда, блядь.
823 1608963
Сап, котаны. Где-нибудь можно взять идеи годных пет-проектов?
824 1608969
>>608954

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

Если он занимается поддержкой старого говна, типа портала на sharepoint 2010 или что-то подобное (сайт на старом аспнете, или либы на net 2.0) то такого варианта нет.
825 1608976
>>608774
хопа, попався на легаси. Страдай, сцука гугли EAP
>>608837

>На связи первый курс


сап долбоеб, сажи-скрыл
>>608963
из головы. Зашкварный ты погромист, если не можешь придумать себе идею.
>>608957

>/username1565/nanoboard/


шизика так и не забанили, мечтатель борды с блекджеком и цп шлюхами
826 1609071
>>608946
Хуевый линк, учитывая, что с линком можно сразу результат получить, без всяких foreach
827 1609094
>>608976

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


Ну вас... Заебенил, пока-что с одним потоком: https://rextester.com/ZNWID54391
Как думаете, норм, или чё-нить добавить/удалить?

>>608841
>>608954

>IAsyncResult, BeginInvoke


Есть где-то примеры кода рабочего? Может кто наварганить в rextester'e по-быстрячку?
829 1609198
>>609094

>пока-что с одним потоком


А смысл, ты же сразу после старта джоин делаешь.

>где-то примеры кода рабочего?


Тебе же сказали - гугли EAP.
что-то ты какой-то тупенький
image.png6 Кб, 356x101
830 1609412
Аноны, как правильно? Ну в смысле как тру программисты пишут?
Мне больше третий вариант нравится.
831 1609511
>>609412
printf("%s вам", xyi);
832 1609517
>>609412
Обычно в строчку привожу

>Console.WriteLine((string)hui.ToString()+" тебе");

833 1609518
>>609511
xyi |> printfn "%s вам"
sage 834 1609519
sage 835 1609525
>>609412
бля, мимо кнопки нажал >>609519
Конечно же 2
836 1609620
>>609198

>А смысл, ты же сразу после старта джоин делаешь.


Зато thread.Abort() не срабатывает, пока тред не завершится.
И только после его завершения, значение возвращается.
Но сейчас заметил, что Thread.Sleep(2000); тормозит всю программу, блядь.
Поэтому, попытался сделать, внутри метода, который вызывается в потоке:
thread.Sleep(2000); //затормозить только поток, в котором выполняется метод
И... Нихуя... Можно ли так сделать каким-то образом?

>>608841
Попытался подключить IAsyncResult, так оно в других методах типы подменяет. Откатился нафиг.

>>609198

>Тебе же сказали - гугли EAP.


Пиздец, глаза обломал.
Нахрена мне Extensible Authentication Protocol
ещё и на канальном уровне,
если мне просто вернуть значение, методом, когда оно появится.
То есть надо подождать, пока появится значение и вернуть его только тогда,
и проверять значение это - в одном потоке,
и ждать - тормозя только этот поток, а не всю программу, из-за Timer.Sleep().
Пытался через .Task ещё что-то делать, но - нифига не пашет в .NET 4.0.
837 1609661
>>609620

>Extensible Authentication Protocol


хуя ты даун, земля тебе пухом EAP - Event-based Asynchronous Pattern
и зачем ты свою телегу на .NET 2.0 пилишь вообще? Чем тебе 4.8 не угодил?
838 1609774
>>609661

> 4.8


Новомодная хрень для зумеров с тоннами синтаксического сахара. А во второй версии есть душа
image.png340 Кб, 497x500
839 1609828
>>609661

>хуя ты даун, земля тебе пухом EAP - Event-based Asynchronous Pattern


Хэххэх. Пикрил.
Судя по примерам кода, при использовании EAP на IAsyncResult BeginInvoke, всё равно тормозят ответ при помощи Thread.Sleep(milliseconds),
и пока оно спит, второй экземпляр метода не запускается, сукаблять.

>и зачем ты свою телегу на .NET 2.0 пилишь вообще?


>Чем тебе 4.8 не угодил?


Это не телега, и она не моя. Она наша. Каждый её дрочит как он хочет. Её даже шатать можно похлеще вакабы.
Чем ниже фреймворк - тем он ближе к ассемблеру, а чем ближе к ассемблеру, тем более крутым кулхацкером себя чувствуешь, когда высераешь в блокнотище - свой кривой говнокод. Заебись же, охуенность ежжи.
840 1609830
>>609828
Плюс ещё обратная совместимость. Фреймворк 4.8 на тамагочи не запустишь, а на тетрисе - и подавно.
841 1609913
>>609620

>Зато thread.Abort() не срабатывает, пока тред не завершится.


А, так ты добавил отдельный тред, только чтобы вызвать на нем Abort.

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


Ты так и написал, хз чего ты ждал.

>Можно ли так сделать каким-то образом?


Не болкировать ожидающий поток, т.е. не вызывать джоин.
>>609828

> тормозят ответ при помощи Thread.Sleep(milliseconds)


симулируют долгое выполнение метода

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


ой дурак

> тем он ближе к ассемблеру,


ой дурак х2

>высераешь в блокнотище


ой дурак х3
>>609830

>4.8 на тамагочи не запустишь


Так где ты 2,0 собрался запускать?
L5YqY2mNdWI.jpg224 Кб, 1600x1200
842 1609982
Шарп, помоги с зачеткой
woosh-you-will-pass-your-exams-you-shall-pass-66669114.png92 Кб, 500x547
843 1610006
>>609982
Все, можешь идти сдавать
пошел нахуй
844 1610063
>>609828
>>609774
Какие то вы странные - вроде же для себя пишите, зачем тогда устаревшую технологию брать?

>Плюс ещё обратная совместимость. Фреймворк 4.8 на тамагочи не запустишь


старое говно ASp.NET 2.0 где ты собрался запускать?
В ASP.NET 4+ те же грабли с асинхронностью реализовали в виде Async-await, где не нужно ломать мозг, а все за тебя делает исполняемая среда. Идея с этой ссаной бордой может и не плохая, я не знаю как все эти чейн хешкоды работают, видимо у вас есть опыт из шифрования крипты, мне похуй, но если вы делаете проект - проанализируйте общую картину от начала и до конца (от проектирования до деплоя и размещения на железе)
845 1610270
>>610063
Да я шучу. Так-то я core 3 сижу
846 1610345
>>610270
зачем тогда за .NET 2.0 спрашивал? Или жидко обосравшись, забыл добавить Core?
1582332244715.jpg152 Кб, 1024x1024
847 1611064
>>610345
Это другой анон
848 1611069
>>609913

>Так где ты 2,0 собрался запускать?


Intel 4004 его разве не потянет?

Как вам такой, вот пердолинг, без https://rextester.com/WSQWY2275
без IAsyncResult с BeginInvoke ?
Вместо подтормаживания программы при помощи Thread.Sleep,
решил юзать старейшие thread_N.Suspend() и thread_N.Resume() - по таймеру.
Потоки записал в список, чтобы держать только один поток открытым.
Остальные же - абортируются с возвратом "empty_response", туда, когда новый поток открывается.
На rextester'e второй вызов не работает чё-то, а у меня, в NotificationHandler.cs - пашет.
Только там не строка возвращается, а HttpResponse.
Пашет, наверное из-за того, что NotificationHandler - это новый объект, создающийся при запросе на /notif
849 1611072
>>611069
Вот ещё EAP (async-await на IAsyncResult с BeginInvoke): https://rextester.com/NLL39693
Вроде работает, но при большом числе запросов из public static void Main
открывается куча потоков. Как их закрывать/подтормаживать, абортить - хуй знает.
Там же Thread.Sleep используется, а он то ли для текущего треда, то ли для всей программы срабатывает.
850 1611077
>>611072
Потому что long_time_method запускается в отдельном потоке,
id которого видно в System.Threading.Thread.CurrentThread.ManagedThreadId:
https://rextester.com/CITZO33999

>при большом числе запросов из public static void Main


>открывается куча потоков


Так что, надо как-то - обобщить всё это.
851 1611114
>>611077
Пришлось создать ещё один список потоков, чтобы пришпандорить IAsyncResult: https://rextester.com/EDEDA45116
С множеством запросов rextester не хочет работать, ругается, поэтому вот: https://repl.it/repls/UnlawfulMundaneDebugmonitor
Не всегда запускается, иногда тоже ошибки выдаёт...
Хуета-то какая. Можно как-то попроще это сделать?
852 1611174
>>611064
Не смешно.
853 1611239
>>610063

>Идея с этой ссаной бордой может и не плохая


Ссаные у тебя панталоны, а борда эта - просто заебата.

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


Хэш - это просто уникальная строчка, наподобие контрольной суммы, но длинее,
и рассчитываются хэши - самыми разными криптостойкими алгоритмами хэширования:
https://ru.infobyip.com/hashcalculator.php
854 1611253
>>609620

>Thread.Sleep(2000); тормозит всю программу, блядь


>thread.Sleep(2000); //затормозить только поток, в котором выполняется метод


System.Threading.Thread.CurrentThread.Sleep(milliseconds);
пробовал?

P.S.: Чё-то не робит: https://rextester.com/VHZZ17914
А вот c Suspend и Resume по таймеру - робит: https://rextester.com/DHYPO32923
855 1611400
Как дебажить в шарпе, кроме Console.WriteLine(...)?
Ставить точку останова и наводить мышкой, чтобы смотреть содержание переменной? Или есть более совершенные техники, которые применяют сеньоры?
856 1611439
>>611400
Не забывай про F10, F11 и Shift + F11
857 1611454
>>611400
ES+Kibana, CloudWatch, log4net.
858 1611671
>>611239

>Ссаные у тебя панталоны


любитель цп сгорел

>а борда эта


только куском говна на гите лежит

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


и рассчитываются хэши - самыми разными криптостойкими алгоритмами хэширования:
>>610063

>мне похуй

859 1611687
>>611064
Ты зачем котэ обижаешь, сука.
860 1611698
>>611671

>любитель цп сгорел


Какие же вы чмоньки, пиздец, со своей манечкой этой.
Как будто, кроме цп на наноборде, и вообще на скрытобордах в дарквебе - нихуя годного нет.
Как только в сети появляется ресурс, направленный на то, чтобы гарантировать свободное общение, без мочерации ссаной,
так сразу начинаются вайпы, хаки, или вброс похабного контента, вроде ЦП - чтобы абузами домен закидать.
А вот хуй вам. Это onion. Это TOR. Там ещё BitMessage транспорт есть, между прочим.
А наноборда - это плацдарм для проведения научных дискуссий, в среде, где каждый может настроить её под себя - децентрализированно.
861 1611709
>>611671

>только куском говна на гите лежит


Ты думаешь кто-то будет вам палить годноту?
Настоящая наноборда имеет четыре миллиарда активных пользователей и три миллиарда реактивных.
sage 862 1611814
>>611709
И 15 миллиардов пассивных
863 1611827
>>611454

>log4net


Скопировали с log4j!
864 1611903
В общем, повесили на меня студента. Должен буду давать заключение о прохождении испытательного срока Я увидел в его коде такую вот фигню:
void foo(ref Message message, ref byte[] data);
И вот что теперь с ним делать? Вроде как с задачей что я ему дал он справился, но ведь блин, базовая вещь про то что классы и массивы в шарпе - ссылочные типы. Просто объяснить ему это и пусть считается что испытательный срок он прошел или лучше сказать начальнику чтобы послал его доучиваться?
865 1611928
>>611903
Может сперва ты напишешь, почему он использовал ref и какая была задача?
866 1611964
>>611903
Пусть тебя, долбоеба, доучиваться посылает. ref можно использовать и для ссылочных типов, зависит от тела метода в который ты их передаешь.
Если ты передаешь ссылочный тип без ref, то передается копия ссылки, а не оригинал. Ты можешь использовать эту копию для модификации объекта, но при переназначении непосредственно ссылки, переменная в вызывающем коде не изменит своего значения, т. е. в ней также останется ссылка на старый объект. Другое дело при передаче ссылочного типа с ref. Ты можешь использовать её как для модификации объекта, так и для назначения нового указателя.

Типичный эксперт, который ничего сам не знает, но кого-то учить собрался, блять. Ладно ты этого не знаешь, но мозги вообще не работают что ли? Если бы значения не имело, то тебе бы компилятор об этом говорил.
867 1611985
>>611964
Я другой анон.
868 1611989
>>611964
Ты серьезно думаешь что я этого не знаю и спрашивал бы в случае если там переопределения ссылки происходили? Он просто дергает из массива данные? приводит их к нужному типу и присваивает свойствам сообщения. Там ref не нужен от слова совсем. Но он есть. И это, лично меня, смущает.
869 1612014
>>611989
Да-да, быстро ты переобулся. Но ведь это ты писал:

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


>что классы и массивы в шарпе - ссылочные типы.


Какое это отношение имеет к модификатору ref? Читается именно как "это же ссылочные типы, их не надо с ref передавать ))) 0))) "
870 1612070
>>612014
Господи, ты действительно думаешь, что с 2010 года я ни разу ref не использовал и не знаю когда он нужен, а когда нет? Блядь, я волнуюсь о том, что это первый студент решение о взятии которого полностью доверили мне, если я скажу что все ОК, то ответственность за то что он напишет и на мне лежать будет, хуй знает чего он еще не знает, потом мне его код переписывать придется; с другой стороны, он, вроде как, смышленый и вообще работать хочет, сделал задание за вечер, хотя ему дали неделю. А ты тут самоутверждаться пытаешься. Из-за тебя я сейчас бомбану и в понедельник пошлю его нахуй, просто потому что анон с двача испортил мне настроение в выходные.
871 1612078
>>612070
Человек приводит пример с передачей ссылочного типа по ссылке, при этом не приводит тело метода и даже не уточняет, что в этом нет необходимости. Человек зачем-то упоминает, что массивы и классы это ссылочные типы.
Очевидно, что если бы он знал как работает ref со ссылочными типами, то он так бы не обосрался. Поэтому хватит пытаться оправдаться перед самим собой, лучше заполни пробелы в своих знаниях.
872 1612124
>>612078
Блядь, потому что я думаю, что это, очевидно. Неужели тебе не понятно?
Вот, смотри тело методов:
public async void HandleAcceptedData(ref Message message, ref byte[] data)
{
message.Type = (Message.MessageType)data[0];
switch (message.Type)
{
case Message.MessageType.auth: await OnAuth(ref message, ref data);break;
case Message.MessageType.register: await OnReg(ref message, ref data); break;
case Message.MessageType.message: OnMessage(ref message, ref data); break;
default: throw new ArgumentException("Неизвестный тип сообщения");
}
}
private async Task OnReg(ref Message message, ref byte[] data)
{
message.Type =Message.MessageType.register;
var regString = Encoding.ASCII.GetString(data, 1,data.Length-2).Split("\0");
var UserName = regString[0];
var Password = regString[1];
Console.WriteLine($"Is reg message: {UserName}, {Password}");
var isRegistred = await SaveUser(UserName, Password);
Console.WriteLine($"User registred: {isRegistred}");
}

private async Task OnAuth(ref Message message, ref byte[] data)
{
var regString = Encoding.ASCII.GetString(data, 1, data.Length - 2).Split("\0");
var UserName = regString[0];
var Password = regString[1];
Console.WriteLine($"Is reg message: {UserName}, {Password}");
var isValidUser = await ChekUser(UserName, Password);
Console.WriteLine($"User registred: {isValidUser}");
}

private void OnMessage(ref Message message, ref byte[] data)
{
string messageString = Encoding.ASCII.GetString(data, 1, data.Length - 2);
Console.WriteLine($"Is message: {messageString}");
}

Где, блядь, ты такая, тут нужно ref использовать? Блядь, у меня теперь действительно горит, сука.
872 1612124
>>612078
Блядь, потому что я думаю, что это, очевидно. Неужели тебе не понятно?
Вот, смотри тело методов:
public async void HandleAcceptedData(ref Message message, ref byte[] data)
{
message.Type = (Message.MessageType)data[0];
switch (message.Type)
{
case Message.MessageType.auth: await OnAuth(ref message, ref data);break;
case Message.MessageType.register: await OnReg(ref message, ref data); break;
case Message.MessageType.message: OnMessage(ref message, ref data); break;
default: throw new ArgumentException("Неизвестный тип сообщения");
}
}
private async Task OnReg(ref Message message, ref byte[] data)
{
message.Type =Message.MessageType.register;
var regString = Encoding.ASCII.GetString(data, 1,data.Length-2).Split("\0");
var UserName = regString[0];
var Password = regString[1];
Console.WriteLine($"Is reg message: {UserName}, {Password}");
var isRegistred = await SaveUser(UserName, Password);
Console.WriteLine($"User registred: {isRegistred}");
}

private async Task OnAuth(ref Message message, ref byte[] data)
{
var regString = Encoding.ASCII.GetString(data, 1, data.Length - 2).Split("\0");
var UserName = regString[0];
var Password = regString[1];
Console.WriteLine($"Is reg message: {UserName}, {Password}");
var isValidUser = await ChekUser(UserName, Password);
Console.WriteLine($"User registred: {isValidUser}");
}

private void OnMessage(ref Message message, ref byte[] data)
{
string messageString = Encoding.ASCII.GetString(data, 1, data.Length - 2);
Console.WriteLine($"Is message: {messageString}");
}

Где, блядь, ты такая, тут нужно ref использовать? Блядь, у меня теперь действительно горит, сука.
873 1612129
>>612070

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


> Мам, я не хотел собеседовать, мне навязали


> Мам, я боюсь ответственности, боюсь спросить что-нибудь ещё у кандидата, это говорить надо, а я пук среньк только умею


> РРРЯЯЯЯ ВЫ УБЛЮДКИ Я ИВО УВОЛЮ ВСЕХ УВОЛЮ


Ой-вей
874 1612132
>>612129
Все так. Я не хотел собеседовать, мне сказали - надо. Что я мог поделать?
875 1612135
>>612124
Есть же пастебин или .net fiddle. Как читать это - непонятно.
876 1612148
>>612132
А отказаться нельзя?
Мне предлагали подобрать человека самому, но ебал я это дело, хоть и набирать его надо было на мои же задачи
Подождал начальника, собеседовали вдвоём

По поводу твоего случая — спроси кандидата, а не тред. Может, у него свои мысли на этот счёт, а, может, по запаре оставил и вы оба посмеетесь над этим пустяком. Все же он за один вечер сделал я бы только половину тестов накидал к этому времени
877 1612205
Антоны, че за хуйня, у меня в файле 150к строк, я для каждой из них создаю и сразу же запускаю таск.
В итоге не все таски выполняются, как так?
sage 878 1612319
>>612205
Смотри в код, там что-то не так написано.
879 1612322
>>612205
Может, ты забыл поставить приоритет, или не ждешь, пока все закончатся
880 1612389
>>612205
Вангую что ты не ждешь таски. У меня на миллионе тасков все нормально работает.
881 1612575
>>612124
нахуя он в каждом кейсе ref добавляет? Ты его спроси лучше адекватно, что он этим кодом хочет сделать
882 1612850
>>612389
>>612322
Да, я не ждал тасков, но почему они не выполняются?
Алсо, еще ошибка была в race condition, чтобы уникальные имена для файлов сгенерить в многопоточке нужно еще и поебаться.
Сейчас все поправил.
883 1612971
>>612124

>Encoding.ASCII


2020 год в шарпе.
image.png8 Кб, 739x234
884 1613287
В чём смысл в контроллерах делать async варианты методов и добавлять в них await, особенно когда просто берётся из dbcontext'а список объектов? Просто как я понимаю, что сервер будь то IIS или kestrel всё равно не в одном потоке каждый запрос обрабатывает, а кидает их в очередь, которая равномерно хендлится каким нибудь thread pool'ом. И зачем тогда городить новый тред?
885 1613288
>>613287
Кажись нашёл исчерпывающее объяснение: https://stackoverflow.com/questions/30566848/when-should-i-use-async-controllers-in-asp-net-mvc
886 1613388
Посоны, посоветуйте хорошие видео или подкасты по шарпу уровня Рихтера, чтобы смотреть в дороге на работу?
887 1613399
>>613388
Ежи Сармат.
888 1613462
>>613388
CODE BLOG канал на ютабчике
у него разбор рихтера по главам есть (правда пока не всего)
+ понятные уроки по основам языка и алгоритмам
+ практические уроки по ASP и WPF
889 1613534
>>586030 (OP)
Как избавиться от этих варнингов, ебучих?

> warning CS0618: 'System.Threading.Thread.Suspend()' является устаревшим:


> warning CS0618: 'System.Threading.Thread.Resume()' является устаревшим:


>'Thread.Resume has been deprecated. Please use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources. http://go.microsoft.com/fwlink/?linkid=14202'



Есть поток, он приостанавливается при помощи Thread.Suspend()
Есть таймер, который после окончания маймаута запускает метод, внутри которого thread.Resume(),
где (Thread) thead = new Thread(бла-бла, тот самый поток, в котором сработал Thread.Suspend())
Как всю эту хрень сделать на мютексах, семафорах, и синхронизации сихронизациоаналичной, чтобы эти варнинги не пёрли, и чтобы заебись было?
890 1613538
>>613534

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



И чего ты ожидаешь? То что тебе в одном посте объяснят весь раздел под названием "Асинхронное программирование и многопоточность"? Открываешь книжечку, открываешь статьи, открываешь гайды и учишь, а потом используешь.
891 1613544
>>613534
А пока, чтобы эти варнинги - глаза не мозолили,
просто отключил их нахуй, при помощи дедовского метода:

>#pragma warning disable 0618


>#pragma warning restore 0618

892 1613545
>>613538
Хоть бы ссылку дал, а то щас в шлаке нагугленном на StackOverflow буду колупаться, гляну по-бырому и закрою нафиг.
893 1613563
>>613545
Какую тебе ссылку дать, скотина тупорылая? Ты настолько тупой и даже не осознаешь, что для того чтобы тебе дать ссылку, нужно хотя бы малейшее представление иметь о уровне твоих текущих знаний.
894 1613594
Such lang much design
895 1613647
анон помоги, предположим у меня есть массив элементов,
у элементов есть value, вот например мы выбрали какой-то из массива, и взяли его value, как можно сравнить сколько процентов элементов имеют value ниже чем выбранный?
896 1613649
анон помоги, предположим у меня есть массив элементов,
у элементов есть value, вот например мы выбрали какой-то из массива, и взяли его value, как можно сравнить сколько процентов элементов имеют value ниже чем выбранный?
image.png389 Кб, 570x480
897 1613785
можно ли поделить timespan на timespan?
898 1613801
>>613785
Нет, можно только вычитать и складывать. Нахуй тебе временные отрезки делить? Ты долбоеб?
899 1613803
>>613563
Не знаешь решения простейшего вопроса - сидел бы да помалкивал, и не позорил бы мои тапочки, мразь дегенеративная.
Но нет, оно, ещё пытается тщетно пытаться попонтоваться тут, без пруфов конечно, и нихуя при этом не зная.
Причём тут многопоточность, блядь? Причём тут асинхронность?
У меня простейшая задача - остановить бесконечный цикл, и возобновить его так, чтобы в одном потоке это было,
и чтобы не блочилась вся программа, и не свистел кулер на греющемся процессоре, пока оно спит.
900 1613810
>>613803

>синхронизация, мьютекс, семафор


>Причём тут многопоточность, блядь? Причём тут асинхронность?



Шизик, лучше скажи, когда у тебя следующий период диспансеризации? Когда ждать исчезновения твоих шизовысеров и шизобреда про борду?
901 1613815
>>613803
И еще. Почему твой шизоглаз пал именно на шарп? Пиздуй в С-тред, стиль написания программ на котором как раз похож на твой топорный, при этом будешь мамке хвастать, что пишешь на самом производительном языке.
902 1613825
>>613810
Лол, хоть я и не шизик, но некоторые на этом мочане меня так называли уже, поэтому отвечу...
На учёте не состою нигде, потому что аноним,
шизовысеры и так мочерация потрёт, потому что мочан,
а на шарпе уже год шкрябаю свой говнокод просто потому что борода на шарпе, блеать.
Переписывать всё это на сишечке - даже не предлагай, иначе увидишь здесь ультрашизовысеры, когда я уже - окончательно головой поеду.
903 1613842
>>613803

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


>чтобы в одном потоке это было,


>и чтобы не блочилась вся программа,


>и не свистел кулер на греющемся процессоре, пока оно спит.



>>609828

>Судя по примерам кода,


>при использовании EAP на IAsyncResult BeginInvoke,


>всё равно тормозят ответ при помощи Thread.Sleep(milliseconds)


>>609913

>Thread.Sleep(milliseconds)


>симулируют долгое выполнение метода


Вот именно, что СИМУЛИРУЮТ.
В Thread.Sleep(milliseconds), походу, используется что-то вроде:

>while(!stop){}//do nothing


Поэтому оно и тормозит всю программу.
Поэтому,

>public static System.Threading.Thread thread = null;


>public static Object method(){


> thread = System.Threading.Thread.CurrentThread;


> while(true){


> #pragma warning disable 0618


> System.Threading.Thread.CurrentThread.Suspend(); //suspend the current thread.


> #pragma warning restore 0618


> //do stuff


> }


и thread.Resume() - по таймеру, где thread - это (System.Threading.Thread) System.Threading.Thread.CurrentThread;
903 1613842
>>613803

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


>чтобы в одном потоке это было,


>и чтобы не блочилась вся программа,


>и не свистел кулер на греющемся процессоре, пока оно спит.



>>609828

>Судя по примерам кода,


>при использовании EAP на IAsyncResult BeginInvoke,


>всё равно тормозят ответ при помощи Thread.Sleep(milliseconds)


>>609913

>Thread.Sleep(milliseconds)


>симулируют долгое выполнение метода


Вот именно, что СИМУЛИРУЮТ.
В Thread.Sleep(milliseconds), походу, используется что-то вроде:

>while(!stop){}//do nothing


Поэтому оно и тормозит всю программу.
Поэтому,

>public static System.Threading.Thread thread = null;


>public static Object method(){


> thread = System.Threading.Thread.CurrentThread;


> while(true){


> #pragma warning disable 0618


> System.Threading.Thread.CurrentThread.Suspend(); //suspend the current thread.


> #pragma warning restore 0618


> //do stuff


> }


и thread.Resume() - по таймеру, где thread - это (System.Threading.Thread) System.Threading.Thread.CurrentThread;
904 1613855
>>613534

>мютексах, семафорах, и синхронизации


при async await эту срань еще используют?
905 1613857
тред грузится хуй его знает сколько, сделайте кто ни будь уже перекат
906 1613901
>>613649

>g.is_active == false

907 1613951
>>613649
Сортируешь его по value, выбираешь элемент по индексу. Всё что ниже этого индекса - количество элементов у которых value ниже чем у выбранного. Считаешь процент. Например, если из 100 элементов выбран элемент с индексом 2, значит 97% элементов имеют value ниже, чем выбранный элемент, 2% имеют value выше.
908 1613960
>>613951
>>613649

Нужный тебе процент можно вычислять по формуле:
100 - (количество элементов массива / 100 x (индекс элемента + 1))

Получается если брать массив из 150 элементов сортированный по убыванию value, и взять элемент с индексом 2, то получаем:

100 - (150 / 100 x (2 + 1)) = 95.5%
909 1614003
>>613842
Вот так заебись, а то от рекурсивного вызова - разочек выхватил Throw StackOverFlowException, после чего, начал неистово рвать себе волосы на жопе.
910 1614015
>>613855
Конечно, это же разные вещи.
911 1614214
В asp.net core кто ни будь logger из коробки юзает? Проебался с ним часа 2 - такое говнище, пиздец. Делает записи только через cmd запуск, не сохраняет лог файлы. NLog так же используется?
912 1614228
>>614214
Анон, ты сейчас глаза мне открыл. Я думал, зачем такой куцый логгер, а оно вона зачем — в линуксе же можно направить вывод логов в файл. Что-то там с stdout, но я не шарю

Сам использую serilog. Два подводных:
1) внезапно начал жрать два ядра ксенона по 20% от каждого. После того, как вычистил из проекта и вернулся к нему же — жор прекратится
2) все завязано на определённую структуру логов, но на неё забить можно
913 1614233
>>614214
Ещё забыл добавить, что мне нужно было в mssql базу писать
Но в файл тоже можно
914 1614399
>>613901
все верно, мне нужны только уже законченные игры, игры в процессе я не показываю
915 1614402
>>613801
что бы получить коэффициент, то-есть процент затраченного времени от базы
916 1614586
>>613785
>>614402
Можно, но только в коре. А в фв можешь взять из спана секунды/милисекунды/etc и делить их.
Неужели проще писать на дваче, ждать и получить неполный ответ, чем написать одну строчку кода и увидеть самому?
917 1614589
>>614586
А не, есть метод Devide в фв, так что дели на здоровье
918 1614590
>>614589
А не, это же метод в коре, у меня мсдн не хочет переключаться между версиями в хроме, пора переходить на Edge
image.png253 Кб, 620x916
919 1614595
>>614586
да мне не особо важно было, я пока сделал конверт 32 и пошел дальше, жаль на такие мелкие вещи время тратить, а тут аноны добрые и знающие всегда подскажут, и когда подсказывают я тот костыль меняю на нормальный рабочий способ, разве плохо?
920 1614646
>>613960
а как мне индекс моего клиента узнать? я могу выбрать его игру из массива, но какой метод использовать что бы получить индекс этой игры в массиве?
image.png75 Кб, 157x320
921 1614679
спасибо анон я решил
922 1614710
>>614646
с помощью метода FindIndex
image.png7 Кб, 542x126
923 1614712
>>613960
ты обосрался долбоеб
924 1614730
>>614712
Попробуй так:

100 - ((индекс элемента + 1) / (количество элементов массива / 100))

100 - ( (70 + 1) / (150 / 100) ) = 52.66%
image.png686 Кб, 600x777
925 1614732
>>614730
да я уже решил >>614679 я решил по другому но все равно спасибо анон
926 1614733
>>613649
Element[] elements = new Element[111];
var e = elements[13];
var count = elements.Count(x => x.Value < e.Value);
var rating = (count * 100d) / elements.Length;
927 1615048
Поясните нубу. Есть ли какой-то механизм, который бы указывал комплиятору, что при имплементации интерфейса свойство/ридонли поле должно иметь какое-то определенное значение и никакое другое?
Ну, например, вот я хочу чтобы при имплементации моего интерфейса стрим бы были с CanRead == true, можно ли это как-то на этапе описания интерфейса сделать?
928 1615093
>>615048
Через абстрактный класс/просто класс который наследует твой интерфейс.
929 1615797
извините за глупый вопрос но как сгенерировать уникальный ключ в формате varchar(max)
image.png407 Кб, 512x321
931 1615827
>>615816
спасибо тебе добрый анон, все таки Сишарп Тред лучший тред по языкам программирования на дваче, мне никогда в других тредах так быстро не отвечают
932 1615836
>>615816
Даже вот так: https://rextester.com/ONHT63249
Чтобы был виден процесс генерации, и преобразование между символом и его кодом.
933 1615904
>>615827
не умеющий пользоваться Random? Пошел нахуй отседова, добрый ты наш. Тебе быстро отвечают, потому что ебаные решетки учат только индусы и говностуденты шараг, нечему удивляться
934 1616015
сап пр, почему так(пик1) работает, а так(пик2, 3) нет?
935 1616216
Опытные дяди, подскажите, стоит ли сейчас изучать ASP.NET MVC или сразу переходить на ASP.NET CORE?
Насколько востребован вообще старый MVC?
936 1616274
>>615797
>>615816
Почему бы не использовать GUID?
>>616015
Потому что по дефолту, если не указан модификатор, то для методов используется private, а интерфейс требует protected(pic2)/public(pic 3)
>>616216
Смотри вакансии в своей местности, а так похуй, учи что хочешькор.
937 1616462
>>616216
и то и другое. В перспективе на будущее конечно же кор, но можешь и на легаси попасться.
Безымянный.png64 Кб, 647x217
938 1616990
>>586030 (OP)
Програмач как сделать подобное? Когда в функуциях подписаны названия переменных например time?
939 1616993
>>616990
гугли именованные параметры
940 1617071
>>616990
У тебя на скриншоте Rider
941 1617079
>>616993
Именованные параметры тут не причём кроме того, что они имеют имя, на скриншоте подсказки от JetBrains'овских штук
942 1617091
>>617079

>JetBrains


таких петухов не знаем, у нас православная VS от мелкософта в code navigation такая функция должна быть, влень искать
943 1617100
>>617091
Да-да, анон, конечно я от голой студии охуеваю. Хотя бы автоимпорт бы завезли бы к 20 версии
944 1617126
>>617079

> подсказки от JetBrains


Ну тогда, наверно, решарпер так может.
Bill-Gates-diable-Satan-290x332.jpg20 Кб, 290x332
945 1617152
>>617100
Извинись
Решарпер уже плавает по вижле уже добрых 5 лет, все никак не могут закопипастить его в плагины
946 1617170
>>617091
вот сичас не понял, тру пацаны используют csc.exe + блокнот
947 1617198
>>617126
Может, конечно, но на скрине Rider
>>617152
LINUX POWER
Что значит плавает? В платины они его перевести не могут, так как api не имеет нужного функционала. В итоге по 20 секунд пропердывается при старте на последнем i7
hqdefault.jpg16 Кб, 480x360
948 1617233
>>617198

>Что значит плавает?


R# самая популярная надстройка для вижлы, дауны мелкософта не могут реализовать функционал ссаной надстройки в саму вижлу. Это какой-то... позор
Я иногда диву даю, какие мелкософты дебилы. Хотят быть здесь и сейчас везде, где только можно перднуть, тем не менее забивают болт на текущих клиентов. Жаль они со своим шиндовс на коне были, так бы их уже давно похоронили
949 1617244
>>617233
Они понемногу добавляют фичи в студию, если пользовался старыми — заметишь разницу
Но они вряд ли запилят свой "решарпер" в студию — мелкомягкие всегда давали развиваться вокруг своих продуктов другим компаниям
950 1617251
>>617244

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


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


>анальные наказания за нарушение копирайта



В голос.
951 1617263
>>617244
мелкомягкие такие уебки, что если бы не опенсоурс, они бы сорсы Core в жизне не открыли (которые сейчас чуть более, чем на половину состоят из опенсоурс кода).
Боже, сделай так, чтобы Rust захватил рыночек. Молю.
изображение.png8 Кб, 332x276
952 1617316
Прочитал в книге что string это reference type. Почему тогда пикрелейтед?
953 1617390
>>617316
Потому что ты ссылку, лежащую в хизнейм, меняешь
А ссылка в майнейм остаётся той же
954 1617395
>>617316
Но ссылка-то копируется. У тебя myName и name - две переменные ссылающиеся на один объект, ты меняешь name - т.е. теперь name ссылается на ивана, а myName на андрея. Ты поменял только ссылки, но не объекты. И еще, если книга не с помойки, то там еще написано, что у стринг неизменяемый тип, хотя на твой код это не влияет.
955 1617406
Как заебало блядь в моей 1.5кк мухосрани сука все джун вакансии на Шарп это ебаный фулстек
Хотел укатиться со своего фулстека на чистый бек, а нихуя, пиши сука на жаваскрипте фронт блядь
Хоть на жаву перекатывайся бобы крутить блядь
956 1617409
Поясните нубу за правильную структуру проекта. Просто я, как бака, для любой сепарированной сущности создаю отдельный каталог,и получается что у меня куча папок в проекте: Unit, Logic, Gui, Engine... и т.д. Ну и почему меня это напрягает: Когда нужно быстро что-то найти, приходится кучу времени тратить на то чтобы открыть нужную папку, ведь в них еще вложенность. И мне кажется что проще было бы весь код хранить в одной папке, ну или на крайний случай, вместо папок использовать проекты библиотек. Вот мне и интересно, как нормальные люди это все организуют.
957 1617425
>>616274

>Потому что по дефолту, если не указан модификатор, то для методов используется private, а интерфейс требует protected(pic2)/public(pic 3)


я знаю, но на 2 и 3 пик я указываю модификаторы, но все равно область видимости не позволяет мне юзать метод. В чем проблема?
958 1617520
>>617425

>я знаю


Видимо нет.

> я указываю модификаторы


неправильные

>область видимости


при чем тут область видимости?

>В чем проблема?


В том, что ты не умеешь читать
960 1617590
Тут есть те, кто уже давно работают и имеют опыт, мне интересно узнать ваши повседневные задачи и какими технологиями пользуетесь, еще бы хотелось знать что нужно знать помимо шарпа, если я не хочу работать с вебом
961 1617643
>>617590

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



Шарп это только веб, всё остальное у С++, С или Python
962 1617729
>>617520
ты сам написал, что интерфейс требует либо паблик либо протектед, а когда я сказал что указываю их, ты начинаешь говорить что это НИ ТЕ модификаторы
963 1617730
>>617643

>Шарп это только веб


Неа.
964 1617731
>>586030 (OP)
Как при помощи C# на .NET Framework 3.5
скачать файл через TOR SOCKS5 Proxy,
сделав из него HTTP-proxy,
и отправив запрос c WebClient'a?
965 1617740
>>617731
Сперва выкинуть 3.5 и вебклиент https://stackoverflow.com/a/30605900
966 1617753
>>617406
думаешь на джаве другое? Просто слишком хитровыебанные стали
>>617590
слишком широкий спектр. 99% веб
967 1617850
>>617753
На джаве ты фронт не попишешь гвт мертв, а вот .нет мвс из коробки даёт тебе шаблонизатор на шарпе, поэтому работодатели подразумевают что ты будешь уметь ВСЕ
+ горы легаси на разоре, ага
968 1617878
>>617731
В шарпе нет поддержки SOCKS прокси, придется либо самому писать, либо качать стороннюю библиотеку
969 1617894
>>617850

>работодатели


эти РАБотодатели из воздуха берут требования и не знают своего штата? Просто .NET-чики такие куколды, что проглотили Razor, а вместе с ним и Jquery, JS, React/Angular сразу став Full stack (сами того не осознавая).
Рыночек .NET-а гнилой, спроса мало, потребности много. Сейчас долбоебы готовы за бесплатно работать (в прямом смысле), только чтобы влезть, что говорить тогда о фронте на .NET? Но это еще не самое дно - ты еще должен уметь IIS настроить, Докер вертеть (деплой в том числе). И не забывай, что код должен быть покрыт юнит тестами (без хуйни, настоящими). Завтра моча в голову ударит - могут на Mongo перекинуть, т.к. MsSql дохуя как стоит, могут вообще нахуй выкинуть.
Сейчас в любую вакансию смотришь - WebAPI+JS+Framework. Это в вакансиях .NET КАРЛ.
Я уже посматриваю, куда выкатиться можно из этой помойки ебучей, а дурачки тут орут, как охуенны решеточки. Язык то может и не плох, но то, что творится в СНГ рынке на аутстафе - это пиздец и ад
970 1618094
>>617894
Двачую
Влез на свою беду полгода назад, мучаюсь с ебучим жкури теперь
Хочу свалить, но нужно переучиваться и терять в ЗП, пиздец просто
971 1618352
А что это у нас? А это очередной студент распиздяй просит помощи.

В общем, кто поможет сделать 2 лабы?
972 1618363
>>617894

>Это в вакансиях .NET КАРЛ.


В вакансиях про розовых пони пишут.

>WebAPI+JS+Framework


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

>творится в СНГ рынке на аутстафе


Как же хорошо, что я не в снг и не на аутстафе.
973 1618365
>>618352
Бампану вопрос.
974 1618383
Безжалостные твари.
975 1618495
>>618363

> - злобный архитектор запрещает использовать энтити фреймворк


За щооо
976 1618519
>>618352
пошел нахуй, мразь
>>618363

>В вакансиях про розовых пони пишут.


А языком ты спрашиваешь реальный стэк у задрота на тех. собесе. Не нравиться - идешь нахуй домой

>Приходишь такой на проект и говна наворачиваешь:


"Короче это, тут немецкая GPS апликуха, нужно админку им сначала подпилить. Да там хуйня, Jquery и Vanialla JS. Да это изи все, знаешь .NET, то что у них - раз плюнуть. Допилил? Красава. У них вообщем в стафе есть бэкер, но им еще нужно UI подправить, там чуть чуть. Да это заказчик сопли жевал 3 часа в конфе, там на React-е в JSX пару компонентов выкатить и все. Ты кстати с докером работал? Вот как раз экспу набьешь - они хотят реализовать компоузы. А чего ты сидишь, уже справился? Там дверь скрипит, не можешь петли смазать?" - Жизнь .NET долбоеба разработчика

>как же хорошо, что я не в снг и не на аутстафе.


СНГшный раб, хуже собаки за бугром. Пиздел с одним датчанином - .NETчик фул стек. Мужику 40 лет, за всю жизнь работал на 3 проектах (называет себя фрилансером). Рассказал мне прохладную историю, что у бургов локальные чаты (в Дании так точно), где хантят только своих и даже не в офис, а на удаленку. Спрашивал насчет нашего брата - говорит никто связываться не хочет, что то на уровне Раджешей Кутропали или даже выше.
Короче учите дальше свои решеточки, будете мне кофе носить
Ошибка постинга: Bad Gateway
977 1618587
Привет аноны. Как работать с KeyValuePair? Мне нужно взять каждый ключ и его изменить, после чего у меня будет список ключей и как из этого мне сделать список KeyValuePair

Примерная операция:

//List<KeyValuePair<key, value>>
var values = path.Value.Operations.Select(pair => pair).ToList();

Теперь мне надо в этом списке каждый key в KeyValuePair изменить и вернуть на место как быть?
978 1618608
>>618587
KeyValuePair не предоставляет возможности менять свои поля плюс это структура. Поэтому создавай новую с нужными значениями и заменяй ей старую.
979 1618610
>>618608
а если Dictionary? Мне нужно взять все его KeyValuePair превратить в лист, это лист по своему отсортировать и засунуть опять в Dictionary. Это возможно только через новый Dictionary?
980 1618671
Кто-нибудь сталкивался с тормозами HTTP-запросов в .net core? Ебанул простенькое апи на довольно мощный сервер (Win Server 2012 r2), которое делает запрос через WCF на другое стороннее апи и запрос выдаёт лютые тормоза и падает с таймаутом. При этом на другом компе из той же сетки всё норм.
981 1618675
>>618671
Используй tcp binding в вцф или вообще забудь про вцф. Проблема у тебя в чем-то другом.
982 1618678
>>618610
Ты лучше скажи, какую задачу решаешь, а то твои способы отдают наркоманией. Ты же знаешь, что словарь не гарантирует сохранения порядка элементов? Если тебе нужен отсортированный словарь, то и бери SortedDictionary.
983 1618684
>>618678
Ох, как бы описать задачу, там короче пиздец. Я должен отсортировать и дать выбор сортировки методов в swagger.
То есть я через IDocumentFilter беру все вызываемые web api сортирую каждую группу по следующему принципу: Get - Post - Put - Delete это базовый пример, так же можно давать выбор в каком порядке сортировать. И сортирую Словарь где ключ- http method, а значение сама строка вызова web api. Потом это все запихивается в лист со словарями и отдаю в swagger.
Щя набросаю код и скину
984 1618693
>>618684
https://pastebin.com/8RuBfrDA
Выглядит пиздецки, как это фиксить?
чашки-чая-с-зо-отом-36757516.jpg212 Кб, 1300x957
986 1618713
>>618709
Ого, спасибо большое. Прям то что нужно
image860106180037585039920.gif76 Кб, 800x600
987 1618715
image860106180037585039920.gif76 Кб, 800x600
987 1618715
988 1618716
>>618693
Пока не въехал. У тебя метод принимает, грубо говоря, список словарей. В словаре по четыре запроса (по одному каждого типа) и в списке отдельный словарь на каждый апи метод, правильно?
989 1618720
>>618716
Верно. Только в словаре может быть и 1 и 2 и 3, может на запрос быть только GET, а может и get и update. А так да все верно
990 1618723
>>618720
Этот ответ подошел >>618709? Там вроде порядок не настраивается, хотя прикрутить не сложно.
991 1618729
>>618723
еще не проверял, но вроде оно, если есть варианты можешь скинуть
992 1618739
>>618723
>>618709
Все работает, спасибо огромное еще раз. А выборку можно прикрутить к OperationTypeComparer, труда не составит
993 1618740
>>618671

>WCF



Обнови пакеты System.ServiceModel в nuget.
994 1618742
>>618739
Если кому-то нужна реализация выборки, то вот:
private int GetOrder(OperationType operationType)
{
if (!example.Contains(operationType)) return 0;
return example.IndexOf(operationType) + 1;
}

example это лист с operationType
995 1618745
>>618742
лол, это все вообще можно сократить до T и назвать ByModelComparer
996 1618776
>>618094
Куда перекатываться собираешься? В джаву?
997 1618880
>>618519
Я другой анон. Частично соглашусь, про СНГ, необъятный объем требований в вакансия, но так у всех вроде.
Ибо это требования пишут хантеры, они чуть услышали что докер нужен, это ведь круто, один раз сделал образ и разворачиваешь где хочешь а что на самом деле творится при больших проектах, ни слова ни духа. Вот и пишут.
А на деле тебе же берет к себе один из отделов: бэк, десктоп и т.п. и под конкретную задачу пишешь.
Только проблема в том что, c# силен только в бэке, вот и пишут js Angular, WebAPI mssql и т.д но это не значит что ты должен знать все.
Знаешь Dapper WebAPI и mssql, хорошо скорее всего тебя возьмут с работой с бд
но до бд никто тебя не допустит, я так начинал, с NLog "помогал".

Знаешь немного js - замыкание, пробегался глазами по ecmascript, знаешь что там с angular и webapi есть шанс попасть в бэк и дадут помогать сопровождать api. Ведь намного лучше если ты знаешь что, как и почему отдавать на фронт такие данные.

Так что подведя итоги можно сказать что c# переживает не лучшие времена, но я надеюсь на тенденцию майков развивать шарп в web и мы займем свое место, хотя бы такое.
А такой большой объем требований это лишь рекомендации, ни разу у меня не спрашивали вообще все.
вввв 7.png14 Кб, 738x576
Анон 998 1647742
Сап C#.
Мне нужно сделать вывод матрицы размерами n на n, в которой были бы случайные числа.
Я создал цикл внутри цикла (красный). Тот, что красный выводит случайные числа, а чёрный просто повторяет его n количество раз.
В итоге получается нечто вроде

13 23 45 14
13 23 45 14
13 23 45 14
13 23 45 14

Я пытался найти как можно сделать, чтобы он каждый раз давал случайные числа, но не нашёл. Пытался как-то сброс делать через if/else, но тоже не получилось

Как можно реализовать задачу? Я ещё чайник в C#

https://dotnetfiddle.net/qMZfuW - вот сам код (в онлайн компиляторе почему-то не работает, но в Visual Studio запускается)
999 1647879
>>647742
https://dotnetfiddle.net/qMZfuW смог сделать вот так, правда, там вторая строчка ноль всегда почему-то

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

https://dotnetfiddle.net/qMZfuW - попытался начать, но там уже почему-то ошибку писало
Тред утонул или удален.
Это копия, сохраненная 6 апреля 2020 года.

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

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