Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.Литература вторым постом1. Ресурсы:- http://stackoverflow.com/questions/tagged/c%23- 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_compiler3. 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 Essentials7. Дополнительные инструменты для разработки на C#LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данныхdnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студииdotPeek - бесплатный декомпилятор от JetBrainsscriptcs - для запуска C# кода как скриптов, возможность использовать как REPL8. Расширения для студииReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентовSupercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по нимIndent Guides - показывает вертикальные линии на каждом уровне отступов.Format document on Save - форматирует код каждый раз при сохранении документаCode alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечисленияхОбзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn%20OverviewНовые возможности 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/
>>1586030 (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 и анализ дампов памяти в windbg15. Литература не по шарпу, но так или иначе связанная с языкомC# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под UnityIntroduction 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), SOLID18. Я не умею читать, что посмотреть?- 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
Таки вопрос: Что вы делали на своем первом рабочем месте в первый месяц? Сильно ли вас ебли, были ли дни когда не написали ни 1 строчки кода? Что делать если прошел собес, взяли на работу а как пришла пора работать понимаешь что нихуя не знаешь?
>>1586030 (OP)шапка без аниму? Я сплю?>>1586054устанавливал IDE, скролил двощь, создал 3 POCO, пофиксил 1 баг (супер легкий), читал книгу (имитировал чтение), пиздел с другими гребцами по моей прошлой работе, pet projecty. А ну да, еще я пил кофе и хавал.Всо
>>1586102нет конечно, я же не дебич. Когда то выкатили мой код не с REBASE, где я сделал правки 2 строк, а другой чувак перелопатил его. Не знаю, чем закончилось, но походу чувак тот после мерджа удалил ветку и снес проект. Пришлось дебику заново переписывать>>1586106два чаю
Аноны.Скажите, можно ли вкатиться в шарп на линукс? То есть юзать монодевелоп. Тррелсен нормально для этого или надо все же на винде тренироваться?
>>1586155у тебя в голове утонул? Я вообще удивлен, что ты смог дистрибутив установить. Небойсь убунту еще?>1585903
Ебаны рот этого казиноНа SO.ru пишут юзайте TPL вместо Thread, на хабре пишут Предпочитайте async/await вместо TaskТам же пример public async Task<Data> GetDataAsync(){ var result = await MyWebService.FetchDataAsync(); return new Data (result);}Ебаны рот тут и ТПЛ есть и авейтПИЗДА, нихуя не понятноБыл сначала Thread, потом добавили TPL, потом добавили async/awaitasync/await - это что? Это прибулада для TPL? Или это отдельная функция языка?
>>1586347Эвейты-хуейты. Создал по старинке Thread'ов столько, сколько нужно, и работаешь. Вся эта новомодная хуита всё равно в них превращается компилятором.
>>1586362Нет нет нет. Учит мать часть уродец.Вообще есть 2 типа Task`ок(одни с тредом, другие без), крч гугли узнавай.https://blog.stephencleary.com/2013/11/there-is-no-thread.html
>>1586362>>1586386Я хочу сделать многопоточный парсер, но для этого сначала нужно разобраться с потоками. Как я понял Авейт/эсинк это ожидания выполнения метода, пока не выполнит хуй куда пойдет.Как мне просто к примеру запустить 100 раз один метод, в каких то случаях он выполнится в каких то нет, в каких то будет исключение.Но мне не надо ждать выполнения этого метода, мне надо выполнять другие методы пока выполняютсе 100 раз тот метод.
>>1586401await это не ожидание выполнение метода, а передача процессорного времени основному потоку. Если тебе надо 100 раз один метод, то твой выбор это TPL.
>>1586174>>1585903зачем рекомендуешь танненбаума, если мой вопрос был касаемо учебников и опыта разработки на Шарпах в ОС Линукс?
Что означает такое использование стрелочек? Я просто посмотрел гайды в интернете по лямбда-функциям, там везде примеры где её присваивают делегату или используют в LINQ, а тут нихуя не понятно зачем это нужно.
Давно нетрогал шарп, там за последние годы было что-то новое?Например в плане асинхронного программирования? Там асинк авейт может как-то улучшили?
>>1586719Ну, обычный геттер в данном случае. Чтобы не писать кучу раз 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));и ничему ее не присваивать, просто тебе нужно какую-то логику реализовать, а выносить ее в отдельную функцию не хочется из-за того что будет использоваться один раз в одном месте. Хороший пример это как раз конфигурирование хоста, ты же не будешь делать кучу методов по настройке, а просто запихнешь это дело в лямбды.
>>1586731А что не так с асинавэйтом? А так в 7ой и 8ой версиях один сплошной сахар много разных плюшек завезли
Господа, вкатившиеся, сколько примерно у вас проходило времени между тем как вы начали рассылать резюме и первым откликом?
>>1586746>А что не так с асинавэйтом? Ну, раньше нельзя было сказать прямо и чётко в каком из потоков асинхронщине жить, нужно было сет контекст вызывать, и вообще, насколько я помню свой обработчик очереди задач нужно было писать, или что-то в таком духе.А без пердоленья оно работало только в однопотоке.И обмен данными был проблемой.Может удобства какие завезли для многопоточных асинхронных приложений?
>>1586688потому, что /pr это не для идиотов не осиливших софт. Вы, вкатыши, при первой проблеме должны гуглить, а не бежать на 2ch/SOF и создавать тред. Или вы думаете вы прийдете на галеру и будете дергать за юбку ментора при каждой проблеме? Вас нахуй выгонят в первую неделю
>>1586799>ORLY? Тут кроме студентоты и ванаби нет никого.И как же ты это определил, мне интересно? Судя по твоему логическому заключению ты не осиливший первый раздел дискретки. Это или за решетки только конченные дауны берутся, не умеющие гугл или правила базовой логики, или IT-боги пробивают дно?
>>1587009аргументируй? Я могу аргументировать свое высказывание - ты привел всех к общему знаменателю вкатышей, хотя если бы читал треды и знал, какие задачи решают вкатыши/студенты, какие джуны и какие мидлы - ты бы понял, что твое суждение не верное. Соответственно ты или дебил, не умеющий анализировать прочитанную информацию или сам вкатыш.
>>1586030 (OP)Какую структуру данных лучше выбрать, для хранения комментариев к картинкам?Количество комментариев может изменяться,поэтому самое простое что пришло на ум - это хранить список комментов в одельных файлах, по строкам.Есть что-то лучшее, без базы данных?
>>1587002>И как же ты это определилТак что львиная доля постов, если отбросить срачи и тролинг, это либо рассуждения о том как лучше учить язык, либо совсем нубские вопросы.>не осиливший первый раздел дискреткитаки даже не пробывал> конченные дауныимиджборды всегда были пристанищем особо одаренных ¯\_(ツ)_/¯
>>1586759>>1586728Бамп вопросу.Нагуглил что в 8мой версии асинхронные стримы появились.Ещё что-то поменялось?
>>1586784Гуглить я и без тебя умею. Хотелось бы услышать мнение профессионала, насколько шарп применим в линукс, а не твои фантазии о вкатышах и дискретке.Если сказать нечего по теме, зачем гадить?Ты же не родился со знаниями комплюктор саенс, и тоже когда-то учился.
>>1587372Каждая жаба-макака так и хочет везде выебнутся. Печет жопу, что жаба - говно. 5 стадий принятия неизбежного.
>>1586030 (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, KirillRun-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
>>1587445>>1587443Вот нормально: 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]);} }}
>>1587495Ебёт, но не сильно. В Юнити недавно запилили incremental собиратель мусора, плюс делают фреймворк для data oriented design
>>1587503Как у вас глаза к концу дня от черной темы не вытекают??Особенно напрягает, когда прыгаешь на сайт с белой темой (не обязательно в гугл, может и свой сайт) глаза просто вытекают.
>>1587523Пишешь как на каком-нибудь F# и про специфику владения можно не думать, если в ансейф не лезешь.
>>1587522У меня черный браузер с плагином, который делает все сайты черными. На самсунге галакси даже не нужен плагин, оно это по дефолту делает.
>>1587517Они взяли с плеч программиста прямое управление памяти и положили его снова на плечи в извращенной форме.
Может ли кто-нибудь нюфане объяснить, почему не работает метод Change_group_order? Точнее будет сказать, что он работает, но когда массивы структур передаются обратно в Main по ссылкам, они не передаются на самом деле. С меня как всегда нихуя.https://pastebin.com/HZ11FY3JВызвал метод в единственном месте - 104 строка.
>>1587543В шарпе тоже пердолинг с памятью появился, всякие:Span<int> numbers = stackalloc int[length];struct of arrays + ref structs
>>1587547Ну у тебя были с++ со структурным программированием, но с прямым контролем памяти (на самом деле тоже йобу завезли).Теперь у тебя йобо-структурное программирование и в коде ты контролишь больше херни, нежели пишешь бизнес-логику. Это как с асинхронным программированием, или вообще с многопоточностью. Кажется все просто и легко, но накладывает на тебя определенный слой проблем и требований. И код уже не такой легкий.В общем, шило на мыло поменяли. И все равно мы видим что пишут unsafe.
>>1587591>с прямым контролем памятиТолько если в ансейф залазишь, а так, чисто субъективно, владение ресурсами проще и лучше умных указателей, или самописных костылей. Зато нет ГЦ.
>>1587591>И все равно мы видим что пишут unsafe.Он если и есть, то локализированный, а не размазанный по всему коду.
>>1587591>Это как с асинхронным программированием, или вообще с многопоточностью.Всего-то разобраться с атомиками, мемори барьерами и иммутабельностью.
>>1587600>мемори барьерамиВот это вообще как два пальца обоссать, потому что есть только полная версия из вроде 4 на плюсах.
>>1587600Нет, елемннтарные примитивы это просто, сложность возникает в решении реальных задач.>>1587610Нет наверное.>>1587602И что вы там делаете, асинхронный хайлоад меня интересует.
>>1587630>сложность возникает в решении реальных задачНадуманная сложность про реальные задачи.>асинхронный хайлоад меня интересуетВ облаках ничего веселого: вкратце, агрегаторы между сервисами, обмазанные эластик сёрчом. И всю эту хуйню крайне сложно тестировать, а документацию писал какой-то мамкин маркетолог про борозды просторов космоса. Еще и бабки списывает за юз, благо не мои.Можно, конечно, продавить свое квадратное колесо: по типу микросервисы/акка/орлины. Присобачить кеш, носиквел, очереди, эвенчул персистентность, кибану какую-нибудь. Но тут нужен прокачанный архитектор или мастерство вешать лапшу на уши. И все равно получится агрегатор между сервисами, только еще и самописным горизонтальным масштабированием, реплецированием. И не дай боГ ты пишешь аля биллинг.
>>1587650Я бы этому сайту не доверял:>tools>PedidosYa>https://github.com/netflix жаба, потом жабаскрипт
>>1587646>Надуманная сложность про реальные задачиЭто ты свое самолюбие потешить хотел? Теорему фреди крюгера знаешь?
Блядь, как же быстро вы засираете тред короткими дебильными постами неинформативными.Скоро, походу, бамплимит. Это говно даже в архивач лить не хочется.
Поясните за Memory<T> и этот Span<T>. Типа как я понял эта хуевина нужна чтобы не тащить указатели в C-стиле, а с памятью хочется поработать. Так же? Но блин, там же не особо удобно это все сделано, нельзя нормально расширить эти Memory и Span, а как я понимаю, если я решу скопировать в объект побольше, то это ничем от работы с массивами отличаться не будет, только индексатора нет. Или я что-то упускаю? Поясните, если не сложно.
>>1587808Идея в избегании аллокации памяти, так как это дорогая операция, нагружающая сильно сборщик мусора, у определенного ряда задач, например, парсера.
>>1588027Я так посмотрю тебя в гугле забанили и ты не знаешь жабу. Их тысячи, вот на жабе https://swagger.io/
Сап двач.Допустим, у меня есть некий код с игрой, которую я хочу запускать через exe в консоли.Как это сделать в Visual Studio? Я создал проект типа "Консольное приложение" и поместил код как показано на 2 пике
>>1588037Не, мне нужно создать именно что exe с игрой, чтобы был один файл, который запускался бы через консоль и там была игра
>>1588036СпасибоУ меня проблема была, оказывается, только в том, что я сделал (a++; c++;) до вывода этого в консоли. Я думал, у меня там вообще всё не так
>>1588047Эх, я думал, умею говорить на жаба языке, чтобы понимали такие как ты. Похоже, такие как ты, не лечатся.
В общем, смотрите какая фигня. Я хочу написать хелловорлд. Так вот, я сделал интерфейс, в нем объявил свойство которое должны имплементировать классы, которые будут предоставлять строку "Hello world!". Потом я добавилс класс HelloWorldServce, который собственно должен будет имплементировать этот интрефейс.Ну и собственно добавил бекграунд сервис, который выводит вызывает метод сервиса.Собираю это все хостбилдером, чтобы внедрить зависимости. И вот тут затуп. Смотрите, когда сервис вывел строку, мой хелловорлд не закрывается и продолжает работать, ожидая пока я нажму Ctrl+c. Как это исправить? Я думал насчет того, чтобы добавить событие HelloWorldPrinted и мой синглтон при возникновение этого события, будет завершать программу, но мне кажется, что тут я нарушаю какую-то концепцию связанную с DI, ведь нелогично получается. Может быть есть какой-то более правильный способ завершить приложение, после вывода строки, а то не хочу чтобы мой Хелловорлд был говнокодерским.
>>1588085Ран асинк на последней пикче блочит завершение приложения. https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-3.1#waitforshutdownasync
>>1588097Я не умею гадать на кофейной гуще. По ссылке пример реализации, дергаешь StopAsync, когда тебе надо.
>>1588101Во, залил на гитхаб. Аж со второго раза разобрался как это делать. Сложная штука этот ваш гитхаб...https://github.com/BakaVaka/Hello-world
Аноны кто-нибудь работал с tdlib или tdsharp под . net core? Есть пару вопросиков, по тому как с ней работать и как правильно завести эту шайтан библиотеку, буду очень благодарен.
>>1588278Не. Там транспорт идет через mtproto, с этим все норм. Просто когда пытаюсь вызвать библиотеку через viewmodel страницы razor в blazor, то blazor вылетает
>>1588292Вот. Мне и нужна помощь как завести tdlib под blazor. Единственное что пришло это через .net core web API. Но tdsharp вообще не хочет заводится. В репозитории в примере написано одно, а в nuget пакете вообще другие классы, как быть хз
>>1588305Зависит, что ты пытаешься получить. Если тупо отобразить в браузере, то делаешь мидлварь (например webapi) по середение, которая работает с либой, а на вьюху отправляешь результат.
>>1588315да, я так и хочу. Будет 3 стороны типа (MVC). View - blazor, control - .net core web api, model - tdsharp. С первыми двумя нет никаких проблем, осталось завести tdsharp, а как я не знаю
>>1588323Так начни с чего простого на коленке: аутентификация, вывод названий чатов. А потом просто наращивай функционал.Если не понимаешь как работает либа, то лучше сперва выкинь блейзор - сделай обычное консольное приложение.
>>1588329понимаешь, библиотека просто вылетает и не хочет работать. Я же говорю даже пример вылетает с переполнением вызова метода из tdlib.dll
>>1588333Он написал тупой враппер над апи, ты и сам такое сможешь написать. Даже https://github.com/egramtel/tdsharp/pull/32 не работает?
>>1588351так теперь новый прикол. В примере просит вызвать SetTdlibParameters, при отправки этого метода просит вызвать CheckDatabaseEncryptionKey. А при вызове этого метода просит вызвать SetTdlibParameters, лол это как?
>>1588368>зависает на ResetEvent.Wait()Ожидает UpdateAuthorizationState или UpdateUser при обработке события. Ставишь дебаг на дефолт ветку и смотришь что приходит, скорее всего какая-то ересь пришла.Этот пример лучше: https://github.com/tdlib/td/blob/master/example/csharp/TdExample.cs#L73
>>1588377ага, перепишу. Я даже не знаю чем ClientResultHandler заменит из примера в tdlib, пиздец. пойду дальше ебаться
>>1588386есть еще идея разобрать https://github.com/egramtel/egram.tel и посмотреть как там сделано, но там вообще пиздец, мне до такого уровня еще топать и топать
Ребят, есть у кого C# 7.0. Справочник. Полное описание языка | Албахари Бен, Албахари Джозеф ? Дайте ссылку плеасе
Дратути. Я тут настроил на .net core api аутентификацию по клиентскому сертификату по гайду отсюда https://docs.microsoft.com/en-us/aspnet/core/security/authentication/certauth?view=aspnetcore-3.1Но сервис аутентификации выстреливает на каждый экшн каждый раз. В коде проверка сертификата в сервисе валидации вроде простая - просто проверяю thumbnail на имеющийся в базе. Но меня пугает, что возможно kestrel/iis в бэкграунде с сертификатом делают кучу других действий для валидации, и всё это может вылиться в нехуёвый оверхед а я как раз делаю api из соображений, что реквестов будет много, допустим по 30 в секунду от клиента, и каждый будет весить ~2мб+. Так вот, стоит ли мне заморачиваться и выносить аутентификацию в отдельное приложение, которое требует клиента предоставлять серт и заставлять его перед запросами сначала сходить на апи аутентификации, там ему на успешную валидацию сертификата возвращать какой нибудь токен, с которым клиент уже будет ходить на обычный апи в другом приложении без запроса клиентского сертификата и записать токен в базу?
tdsharp опять выходит на связь. Оказывается взятый mtproto был кривой и ничего не делал. Нашел другой, но теперь метод AddProxy зависает, как быть?mtproto был заранее проверен в телеге
>>1589162а если серьезно, в чем соль? В простом ограничении, что WebApi возвращает только данные? Почитал статейки на SOF и других порталах - это все, что я понял :(
>>1589072Чтобы ты сущности отделял друг от друга. Когда у тебя фронт на JS, тебе в проекте в 95% случаев не нужно все то говно что есть в дефолтном проекте, а возиться с пустым ты не хочешь, вот ты и ебанул web api проект в свой солюшн, сделал там пару api контроллов, которые json'чики возвращают, токены и прочее и не трогаешь больше его.Так-то ты и в консольном приложении можешь как контроллы начать использовать, так и запилить свой велосипед с HttpListener'ом или вообще ебануть на сокетах и сам будешь Http парсить, и все то же самое, в конечном итоге делать, но тебе добрые индусские господа сделали готовы шаблон именно когда тебе только api нужно, в который просто напихай своих api контроллов и оно будет со своей задачей справляться.
>>1589072Инверсия контроля очевидная - интерфейс в виде апи можно прихуярить к чему угодно - к фронтенд фреймворку, к мобильному приложению, к десктопу, к чему угодно, что к интернету подключается. MVC пережиток прошлого и уг
>>1589234>>Когда у тебя фронт на JSа он что, бывает на чем то еще?>>95% случаев не нужно все то говно что есть в дефолтном проектевыпиливается 3-4 кликами>>1589235>>Инверсия контроля очевидная она не дефолтная в webAPI, ее в любом проекте нужно самому реализовывать>>можно прихуярить к чему угоднокак и обычный web coreНипанимаю
>>1589217соль в том, что майки развивают .net core, а в стандартный asp.net фичи уже не завозят. пока что это не критично и всё фичи .net core, идущие из под коробки, за разумное время можно реализовать и в старом asp mvc 5 приложений. но не факт, что так будет всегда и в .net core в дальнейшем не завезут каких либо киллер фичкого то прельщает кросплатформенность. хочешь - хости на iise, хочешь на линуксе через kestrelи это только внешняя сторона вопроса. возможно они еще и внутри переделывают .net, чтобы был производительнее и тыры пыры
>>1589252> а он что, бывает на чем то еще?Блядь, разором, сука можно делать, чего ты как ебанат? Можно хуячить на веб-формах, на Жаве, сука, блядь, ньюфажина ебучая.> выпиливается 3-4 кликамиА можно взять готовый проект и нихуя не выпиливать, ебанат ты этакий. Пиздец, ему по полочкам разложили, а он как ебучий ребенок, сука. Не нужен - не пользуйся, вообще, можешь все проекты с пустого текстового файла начинать и ебашить, а собирать с помощью .net CLI, пидрила ты тупая.
>>1589280А то, что тебе объяснили зачем оно надо, а ты продолжаешь дурочка строить из себя. Как тебе еще сказать, чтобы ты понял, блядь?
>>1589291Я другой анон. Но тот анон просто задавал вопросы, а ты сразу говнишь, мразь. Иди нахуй в андроид треды с таким отношением к коммьюнити, там все такие токсичные, как ты.
>>1589292Я ему ответил нормально сразу, он из себя строит дауна. Почему я должен к тому кто строит из себя дауна относиться не как к дауну?
>>1589275>Блядь, разором, сука можно делать, чего ты как ебанат? Можно хуячить на веб-формах, на Жаве, сука, блядь, ньюфажина ебучая.хуясе порвался даун. Я тебе приотрою тайну, что фронт на 99% состоит из JS, твой рейзор (интерпритатор html+C# в HTML) без JS != фронт 2к20.На джаве веб, ну нихуя себе даунил в треде сидит>>1589307>>ответил нормальнолучше бы вообще ничего не писал, профита больше было бы
>>1589312> Я тебе приотрою тайну, что фронт на 99% состоит из JSА бек на 80% из ПХП, хули ты в шарпотреде сидишь, дебич? Фронт на JS онли, бек на PHP, и горя не знай. Нахуя тебе дотнет вообще нужен?
>>1589315Маня, ты ебанулся? Ты не различаешь фронт от бека. После этого>>Блядь, разором, сука можно делать, чего ты как ебанат? Можно хуячить на веб-формах, на Жаве, сука, блядь, ньюфажина ебучая.я вообще не знаю, зачем тебе что то пишу. Ты же просто отбитый. Создай .NET Core проект, скомпилируй и посмотри во View, что такое бандлы, рендеринг и как работает View с Razor.Я вопросы людям задаю, а не животным
>>1589327>Я вопросы людям задаюИ тебе уже по человечески ответили что блядь вебапи нужен ДЛЯ УДОБСТВА, когда тебе нужен только апи. А мвс нужен когда у тебя фронт на разоре каком нибудь. И что это просто шаблон. Сразу же тебе так ответили, черным по белому и без мата.Но ты продолжил спрашивать А НАХУЯ, А Я МОГУ УДАЛИТЬ ТО, А МОГУ СЕ. Ты ж или тупой или тупостью троллишь. Все правильно тебя хуями покрыли.мимо тоже пригорел
>>1589335>>мимо тоже пригорелтоже фронт на джаве пишешь наверное?Я свято верю, что на борде сидят не только окатыши. Но все чаще разочаровываюсь :(
>>1589344>Фронт на жавеДа хоть на кложурскрипте, тебя ебет? И похуй во что оно там компилится, ты же не говоришь что разрабатываешь на машинных кодах только потому что твой код компилится в итоге в нихПоинт анона был в том что мвс для старого подхода с разором, вебапи для жс фреймворков и прочих современных вещей. Так доебаться до слов надо уметь>ОкатышиИ нахуя ты мем из пораши притащил, ещё и используя его неправильно? Ты точно дегенерат.
>>1589359парень ты конечно извини, но ты далек от разработки приложений на .NET Core (судя по тому, что ты пишешь)Я уже получил ответ и решил развернуть дискуссию на тему "Зачем возу 5ое колесо">>И нахуя ты мем из пораши притащилвообще не понял о чем ты, ты видимо какой то дегрот 7ой параллелиОкатыш - маленькие камешки (см. малолетки)я на двоще получил много годных советов, не как строчки местами поменять, а касающихся архитектуры и компоновки проектов, но из за таких, как ты мне стыдно говорить, что сижу на борде
>>1589656алг матрица_мин_максначмин = макс = М[1, 1]для и от 1 до Ннцдля ж от 1 до Мнцесли М[и, ж] > макс томакс = М[и, ж]конец еслиесли М[и, ж] < мин томин = М[и, ж]конец есликцкцвывод минвывод макскон
>>1589717Непонятно, что подразумевается под минимумом по j. Найти "минимальный столбец"? А как столбцы сравнивать, если над векторами не определена операция сравнения?
>>1589735Вот поэтому я и не осилил эту хуйню в свою время, что даются какие-то неформальные формулы, будто не математика, а гуманитарщина какая-то.Значит, должно быть максимальное значение в столбце и при этом минимальное в строке? Хуита какая-то. И наверняка есть готовое решение.
>>1589763Находятся минимальные элементы во всех столбцах и из них выбирается максимальный элемент в строке, это и будет оптимальной стратегией
>>1589763На бумажке то оно на раз решается, но следующие критерии ещё хуже, а я уже на первых встал с переводом в программу
Нас 75-летний препод на теории алгоритмов заставлял делать хеллоуворлдные задачки на алгначконв тетрадке.И компилировал у себя в голове.Сука, а я так надеялся, что он нас научит всяким сортировкам, обходам графов, балансировке деревьев...
>>1589875А нам вот вполне адекватно преподавали плюсы. На контрольных можно было выбрать, на бумажке будешь делать или на ЭВМ. Но если на ЭВМ, спроса с тебя было больше, в конце обязательно должна получиться работающая прога. А на бумажке могли закрыть глаза на косяки.
Сап, ананасы, помогите студенту!Суть такая - есть клиент-серверное приложение, клиент - WIndows Forms на фреймворке, сервер - консолечка на CoreНа клиенте и сервере прописана структура из 2 полей - строка и массив байтЯ хочу эту структуру передать по TCP и для этого преобраую ее в byte[] с помощью Marshall. При сериализации на клиенте получается массив из 12 байт, его я отправляю на сервер. Сервер получает эти 12 байт и пытается их десериализовать в такую же структуру. Однако, когда я получаю размер структуры на сервере чрез Marshal.SizeOf(), то вместо 12 байт он получает 24 и в итоге при дальнейшем копировании указатель уходит в никуда.В чём проблема? Почему абсолютно такая же структура имеет другой размер на сервере?
>>1590213Я б свою сериализацию сделал. Там две строчки, но зато понятно что и откуда было б.Аноны, поясните, ASP.NET и ASP.NET Core - по написанию кода примерно одно и то же? Или разный подход? Хочется учить свежее, Core, но по нему не могу годных гайдов найти.. По ASP.Net полно, но на первый взгляд кажется что это вообще разные вещи.
>>1590370Ок, спасибо. Осталось найти всё-таки гайд по core, что б какую-нибудь простейшая програмка была разобрана, а не сразу портал по взлому пентагона. Нет на примере ничего?
>>1590408Видимо я тоже ненавистник. Как то люблю гайды, что б для чайников было. Сначала запускаем пустое приложение, потом выводим текст, кнопку, реакцию на кнопку и т.д. С усложнением, но что б можно было реализовывать сразу. А там - просто теория сплошная. Уже пробовал по ихнему гайду - разочаровался.
>>1590417>А там - просто теория сплошнаяНу уж нет. Его тут как раз хейтят за поверхностность, там как раз показывается как сделать хуюшку, но без углубления зачем и почему. И оглавление намекает>Запуск приложения. Класс Program>Класс Startup>Конвейер обработки запроса и middleware>Методы Use, Run и делегат RequestDelegate>Методы Map и MapWhen>Создание компонентов middleware>Конвейер обработки запроса>IWebHostEnvironment и окружение>Статические файлы>Работа со статическими файлами>Обработка ошибоквот тебе шаг за шагом, и маленькое приложение готово.>>1590417>выводим текст, кнопку, реакцию на кнопку Так это тебе к фронтендерам и жс макакам.>>1590417> Уже пробовал по ихнему гайду - разочаровался.Ну не зашло, так не зашло. Можешь попробовать максимальный уровень деградации - видеотуториалы.
>>1590459Сейчас вот, кстати, почитал гайд этот ещё раз. Как раз первые 7 пунктов - сплошная теория. А в восьмом уже идёт построение приложения. Попробую завтра реализовать. А уже потом может быть стоит разбираться в нюансах, если пойдёт.
>>1590462Так без первых семи, ты в восьмом сможешь только скопипастить код и охуевать от того, что там понаписано. Но дело твое.
>>1590378У Троелсена есть. Из новых:Mark J. Price - C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development Fourth Edition-Packt (2019)Мутанита не трогай, это дерьмо можно использовать только как краткий справочник и только когда ты не знаешь какой именно класс из стандартной библиотеки тебе нужен, но знаешь, что какой-то есть.
>>1590469Да вроде описано.. Но надо что б работало, а потом уже разобраться что и зачем. Как по мне.>>1590472Ок, погуглю, пасип.
>>1590472>>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?
>>1590213> этого преобраую ее в byte[] с помощью MarshallЗочем? Просто сделай метод в структуре: ToByte() В нем что-то вроде:byte[] msg = new byte[str.Length+byteArray.Length] // со строками правда нужно учитывать, что если это UTF какой-нибудь, так низя будет, нужно будет сначала строку с помощью Encoding перевести в байтики.Потом в этот массив msg в цикле запихни все это. Это СТОПРОЦЕНТНЫЙ способ, потом побайтова распарсь. Базарю. Серелизации-десерелизации, когда это не какой-то общепринятый стандарт, это хуйня и в рот ее ебал.> В чём проблема? Почему абсолютно такая же структура имеет другой размер на сервере?Потому что в Маршал размер в рантайме смотрит и он может меняться в зависимости от положения звезд и того, как компилятор решил оптимизировать твое дело за тебя: Может взять и дырки заполонить, может не туда байтик лечь и твою структуру из 3 байтиков распидорасит на 32 бита. Потому либо ебешься со своей серилизацией, либо берешь готовую, либо как настоящий хакер в массивчик руками кладешь.
Анончики выручайте, как из datagridveiw с размерами n на m занести данные в список, который будет представлять из себя матрицу List<List<double>> Matrix = new List<List<double>>();
>>1590749>Потому либо ебешься со своей серилизацией, либо берешь готовую, либо как настоящий хакер в массивчик руками кладешь. Либо RPC используешь.
>>1590749>>1590800Скорее всего структура не имеет правильное директивы о возможности сериализации.Вроде массивы вообще по умолчанию не сериализуються. Они же ссылочные.Короче он там просто хуйню лепит.
>>1590772Не надо пытаться есть через жопу. Контрол, нужен для отображения данных и взаимодействия с пользователем. У тебя уже должны быть данные, к которым ты привязываешь DGV.
>>1590878Банально потому что там не вдаются в детали, а дают простой пример для простой задачи, который ты и без них легко бы сделал за полчаса. Лучше уж тогда какую-нибудь книжку нормальную почитать.
Прочел Шилдт. C# 4.0: полное руководство, вроде основные моменты понятны. Но если смотреть сложный код200строк% то чета нихуя не понятно, чета создается обьект класса, затем этот обьект передается в другой. Что код делает примерно понятно но в основном нет.Дак вот вопрос как дальше прокачивать скилуху? Стоит ли еще прочитать Албахари Джозеф, Албахари Бен. C# 6.0. Справочник. Полное описание языка ? Или ограничится прочтением самых непонятных глав и сделать упор на написании своих каких то мелких программ?
>>1591004>Но если смотреть сложный код200строк% то чета нихуя не понятно, чета создается обьект класса, затем этот обьект передается в другой. Что код делает примерно понятно но в основном нет.Язык -- это инструмент. Зная, как использовать гаечный ключ, ты не получаешь автоматически знание, как устроен автомобиль, с помощью которого он сделан.Олсо, реверс-инжиниринг чужого кода (в запущенных случаях бывает даже своего годичной давности) -- это вообще отдельный навык, от языка в эпоху доминирования ООП слабо зависящий.
>>1591112Один уже тут такой был. Не видели его с тех самых пор, как он писал про то, что идёт на собес.
>>1591126Вначале тест, потом собес, если сдам. Потом практику ещё у них как работу по времени, но не платят, потом, может, работа. Пизда мне, короче.
>>1591144Ты главное сразу настройся на то, что помимо того, что дальше теста не пройдёшь, над тобой еще похихикают и будут унижать морально. Прошлый анон слишком позитивно настроен был, даже грозился скайп-интервью записать, в итоге даже в треде не отписался.
Есть говнокод, есть datagrid, который создаю через 2 текстбокса чтобы была матрица n на m , матрицу записываю в листы, проблема в индексах, если создаю матрицу больше 2х2 то по кд выскакивает аут оф рендж, даже если каунтам в цикле ставлю -1
>>1591151бротишка, если тебе за это не платят и не ставят оценки, то бросай нахуй это дело. winforms мертвее мёртвого wpf. если так нравится шарп - учи asp.net core, и учись там на js/ts делать все эти таблицы шмаблицы. не трать золотое время на изучение мёртвых технологий
>>1591151Ты даже код не смог переписать - обосрался с индексами. Индексатор dgv первым параметром принимает индекс столбца, а вторым строки.
>>1586036>лучше грузить маленькие картинки в OP-пост, чтобы быстрее загружался тред.Этож твои проблемы. Вакаба сжимает картинки и в любом случае даёт тебе мелкие. Большие ты грузишь только если сам куклоскрипту сказал чтобы он тянул большие.
>>1591308>>Вакаба сжимает картинки и в любом случае даёт тебе мелкиеТы в этом уверен? Такие посты в /pr/ видеть - это как себе на ебало ссать
>>1591432То, что в UI идет пережатый формат - это да. И где тут сжатие, если сорсы картинок все равно хрянятся на ресурсе?
>>1591450Выйди из /pr еблан, ты слишком тупой, чтобы понять, что хранилище с https://2ch.hk/pr/src/1586030/15808148098740.png - тоже часть движка вакабы
>>1591458Ты траллируешь тупостью сучёнок? Включи network в браузере и посмотри что хайрез какртинка ТЯНЕТСЯ с хостинга по клику. Нахуй ты настолько тупорылый что даже ОДНУ СРАНУЮ КНОПКУ не смог нажать ип посмотреть сам? НАХУЙ ты в 2020 на трафике экономишь? Нахуй тебя сразу не послали нахуй всем тредом за такие тупые запросы?
>>1591466>Ты траллируешь тупостьюУровень /pr/ двача. Пиздец просто. Начнем с того, что твои small-size пики тоже на хосте храняться. А что делает из оригинальной пики small-size? Господь б-г?
>>1591503Пиздец какой ты тупой. Как ты до сих пор не умер выходя в окно перепутав его с дверью? Я не понимаю.
>>1591506>Сервер картинку сжимаетТы хотя бы понимаешь, что такое Wakaba и как работает борда? >Не клиентпроиграл в голос>>1591510твой одноклеточный брат постом выше
>>1591536>Ты хотя бы понимаешь, что такое Wakaba и как работает борда?Тебе блядь тупорылая скрин с исходником кинули, хуйле тебе непонятно?
>>1591542>>1591546Боже блять, вкатыши вы обрыганные. На серверной стороне есть хранилища как для full size, так и для small size картинок. Full size - это исходник, который загружает User. Small size - генерится серверной стороной (Вакабой дауны вы тупые) и так же ложит в хранилище и дает линк на UI борды (чтобы страница были легче).Пиздец уровень /pr/ я в ахуе. Походу тут с шараг и с курсов только даунята сидят.
>>1591560А вот тпеперь даун, ответь сам на вопрос, какой файл ты грузишь когда открываешь тред. А потом иди нахуй, потому-что ты сказал ровно то, что тебе ответили в первом же посте. Тупорылый уёбок.
Вот тут >>1591445 даун проебался, когда начал искать связь между сжатием и хранение исходных картинок на сервере. На сервере хранятся как сжатые, так и исходные картинки, сжатые тебе выдаются при загрузке треда, исходные по клику. О чём и говорил анон изначально.
>>1591576Более того, этот дебил сейчас пишет то же самое что в прошлый раз процитировал и сказал что видеть такие посты это как на ебало ссать себе: >>1591421Биполярочка
>>1591560Ещё раз, тебе блядь, показали исходный код где видно что сайт грузит мелкую ресайзнутую картинку. ХУЛЕ ТЕБЕ НЕПОНЯТНО ЕБОБО? НАХУЙ ТЫ ПРОСИШЬ МАЛЕНЬКИЕ ПИКЧИ В ОП ПОСТ?
>>1591576>какой файл ты грузишь когда открываешь тред.Если загружаю - full size, мне борда выдает пережатый - small size, full хранит в hiden link>>1591584>>1591586>>1591596пиздец вы аутисты, какие то посты мне приписываете. Это такие маневры уровня /pr/ шараги?
>>1591621>Если загружаю - full size, мне борда выдает пережатый - small size, full хранит в hiden linkТы хоть сам себя понимаешь, хуйло тупорылое? Что ты вот сейчас высрал? Если загружаю - фул сайз. Мне борда выдает пережатый - смалл сайз.Пиздец просто, скажи, что это такой тончаший троллинг.
>>1591621>full хранит в hiden linkПиздееееееееееееееееееееееееееееееец ты еблан, хоть в анусе у тебя хранит. Складку сеть открываешь и видишь что в итоге по клику происходит загрузка с сервера.
>>1591630пиздец ты уебище тупое, hiden link from server. Из чего еще может быть линк?>>1591627походу тот же, что и запостил >>1591421Я пытался, правду пытался, но уровень шараг и вкатышей-манарегров просто ставит меня в тупик. Один линки в разметке хранит, другой сервером картинки пережимает (сервер != wakaba)
>>1591641>но уровень шараг и вкатышей-манарегров просто ставит меня в тупик.Ну раз ты даун, то тебя и шараги в тупик постявят.>линки в разметке хранитА, ну тоесть a href - это не разметка теперь да? Теперь ты уже даже html не осилил. Ясно, понятно. Видимо ты какой-то особый случай мозгового ампутанта. С чем я тебя и поздравляю.>(сервер != wakaba)Даун, ты тут один единственный про вакабу что-то пиздишь. Заканчивай. Никто тебе слова про вакабу не сказал.
Учу Asp.Net Core, до этого с вебом дел не имел, только десктопные приложения писал. Я правильно понимаю, что веб приложения никак не оперируют данными в оперативной памяти? Ну то есть если пришёл запрос, то код должен его обработать, отослать ответ и какие то промежуточные данные где то сохранить (физически на диске. Просто в тхтшник или в бд). Придёт новый запрос - надо брать данные с диска (ассоциировать их с пользователем). Хранить их в оперативке никак не выйдет (ну то есть можно, конечно, написать десктопную прогу, которая будет запускаться параллельно и отправлять данные в неё, но так, в общем то, не делают)
>>1592095>Я правильно понимаю, что веб приложения никак не оперируют данными в оперативной памяти?Как понимать этот вопрос? Когда запускается программа, любая, хоть десктопная, хоть консольная, хоть веб-приложение, то в ОС создается процесс, который имеет свою изолированную часть оперативной памяти, в которой рантайм инициирует стек и кучу. Хотя насчет стека я не уверен, но в общем не важно. Пока процесс работает, отрезок оперативки будет закреплен за этим процессом, и он будет оперировать данными, которые там имеются, или будут поступать извне.>Ну то есть если пришёл запрос, то код должен его обработать, отослать ответ и какие то промежуточные данные где то сохранить (физически на диске. Просто в тхтшник или в бд). Если важные данные не сохранять, то при поломке процесса они исчезнут. Приложение не может быть вечно запущено, оно может упасть с ошибкой, или сервер упадет от нагрузки, или произойдет что-то еще. В таких случаях данные будут утеряны. Поэтому естественно их нужно сохранять.>Хранить их в оперативке никак не выйдет (ну то есть можно, конечно, написать десктопную прогу, которая будет запускаться параллельно и отправлять данные в неё, но так, в общем то, не делают) Можно хранить и в ОП, но только нужно иметь всегда актуальную копию в базе или на диске, или на другой машине. Можно использовать in-memory базы данных, например Aerospike, которые хранят данные как раз в оперативке, и поэтому у них высокая производительность.
>>1592316>Хотя насчет стека я не уверентоже в оперативке>Можно хранить и в ОПвсегда будет сервер, хотя бы для самого софта или хранения логов/аутентификации
>>1591004Сделать упор на написание того что тебе интересно, блядь. Я просто хуею с таких вот: прочитают от корки до корки, пройдут миллион курсов, но дома даже строчку кода не напишут. Открываю тебе секрет: Все что нужно чтобы начать кодить что-то реальное или устроится на работу джуном - понимание булевой алгебры, базовые знания компьютерной математики, элементарная логика и умение строить алгоритмы, 95% остального ты будешь гуглить, от фишек языка и его библиотеки, которые не знал, до алгоритмов которые лучше подходят для решения задачи. Никто, не заучивает наизусть все, ты на проекте уже разбираешься, как устроены те или иные штуки, как работает твой фреймворк и все остальное, а понимание того как строить правильную архитектуру приходит именно после написания своих проектов. Нет, будем страдать фигней бесполезной, будем читать миллион книг и через неделю забывать что там прочитали и записываться на курс, который будет заставлять программировать. Вот и нафига-то тогда изучать? Ты же будешь на работе страдать, потому что минимум 95% времени первые лет 5 - чисто работа с кодом.
>>1592095> Хранить их в оперативке никак не выйдет (ну то есть можно, конечно, написать десктопную прогу, которая будет запускаться параллельно и отправлять данные в неё, но так, в общем то, не делают) Не выйдет, только при чем тут веб-приложения в целом? Ты получил запрос, он будет в куче, ты его как-то обработал, в процессе обработки пару раз обратился к диску, чтобы, скажем, статичный файл считать и отправить или данные из БД достать, запихнуть их в json и опять же отправить, если этот ответ повторяется много раз, ты можешь вообще не обращаться к диску, а создать какую-нибудь свою хитрую очередь, в которой "горячие данные"(к которым чаще всего обращаются) в начале расположены, "холодные" - в конце, те что "очень холодные" выгружаются из оперативки, таким образом поиск будет быстрее, сэкономишь пару миллионов таким макаром.Ну и вообще, веб-приложения не ограничиваются HTTP, ты можешь запилить хуевину, которая принимает поток данных, обрабатывает и сразу посылает ответ, тут никаких обращений к диску может не быть, все будет либо в куче, либо на стеке происходить.> Придёт новый запрос - надо брать данные с диска (ассоциировать их с пользователем). Не обязательно. Если у тебя не очень много запросов отовсюду, то ты вполне можешь поддерживать открытое соединение пока не получишь запрос, либо пока сокет не отвалится; можешь по кукисам проверять залогинен ли пользователь, вообще много чего можешь делать.
Ребят чаму не работает?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 штук запустить, но чета не работает, помогите плиз, вроде же все должно работать хуй его знает
>>1592533фикс в самом верху int c = 0;И вообще мб есть что из коробки для контроля потоков? Что то типо ThreadPool только для отдельных задач?Мне давали ссылки на решение это проблемы но для меня пздц как сложно разобратся в этом, неуж то нету решение из стандартной коробки? Типо Передаешь массив тасков и число потоков, например так Magic(arrayTask,50), в массиве 5к тасков, и эти таски будут выполнять 50 потоков,
>>1591004Если ты не писал такой код, который читаешь, то ты никогда его не поймешь. Ты можешь прочитать тысячу книг о фичах языка, но если ты сам их не писал и не запускал, то ты никогда их не поймешь и не запомнишь. Прокачивается одним только способом, - написанием кода. C# ты выбрал зря. Слишком много фич и синтаксиса. Начни с языка по-проще, а как будешь уверенно писать код без справочника, тогда и за C# берись.
>>1592493>Я просто хуею с таких вот: прочитают от корки до корки, пройдут миллион курсов, но дома даже строчку кода не напишут. К сожалению, большинство думает, что можно научиться программировать читая книги или смотря видео. Когда-то и я был в их числе. Потом понял, что скилл прокачивается только когда пишешь.
>>1592493>>1592493Ну ахуеть, как писать код если не понимаешь?Вот я могу написать ну там цикли хуиклы, а вот как доходит до хуйни типо которую я выше скидывал то начинается пиздец.
>>1592506>Не выйдетС чего это вдруг? Предположим пользователь ввел данные, или они пришли как-то по-другому, - теперь они находятся в процессе, в котором запущена программа, их можно использовать в программе спокойно, до тех пор пока процесс не будет прекращен. Все зависит от аптайма, если он непрерывный, то данные можно не сохранять нигде, а хранить внутри процесса. В Эрланге например данные хранят в процессах, только не в процессах ОС, а в эрланговских процессах.
>>1592572Няша, я просто из-за того как построен вопрос, ответил криво. А именно > Я правильно понимаю, что веб приложения никак не оперируют данными в оперативной памятиКонечно, если только запросы обрабатываются и логика обработки не подразумевает обращение к диску, ты можешь полностью в оперативке все приложение делать.
>>1592571> Ну ахуеть, как писать код если не понимаешь?Вот так вот брать и писать. Городя велосипеды и развивая таким образом инженерное мышление. Неужели ты хочешь сказать, Шилдта ты не усвоил циклы, переменные, массивы, функции и классы, а сверху не понял как работает if и логические операции? Это база, которой достаточно, чтобы что угодно сделать, в процессе поймешь, зачем тебе нужны списки, как работать с файловой системой, потоками, зачем нужны события, где надо использовать вместо них делегаты и т.д.
>>1592600Уже пол года работаю, так и не понял, зачем нужны события и делегаты наверное потому, что сам ими не пользовался и у сеньора в коде не видел вроде
Как сделать чтобы после конца цикла переменная (int, double ...) сохранила своё значение? То есть, то значение, которое получилось в рамке перешло вниз?
>>1592622При написании гуев, например.Ты пишешь какую-то свою фунуцию и подписываешь ее на событие -- нажатие какой-то кнопки, при котором эта функция вызывается. Это очень похоже на функции высшего порядка в ФП (в шарпе кстати и они тоже есть), когда ты делаешь как бы "инъекцию" кастомной логики в более обобщенную логику. Например, в стандартной библиотеке Си есть функция qsort, которая может сортировать массив элементов произвольного типа, если определено отношение < на множестве значений типа. Т.е. сама функция qsort не знает, как сравнивать элементы, ты должен это туда передать. Только там это сделано некрасиво и не типобезопасно через указатели на функцию.
>>1592760Нах два раза переприсваивать переменные? Я плохо знаю синтаксис сишарпа, но как мне кажется, тебе цикл не нужен вообще, ведь значения не будут меняться, нет никакой прогрессии.
>>1591308Двачую. Не учёл, что сперва прогружаются превьюшки. Пикрил.Но блядь, что за срач я вижу ниже? ОЛОЛОЛОЛОЛ!
>>1592760Таки да, у тебя условие выхода никогда не выполняется. Ты либо в условии выхода что-то перепутал, либо в формуле расчета.Можешь просто добавить выход по счетчику, скажем через 10 итераций выходи.
>>1592316>>1592506Пасип за ответы, ну буду ковырять дальше.Просто имею опыт написания для себя десктопных приложух, даже онлайн игру пилил правда не допилил, точнее то что допилил - оказалось неиграбельным, но там как то меньше всяких нюансов знать нужно, как мне кажется. Вот вообще суть такая - хочу сделать типа базу данных определённую с веб интерфейсом. Десктопная есть. Там суть что программа считывает данные с бд, и потом уже хранит её в оперативной памяти. А пользователь может её как угодно крутить, фильтровать, графики строить по этим данным. Как вносит изменения - так они в бд сохраняются. В веб версии, насколько я понимаю, фактически при каждом новом запросе (например применить фильтр) надо снова обращаться к бд на диске. И всякие промежуточные настройки тоже или где то сохранять на диске или каждый раз выгружать на форму в скрытых параметрах, а потом получать назад. Как бы объяснить.. Вот, допустим, у меня в бд хранится список из 100 строк. Пользователь применил фильтр, осталось 20 строк. Пользователь применяет ещё один фильтр. На десктопной версии я просто применяю его к промежуточному списку из 20 строк, получаю 10 и показываю. В веб версии, фактически, мне надо показывая список из 20 строк ещё и выгрузить параметры первого фильтра, что бы потом получить оба фильтра назад, снова загрузить из бд полный список, к нему применить оба фильтра и показать итоговый результат. Или есть ещё способы?
>>1592903Юзай in-memory database. Или по хардкору бери Эрланг или Эликсир, там есть Mnesia, база данных реального времени, которая встроена в язык. Кроме того там есть ETS таблицы, которые хранят данные в процессах, то есть в оперативке, и дают доступ к данным за фиксированное время. Используй что-то готовое, проверенное, иначе ты будешь строить велосипеды с квадратными колесами.
>>1592930>Или по хардкору бери Эрланг или ЭликсирНе, у меня приоритетная цель - выучить шарп в принципе и асп.нет в частности. Это скорее как портфолио пилю, чем как обязательную задачу. >Юзай in-memory databaseЯ как бы могу, конечно, напилить ещё одну програмку, которая будет запускаться параллельно, и с которой мой веб сервер сможет общаться и передавать данные. А та уж пусть решает что хранить в оперативке, а что хранить на диске. Проблема в другом.Десктопное приложение априори работает с одним пользователем и в оперативке хранит данные этого пользователя. Веб версия должно быть спроектированно так, что бы с ним могли параллельно работать несколько пользователей. И в данном случае - всё равно как то надо ассоциировать хранимые данные с пользователем. В принципе я делал подобное в онлайн игре, но там клиент тоже был приложением, которому я мог задать логику как передавать данные аутентификации и что б это было не так уж легко взламываемым. А тут.. Короче гуглить надо вот эту аутентификацию через браузер... Сам задал вопрос, сам ответил.
>>1592493> прочитают от корки до корки, пройдут миллион курсов, но дома даже строчку кода не напишутВот, а у меня зеркальная ситуация. У меня дофига своих проектов, я на текущей работе (мало связанной с IT) написал херову тучу разных обвязок и программ для облегчения работы, автообработки данных и прочего. Мне (пока что) доставляет программировать, IDE открыта всегда, достаточно часто мне просто в голову приходит какая-нибудь занятная вещь/алгоритм, и я это реализую сразу же (правда достаточно часто это оказываются велосипеды, врать не буду). Но я не учился на это, никогда не читал никаких книг, не проходил никаких курсов (пробовал разок - это скучно пиздец как).Думал перекатиться в программисты, раз уж мне всё равно это нравится. В итоге завалил несколько собеседований из-за незнания элементарных вещей. Всякие умные термины это для меня тёмный лес, я не знаю ничего. Ни паттернов, ни шаблонов, ни сложностей алгоритмов. Получилась идиотская ситуация, что тестовое задание я могу написать, а теорию не знаю. На одном собеседовании меня даже заподозрили в том, что за меня кто-то тестовое написал.В итоге продолжаю сычевать на своей неайтишной работе, и не понимаю, что делать дальше. То ли читать книжки и ебаться с теорией, хотя мне этого совсем не хочется. Или чистить свой код и вываливать проекты на гитхаб, хотя там всё узкоспециализированное под мою текущую работу. ХЗ короче.
>>1593028Почти аналогично, только учебник для чайников я читал. Тоже хочу перекатиться в айти, боюсь слива из за незнания каких то специфических терминов или базовых алгоритмов.
Почему в шарпе нельзя нормально перечислениям задать методы и свойства и приходится извращаться с методами-расширения?
>>1593415так и пиши - обосрался.А еще лучше - пиши вопросы, от твоего строчки профита нет, только убытки
>>1593362Лол, нет.>>1593250Бля, что не ясного-то?Вот я сделал енам: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());Да, это все можно расширениями делать, да можно в классы вынести, но блядь, в жаве-то можно было нормально, хули в модном-молодежном шарпе это так заебисто сделано?
>>1593606Потому что это, блять, перечисление, с какого хуя в нём должны быть методы и свойства? Это не логично и будет путать при чтении такого кода. Вот увидел ты эту хуйню в коде и будешь гадать, что там васян нахуевертил - класс или перечисление.
>>1592960> выкати пример, интересно посмотретьЯ не он, но вот тебе абстрактный пример:У тебя есть кнопка, кнопку ты планируешь много где использовать и кнопка, собственно всегда одна и описывается банально: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, не делаешь еще что-то, просто подписался и каждый раз когда жмакаешь кнопку - что-то происходит, потом ты решил, например ты еще при этом хочешь в файлик начать писать, ты просто к этому событию добавил еще одного подписчика, тот метод вообще не трогаешь, а при этом у тебя добавилась новая логика. Удобно.Другое дело, как я уже говорил, что это очень много нудной работы по созданию всех этих хендлеров, статичные события в нестатичных классах считаются моветоном, и вообще, когда делаешь в небольшой компании и вы не какую-то библиотеку пишете а активно решаете конкретную бизнес-задачу, события отходят на третий план.
>>1593620Ну смотри, няша, во-первых, окольными путями это таки делается.Во-вторых, это же удобно. Предложи мне способ более удобный для каких-то более-менее статичных вещей, получать разную логику, не перегружая рабочий код кучей свитчей и ифов? Сделать класс 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;}}
>>1593620> Вот увидел ты эту хуйню в коде и будешь гадать, что там васян нахуевертил - класс или перечисление. Да, еще кое-что, в ООП - все, по сути, классы. И на мой взгляд, как раз постоянно разделять: Это класс, это перечисление, это структура, это еще какая-то фигня; запутывает больше.
>>1593659>во-первых, окольными путями это таки делается.Окольными путями много чего можно сделать. Ты еще блок unsafe добавь и там хуевертить начни. >Во-вторых, это же удобно. Предложи мне способ более удобныйДелаешь абстрактный класс Transport, а от него производные. Если что-то переопределять нельзя, то используешь модификатор sealed. >Я же не предлагаю классы заменять. Ты предлагаешь мешать перечисления с классами. Это не добавляет коду читаемости, это запутает тебя после того, как ты вернёшься к этому коду через несколько недель.
>>1593670Структура и класс отличаются по методу хранения в памяти. Перечисление это просто список идентификаторов. Всё распределено и понятно, а у джавистов мало того, что нет структур, так еще и перечисления смешаны с классами.
Аноны, а можно ли сделать override ToString например у int? Не то что бы это было нужно мне, просто интересно, возможно ли.
>>1593681Да, тоже проверил сейчас. Забавно, что метод расширения можно назвать ToString, и он даже будет отображаться в подсказках, но компилятор его наличие будет молча игнорировать, даже ошибки не выдаст.
>>1593672> это запутает тебя после того, как ты вернёшься к этому коду через несколько недель. Когда работал на джаве не запутывало же. А там проектики были побольше чем сейчас на шарпе. А вот сейчас вынужден чтобы рабочий код не превращался в миллиард if'ов, заниматься тем, что писать кучу расширений. >>1593675> Структура и класс отличаются по методу хранения в памятиЯ знаю это. Что при этом должно мешать мне наследоваться от структуры? Скажем вот у меня есть 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(), а уже в перечислении ты указал, будет это ближняя или дальняя атакаДелать кучу экземпляров и эти твои фабрики, которые будут мне производить орков, эльфов и т.д. на мой взгляд скорее перегружает код, и запутывает человека, который не страдает паттернами головного мозга.
>>1593690>Когда работал на джаве не запутывало же. А там проектики были побольше чем сейчас на шарпе.На фортране с goto тоже проекты на несколько сотен тысяч строк писали и не запутывались. Это не оправдание. >Что при этом должно мешать мне наследоваться от структуры?То, что структура хранится в стэке, а не в куче. Структуры должны быть легковесны.>Скажи, по твоему удобнее в классе писать:Создаешь перечисление AttackType и делаешь соответствующее поле у классов Orc Slime Wolf и т. д. >Делать кучу экземпляров и эти твои фабрики, которые будут мне производить орков, эльфов и т.д. на мой взгляд скорее перегружает код, и запутывает человека, который не страдает паттернами головного мозга.Так пиши сразу на С, зачем тебе вообще ООП, мозг засорять только. Твоя проблема в том, что у тебя хуевая архитектура приложения и ты жалуешься на то, что язык мешает тебе эту хуевую структуру реализовать.
>>1593729> То, что структура хранится в стэке, а не в куче. Структуры должны быть легковесны.По твоему если я добавлю одно поле структуре она сразу перестанет быть легковесной? Довольно странный поинт. Ничего не мешает под капотом делать всю магию и на самом деле никакой иерархии и наследования не делать, но мне, как программисту, не хочется писать одну и ту же логику 10 раз из-за отличия в одном поле, а потом отлаживать это дело. Чем меньше кода нужно писать и чем более он унифицирован со стороны разработчика - тем лучше> Создаешь перечисление AttackType и делаешь соответствующее поле у классов Orc Slime Wolf и т. д.Чем, блин, это приницпиально отличается-то? Да ничем, только строк кода больше написать придется, а потом искать по всему коду где ты что-то зафакапил, в то время как в данном случае ты, если и зафакапил, то точно знаешь где и за 10 секунд исправишь.> Так пиши сразу на С, зачем тебе вообще ООП, мозг засорять толькоТак я и писал. С 2006 по 2010, примерно. Проблема Сишечки в том, что платят, за такую работу, мало. После вуза еще нормально казалось, но сейчас я бы не стал заниматься поиском того почему во флеш-память нули записались, хотя я писал структуру и хуй пойми, это я где-то обосрался или китайцы с железкой.> Твоя проблема в том, что у тебя хуевая архитектура приложения и ты жалуешься на то, что язык мешает тебе эту хуевую структуру реализовать. Нормальная у меня архитектура: гибкая, расширяемая и при этом если что-то кто-то сломает, сразу легко локализировать проблему. Если же у тебя есть какая-то иерархия, плюс в базовом классе какая-то логика, то на поиск конкретного места, где что-то пошло не так, может полчаса уйти, даже если ты все-все-все логируешь.
>>1593729>структура хранится в стэке, а не в кучеДоказать можешь? Ты ведь откуда-то это взял, значит где-то прочитал. Где?
>>1593630>ты просто подписываешься на событие Clickedэто и есть паттерн publisher-subscriber ака события в C#
>>1593690>Скажем вот у меня есть struct Point2d, хочу сделать Point3d, отличия будут в одном поле и паре методов, в остальном почти все аналогично,Лол нет, это принципиально разные сущности, лучше одно от другого не наследовать.>либо копипаститьВ чем проблема?Тебе ниже верно пишут, ты "очарован" ООП и какую-то несусветную хуйню пытаешься из него слепить.Не плоди сущности, не переусложняй абстракции.Наследование нужно вообще в очень редких случаях и для всякого энтерпрайза в основном с бизнеслогикой.Используй интерфейсы, и только если вот совсем прижмёт - наследование.Если у тебя нет интерфейсов, но есть наследование - ты что-то серьёзно делаешь не так.
>>1593787>как программисту, не хочется писать одну и ту же логику 10 раз из-за отличия в одном полеРасскажи о логике хранимой у тебя в структуре Point2d ?
>>1594075Про различия этих типов я знаю. Но я не могу въехать в то как хранятся структуры в стеке. Как функции живут в стеке я понимаю. Есть стековые кадры и прочее. А как структуры не могу понять. Где можно об этом почитать?
>>1594257> Но я не могу въехать в то как хранятся структуры в стеке. Как функции живут в стеке я понимаю. Есть стековые кадры и прочее. А как структуры не могу понять. Где можно об этом почитать? Ты контуженный или что?Ну структура допустим int32 double byte4+8+1 = 13 байт.Вот блядь берем, и пушим эти 13 байт в стек, в чем проблема? Что тебе непонятно в этом?
>>1594307>Как при раскрутке стека это все хранится и используется? Так же как и обычные переменные, отличия никакого нет.
Этот тред для тех, кто хочет освоить язык для лоботомированных дебилов устаревший в момент его создания.
Подскажите можно ли в Windows Forms в CheckBoxList сделать больше 1 чекбокса для каждого элемента в списке? (пример на картинке, слева как есть, справа как хочу)
>>1594997Хочу мониторить элементы в CheckListBox, 1 состояние не позволяет пометить элемент для разных условий (например первый чекбокс просто добавляет в список отслеживания, второй указывает надо ли совершать какие либо действия)
>>1595001Добавлю, я мог бы с 1 полем добавить в разные списки элементы в несколько проходов в ручную, но но я хочу сделать наглядно и просто, с возможностью в любой момент поменять значения у элементов без надрачивания кнопок
>>1586030 (OP)Нужно ли совать try-catch во все методы, или достаточно пихнуть его только в основной, из которого они вызываются?
>>1595008try-catch очень трудоемкий процес. Так что желательно пихать его в верхние слои приложения, чтобы не вызывать каждую секунду. Или делать стейт отлавливатель ошибок.А еще лучше возьми хороший проек/библиотеку и посмотри как там сделано, чтобы не слушать анонов с двача
Аноны всем привет. Кто-нибудь работал с ResetEventSlim? Суть такова: Вызывается метод GetState, запускается таск с подпиской на приходящие уведомления о новых состояниях, как только в StateReceived поступит нужное состояние, в StateReceived вызывается ResetEvent.Set();private State GetState(){ CurentState = null; new Task(() => { agent.Received += StateReceived; }).Start(); ResetEvent.Wait(); agent.Received -= StateReceived; return CurentState;}Пару вопросов:При повторном использовании программа вылетает без ошибки.Иногда при работе с другим классом вызывается данный таск.Как быть? Как можно улучшить данный говнокод?.
>>1586030 (OP)Кто ищет потёртую мочёй наноборду - добро пожаловать, через TorBrowser, вот сюда: http://nboardn46ay6ycdi.onion/
>>1595045Зачем ты вынес подписку в отдельный таск?> программа вылетает без ошибкиОчень маловероятно. Попробуй писать лог для AppDomain.CurrentDomain.UnhandledException, и можешь подписаться еще на AppDomain.CurrentDomain.FirstChanceException, если ты где-то наебался с catch'ами.>Иногда при работе с другим классом вызывается данный таск.Чего бля? Если не надо, не вызывай.>>1595045>Как можно улучшить данный говнокод?.Лучше б описал, что а задачу ты решаешь этим кодом
>>1595092мне нужно реагировать на разные состояния которые приходят из agent.Receive, а точнее EventHandler<State> Receive.Вынес в отдельный таск так как в нем крутится ожидание нужного состояния:private void StateReceived(object sender, State e){if(e == State.Ready) {IsReady = true;ResetEvent.Set();return;}}>Чего бля? Если не надо, не вызывай.Вызывается из другого класса, так как другой класс так же работает с состоянием
>>1594996В каком списке? ListViev? https://www.codeproject.com/Articles/9188/Embedding-Controls-in-a-ListView . А вообще кастомизация контролов форме это боль. Если нужно что-то не стандартное пили на wpf. Еще можешь попробовать через datagridview, у него есть поддержка колонок с чекбоксами.
>>1595092Короче. Напишу полностью, а код псевдоязыком, так быстрее и понятнее будет.У меня есть собственная Web Api, которую я сейчас пишу. Она через мною написанного посредника вызывает библиотеку api одного сервиса.В этом посреднике, есть методы которые стучат в библиотеку api одного сервиса.Когда посредник стучит "api одного сервиса" он возвращает состояние, по типу: готов, не готов, уже готов.Мне и нужно чтобы посредник возвращал, выполнен ли метод, по вызову библиотеки api одного сервиса, успешно.К примеру:В мою Web Api стучат по данному адресу: https://localhost:/InitializeWeb Api обращается к моему посреднику через: public async Task<bool> CheckReadyСам посредник стучит в стайт у себя GetState()Потом в методе посредника public async Task<State.Ready> CheckReady смотрит какое состояние пришло: var state = GetState() и смотрит что пришло: if (state is State.Ready) return true
>>1595103> реагировать на разные состояния Ну напиши через свитч, вызов нужного обработчика на конкретный стейт. Я в похожей ситуации делал менеджера с методом RegisterListener<StateType>(action<stateType>) и менеджер разруливал когда кого вызывать.>Вынес в отдельный таск так как в нем крутится ожидание нужного состоянияНичего там не крутится.Таска только делает подписку, и на этом всё. StateReceived вызывается событием, соотвестсвенно, выполняется синхронно в потке, в котором вызывается событие.>Вызывается из другого класса, так как другой класс так же работает с состояниемНе понятно. Если ты теребонькаешь один и тот же ресетевент, то чего ты ожидаешь?
>>1595123а есть кусочек примера менеджера?>Не понятно. Если ты теребонькаешь один и тот же ресетевент, то чего ты ожидаешь?Используется в каждом классе свой ресетевент. В классе посредника свой, в классе получение инфы свой.То есть надо создать что-то типа такого: public async Task<State> RegisterListener<StateType>(action<stateType> callBack, State waitState){var state = Как из agent.Received взять нужный стейт? if (state is waitState.type()) callBack();}Это понятно, но как мне ожидать и получать от agent.Received нужный мне стейт?
>>1595117https://pastebin.com/8bGJcH6Xтак?>>1595134>а есть кусочек примера менеджера?https://pastebin.com/PwnzmdRd - хуйня для хранения обработчиков (не помню, почему я лочил вручную, а не использовал конкурентдикшинари, возможно просто проебался)https://pastebin.com/9xsVNfNt - хуйня которая получает сообщения>>1595134>Это понятно, но как мне ожидать и получать от agent.Received нужный мне стейт?Тебе надо повторять запрос, пока одноапи не вернет рэди?
>>1595161ОГО! Спасибо огромное, с меня как обычно>Тебе надо повторять запрос, пока одноапи не вернет рэди?Нет. В начале при старте и инициализации agent и подписки на agent.Received присылаются пара стейтов примерного типа: StateReadyInialize, StateStartInitializeИ как только пришли данные стейты нужно сразу реагировать и инициализировать библиотеку стороннего апи
>>1595173так я нашел лучшее решение. rxjs для net. Прям то что нужно, осталось пару вещей прикрутить и будет самое то. Но все равно спасибо анон за примеры, очень выручил
>>1586030 (OP)Недавно понял что хочу вкатиться в геймдев. Сейчас раздумываю над карьерой. Понятно что я нуб. Но как цель я вижу себя работающим с играми на юнити, благо он популярен. И я знаю что для работы с юнити нужно знание си Шарп. А для знания си Шарп лучше всего перед этим выучить си/си++, чтобы знать основы. Хочу пойти в мой областной госунивер для переподготовки. Год занятий, знания, знакомства в айти сфере, официальная бумажка о переподготовке. Естественно, я понимаю что мне нужно и самому учиться. И свои какие то проекты делать. Просто хочу узнать насколько жизнеспособен мой план?
>>1595432Бля, хотел добавить выразительности, написав по слогам, а получилось как будто даун написал.
1. В чём разница между Hashtable и Dictionary<object, object> ?2. Что будет, если использовать в Hashtable ключи типа Long, и попытаться добавить две пары ключ-значения, в которых ключ будет разным значением Long, но иметь одинаковый HashCode()?3. Что будет в случае из п.2 для Dictionary?
Почему ReferenceEquals = false в данном случае?int x = 5;ref int y = ref x;ref int z = ref x;Console.WriteLine( object.ReferenceEquals( y, z ) );
>>1595568Вместо hashtable лучше использовать HashSet<T>, Dictionary<K,V> полностью актуален. Но вопрос скорее про принципиальные различия, а не про конкретные классы библиотеки.>>1595536Молодой человек, у вас структуры упаковались.
>>1595828обсосанная 101 раз тема. Гугли паттерн Publisher-subscriber и смотри какие задачи он решает.Вопрос к анону про использование асинхронных методов. Есть клиент-серверное приложение. На каком этапе нужны асинхронные методы:1. На серверной (business model)2. На клиентской (controller)3. И там и там.Спасибо
>>1595884Это что ли?https://github.com/microsoft/referencesourceТам нихера нет. System.Collections нет в том числе.
>>1595887пиздец, referencesource.microsoft.comпосмотри там свои коллекции, узнай как они решают коллизии
Начал писать веб-приложение на связке Net. и React.Начать с Net.4 или сразу с Net.Core? В этом году, с выходом Net.5 разделения уже не будет же.
>>1595828Делегат это ссылка на метод, точнее на список методов с определенной сигнатурой.Нужен для передачи метода как аргумента. Например у LINQ методов типа Where или Select аргумент как раз делегат. Подсовывая анонимный метод с нужной сигнатурой ты подсовываешь в эти методы свою логику для обработки элементовДругое применение - сигнализация о событиях. event - это сахарок над делегатом, который обеспечивает потокобезопасное добавление\удаление методов, а также ограничивает доступ до собственно добавления и удаления.
>>1595043try бесплатен если нет исключения.Конечно, чем выше по стеку ловишь, тем лучше.Но надо учитывать, что у MS в их стандартном API исключение потенциально может кинуть любая операция, небо, земля и Аллах.Поэтому надо смотреть - где ошибка допустима и можно продолжать, там тоже ловить, вместо того чтобы тупо падать.
>>1595419Это проверка типа с последующим кастом в этот тип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
>>1595853Небольшая разница в поведении - методы Convert не кидают исключение от null на входе (но по прежнему могут кинуть если значение не парсится)TryParse вообще не кидает исключений ни в каком случае. Лучший (единстенный разумный) вариант, когда надо много парсить, т.е. не упарывается производительность
>>1595893>с выходом Net.5 разделения уже не будетПока что Net.Core, в отличие от Net.Framework, не позволяет работать с офисом (excel, word и т.п.). Подключить например Microsoft.Office.Interop.Excel для работы с объектами Excel в net.core нельзя.Когда это исправят? В Net.5? Раньше? Или никогда?
>>1595914Вот у них семпл есть под последний неткор: https://github.com/dotnet/samples/tree/master/core/extensions/ExcelDemoВ районе 2ой версии были проблемы с COM InteropНу и с добавлением в проект пока надо пердолиться
>>1595893Net 5 будет на базе NET CoreNET 4.x это легаси, они его будут поддерживать, но не будут развивать. Он уже не поддерживает новый Net Standard.Т.е. с точки зрения будущего, лучше учить неткор. Но только не факт, что условная контора, в которой ты работаешь/будешь работать будет на него переходить. Получается что старый дотнет тоже знать неплохо, а там разница в API (тот же асп нет перепилили)А вообще заебали они, мусорная свалка вместо экосистемы.
Анон помогите, а то туплю сильно. Нужно записывать в json новый пришедший объект и добавлять в json как массив:[{Name: 1Id: 0}]Пришел новый объект и добавлять его к старому в json[{Name: "AA"Id: 0},{Name: "BB"Id: 1}]Как быть?
>>1595333>А для знания си Шарп лучше всего перед этим выучить си/си++, чтобы знать основы.Ебу дал? Сразу шарп учи, качай книжки из шапки и пиздуй на ulearn.
>>1596027Читаешь старый жейсон, записываешь новый. В чем конкретно проблема? В шарпе 100% должен быть парсер жейсона встроен.
>>1596080как перый элемент записать как элемент массива,как добавлять новый элемент в массив json. Ведь читать, парсить в list и обратно записывать, очень дорого стоит. Есть более оптимальные пути?
>>1596083>listВ шарпе не в коллекции объекты парсится?>очень дорого стоитПамяти? Какой размер жейсона у тебя?Поясни свой юзеркейс.
>>1596083Экономия на спичках, по-моему.Можно хранить десериализованный список в памяти, и только сбрасывать его в json при изменении.Можно упороться и не десериализовывать существующий json, а сериализовывать новый объект и руками дописывать текст.Все упираяется в то, что юзкейс неясен
>>1596080System.Text.Json есть только в последнем неткоре и он дико негибкий. Все юзают newtonsoft.json https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-migrate-from-newtonsoft-how-toУ некоторых юзкейсов даже workaround'ов нет
>>1595990Это сторонняя поделка, которую вполне могут прекратить развивать.У которой к тому свой собственный синтаксис, отличный от объектной модели excel'я. Если надо какую-то хитрую хуйню в екселе сделать - делаешь вручную, записывая макрос, и получаешь все ответы. Со сторонней хуетой вместо этого будешь сутками курить мануалы.Ну и в целом учитывая объём функционала Excel'я и тонких особенностей поведения, что-то слабо верится, что всё это будет работать нормально, если задача будет чуть шире, чем вставить неформатированные данные в ячейки.
Вопрос по Листам List<T>.Как находить объекты в листе, если он изменился по наполнению (что-то удалилось, что-то прибавилось)? Например: у меня есть "объект1".Я добавил его в "Лист1", в котором было уже 4 других объекта. Т.е. индекс "объект1" в листе будет 5.Теперь я удаляю какой-то объект из тех четырех из листа, порядок объектов по индексу в листе ведь меняется. Как мне теперь отыскать "объект1"?
>>1596159>Как мне теперь отыскать "объект1"?Этот объект чем-то уникальным среди остальных объектов выделяется?ДА :- ищи по этом уникальному свойству.НЕТ :- в твоей архитектуре этот объект ненужен.
>>1596159По обычному списку можно искать только перебором и сравнением.Если ты можешь выделить какое-то свойство, по которому ты определяешь объект и тебе важно быстро искать, используй Dictionary вместо списка. Естественно ключ должен быть уникальный.Если ключ - сложный объект, придется пердолиться либо с IEqualityComparer, либо оверрайдить Equals и GetHashCode. Лучше так не делать
>>1596101>В шарпе не в коллекции объекты парсится?Приходится делать костыль в виде новой коллекции и туда добавлять элемент. Это если в файле ничего нету, а объект надо сохранить как элемент массива.>Памяти? Какой размер жейсона у тебя?Где-то 10-15 объектов с 6 свойствами. 1 свойство лонг, 3 стринговых и 2 int. Это чудо парсится на сервере и передается в виде строки пользователю, там строка парсится в объект опять.
>>1596037Нужно знать основы C/C++. Не в смысле уметь применять детали последних стандартов. Но какую-нибудь книгу из серии "Освоить за 21 день" надо почитать и поделать примеры/упражнения. Байтоёбство, управление памятью, указатели на указатели на указатели. Без этого в ряде аспектов ты в шарпе сможешь работать только как макака на интуиции, без понимания.
>>1596181Всё нужное объясняется в книгах по шарпу. То что ты там "выучил" из книги Освоить за 21 день, забудится через 21 день и никакой пользы не принесёт, только запутать может.
>>1596189В книгах по шарпу даётся объяснение на словах. И потрогать ты можешь всё это только в трёх презервативах через много слоёв абстракции.По учебникам по С/С++ можно позапускать примеры или упражнения оттуда и потрогать указатели и память, как она есть.
>>1596203этот все верно говорит. Без С и C++ в решетках делать нечего. А еще лучше - Assembler (низы низов, так сказать). Если хотите копнуть глубже и вы харкорщик - бинарный код. Вот, чем можно удивить на собесе и вывалить на стол на качалку докторской колбасы. Он тебе про преобразование виртуальных полей в CLR, а ты ему ряд из нулей и единиц. Сразу поймут, что ты человек серьезный и больше спорить с тобой не будут.Вообще не понимаю всех этих пидарских новомодных решеток, когда есть старые, добрые, проверенные временем так сказать, Cobol и SmallTalk (без последнего ООП не осилишь никогда).Поэтому да, бросайте эти ваши решетки, где 99% кода делает IDE и разбирайтесь в низкоуровневых вещах.
Сука ебанный blazor. Как загружать данные VM до того как view загрузилась и делать это асинхронно? OnInitializedAsync не работате, страница зависает.
>>1596229>преобразование виртуальных полей в CLRИ опять пук в лужу. В С++ тебе на первых 100 страницах любого учебника расскажут, что такое vtable, как оно устроено и как работает.В решеточке макаке расскажут, что не надо париться, там внутренняя магия, написанная серьезными дядьками на С, сама за тебя всё сделает.
>>1596178>Где-то 10-15 объектов с 6 свойствами. 1 свойство лонг, 3 стринговых и 2 int. Это чудо парсится на сервере и передается в виде строки пользователю, там строка парсится в объект опять. Так тебе стримить нужно клиентам новый жесон челе?Ну ебана, парси просто символы прямо из стрима, если хочешь оптимизировать всё до упора.
>>1596261>И опять пук в лужу>В С++Ты понимаешь хоть как vtable отдает нативные команды процессору? Как кеширование и преобразования в двоичный код происходит? Ты на ассемблере сможешь пояснить за твои витруальные таблицы?Без этих знаний ты такой же пустоголовый погромист, который работает с абстракциями, как и решеточники. Грош цена твоим знаниям.
Сел писать веб-приложение для саморазвития, резюме и карьерных перспектив. Есть старые туториалы для .Net 4.7 (включая Entity Framework 6 и ASP.NET MVC), есть новые для .Net Core (ASP.NET Core + Entity Framework Core). Насколько я понимаю, разница не особенно критична, и в резюме работа с Core будет смотреться интереснее, а разобраться со старыми версиями, если на новом месте будет легаси-код, будет не сложно. В свете ожидания .Net 5, думаю, лучше будет сразу написать приложение на Core, верно?
>>1596350Конечно Core. Но будь готов к жопе, ибо множество библиотек еще не перешло на core и внутренние вещи еще не допилены, а компании не готовы пока переносить свой старый рабочий код. Так что дилемма и надо знать все
>>1596350Присоединюсь к вопросу. Тоже думаю, стоит ли в своих самообучающих проектах переходить на кор?Вот это вот имеет какое-то значение для учебных целей?Может быть такое, что макака умеющая в кор, не сможет в фреймворк? Или наоборот?
Анончики, помогите идиоту, как сделать чтобы текст бокс принимал записи такого типа т.е как математические формулы, ибо через парс не выйдети не должно, а по другому я не могу найти как это сделать
>>1595907Вообще-то нет, не бесплатен.По факту он чуть дороже if блока, при условии что не вылетает исключения иначе дороже в 10000 раз (цифра примерная, возможно в реальности все куда хуже).>>1596473Искать библиотеки которые за тебя будут это парсить, либо делать все ручками.>>1596289Эти знания не несут практической пользы для 99.8% программистов, они больше академические.
>>1596473В смысле принимал? Если ты хочешь чтобы в такой форме можно было представлять данные, а потом вычислять, то гугли про конечные автоматы и как их использовать при синтаксическом анализе. Если коротко: делаешь словарь лексем, затем разбиваешь "текст" на "слова", кладешь числа в стек с числами, операторы в зависимости от приоритета в стек с операторами, потом достаешь из стека число, оператор и еще одно число, результат операции кладешь на вершину стека. В конце, если запись была валидной, у тебя в стеке с числами должно остаться одно число, оно и будет результатом вычисления.
>>1596473Насчет этого поста >>1596533, с алгоритмом я немного напутал, давно уже это было. Суть, гугли алгоритм вычисления с помощью обратной польской записи. Там одного стека достаточно, ну и изначально проверить чтобы в строке только валидные символы были, которые ты умеешь обрабатывать.
Антоны, у меня есть необходимость кучу файлов распарсить в папкеИх реально много, больше 100к, каждый нужно открыть, вырезать из него знаки табуляции, перезаписать, скопировать текст и потом сделать Distinct.С одним потоком я знаю как, а вот как в нескольких потоках это сделать, пока есть идея только разделить заранее файлы по количеству доступных потоков и в каждом все делать отдельно.
>>1596729Что мешает просто для каждого файла в папке сделать таск в таск передавать файл, там уже делать то что тебе надо?
>>1596513>бамп >>1595831> На каком этапе нужны асинхронные методыДля чего нужны?Ты лабу делаешь, или тебе за это деньги платят? Если платят, то я могу 10ток таких как ты заменить.Это я к чему, архитектура у тебя какая? Задачи какие решаешь? Всё зависит исключительно от конкретного юзкейса.Сервер ты скорее всего хочешь асинхронный делать, но это не всегда так.
>>1596787>Ты лабу делаешь, или тебе за это деньги платят?я смотрю ты далек в развитии проектов>Если платят, то я могуВысрать 3 строчки флуда и еще 3 беспонтовых советов. Такого рода совет я мог у любого бездарного мимо_ойтишника ака манагера получить
>>1595831Асинхронные методы нужны там, где выполнение метода может задержаться из-за необходимости долгих вычислений, либо из-за ожидания стороннего ресурса. Т. е. ответом будет - и там и там.
>>1596809спасибо, уже разобрался с этим. Как на серверной стороне, так и на клиенской (в виде аутентифицированных пользователей) создается стек запросов, который пополняется и выполняется поочередно не затрагивая основной поток
>>1596842Оу, не ждал такого быстрого ответа.Но я реализовал по другому, так как помнил, лол.Сделал через дочерние таски с флагом longrunning.И все сработало в итоге, не ожидал, что мой аутизм окажется плодотворным
>>1596784Ты чего там, хочешь, чтобы у меня 183к тасков на компе было?Я взял один list из fileinfo, поделил его на 6 частейколичество ядер процессора и передал их дочерним таскам.Просто помню, что longrunning может обрабатываться в другом потоке
>>1596528>не несут практической пользыдиды на паскале писали, на каболе писали, на фортране, мать его, писали. Какой ты погромист, если дидов не уважаешь? Так, конструктор типа в бинарный код, на бумажке. Потом будем побитовые сдвиги делать и переводить обратно в ассемблер.
>>1596972Собралась тут значит, перхоть. МОЛЧАТЬ. Чем Cobol отличается от APL? Какой код в Assembler делал возврат к циклу? Это знать нужно. Это классика блять.
Если есть Х классов, которые в той или иной мере между собой схожи (например у всех есть интерфейс INotifyPropertyChanged), стоит ли запиливать иерархию базовых классов, если конечные классы кастить не нужно? То есть базовые классы нужны только чтобы код не дублировать.
>>1597132Скидывать не буду - там такая каша, что я сам уже не разбираюсь. Я не знаю, что хочу, постоянно порываюсь переделать, думая что ща станет лучше, поэтому пиздец. Тем более я учу по чуть-чуть, наскоками, так что сам понимаешь.Я думаю, как поступить - сейчас у меня "концепция" из кучи похожих между собой классов - например все реализуют INotifyPropertyChanged и у всех есть свойство Name, но не у всех есть сеттер. Мне казалось очевидным запилить базовые классы, но это развесистое дерево, и использовать базовые классы я не собирался, поэтому висеть они будут мертвым грузом. Алсо мне не нравится постоянно лезть в иерархию. Это, конечно, мои ньюфагодебилопроблемы, но как-то так.
Короче, был класс, вышел на 1,5к строк. Я как не пытался придумать как его декомпозировать, ничего не придумал лучше, чем порезать его на partial, разделив более-менее на функцие которые каждый кусок выполняет. Так вот, сильно ли это плохо? Типа это же, по сути, запихивание под ковер пыли. С другой стороны, а как декомпозировать-то конечный этап обработки пакетов? Типа вот пакет регистрации, вот пакет сохранения файла, вот пакет передачи инфы о клиенте. Я хз, потому просто покрамсал как раз на MessageHandler.SaveFile, MessageHandler.Registration, MessageHandler.Auth, а в обычном MessageHandler просто свитчем ебанул какой метод на какой пакет выбирать. Хз короче.
Помогите с регекспом. Как мне прописать условие или символ, например, '#', или начало строки. Пример#abc - йепabc - йепvabc - ноуп
>>1597452У нас были 2 некомпилирующихся проекта, 75 классов, 5 DI контейнеров, UML диаграмма и целое множество сущностей всех сортов и расцветок, сиглтон, а также фасад, адаптер, бридж, чистый SOLID, как он есть и 2 абстрактные фабрики. Не то чтобы это был необходимый запас для хорошего проекта, но если начал собирать проект, становится трудно остановиться. Единственное, что вызывало у меня опасение — это сиглтон. Ничто в мире не бывает более беспомощным, безответственным и порочным, чем абуз сиглтона. Я знал, что рано или поздно мы перейдем и на эту дрянь.
>>1586030 (OP)Как засунуть изменённые значения массива, внутри словаря находящегося - в другой массив,да так, чтобы не изменять значения в изначальном массиве, который по ключу в словаре?
на раз-два... анон, есть два месяца на перекат (дальше выгоняют на улицу).Помоги построить роадмапу изучения С# на эти 2 месяца, чтобы сразу вкатиться в серьезный дев. Но именно на серьезном уровне, чтобы в легкую проходить собеседования на 140к и вышеЯ не совсем нуб, делал homebrew подделки (на других языках, которые никому сейчас не нужны.. ну там типа лиспа или сишечки). Но самоучка поэтому у меня нет теоретической базы (я даже в алгоритмах не шарю, а из паттернов знаю ровно три - синглтон, фабрику и наблюдателя, при этом про последние два только знаю, сам не юзал)Кароч - что есть по самому языку? книгой. на видеокурсы нет времени и денег. референсы не осиливаю, надо книжку с примерами.ООП, паттерны, алгоритмы - книги? (я конечно догадываюсь что банда четырех и что-нибудь такое - но лучше бы поактуальей и пообъемней)Актуальные технологии? чтобы вот щас изучить и сразу же вкатится во фриланс.И чтобы это все было описано наиподробнейше. Потому что я тупой, мне надо раззжевывать
>>1596152Для Microsoft.Office.Interop.Excel нужен установленный офис там, где исполняется код. Ставить на сервер майкрософт офис - дело достаточно сомнительное и у нас пропадает кроссплатформенность (что, внезапно, фишка core).Для EPPlus офис не нужен. Со всеми преимуществами этого решения. Макросы на нем тоже можно делать. Все там достаточно нормально работает, мне всего один раз пришлось костыль лепить.
>>1597812>Но именно на серьезном уровне, чтобы в легкую проходить собеседования на 140к и выше>Я даже в алгоритмах не шарю, а из паттернов знаю ровно три - синглтон, фабрику и наблюдателя, при этом про последние два только знаю, сам не юзал>Потому что я тупой, мне надо раззжевыватьЗа два месяца с хлебушка до зп хорошего такого дотнет миддла, я правильно понял? Ты бы хоть выбрал язык, где платят больше, чтобы цифры реалистичнее выглядели. Js какой-нибудь>чтобы вот щас изучить и сразу же вкатится во фрилансВо фриланс вкатиться сложнее, чем на галеруВыглядит как no way
>>1597812>я конечно догадываюсь что банда четырех и что-нибудь такое - но лучше бы поактуальей и пообъемнейОхуеть, ты сначала книгу открой, посмотри как там всё написано, осознай, что этого никогда не осилишь, а потом уже объемней проси, если поманяфантазировать захочешь. Про актуальность отдельно проиграл, это алгоритмы, блять, они всегда актуальны, это основа всех алгоритмов, что-то новое придумать практически невозможно. Читай Троелсена, потом Рихтера. По паттернам любая книга подойдёт. Но вообще за 2 месяца реально только в веб-макаку вкатиться, при условии, что каждый день будешь заниматься плотно.
>>1597819>За два месяца с хлебушка до зп хорошего такого дотнет миддла,я работаю (профессионально) на другом яп, но туда я устраивался по знакомству, то есть никакой теории никто не спрашивал, по рабочим обязанностям, справлялся. Чтобы заюзать какой-нибудь мап мне не надо знать что такое красночерные деревья на алгоритме которых этот мап сделан.>>1597880>а потом уже объемней проси,объемней в том плане чтобы там было больше разжевано для дурачков. В банде четырех все слишком абстрактно, моя не понимать.>>1597880>то основа всех алгоритмов, что-то новое придумать практически невозможно. все алгоритмы придуманы много лет назад. Но одни актуальны, другие нет.Например там щас говорят набирает моду какой-то новый алгоритм дерева.. ну как новый еще до моего рождения был придуман, а юзать стали только в 2010 году вроде.
>>1597782>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. Когда ты модифицируешь строку, ты ее не модифицируешь, а создаешь новую.
>>1597816>кроссплатформенность (что, внезапно, фишка core).Такая себе фишка на самом деле. Они попытались выкинуть виндоспецифичные апи (и запилили их обратно в platform extensions), но все равно выкинули не все.Named mutexes, любой потомок EventWaitHandle, некоторые методы для пайпов, любая хуйня связанная с COM и возможно что-то еще - все это осталось в коре и нихуя нигде кроме винды не работает. Естественно это не документировано и ты либо знаешь досконально, какие апи специфичны, либо подрываешь на деплое (либо юзаешь их api checker)
>>1597933А что докер? Он же нигде кроме жму/пинуса не работает. Docker for windows работает через виртуалку. С вероятностью 99% хоститься ты будешь не на винде. Но хотя бы возможность работать в нормальной IDE, не погружаясь в мочу aka desktop linux 2k20 дорогого стоит
>>1597907>я работаю (профессионально) на другом яп>Я не совсем нуб, делал homebrew подделки (на других языках, которые никому сейчас не нужны.. ну там типа лиспа или сишечки)Ты уже определись, homebrew или профессионально
Посоветуйте что ни будь по проектам Core, который можно будет использовать, как скаффолдинг в проектах. Ибо все, что я смотрю на ютубе - это какой то калл индусов и прочего биомусора (в т.ч. СНГшного). Когда то давно на хабре был тутор по ASP.NET 3.0, но сейчас это говно мамонта и не подходит под новомодные SPA под реакт.Лучше книги конечно, но если будет и видео ряд, то и он сканает. Спасибо.
как адекватно добавить wwwroot в пустой проект ASP.NET Core?Или как всегда происходит какая то магия под капотом? Просто тупо взял и сделал в пустом проекте, как в проекте с шаблоном mvc, но в итоге статические файлы так и не видит.
>>1598149ок, по примеру сделал. Работает. теперь другой вопрос. Помечу стили не применяет? сделал папку css/site.cssв _Layout.cshtml прописал путь ~/css/site.cssделаю в visual studio code
>>1597918>>1597920>>1597924Бля... Я тебя понял. Зашёл туда на 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, и так далее.
>>1597773>>1597782>>1598239>>1597918А если этот словарь - это кэш на сервере, то можно таким образом, через присваивание - хакнуть кэш сервера и написать в словаре - ОП-хуй?
>>1598239Всё, я понял. Надо не присваивать объект, используя "=", а клонировать его: https://metanit.com/sharp/tutorial/3.22.php
>>1598239Со строкой это работает, потому что как я написал ранее - для строки реализовано специальное поведение, несмотря на то что она тоже reference type. Вообще говоря строка иммутабельна (неизменяема). Любая попытка изменения приводит к созданию нового экземпляра.Если элементами массива являются обычные reference type объекты, то при поэлементном копировании опять же будет копироваться ссылка на них. При изменении свойства, ты увидишь изменение свойства в обоих массивах.Если элементами массива являются value type объекты (объявленные через struct), то будет производиться именно копирование, т.к. такие объекты передаются по значению.Если нужно именно копировать экземпляры классов, то здесь начинаются проблемы. Гугли shallow copy и deep copy.
Всегда ли нужно писать новый метод чтобы код не повторялся? Или не обязательно? Если в if/else похожий код на 3 строчки, но с разными знаками.
>>1598285Я видел при гуглёжке 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И совсем другое дело. Кэш теперь и работает и обновляется, и нихуя железака не пердит.
>>1598310Да, всегда. Иначе у тебя весь код будет состоять из "ну там всего немножеко дублирования, ну можно же", потому что ты привык писать херню
ПАЦАНЫ ПОМОГИТЕВ этом случае GetHashCode у t1 и t2 будет одинаковым, у меня это 346948956Если у структуры имеющей 2 поля будут одинаковые значения, GetHashCode генерируется одинаковыйПочему так? Неужели для такой просто структуры реализация GetHashCode использует xor?
>>1598390https://github.com/dotnet/runtime/issues/4414Судя по обсуждению, положняк такой: влез в кастомные value type'ы, пердоль до конца, реализуй свой корректный хеш
>>1598445https://devblogs.microsoft.com/premier-developer/performance-implications-of-default-struct-equality-in-c/В догонку
>>1597816>фишка coreЭто для кого-то важно, но я вот не могу оценить невозможность писать на C# 8.0 нормальные поделки для екселя. И перспектива остаться на NF 4.8 как-то не радует. Это не фишка, а сужение возможностей языка и платформы, пока что.>Для EPPlus офис не нужен. Со всеми преимуществами этого решения.Для генерации выгрузок в ексель на сервере - это плюс. На этом пожалуй плюсы заканчиваются. Офис есть на компьютере у 100% целевой аудитории любых поделок для офиса.
>>1598390Потому что если у объектов одинаковые хэшкоды, то это не обязательно значит, что они идентичны. Но вот если у тебя Equals при сравнении двух объектов возвращает true, то это означает, что у них должен быть одинаковый хэшкод. Это важно запомнить, иначе будешь смешить всех постоянно и хуйню в коде делать.
>>1598539>100% целевой аудитории любых поделок для офиса.Нет, ты не учитываешь фирмы, пользующиеся лицензионным ПО, в которых ради экономии 70% сотрудников сидят на всяких либре офисах и т.д.
>>1598312Если не хочешь чтобы компареры работали при каждой прогрузке страницы,то там проще сделать>Dictionary<string, List< string > >и не себе ебать мозг с этими массивами и объектами.хэш ответа - > массив хэшей постов.А сами посты, по хэшам - они и так в кэше есть.
>>1598806Ну так совсем другое дело.А то я ориентировался на тип метода, и если он возвращает массив постов,значит и кешировать надо массив постов.Ну и наебался же я с этими массивами и объектами.С таким словарём, реально - намного проще. Эдакий маленький кэш.Сунул ещё один метод обновления списка по хэшу, и в PutPost, где true возвращается вызвал его,и ещё в DeletePost очистку присобачил - вообще красава, шустрит борода теперь, даже камень не плавится.
Аноны у меня дилемма. Есть 2 сервиса. Один управляет настройками, сохранение, загрузка, выдача загруженных настроек и т.п. А есть сервис который производит регистрацию пользователя.Куда мне передавать первичные настройки пользователя при регистрации, в сервис настроек или в сервис регистрации? И тот и тот сервис использует полученные данные от пользователя.
Не хочу читать книжку по ASP.NET. Вообще не очень люблю всякий веб. Но мисос говорит, делай лабу на Net Core 3, в виде клиент-серверного приложения для какой нибудь хуйни. Я, мягко говоря, вообще в веб не ебу. Что бы мне такого почитать лёгкого для понимания /вообще/ по этой теме? Даже не по самому C#, а просто чтоб понять, чего от меня хотят. Может, курс какой есть на микрософтлёрне или что-то типа того? Только чтоб совсем для людей, а не для веб-программеров, которые просто учат новую веб-технологию
Анончики сможет кто-нибудь помочь с лабой?Необходимо реализовать на формах или можно на впф задачу потребительского выбора, её лучше делать через парсер математических выражений, но лучше обойтись костылём 3 пик, могу скинуть 1к за неё,вот сам сайт где можно посмотреть как это работаетhttps://axd.semestr.ru/econ/consumer-choice.php
>>1599564Это называется когда обосрался со сроками и костыль, который проще и быстрее реализовать и впрямь будет лучше
Что прочитать про архитектуру клиент-серверных приложений ньюфагу, который хочет таки сделать свой супер-пупер TCP-сервер на голых сокетах, чтобы он был удобный, модульный, расширяемый и масштабируемый?
Как задать максимальный размер данных для HTTP POST request?Хочу 50 мегабайт JSON'a в одном POST-запросе отправить... Чё-то не фурычит. Поговаривают, что лимит 4096KB. Как его убрать??
>>1599609>лимит 4096KBТогда бы ни одна страница не грузилась, не говоря об изображениях. У тебя скорее всего соединение закрывает до того как вся информация передастся, из-за таймаута, например.
>>1599609> Хочу 50 мегабайт JSON'a в одном POST-запросе отправитьБрат, братишка, зачем тебе столько? Если тебе надо 50 метров json вываливать, то, скорее всего, ты что-то делаешь неправильно.
>>1599730Сам посуди, в реалиях современного интернета это займёт 30 секунд в идеальном случае, а может и больше минуты быть. Что сделает юзер, будет смиренно ждать, или свалит со словами "не грузится, хуйня какая-то"? Конечно, в некоторых случаях это может быть оправдано, но таких не слишком много.
>>1599640В grpc 4 мб это лимит, например.>>1599609Проверь сначала, что сервер тебя не пошлёт нахуй такими размерами.>>1599736Accept-Encoding: gzip и вместо 50 уже около 7.
>>1599760>grpc Ну и? Он ведь не про специализированные фреймворки говорит, а про стандартные библиотеки.
>>1599751>>1599736Я другой анон. Но это может быть корпоративная ебалайка, где и 50 мб это норма. Лучше, конечно, разделять и лениво подгружать, если это для таблицы используется, например
>>1599640>Тогда бы ни одна страница не грузилась, не говоря об изображениях. Изображения - это 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.>>1599711>Брат, братишка, зачем тебе столько? Если тебе надо 50 метров json вываливать, то, скорее всего, ты что-то делаешь неправильно.Ща расскажу...>>1599730>Какое-то странное мнениеДвачую. Поток FullHD забирает 25 мегабит/сек, а тут какие-то 50 мегабайт миллипиздрических, в 2к20м-то году...>>1599736Всё просто. Вот здесь: 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.Как бы так и записать данные, и не обрабатывать их методом (если их слишком дохуя), и ответ клиенту - поскорее отправить?
>>1599966>The MaxRequestLength property specifies the limit for the buffering threshold of the input stream.Это buffering threshold, а не лимит на размер реквеста в целом. Поэтому тебе его возможно уменьшить надо, раз у тебя outofmemoryexception вылетает.
Пацаны, есть я, недо .net core джун, хочу пойти попробоваться на работку(джун\трейни). Есть какой-то общий список вопросов по asp.net core, ef и т.п. ? Нашёл только чувака на dou который себе список на мидла составлял https://docs.google.com/spreadsheets/u/1/d/1Jny9yIZydos19Yx0cFaHE-_3adGIYzq-cnyAhofAHiY/htmlview Если кто-то джунов собеседовал, или сам недавно проходил, можете рассказать, что спрашивали и т.п.?
>>1600302Вопросы норм на мидла, вот только с 90 строки справа в углу какая то хуйня прилипла у этого додика. Пусть уберет ее и не позорится, а то мать сам знаешь, что с ней будетОсобенно проиграл с Web securityОбзор методов и техник взломаDDOSXSSFishingSQL InjectionBroot forceExploitsСканеры уязвимостейПриходишь такой значит .NET-тчиком на собес, подходит к тебе прыщавый анон с /pr/, которого заигнорили в треде с алгоритмическими задачками и говорит - "Кароч нужен забрутать или зафишить логин/пасс шкуры с ВК, смогёшь?"
>>1600245Я, короче, прямо при чтении потока, в TcpClient.cs, решил парсить JSON из строки readData,и добавлять посты по одному, блоками по 4 мегабайта (4096 KB),и сразу же обрезать, блоками, всё это говно, и никуда его не передавать ни в какой HttpServer ни в какой hanler-хуендлер.А то оно по нескольку раз копируется, гоняется туда-сюда,и вот так, этими запросами ебучими и заДДоСсить могут, нахой, блеать!
Использование везде где только можно дженериков - зашквар? Просто ничего не могу с собой поделать, так нравится писать: ClassA<A,B,C,D,E,F> : BaseClassA<A,B,C,D,E,F> where A : Zalupa where B : Pizda... Получаю какое-то извращенное удовольствие.
>>1599280интересно, спасибо. Этого я почему-то не нашёл. Наверное потому что из азуры смотрел, а там курсы вроде "деплоим приложения асп на азуру" и прочее. А есть что-то ещё более базовое про сервер-клиент отношения среди приложений, запросы и прочее? Или тут есть эти основы тоже?
>>1600717Core взлетит. А Моно уже летает, хоть и не супер высоко, но более чем часто встречается в коммерческой разработке (не говоря уже о Unity)
>>1600562>Этого я почему-то не нашёлЯ до сих пор не понимаю, как там что-то искать. Есть doc, есть mdsn, может ещё что есть. С заглавной страницы оттуда вообще хер что найдёшь. 100 кликов накликаешь и не факт, что хоть до чего-то нужного доберешься. Если в выдаче поисковика нет ссылки на нужную страницу, считай, ты её не найдёшь.
Должен ли синьор уметь читать и писать CIL код? Стоит ли трать время на то, чтобы с этим разобраться?
>>1600796Читать должен даже крепкий джун, не говоря о мидлах и сеньорах. Сеньор помимо чтения должен и писать, потому что есть ситуации из которых иногда можно выйти при помощи редактирования CIL кода.
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.
>>1600814>редактирования CIL кодаДвачую. CIL код редактировать, убирая сопли за компилятором, приходится часто. Раньше, когда не понимал его, не обращал внимание. Но когда понимаешь как это работает, видя кучу вопиющих неоптимальностей, то уже не можешь просто пройти мимо. Уж как минимум бесконечные копирование структур при доступе к свойствам нужно убирать в критичных местах. Хотя в коре вроде эту хуйню почти везде поправили. Если производительность играет роль, то CIL код будет редактироваться так или иначе. Отдельные критичные функции на нём и пишутся. Ну и знать Си тоже желательно, во всяком случае в нашем проекте, т.к. зачастую многие тяжелые вычисления проще написать на Си и в шарп уже сишную либо подключать.
>>1600893Лол. Вот серьезно просто лол. Просто объясни, зачем писать на шарпе в таком случае-то? Шарп изначально позиционировался как язык для замены жавы только под винду, а достоинство жавы всегда было что можно за месяц нахреначить что-то рабочее, если ты лезешь в IL, то ты изначально не тот инструмент для своих задач выбрал.
Существуют ли кейсы, когда DispatcherSynchronizationContext может пригодиться при написании кода для WPF?Ведь асинхронные операции, если не отключать использование контекста просто дедлочатся. А для обновления UI из другого потока можно банально использовать Invoke.
>>1600844бородатая шутка из мира холивара Java vs .NET хоть бы перевел, вкатыши /pr/ не умеют в ангельский>>1600893>>1600814двачую адекватов, но они забыли добавить, что помимо 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На собесе джуна или интерна обязательно это спрашивают. Это я вам инсайды палю, те вопросы типо "Как триггерится статический конструктор в сборке" или "Апкасты вариативность" - это уровень даунов как бы, нужно знать основы, чтобы браться за что ни будь более высокоуровневое.Дерзайте.
Кто на ASP.NET Core react JS пердолил? React из WebApi хватает только private static readonly коллекции? И как в такие коллекции пушить данные? Может тутор посоветуете какой? https://reactjs.net/ - тутор по Core говнщие редкое
>>1601320>бородатая шутка из мира холивара Java vs .NETОчень тупая шутка. .NET Core лучше JVM по всем показателям. Это самый универсальный из всех современных стеков. В нем собрано лучшее из разных языковых платформ. Да и язык C# лучше Джавы примерно как конфета вкуснее говна.
>>1600906>как язык для замены жавы только под виндуясно, не пиши пожалуйста больше>>1601990>.NET Core лучше JVM ты сравниваешь виртуальную машину с библиотекой? Земля тебе пухом, долбоеб>Да и язык C# лучше Джавы примерно как конфета вкуснее говна.Ты вообще вкурсе, что решетки и джава имеют практически идентичный синтаксис? Только у решеток свой ряд высокоуровневых реализаций, а у джавы другой. Пиздец тут долбоебы сидят, даже хуже, чем в треде джавистов
>>1602218>нет структур>нет кортежей>нет in/out модификаторов параметров>даже ебанного goto нет>Ты вообще вкурсе, что решетки и джава имеют практически идентичный синтаксисМань, возвращайся в свой тред джавистов и не высовывайся из этого загона.
>>1602230маня, пишет за кортежи 2ым пунктом, которые реализовываются врапером в 2 строчки и видимо не знает за Kotlin. Типикал /pr/ вкатыш. Как бы это смешно не звучало, но зная Java можно сесть и педалить на # и наоборот, так что можешь не копротивляться за свои любимые решеточки даже за linq не написало, ничтожество ебаное И кто тебе сказат, что # > java? Препод из твоей шараги? Если да - плюнь ему в ебало. Знаешь, почему мелкософт прогнулись под кроссплатформенность? Потому, что ебучий MsSql со своим IIS будет стоить в десятки раз дороже, чем Oracle/another relation DB. Хотя куда тебе такое знать, тебе вначале вопросы собеса нужно выучить
>>1602249>вторым пунктомШизик, где ты там пункты увидел? Перечислил всё что вспомнил, если интересует больше - гугл тебе в помощь. Только заранее подготовь свой манямирок, прочитав пару мантр и прихвати статистику популярности в качестве иконки. >почему мелкософт прогнулись под кроссплатформенность?Потому что это тренд современности. Хотя зачем объяснять что-то шизику с двузначным IQ, который судит о языке по популярности запросов в гугле/стэковерфлоу, блять. Тебе самому не смешно? Да, легаси говна больше на жабе, да у неё настолько хуевая документация и стандартные библиотеки, что вместо того чтобы прочитать её и использовать их, макаки бегут в гугл и на стэковерфлоу. И почему-то именно это, в манямирке шизика, является плюсом языка.
>>1602253>всё что вспомнил>не написал LINQ>не написал за ORM из коробки>не написал за лямбды>не написал за management code>не написал за GC>не написал за методы расширенийты думаешь с тобой есть смысл о чем то дальше спорить? Ты кроме статей C# vs Java что ни будь видел?>тренд современностипопадешь на свою первую РАБотку (хотя есть сомнения по этому поводу) узнаешь, как работает тырпрайз>по популярности запросов в гуглеhttps://www.codingdojo.com/blog/the-7-most-in-demand-programming-languages-of-2019Почитай, чтобы твой маня мирок не трескался лишний раз.>хуевая документациявроде и оскорбить не хочу, но блять на чем ты основывался, когда высирал это?Периодически захожу в этот тред подкинуть батхерда. Решеточники так копротивляются за свой язык забывая, что писать можно на чем угодно и где угодно, главное чтобы это решало задачи, зарабатывало копейку и было эластично на рынкемимо анон, в стеке которого # 6-ой по счету язык
Вижу здесь, регулярным выражением, извлекают 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\"}]}]]";
>>1602318>и текст ещё какой-то там, внутри строки, до или после объекта. Допустим, это заголовки запроса.
>>1602218>ты сравниваешь виртуальную машину с библиотекой?Ты далбаеб? .NET Core это модульный рантайм. JVM как я понимаю голимый легаси монолит. А вот .NET Core модульный, потому что современный.Что такое библиотека? Код в файлах. Отличие библиотеки от виртуальной машины? И там и там код в файлах.>Ты вообще вкурсе, что решетки и джава имеют практически идентичный синтаксис?Ты вкурсе, что C# имеет совершенно другую семантику? У JS и Си тоже одинаковый синтаксис, дебил.>Только у решеток свой ряд высокоуровневых реализаций, а у джавы другой. Первая версия C# или вторая, не помню, была написана на Хаскеле, разработчиками компилятора GHC, профессорами, у которых есть премии Тьюринга, и другие премии, писалось в Microsoft Research. И по сей день там трудятся лучшие спецы в CS. Кто писал и пишет Джаву? Индусы-говнокодеры.
>>1602249>IISТо-то блять IIS долгие годы был самым популярным в мире веб-сервером, с долей рынка 70%. Сосать. Теперь есть Kestrel. .NET Core кстати ебет Netty только так. В два раза быстрее его. Это тот Netty, который долгие годы был одним из лидеров по производительности.
>>1602337>.NET Core это модульный рантайм>модульный рантайм>JVM как я понимаю> как я понимаю>понимаю>JS и Си тоже одинаковый синтаксис>Кто писал и пишет Джаву? Индусы-говнокодеры.Такую тупость или толстоту не вижу смысла обсуждать. Если ты это писал серьезно, то лучше рот лишний раз не раскрывай о том, чего не знаешь, чтобы ничего не залетело>>1602338> IIS долгие годы был самым популярным в мире веб-сервером, с долей рынка 70%https://www.datanyze.com/market-share/web-and-application-servers--425/microsoft-iis-market-shareв твоем маня мирке 70%? Ты хоть знаешь, сколько стоит перенести автопарк на ШINDOWS для IIS? Ты знаешь ценники на IIS от мелкософта? Зачем ты, как и другие дебичи кидаетесь какими то цифрами, если не плавали в этом?>>1602339>SOSOF может быть? Судя по тому, что высирают в этом треде, # могут быть только популярные в шарагах
>>1602318>>1602319И где ты это применять собрался? Парсишь сайты в которых текст смешан с JSON и при этом никак не размечен?
Вообще не понимаю, как люди работают с впф. Я за год научился только пилить простейшую хуйню, копировать чужой код и дорабатывать его. С нуля я хуй бы что написал.
>>1602583Двачую.Вин.формы - очень просты и понятны, даже не программисту.Зная их я как-то пробовал перескочить на впф. Думал, должно быть интуитивно всё понятно, хотя бы в какой-то степени. Создал в студии голый проект впф, добавил мышкой кнопку на форму. А потом пару часов пытался привязать к нажатию этой кнопки вызов метода. Но так и не смог продвинуться ни на шаг. Не гуглил.
>>1602597Привязка-то осваивается в конечном итоге, но вот всё остальное - пиздец, впф так и остался навечно сырым, многие фичи просто нереализованы или они есть, но чтобы ими воспользоваться, нужно рвать жопу и писать много кода, не говоря уже о том, что ты буквально через раз натыкаешься на какую-то недокументированную залупу, ради которой приходится неистово гуглить и дай Бог, чтобы что-нибудь нашлось.
>>1602601Фронтенд, а вернее гуй на WPF — это реально пиздец. Я тоже его не понял, как и аноны выше. Dependency property, сотни вложений в одном компоненте, какая-то поебистика. После этого стал интересоваться фронтом vue, и теперь кайфую. Просто пилишь одностраничный сайт, и пользователи через него работают
>>1602457Песпруфные кукареки. .NET Core это рантайм. Докажи обратное. IIS много лет был лидером в веб-серверах, пока Nginx не появился, а появился он не так давно. SO сам написан на C# и C# долгое время был там самым популярным тегом. Сейчас на 3 месте, хорошо, согласен. В русскоязычном кстати до сих пор самый популярный тег.
Спарсил 2к вакансий с хх по запросу C#В 428 есть упоминание о высшем образовании.В 710 есть упоминание о английском языке.В 128 упоминаниях о junior.В 256 упоминается о WPF и только 24 упоминания о Windows form.Хуй знает что с этим делать но вот так.
Решил обмазаться DI, это нормально, что конструктор распух до 6 параметров. И где проходит та граница, когда уже хватит инжектить. И есть ли какие-то приемы по уменьшению количества зависимостей (слышал, что сервислокатор это антипаттерн и вобще фу-фу)?
>>1602218> не пиши пожалуйста большеНу ты и мудак. Вот серьезно. Почти всю историю своего существования сам M$ позиционировал шарп как жаву, но под свою экосистему. Так было ровно до того момента, пока они не осознали, что проебали все рынки, кроме десктопа и на пост гендира не забрался индус, который теперь заигрывает с опенсурс сообществом. Блядь, ты просто посмотри, какие задачи на дотнете вплодь до середины десятых решались, пока не стало понятно, что жизни на десктопе нет, а под мобилки на шарпе не покодишь. Пиздец, пришли жаваскриптеры, которые только кору застали, еще и выебываются. Пидорас ты, вот что я хочу сказать. Причем мерзкий такой, выебываешься на пустом месте. Тьфу на тебя, мудила.
>>1603113Выделяешь контекст (фасад) для общей хуйни по типу логгеров или https://blog.ploeh.dk/2017/02/02/dependency-rejection/>>1603013Пользы в этом нуль, так как много вакансий пишутся хрюшами на отьебись, а на деле будет другой стек технологий.
>>1602996>.NET Core это рантайм>SOтак это ты один и тот же дауненок, пишуший мне по 3 поста. А я думал у вас "Сила трёх".>В русскоязычном проиграл в голос. Сейчас ru SOF почитать, эх.>.NET Core это рантайм.NET (как и Core) - это фреймворк. Ты хоть понимаешь значение слова "runtime"?>Докажи обратноеСудя по постам, что ты высрал - ты не знаешь банальных основ работы .NET. Рихтер тебе в руки, пусть он тебе доказывается>IIS много лет был лидером в веб-серверах>Песпруфные кукарекиписал вышеИди готовься короче, слабый еще
>>1603195Таки не сила трёх, походу "Сила двух". Ок, давай и тебе поясню за решетки.>Почти всю историю своего существования сам 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. Но вся экосистема разработки - это фирменный стиль мелкософта - монополизация, коммерция. Поэтому они и страдают. И вы тоже. Как бы все.
>>1603233>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>>1602250Не осиливший дискреточку или логику?
>>1603236Заметил, что у жабистов есть специальная олимпиада обсирать шарп, чем-то похожи на гофистов. В обратном направлении - редкое явление, ибо всем похуй.
>>1603245сижу в двух тредах, отвечаю с такой же периодичность туда и туда. Никогда такого СВЧ и рвания жопы за язык не видел, как тут. Такое ощущение, что мелкософт создает уникальный продукт, как панацению. У меня для вас плохие новости на этот счет>>1603247ты уже заселфовнился, назвав .NET Core рантаймом. Можешь теперь не копротивляться
>>1603253>назвав .NET Core рантаймомВсе однострочные посты начиная с 1603197 мои. Выше нет моих постов.
>>1603253>Никогда такого СВЧ и рвания жопы за язык не виделТут много студентов сидит, которую всякую хуйню несут.
Как в виндовую консоль шарпом графику рисовать? Хочу не символы, а пиксели рисовать. Жуть как хочу. Не знаю как.
>>1603253> ощущение, что мелкософт создает уникальный продуктНо ведь так и есть. Лучше шарпа в мире нет. Еще бы не был так привязан к .net'у, цены бы не было.
>>1603290Знаю только два способа:1. Нормальный - рисовать псевдографикой, она же ascii art2. Ненормальный - получить хендл окна через винапи и рисовать поверх самого окна консоли, используя винапи и любую графическую либу
>>1603297Второй вариант мне кажется подходящим под то что я хочу делать. Как это сделать? Хотя бы скажи где смотреть, а то я студент, который окромя калькулятора в консольке ничего не делал, и не умею правильно гуглить.
>>1603303Не знаю, почему он тебе кажется подходящим, если намного лучше и проще использовать любую либу, которая умеет рисовать окна, коих дофига. Мне лень расписывать, например https://stackoverflow.com/a/43788951
>>1603314Хз, не посещаю жаба тред. Зато в более публичных местах больше всего жопа горит у жабистов и гофистов, непробиваемая стена своих убеждений.
>>1603276это понятно судя по задачам, которые они пытаются решить в этом треде. Но их препод долбоеб, потому, что он пытается научить их программированию не заложив фундамент, что разработчик - это профессия не привязанна к языку, а к решению задач. Это тоже самое, что учить строителя только ебашить молотком и говорить - вот этот инструмент заебись, все остальное - говно.>>1603293>Лучше шарпа в мире нетЕсли когда ни будь устроишься на работу и тебя посадят на легаси, после 1-2 месяцев работы ты будешь проклинать решетки (особенно если это будет старый ASP.NET) и молить, чтобы кинули на другой проект, пусть даже не .NETСо многими такое случается, кто приходит на аутсорс, особенно если он не привязан к проектам, а педалит на фриланс биржах. Если есть бенч, не удивляйся, если ты, обученный шарпику, будешь пидалить еще на WP/PHP/Java/etc. >>1603245это потому, что джависты борды не пишут хуйни за то, чего не знают наверняка. Хотя там тоже студентота сидит, дрочащая алгоритмы. Зато тут - мало того, что нихуя не знают, так еще и пытаются тебе это навязать. Комьнити двача Java > C#. Однозначно.
Я студент, нам препод сказал буим 100к получать, а я спросил, а почему вы не програмист тогда и меня выгнали из айдитории
>>1603327проиграл. На самом деле жиза - на курсах может прийти выещик за килобаксы, а в институте, а тем более в шараге - только ебаные неудчники сидят
>>1603327Хз, у меня один из преподов, владелец своей ит компании, говорил, что ему нравится просто преподавать. Зарплата - заправить два раза свою машину. Еще жену свою зачем-то посадил на преподавание.Другой препод, параллельно работал в компании, шутил "не умеешь программировать - учи программировать".Остальные преподы преподавали какую-то устаревшую хуйню. Им было лет за 50.
>>1603325>проклинать решетки (особенно если это будет старый ASP.NET)Мне синтаксис c# не нравится, слишком много бойлерплейт хуйни приходится писать. На некоторых проектах были ебанутые архитекторы. На текущем проекте есть silverlight и vbs. Вебформы - это еще повезло.У меня даже иногда получалось продавливать свои решения: бизнес любит цифры, а не какие-то хотелки.
>>1603333>3333зачем далеко ходить, ведротон - вкатывальщик. Хотя заливает говно в уши, что он гуру>>1603342>бизнес любит цифры, а не какие-то хотелки.все хотелки - это желание сэкономить. Весь тырпрайз, все задачи (за исключением стартапов) - это бизнес. В бизнесе нужна автоматизация, чтобы не раздувать штат, которым нужно платить в разы больше, чем за софт.>>1603334это энтузиасты. Сам знаю пару таких. Но это скорее исключение из правил
>>1603342Хотя, вот эти кандидаты выглядят неплохо, но в фшарпе лучше https://www.calvinallen.net/csharp-8-is-old-news-onward-to-csharp-9/Все равно подумываю нахуй свалить с дотнета.
>>1603352решетки двигаются в том же направлении, что Java. Сейчас на джаве порой код на столько не читабелен, что не то, что в логике разобраться, нужно разобраться в коде.
>>1603359Я столько дерьма повидал, что мне уже как-то похуй:- Смотрю код как-то так https://youtu.be/dlrjDvS7wxo- Отвлекаю товарищей от работы и снова повторяем процесс из видео- Игнорирую хуево написанный код, который могу исправить- Если используется какая-то инородная хуйня, скажем es+kibana на жабе или тензерфлоу на питоне, то мне проще найти место бага, завести тикет и больше нехуя не делать- На инвестигейт отчитываю дохуя времени, хотя хватает пары минут, максимум час, чтобы понять проблемы- На решение трачу несколько дней, даже если там написать надо строк 10- На митингах с умным лицом рассказываю как охуенно исправил проблему
>>1603370Шарп будет обновляться вроде каждый ноябрь по принципу: нечетная версия - не lts, четная версия - lts. Рекорды в шарп давно добавить хотели, но пересрались из-за синтаксиса.
>>1603373А почему именно ноябрь? Из-за no nut november, чтоб ничего не отвлекало от изучения новых фич?
>>1603368пофиксишь за 10 минут - заплатят $100/d. Подкинут еще тасковпофиксишь за 480 минут - заплатят $100/d. Не подкинут тасковНа программистов вайнят, что ленивые и хитрожопые. Зато осилившие логику.
>>1602460Не, всё просто. От клиента, на сервер поступает POST-запрос, с headers и JSON'ом. Программа - парсит JSON, но при попытке прочитать 50 мегабайт JSON'a вылазит OutOfMemoryException.Было решено записать JSON в файл, но он пишется с headers. Надо сматчить теперь всю эту хуйню, но не полностью, оно не полезет и опять всё зависнет нахуй.Надо, короче, по блокам читать JSON, и из фрагментов вытаскивать записи регулярным выражением каким-то, а фрагменты эти, ебучие - клеить снова и дальше парсить и скармливать - блоками. Как-то так.
Кто ни будь писал на ASP.NET Core + react JS? Как CRUD хуки делать? Как роутинг происходит? Почему триггер идет именно Index? Где вообще тригер первой страницы? Что это за хуйня индусов? Я только начал пилить эту хуйню, ни документации в интернетах, ни туторов (индусовский высеры не в счет). https://reactjs.net/tutorials/aspnetcore.html - вообще залупень какая то, пытался step by step сделать - нихуя не работает. Пиздец блять. Мелкомягкие совсем охуели такое говно высирать? Или адаптивность со всем, что не мелкософта не ок? Бьюсь на этой залупой неделю, не могу обычный CRUD реализовать. Это что за хуйня вообще? На пыхе или пайтоне это делается щелчком пальцев, на .NET ритуал какой то нужно провести или на хинди заговорить? Блевать хочется...
>>1603243Какую нахуй дискреточку и логику?! Еще про теорию алгоритмов вспомни. Обосрался, а теперь с темы соскакиваешь.
>>1603253Еблан, .NET Core это в первую очередь рантайм. А уж что там вокруг не важно. Естественно там есть некая SDK обвязка, вроде консольного интерфейса, API, и других необходимых штук. Но в первую очередь это рантайм, как и в доке написано, куда тебя ткнули носом как котенка.
>>1603498Делаешь фронтенд, вешаешь его на nginx на какой-нибудь адрес. По этому адресу заходит клиент, ебать его в рот.Делаешь бек и тоже на как-нибудь адрес вешаешь. Общаешься через запросы, данные в json пакуешьВ итоге у тебя независимый фронт и бек. А то, что предлагает шаблон — я тоже не понял. Я, правда, скачал для vue из галереи Microsoft. Там vue приложение было в папке wwwroot, которое начинало компилиться при старте отладки Только нахуя? Не понял я этого прикола. Во-первых, IDE удобнее разные использовать. Во-вторых, как эту кучу дерьма деплоить — непонятно
>>1603527хочу фронд на react, бэк на .NET Core. Бэк даже уже частично написан, а вот слепить в кучу - хуй. Не могу разобраться, как базовый функционал CRUD-ов реализовать, как routing настроить. В ASP.NET MVC5 как то блять и то проще было
>>1603583В MVC было WebAPI. Так и здесь. Пишешь апишку и тестируешь, например, посманом или фидлером. Потом, отдельно от асп, пишешь фронт на реакте.
Уважаемые, решаю детскую задачку вот тут https://acmp.ru/index.asp?main=task&id_task=711Подскажите пожалуйста, почему такой вариант проходитhttps://dotnetfiddle.net/yjJ6uyа такой не проходит и даёт runtime errorhttps://dotnetfiddle.net/aOVclhПо сути вся разница в том, что я хотел сократить код просуммировав элементы массива через foreach, чтобы не вводить дополнительную переменную, хранящую количество элементов в массиве.
>>1603739Работают оба кода. Вот только число m всё же надо хранить, иначе программа будет делать не нужную работу. Потому что если m = 3, как в примере, то возвращать можно сразу первое имя сумма кругов которого равна m, в твоём же случае программа продолжит своё выполнение и сделает лишнюю работу.
>>1603768>Работают оба кода.Вот почему-то второй вариант не пролазит в компилятор сайта>>>1603768>Вот только число m всё же надо хранить, иначе программа будет делать не нужную работу. Потому что если m = 3, как в примере, то возвращать можно сразу первое имя сумма кругов которого равна m, в твоём же случае программа продолжит своё выполнение и сделает лишнюю работу.Но ведь m не показывает ничего, кроме количества кругов, а оно у всех будет одинаковое. Как мне кажется это избыточная информация, если используешь foreach.
>>1603793По количеству кругов ты знаешь минимальное количество которое у тебя может получиться при суммировании. Возьми из примера данны, твоя программа будет парсить все данные , а если учесть if (sum == m) return name то она остановит своё выполнение на 4 участнике и выдаст правильный результат.
>>1603518>Какую нахуй дискреточкуВот такую, как на пике. Если ты называешь .NET Core рантаймом и в тоже время делаешь перечисление ее компонентов, то ты не понимаешь сути библиотеки. Пример для даунов (для тебя) говорить, что шестеренка часов - это часы, т.к. она в нее входит.>>1603519>.NET Core это в первую очередь рантаймтак это рантайм или в первую очередь? Ебать у вас маня-мирок трескается, когда мокаешь мордой в говно. И зачем ты мне пишешь по 2 коммента?>>1603519>.NET Core это в первую очередь рантайм>А уж что там вокруг не важноесли бы ты знал компоненты библиотеки, ты бы сейчас так не копротивлялся.>там есть некая SDK обвязка, вроде консольного интерфейса, API, и других необходимых штукCLR via C# - пока первую главу не пройдешь, не возвращайся. И зачем ты пишешь, такую дичь, как>ткнули носом как котенка.когда ты сам прекрасно понимаешь, что ты нихуя не знаешь и пытаешься доказать тому, кто тебе делает замечания? Это такие маневры?
Привет аноны. У меня есть api которая должна получать путь к локальному файлу и фронт в котором должен быть выбор файла и получение его локального пути. В это и проблема. Как через браузер получить полный путь локального файла?Может отправлять серверу файл, чтобы тот его скачивал у себя и получал нужный путь?Как быть?
>>1604050Если эти файлы включены проект и ты юзаешь .NET core - то это статические файлы. Добавляешьapp.UseStaticFiles(new StaticFileOptions { FileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory(), "MyStaticFiles")), RequestPath = "/StaticFiles" });И по пути получаешь содержимое фолдера
>>1604063нет не включены. Бэк и фронт в разных местах будут находиться. Нужно с фронта получить, как-то полный путь файла и отправить его в бэк. Так как это не возможно, надо как-то с фронта на бэк отправлять файл и сохранять на сервере, вот только как
>>1604067https://docs.microsoft.com/ru-ru/aspnet/core/mvc/models/file-uploads?view=aspnetcore-3.1Пробовал как тут, но OnPostUploadAsync не работает. В postman в body->binary не вызывается апи
>>1604132Нумерацию проебали, шапку лет 5 не обновляли, тред скрывали из ленты, а его перекаты интересуют.
Превед всем в этом чятике.Призываю знающих анонов.Нужно ли окончить ВУЗ, чтобы стать хотя бы джуном-решёточником?Правда, что джуны всегда ебуцца с вебом?Кроме веба для джуна на решёточках ничего нет?
>>1604027хочешь сказать в .NET core нет CLR/SDK?Вот это у .NETчиков тусовочка собралась. Один фреймворк рантаймом называет, второй пищит "# лушше джавы". Ну охуеть тут клуб интересов.Может парни ну его нахуй этот ваш .NET, может лучше в версточку? Теги, селекторы там, может на препроцессоры перейдете. Возможно (но не точно) когда ни будь и до JS-а дойдете. Бросайте вы это, зачем вы мучаетесь...
>>1604583В этой книге почти все главы неактуальны, за 7 лет много чего изменилось, но думать ты можешь, что хочешь.
Парни, не могу нагуглить я дибил, мне нужно написать свой генератор псеводозначений ге можно найти инфу?
>>1604614Зависит от ожидаемого результата. Кнут описывал одну из реализаций. Вся идея не криптостойкого алгоритма в нахождении формулы от сида и взятии остатка от деления. Например: https://pastebin.com/WwTHjf0RТакие формулы удобно проверять рисованием точек на 2д плоскости. Если на изображении нет очевидных узоров, а у стандартного Random вроде ромбы, то ты нашел правильную формулу.
>>1604652Мне лень чего-то тебе доказывать по пунктам, если конечно у тебя нет, чем меня можно мотивировать.
>>1604668конечно есть чем - ты пиздабол. Такой же, как и остальные высерки .NET треда, которые пишут не понимая того, о чем они пишутЗамотивировал?
>>1604681чего еще ожидать от .NET-чика?Зашел Java-Бог раз в кое веки почитать, что там о ваших новомодных Core пишут. А оказалось, что еще самому даунят учить пришлось. I'm not surprised
>>1586030 (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]чтобы записать их по отдельности, в цикле?
>>1604785>как грамотно нарезать большой byte[] bu>на маленькие блоки new byte[buffer_size]>чтобы записать их по отдельности, в цикле?Под выражением "грамотно нарезать", подразумевается создание подмассива байт, таким бразом, чтобы не копировать 500 зеттабайтный byte[] bu этот ебучий.
>>1604785>>1604789>Можно ли записать блоками?Да.>Если да, то как грамотно нарезать большой byte[] buна маленькие блоки new byte[buffer_size]чтобы записать их по отдельности, в цикле?Без задней мысли, берёшь и нарезаешь: https://rextester.com/FHNR75546>Под выражением "грамотно нарезать", подразумевается создание подмассива байт,>таким бразом, чтобы не копировать 500 зеттабайтный byte[] bu этот ебучий.Копируется только блок, не весь массив.Хотя хз, может быть он всё-же обрабатывается весь, пока копируется.И это... try-catch ещё добавь где stream.write, а то оно не всегда может записываться и ошибки бить.В цикле пытайся писать, если кетч - Thread.Sleep.А если ошибок 500 наберётся, просто выходи из цикла.
>>1604813Всё-равно, иногда, при попытке записать данные в поток - вылазит вот это:>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 использовать?
>>1604822Там вон, по твоей ссылке, чуть ниже, есть метод асинхронной записи: 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.УМВР.
Посоны, правда ли, что Неткор значительно обошёл по производительности Жаву?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ГОРЖУСЬ ДОТНЕТОМ
>>1604023JVM это что? Ты щас скажешь, что виртуальная машина. Чем .NET Core отличается? Да ничем ёпты. Только внутренним устройством. Компоненты можно вынимать, менять, так задумано. В JVM все прибито гвоздями, ну разве что компилятор как компонент.
>>1604023>>там есть некая SDK обвязка, вроде консольного интерфейса, API, и других необходимых штук>CLR via C# - пока первую главу не пройдешь, не возвращайся. И зачем ты пишешь, такую дичь, какЧиво блять? Когда книгу писали .NET Core еще в проекте не было. Еблан, доку почитай. .NET Core состоит из рантайма CoreCLR, SDK, в который не помню что входит, а гуглить неохота, компиляторов для C#, F#, VB, и т.д. Я не все компоненты перечислил.
>>1604023>когда ты сам прекрасно понимаешь, что ты нихуя не знаешь и пытаешься доказать тому, кто тебе делает замечания? Это такие маневры? Слыш ты, джявя-даун, ты мне про .NET будешь лекции читать? Я его знаю лучше тебя. Ты хоть хелловорлд на .NET Core на Линуксе написал?
>>1604023>>1604866Ты блять хоть порвись, но .NET Core это в первую очередь рантайм. Это рантайм для управляемого кода. Без него нельзя запустить C# код в Линуксе например. Ну можно через Mono по старинке, но это костыльная история получится. .NET Core у любого нормального человека ассоциируется с рантаймом, как и JVM. Помню на винде когда сидел, бывало что нужно было Java-приложения запускать, требовалось установить JVM или JRE. И туда и туда входит рантайм. Похуй что JVM еще имеет некое SDK для разработки, основная ее функция это рантайм, выполнять код.
Посоны, хочу написать на связке .Net Core + ReactJS + MSSQL проект, думаю над сутью. Есть идея написать приложение для приютов домашних животных, с учётом живности, расписанием привививок и ветеринарных мероприятий, учётками для волонтёров и гостей, фронтом для потенциальных хозяев. Всё это распространять бесплатно для приютов.Норм идея?
>>1604874>Есть идея написать приложение для приютов домашних животных, с учётом живности, расписанием привививок и ветеринарных мероприятий, учётками для волонтёров и гостей, фронтом для потенциальных хозяев. Всё это распространять бесплатно для приютов.Нихуя непонятно что это будет. >Норм идея? Идеи обычно всегда выглядят красочно, а вот с реализациями часто проблемы. Тут главное понимать, что тебе придется разрываться между бэком и фронтом. Необходимо декомпозировать задачу. Закон Парето никто не отменял. Необходимо найти и понять те задачи, которые отнимут больше времени и сил. Чтобы их эффективно решить, а незначительные задачи оставить на пропотом.
>>1604881CRM для приютов. Для гостей подбор животных и подача заявок на усыновление. Плюс, сбор денег. Для сотрудников - распределение животных по волонтерам, планирование прививок и лечения, все такое.
>>1604785>>1604813Нахрена разбивать массив, что бы 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, какой он?
Слушаете ли вы музыку при работе\обучении в программирование?И каким образом Вы взрастили в себе привычку не отвлекаться на окружение, свои мысли\проблемы и т.д.?
>>1604935>Нахрена разбивать массив, что бы 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/В-чем-разница-между-сокетами-блокируемыми-неблокируемыми-и-синхронными-асинхроннпро блокирующие и неблокирующие сокеты,и захотел присобачить - блокирующие.
>>1604860>Да ничем ёпты>ЁПТЫ>Компрессор холодильника это что? Ты щас скажешь, что это устройство для сжатия и перемещения паров хладагента в холодильных установках. Чем .NET Core отличается? Да ничем ЁПТЫ.>>1604861>гуглить неохота>>1604863>ты мне про .NET будешь лекции читать? Я его знаю лучше тебясомневаюсь
>>1604358>Нужно ли окончить ВУЗ, чтобы стать хотя бы джуном-решёточником?Без опыта работы ты не будешь джуном. И ВУЗ тебе в этом точно не помощник. Ради корочки поступить можно. Но учить всё нужно будет самому.
>>1604813Немного лишней хуйни написал, можно проще - рассчитать частное и остаток в начале, а не на каждой итерации.Вот, тут пример с двухсторонней конвертацией и сравнением: https://rextester.com/HGST29246только вместо NetworkStream - MemoryStream.>>1604966>.Dispose(true)Не пашет чёт. Про какие-то защищённые члены попёздывает..Finalize() - тоже чё-то ругается.А вот просто .Dispose() пашет.
>>1604785Вместо того чтобы грузить массив на 20-30 мб полностью в память, подумай о том чтобы читать данные через стрим.Прокидывать один стрим в другой через буфер, причем предпочтительно меньше 85000 байт, чтобы не попадать в Large Object Heap (но если у тебя что-то одноразовое, то наверное похуй)
>>1605034Понял.Ещё я посмотрел – чтобы писать на си-шарпе не говнокод нужно овердохуя всего знать, чего стоит один .нетИли это того стоит?И с чего лучше начать?
>>1605034>И ВУЗ тебе в этом точно не помощник. Вроде нормальные вузы предоставляю практику, хотя бы пару месяцев и уже хорошо
>>1604358конечно, без ВУЗ-а вообще никуда. Лучше конечно начать с шараги 90% запостивших тут свои высеры именно они, а там уже в ВУЗ и сразу по специальности. Курсы бери C,F,Q#, VB, etc Желательно, чтобы преподы индусами были, а то мелкософт без них не обходиться.Сидим, педалим - все .NET-тчики выпускники тех. вузов по специальности - программист-педальщик. Брат жив, пульс нормальный, не штормит.
Привет аноны как отправить в net core web api Base64String? отпраляю через StringContent пишет что апи не поддерживает, как быть?
>>1605114сидит рядом учитель истории, менеджер по продажам и психолог. И я, бывший экономист утверждаю, что без высшего ТЕХНИЧЕСКОГО КАРЛ никуда вообще. Коллеги со мной солидарты, ехидно улыбаясь кивают в знак согласия.
>>1604874>Всё это распространять бесплатно для приютов.Бесплатность ломается на>MSSQLЕсли деплоить онпрем, то бедным приютам откуда-то нужно взять своровать лицухи на sql и возможно на винсервер.Если на азуру, то опять же банкет оплачивать надо кому-то.
>>1605047> Dispose(true)Не пашет чёт. >Finalize() - тоже чё-то ругается.>просто Dispose() пашет.Может тебе прочитать статейку какую нибудь про освобождение ресурсов, а не тыкать наугад?
>>1604867В дотнет кор нет разделения на рантайм + sdk или просто рантайм? То есть ты хочешь на линукс серваке развернуть уже скомпилированный файл какого расширения, кстати? и ты скачиваешь рантайм дотнета и компилятор, даже если он не нужен?
>>1605089Начать лучше с ассемблера, чтобы понять с чего все началось.Перфокарты с машинными кодами все же не советую, мы не настолько историки.Потом вздохнуть с облегчением на сишечке, затем прочитать про концепцию ООП и немного изучить с++ и как оно там реализовано. Немного утомившись, перестать работать с памятью вручную, изучить джаву версии 1.4 (именно после этой версии появился шарп), немного выдохнув на нормальном ООП и затем посмотреть, какие фичи были в шарпе 1.0, изучить их, потом 2, 3 и так плавно до 8-ой версии дойти, эволюционно.Если сразу броситься на изучать все-все фичи 8-го шарфа, какие есть, будет слишком много информации для нуба, и полное непонимание, почему именно так сделали, зачем и для чего. Нужно идти постепенно, от версии к версии.C# is sort of Java with reliability, productivity and security deleted.
>>1605211Сука, хороший ответ, но к ассемблеру больше не полезу.Посоветуй, лучше, книжек каких-нибудь; Player's Guide приглянулся, но смотря на via я вижу две абсолютно разные конструкции, которые кажутся несовместимыми.И это всё хорошо, но как-то далеко от истины. Мне кажется, никто так не запаривается с этим, и все сидят формочки делают – но их-то я и делал, а важно мне понимание языка. Не в плане, какой там электрический говно-ток попадает в комп я всё-таки не жидофин, это уже то, чем я займусь на пенсии.Я хочу писать программы на си-шарпе всеми возможными инструментами базовыми – как художник делает мазки краской.Вот бы кто мне помог определиться, ёбанарот.
>>1605370>>1605405Полезно знать че такое сборка как создать с строгим именем, как в памяти все сохраняется....
>>1605409я не знаю, как хомяки педаляк свой высокоуровневый кодик, не зная, как работает среда. Вот блять не понимаю без приколов. Я когда написал Hello world меня не покидали мысли о загадочном методе Main, контексте, почему консоль сразу закрывается и как происходит преобразование под капотом. Я гуманитарий, но без этих знаний была асфиксия. Как в ДМБ - "Секс в резинке - движение есть, результата нет". Я даже первую репу на SOF заработал по вопросам работы стэка и хипа (писал полную ересь конечно), но тем не менее разобрался
>>1605420Пишут.Есть охуенно огромное количество миддлов на том же Java, которые и в хуй без того не дуют.
>>1605441да ты выше почитай, что пишут. Не отличают фреймворк от среды исполнения. Я не знаю, как нужно нелюбить то, чем занимаешься, чтобы банально не удилить 1-2 часа времени и разобраться с цепочкой процессов, которые выполняются при каждой компиляции сборки. Это не вышка, не дискретка, не алгоритмизация даже (хотя любят некоторые вздрочнуть своим merge/bubble sort), это банальная работа механизма. Часто вижу в вакансиях Required - Granted tech education и проигрываю с этого. Ну получил корочку, и хули? А сидит и педалит на тонне библиотечек, даже не зная что такое JDBC/ODBC, а тем более -как происходит процесс компиляции. Вкатыши одним словом. Тысячи их.
>>1605453Ну мне лично похуй, тоесть я доверяю что реализация интерфейса ISosuHui, сосет хуи, и мне не нужно разбираться глубоко ли заглативает, мне похуй.
>>1605453Я читал, что там выше — это позор ёбаный.Было бы здорово, если б такие хоть как-то отсеивались по мере становления серьёзными прогерами, авотхуй!Опять же, возвращаясь к жабе, в которой в раза 2 всё полегче относительно механизма (и читается это действительно как какой-то роман, запоминающийся в голове), люди не желают в этом разобраться.Тенденция какая-то, слогом не объяснить русским.И я не этот гражданин — >>1605460
Напомните-ка, каким же лучше образом задать второй параметр в ParameterizedThreadStart?>bool parameter1 = false;>Thread name = new Thread(new ParameterizedThreadStart(method))>t_lite.Start(parameter1);>...>а в самом методе>bool parameter1 = (bool)Obj;Надо как-то второй парам засунуть, вообщем.
>>1605974bool param1 = false;bool param2 = true;Thread name = new Thread(()=>method(param1,param2));name.Start();
В веб приложении с базой данных, куда запросы могут делать несколько человек если писать методы взаимодействия с БД сихнронно, поток будет один для всех пользователей? Я просто не понимаю:1. Выделяется ли каждому юзеру свой поток;2. При запросе юзера (хуй с ним одного) блокируется основной поток (интерфейс). Будет ли заблокирован интерфейс у другого пользователя?3. Для чего вообще нужна эта еботня с асинхронностью? Когда пердолил в WPF - там все было понятно, в вебе - нихуя не понятно.Спасибо
>>1605982Благодарю, заработало.А просто System.Threading.Thread чем-то хуже ParameterizedThreadStart или не? Разные объекты всё-таки...
Шарпаны, у меня вопрос относительно лаконичности описания асинхронных операций. Вот нафига асинхронному таску писать Task<T>? Почему компилятор за меня этого сделать не может? Он же и так кучу магии делает, так пусть и async T оборачивает в async Task<T> , если я явно не укажу что это какой-то другой IAsyncEnumerable<T>
>>1606089Есть еще ValueTask. В определении метода всегда надо указывать тип, что иногда дико выглядит, если там есть IEnumerable, Expression, Func. Может введут автовывод когда-нибудь как в плюсах или как в фшарпе.
>>1586030 (OP)Пюрешки с котелткой вам в хату, анончики.Приветствует вас вкатывальщик-хуятывальщик 30 лвл. Прохожу кое-какие курсы по вашему божественному языку, красотой строгой типизации меня поразившему до глубены чресел.Ради практики языка и в целях лучшего осознания базовых идей, задумал написать ОЧЕНЬ простой mvc фреймворк на С#, ибо плохо понимаю эту концепцию, этот паттерн и вообще как должен такой фремворк работать. Прошу от вас советов мудрых: что стоит прочитать, о каких библиотеках знать, может быть, какие туториалы изучить?На выходе хочу получить небольшой проект в гит и хорошее понимание паттерна мвц, равно как и того, как в сишрапе можно работать с сетью и БД.Тысячу нефти и персональный чай всякому, решившему помочь мне.
В вакансия часто читаю требование - пользование и настройка IIS, MsSql. Ладно MsSql - покрутить, чтобы ошибки не триггерились при каждом чихе, но блять что настаивать в IIS? Киньте ссыль где можно почитать об этом. Спасибо
>>1606015Асихронность здесь нужна 1) Для паралельних задач2) Пока твой поток ждет что-то из Бд допустим он может делать другую полезную работу. Нужно для скалабили, и не сильно ощущаеться пока нет сотней запросов в секунду.
>>1606302вот у меня есть казалось бы банальная задача - добавление данных в БД. Нужно ли делать ее асинхронной? Казалось бы - интерфейс пользователя если не будет блокироваться, то так или иначе должны всплыть служебное сообщение - типо "Success" или "Data already exist".>>1606299потоки эти синхронно обрабатываются? Один закончился - начался другой? Чего возникают такого рода вопросы - запросы могут быть тяжелые, чтобы не создавался стэк запросов для обработки, если такого рода задачи могут решаться многопоточно задействуя все ядра. Вопрос скорее в реализации многопоточности и асинхронности на нижнем уровне. Нужна ли эта реалиация на уровне интерфейса? Если нет, то зачем тогда эти методы у контекста EF - SaveContextAsync или AddAsync etc?
>>1606334Новий запрос на сервак, начинется новий поток, а че делал на старом ваще пох.Что такое UI на вебе? У тебя MVC или есть JS клиент?
>>1606188А действительно, что там настраивать? Указал папку с проектом. Включил или нет возможность показа директорий, указал файл по умолчанию нахуй не нужно, и, вроде, все, с чем я сталкивался Но у нас все iis'ы крутятся на виртуалках, может, там сисадмин озаботился чем, а я и не знаю
>>1606334Анон, ты задал очень хорошие вопросы. Мне самому интересно, но все руки не доходили спросить/почитать Aspnet-codegenerator, который, собственно, и делает шаблоны контроллеров в студии, по дефолту делает CRUD асинхронные. Значит, есть смысл в этом. Но да, какой смысл, если следующая операция — вывод плашки "бд обновлена"
>>1606447>Новий запрос на сервак, начинется новий поток, а че делал на старом ваще пох.не подскажешь, где об этом можно почитать?>Что такое UI на вебе? У тебя MVC или есть JS клиент?React JS на фронте с web api asp.net core>>1606473Вот я тоже самое сказал - типо веб сервер, пусть сис. админы и ебутся. А мне фыркнули типо, нихуя губу раскатал. Теперь собираю инфу, что это за настройки такие
>>1606477Смотреть сюда >>1606015Вообщем есть пул потоков, допустим 100.Одновременно пришло 100 реквестов, все одновременно отработало.Дан.Но если пришло 101, то последний должен ждать пока будут свободние потоки. При чем тут асинхронность, так вот во время жизни потока 90% времени он ждет что-то из БД или же шустро видает результат.Когда твой реквест делает что-то в бд поток ждет окончания операци, ему не нужен поток он может делать другую полезную работу. Тогда он может обработать 101 реквест и отработать.Тоесть Add метод говорит что он будет закончен на том же потоке на котором начал.А метод AddAsync говрит что будет закончен на любом потоке которий будет свободним.
>>1606501Я анон, который задавал >>1606015По вопросам Add и AddAsync у меня выстрелило в работе через UI->WebApi->EF->MsSql->IIS local. Методом Add - просто жду выполнения метода, он закончен - данные проходят по цепочке и попадают в БД. На каком этапе распределение и выделение потоков происходит - в душе не ебу, поэтому и задал этот вопрос.Потом начал копать инфу - наткнулся на асинхронную реализацию методов - все запилил под AddAsync или SaveChangesAsync - начал обсираться на том, что данные банально не сохранялись в БД. На каком этапе идет обсирание понятно, что на том, кто создавал - не понятно.>100 реквестовА где эти ограничения указываются? Я у знакомого DevOps спросил - он говорит на уровне IIS указывается максимально обрабатываемый пул потоков.Короче я запутался - нужны ли вообще эти ебучие асинхронные операции в CRUD-е? Опять же повторюсь с опытом из WPF - там это мастхев - Load bar, функционал UI и т.д. Как при цепочке, которую я описал - хуй его знает.
>>1605187>В дотнет кор нет разделения на рантайм + sdk или просто рантайм? Есть. Есть версии с одним только рантаймом, их сейчас 3, .net core runtime, asp.net core runtime, desktop runtime. И есть runtime + sdk.>То есть ты хочешь на линукс серваке развернуть уже скомпилированный файл какого расширения, кстати?Exe или dll будет. Можно заюзать CoreRT/.NET Native, чтобы скомпилить в линуксовый бинарник.>и ты скачиваешь рантайм дотнета и компилятор, даже если он не нужен? Нет. Можно рантайм упаковывать в приложение, тогда не нужно на сервер ничего ставить даже.
>>1605211>Начать лучше с ассемблера, чтобы понять с чего все началось.А что не с машинного кода? Прямо нули и единицы пердолить.
>>1605261>Сишарп вендорлок на mssqlНет. В доках есть примеры с postgresql.>вендорлок на азуреWhat? Докер?>вендорлок на виндеДавно уже нет. Сам на линуксе, винду не перевариваю, но .NET Core как экосистема превосходен. Пересмотрел все что сейчас есть из платформ, .NET Core это лучшее. Нигде нет такой продуманной экосистемы. F# прекрасен. Еще бы лиспоподобный язык прикрутили.
Как передавать кукисы из аутентификации в методы? Какой то контекст выполнения должен быть? Короче мне действия каждого юзера нужно передавать флагом в БД (id/unautorized). Как такое сделать? Спасибо
>>1607074и еще вопрос - каким образом передавать ответ пользователю? Я говорю про механизм обратной связи. К примеру - Все ок, 200 или User already exist или Access denied - 403. Пилить масседж хендлеры и передавать их через return в методах? Через Web Api это можно будет хукнуть и отследить?
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.
>>1607074>Как передавать кукисы из аутентификации в методы?с этим разобрался, осталось >>1607106 и >>1606522>>1608005я не против - скинь ссыль. После фразы - "Ищи сам" - Сам знаешь, что будет
>>1608053Но если тупой и сложно найти что читать, то вот линк - https://docs.microsoft.com/en-us/archive/msdn-magazine/2014/october/async-programming-introduction-to-async-await-on-asp-net
Добрый вечер. Не могли бы мне помочь с вопросом.Виндоус форм. Есть десяток условных кнопок. Нужно при нажатии получать номер нажатой кнопки. Единственное что приходит в голову это получать их имена, заранее поименованые их с номером, а потом, получив, как то извращаясь вырезать слово button из имени.Но я таки верю что есть способ умнее. Может у вас можно как нибудь свои номера/переменные у кнопок устанавливать?
>>1608103Может есть варианты и получше. Я не программист вообще, просто развлечения ради на шарпах всякую мелочь пишу.
А под Шарп есть какие-нибудь продакшн-риди фреймворка для bigdata?Или это область исключительно джавы? Хадупы, спарки, акка, штормы...
>>1608372Я не знаю, что ответить дауну, который услышал где-то, что 2+2 = 5 и повторяет как попугай услышанное. Приплел он систему взаимодействия к бигдате.
>>1608378>>1608375Еблан.Есть устоявшийся термин - бигдата.И так же джентльменский набор тулов, часть которых я перечислил.Будь я их знатоком, я бы был бы уже джавистом, а тебя поливал говном. Но я просто думаю, стоит ли оставаться в шаорпе, или валить в интересную область.Судя по вакансиям Шарп - либо игры, либо формошлепство в тырпрайзе.
>>1608429Насчет формошлепить не уверен, там нет жабы, но на жабе можно писать только простые вебсервисы.
>>1608434Я лучше тем, что не обсираю другой язык и не пытаюсь навязать свое мнение, подумай, хлебушек.
>>1608258Ну так то скорее ХС клон таких игор.>>1608376Регулярки на скрине для ловли лога, а кнопки для ручного управления. Так как у них лог кривой и некоторые карты вроде призовых приходится тыкать самому. А так как карт и кнопок дохуя я и делаю все через массивы номеров кнопок.
>>1608470Это не игра, а трекер по типу Хертстоунского. Считает что вышло и что осталось, а учитывая что тут есть режим готовых сборок можно и колоду противника со 100% уверенностью видеть
>>1608482Мне нужен пруф твоих слов про бигдату. Ты когда открываешь рот, подкрепляй его фактами. А пока будешь попугаем.
Господа, вкатился к вам из геймдева с Unity, подскажите пожалуйста такой вот вопрос- Unity webGL слишком оверкил для моих целей, мне нужна браузерная веб версия простой игры с сложным социальным взаимодействием больше UI, меньше физона/ геймобжектов.Может быть существуют какие-то фреймворки для создания динамических и красивых браузерных веб приложений на C#? Или C# вообще не для этого? А если для этого, то как это гуглить вообще? Или у меня нет варианта, если это не webGL то придется ебаться с CSS и всякой такой еботой?
>>1608515>>1608518Ыыы, я даже не рассчитывал что мой наброс про бесполезность шарфа приведет к такому срачу и воссоединению гей пар xD
>>1586030 (OP)Есть приватный статичный массив обеъектов.Объекты, в этом массиве - меняются, как и их количество.Есть метод, возвращающий первый объект из массива объектов.Задача - каким-то образом прицепить таймер в этот метод так,чтобы метод гарантированно возвращал объект только тогда, когда он есть или появится в бущущем.Thread.Sleep() не катит, он тормозит всю прогу, блядь.
>>1608728Используй задачу марианетку.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();Это концепт, синхронизацию и прочее пердоль сам.
Сап, двач.На связи первый курс.Как написать этот код? Взял цифры от -5 до 5. Дошел до Array, а что с ним делать - без понятий. Выручай.
>>1608837ну так в чем проблема то?перебирай элементы массива. Через If задавай условия и складывай, умножай. Задача изи. Если учишься на программиста, то такое стыдно не решить.
>>1608774Реализовал асинхронность при помощи System.Threading.Thread: https://rextester.com/MMKXT99662Всё правильно сделал?
>>1608865Так не пишут ни на js, ни тем более на шарпе.Какой смысл писать на высокоуровневом языке, как на с?
>>1608876Заебись, и либ никаких не надо. А то от этих слов криптоных >>1608841 - я аж пересрал.Пойду асинхронизировать асинхронно - асинхронизацию асинхронизациоанальную,асинхронизациоаналистично и даже асинхронизацианалично.
>>1608916Не возьму на работу, если увижу.Быстро переписал в функциональном стиле.А потом, для закрепления, с помощью linq на шарфе.
>>1608890открою страшную тайну, но именно так учат шарпу во всяких шарагах. И смею предположить, что анон именно пишет оттуда. И написав с ОПП или Linq, его код преподаватели могут просто не понять.
>>1608728BlockingCollection из TPL посмотри, оно правда скорее для Producer-Consumer, но может у тебя как раз такая задача?
>>1608835Зачем такой архаизм нужен? Даже на ХР можно 4йы накатить>либы какие-тоЕсть Microsoft.Bcl.Async, но нужен net4. А еще это все работает в свзке с компилятором и нужна студия 2012+.Но раз уж хочется писать на доисторическом дотнете, то пиши как деды, через IAsyncResult.
>>1608913Бле, внатуре.Меня просто заебали эти 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.Вообще, нахуй - тормозит всю программу.А если сделать так >>1608876 , то вроде как запрос от клиента повисает в Pending, и нотификация приходит тогда, когда она есть,но при этом, на каждый запрос нотификации от других клиентов - стартует новый поток.Это же пиздец какой-то ещё больший, ведь клиенты могут отключаться, а потоки эти, многопоточные,в памяти рекурсивно всё-равно будут крутиться, и возвращать нотификации - в никуда, блядь.
>>1608954Накатить можно только если делается новое приложение, не завязанное ни на что.Если он занимается поддержкой старого говна, типа портала на sharepoint 2010 или что-то подобное (сайт на старом аспнете, или либы на net 2.0) то такого варианта нет.
>>1608774хопа, попався на легаси. Страдай, сцука гугли EAP>>1608837>На связи первый курссап долбоеб, сажи-скрыл>>1608963из головы. Зашкварный ты погромист, если не можешь придумать себе идею.>>1608957>/username1565/nanoboard/шизика так и не забанили, мечтатель борды с блекджеком и цп шлюхами
>>1608976>шизика так и не забанили, мечтатель борды с блекджеком и цп шлюхамиНу вас... Заебенил, пока-что с одним потоком: https://rextester.com/ZNWID54391Как думаете, норм, или чё-нить добавить/удалить?>>1608841>>1608954>IAsyncResult, BeginInvokeЕсть где-то примеры кода рабочего? Может кто наварганить в rextester'e по-быстрячку?
>>1609094>пока-что с одним потокомА смысл, ты же сразу после старта джоин делаешь.>где-то примеры кода рабочего?Тебе же сказали - гугли EAP.что-то ты какой-то тупенький
>>1609198>А смысл, ты же сразу после старта джоин делаешь.Зато thread.Abort() не срабатывает, пока тред не завершится.И только после его завершения, значение возвращается.Но сейчас заметил, что Thread.Sleep(2000); тормозит всю программу, блядь.Поэтому, попытался сделать, внутри метода, который вызывается в потоке:thread.Sleep(2000); //затормозить только поток, в котором выполняется методИ... Нихуя... Можно ли так сделать каким-то образом?>>1608841Попытался подключить IAsyncResult, так оно в других методах типы подменяет. Откатился нафиг.>>1609198>Тебе же сказали - гугли EAP.Пиздец, глаза обломал.Нахрена мне Extensible Authentication Protocolещё и на канальном уровне,если мне просто вернуть значение, методом, когда оно появится.То есть надо подождать, пока появится значение и вернуть его только тогда,и проверять значение это - в одном потоке,и ждать - тормозя только этот поток, а не всю программу, из-за Timer.Sleep().Пытался через .Task ещё что-то делать, но - нифига не пашет в .NET 4.0.
>>1609620>Extensible Authentication Protocolхуя ты даун, земля тебе пухом EAP - Event-based Asynchronous Patternи зачем ты свою телегу на .NET 2.0 пилишь вообще? Чем тебе 4.8 не угодил?
>>1609661> 4.8 Новомодная хрень для зумеров с тоннами синтаксического сахара. А во второй версии есть душа
>>1609661>хуя ты даун, земля тебе пухом EAP - Event-based Asynchronous PatternХэххэх. Пикрил.Судя по примерам кода, при использовании EAP на IAsyncResult BeginInvoke, всё равно тормозят ответ при помощи Thread.Sleep(milliseconds),и пока оно спит, второй экземпляр метода не запускается, сукаблять.>и зачем ты свою телегу на .NET 2.0 пилишь вообще?>Чем тебе 4.8 не угодил?Это не телега, и она не моя. Она наша. Каждый её дрочит как он хочет. Её даже шатать можно похлеще вакабы.Чем ниже фреймворк - тем он ближе к ассемблеру, а чем ближе к ассемблеру, тем более крутым кулхацкером себя чувствуешь, когда высераешь в блокнотище - свой кривой говнокод. Заебись же, охуенность ежжи.
>>1609828Плюс ещё обратная совместимость. Фреймворк 4.8 на тамагочи не запустишь, а на тетрисе - и подавно.
>>1609620>Зато thread.Abort() не срабатывает, пока тред не завершится.А, так ты добавил отдельный тред, только чтобы вызвать на нем Abort.>тормозит всю программу, блядь.Ты так и написал, хз чего ты ждал.>Можно ли так сделать каким-то образом?Не болкировать ожидающий поток, т.е. не вызывать джоин.>>1609828> тормозят ответ при помощи Thread.Sleep(milliseconds)симулируют долгое выполнение метода> второй экземпляр метода не запускается, сукаблять.ой дурак> тем он ближе к ассемблеру,ой дурак х2>высераешь в блокнотищеой дурак х3>>1609830>4.8 на тамагочи не запустишьТак где ты 2,0 собрался запускать?
>>1609828>>1609774Какие то вы странные - вроде же для себя пишите, зачем тогда устаревшую технологию брать?>Плюс ещё обратная совместимость. Фреймворк 4.8 на тамагочи не запустишьстарое говно ASp.NET 2.0 где ты собрался запускать?В ASP.NET 4+ те же грабли с асинхронностью реализовали в виде Async-await, где не нужно ломать мозг, а все за тебя делает исполняемая среда. Идея с этой ссаной бордой может и не плохая, я не знаю как все эти чейн хешкоды работают, видимо у вас есть опыт из шифрования крипты, мне похуй, но если вы делаете проект - проанализируйте общую картину от начала и до конца (от проектирования до деплоя и размещения на железе)
>>1609913>Так где ты 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
>>1611069Вот ещё EAP (async-await на IAsyncResult с BeginInvoke): https://rextester.com/NLL39693Вроде работает, но при большом числе запросов из public static void Mainоткрывается куча потоков. Как их закрывать/подтормаживать, абортить - хуй знает.Там же Thread.Sleep используется, а он то ли для текущего треда, то ли для всей программы срабатывает.
>>1611072Потому что long_time_method запускается в отдельном потоке,id которого видно в System.Threading.Thread.CurrentThread.ManagedThreadId:https://rextester.com/CITZO33999>при большом числе запросов из public static void Main>открывается куча потоковТак что, надо как-то - обобщить всё это.
>>1611077Пришлось создать ещё один список потоков, чтобы пришпандорить IAsyncResult: https://rextester.com/EDEDA45116С множеством запросов rextester не хочет работать, ругается, поэтому вот: https://repl.it/repls/UnlawfulMundaneDebugmonitorНе всегда запускается, иногда тоже ошибки выдаёт...Хуета-то какая. Можно как-то попроще это сделать?
>>1610063>Идея с этой ссаной бордой может и не плохаяСсаные у тебя панталоны, а борда эта - просто заебата.>я не знаю как все эти чейн хешкоды работают, видимо у вас есть опыт из шифрования крипты, мне похуйХэш - это просто уникальная строчка, наподобие контрольной суммы, но длинее,и рассчитываются хэши - самыми разными криптостойкими алгоритмами хэширования:https://ru.infobyip.com/hashcalculator.php
>>1609620>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
Как дебажить в шарпе, кроме Console.WriteLine(...)?Ставить точку останова и наводить мышкой, чтобы смотреть содержание переменной? Или есть более совершенные техники, которые применяют сеньоры?
>>1611239>Ссаные у тебя панталонылюбитель цп сгорел>а борда этатолько куском говна на гите лежит>Хэш - это просто уникальная строчка, наподобие контрольной суммы, но длинее,и рассчитываются хэши - самыми разными криптостойкими алгоритмами хэширования:>>1610063>мне похуй
>>1611671>любитель цп сгорелКакие же вы чмоньки, пиздец, со своей манечкой этой.Как будто, кроме цп на наноборде, и вообще на скрытобордах в дарквебе - нихуя годного нет.Как только в сети появляется ресурс, направленный на то, чтобы гарантировать свободное общение, без мочерации ссаной,так сразу начинаются вайпы, хаки, или вброс похабного контента, вроде ЦП - чтобы абузами домен закидать.А вот хуй вам. Это onion. Это TOR. Там ещё BitMessage транспорт есть, между прочим.А наноборда - это плацдарм для проведения научных дискуссий, в среде, где каждый может настроить её под себя - децентрализированно.
>>1611671>только куском говна на гите лежитТы думаешь кто-то будет вам палить годноту?Настоящая наноборда имеет четыре миллиарда активных пользователей и три миллиарда реактивных.
В общем, повесили на меня студента. Должен буду давать заключение о прохождении испытательного срока Я увидел в его коде такую вот фигню:void foo(ref Message message, ref byte[] data);И вот что теперь с ним делать? Вроде как с задачей что я ему дал он справился, но ведь блин, базовая вещь про то что классы и массивы в шарпе - ссылочные типы. Просто объяснить ему это и пусть считается что испытательный срок он прошел или лучше сказать начальнику чтобы послал его доучиваться?
>>1611903Пусть тебя, долбоеба, доучиваться посылает. ref можно использовать и для ссылочных типов, зависит от тела метода в который ты их передаешь. Если ты передаешь ссылочный тип без ref, то передается копия ссылки, а не оригинал. Ты можешь использовать эту копию для модификации объекта, но при переназначении непосредственно ссылки, переменная в вызывающем коде не изменит своего значения, т. е. в ней также останется ссылка на старый объект. Другое дело при передаче ссылочного типа с ref. Ты можешь использовать её как для модификации объекта, так и для назначения нового указателя.Типичный эксперт, который ничего сам не знает, но кого-то учить собрался, блять. Ладно ты этого не знаешь, но мозги вообще не работают что ли? Если бы значения не имело, то тебе бы компилятор об этом говорил.
>>1611964Ты серьезно думаешь что я этого не знаю и спрашивал бы в случае если там переопределения ссылки происходили? Он просто дергает из массива данные? приводит их к нужному типу и присваивает свойствам сообщения. Там ref не нужен от слова совсем. Но он есть. И это, лично меня, смущает.
>>1611989Да-да, быстро ты переобулся. Но ведь это ты писал:>Вроде как с задачей что я ему дал он справился, но ведь блин, базовая вещь про то что классы и массивы в шарпе - ссылочные типы.>что классы и массивы в шарпе - ссылочные типы.Какое это отношение имеет к модификатору ref? Читается именно как "это же ссылочные типы, их не надо с ref передавать ))) 0))) "
>>1612014Господи, ты действительно думаешь, что с 2010 года я ни разу ref не использовал и не знаю когда он нужен, а когда нет? Блядь, я волнуюсь о том, что это первый студент решение о взятии которого полностью доверили мне, если я скажу что все ОК, то ответственность за то что он напишет и на мне лежать будет, хуй знает чего он еще не знает, потом мне его код переписывать придется; с другой стороны, он, вроде как, смышленый и вообще работать хочет, сделал задание за вечер, хотя ему дали неделю. А ты тут самоутверждаться пытаешься. Из-за тебя я сейчас бомбану и в понедельник пошлю его нахуй, просто потому что анон с двача испортил мне настроение в выходные.
>>1612070Человек приводит пример с передачей ссылочного типа по ссылке, при этом не приводит тело метода и даже не уточняет, что в этом нет необходимости. Человек зачем-то упоминает, что массивы и классы это ссылочные типы.Очевидно, что если бы он знал как работает ref со ссылочными типами, то он так бы не обосрался. Поэтому хватит пытаться оправдаться перед самим собой, лучше заполни пробелы в своих знаниях.
>>1612078Блядь, потому что я думаю, что это, очевидно. Неужели тебе не понятно?Вот, смотри тело методов: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 использовать? Блядь, у меня теперь действительно горит, сука.
>>1612070> Из-за тебя я сейчас бомбану и в понедельник пошлю его нахуй, просто потому что анон с двача испортил мне настроение в выходные.> Мам, я не хотел собеседовать, мне навязали > Мам, я боюсь ответственности, боюсь спросить что-нибудь ещё у кандидата, это говорить надо, а я пук среньк только умею> РРРЯЯЯЯ ВЫ УБЛЮДКИ Я ИВО УВОЛЮ ВСЕХ УВОЛЮ Ой-вей
>>1612132А отказаться нельзя? Мне предлагали подобрать человека самому, но ебал я это дело, хоть и набирать его надо было на мои же задачи Подождал начальника, собеседовали вдвоёмПо поводу твоего случая — спроси кандидата, а не тред. Может, у него свои мысли на этот счёт, а, может, по запаре оставил и вы оба посмеетесь над этим пустяком. Все же он за один вечер сделал я бы только половину тестов накидал к этому времени
Антоны, че за хуйня, у меня в файле 150к строк, я для каждой из них создаю и сразу же запускаю таск.В итоге не все таски выполняются, как так?
>>1612124нахуя он в каждом кейсе ref добавляет? Ты его спроси лучше адекватно, что он этим кодом хочет сделать
>>1612389>>1612322Да, я не ждал тасков, но почему они не выполняются?Алсо, еще ошибка была в race condition, чтобы уникальные имена для файлов сгенерить в многопоточке нужно еще и поебаться.Сейчас все поправил.
В чём смысл в контроллерах делать async варианты методов и добавлять в них await, особенно когда просто берётся из dbcontext'а список объектов? Просто как я понимаю, что сервер будь то IIS или kestrel всё равно не в одном потоке каждый запрос обрабатывает, а кидает их в очередь, которая равномерно хендлится каким нибудь thread pool'ом. И зачем тогда городить новый тред?
>>1613287Кажись нашёл исчерпывающее объяснение: https://stackoverflow.com/questions/30566848/when-should-i-use-async-controllers-in-asp-net-mvc
Посоны, посоветуйте хорошие видео или подкасты по шарпу уровня Рихтера, чтобы смотреть в дороге на работу?
>>1613388CODE BLOG канал на ютабчикеу него разбор рихтера по главам есть (правда пока не всего)+ понятные уроки по основам языка и алгоритмам + практические уроки по ASP и WPF
>>1586030 (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())Как всю эту хрень сделать на мютексах, семафорах, и синхронизации сихронизациоаналичной, чтобы эти варнинги не пёрли, и чтобы заебись было?
>>1613534>Как всю эту хрень сделать на мютексах, семафорах, и синхронизации сихронизациоаналичной, чтобы эти варнинги не пёрли, и чтобы заебись было?И чего ты ожидаешь? То что тебе в одном посте объяснят весь раздел под названием "Асинхронное программирование и многопоточность"? Открываешь книжечку, открываешь статьи, открываешь гайды и учишь, а потом используешь.
>>1613534А пока, чтобы эти варнинги - глаза не мозолили,просто отключил их нахуй, при помощи дедовского метода:>#pragma warning disable 0618>#pragma warning restore 0618
>>1613538Хоть бы ссылку дал, а то щас в шлаке нагугленном на StackOverflow буду колупаться, гляну по-бырому и закрою нафиг.
>>1613545Какую тебе ссылку дать, скотина тупорылая? Ты настолько тупой и даже не осознаешь, что для того чтобы тебе дать ссылку, нужно хотя бы малейшее представление иметь о уровне твоих текущих знаний.
анон помоги, предположим у меня есть массив элементов, у элементов есть value, вот например мы выбрали какой-то из массива, и взяли его value, как можно сравнить сколько процентов элементов имеют value ниже чем выбранный?
анон помоги, предположим у меня есть массив элементов, у элементов есть value, вот например мы выбрали какой-то из массива, и взяли его value, как можно сравнить сколько процентов элементов имеют value ниже чем выбранный?
>>1613563Не знаешь решения простейшего вопроса - сидел бы да помалкивал, и не позорил бы мои тапочки, мразь дегенеративная.Но нет, оно, ещё пытается тщетно пытаться попонтоваться тут, без пруфов конечно, и нихуя при этом не зная.Причём тут многопоточность, блядь? Причём тут асинхронность?У меня простейшая задача - остановить бесконечный цикл, и возобновить его так, чтобы в одном потоке это было,и чтобы не блочилась вся программа, и не свистел кулер на греющемся процессоре, пока оно спит.
>>1613803>синхронизация, мьютекс, семафор >Причём тут многопоточность, блядь? Причём тут асинхронность?Шизик, лучше скажи, когда у тебя следующий период диспансеризации? Когда ждать исчезновения твоих шизовысеров и шизобреда про борду?
>>1613803И еще. Почему твой шизоглаз пал именно на шарп? Пиздуй в С-тред, стиль написания программ на котором как раз похож на твой топорный, при этом будешь мамке хвастать, что пишешь на самом производительном языке.
>>1613810Лол, хоть я и не шизик, но некоторые на этом мочане меня так называли уже, поэтому отвечу...На учёте не состою нигде, потому что аноним,шизовысеры и так мочерация потрёт, потому что мочан,а на шарпе уже год шкрябаю свой говнокод просто потому что борода на шарпе, блеать.Переписывать всё это на сишечке - даже не предлагай, иначе увидишь здесь ультрашизовысеры, когда я уже - окончательно головой поеду.
>>1613803>У меня простейшая задача - остановить бесконечный цикл, и возобновить его так,>чтобы в одном потоке это было,>и чтобы не блочилась вся программа,>и не свистел кулер на греющемся процессоре, пока оно спит.>>1609828>Судя по примерам кода,>при использовании EAP на IAsyncResult BeginInvoke,>всё равно тормозят ответ при помощи Thread.Sleep(milliseconds)>>1609913>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;
>>1613649Сортируешь его по value, выбираешь элемент по индексу. Всё что ниже этого индекса - количество элементов у которых value ниже чем у выбранного. Считаешь процент. Например, если из 100 элементов выбран элемент с индексом 2, значит 97% элементов имеют value ниже, чем выбранный элемент, 2% имеют value выше.
>>1613951>>1613649Нужный тебе процент можно вычислять по формуле:100 - (количество элементов массива / 100 x (индекс элемента + 1))Получается если брать массив из 150 элементов сортированный по убыванию value, и взять элемент с индексом 2, то получаем:100 - (150 / 100 x (2 + 1)) = 95.5%
>>1613842Вот так заебись, а то от рекурсивного вызова - разочек выхватил Throw StackOverFlowException, после чего, начал неистово рвать себе волосы на жопе.
В asp.net core кто ни будь logger из коробки юзает? Проебался с ним часа 2 - такое говнище, пиздец. Делает записи только через cmd запуск, не сохраняет лог файлы. NLog так же используется?
>>1614214Анон, ты сейчас глаза мне открыл. Я думал, зачем такой куцый логгер, а оно вона зачем — в линуксе же можно направить вывод логов в файл. Что-то там с stdout, но я не шарю Сам использую serilog. Два подводных:1) внезапно начал жрать два ядра ксенона по 20% от каждого. После того, как вычистил из проекта и вернулся к нему же — жор прекратится 2) все завязано на определённую структуру логов, но на неё забить можно
>>1613785>>1614402Можно, но только в коре. А в фв можешь взять из спана секунды/милисекунды/etc и делить их.Неужели проще писать на дваче, ждать и получить неполный ответ, чем написать одну строчку кода и увидеть самому?
>>1614589А не, это же метод в коре, у меня мсдн не хочет переключаться между версиями в хроме, пора переходить на Edge
>>1614586да мне не особо важно было, я пока сделал конверт 32 и пошел дальше, жаль на такие мелкие вещи время тратить, а тут аноны добрые и знающие всегда подскажут, и когда подсказывают я тот костыль меняю на нормальный рабочий способ, разве плохо?
>>1613960а как мне индекс моего клиента узнать? я могу выбрать его игру из массива, но какой метод использовать что бы получить индекс этой игры в массиве?
>>1614712Попробуй так:100 - ((индекс элемента + 1) / (количество элементов массива / 100))100 - ( (70 + 1) / (150 / 100) ) = 52.66%
>>1613649 Element[] elements = new Element[111]; var e = elements[13]; var count = elements.Count(x => x.Value < e.Value); var rating = (count * 100d) / elements.Length;
Поясните нубу. Есть ли какой-то механизм, который бы указывал комплиятору, что при имплементации интерфейса свойство/ридонли поле должно иметь какое-то определенное значение и никакое другое?Ну, например, вот я хочу чтобы при имплементации моего интерфейса стрим бы были с CanRead == true, можно ли это как-то на этапе описания интерфейса сделать?
>>1615816спасибо тебе добрый анон, все таки Сишарп Тред лучший тред по языкам программирования на дваче, мне никогда в других тредах так быстро не отвечают
>>1615816Даже вот так: https://rextester.com/ONHT63249Чтобы был виден процесс генерации, и преобразование между символом и его кодом.
>>1615827не умеющий пользоваться Random? Пошел нахуй отседова, добрый ты наш. Тебе быстро отвечают, потому что ебаные решетки учат только индусы и говностуденты шараг, нечему удивляться
Опытные дяди, подскажите, стоит ли сейчас изучать ASP.NET MVC или сразу переходить на ASP.NET CORE?Насколько востребован вообще старый MVC?
>>1615797>>1615816Почему бы не использовать GUID?>>1616015Потому что по дефолту, если не указан модификатор, то для методов используется private, а интерфейс требует protected(pic2)/public(pic 3)>>1616216Смотри вакансии в своей местности, а так похуй, учи что хочешькор.
>>1586030 (OP)Програмач как сделать подобное? Когда в функуциях подписаны названия переменных например time?
>>1616993Именованные параметры тут не причём кроме того, что они имеют имя, на скриншоте подсказки от JetBrains'овских штук
>>1617079>JetBrainsтаких петухов не знаем, у нас православная VS от мелкософта в code navigation такая функция должна быть, влень искать
>>1617091Да-да, анон, конечно я от голой студии охуеваю. Хотя бы автоимпорт бы завезли бы к 20 версии
>>1617100ИзвинисьРешарпер уже плавает по вижле уже добрых 5 лет, все никак не могут закопипастить его в плагины
>>1617126Может, конечно, но на скрине Rider >>1617152LINUX POWERЧто значит плавает? В платины они его перевести не могут, так как api не имеет нужного функционала. В итоге по 20 секунд пропердывается при старте на последнем i7
>>1617198>Что значит плавает?R# самая популярная надстройка для вижлы, дауны мелкософта не могут реализовать функционал ссаной надстройки в саму вижлу. Это какой-то... позорЯ иногда диву даю, какие мелкософты дебилы. Хотят быть здесь и сейчас везде, где только можно перднуть, тем не менее забивают болт на текущих клиентов. Жаль они со своим шиндовс на коне были, так бы их уже давно похоронили
>>1617233Они понемногу добавляют фичи в студию, если пользовался старыми — заметишь разницу Но они вряд ли запилят свой "решарпер" в студию — мелкомягкие всегда давали развиваться вокруг своих продуктов другим компаниям
>>1617244>всегда давали развиваться вокруг своих продуктов другим компаниям>анальная огороженность кода>анальные наказания за нарушение копирайта В голос.
>>1617244мелкомягкие такие уебки, что если бы не опенсоурс, они бы сорсы Core в жизне не открыли (которые сейчас чуть более, чем на половину состоят из опенсоурс кода).Боже, сделай так, чтобы Rust захватил рыночек. Молю.
>>1617316Но ссылка-то копируется. У тебя myName и name - две переменные ссылающиеся на один объект, ты меняешь name - т.е. теперь name ссылается на ивана, а myName на андрея. Ты поменял только ссылки, но не объекты. И еще, если книга не с помойки, то там еще написано, что у стринг неизменяемый тип, хотя на твой код это не влияет.
Как заебало блядь в моей 1.5кк мухосрани сука все джун вакансии на Шарп это ебаный фулстекХотел укатиться со своего фулстека на чистый бек, а нихуя, пиши сука на жаваскрипте фронт блядь Хоть на жаву перекатывайся бобы крутить блядь
Поясните нубу за правильную структуру проекта. Просто я, как бака, для любой сепарированной сущности создаю отдельный каталог,и получается что у меня куча папок в проекте: Unit, Logic, Gui, Engine... и т.д. Ну и почему меня это напрягает: Когда нужно быстро что-то найти, приходится кучу времени тратить на то чтобы открыть нужную папку, ведь в них еще вложенность. И мне кажется что проще было бы весь код хранить в одной папке, ну или на крайний случай, вместо папок использовать проекты библиотек. Вот мне и интересно, как нормальные люди это все организуют.
>>1616274>Потому что по дефолту, если не указан модификатор, то для методов используется private, а интерфейс требует protected(pic2)/public(pic 3)я знаю, но на 2 и 3 пик я указываю модификаторы, но все равно область видимости не позволяет мне юзать метод. В чем проблема?
>>1617425>я знаюВидимо нет.> я указываю модификаторынеправильные>область видимости при чем тут область видимости?>В чем проблема? В том, что ты не умеешь читать
>>1617425>>1617520Хуйню не неситеhttps://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/default-interface-methods
Тут есть те, кто уже давно работают и имеют опыт, мне интересно узнать ваши повседневные задачи и какими технологиями пользуетесь, еще бы хотелось знать что нужно знать помимо шарпа, если я не хочу работать с вебом
>>1617590>нужно знать помимо шарпа, если я не хочу работать с вебомШарп это только веб, всё остальное у С++, С или Python
>>1617520ты сам написал, что интерфейс требует либо паблик либо протектед, а когда я сказал что указываю их, ты начинаешь говорить что это НИ ТЕ модификаторы
>>1586030 (OP)Как при помощи C# на .NET Framework 3.5скачать файл через TOR SOCKS5 Proxy,сделав из него HTTP-proxy,и отправив запрос c WebClient'a?
>>1617406думаешь на джаве другое? Просто слишком хитровыебанные стали>>1617590слишком широкий спектр. 99% веб
>>1617753На джаве ты фронт не попишешь гвт мертв, а вот .нет мвс из коробки даёт тебе шаблонизатор на шарпе, поэтому работодатели подразумевают что ты будешь уметь ВСЕ+ горы легаси на разоре, ага
>>1617731В шарпе нет поддержки SOCKS прокси, придется либо самому писать, либо качать стороннюю библиотеку
>>1617850>работодатели эти РАБотодатели из воздуха берут требования и не знают своего штата? Просто .NET-чики такие куколды, что проглотили Razor, а вместе с ним и Jquery, JS, React/Angular сразу став Full stack (сами того не осознавая).Рыночек .NET-а гнилой, спроса мало, потребности много. Сейчас долбоебы готовы за бесплатно работать (в прямом смысле), только чтобы влезть, что говорить тогда о фронте на .NET? Но это еще не самое дно - ты еще должен уметь IIS настроить, Докер вертеть (деплой в том числе). И не забывай, что код должен быть покрыт юнит тестами (без хуйни, настоящими). Завтра моча в голову ударит - могут на Mongo перекинуть, т.к. MsSql дохуя как стоит, могут вообще нахуй выкинуть.Сейчас в любую вакансию смотришь - WebAPI+JS+Framework. Это в вакансиях .NET КАРЛ.Я уже посматриваю, куда выкатиться можно из этой помойки ебучей, а дурачки тут орут, как охуенны решеточки. Язык то может и не плох, но то, что творится в СНГ рынке на аутстафе - это пиздец и ад
>>1617894ДвачуюВлез на свою беду полгода назад, мучаюсь с ебучим жкури теперьХочу свалить, но нужно переучиваться и терять в ЗП, пиздец просто
А что это у нас? А это очередной студент распиздяй просит помощи. В общем, кто поможет сделать 2 лабы?
>>1617894>Это в вакансиях .NET КАРЛ.В вакансиях про розовых пони пишут.>WebAPI+JS+FrameworkПриходишь такой на проект и говна наворачиваешь:- нет никаких вебапи- жс код пишет другая команда- злобный архитектор запрещает использовать энтити фреймворк- юнит тесты пишутся по праздникам и вообще, это интеграционные тестыЕсли хоть один пункт не совпадает, то, голубчик, твой проект никому ненужная хуйня в вакууме.>творится в СНГ рынке на аутстафеКак же хорошо, что я не в снг и не на аутстафе.
>>1618352пошел нахуй, мразь>>1618363>В вакансиях про розовых пони пишут.А языком ты спрашиваешь реальный стэк у задрота на тех. собесе. Не нравиться - идешь нахуй домой>Приходишь такой на проект и говна наворачиваешь:"Короче это, тут немецкая GPS апликуха, нужно админку им сначала подпилить. Да там хуйня, Jquery и Vanialla JS. Да это изи все, знаешь .NET, то что у них - раз плюнуть. Допилил? Красава. У них вообщем в стафе есть бэкер, но им еще нужно UI подправить, там чуть чуть. Да это заказчик сопли жевал 3 часа в конфе, там на React-е в JSX пару компонентов выкатить и все. Ты кстати с докером работал? Вот как раз экспу набьешь - они хотят реализовать компоузы. А чего ты сидишь, уже справился? Там дверь скрипит, не можешь петли смазать?" - Жизнь .NET долбоеба разработчика>как же хорошо, что я не в снг и не на аутстафе.СНГшный раб, хуже собаки за бугром. Пиздел с одним датчанином - .NETчик фул стек. Мужику 40 лет, за всю жизнь работал на 3 проектах (называет себя фрилансером). Рассказал мне прохладную историю, что у бургов локальные чаты (в Дании так точно), где хантят только своих и даже не в офис, а на удаленку. Спрашивал насчет нашего брата - говорит никто связываться не хочет, что то на уровне Раджешей Кутропали или даже выше.Короче учите дальше свои решеточки, будете мне кофе носитьОшибка постинга: Bad Gateway
Привет аноны. Как работать с KeyValuePair? Мне нужно взять каждый ключ и его изменить, после чего у меня будет список ключей и как из этого мне сделать список KeyValuePairПримерная операция://List<KeyValuePair<key, value>>var values = path.Value.Operations.Select(pair => pair).ToList();Теперь мне надо в этом списке каждый key в KeyValuePair изменить и вернуть на место как быть?
>>1618587KeyValuePair не предоставляет возможности менять свои поля плюс это структура. Поэтому создавай новую с нужными значениями и заменяй ей старую.
>>1618608а если Dictionary? Мне нужно взять все его KeyValuePair превратить в лист, это лист по своему отсортировать и засунуть опять в Dictionary. Это возможно только через новый Dictionary?
Кто-нибудь сталкивался с тормозами HTTP-запросов в .net core? Ебанул простенькое апи на довольно мощный сервер (Win Server 2012 r2), которое делает запрос через WCF на другое стороннее апи и запрос выдаёт лютые тормоза и падает с таймаутом. При этом на другом компе из той же сетки всё норм.
>>1618610Ты лучше скажи, какую задачу решаешь, а то твои способы отдают наркоманией. Ты же знаешь, что словарь не гарантирует сохранения порядка элементов? Если тебе нужен отсортированный словарь, то и бери SortedDictionary.
>>1618678Ох, как бы описать задачу, там короче пиздец. Я должен отсортировать и дать выбор сортировки методов в swagger.То есть я через IDocumentFilter беру все вызываемые web api сортирую каждую группу по следующему принципу: Get - Post - Put - Delete это базовый пример, так же можно давать выбор в каком порядке сортировать. И сортирую Словарь где ключ- http method, а значение сама строка вызова web api. Потом это все запихивается в лист со словарями и отдаю в swagger.Щя набросаю код и скину
>>1586030 (OP)Перекат https://2ch.hk/pr/res/1618705.htmlПерекат https://2ch.hk/pr/res/1618705.htmlПерекат https://2ch.hk/pr/res/1618705.htmlПерекат https://2ch.hk/pr/res/1618705.htmlПерекат https://2ch.hk/pr/res/1618705.htmlПерекат >>1618705 (OP)Перекат >>1618705 (OP)Перекат >>1618705 (OP)Перекат >>1618705 (OP)Перекат >>1618705 (OP)Перекат https://2ch.hk/pr/res/1618705.htmlПерекат https://2ch.hk/pr/res/1618705.htmlПерекат https://2ch.hk/pr/res/1618705.htmlПерекат https://2ch.hk/pr/res/1618705.htmlПерекат https://2ch.hk/pr/res/1618705.htmlПерекат >>1618705 (OP)Перекат >>1618705 (OP)Перекат >>1618705 (OP)Перекат >>1618705 (OP)Перекат >>1618705 (OP)Перекат https://2ch.hk/pr/res/1618705.htmlПерекат https://2ch.hk/pr/res/1618705.htmlПерекат https://2ch.hk/pr/res/1618705.htmlПерекат https://2ch.hk/pr/res/1618705.htmlПерекат https://2ch.hk/pr/res/1618705.htmlПерекат >>1618705 (OP)Перекат >>1618705 (OP)Перекат >>1618705 (OP)Перекат >>1618705 (OP)Перекат >>1618705 (OP)
>>1618693Пока не въехал. У тебя метод принимает, грубо говоря, список словарей. В словаре по четыре запроса (по одному каждого типа) и в списке отдельный словарь на каждый апи метод, правильно?
>>1618716Верно. Только в словаре может быть и 1 и 2 и 3, может на запрос быть только GET, а может и get и update. А так да все верно
>>1618720Этот ответ подошел >>1618709? Там вроде порядок не настраивается, хотя прикрутить не сложно.
>>1618723>>1618709Все работает, спасибо огромное еще раз. А выборку можно прикрутить к OperationTypeComparer, труда не составит
>>1618739Если кому-то нужна реализация выборки, то вот: private int GetOrder(OperationType operationType) { if (!example.Contains(operationType)) return 0; return example.IndexOf(operationType) + 1; }example это лист с operationType
>>1618519Я другой анон. Частично соглашусь, про СНГ, необъятный объем требований в вакансия, но так у всех вроде.Ибо это требования пишут хантеры, они чуть услышали что докер нужен, это ведь круто, один раз сделал образ и разворачиваешь где хочешь а что на самом деле творится при больших проектах, ни слова ни духа. Вот и пишут.А на деле тебе же берет к себе один из отделов: бэк, десктоп и т.п. и под конкретную задачу пишешь.Только проблема в том что, c# силен только в бэке, вот и пишут js Angular, WebAPI mssql и т.д но это не значит что ты должен знать все. Знаешь Dapper WebAPI и mssql, хорошо скорее всего тебя возьмут с работой с бдно до бд никто тебя не допустит, я так начинал, с NLog "помогал".Знаешь немного js - замыкание, пробегался глазами по ecmascript, знаешь что там с angular и webapi есть шанс попасть в бэк и дадут помогать сопровождать api. Ведь намного лучше если ты знаешь что, как и почему отдавать на фронт такие данные.Так что подведя итоги можно сказать что c# переживает не лучшие времена, но я надеюсь на тенденцию майков развивать шарп в web и мы займем свое место, хотя бы такое.А такой большой объем требований это лишь рекомендации, ни разу у меня не спрашивали вообще все.
Сап C#.Мне нужно сделать вывод матрицы размерами n на n, в которой были бы случайные числа. Я создал цикл внутри цикла (красный). Тот, что красный выводит случайные числа, а чёрный просто повторяет его n количество раз.В итоге получается нечто вроде13 23 45 1413 23 45 1413 23 45 1413 23 45 14Я пытался найти как можно сделать, чтобы он каждый раз давал случайные числа, но не нашёл. Пытался как-то сброс делать через if/else, но тоже не получилосьКак можно реализовать задачу? Я ещё чайник в C#https://dotnetfiddle.net/qMZfuW - вот сам код (в онлайн компиляторе почему-то не работает, но в Visual Studio запускается)
>>1647742https://dotnetfiddle.net/qMZfuW смог сделать вот так, правда, там вторая строчка ноль всегда почему-тоКак можно найти минимальный элемент среди элементов, расположенных ниже главной диагонали, найти максимальный элемент, среди элементов расположенных выше побочной диагонали? Потом ещё найденные минимальный и максимальный элементы поменять местами и вывести их индексы.https://dotnetfiddle.net/qMZfuW - попытался начать, но там уже почему-то ошибку писало
Начал изучать ваши 4 плюса и паттерны асинхронного программирования. Планирую Так запускать код асинхронно:>var t = Task.Run(async () => {... });Вопрос, безопасно ли использовать объекты из внешнего скоупа внутри данного асинхронного анонимного метода? Просто по голангу помню, что это грабли.