Программирование

Ответить в тред Ответить в тред
C#/Сишарп/.NET Тред #19 /csharp/ /csharp/ Аноним 23/04/20 Чтв 16:05:13 16655401
csharp[1].png 331Кб, 1044x1122
1044x1122
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии. Также не забываем напоминать залетным Жаба-петухам о их месте возле параши, которая уже давно навечно забилась легаси-дерьмом и ждёт неминуемой смерти Жабы.

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

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

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

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

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

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

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

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

8. Расширения для студии
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/1618705.html


Аноним 23/04/20 Чтв 16:05:46 16655422
1200px-.NETCore[...].png 66Кб, 1200x1200
1200x1200
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 7.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином. Уже появилось издание для 8.0, однако в интернетах пока его нет.
- C# 7.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- Pro C# 7: With .NET and .NET Core (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.

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


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

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

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

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

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

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

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

18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
Аноним 23/04/20 Чтв 16:11:32 16655493
Судя по вопросам в тредах, C# медленно переползает в состояние Delphi. Видимо так и кончит. Нормальный язык в шарагах преподавать не будут. Энивей, посмотрим на .NET5, если совсем в пизду скатиться - С подобный синтаксис знаю, перекачусь в джаву на джуна или чего помоднее.
Кто думает, что это нытье - поспрашивайте в комьюнити сколько галер выкинули на мороз мин.NETчиков. Джуны с плеча в первые же дни полетели после обвала фондового рынка.
Аноним 23/04/20 Чтв 16:27:29 16655634
15840341053751[[...].jpg 134Кб, 1051x797
1051x797
>>1665534 →
>>1665263 →
>>1665470 →
>Ряяяя пачиму питухон можит а шарп ниможит!!
>НЕ ВРИИ ПИТУХОН МОЩНЫЙ ОН ВСЁ МОЖИТ!!

Не перестаю с петухонщика-неосилятора. Я думал они хоть немного умнее жопаскриптеров, но ошибался.
Аноним 23/04/20 Чтв 16:32:05 16655675
>>1665549
>3 178 вакансий «C# developer»
>2 388 вакансий «.net developer»
>6 070 вакансий «Java developer»
>5 566 vs 60 070

Даже с учетом того, насколько много легаси дерьма в жабе, C# и .net уже наступает ей на пятки. Поэтому, хорошая попытка , жабоеб, но нет.
Аноним 23/04/20 Чтв 17:07:09 16656236
>>1665563
Не понимаю, зачем ты гадишь под себя, и зачем мне врать.
Аноним 23/04/20 Чтв 17:19:13 16656517
>>1665623
Ты не врёшь, ты просто умственно отсталый дегенерат-петухонщик. Работа с файлами происходит при помощи обращения к API системы на которой запущена программа. И у этого API нет условий вида "if (PLName === "Python") file.GrantAccess()".
Аноним 23/04/20 Чтв 17:24:20 16656548
всё бы заебись, но учить дохуя в этом шарподотнете, а зарплатки невысокие
Аноним 23/04/20 Чтв 17:50:44 16656729
Аноним 23/04/20 Чтв 18:00:05 166568110
>>1665672
В долларах США за год, всё стандартно. В штатах же не практикуется указание месячной ЗП.
Аноним 23/04/20 Чтв 18:03:09 166568311
>>1665681
Мне интересно было, что тот чувак имел ввиду. Он вроде сказал что он из мордора, так что мог по привычке в месяц назвать.
Аноним 23/04/20 Чтв 18:08:55 166569212
>>1665567
извини, за неприятный пост
>наступает ей на пятки
с этого в голос проиграл. Каждый раз угораю, когда сравнивают Java с высером мелкософтов. И что у тебя за биржа, которая C# делит с .NET? Или .NET вакансии это типо Visual basic чи шо? Энивей, удачи с этими 5.5к вакансий нет
Аноним 23/04/20 Чтв 18:16:44 166569613
>>1665692
А то мало вакансий, когда фигачат джаву в объявлении, а потом оказывается что им нужен го, скала, кложа.
Аноним 23/04/20 Чтв 18:34:09 166570814
>>1665549
>Кто думает, что это нытье - поспрашивайте в комьюнити сколько галер выкинули на мороз мин.NETчиков
Без хуйни - ни одного дотнетчика с галеры не выгнали. Со скриптохуйни вроде пайтона, жс - выкинули.
С жабы и дотнета - нет
Аноним 23/04/20 Чтв 18:40:57 166571515
>>1665708
разумеется, на скриптохуйне стартапы и прочие динамично развивающиеся продукты, которые любой кризис легко сдувает, а на говне мамонта вроде кобола жабы и делфи сишарпа - масштабные легаси-конюшни крупных проектов, которые более устойчивы
Аноним 23/04/20 Чтв 18:46:48 166572016
>>1665651
Мой бугурт был в том, что питон получает доступ к файлу без ебли одной строкой, а в сисяре я до сих пор не понял, с каким еще бубном надо сплясать, чтобы все заработало. Кроме как копировать файл, читать его и удалять, но это пиздец, качественный велосипед.
Аноним 23/04/20 Чтв 18:48:39 166572317
>>1665567
>3 178 вакансий «C# developer»
>2 388 вакансий «.net developer»
Это у тебя непересекающиеся множества?
Аноним 23/04/20 Чтв 19:18:35 166574018
Как сейчас обстоят дела с вышкой? Доучиваюсь в этом году на инженера-строителя, шарпом занимаюсь примерно год но еще вакансии не смотрел. Будут ли требовать профильную вышку или и с этой пойдет?
Аноним 23/04/20 Чтв 19:19:10 166574319
>>1665692
Для .NET можно писать на любом языке, который находится в списке поддерживаемых для этой платформы, разница минимальна.
Аноним 23/04/20 Чтв 19:21:49 166574920
>>1665720
Но ведь ты сам себе в ногу выстрели в своём коде на шарпе, а виноват почему-то шарп.
И в шарпе вообще такие элементарные операции за одну строку делаются:
File.WriteAllText или File.AppendAllText
Аноним 23/04/20 Чтв 19:22:22 166575021
>>1665723
Не у меня, а у хедхантера.
Аноним 23/04/20 Чтв 19:24:29 166575522
>>1665740
Также как и всегда - она не нужна если ты обладаешь необходимыми навыками.
Сразу скажу, что для работы недостаточно "занимаюсь примерно год". Для работы ты помимо языка должен уметь работать с базами данных, знать и уметь применять базовые алгоритмы, знать и уметь применять различные структуры данных, а также разбираться в принципах и паттернах проектирования.
Аноним 23/04/20 Чтв 19:27:08 166576023
>>1665749
Мне нужно прочитать файл, а не писать в него. И он не читается, потому что якобы занят процессом.
Аноним 23/04/20 Чтв 19:29:29 166576324
>>1665760
>нужно прочитать файл
File.ReadAllText
>потому что якобы занят процессом.
Да-да, этот бред я уже слышал. Для шарпа он занят, а для петухона он не занят. Магия да и только.
Аноним 23/04/20 Чтв 19:42:23 166577625
>>1665755
Если только в жс не вкатываться. Там можно жопой код писать, лишь бы контент на странице отображался.
Аноним 23/04/20 Чтв 21:00:29 166585826
image.png 37Кб, 1144x320
1144x320
Сап. Работаю с виндоус формс в вижуал студио, нужно чтобы при указании порядкового номера студента по журналу, в таблицах(Или в таблице, не важно как, лишь бы показало) выводились данные из связанных с ним таблиц, т.е. расширенная инфа о студенте. Не подскажете как это сделать? Я просто ньюфаг, знаю только как в датагридвью выводить таблицу целиком, но мне нужна именно инфа о конкретном человеке.
Аноним 23/04/20 Чтв 21:08:58 166586427
>>1665858
Ок, я понял, разобрался. Спасибо, если кто-то хотел помочь, но теперь вопрос закрыт.
Аноним 24/04/20 Птн 08:44:17 166610128
>>1665763
>ReadAllText
Не, не хочет. Занят.
Аноним 24/04/20 Птн 09:10:50 166611129
>>1666101
Пиши на петухоне. В шарпе всё настолько плохо, что ему даже доступ к файлам перекрывают...
Аноним 24/04/20 Птн 09:21:21 166611630
>>1666111
>Пиши на петухоне
Хотелось бы, но заставляют на решетке.
Только что починил, добавив третий костыль. Просто невероятно. Господи, спасибо тому чуваку с форума, что написал решение, прежде чем закрыть топик.


using (FileStream stream = new FileStream(logFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
  using (StreamReader reader = new StreamReader(stream))
  {
    while (!reader.EndOfStream)
    {
      string line = reader.ReadLine();
      //Тут уже можно делать с линией все, что угодно
    }
  }
}


А ты, конечно, токсичный чувак, но спасибо все равно, что пытался.
Аноним 24/04/20 Птн 10:35:20 166617631
>>1666116
Так это же такой же код, как и тут >>1665470 → . Но там ты писал что не работает, а тут работает. Подозрительно.
Аноним 24/04/20 Птн 10:58:54 166619432
>>1666176
Там не было
>while (!reader.EndOfStream)
Без него не работает, с ним работает. Отака хуйня.
Аноним 24/04/20 Птн 11:11:30 166620233
>>1666194
Хм

ОТКРЫТЬ ПОТОК
@
ПРОЧИТАЛ ВСЁ
@
ЖДЕШЬ И ЖДЕШЬ
@
А КОНЦА ВСЕ НЕТ И НЕТ
Аноним 24/04/20 Птн 11:12:45 166620334
>>1666111
Это ты еще на сирашпе не подключал одну базу, вторую, менял их местами.
В отношении БД - C# та еще параша. Ну я не говорю про модные фреймворки на них
Аноним 24/04/20 Птн 11:13:30 166620435
15849625600730.png 223Кб, 512x387
512x387
>>1665743
>который находится в списке поддерживаемых для этой платформы, разница минимальна.
>разница минимальна.
>минимальна.
>>1665696
в твоем селе на заборе вакансии?
>>1665708
Lucky one. У нас конвеер трейни переходящих в джунов на галере. 6 тел с плеча на мороз с досрочным разрывом контракта. (4 трейни, 2 джуна). Они там ко-ко-кали что то, что дених нет и все такое - под сраку сапогом
Аноним 24/04/20 Птн 11:14:52 166620636
>>1666204
> (4 трейни, 2 джуна).

Бохато живёте.
Вот другие питушинные языки это да.
Пришел на них трейни, так и сидишь до миддла и довольно урчишь, получая больше и больше компенсацию
Аноним 24/04/20 Птн 11:18:26 166620837
>>1666206
Ты бы знал путь от трейни до джуна у нас в галере, ты бы охуел. Лычки мидла выдают только пердунам, вроде меня, которые по 5+ лет сидят. Обычно съебывают в другую галеру. Я просто проигрываю с этим мамкиных программистов, которые думают, что .NET это платформа богов. Ожидание-реальность...
Аноним 24/04/20 Птн 11:21:27 166621138
>>1666208
Как хорошо, что меня не взяли джуном на C# .net Галеру
В итоге без опыта на миддла взяли node.js ковырять. Адекватное руководстве превыше всяких лычек
Аноним 24/04/20 Птн 11:22:39 166621239
>>1666208
Но почему ты не уйдешь на 300к с 5+ лет опыта?
Аноним 24/04/20 Птн 11:24:05 166621340
>>1666116
Что -то ты не договариваешь. СтримРидер просто вернет налл, если достигнут конец потока. Сделай видео, где без проверки EOS выбрасывает ошибку доступа к файлу, а с проверкой читает нормально. Потому что того, о чем ты пишешь просто не может быть. Скорее всего ты еще что-то поменял, что разлочило файл.
Аноним 24/04/20 Птн 11:27:29 166621541
>>1666212
Так блять, не задавай неудобных вопросов. Он же Дартаньян и превозмогает, а остальным проще, они пишут не на дотнете и получают деньги за нихуя.
Аноним 24/04/20 Птн 11:32:00 166621942
>>1666215
Действительно, что там сложного там. If,else,0,1
Аноним 24/04/20 Птн 11:34:12 166622043
>>1666211
Двачую. У нас на джуна вопросы сеньерские задают, а заставляют говно палкой ковырять, так что все ок
>>1666212
>>1666215
думаете типо 5 лет и сразу $5к/m? Я скажу по секрету, количество лет в разработке не значат ровным счетом нихуя, если вас оценят, как дебила. Собеседовали питонщика, которому в голову моча стукнула перекатитсья в .NET (редкий дебил). Вот у него около 7 лет было питонистом, но в решетках он не знал нихуя, кроме базовых вещей, которые аналогичны в питоне.
Короче, вкатитесь - ощутите жижу прелести ОЙТИ СНГ. Я пару тредов назад писал, что не нужно сравнивать работу дэва в СНГ и европке/америке - абсолютно разные вещи.
Аноним 24/04/20 Птн 11:39:22 166622344
>>1666220
При чем тут это. Зачем ты 5 лет жрешь говно, если нет такая параша?
Аноним 24/04/20 Птн 11:46:22 166622645
>>1666116
Не перестаю охуевать с долбоеба. File.ReadAllText у него не работало, а добавление !reader.EndOfStream магическим образом открыло доступ к файлу.
Надеюсь, что это даун пытается троллить, а не реальный человек.
Аноним 24/04/20 Птн 11:47:47 166622846
>>1666226
Все так. Зачем мне пиздеть?
Аноним 24/04/20 Птн 11:48:09 166622947
>>1666220
>собеседовали питонщика, которому в голову моча стукнула перекатитсья в .NET (редкий дебил). Вот у него около 7 лет было питонистом, но в решетках он не знал нихуя, кроме базовых вещей, которые аналогичны в питоне.

Питонщик выше очередное подтверждение долбоебизма питонщиков и других динамикопетухов.
Аноним 24/04/20 Птн 11:48:54 166623048
>>1666228
Так покажи код, который без !reader.EndOfStream будет выбрасывать эксепшен из-за отсутствия доступа к файлу. Тебе же пиздеть незачем.
Аноним 24/04/20 Птн 11:54:29 166623449
>>1666230
Он наверняка сразу поток открывал, а потом пытался с открытым потоком через ReadAllText() читать.

мимо
Аноним 24/04/20 Птн 11:54:35 166623550
>>1666223
>При чем тут это
вкатыши и прочая грязь думает, что 5 лет на жопе отсидел, значит Senior. А вот и хуй
>Зачем ты 5 лет жрешь говно, если нет такая параша?
меня устраивает. 2-3 проекта, знакомый мне стэк, хорошая зарплатка, зона комфорта. Перекатываться куда то - это терять время, деньги, энергию
>>1666229
может он и хороший дев, но точно не .NET-а. Ему дали офер на джуна с ЗП в 4 раза меньше его, он его принял. Отпинал хуи 2 месяца и сказал, что это все хуйня и я уебываю
Аноним 24/04/20 Птн 11:55:20 166623751
>>1666229
Я слабо представляю себе такого питониста.
Мир открытых систем, бесплатное IDE, OS, миллион тыщ либ под питухон. Хочешь - ML BIG DATA, хочешь - скрипты, парсеры пиши, или веб во всех направлениях.
Нет блять, поиграл 7 лет с питоном и пересел на иглу Microsoft с анальзыми зондами
Аноним 24/04/20 Птн 11:59:54 166624152
>>1666237
ты просто не знаешь мотивов таких людей. На собесе - глаза горят, как все заебись писать под шиндовс нет, а по факту - 2 месяца проебаного времени и увольнение. Может он зашел в тред на дваче и почитал, как все охуенно снова нет, что ЗП овердохуя, что проекты интересные.
Аноним 24/04/20 Птн 12:10:21 166625053
>>1666241
Ну не знаю, есть легендарные посты про
- Хочу переехать в ДС\ДС2 где-нибудь на 60-100к
- Ты сишарпер чтоли?
Аноним 24/04/20 Птн 12:13:28 166625754
>>1666250
60-100к (не знаю, сколько это в долларах, 1к+ походу где то) - это медиана мидла, премидла. Вполне реальная ЗП
>- Ты сишарпер чтоли?
да, уже писал выше
Аноним 24/04/20 Птн 12:23:26 166626655
>>1666230
Я ж кидал.


List<char> list = new List<string>();
using (FileStream stream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
  using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
  {
    string line = reader.ReadLine();
    list.Add(line[0]);
  }
}
return list;
Аноним 24/04/20 Птн 12:26:47 166627156
>>1666257
А знаешь сколько получает мидл питухона? То-то и оно. даже в регионах 120к можно
Аноним 24/04/20 Птн 12:43:57 166628957
>>1666266
Так у тебя функции main нет, такое не скомпилируется.
Аноним 24/04/20 Птн 12:48:28 166629558
>>1666289
Анон то и не знает, как код показывать людям
Аноним 24/04/20 Птн 12:48:45 166629759
Аноним 24/04/20 Птн 12:51:33 166630060
>>1666295
Просто петухоно-опущенец привык, что перед господами нужно иметь вид лихой и придурковатый.
Аноним 24/04/20 Птн 12:51:54 166630161
>>1666297
Не за что. Обращайся если еще вопросы будут.
Аноним 24/04/20 Птн 13:13:58 166631062
Вопрос наверно тысячу раз задавался, но таки просьба сориентировать.
Начинать с Шилдта или с Троелсена?
Залетный тестировщик
Аноним 24/04/20 Птн 13:17:42 166631463
>>1666266
А ничего, что тут у тебя читается одна строка, а в варианте с ЕОС все строки? Это, конечно не влияет на доступ к файлу, но замена кода неравнозначная.
Аноним 24/04/20 Птн 13:33:55 166632564
>>1666310
С чего угодно. важно то, на какой книге ты кончишь свой путь
Аноним 24/04/20 Птн 13:47:44 166634565
>>1666310
Начинаешь с Троелсена.
Потом закрепляешь Альбаири с его C# in a Nutshell
Потом читаешь книгу по паттернам (Agile Principles, Patterns, and Practices in C#, очень годная)
После чего переходишь на изучение современного .NET Core (C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development Fourth Edition)

Далее следует почитать что-нибудь по работе с базами данных. После чего можешь закрепить знания путём более тщательного изучения алгоритмов и структур данных.
Аноним 24/04/20 Птн 13:48:50 166634866
>>1666314
Зачем с долбоебом разговаривать, который понял, что обосрался просто виляет сракой и наверно думает, что он охуенно всех затроллил.
Аноним 24/04/20 Птн 13:56:25 166635867
15295149790830.png 223Кб, 413x395
413x395
>>1666266
>List<char> list = new List<string>();
Да, проблема наверняка в языке.
Аноним 24/04/20 Птн 14:03:10 166636368
Аноним 24/04/20 Птн 14:15:54 166637869
>>1666358
Да, ошибка в компиляторе
Аноним 24/04/20 Птн 15:01:19 166641370
>>1666271
мне насрать сколько на пайтоне зарабатывают, я скажу больше - мне насрать сколько на # зарабатывают. Если выпилюсь из этого проекта (галеры), то скорее всего в СНГ больше работать не буду, а съебу за бугор джуном любого стэка, который мне дадут (желательно Rust/Kotlin/Golang). Просто Ойти СНГ - это такая параша блять, что от нее воняет. В прямом смысле слова, просто несет говном. И тут даже не дело в том, на каком стэке ты сидишь и чем занимаешься, все сводиться к одному - бадишопы. Для заказчика ты всегда будешь ебаным индусом из страны 3 мира. Особенно проигрываю с додиков, которые получаю лычку на комуникацию с кастомером без ПМ-а, где разговор сводится не то, что к индусу, а к умственно отсталому дебилу, который даже не может в английский Давайте пизданите мне, вкатывальщики хуевы, что ХУЯНДЕКС, МЕИЛ.СРУ, ВАРГЕЙНИК, да это ты такой ущербный, кококо- это 1%, уебки.
>>1666310
иди моки учись делать и интеграционные тесты писать, обезьяна ебаная, а не решетки учи. В них и без тебя дебилов хватает
Аноним 24/04/20 Птн 15:10:08 166642171
>>1666413
>В прямом смысле слова, просто несет говном.
>LITERALLY
>всё равно использует переносное значение
Идиот.
Аноним 24/04/20 Птн 15:44:44 166645772
>>1666413
дурачок, за рубежом будут с тобой веслать те же индусы
и говна там хапнешь не меньше
Аноним 24/04/20 Птн 16:03:19 166647773
>>1666421
>В прямом смысле слова, просто несет говном.
Сына, прийдешь ты на проект, кинут тебе абсолютно рандомный таск, например запилить аутентификацию на web API под реакт, а версия .NET-а - 3.5 допустим, где скафолдингов нет и на SOF весь код уже под 4.5+, даст долбоеб ПМ эстимейт в 2 часа на таск. Когда после 8 часов дрочки с этим говном над тобой будут стоять ПМ, фронт, ментор и все остальные, ты будешь не только сраться под себя, но и ссаться.
>>1666457
дурачек, который интерпрайза в глаза не видел что то пердит из под шконки. Я хоть сейчас готов рядом с индусом сидеть и закрывать таски, главное чтобы это был один проект не бадишопа

Мне влень на самом деле доказывать то, чего вы никогда не видели возможно никогда и не увидите, но разминайте свои анусы на то, что когда вас возьмут на проект если возьмут, то найдется такой ментор, которому от слова совсем похуй на вас, то тогда понюхаете, чем пахнет СНГшное Ойти. Все хотят килобаксы рубят, а рубят соленые хуйцы за щеку.
Уже писал в нытье треде, что даже если вас и возьмут на стажировку/исп. срок - велика вероятность, что вы там не отработает после оговоренного срока, а вас просто выставят на улицу. Сам работаю в такой галере, где джунов, трейни в хуй не ставят.
Это не нытье, это жизненный опыт. Поэтому я и пишу, после закрытия проекта - бугор и только.
Аноним 24/04/20 Птн 16:09:44 166648174
>>1666477
>ты будешь не только сраться под себя, но и ссаться.
>продолжает говорить фигурально, даже не осознавая этого
LITERALLY
Аноним 24/04/20 Птн 19:14:49 166664675
>>1666413
Типичная токсичная мелкобуква. Обдристал тебе твое и без того грязное хлебало.
Аноним 24/04/20 Птн 19:42:49 166666576
vs.png 14Кб, 577x424
577x424
>>1665540 (OP)
>Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
А почему она все равно требует лицензии?
Поставил студию некоторое время назад и вот у нее закончился ознакомительный период. Я не хочу плотить, ибо я просто для себя программирую, решаю задачки. Пиратку тож не хочу. Получается, бесплатность коммьюнити-версии - это пиздеж?
Аноним 24/04/20 Птн 19:46:05 166666977
>>1666665
Так зарегай учётку, в чём проблема?
Аноним 24/04/20 Птн 19:58:59 166667878
>>1666481
>>1666646
извините за неприятные для вкатышей посты
Аноним 24/04/20 Птн 20:07:26 166669379
>>1666669
Войти не получается, когда пытаюсь то получаю сообщение об ошибке Не удалось обновить данные для учетной записи. Ссылка на объект не указывает на экземпляр объекта
Аноним 24/04/20 Птн 20:14:13 166669880
Сеньёры, помогите. Нужно ли в интерфейс записывать метод, который только реализует сложный сеттер для свойства или можно опустить и только в имплементации реализовать?
Аноним 24/04/20 Птн 20:14:48 166669981
Аноним 24/04/20 Птн 20:36:24 166671282
>>1666698
Если сеттер является частью интерфейса, то вноси, если нет, то нет. Сори, но на твой вопрос сложно дать другой ответ.
Аноним 24/04/20 Птн 20:56:35 166671783
>>1666712
Да я вообще запутался со всем этим. Налицо какое-то излишнее дублирование и фрагментация. Поля, свойства, геттеры/сеттеры, методы. Я ебал. Ну типа рекомендуют поля делать приватными, а во вне выпускать свойства. Окей. Есть ещё авто-свойства, когда можно не пилить поля(они там сами пилятся вроде как). Сколько логики писать в этих геттера/сеттерах, когда писать отдельные методы, куда пихать резальтат этих методов, просто присваивать свойству или в геттерах сеттерах реализовывать. Короче в голове каша ебаная. А тут ещё интерфейсы, абстрактные классы, классы и это всё друг на друге. Пиздос. И это только азы, что же будет дальше(дальше будет дроп).
Аноним 24/04/20 Птн 21:06:21 166672084
>>1666698
Если метод общий для всех наследников, то реализуешь, если нет, то нет. Вообще, в интерфейсах реализовать нужно как можно меньше, интерфейс это шаблон, который не знает ничего кроме сигнатур. Если хочешь реализовывать, то значит тебе нужен абстрактный класс.
Аноним 24/04/20 Птн 21:07:51 166672185
>>1666717
Так нахуй ты во всё это полез, если не изучил принципы и паттерны проектирования с применением ООП? Очевидно, что ты хуйню делаешь, которая тебе никакой пользы не принесёт.
Аноним 24/04/20 Птн 21:12:02 166672486
>>1666720
Не, про интерфейсы я понял, реализую я как раз всё в классе.

>>1666721
Чел, мне понадобилось пару программ мелких, я решил под шумок подучить шарп, какие нахуй паттерны? Скажи спасибо, что я не бездумно хуярю лишь бы работало, а пытаюсь разобраться. Лучше бы подсказал, куда копать, а не выёбывался.
Аноним 24/04/20 Птн 21:19:21 166673387
>>1666724
Так я тебе и сказал куда копать, долбоеб. Либо читаешь литературу по паттернам проектирования и принципам SOLID, либо хуячишь свой говнокод. Третьего не дано.
Аноним 24/04/20 Птн 21:23:27 166673588
>>1666733
Всё, что ты высрал, это претензии, почему я такой тупой и не делаю, как сеньёры.
Аноним 24/04/20 Птн 21:31:46 166674789
>>1666724
Зачем тебе выносить изменение свойства в отдельный интерфейс? Если ты вынесешь этот сеттер в интерфейс, получается, что ты будешь позволять другим обьектам вызывать сеттер и изменять тем самым внутреннее состояние этого обьекта. Не знаю, что ты хочешь сделать, но выглядит уже криво.
Если хочешь менять стратегию изменения свойства на лету, то можно вынести это в отдельный интерфейс, и потом его инжектить.
Но это тоже странно.
Короче приведи пример, что ты хочешь сделать и зачем, я тебе подскажу.
Аноним 24/04/20 Птн 22:19:41 166677890
>>1666735
Вполне закономерно, учитывая твоё желание "хочу делать как сеньор, но учить ничего не хочу, научите меня не видя моего кода, прочитав мои мысли".
Аноним 24/04/20 Птн 23:22:48 166682691
>>1666717
public class Zalupa
{
public int Number {get; set;}
}

Для начала делай так и не выебывайся.
Вообще не понимаю этого дрочерства - пока у тебя не возникнет потребности в интерфейсах, абстракных классах, делегатах, дженериках, dependency inejctor'ax - не лезь туда вообще нахуй. Без опыта со слезами и с кровью - всё это выветрится быстро.

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

/thread
Аноним 24/04/20 Птн 23:32:41 166684392
>>1666826
Мань, это актуально было лет 10 назад, сейчас если ты внятно не ответишь на вопрос "Что вы знаете об акрониме SOLID?", приведя примеры и расписав каждый принцип. Тебя сразу нахуй пошлют, даже алгоритмические задачи не попросят решить.
Аноним 25/04/20 Суб 00:05:12 166688893
>>1666843
Кекус, работаю миддлом - вообще кроме акронима ничего о SOLID не слышал.
Аноним 25/04/20 Суб 00:45:20 166690894
>>1666888
галерный мидл в тренде, я спокоен
Аноним 25/04/20 Суб 01:17:21 166692195
15849625600730.png 223Кб, 512x387
512x387
>>1666843
>алгоритмические задачи
Аноним 25/04/20 Суб 07:46:19 166698096
>>1666888
Ну такой же долбоеб, как и тот выше. Ошибка выжившего во все поля. Попробуй пройти собес, тебя даже на позицию джуна не возьмут.
Аноним 25/04/20 Суб 13:17:22 166712897
>>1666980
Риночек порешал, бывшие мидлы теперь на трейни-джунов не годятся
Аноним 25/04/20 Суб 15:31:44 166721898
Поясните тупому. Можно ли как-то сделать так. чтобы дженерик тип принимал только числовые значения? Скажем, вот я делаю класс Calculator<T>, хочу чтобы в нем были метод T Add(params T[] items) и не хочу чтобы кто-то впихнул какой-нибудь string в качестве типа.
Аноним 25/04/20 Суб 15:44:43 166722299
>>1667218
Calculator<T> where T: byte, short, int, long {}
Аноним 25/04/20 Суб 16:07:58 1667233100
>>1667218
where T : unmanaged, IComparable, IEquatable<T>
Аноним 25/04/20 Суб 16:10:11 1667236101
>>1667233
Короче примерно так, но я бы проверил типы внутри функции все же, через typeof.
Аноним 25/04/20 Суб 16:56:35 1667251102
>>1666980
>>1667128
Два месяца назад перекатывался на 1.5х по зп, так что вы мимо. Ах да, я как правило резюме никуда не посылаю, и половина фаундеров энтерпрайзных продуктовок в моем мухосранске знает меня в лицо и увольняюсь с периодом оповещения в 5 месяцев. Таки рыночек порешал. Мани, жду вас на собесе, подготовил задачки по методичке.
Аноним 25/04/20 Суб 16:58:08 1667253103
>>1667251
Вы как бы вообще не поняли рыночек: C# это про бизнес, бизнес, формы, бизнес-энтерпрайз,. За алгоритмами идите Идрис дрочите советую.
Аноним 25/04/20 Суб 17:28:59 1667276104
>>1667251
>>1667251

>и половина фаундеров энтерпрайзных продуктовок в моем мухосранске знает меня в лицо и увольняюсь с периодом оповещения в 5 месяцев

Так почему мимо то? Очевидный опездол-кабанчик, который вкатился в IT на его восходе, когда достаточно было знать базовый синтаксис одного языка. Теперь тебя берут только по знакомству, а самое смешное, что даже на должность сеньора не дают встать. Ты сам только что себя обоссал, миддл. Теперь тебе и остается только фантазировать о том, что "да это не я тупой, просто языку этого не нужно", смеша остальных.
Аноним 25/04/20 Суб 18:08:28 1667314105
>>1667276
Да ладно тебе. Он тут самый успешный сеньор-помидор. Программист #1 своего мухосранска
Аноним 25/04/20 Суб 18:26:36 1667325106
>>1667276
>на должность сеньора
Это которые 25-летние или с тремя годами опыта? Если нет хотя бы 10-15 лет - не нызывай себя сеньйором.
Аноним 25/04/20 Суб 18:29:24 1667328107
>>1667325
Можешь и в 15 быть сеньором, вся информация уже давно в открытом доступе, времена "набить шишек чтобы понять" уже давно прошли.
asp net core webapi Аноним 25/04/20 Суб 19:48:42 1667430108
Хочу сделать policy чтобы добавлять её к контроллерам которая будет непущать если IP в банлисте. Пишут что надо делать добавлять новую policy и там делать policy.Requirements.Add и добавлять свой requirement и AuthorizationHandler. Но дело в том что в классе AuthorizationHandler фреймворк даёт объект ClaimsPrincipal чтобы я типа по клеймам делал авторизацию. А чтобы клейм добавить нужно как-то логинить пользователя, jwt ему там присваивать или куки, а я не хочу этого делать, не хочу логинить пользователя, хочу чтобы анонимно запросы работали, только айпишник проверялся. Надо кастомный AuthenticationHandler пилить где добавлять еще клейм для ip я полагаю? Или какие еще решения видите?
Аноним 25/04/20 Суб 20:00:44 1667451109
>>1667430
У тебя есть аттрибут AllowAnonymous для метода в контроллере, есть HttpContext с IP адресом. Остальное как бы от твоей фантазии зависит.
Но я бы в Middleware фильтр бы сделал кастомный и все. Просто банлист для определенного метода это странно.
Аноним 25/04/20 Суб 20:16:29 1667466110
>>1667328
Всё, я понял, в 15 лет сразу поставим сеньйора софт для боинга, энтерпрайз для больничек, ну или на крайний случай финансовый хайлод пилить, всё ж в открытом доступе давно, бро.
Аноним 25/04/20 Суб 20:33:00 1667485111
>>1667466
Нет, ты не понял. У тебя ведь логика уровня "не служил в армии - не мужик".
Аноним 25/04/20 Суб 21:15:09 1667547112
Аноним 25/04/20 Суб 21:22:04 1667556113
>>1667466
Для больничек и финансовый хайлоад (сбер, лол) очень часто имбецилы и пишут, особенно когда больнице на хайтек карман жмёт или туда начинает влезать гос-во. Приходилось проходить.
Для боингов планка конечно крутая, но и туда прорываются. Если разработка не для летающих сараев, то тебя будут драть по устройству cpu, ram и прочему байтойобству.
Аноним 25/04/20 Суб 21:25:10 1667562114
>>1667451
>>1667547
Я сделал просто милдвар после аутентификации который если пользователь не аутентифицирован все таки кое где есть логин, но для других целей даёт ему клейм с айпишником, а дальше уже в авторизации как обычно по этому клейму проверка
Аноним 25/04/20 Суб 22:07:46 1667607115
>>1667556
Ну так я и говорю, что после 30 лет опыта доверить простые датчики не каждому можно, а тут 15 летнего сеньйора, прошедшего книжки по алгоритмам и сделавшего пару десяток простых приложений от веб-сайтов до движка для видеоигр и своего компиляторя В ЛУЧШЕМ СЛУЧАЕ будут садить делать софт с тяжелейшим domain и requirements, а в худшем речь идет про школьника, которые веб-сайты по туториалам научился клепать/скрипты на юнити/приложения для андроида.

>>1667485
Именно так, но не про армию, а про то, что уровень сеньйора - это уже не уровень просто программирования, это уже специализированные знания computer science/научной области или бизнеса в которой работает программист. Конечно, если вы дженерик-конюшна-abstract приложения клепаете, то да, "сеньйором" стать в 15 лет можно. Поэтому нехуй себя сеньйорами называть после 5 лет клепания mvc приложений для разных галер.
Аноним 26/04/20 Вск 10:49:34 1667853116
сап, учусь погремировать на винформс и тут созрела такая хуйня: как мне выделить сразу все button, label, textbox на форме?Вся эта хуйня уже создана на форме. Пытался гуглить но нихуя. нашел какой-то способ через List<Button> но это не то
Аноним 26/04/20 Вск 11:16:05 1667867117
>>1667853
Что ты подразумеваешь под выделением?
Аноним 26/04/20 Вск 11:23:34 1667871118
>>1667867
мне перебрать нужно чтобы изменить цвет
Аноним 26/04/20 Вск 11:28:36 1667873119
>>1667871
Ну добавляй в коллекцию и меняй. Хотя для этого есть стили.
Аноним 26/04/20 Вск 11:51:45 1667889120
>>1667871
var controls = Controls.OfType<Button>.ToArray();
foreach (c in controls) {
c.BackgroundColor = Color.GayishBlue;
}
Аноним 26/04/20 Вск 11:52:21 1667891121
>>1667873
>Хотя для этого есть стили
Ща, в винформс-то стили
Аноним 26/04/20 Вск 11:52:49 1667892122
>>1667889
>как мне выделить сразу все button, label, textbox
>Controls.OfType<Button>.ToArray();

Ясно.
Аноним 26/04/20 Вск 11:57:59 1667896123
>>1667892
Может тебе ещё отсосать?
private void laba1() {
IEnumerable<Control> GetControlHierarchy(Control root) {
var queue = new Queue<Control>();
queue.Enqueue(root);
do {
var control = queue.Dequeue();
yield return control;
foreach (var child in control.Controls.OfType<Control>())
queue.Enqueue(child);
} while (queue.Count > 0);
}
GetControlHierarchy(this)
.Where(x => x is Button || x is Label || x is TextBox)
.ToList()
.ForEach(x => x.BackColor = Color.Blue);
}
Аноним 26/04/20 Вск 14:44:01 1667995124
Посоветуйте норм стек под C#
Уже много лет пишу на Windows Forms за $1000, заебало
Аноним 26/04/20 Вск 15:01:45 1668021125
>>1667995
Дурак, сиди пока дают.
Аноним 26/04/20 Вск 15:06:15 1668032126
>>1665549
>Нормальный язык в шарагах преподавать не будут
Охуенная у тебя логика, в моей преподавали java с sql несколько лет подряд например. Они тоже через три года вымрут?
Аноним 26/04/20 Вск 15:17:07 1668048127
image.png 531Кб, 500x467
500x467
>>1668021
У меня зарплата в рублях и повышать её явно никто не собирается. In fact, она падает даже в рублях.
Аноним 27/04/20 Пнд 04:17:20 1668632128
>>1667995
>норм стек под C#
>много лет пишу на Windows Forms за $1000

Здесь что-то не сходится.
Как можно себя не уважать и много лет писать за миску джуна?
Аноним 27/04/20 Пнд 04:35:30 1668635129
>>1668632
Рынок сярпа за пределами северной америки практически не существует, на 3к$ позицию в москве по 200 апплаев выпердышей из всевозможных говновузов
1000$ за настолько рудементарный шлак как винформы еще поискать надо
Аноним 27/04/20 Пнд 05:29:52 1668646130
>>1668635
Как хорошо, что я выбрал веб.
Веб это то, ради чего С# создавался много лет назад, но люди еще не осознали (и осознают не скоро)
Аноним 27/04/20 Пнд 09:24:40 1668729131
image.png 1525Кб, 810x1080
810x1080
Пролистал вчера книжку про ASP из шапки, теперь что, жаваскрипт, вёрстка и можно пердолить пет-проект?
winforms-кун
Аноним 27/04/20 Пнд 10:33:44 1668778132
Аноним 27/04/20 Пнд 11:55:11 1668851133
image.png 281Кб, 341x366
341x366
Аноним 27/04/20 Пнд 12:03:19 1668870134
>>1668851
Нильзя! Я так скозал! Не смей!
Аноним 27/04/20 Пнд 14:47:03 1669089135
Аноним 27/04/20 Пнд 14:47:04 1669090136
Аноны, вкатываюсь в си шарп, прочитал руководство Герберта Шилдта, теперь нужно задачки где-то нагуглить. Есть какие-нибудь реально удобные ресурсы?
Аноним 27/04/20 Пнд 16:01:27 1669219137
>>1669090
Одной книги будет мало, читай теперь Альбаири, потом открывай книгу по паттернам и принципам комментирования (Agile Principles, Patterns, and Practices in C#), далее тебе понадобится книга по .NET Core, после этого ты либо учишь ASP.NET фреймворк, либо WPF, а также закрепляешь всё книгой по базам данных. И только тогда можешь переходить к практике.

Задачки на структуры данных и алгоритмы можешь найти на:
https://leetcode.com/problemset/all/
Аноним 27/04/20 Пнд 16:55:32 1669268138
>>1669219
Спасибо, анон. Еще такой вопрос, в списках рекомендуют вместо Альбахари Рихтера пройти, в чем разница?
Аноним 27/04/20 Пнд 17:02:12 1669276139
Я правильно понимаю, что вызов асинхронного метода без await кидает этот метод на выполнение в планировщик (и он уже где-то выполняется, предположительно в другом потоке из пула), а код продолжает работать, то есть это примерно как ключевое слово go в одноименном языке?
Выглядит как неплохой способ одновременно выполнять множество HTTP-запросов.
Почему тогда руководство советует всегда делать await https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/error-messages/bc42358 какой тогда смысл в асинхронности, если всегда ждать выполнения?
Аноним 27/04/20 Пнд 17:07:48 1669281140
>>1669276
Это для клоунов которые не понимают что вообще происходит и обсираются на асинхронщине. Если ты понимаешь что такое асинхронность, как с ней работать и зачем она тебе нужна то спокойно забиваешь на await.
Аноним 27/04/20 Пнд 17:20:33 1669295141
example.jpg 33Кб, 366x550
366x550
Есть документы, содержащие отдельные куски данных для единой сущности, типа как на пике.
Сейчас я сериализую/десериализую их лютым говнокодом с использованием jobject["name"] из newtonsoft.json.
По идее надо бы их обрабатывать методом ToObject<struct>/FromObject, но я хз как это прикрутить.
В общем накидайте советов мудрых, с меня как всегда.
Аноним 27/04/20 Пнд 17:22:03 1669296142
>>1669295
На пике имеется в виду масса хранящегося ресурса, а не самого part, если что.

быстрофикс
Аноним 27/04/20 Пнд 17:40:05 1669313143
>>1669268
Рихтера нужно проходить в самом конце, уже после практики. Рихтер это взгляд в глубину. Альбахири это тоже своего рода взгляд в глубину, но не такой детальный как у Рихтера.
Аноним 27/04/20 Пнд 17:52:16 1669325144
>>1669276
>какой тогда смысл в асинхронности, если всегда ждать выполнения?
Смысл в том, что передаётся управление в контекст вызвавший асинхронную функцию, т. е. у тебя программа не застывает, а продолжает функционировать.
Если тебе множество запросов нужно сделать, то для этого используется массив, и никаких await не нужно. В этом и заключается бест практис - ты составляешь свой код так, чтобы у тебя не было необходимости пропускать await, потому что это понижает читаемость кода. Сейчас ты помнишь, что это асинхронный метод, а через неделю ты забыл. Не говоря уже о посторонних разработчиках.
Аноним 27/04/20 Пнд 17:59:15 1669334145
Аноним 27/04/20 Пнд 18:02:17 1669338146
Аноним 27/04/20 Пнд 18:26:24 1669352147
Часик в радость, почаны. Насколько хорошо надо знать си шарп, чтобы вкатиться в инити дева? Работаю куа макакой мобильной, все на юнити, хочу вкатиться.
Аноним 27/04/20 Пнд 18:28:07 1669354148
>>1669352
Больше понадобятся знания алгоритмов и структур данных, знаний именно шарпа в юнити не много.
Аноним 27/04/20 Пнд 18:30:42 1669356149
>>1669354
т.е. начинать вкат стоит непосредственно курсов по юнити, а не по си шарпу?
Аноним 27/04/20 Пнд 18:38:11 1669360150
>>1669356
Очевидно, что если шарп не знаешь, то начинать с него нужно, но не углубляясь в детали. Базового синтаксиса будет достаточно. После чего сразу можешь переходить к алгоритмам и структурам данных, может тебе это вообще не зайдёт. Далее углубляешься в тему асинхронности, параллелизма и многопоточности. Закрепляешь всё принципами и паттернами проектирования. И вот тогда уже можешь начинать вкатываться в юнити. И не с ёбанных курсов, курсы это дно. А с книг.
Аноним 27/04/20 Пнд 18:50:18 1669371151
>>1669360
>асинхронности, параллелизма и многопоточности
У юнити особый путь насчет этого дела, либо имитация многопоточности в корутинах, либо ecs, которое ближе к функциональному программированию наверное.
Аноним 27/04/20 Пнд 18:56:43 1669383152
>>1669334
Что-то похожее я и называл говнокодом.

>>1669338
А вот за это спасибо, выглядит лучше.
Аноним 27/04/20 Пнд 19:13:49 1669407153
image.png 308Кб, 400x308
400x308
Нашёл у жс-питухов в треде курсы по вёрстке, сижу, давлюсь, это полный пиздец какой-то.
С самим жс никаких проблем, кажется, нет, прочитал онлайн-учебник из их треда, он наоборот хороший единственный новый концепт там это прототипное наследование, вся функциональщина на месте, что такое рекурсия и промисы мне изучать заново не надо.
Думаю, надо имиджборду написать по доброй традиции, только я с фронтом ещё совсем не разобрался. Все советуют какой-то Vue и React, в отличие от самого JS с ними нихуя не понятно.
winforms-кун
Аноним 27/04/20 Пнд 19:15:25 1669410154
>>1669219
принципы комментирования?? oh lol!
Аноним 27/04/20 Пнд 19:21:51 1669431155
Аноним 27/04/20 Пнд 19:34:23 1669459156
>>1669276
Сложно понять по откмментировавшим тебя кунам, понимают они чего пишут или нет, но на всякий случай еще один ответ добавлю.

Без await твой код, который выполняет какую-то IO операцию и помечен как async будет выполняться синхронно. Т.е. поток, который выполняет твою функцию будет тупо сидеть и ждать, когда внешняя операция завершится (БД, веб АПИ, любой другой сервис, который не CPU bound, т.е. выполняется на другом процессоре, а не том же самом где крутится твой прога).

У ОС ограниченное кол-во потоков. Если твой код принимает 1к+ запросов в минуту и каждый из них будет просто висеть и ждать 1сек+, пока сторонний сервис не вернёт ответ, то у тебя образуется огромная очередь из запросов, которые в итоге начнут вываливаться с timeout и nonexistent network ошибками. А те запросы, что в итоге обработаются, будут выдаваться с 10-100-200 сек задержкой.

При async/await у тебя внутри создаётся state machine, которая помечает точку, откуда управление передаётся в другой поток и возвращает выполняемый поток в общий Thread Pool. Когда внешний сервис вернул ответ, то state machine выделяет новый поток и продолжает выполнение твоего кода. Так ты увеличиваешь throughput своего приложение тысячекратно.

Task.Run(() => action) - этот чувак создаёт background thread и запускает твой action там, а сам продолжает выполнение основного метода. Называется fire-and-forget mode.
Этот путь не спасёт тебя от описанной выше проблемы, т.к. код будет палалелльным, но нифига не асинхронным, твой поток так же будет сидеть и ждать завершения внешней операции.
Аноним 27/04/20 Пнд 19:40:49 1669464157
>>1669459
Косяк в начале. Без await, как и сказали до этого, твой метод будет продолжать выполняться. Это норм, если тебе не надо ждать выполнения твоего async метода.
Аноним 27/04/20 Пнд 20:05:46 1669481158
>>1669407
Забей на жс фреймворки в начале. Попытайся сваять что-то вручную без всяких сторонних библиотек (ну может только jQuery, но и он нынче не нужен, потому что стандартный браузеровский АПИ много из этого уже умеет).

Там главная проблема - это мысленно суметь провести грань между backend и front-end (хз почему один пишут с дефисом, а другой нет).
Твой бэк на дотнете принимает запрос (request) от браузера, ты его обрабатываешь и отдаёшь ответ (response). Всё.
Тебе надо суметь вызвать метод на бэке (копай routes) через, например, Controller -> Action и вернуть какую-то модель обратно. В твоём html ты эту модель принимаешь и рендеришь чего надо. Хоть через Razor, хоть через asp теги, хоть вручную делая из жс ajax запрос.

А потом научишься уже эти модельки и через Vue и React и Angular обрабатывать.
Аноним 27/04/20 Пнд 20:14:20 1669484159
>>1669459
Тебе следует перечитать темы асинхронность, многопоточность и параллелизм и перестать нести хуйню.
Аноним 27/04/20 Пнд 20:36:46 1669500160
>>1669481
>Там главная проблема - это мысленно суметь провести грань между backend и front-end
Ну отдавать html я научился, это совсем не проблема. Клиент-серверные вафельницы успел пописать и на формах. Синтаксис Razor тоже для даунов-аутистов. Пока самая большая загадка именно фронтенд. Там какие-то селекторы, псевдоэлементы, малофья, и всё не похоже на то, что я видел давным-давно в универе когда не было html5.
Спасибо, что читаешь мои высеры, мне тут немного одиноко.
winforms-кун
Аноним 27/04/20 Пнд 20:38:02 1669505161
>>1669484
Такой первый ответ и ожидал.
Если есть реальный опыт в хайлоаде, когда у тебя и CPU и RAM на 100% используются на всех серверах разом, то рад буду что-то новое/полезное услышать.
Аноним 27/04/20 Пнд 21:18:19 1669550162
image001.jpg 15Кб, 342x349
342x349
Здравие, хлопцы.
Уже давно возникла идея решения задач через программу. Но есть микро загвоздка - я в душе не ебу как её реализовать и можно ли это реализовать вообще:
На пикчербокс ты сам перетаскиваешь нужное тебе изображение и оно автоматически привязывается к валу(ременная передача на 1-м валу. на втором валу та же ременная + подшипники + зубчатая передача), который при этом сам рисуется на том же пикчербоксе(как на картинке). Это реализуемо или я попросту зря трачу своё время?? В интернете хуй найдешь подобное, уже пробовал. Благодарю каждого за ответ
Ебашу в vs на windows forms
Аноним 27/04/20 Пнд 21:38:52 1669587163
>>1669550
И да, и нет. Сложно понять, тут либо очень сложно, либо очень просто. Ну ты понял. Сами изображения форм не выглядят сложно, возможно если есть статистическая основа то можно закодить туда "крепления" для других геометрических форм. У нас на работе так квадраты можно перетаскивать и приклеплять к другим через линии, ну и типо flow constructor в итоге, но я туда ни разу не смотрел, на формах всё.
Аноним 27/04/20 Пнд 21:42:50 1669592164
>>1669550
Кароче снизь сложность задачи до самой легкой, которую даже собака решит, забудь вообще про окружности и про там эти приборы какие-то там, работай с квадратами, и максимум два твоих этих валов линии кароче, и попробуй сделать на формах самое примитивное. Если получится и адекватный объем работы, то оттуда иди дальше.

>>1669587
Аноним 27/04/20 Пнд 21:57:39 1669601165
>>1669592
Спасибо, добрый человек. Сегодня-завтра попробую и отпишу
Аноним 27/04/20 Пнд 22:16:31 1669615166
>>1669505
>При async/await у тебя внутри создаётся state machine, которая помечает точку, откуда управление передаётся в другой поток и возвращает выполняемый поток в общий Thread Pool.

Верно только то, что создаётся state machine. Далее идёт ошибочное заключение о том, что управление передаётся в другой поток и про выделение нового потока.

await как раз и создавался для того чтобы не создавать новых потоков для асинхронных I/O операций, которые эти потоки никак ускорить не могут, потому что эти операции от них не зависят, это не вычислительные операции, это операции которые используют сторонние ресурсы - сначала системное API, потом системные дескрипторы, после чего всё передаётся во внутреннюю систему устройства (жесткий диск/сетевой адаптер). И всё это время поток ничего не делает, он просто ждёт. Поэтому и нет смысла создавать отдельный, когда у тебя уже есть один.
Thread Pool в таких ситуациях задействуется только во время получения ответа от стороннего ресурса и для уведомления потока, который вызвал асинхронную операцию, о том, что он получил ответ и пора вернуться и продолжить код идущи после оператора await.
И создание отдельного потока в таких ситуациях действительно может произойти, но только в том случае, если инициализировавший асинхронную операцию поток оказывается занят (именно поэтому не рекомендуется в асинхронном коде использовать Thread.Sleep()) и создание нового потока является нежелательным, так как это тратит много ресурсов и заставляет заниматься синхронизацией контекстов вызвавшего и нового потока.
Аноним 27/04/20 Пнд 22:18:32 1669618167
>>1669550
Лучше на wpf такое делать, у неё больший функционал для работы с графикой.
Аноним 27/04/20 Пнд 23:56:05 1669701168
>>1669615
Спасибо за детальный ответ.
https://docs.microsoft.com/en-us/dotnet/standard/async-in-depth

Под
>управление передаётся в другой поток
имелось ввиду что дальше выполнение будет где-то на другом ЦПУ, пусть и виртуальном (если речь о настоящем IO), ведь выполнение чего-либо без потока в принципе не возможно. И этот ЦПУ может быть на другой машине, на другой ОС и т.д. А настоящий поток, в котором исполняется операция, далее не используется, и либо
- возвращается системе для переиспользования;
- прогоняется синхронно, ожидая выполнения. Тут зависит от длительности операции и стратегии оптимизации, которую конкретный runtime выбрал.

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

>await как раз и создавался для того чтобы не создавать новых потоков для асинхронных I/O операций
Я по-моему то же самое написал. Тут или мой скил писанины страдает, или ваш - чтения.

https://docs.microsoft.com/en-us/dotnet/standard/threading/the-managed-thread-pool
>Use of the thread pool is significantly easier in Framework 4 and later, since you can create Task and Task<TResult> objects that perform asynchronous tasks on thread pool threads.

Пул потоков имеет какое-то ограниченное кол-во готовых к использованию потоков. Для IO операции поток сначала возвращается в пул и после возврата ответа от стороннего процесса выдаётся другой поток (редко тот же самый) для продолжения операции. Это легко проверить через тесты или в дебагере. ID у изначального потока и у того, который будет продолжать оперцию, будут разные. Из-за этого можно потерять изначально имеющиеся данные, если о них за ранее не позаботиться (всякие Sync Context, ConfugreAwait, и прочие плюшки).

Такое ощущения что я заного первое сообщение переписываю.
Аноним 28/04/20 Втр 01:38:06 1669746169
c545b379ace1185[...].png 152Кб, 2200x1627
2200x1627
Аноним 28/04/20 Втр 14:03:50 1670177170
Какие преспективы для шарписта в плане работы? Стоит ли вкатываться?
Аноним 28/04/20 Втр 14:20:25 1670217171
Аноним 28/04/20 Втр 14:30:09 1670224172
>>1669615
>await как раз и создавался для того чтобы не создавать новых потоков для асинхронных I/O операций, которые эти потоки никак ускорить не могут, потому что эти операции от них не зависят, это не вычислительные операции, это операции которые используют сторонние ресурсы - сначала системное API, потом системные дескрипторы, после чего всё передаётся во внутреннюю систему устройства (жесткий диск/сетевой адаптер). И всё это время поток ничего не делает, он просто ждёт. Поэтому и нет смысла создавать отдельный, когда у тебя уже есть один.
Я вот одного не могу понять толком: что делает await?
Я правильно понимаю, что он блокирует выполнение кода до окончания выполнения вызванного асинхронного метода. То есть останавливаемся и ждем, пока метод выполнится.
Или нет?
И что будет, если асинхронный метод (объявленный с ключевым словом async) вызвать без всякого await, то есть написать method (arg1, arg2...)? Он где-то выполнится асинхронно (возможно, в другом потоке), а выполнение метода, вызвавшего его просто продолжится? Или для такого поведения делать Task.run()?
Аноним 28/04/20 Втр 14:32:43 1670229173
>>1670224
>await
аналог бинда асинхронной монады, так понятнее?
Аноним 28/04/20 Втр 14:35:02 1670232174
>>1670229
Это и так понятно. Просто смущает данная фраза

>The await operator suspends evaluation of the enclosing async method until the asynchronous operation represented by its operand completes. When the asynchronous operation completes, the await operator returns the result of the operation, if any. When the await operator is applied to the operand that represents an already completed operation, it returns the result of the operation immediately without suspension of the enclosing method. The await operator doesn't block the thread that evaluates the async method. When the await operator suspends the enclosing async method, the control returns to the caller of the method.
Вроде в первом предложении написано, что вызывающий метод приостанавливается и "ждет" возврата из вызванного с await метода, но тут же написано, что поток не блокируется. Это как?
Аноним 28/04/20 Втр 14:40:52 1670241175
Аа, кажется разобрался. Можно вызвать асинхронный метод и код в вызвавшем методе пойдет выполняться дальше, а await можно вызвать уже позже, когда реально понадобится результат вычислений.
Аноним 28/04/20 Втр 14:43:39 1670245176
>>1670224
Он оборачивает вызываемый метод в Task/Task<T> и добавляет к нему вызов ContinueWith после которого у тебя выполняется остальная часть кода, которая идёт после await.

например:

int sum = await Sum(2,2);

Оборачивается в

Task<int>.Run(()=>//здесь будет выполняться развернутый код асинхронного метода Sum).ContinueWith(r=>sum = r // и тут остальной код после await);

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

> что будет, если асинхронный метод (объявленный с ключевым словом async) вызвать без всякого await

Будет обычный Task.Run, после которого выполнение кода продолжиться, например:


int sum = Sum(2,2);
int sum2 = Sum(3,3);

Превратится в

Task<int> sum = Task<int>Run(()=>код Sum);
Task<int> sum2 = Task<int>Run(()=>код Sum);

И код продолжит выполняться.
Аноним 28/04/20 Втр 14:46:37 1670247177
>>1670232
Это так, что поток освобождается и не ждёт выполнения операции. Т. е. он попадает в пулл потоков и тот уже распределяет его на другие задачи, которые нужно выполнять. Т. е. это избавляет от оверхеда при создании нового потока.
Аноним 28/04/20 Втр 19:47:13 1670673178
>>1669481
>Тебе надо суметь вызвать метод на бэке (копай routes) через, например, Controller -> Action и вернуть какую-то модель обратно. В твоём html ты эту модель принимаешь и рендеришь чего надо. Хоть через Razor, хоть через asp теги, хоть вручную делая из жс ajax запрос.
Немного неочевидно написал, с твоего ответа может показаться, что мы на фронте можем что-то рендерить с помощью Razor и asp тегов, но всё это происходит на бэке, на фронт уже чистый html приходит.
Аноним 28/04/20 Втр 20:03:19 1670702179
>>1670177
будешь CEO кофе носить и приказы исполнять. Такие кадры нужны, вкатывайся
Аноним 28/04/20 Втр 20:36:09 1670764180
>>1669746
Фронт-енд не нужон, я так считаю. Джейсон жив.
Аноним 28/04/20 Втр 23:41:01 1671014181
>>1670245
>например:
>
>int sum = await Sum(2,2);
>
>Оборачивается в
>
>Task<int>.Run(()=>//здесь будет выполняться развернутый код асинхронного метода Sum).ContinueWith(r=>sum = r // и тут остальной код после await);
>
Это жирный троллинг или ты просто долбаеб?
Аноним 29/04/20 Срд 00:01:18 1671037182
>>1671014
Понятно, что там всё делается через стейт машину, внутри которой сощдается таск, но принцип одинаковый, как и результат.
await это обычный сахарок, который позволяет не засирать код созданием тасков и связанных с ними конструкций, именно таких которые я описал.
Аноним 29/04/20 Срд 06:07:34 1671119183
Есть массив Action мясистых, там их около тысячи штук. Как сделать, чтобы они выполнялись параллельно тредами из пула, но не все сразу, а только 16 одновременно? Т.е. чтобы пока не освободится тред, новый такс не стартовал?
Аноним 29/04/20 Срд 06:32:55 1671127184
>>1671119
Ну сделай пул со счётчиком и запускай в новом потоке, увеличивая счётчик, при выполнении таска уменьшай. Крути всё это в цикле и всё. Но ты учти, если и тебя таски короткие, то будет только хуже с многопоточностью.
Аноним 29/04/20 Срд 06:34:22 1671128185
>>1669746
Когда уже блазор-васм релизнут?
Аноним 29/04/20 Срд 06:38:18 1671130186
>>1671119
Семафор, специально для этого
Аноним 29/04/20 Срд 08:20:35 1671155187
>>1671127
>>1671130
А че, однострочником никак? Мне щедулер писать обязательно самому?
Аноним 29/04/20 Срд 08:34:47 1671161188
>>1671119
T P L
P
L

Parallet.For/Foreach могут принимать ParallelOptions, где можно установить MaxDegreeOfParallelism.
Аноним 29/04/20 Срд 11:50:18 1671262189
>>1671161
Спасибо, бро, мне тут стыдно что самому в голову не пришло
Аноним 29/04/20 Срд 12:28:19 1671286190
>>1671037
>но принцип одинаковый
Task run выполняет делегат в ОТДЕЛЬНОМ потоке из пула.
async await вообще не про это, так что нет, не одинаковый, никакого Task run там нет

Аноним 29/04/20 Срд 13:30:17 1671341191
20200305031119.jpg 92Кб, 705x437
705x437
12123.jpg 113Кб, 937x643
937x643
>>1671286
>Task run выполняет делегат в ОТДЕЛЬНОМ потоке из пула.

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

Вот тебе две ситуации на скриншотах.

1. Выполнение всегда начинает поток под номером 1, далее он отдает задачу в пулл потоков при помощи Task.Run и та выполняется свободным потоком, в это время поток #1 продолжает работу и доходит до оператора await, после чего он освобождается, передав задачу пулу потоков, и далее мы видим, что код после await всегда выполняется потоком, который взял на себя задачу после оператора await

2. Получаем тоже самое с использованием Task.Run().ContinueWith(t=>{}, TaskContinuationOptions.ExecuteSynchronously), только за счёт большего количества кода. Т. е. происходит именно то, о чём я писал.

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

>не про это, так что нет, не одинаковый

Не про это, потому что ты не понимаешь что происходит и тебе так кажется?
Аноним 29/04/20 Срд 13:59:22 1671375192
>>1671341
>после await будет тот же поток, который принял на себя выполнение задачи перед await
Вот не надо тут. Зависит от контекста синхронизации
Аноним 29/04/20 Срд 15:36:37 1671448193
>>1671375
Это уже детали. Если .ConfigureAwait(false) добавить после await то поведение будет таким же как в консольном приложении.
Аноним 29/04/20 Срд 15:40:57 1671453194
На # еще что ни будь пишут? Или клиент уже мертв, как и Delphi? Судя по тому, что посты движутся - это аутопсия студентов, но все же, хоть какая-то работа есть?
Аноним 29/04/20 Срд 15:45:01 1671455195
>>1671453
>Судя по тому, что посты движутся - это аутопсия студентов

Первый раз в этом разделе и тыкнул на первый попавшийся (этот) тред? Или это очередной "наитончайший" троллинг от завидующего жаба-петуха?
Аноним 29/04/20 Срд 15:53:01 1671470196
>>1671448
Да не то чтоб дтали. Довольно важная для понимания вещь, а у тебя относительно нее в самом начале поста неверное утверждение.
>>1671453
Пишут. Просто тут серьезным людям делать нечего, есть места поинтереснее. Поэтому только ванаби и сочувствующие.
Аноним 29/04/20 Срд 15:58:40 1671481197
>>1671470
>Да не то чтоб дтали. Довольно важная для понимания вещь, а у тебя относительно нее в самом начале поста неверное утверждение.

И в чём неверность? await всегда стремиться работать в том потоке, в котором он запущен.
Аноним 29/04/20 Срд 15:59:48 1671482198
>>1671470
Посоветуй места поинтереснее.
Аноним 29/04/20 Срд 16:01:29 1671484199
>>1671481
Сходи хоть доки почитай...
Аноним 29/04/20 Срд 16:02:14 1671486200
Анон, есть строка. Как её можно разделить на одинаковое количество символов?
Например, "какдела_" -> "какд ела_"

Аноним 29/04/20 Срд 16:03:31 1671487201
>>1671484
От того что я доки почитаю у тебя знаний прибавится или как это работает?
Аноним 29/04/20 Срд 16:08:22 1671495202
>>1671481
>await всегда стремиться работать в том потоке, в котором он запущен.
Вот в этом и ошибка. Не старается он ничего делавть, как я и писал, все зависит он контекста.
Аноним 29/04/20 Срд 16:08:42 1671497203
Аноним 29/04/20 Срд 16:09:03 1671498204
12123.jpg 34Кб, 420x360
420x360
Аноним 29/04/20 Срд 16:11:15 1671501205
15840341053751[[...].jpg 98Кб, 830x360
830x360
>>1671495
Почему все дурачки такие самоуверенные и даже не пытаются что-то почитать по теме, перед тем как начать срать себе в штаны?
Аноним 29/04/20 Срд 16:11:49 1671502206
>>1671341
>Он ничего не выполняет, он отправляет задачу в очередь тред пула. Также, как и await.
Хорошо, не выполяет а отправляет задачу в очередь для выполнения на потоке из пула.
НО, это не отменяет того факта что:
async await НЕ разворачивается в кострукции вида

>>1670245
>int sum = await Sum(2,2);
>
>Оборачивается в
>
>Task<int>.Run(()=>//здесь будет выполняться развернутый код асинхронного метода Sum).ContinueWith(r=>sum = r // и тут остальной код после await);
>

Никакого Task.Run там нет.
>>1671341
>Также, как и await
Нет и еще раз нет.
Берем условный asp net.
Код вида

async doSmthAsync() {
var x = await DoSmthElseAsync()
}

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

Код с async\await выполняется СИНХРОННО на том же потоке, до создания таска (не обязательно через Task Run, зависит от деталей реализации, возможно через taskcompletionsource, еще одного потока может не быть),
Если таска не завершена, то встречается await и поток освобождается.
Таска завершается (сигналит IOCP в случае с IO операцией), код после await продолжается возможно на другом потоке, тут уже зависит от контекста синхронизации

>>1671341
>Не про это, потому что ты не понимаешь что происходит и тебе так кажется
Учитывая весь контекст высеров выше, я могу сделать заключение что это жирный троллинг.
Или же
>>1671014
>ты просто долбаеб
Аноним 29/04/20 Срд 16:12:09 1671505207
>>1671482
cyberforum, so, social.msdn и т.д даже на гитхабе есть интересные обсуждения. Это если вопросики порешать и обсудить фишки и фичи. А если похуесосить, то, конечно двач хорош, только не надо удивлятся, что вместо интересных тем тут обсуждения говно vs мочa.
Аноним 29/04/20 Срд 16:16:27 1671511208
>>1671501
Напишу в третий и последний раз - этим занимается SyncronizationContext. Ты писал
>разница в том, что продолжать выполнение кода после await будет тот же поток
это неверно.
Аноним 29/04/20 Срд 16:20:19 1671515209
>>1671511
Всё что от тебя слышно это "НЕВЕРНО ЭТА НИТАК!!!", давай пример, который опровергает эти слова.
Показывай код, который после await выполняется не в том же потоке, в котором выполнялась асинхронная функция перед этим оператором.
Аноним 29/04/20 Срд 16:23:30 1671518210
Аноним 29/04/20 Срд 16:26:30 1671520211
>>1671515
Ты сам называл такие случаи: ConfigureAwait(false) - и таска не будет использовать захваченный контекст или если захваченный контекст многопоточный.
Аноним 29/04/20 Срд 16:29:48 1671528212
aa.png 6Кб, 392x324
392x324
>>1671515
Да в общем-то это поведение по-умолчанию, если не используется однопоточный контекст.
Аноним 29/04/20 Срд 16:34:19 1671541213
>>1671502
>async await НЕ разворачивается в кострукции вида

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

>Какой по-твоему в этом блять смысл? Освободить один поток чтобы занять другой из пула?

Уебище тупорылое, в этом и смысл асинхронности - она не блокирует потоки, она сразу освобождает их.

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

Аноним 29/04/20 Срд 16:41:31 1671562214
>>1671541
>поэтому я и провел ему аналогию которую понять легче, использовав в ней Task.Run.
Я пытался объяснить что 2+2 = 4, но не смог, поэтому сказал что 2+2 = 5
Понимаю
>>1671541
>Уебище тупорылое
Я освободил один поток и занял другой.
>>1671541
>в этом и смысл асинхронности
Понимаю
Аноним 29/04/20 Срд 16:48:44 1671581215
>>1671562
>Я освободил один поток и занял другой.
Нет, ты лучше займешь UI поток CPU-bounded операциейи зафризишь весь интерфейс. Нет, ты будешь ожидать IO-bouded операцию похерев ресурсы. Ведь для тебя освободить текущий, а потом занять другой(или снова этот) поток это так тупо.
Аноним 29/04/20 Срд 16:52:05 1671587216
>>1671520
>ConfigureAwait(false) - и таска не будет использовать захваченный контекст

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

Понял, дебилоид? Слово "базовый" тебе о чём то говорит? Почему тогда ты какие-то отдельные реализации приписываешь этому базовому, скажи нам, дебилоид.
Аноним 29/04/20 Срд 16:54:21 1671595217
>>1671562
>Я освободил один поток и занял другой.
Или не другой, а этот же освобожденный, либо ты его не освободил, а дал ему возможность продолжать свою работу, как это происходит с потоками отвечающими за интерфейс. В чём проблема, сычуш? Слишком сложно для твоих куринных мозгов?
Аноним 29/04/20 Срд 17:10:41 1671619218
>>1671581
>Нет, ты будешь ожидать IO-bouded операцию похерев ресурсы
Я не предлагал ее ждать, но никакого потока там нет.
Я выше уже писал.
Делаешь запрос к базе, сделав вызов из UI потока, GetSmthAsync(), весь код, выполняется синхронно, в этом же, UI потоке. Делается запрос к базе, возвращается Task, НЕ ЗАВЕРШЕННЫЙ, встречается await, UI поток НЕ БЛОКИРУЕТСЯ, ОСВОБОЖДАЕТСЯ.
ВСЁ. Завершается IO операция, на каком-то потоке продолжается код после await. На каком именно зависит от контекста синхронизации.
Никаких Task run в момент вызова GetSmthAsync НЕТ

>>1671595
>Или не другой, а этот же освобожденный, либо ты его не освободил
Да какая разница, дебил, с твоей логикой асинхронность в условном вебе нахуй не нужна.
Ты предлагаешь ОСВОБОЖДАТЬ ОДИН ПОТОК, чтобы вернуть в пул, но при этом из пула забираешь другой. Вопрос, НАХУЯ?
>>1671595
>В чём проблема, сычуш
Ни в чем, ты пытаешься жирно троллить, но у тебя не выходит, съеби с борды
Аноним 29/04/20 Срд 17:33:40 1671646219
>>1671619
>GetSmthAsync()
>весь код, выполняется синхронно
>Async
>выполняется синхронно

Не перестаю проигрывать с животного.

>Ты предлагаешь ОСВОБОЖДАТЬ ОДИН ПОТОК, чтобы вернуть в пул, но при этом из пула забираешь другой. Вопрос, НАХУЯ?

Как было:
Потоку нужно сделать веб-запрос, он использует API системы в которой запущен процесс, т. е. использует неуправляемый код и начинает ждать ответ от этого неуправляемого кода, потому что система должна была ответить именно этому потоку, он создал I/O пакет и именно он получит ответ от системы.

Как стало:

Потоку нужно сделать веб-запрос он использует API системы в которой запущен процесс, т. е. использует неуправляемый код и ...

Вот тут напряги остатки своего мозга

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

Что в этом сложного, урод? Почему ты до сих пор не можешь этого понять?
Аноним 29/04/20 Срд 18:08:24 1671678220
>>1671646
>>Async
>>выполняется синхронно
До await код выполняется синхронно
>>1671646
>он делегирует задачу ожидания ответа от неуправляемого кода тред-пулу
Ты в очередной раз обосрался
Обтекай

>>1671646
>Что в этом сложного, урод? Почему ты до сих пор не можешь этого понять?
Что именно понять, долбаеб залетный, съеби уже со своим жирным троллингом
async await у него в Task run блять разворачивается, освободил один поток и занял другой, клоун блять

Аноним 29/04/20 Срд 18:16:14 1671683221
12123.jpg 71Кб, 743x441
743x441
15840341053751[[...].jpg 75Кб, 667x483
667x483
>>1671678
>Ты в очередной раз обосрался

Ясно.

Просто запощу эти скриншоты для других. Понятно, что ты начнёшь отрицать, что всё не так изображено и что Рихтер в очередной раз обосрался, но здравомыслящим будет полезно посмотреть.
Аноним 29/04/20 Срд 18:18:37 1671684222
>>1671128
Он и так на васм, шизик.
Аноним 29/04/20 Срд 18:34:55 1671691223
>>1671587
>Ты хоть понимаешь, что поведение будет зависеть от реализации этого самого синхронизационного контекста?
Смотри что я тебе писал
>Зависит от контекста синхронизации
>все зависит он контекста.
>Напишу в третий и последний раз - этим занимается SyncronizationContext
И ты теперь переобулся и пишешь, что я не понимаю, что оно зависит от контекста? Тебе там опухоль на мозг давит?
>>1671587
> этому базовому
А с чего ты взял, что формовский/впфшный более базовый, чем консольный/аспшный? попробуй в налл установить и увидишь, хотя ты это уже знаешь, что ты обосрался и авэйт не сохраняет поток.
>>1671619
>но никакого потока там нет
Wow. Теперь в дотнете можно исполнять код вне потока! А мужики-то не знают.
>>1671619
>Никаких Task run в момент вызова GetSmthAsync НЕТ
Я хз, что ты высрал. Я про таск раны ничего не писал.>>1671619
>Да какая разница, дебил, с твоей логикой асинхронность в условном вебе нахуй не нужна.
>Ты предлагаешь ОСВОБОЖДАТЬ ОДИН ПОТОК, чтобы вернуть в пул, но при этом из пула забираешь другой. Вопрос, НАХУЯ?
В вэбе-то она как раз очень нужна, ибо дофига времени тратится на транспортном уровне, работой с базами и т.д. И поток освобождается и кладется в пул, что б другие задачи могли им пользоваться пока идут IO операции. Это же основы асинхронщины.
Еще раз для тебя дегенерата напишу: код после авэйта не всегда выполняется в том же потоке, что и до. Я хз зачем ты пытаешься с этим спорить.
Аноним 29/04/20 Срд 18:50:49 1671700224
>>1671683
Как этот высер противоречит тому что я писал выше, что никакого ЕЩЕ ОДНОГО ПОТОКА, видимо тебе долбаебу нужно капсом, нет?>>1671691
>Wow. Теперь в дотнете можно исполнять код вне потока! А мужики-то не знают.
Маня фантазии о том, о чем я не писал. Да, долбаеб, физическому устройству потоки нахуй не нужы, вот это откровение.
>>1671691
>Это же основы асинхронщины
да, я понял ТВОИ маня основы асинхронщины: пришел запрос, его подхватил поток. в коде IO операция, вместо использование текущего потока, СОЗДАЕТСЯ еще один поток, который что-то там делает, а прошлый освобождается.
ОХУЕТЬ, вот это асинхронщина.
>>1671691
>код после авэйта не всегда выполняется в том же потоке, что и до.
>>1671619
>Завершается IO операция, на каком-то потоке продолжается код после await. На каком именно зависит от контекста синхронизации
Ты тупой, да?
Аноним 29/04/20 Срд 18:53:31 1671701225
>>1671700
>СОЗДАЕТСЯ еще один поток
берется из пула, имел ввиду, в случае с твоим высером с task run.
Аноним 29/04/20 Срд 18:54:08 1671702226
Анон, если бы ты был жаба-джуном и получил офер на шарп-джуна, ты бы пошел? не галеры
Аноним 29/04/20 Срд 19:06:48 1671706227
>>1671691
>А с чего ты взял, что формовский/впфшный более базовый, чем консольный/аспшный?

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

>авэйт не сохраняет поток.

Уебище дегенеративное, где я хоть что-то про сохранение потока писал? Потоки синхронизируются, а не сохраняются.


Аноним 29/04/20 Срд 19:12:59 1671712228
>>1671702
>Тырпрайз джуны
>В постсовке
>Оффер жаба-джуну

ТВЁРДО И ЧЁТКО: .NET НЕ УМИРАЕТ
Аноним 29/04/20 Срд 19:14:34 1671714229
>>1671712
Ты сам-то чьих будешь?
Аноним 29/04/20 Срд 19:14:50 1671715230
Ебать у вас тут токсично.
Аноним 29/04/20 Срд 19:16:21 1671719231
>>1671706
>где я хоть что-то про сохранение потока писал?
>>1671341
>продолжать выполнение кода после await будет тот же поток, который принял на себя выполнение задачи перед await

>>1671700
>его подхватил поток. в коде IO операция, вместо использование текущего потока, СОЗДАЕТСЯ еще один поток, который что-то там делает, а прошлый освобождается.
Нет, дебич. Пришел запрос, его подхватил поток из пула, сделал запрос в БД, пока БД проперживается поток ушел обратно в пул и обрабатывает другие запросы. Когда БД раздуплилась как твое очко, поток из пула (любой) продолжил выполнение кода первого запроса.
Аноним 29/04/20 Срд 19:20:48 1671721232
>>1671700
>Как этот высер противоречит тому что я писал выше, что никакого ЕЩЕ ОДНОГО ПОТОКА, видимо тебе долбаебу нужно капсом, нет?

Где вот в этом высере:
>он делегирует задачу ожидания ответа от неуправляемого кода тред-пулу
>Ты в очередной раз обосрался

Есть хоть что-то про еще один поток, долбоеб?

>берется из пула, имел ввиду, в случае с твоим высером с task run.

Так судя по всему для тебя разницы нет.
На скриншоте даже написано для таких умственно отсталых как ты, что именно тред-пул получает ответ от I/O устройства. Теперь вспоминай за что отвечает тред-пул и чем он управляет? Как он по твоему должен продолжить выполнение кода после await, обработав этот ответ? При помощи чего? При помощи магии дружбы? Или всё таки при помощи потоков которыми он управляет?
Ты пойми, долбоебик, когда ответ получен, он уже находится в одном из потоков и именно в нём происходит решение, производить синхронизацию исходя из захваченного синхронизационного контекста, передавая полученную информацию вызвавшему потоку, либо продолжить код после await самостоятельно, без синхронизации.
Именно для этого и нужен ConfigureAwait(false), чтобы не было траты ресурсов на синхронизацию, если тебе не нужно чтобы код после await продолжился именно в том потоке, в котором исполнялся код перед этим await.
Аноним 29/04/20 Срд 19:25:37 1671722233
>>1671719
Ну и? Сохранение то где, уебище тупорылое? Он его не сохраняет, он синхронизируется с ним и продолжает выполнение кода после await в нём. В приложениях с UI есть поток который постоянно занимается интерфейсом и всё что с ним связано, поэтому если ты используешь после await объекты которые принадлежат этому потоку, тебе нужно синхронизироваться с ним, передавая ему полученные данные из await, либо просто сигнализируя о том, что таск после await выполнен и он может продолжать свою работу. Если этого не сделать, поставив ConfigureAwait(false), то программа вывалится в эксепшн, потому что поток из тред пула попытается получить доступ к объектам интерфейса.
Аноним 29/04/20 Срд 19:28:09 1671724234
Слишком толсто. опробуйте тоньше.
Аноним 29/04/20 Срд 19:28:46 1671725235
>>1671724
>это не я долбоеб, это меня троллят!!
Аноним 29/04/20 Срд 19:39:05 1671731236
>>1671725
Ты слишком часто меняешь позицию и игнорируешь ответы, а лишь выдаешь рандомные высеры. Как тролль ты неумеха, а как собеседник слишком туп.
Аноним 29/04/20 Срд 20:01:14 1671751237
>>1671721
А ты знал, что в Core вообще нет такого понятия, как контекст синхронизации? Серьезно, я не троллю. Следовательно и ConfigureAwait() бессмысленно вызывать. Так что нужно освежить знания немного. И это очень важно, так как меняет очень многое.
Аноним 29/04/20 Срд 20:33:58 1671784238
>>1671731
Конечно, ведь это у меня то кто-то обосрался, то кто-то троллит, ведь это я не предоставил никакого кода в доказательство своих слов, не приводил выдержки из статей и из книг.
Аноним 29/04/20 Срд 20:37:19 1671787239
Есть такая ситуация
Есть длл 1 которая зависит от длл 2
Длл 1 не знает о конкретной реализации некоторых классов длл 2, то есть обращается к ним через интерфейсы получая объекты типа интерфейса.
Как мне рассклеить длл 2 так чтобы там были только интефейсы, а в какой-то новой длл 3 вся реализация?
Тут получается что 1 зависит от 2, 3 тоже зависит от 2.
Однако 2 нужно знать как создавать объекты из длл 3 чтобы вернуть их 1 длл.

Может я хуйню написал и никто так не делает, поправьте если что.
Аноним 29/04/20 Срд 20:39:00 1671790240
>>1671751
В каком Core, блять, дебил? ASP.NET Core это фреймворк, если от тебя его в нём скрыли, это не значит, что его нет, это значит, что тебе не дают управлять данным поведением и всех подстраивают под своё решение.
Аноним 29/04/20 Срд 20:42:57 1671794241
>>1671787
Берёшь и расклеиваешь, очевидно. Делается это при помощи паттернов проектирования, какой из них нужен именно тебе зависит от кода, решить это по "вот длл от этой а вот та от этой в этой интерфейс а та объекты из того создает" невозможно.

Вот это - Agile Principles, Patterns, and Practices in C#, от роба мартина, почитай. Там как раз такие ситуации описываются и разбираются.
Аноним 29/04/20 Срд 22:37:14 1671900242
>>1665540 (OP)
Сап,
Один из референсев не установился или не находится и выходит ошибка Assembly not found for framework .Net Framework 4
Подскажите что не так и как можно пофиксить?
Аноним 29/04/20 Срд 22:38:53 1671901243
>>1671900
Может то что ты пытаешься установить не совместимо с 4 фреймворком на котором ты создавал текущий проект в который пытаешься добавить зависимость.
Аноним 29/04/20 Срд 22:42:20 1671905244
>>1671901
Вполне возможно. 4 как я понимаю самая новая версия и из неё могли выпилить старый референс. Тогда как узнать в какой версии он был чтобы откатиться к ней?
Аноним 29/04/20 Срд 23:36:45 1671954245
>>1671905
>4 как я понимаю самая новая версия

Сильное заявление. Все уже давно на NET Core 3.1 перешли, а у тебя 4 фреймворк - самая новая версия. Нет, она не самая новая, самая новая из .NET Framework это восьмая. Самая стабильная и обратно совместимая со всеми другими - .NET Framework 4.5
Аноним 30/04/20 Чтв 00:14:52 1671982246
>>1671715
Это два чувака отношения выясняют, причём используют периодически аргументы оппонента как их собственные. Но вообще - да.
Аноним 30/04/20 Чтв 00:27:39 1671996247
Аноним 30/04/20 Чтв 00:41:04 1672011248
>>1671954
Хорошо, значит 4 стабильная. Перепроверил настройки VS, там 3.1 версии стоят.
Как исправить проблему с Assembly not found?
Аноним 30/04/20 Чтв 01:45:09 1672048249
>>1672011
Бля, анон, 3.1 это core, 4.х это framework
Это разные вещи, параллельные, так сказать
Ты скажи, что ты подключаешь и откуда
Аноним 30/04/20 Чтв 06:26:50 1672103250
>>1671996
Там как раз и написано, то о чём я сказал - создатели фреймворка сдеоали везде поведение как при configureawait(false), но это никак не влияет на используемые сторонние библиотеки, если у них внутри есть нестандартный синхронизационный контекст, то он будет использоваться.
Аноним 30/04/20 Чтв 06:28:59 1672105251
>>1671982
Не два, а три. И они делятся на - не понимает асинхронизацию, понимае наполовину, понимает.
Аноним 30/04/20 Чтв 08:26:27 1672126252
>>1671794
Двачую этого токсика, у дяди Боба все написано.
Аноним 30/04/20 Чтв 16:02:54 1672433253
>>1671455
>жаба-петуха
судя по indeed.com - джависты себя получше чувствуют. Не тролинг, сам когда то писал на этой хуйне
>>1671470
случайно на тред наткнулся и зря ленту скролил - одни помои. Поэтому и пришел к мысле, что дела у .NET-а не очень хороши, раз такое пишут
Аноним 30/04/20 Чтв 16:03:41 1672434254
>>1672433
дополню: Разве десктоп жив? Зачем студентом проекты на WPF/WinForms? Тупо время молодняка убить?
Аноним 30/04/20 Чтв 16:38:13 1672467255
>>1672434
По хорошему WinForms должен быть - всё.
Но МС продолжают выпускать обновления и поддерживать его до неопределенного периода времени. Вполне вероятно у них огромный багаж легаси на этом фреймворке и они хотят чтобы программисты, поддерживающие этот легаси, не отставали от современных разработок и когда придёт время, смогли перепрыгнуть без прям очень сильного головняка.

В целом рынок десктопных приложух жив и пока будет жить, поэтому UWP/WPF вполне можно учить. Оосбенно учитывая то, что XAML используется Xamarin'ом для мобилок и WPF опыт легко на него переносится.
Аноним 30/04/20 Чтв 19:52:31 1672768256
>>1672467
> По хорошему WinForms должен быть - всё.
Вот хуйня какая-то. У WinForms есть вполне определённое применение - простые оконные приложения, утилитки и т.п. Данные какие-нибудь вводить-обрабатывать, с БД работать, всю эту хуйню на WPF писать, нахуя?
Аноним 30/04/20 Чтв 22:45:08 1672976257
Поясните нюфагу сакральный смысл аксессеров, пожалуйста.
Почему их юзают, почему бы просто не создать публичное поле?
Аноним 30/04/20 Чтв 23:30:22 1673018258
>>1672976
Основная причина багов - возможность изменения состояния переменных. Чем больше кода будет в read-only mode, и чем меньше кода будет публично доступно всем остальным для использования - тем меньше у твоего проекта будет проблем.

По умолчанию всё должно быть private readonly. А дальше думать что конкретно открыть для публики, чтобы выполнить текущую задачу.
Аноним 01/05/20 Птн 15:25:36 1673599259
VirtualBoxwin73[...].png 125Кб, 1280x800
1280x800
Двачик, подскажи пожалуйста с windows forms.

Проблема: не могу реализовать синхронное отображение в лейбле результатов выбора из списка (listBox).

Как выглядит решение проблемы: жмакаю мышкой на элемент из listBox --> в lable'e мгновенно отображается описание выбранного элемента.

Единственное, что нагуглил - это отображение в messageBox значения (не описания) элемента из comboBox.

https://metanit.com/sharp/windowsforms/4.6.php

Исходников нет т.к. вся форма захардкожена.
Аноним 01/05/20 Птн 15:54:09 1673626260
Аноним 01/05/20 Птн 17:05:49 1673753261
Screenshot 2020[...].png 63Кб, 845x591
845x591
>>1673626
Читал, почти не разобрался (примеры уровня "вот смотрите карой как этот метод использует свойство "свойствонейм" из библиотеки "хуй-пизда" сложны для восприятия)": оказалось примерно сутки пользовался текст боксом вместо лейбла.


После всех потугой получилось сделать такую штуку:

занесли элементы в listbox с помощью конструктора --> приправили магией событие

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = listBox1.SelectedItem.ToString();
}

--> результат: при смене элемента из listbox'a значения копируются в label.
Осталось только понять как организовать такой вывод через массив
(по формулировке : "ключ" : "значение" , где "ключ" отображается только в listbox'e, a "значение" отображается только в label'e)

Аноним 01/05/20 Птн 17:14:43 1673766262
>>1673753
Я такую фигню для лабы еще в 2006 делал. Нынче это вообще на раз два делается. Пройдёт пару лет и ты от своего собственного поста будешь фейспалмить. У меня щас такое от моих собственных постов в нулевые.

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

первое что нагуглил - https://stackoverflow.com/questions/10239392/c-sharp-combobox-options-dependent-on-another-combobox
Аноним 01/05/20 Птн 18:58:57 1673840263
>>1673766
спасибо анон <з

попробую сдать как есть.
Аноним 02/05/20 Суб 01:52:12 1674099264
Пацаны, как там обстоят дела с неткором, раньше писал худобедно чтобы на луниксе через Gtk# работал гуй, сейчас можно просто использовать виндовый гуй чтобы он везде работал?
Аноним 02/05/20 Суб 06:27:07 1674131265
>>1674099
Нельзя, потому что виндовый использует инфраструктуру винды, её api, которых нет на других ОС. Для кроссплатформы есть отдельные фреймворки, официальный- Xamarin.
Аноним 02/05/20 Суб 15:33:10 1674441266
Почему не разделяет строку на каждый символ? Размер листа 1, то есть он не разделился.

//List<string> bin = Convert.ToString(n, 2).Split('\0').ToList();
Аноним 02/05/20 Суб 16:45:37 1674502267
>>1665540 (OP)
Аноны, как получить ссылку на структуру? Есть классы с массивом таких же классов, сами классы мелкие и их много, поэтому хотел сэкономить на указателях на класс и слепить всё на структурах, но GC не даёт ничего сделать и трёт их нахуй. Мне теперь надо все взаимодействия с массивами внутри структуры только из самой структуры производить? Как вложенные структуры изменять, если я не могу в функцию передать эту структуру? С классами всё просто - взял его и таскаешь указатель куда хочешь. А теперь, как я понимаю, всегда создаётся копия структуры и я создаю/меняю копию массива, которая потом удаляется. Массив же это указатель на первый элемент. Так какого хуя ничего не работает и как будто я меняю копии, а оригинал даже не создавался?
Аноним 02/05/20 Суб 17:29:12 1674535268
>>1674441
У тебя нет \0 в полученной строке. Чтобы разделить строку на символы достаточно вызвать .ToList(), Split не нужен. На выходе получишь List<char>. Если нужен List<string>, то .Select(q => q.ToString()).ToList().
Аноним 02/05/20 Суб 19:07:53 1674634269
>>1674535
>нет \0
Как нет, если раньше я обычные слова разделял и он там был оО. Разве \0 является 'пустым' разделителем? Или это все таки костыль?

Спасибо за подробный ответ, все получилось.

Почему при каждой новой операции приходится создавать новые переменные. это же нехорошо с точки зрения и чтения и памяти?

Для каждого select, join, toarray и тп приходится создавать переменную почему он не может в процессе просто менять тип переменной? И еще не очень понятно почему некоторые цепочки работают, а некоторые-нет, приходится сначала делать Join в новой переменной, и уже потом return ConvertTo(новая переменная).
Аноним 02/05/20 Суб 22:12:16 1674838270
ае
Столкнулся с проблемой. Нужно произвести поиск одинаковых элементов в списке и вывод количества одинаковых элементов(прим.: оконная рама - 1 шт, дверная рама - 3 шт, дверь - шт). Не знаю с чего начать, может кто шарит за эту тему?
Аноним 02/05/20 Суб 22:13:06 1674840271
>>1674838
>Не знаю с чего начать
С введения в алгоритмы.
Аноним 02/05/20 Суб 23:20:30 1674930272
>>1674634
Уже прошло больше месяца, а ты все пытаешься писать на шарпе, как будто это жс. Неужели тыкать наугад пока не получиться проще, чем прочитать основы и делать нормально, понимая что к чему...
Аноним 03/05/20 Вск 00:54:31 1675067273
Сап двач. Возник такой вопрос. До C# прогал на Java, Rust, C и Петухе. Прочитал про основы C#, дальше хочу изучать по мере программирования, но возникла одна небольшая проблема. Я не знаю, что программировать. Вообще. Не могли бы вы дать рекомендации по данному вопросу?
Аноним 03/05/20 Вск 01:00:06 1675075274
>>1672467
шо то хуйня, шо это хуйня. Имо лучше бы мелкософты сделали для десктопа что нибудь с html синтаксисом, чтобы не нужно было ебаться с конструктором или XAML. Хотя каждому свое, сейчас 99% это веб, на десктоп многие просто забивают хуй
Аноним 03/05/20 Вск 07:23:39 1675165275
>>1675075
С XAML и не нужно ебаться, всё просто и интуитивно понятно. Нсли у тебя воли только на хтмл хватает, то это далеко не повод лепить его всюду.
Аноним 03/05/20 Вск 07:45:35 1675167276
>>1675067
Переписывай свои старые проекты на C# или найди работу
Аноним 03/05/20 Вск 08:38:53 1675185277
>>1675165
> С XAML и не нужно ебаться
> всё просто
> интуитивно понятно
АХАХАХАХАХХААХХА
Я работаю в бекенде, но есть у меня латентный интерес к интерфейсам. Так вот, месяца четыре я делал всякие поделки на wpf/xamarin forms. Получалось какое-то утилитарное говно. Пришлось вникать в dependency property, разбираться с унылым бойлерплейтом, наблюдать протекающую абстракцию в виде куска mvvm. Красивым код назвать было нельзя. XAML – говно, ИМХО. Как вспомню, так тошнить начинает. Inb4 РРЯЯЯ НЕАСИЛИЛ инструмент не должен пихать палки в колеса. Иначе могу предложить тебе спуститься на winapi

Потом попробовал Vue. Анон, это прекрасно. У меня почти не возникало вопросов, как сделать что-то. Удобное разделение компонентов, читаемый синтаксис, куча компонентов. Абстракции не текут, бек и фронт общаются через WEBAPI
Но самый идеал, мне кажется, это Blazor. Пока ещё не ковырял, но мануалы глянул
Аноним 03/05/20 Вск 08:53:26 1675187278
>>1674838
var input = new[] {"Дилдо", "Массажёр простаты", "Дилдо", "Резиновая кукла", "Дилдо"};
var output = string.Join(", ", input.GroupBy(x => x).Select(x => $"{x.Key} {x.Count()} шт"));
Console.WriteLine(output); // Дилдо 3 шт, Массажёр простаты 1 шт, Резиновая кукла 1 шт

Оче советую почитать книжку Скиены "Алгоритмы. Построение и анализ." Красная такая. Хотя может быть даже тяжеловато будет
Аноним 03/05/20 Вск 09:20:32 1675192279
>>1674634
>раньше я обычные слова разделял и он там был
Показывай что ты там разделял и где (версию фреймворк/коре).

>Разве \0 является 'пустым' разделителем?
Это обычный символ, как 'a', 'b' или 'c' - строки у нас length-prefixed. А ещё и нуль-терминированные, но только лишь в целях безопасности и совместимости - к этому нуль-терминатору нельзя получить доступ. Потому то строка может включать любое количество \0 и в любом месте. Другое дело что \0 обрабатывается в недрах кода по разному и в зависимости от культуры. Он может как игнорироваться при сравнении, так и учитываться.
Пустым разделителем будет передача null как аргумента Split(null), тогда в качестве разделителя будут использованы пробельные символы. Скорее всего ты именно так и делил.

>и он там был
Значит такая строка у тебя была, с \0 вместо пробелов ("aaaaa\0bbbbbb\0ccccc")
Аноним 03/05/20 Вск 11:41:26 1675243280
Посоны, изучаю ASP.NET Razor pages, на моем уберсайте юзер может загрузить файл на сервер. Вопрос, если я его буду сохранять в wwwroot это нормально? Если нет, то как правильно настроить папку для контнента, при условии, что сайт может крутиться и на венде и на линупсе?
Аноним 03/05/20 Вск 13:46:50 1675345281
Читаю сейчас The C# Player's Guide 3rd Edition (RB Whitaker), Господи, охуенная книга. Прошел темы Basics и ООП. Хотелось бы где-то применить знания, а то пока я дочитаю до конца то забуду что читал раньше. Но вот в консоли же хер что напишешь, а посему вопрос: читать паралельно литературу по WPF и пробовать писать простенькие программки или всё же осилить Player's Guide до конца?
Алсо так и не понял, зачем нужны интерфейсы?
Аноним 03/05/20 Вск 14:00:18 1675362282
>>1675345
>а то пока я дочитаю до конца то забуду что читал раньше.
Запоминать нужно только базовую информацию, а именно то, что ты можешь сделать и в каком примерно гуглить информацию в документации.

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

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

Аноним 03/05/20 Вск 14:00:43 1675364283
>>1675362
>в каком примерно направлении
Аноним 03/05/20 Вск 14:26:22 1675384284
>>1675362
Имеет смысл. Спасибо.
Аноним 03/05/20 Вск 15:46:56 1675504285
>>1674930
У меня нет возможности читать, да и читать нечего. В 100 раз читать введение в язык когда тебе пишут тут луп, тут суп не продвигает тебя ни на йоту.
Да и жс и вообще принципы программирования я выучил только на практике, практика это все, тонны мукулатуры без должного менторства и гайдов правильных не дадут тебе ничего. Тыкая сам и задавая вопросы почему это работает так, а не этак заставялет тебя реально думать о концептах и самому экспериментировать, а не списывать под копирку. Вот когда база освоена, можно углубиться в книжонки. Базарю, такой подход работает даже на пнях, проверено.
Аноним 03/05/20 Вск 15:57:32 1675516286
>>1675504
В каждой книги, в предисловии, написано на каких читателей она направлена. Сначала выбираешь те, что направлены на новичков, потом переходишь на средний, после чего на продвинутый. Соответственно, проекты выбираешь соответствующей сложности, либо работаешь с одним, постоянно расширяя и улучшая его.
А ты сейчас просто лбом бьешься в закрытые ворота, да, они немного приоткроются, но стоит ли это потраченных сил и времени, когда ты мог просто использовать вышеописанный подход?
Аноним 03/05/20 Вск 16:10:28 1675523287
>>1675516
Ладно, потрачу еще денек на свои задачки, не сделаю норму, пойду читать.
Аноним 04/05/20 Пнд 05:48:08 1675931288
есть dataGridView.

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

Аноним 04/05/20 Пнд 07:39:48 1675941289
Аноны это пиздец. Дали задачу в университете реализовать секущий, нашел на вики пример скопипастил.
Но тут возникла пиздец, в моей функции есть логарифм и в него иногда попадает отрицательные значения. Как быть?

Сама функция : 2 math.Log2(x+7)-5math.sin(x)

Да, можно сделать вот так, по свойствам лог: math.Log2(math.pow(x+7,2))
Но это не помогает

Если начинать брать больше -7. то начинаются большие расхождения

Сверялся с https://www.wolframalpha.com/input/?i=2++ln%28-8%2B7%29+-+5++sin%28-8%29

Аноны прошу, помоги, очень надо

Аноним 04/05/20 Пнд 08:00:16 1675943290
Есть какой-нибудь гайд как прогать в visual studio/rider с использованием только клавиатуры?
Сильно привык к работе за ПК с мышкой и сейчас на ноуте из-за тачпада это сильно тормозит меня так как я привык кучу вещей делать через мышь и вот думаю переучится на клаву.
Аноним 04/05/20 Пнд 09:46:54 1675956291
>>1675931
решил проблему другим способом.

просто перебрал двумерный массив по столбцам
Аноним 04/05/20 Пнд 11:18:12 1676004292
>>1675943
может мышь без или проводную легче купить?
Аноним 04/05/20 Пнд 11:43:34 1676022293
Ребята, я очень глупый и мне сложно быть полностью уверенным когда переменные и не только должны быть public, когда private, а когда вообще protected. Может дадите какую-нибудь статейку почитать?
Аноним 04/05/20 Пнд 13:42:52 1676107294
Переходите на кокоре, говорили они, за кокоре будущее, говорили они, хоть сейчас бери и в прод, кококо. Нахуя эти пидорги добавили TakeLast, если EFCore не умеет в него. Какого хуя? Они же поломали LSP, Enumerable могёт, а Queryable не могёт. Ууу сука они мне жопу подожгли, пол часа ебался со своим запросом, а оказывается TakeLast не завезли.
Аноним 04/05/20 Пнд 13:47:34 1676110295
Аноним 04/05/20 Пнд 13:59:59 1676119296
>>1676107
Ладно, меня чуть отпустило. Оказывается Last тоже не работает и не работал в EF6. Кривовысранное поделие этот EF.
Аноним 04/05/20 Пнд 14:01:43 1676121297
>>1676022
Agile Principles, Patterns, and Practices in C#
Аноним 04/05/20 Пнд 14:05:34 1676125298
>>1676119
>>1676107
Да мы поняли уже, что виноват не долбоеб-программист, а фреймворк/язык/среда выполнения
Аноним 04/05/20 Пнд 14:44:26 1676193299
>>1676125
А ты считаешь это нормально?
Аноним 04/05/20 Пнд 14:44:45 1676195300
Надо написать программу для выделения объектов на фотографии. Что почитать на эту тему?
Аноним 04/05/20 Пнд 14:47:20 1676197301
Аноним 04/05/20 Пнд 14:49:06 1676200302
>>1676193
Очевидно, что это сделано для того чтобы такие дурачки не выстреливали себе в ногу работая с запросами к базе данных.
Аноним 04/05/20 Пнд 14:51:36 1676209303
>>1676197
Библиотеки нельзя использовать
Аноним 04/05/20 Пнд 15:04:31 1676225304
>>1676209
У библиотеки исходный код открыт.
Аноним 04/05/20 Пнд 15:05:37 1676226305
>>1676200
Можно по-подробнее? Ну вот не дали мне foo.TakeLast(5) сделать, я написал foo.Skip(foo.Count() - 5). Почему второй вариант лучше чем готовая поддержка из коробки, тем более, что методы есть?
Аноним 04/05/20 Пнд 15:07:11 1676227306
>>1676209
Тогда придеться писать свою нейросеть. Но раз ты задаешь такие вопросы на дваче, то 99% что ты не напишешь её.
Аноним 04/05/20 Пнд 15:07:15 1676228307
>>1676226
Возможно потому, что всё это синтаксический сахар.
мимо
Аноним 04/05/20 Пнд 15:59:42 1676295308
Аноны есть массив из 4 элементов и нужно реализовать следующее:

с, b - элементы из массива

z - кол-во элементов в массивах (4 штк)

x(z - 1) = - с(z) b(z)
x(z - 2) = - с(z - 1)
b(z - 1) - с(z)b(z)
x(z - 3) = - с(z - 2)
b(z - 2) - с(z - 1)b(z-1) - с(z)b(z)
x(z - 4) = - с(z - 3) b(z - 3) - с(z - 2)b(z-2) - с(z - 1)b(z-1) - с(z)b(z)

Как сделать эту хуету в цикле? Битый час над этим думал, пизедц. Аноны пожалуйста помогите
Аноним 04/05/20 Пнд 16:03:15 1676300309
>>1676295
У препода спросишь.
Аноним 04/05/20 Пнд 16:07:47 1676303310
>>1676300
Если бы. Он на связь собака не выходит
Аноним 04/05/20 Пнд 16:18:47 1676316311
>>1676295
час это ничто, я за час успеваю только лишнюю запятую найти
не сможешь решить за 5-10 часов тогда и приходи, а то ты вообще расслабился я смотрю
Аноним 04/05/20 Пнд 16:27:21 1676337312
>>1676316
так я попутно другое делал, просто я понимаю что делается эта штука легко. Но не могу представить, не хочу прост на этом долго застревать и перейти уже к другому пункту
Аноним 04/05/20 Пнд 16:28:21 1676342313
>>1676337
Ну ничего, в следующий раз ты сделаешь правильный выбор между маняме и обучением, не отложив второе на потом.
Аноним 04/05/20 Пнд 16:30:43 1676353314
>>1676295
Через метапрограммирование? Ну, формировать этот в цикле в string builder'e, потом скомпилировать и подключить как сборку. Но, мне кажется, за такое решение тебя взъебут
Аноним 04/05/20 Пнд 16:31:21 1676355315
>>1676342
Да при чем тут аниме. Просто еще есть парочка более интересных задач, чем циклы в циклах и еще раз в циклах
Аноним 04/05/20 Пнд 16:33:32 1676361316
Introduction to Neural Networks with C# (Jeff Heaton)
В книге заметил следующий код:

Matrix weightMatrix = new Matrix(3,2);
double[] thresholds = new double[2];

Написал его (консольное приложение), а мне рычит, что мол нет такого класса. Может директиву какую нужно подключить? Или это не в консоли нужно делать?
Аноним 04/05/20 Пнд 16:36:09 1676364317
>>1676361
Нужно добавить ссылку на сборку, которая содержит в себе класс Matrix
Аноним 04/05/20 Пнд 16:36:25 1676366318
Или структуру
Аноним 04/05/20 Пнд 16:47:29 1676376319
15866136025300.jpg 5Кб, 230x219
230x219
>>1676361
Нажми alt+enter где рычит. Или на значок лампочки
Если пропустил using, будет соответствующая подсказка

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

Services? Так у меня уже есть сервис, который как служба. Он, допустим, каждые пять минут базу проверяет на предмет новых записей. У меня уже нет идей
Аноним 04/05/20 Пнд 17:02:01 1676391320
Сап анон, у меня вопрос по OAuth. Что делать с redirect_uri?
Вот есть у меня допустим дискорд бот на С#. Когда приходит определенная команда, бот, если юзер не авторизирован (если нет в базе client_id и access токена), просит авторизироваться и кидает в лс ссылку на oauth авторизацию. После авторизации идет на редирект на some_uri.com/?code=auth_code. auth_code нужен чтобы получить accessToken.
И вот что мне делать дальше? Писать отдельное приложение, которое будет хэндлить запрос по этому руту, вытаскивать с него auth_code, делать запрос, получать accessToken и добавлять в базу? А если я хочу чтобы бот написал юзеру что авторизация прошла успешно? Что делать дальше, анон, помоги.
Аноним 04/05/20 Пнд 17:04:13 1676396321
Аноним 04/05/20 Пнд 17:05:17 1676399322
>>1676396
так мне за нее пизды дадут. Мы пока до этого не доходили и скажут что из инета взял пример, только циклы, только хардкор
Аноним 04/05/20 Пнд 18:00:43 1676439323
>>1676376
Зависит от паттерна проектирования.
Аноним 04/05/20 Пнд 18:21:05 1676457324
Аноним 04/05/20 Пнд 20:54:43 1676670325
Аноним 04/05/20 Пнд 21:27:47 1676694326
>>1676376
Раньше делали стандартный набор:

Repository/Persistence
Services
Domain
Web

Щас, после промывки мозгов дядей бобом (Uncle Bob) делаем так:

Core
Application
Domain
Infrastructure
Persistence
ExternalWebApi
Messaging
Любой внешний сервис
Presentation
Web
Api
iOS/Anroid/Desktop/Чего душа пожелает (ну или бизнес)
Tests
Аноним 04/05/20 Пнд 21:29:20 1676698327
>>1676694
Макаба пробелы съела, давай еще раз, только с дефисами.

Repository/Persistence
Services
Domain
Web



Core
--Application
--Domain
Infrastructure
--Persistence
--ExternalWebApi
--Messaging
--Любой внешний сервис
Presentation
--Web
--Api
--iOS/Anroid/Desktop/Чего душа пожелает (ну или бизнес)
Tests
Аноним 04/05/20 Пнд 23:54:08 1676845328
>>1671954
Хорошо, значит 4 стабильная. Перепроверил настройки VS, там 3.1 версии стоят.
Как исправить проблему с Assembly not found? >>1672048
>Ты скажи, что ты подключаешь и откуда
Короче я решил допилить одно приложение. Установил VS, mono, клонировал сам проект с гита. Напротив одного из референсов стоит красный крестик и ошибка Assembly not found.
Добавить его через Add references не получается, его там нет. На этом месте я хз что делать.
Аноним 05/05/20 Втр 00:02:05 1676855329
image.png 862Кб, 1200x857
1200x857
аноны, быстровопрос, где нужно ловить ексепшин? одни говорят что ексепшин надо словить в том же методе где он выступает другие что надо ловить его выше, на какой стул сесть на какой мать посадить, какие подводные у этих двоих решений?
Аноним 05/05/20 Втр 00:37:06 1676884330
>>1676698
Спасибо, анон. В принципе, это то, что нужно
Аноним 05/05/20 Втр 00:38:55 1676886331
>>1676845
Может, тебе numerics нужен? Кажется, матрицы там есть
Я не помню, а сейчас гуглить неудобно
Аноним 05/05/20 Втр 01:49:19 1676961332
>>1676855
Смотря что именно тебе нужно. Допустим, у тебя есть метод, взаимодействующий с тысячами объектов в базе. Соответственно, если у тебя будет ошибка соединения с базой, у тебя прервется полностью выполнение метода. Чтобы такого не произошло, можно ставить локальный обработчик. https://dotnetfiddle.net/uIRRAC

По "выше": допустим, у тебя есть апи (Опустим пока возможность использования атрибутов для обработки исключений)
Имеет смысл делать каждый метод обращения в следующей форме: https://dotnetfiddle.net/GIYPmc
Чем кидать необработанное исключение, если оно где-то нашлось, лучше его обработать и сохранить куда надо
Аноним 05/05/20 Втр 01:59:22 1676967333
большое спасибо за примеры!
Аноним 05/05/20 Втр 01:59:39 1676969334
>>1676961
большое спасибо за примеры!
Аноним 05/05/20 Втр 03:03:00 1676979335
Может кто сталкивался тут с проблемой unload с json в core 3.1
Не получается делать unload когда использую хотя бы раз serialize или deserialize с типом из сборки которую затем надо выгрузить.
Нашел такую же проблему в issue https://github.com/dotnet/runtime/issues/13283
Но решения оттуда не помогают, если убирают работу с json все работает как надо, но с ним ничего выгружаться не хочет.
Испробовал Newtonsoft, utf8json, Jil и стандартный json, что делать уже ума не приложу.
Аноним 05/05/20 Втр 11:02:03 1677109336
>>1676979
Вызывай serialize или deserialize уже после того как выгрузишь сборку. JSON это же строка, сохранить её перед выгрузкой сборки труда не составит.
Аноним 05/05/20 Втр 11:04:21 1677112337
>>1665542
>>1665540 (OP)
Обновите инфу на актуальную.
Некоторые ссылки идут на 404.

Джозеф Албахари, Бен Албахари "C# 7.0. так понимаю, что 5.0, которое есть в шапке это старая версия? или пролог,первая часть? Справочник. Полное описание языка"
или таки
Эндрю Троелсен "Язык программирования C# 5.0 и платформа

Ангельский не знаю, но по причине того, что очень глубоко лезть не буду, думаю этого будет достаточно.

Вопросы будут нубские, эта ебанутость для ознакомления
Аноним 05/05/20 Втр 11:08:13 1677118338
>>1677112
Алсо: Визуал Студио скачал, нагрузки поставил. Есть какие нагрузки для нубов?
до этого чисто по ошибке, лол ставил Визуал Студио Коде. И охуел с того, как VS за тебя дописывает и исправляет строчку.

ЗЫ: в примере по самоучителю предлагают такой код
System Console.WriteLine. Я правильно понимаю, что на текущий момент System не пишется?
Аноним 05/05/20 Втр 11:15:10 1677120339
>>1677118
> нагрузки поставил
*ну основную, для С#
Аноним 05/05/20 Втр 11:16:31 1677121340
>>1677112
>Обновите инфу на актуальную.

Скажи спасибо, что перекатили.

>Джозеф или Эндрю

Троелсен, конечно, Джозеф это вообще не учебник, а своего рода справочник, который детально разбирает каждую часть языка не вдаваясь в информацию для новичков. От Рихтера её отличает только отсутствие разбора IL-кода.
Сначала читаешь Троелсена, потом уже можешь прочитать Джозефа. После чего переходишь к Рихтеру. Закрепляешь всё паттернами и принципами проектирования:
Agile Principles, Patterns, and Practices in C#
И всё, считай уже можешь пилить свои тудушки. Останется только отдельно почитать литературу по базам данных, EF Core, ASP NET Core и ты будешь готов к вкату.
Аноним 05/05/20 Втр 11:19:25 1677122341
>>1677121
Я не знаю, что такое "тудушки" и "вкату". Я просто знакомлюсь с языком, чтобы понять юнити, чтобы понять ink.
Спасибо за выбор автора
Аноним 05/05/20 Втр 11:27:41 1677132342
>>1677122
Для юнити тебе нужен хороший математический бэкграунд.
Аноним 05/05/20 Втр 11:42:45 1677161343
>>1677118
Если у тебя в файле указано "using System;", то System можно не писать. Если есть учебник по Троелсену 6.0 на русском - раздел "Доступ к пространству имен программным образом"
Аноним 05/05/20 Втр 11:59:12 1677192344
15860137901180.jpg 132Кб, 840x654
840x654
15799801749910.png 1Кб, 224x217
224x217
>>1665540 (OP)
Если заблокировали аккаунт на майкрософт и требуют принять смс для разблокировки (хотя я ничего не нарушал но телефон палить не хочу винда лицензионная) - можно ли создать другой аккаунт на фейкопочту и спокойно работать дальше?
После открытия проекта через 5-10 секунд появляется экран входа и убрать его нельзя.
Аноним 05/05/20 Втр 15:56:11 1677630345
>>1677109
Так очевидно я использую тип из сборки которую загружаю в качестве параметра для json. Из-за внутреннего устройства библиотеки она кэширует его где-то там в результате из-за этого ничего выгрузить нельзя. Если бы я хотя бы смог узнать где оно кэшируется то через рефлексию бы чистил, но там черт ногу сломит.
Пришлось написать свой парсер с возможностью очистки кэша по типу и в результате все выгружается.
Пока создатели библиотек не добавят такой функционал думаю придется своим велосипедом пользоваться для выгружаемых библиотек.
А ждать походу придется долго, так как проблема у многих еще в прошлом году появилась.
Аноним 05/05/20 Втр 16:31:26 1677678346
>>1676979
Отпишись в их issue, что все варианты перепробовал и оно всё равно валится. Приведи пример кода. И себе и коммьюнити поможешь.
Аноним 06/05/20 Срд 07:45:10 1678427347
1588740309142.jpg 47Кб, 636x536
636x536
>>1676698
Снова тот анон. Пытаюсь разобраться с архитектурой. Открыл пару примеров на github с небольшими проектами. Кажется, что это какой-то шлак
Например:
https://github.com/ivanpaulovich/clean-architecture-manga

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

В итоге мы получаем кучу лишних строк кода и, самое плохое, деградировавший функционал. Более того, это дерьмо не гарантирует транзакционности. Анон, может, ты скажешь, зачем так пишут?
Аноним 06/05/20 Срд 11:20:17 1678505348
Криптобояре на месте?
Чому если из мелкософтовского системного экзешника выдрать X509Certificate, на его основе создать X509Certificate2 и попробовать его верифицировать, то верифай возвращает false (например, тот же lsass.exe или svсhost.exe)? Пользовательские (например стим/хром/дискорд) верифаятя нормально. Объясните мне тупому плс кто в этом шарит.
Аноним 06/05/20 Срд 12:31:24 1678568349
Подскажите годную книгу по entity framework, в первых двух постах пусто
Аноним 06/05/20 Срд 12:52:07 1678599350
>>1678568
А не слишком ли целая книга по орм'ке? Тем более оно там все меняется. Бери доки да читай.
Аноним 06/05/20 Срд 12:53:20 1678601351
>>1678568
У троелсена читай, потом документацию.
Аноним 06/05/20 Срд 14:42:42 1678705352
Аноны, я здесь новенький. Знаю JS и Python. Вижу очень часто С# в качестве бэка (веб). Хочу вкатиться, шапку читал, был небольшой опыт с чистым С и даже Asm. Но постоянно сомневаюсь - а нужно ли оно мне? Вижу C# я в основном в серьезных структурах, в васянских пыха, нода. Так вот, мне нужно только ваше мнение
Аноним 06/05/20 Срд 14:55:49 1678715353
>>1678705
Так ты сам себе ответил. Да, если ты собрался делать проекты для малого бизнеса (васянов), то никто не обрадуется твоим поделиям на .NET, которые требуют больше времени, при этом предлагают лучшую производительность и расширяемость (которая малому бизнесу нахуй не нужна). Если ты собрался работать на более-менее уважающие себя компании, то такие компании не обрадуются, когда узнают, что ты им бэк собрался пилить на пыхе.
Аноним 06/05/20 Срд 15:12:35 1678737354
уэааа уэааа уЭА[...].webm 864Кб, 720x720, 00:00:04
720x720
>>1665540 (OP)
Блять сука, вот почему линейные участки программы легче поддаются оптимизации, чем все другие части внутреннего представления программы и объектного кода?!?!?!?!? сука не понимаю объясните
Аноним 06/05/20 Срд 17:33:58 1678889355
>>1678705
В тренде сейчас Blazor, остальное сосет.
Аноним 06/05/20 Срд 18:12:41 1678927356
Аноним 06/05/20 Срд 19:30:42 1679018357
Аноним 06/05/20 Срд 19:42:33 1679025358
>>1679018
Прокуратура, таможня
Аноним 06/05/20 Срд 21:15:51 1679083359
Помогите кто-нибудь, я уже с ума схожу, я не могу понять почему этот блядский кусок кода работает черех жопу.
https://pastebin.com/P3pykf5U
Код просто поочерёдно берёт строку из файла и смотрит, из каких символов она состоит. Если только из нужных, то возвращает true. И всё работает замечательно, НО, когда я пытаюсь записать правильную строку в другой файл, то начинается какая-то магия. Конкретно вот тут
if (right == true)
{ sw.WriteLine(line); }
else { sw.WriteLine("NET"); }
Мне не нужен этот else. Если запустить с else, то он запишет и нужные строки и ненужные, на месте ненужных будет NET. А теперь внимание, если убрать этот else, то он ВООБЩЕ НИЧЕГО не запишет, хотя должен записать только нужные, что логично. Причём прога в if заходит, отрабатывает код, но не записывает ,сука ебаная, файл пустой.
Аноним 06/05/20 Срд 21:19:59 1679085360
>>1679083
Сейчас для интереса сделал вот так
>else { sw.WriteLine(""); }
и получил то, чего и хотел, но мне просто интересно уже.
Аноним 06/05/20 Срд 21:25:32 1679088361
>>1679085
А, не, нихуя, я думал, что если с writeline прокатило, то можно и просто write, чтобы кучи пустых строк не было, но нет, лол, если write, то он опять-таки нихуя не записывает.
Аноним 06/05/20 Срд 21:27:20 1679090362
>>1679025
Прикольно, не похоже на языки программирования.
Аноним 06/05/20 Срд 21:43:02 1679097363
>>1679083
>>1679085
>>1679088
Ты бы хоть тестовый файл скинул, а то там у тебя кодировка необычная, может в ней дело. И про Flush/AutoFlush не забыл?
Аноним 06/05/20 Срд 22:18:06 1679121364
Аноним 06/05/20 Срд 22:40:37 1679135365
>>1679121
var input = Environment.GetEnvironmentVariable("HOME")+ "/Downloads/source.txt";
var output = Environment.GetEnvironmentVariable("HOME") + "/Downloads/output.txt";
var allowed = "ともかく".ToCharArray();
var lines = File.ReadAllLines(input).Where(x => x.All(y => allowed.Contains(y))).ToArray();
File.WriteAllLines(output, lines);

Выводит
かも
とか

とも

もと

かく

とく
ともかく
Аноним 06/05/20 Срд 22:47:26 1679140366
>>1679121
>Это японская кодировка
Алсо, файл был в UTF-8, не знаю, где ты там откопал японскую кодировку
Аноним 06/05/20 Срд 23:05:55 1679148367
>>1679135
Спасибо, работает. Хотя всё же интересно, почему так странно у меня работала запись.
>>1679140
Файл в ней и не должен быть, она нужна была для работы со строками.
Аноним 07/05/20 Чтв 01:27:26 1679209368
Аноним 07/05/20 Чтв 01:27:33 1679210369
>>1676694
>Core
>Application
>Domain
Что лежит в каждом из них?
Аноним 07/05/20 Чтв 01:31:14 1679212370
>>1674502
>Аноны, как получить ссылку на структуру?
ref используй. Но ты явно делаешь что-то неправильно.
Аноним 07/05/20 Чтв 01:32:11 1679213371
>>1679210
Бля, не заметил пост ниже с дефисами, вопрос отпадает.
Аноним 07/05/20 Чтв 03:42:41 1679248372
>>1678889
Либо ты поддерживаешь gRPC с каждым пчелом, который зашёл на сайт твой сервер сосет, либо предлагаешь загрузить ему несколько мегабайт wasm'a твой клиент сосет
На мой взгляд, у блазора на текущий момент две ниши – сосать бибу числодробилки и внутрикорпоративные порталы
Аноним 07/05/20 Чтв 09:25:17 1679350373
>>1679148
>Хотя всё же интересно, почему так странно у меня работала запись
У меня на маке всё работает в твоей программе, надо только кодировки выкинуть. Попробуй вручную флашить.
Аноним 07/05/20 Чтв 10:41:00 1679379374
>>1679148
> Хотя всё же интересно, почему так странно у меня работала запись.
Можешь скинуть минимальный нерабочий проект и файл?
Аноним 07/05/20 Чтв 16:23:46 1679823375
изображение.png 53Кб, 1121x646
1121x646
>>1677678
Я попытался сам исправить ситуацию без собственного парсера так как мой вариант все же был в 1.5-2 раза хуже по производительности, не говоря уже о примитивном функционале.
Мне удалось исправить Serialize чтобы все работало путем исследования памяти и добавления возможности очистки кэшей.
Но вот Deserialize стал непробиваемой проблемой.
При том проблемой магического плана.
Магия заключается в том что не в windbg не в dotmemory не показывается что в памяти хоть где-то есть ссылка на мой загружаемый через сборку тип.
Путем сравнения чистого приложения и после тонны загрузок/выгрузок мне удалось найти место где похоже что-то сохраняется, но вот как очистить это дерьмо я не представляю. Как туда добраться через рефлексию хер знает, класс не статичный, а что именно создает это дерьмо я боюсь даже представить. А значит и передать объект в качестве аргумента для получения этого поля я так же не могу.
На этом мои познания в устройстве .net походу иссякли и я не вижу выхода из этой ситуации кроме как продолжить использовать свой парсер или отказаться от идеи выгрузки сборок вообще. Тупо оставлять их в памяти пусть захламляют оперативку.
Аноним 07/05/20 Чтв 16:46:19 1679862376
>>1665540 (OP)
Если хочу начать изучать шарпы, то следует лучше обратно на винду перекатиться? Или на маке в MonoDevelop тоже норм работается?
Аноним 07/05/20 Чтв 17:01:08 1679878377
>>1679862
Зависит от того, что ты под "норм работается" подразумеваешь.
Аноним 07/05/20 Чтв 17:05:52 1679883378
Аноним 07/05/20 Чтв 17:12:57 1679891379
>>1679823
Я имел ввиду написать это в их github -> issue.
Здесь тебе врят ли кто-то поможет, потому что данных не хватает. Тут надо целиком код смотреть.
Аноним 07/05/20 Чтв 17:15:48 1679893380
>>1679823
что это за говнище на скрине?
Аноним 07/05/20 Чтв 17:16:05 1679894381
>>1679862
Я на маке в VS for Mac работаю. Полёт нормальный. Некоторых крутых фишек конечно не хватает и решарпер не поставишь. Но тебе от этих фишек ни холодно ни жарко. Тебе в ней комфортно еще несколько лет будет, а потом начнёшь замечать, что можно было бы и то и это заиметь. А там может на Rider пересядешь или МС студию под Мак допилит.
Аноним 07/05/20 Чтв 17:22:18 1679897382
>>1679891
Там полгода это висеть будет.
При том это проблема походу на стороне net core, иначе бы она решилась загрузкой сборкой в тот же контекст.

>>1679893
dotmemory со snapshot того места где растет память при deserialize в загружаемой/выгружаемой сборке.
Аноним 07/05/20 Чтв 17:31:21 1679907383
>>1679897
зачем тебе вообще десериализация JSON нужны была?
Аноним 07/05/20 Чтв 17:47:18 1679926384
>>1679823
А загружать парсер в appdomain в который ты загружаешь нужную сборку с нужным типом, пробовал?
Аноним 07/05/20 Чтв 18:34:36 1679983385
>>1679897
Ну хорошо, через пол года пофиксять. А если проблему не двигать, то пофиксят условно никогда. Пол года быстрее чем никогда.
Аноним 07/05/20 Чтв 19:17:06 1680044386
>>1679907
Чтобы заполнить нужные мне типы в сборке данными которые должны лежать отдельно и не быть хардкодными.
При том основное приложение об этих данных ничего не знает и знать не должно, максимум что оно знает это то что они реализуют некоторые интерфейсы и то не факт.
Тут проблема будет не только в JSON, многие вещи оказывается кэшируются в различных небольших кэшах и не дают выгрузить сборку. В частности Expression тоже кэширует свои типа при некоторых вызовах. В результате получаем полурабочую выгрузку, работает только для примитивного кода, что-то более сложное уже не выгрузишь.

>>1679926
В самом начале делал это.
Уже кучу парсеров так перепробовал.

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

>>1679983
Вообщем мне удалось победить это дело через очень и очень грязные трюки с рефлексией.
Так по сути делать нельзя, но другого пути тупо нет.
Все дело вот в этом говне:
https://github.com/dotnet/runtime/blob/master/src/libraries/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs#L13
Вот тут хранятся какие-то данные о типах, при том в ключах вы не найдете не одного упоминания о своем типе, но я тупо не разбирая что там забил все с помощью null и все стало выгружаться. Мне уже тупо не хочется разбираться что именно не дает выгрузить и почему, а затем обнулять именно этот ключ.
Зато узнал что оказывается с core 3.0 нельзя через рефлексию менять readonly поля, получишь эксепшен.
Аноним 07/05/20 Чтв 19:17:47 1680046387
Как у вас с работой дела? Чтобы вкатиться новичку - обязательно реакт с css дрочить?
Аноним 07/05/20 Чтв 19:23:03 1680053388
>>1680044
>При том основное приложение об этих данных ничего не знает и знать не должно, максимум что оно знает это то что они реализуют некоторые интерфейсы и то не факт.
У тебя архитектура проекта - говно, раз тебя таким анонизмом нужно заниматься. Сочувствую вообщем
Аноним 07/05/20 Чтв 19:27:09 1680060389
>>1680053
То есть если у меня фактически изолированные сборки которые юзают главный модуль и которые могут выполнять свои функции и затем выгружаться это говно архитектура?

Аноним 07/05/20 Чтв 19:52:50 1680091390
>>1680060
>и затем выгружаться
с костылями, скрипом и пердежом - да
Аноним 07/05/20 Чтв 22:32:09 1680291391
Снимок.PNG 49Кб, 1811x734
1811x734
Сап, делаю небольшой проект в вузе. Необходимо написать эмулятор нормальных алгоритмов маркова и машины тьюринга. С НАМ я как-то разобрался, но возник вопрос. Допустим юзер ввел в прогу такой алгоритм, в котором на каком-то правиле происходит зацикливание. Надо как-то определить это и послать пользователя нахуй, а не просто завесить всю программу. Код функции НАМ на скрине.
И ещё интересуют какие-то понятные объяснения, как реализовать машину тьюринга или примеры готового кода. Буду очень сильно благодарен.
Аноним 07/05/20 Чтв 22:49:54 1680308392
.mp4 15043Кб, 1920x1080, 00:00:24
1920x1080
Нуб на связи. Как правильно обмениваться данными между потоками?
Есть поток основной программы(интерфейса), в нем создается новый "рабочий" поток, который работает в бесконечном цикле. Как изменять его переменные/передавать команды? На ум приходит сделать глобальный флаг, который активируется, когда нужно что-то передать, а рабочий поток будет все время проверять его в цикле, и если флаг активирован - будет проверять и обрабатывать уже другие глобальные переменные/флаги. Это должно работать, но выглядит извращением. Есть какая-то правильная, элегантная реализация? Или все так и делают, через глобальные переменные?
Аноним 07/05/20 Чтв 22:59:47 1680320393
>>1677112
Вау. Я вообще удивлен, что эта шапка до сих почти не обновлялась. Я пилил ее года 4 назад наверное, когда еще студентотой был и когда активно тут сидел и всем помогал. Сейчас ее видеть в такой виде довольно странно, хоть и приятно.
BTW для сомневающихся (как я в свое время): C# и .NET платформа сейчас очень даже нужна и хороших специалистов реально очень мало.
Аноним 07/05/20 Чтв 23:21:23 1680341394
изображение.png 121Кб, 1179x1179
1179x1179
>>1680091
Раньше были домены которые позволяли выгружать проще, но там ебля была с общением между загружаемой сборкой и основной. Приходилось делать маршалинг, плюс потери перформанса, при том серьезные.
Сейчас же они сделали выгрузку по возможности если ничего сборку не держит, но при этом не учли всех момент которые есть не только во внешних библиотеках, но так же в самом языке.
Вот методы (еще на скрин не все влезло, плюс неизвестно кто еще те методы вызывает) которые создадут скорее всего проблему при использовании их в загружаемой сборке, потому что они кэшируются в статичную переменную которую невозможно без рефлексии очистить.

>>1680308
Делаешь ConcurrentQueue, затем юзаешь AutoResetEvent или ManualResetEventSlim(если нужна прям производительность, у авто лаг 1-2 мс), пока в ConcurrentQueue есть команды берешь и выполняешь их, как только команд нет, event.WaitOne(); в рабочем потоке.
Когда поток нужно запустить event.Set(); в основном потоке.
В результате пока задачи есть поток трудится, иначе спит в ожидании пинка.
Аноним 07/05/20 Чтв 23:51:51 1680368395
>>1680308
Сурс видео?
Девчонки смотрят на неё более пристально, чем парни.
Аноним 08/05/20 Птн 00:25:05 1680399396
>>1680308
Никаких глобальных переменных! Никакого изменения состояния объектов более чем одним потоком! Это путь студентов и индусов.

Очередь тебе в руки (типа RabbitMQ, но вообще любую, почитай доки на эту тему).
Флаг можно менять через БД.
Управляемый объект можно создать в основном потоке и отдать его в бэкграунд поток, где он будет readonly и изменять состояние в основном потоке, если нужно.
Аноним 08/05/20 Птн 00:47:58 1680422397
>>1680308
>сделать глобальный флаг
Земля тебе пухом
>>1680320
я вообще удивлен, что кто то еще смотрит в этот тред
>>1680341
да на скрине 80% это линк, не могли под него интерфейс взаимодействия запилить? Походу какой то CRUD через multiqueue дрочит твой "модуль", а ты теперь с рефлексией трахаешься. Эх, кайф
>>1680368
дрочильня в другом разделе
Аноним 08/05/20 Птн 00:50:38 1680424398
>>1680422
>дрочильня в другом разделе
в который доступа нет
Аноним 08/05/20 Птн 01:08:47 1680438399
Подгоните идей на курсач по ООП на шарпе. Если можете - несколько, пожалуйста
Аноним 08/05/20 Птн 01:09:04 1680439400
.webm 6579Кб, 406x720, 00:01:14
406x720
>>1680341
>>1680399
Спасибо, сейчас попытаюсь разобраться.

>>1680368
Это какой-то конкурс на открытие магазина(шоп ру, там на стене есть), инсту и вк тян находили в б, но я не сохранял.
Аноним 08/05/20 Птн 02:38:08 1680462401
Аноним 08/05/20 Птн 02:56:43 1680471402
>>1680308
"Глобальные переменные" это мютексы, но нет, так делать не надо. Внешние системы MQ тоже использовать не надо, они для другого. Надо использовать всякие очереди и каналы. Один поток случает очередь, другие формируют задание и передают его главному потоку через очередь.

Не знаю C# совсем, судя по всему тебе надо смотреть на ConcurrentQueue<T>
Аноним 08/05/20 Птн 10:32:12 1680563403
image.png 28Кб, 1438x161
1438x161
image.png 77Кб, 1324x583
1324x583
image.png 49Кб, 1278x421
1278x421
Парни пидец нужна помощь есть задание
Не могу вальнуть вопрос с удалением песни из каталога
Помогите чутка вот кусок кода.
Как удалить из списка и потом вернуть обновленный словарь.
Аноним 08/05/20 Птн 11:10:56 1680585404
>>1680563
У препода спросишь
Аноним 08/05/20 Птн 11:15:13 1680591405
>>1680563
эх, сейчас бы не знать, как работает библиотека из GAC. Нахуй ты учишь это говно, если даже не хочешь в нем разбиратсья?
Аноним 08/05/20 Птн 18:06:37 1681159406
>>1680308
> рабочий поток будет все время проверять
Т.е. рабочий поток будет крутить бессмысленный цикл? осмотри на BlockingCollection - поток будет спать, пока не появятся данные для обработки.
Аноним 08/05/20 Птн 21:10:49 1681504407
>>1680563
С конца фором перебираешь песни и Removeat на индексе который соответствует твоему ифу.
Аноним 08/05/20 Птн 23:51:53 1681676408
image.png 68Кб, 996x545
996x545
image.png 7Кб, 827x84
827x84
Смотри анон, пишу дискорд бота для шикимори и встал вопрос.
Когда делаю запрос из кода, оно думает почему то, что я делаю GET запрос на страницу авторизации. Но когда делаю аналогичный запрос из постмена, то все работает как надо.

Что не так то блядь? Где я туплю? При этом пост запросы делаются так же в других местах бота (например авторизация, там даже рут тот же, только тело немного другое. Вот доки кста: https://shikimori.org/oauth) и все работает.
Аноним 09/05/20 Суб 00:10:24 1681693409
изображение.png 21Кб, 681x349
681x349
Аноним 09/05/20 Суб 00:29:21 1681711410
>>1680291
для начала добавь проверку rulesTotal.Lenght = 0, а то у тебя вечный цикл, инициализацию rulesTotal упрости хотя бы $"{твоя хуйня}", также for можно на foreach заменить, самое просто добавить таймаут и заводить алгоритм юзера в таске - не успел иди нахуй
Аноним 09/05/20 Суб 00:46:46 1681721411
>>1681676
Ты на ссылки посмотри. Он тебя редиректит на sign-in страницу, поэтому и GET. А почему он тебя туда редиректит - это другой вопрос.
Проверь статус у твоего response и вытащи ответ через ReadAsStringAsync(). Там или 401 или 403 или 302.
Аноним 09/05/20 Суб 02:23:53 1681761412
>>1681721
Проблема кстати решилась созданием в методе Post своего инстанса HttpClient. Не ебу почему так.
амет 09/05/20 Суб 15:19:42 1682127413
Вопрос по ЕФ. Вот у меня есть две сущности - зоопарк и животное. В конфигураторе какой сущности стоит описывать связь? Т.е. я могу в зоопарке прписать zoo.HasMany().WithOne(..., а могу у животного dvacher.HasOne().WithMany(... Есть тут общепринятые стандарты?
Аноним 10/05/20 Вск 06:10:41 1682789414
image.png 24Кб, 808x205
808x205
image.png 15Кб, 484x259
484x259
Уважаемые аноны, вопрос :
я пытаюсь сделать так что бы при добавлении продукта на диалоговом окне окно закрывалось и главное окно где раположен список всех продуктов автоматические обновлялся, для этого я использую первый скрин в нем присутствует часть "mainWindow.Refresh();" собственно она должна отвечать за обновление контента,
на другом скрине представлены 3 метода, два метода это евентХандлеры от кнопок которые обновляют страницу вручную при нажатии, а третий Refresh() вызывается собственно с дочернего окна и должен по аналогии с первыми двумя методами обновить каталог но этого не происходит, метода проходит дальше, дочернее окно закрывается обновление не происходит, собственно вопрос, почему и как фиксить?
Аноним 10/05/20 Вск 08:02:52 1682820415
>>1682789
>почему
Зависит от того как оно у тебя сделано. Но вкратце после this.close() хрен что выполнится
>как фиксить?
Делать до закрытия тут же или в событии
Аноним 10/05/20 Вск 11:56:44 1682947416
Подскажите плес книги по архитектуре приложений и алгоритмам, но чтобы было написано, как для тупых. А то я синтаксис шарпа вроде выучил, но на данном этапе всякие солиды и паттерны выглядят для меня, как излишнее усложнение, которое заставляет плодить файлы, классы, интерфейсы ради сомнительной выгоды и ещё больше запутывает. Сразу вспоминаются шутки про "ООП головного мозга", когда на каждый пук-сереньк 1000 файлов с интерфейсами, классами и т.д.
Можно на английском.
Аноним 10/05/20 Вск 12:01:38 1682953417
>>1682947
Agile Principles, Patterns, and Practices in C#

Всё объясняется довольно подробно, есть много реальных примеров. На протяжении всей книги будет создаваться программа для расчета зарплаты сотрудникам.
Единственный минус - книга 2008 года. Поэтому код немного устарел и в нём нет свистоперделок вида интерполяции строк через $ или нулл-исключающего оператора. Но это не так важно, потому что самим паттернам и принципам уже овердохуя лет. И после прочтения ты легко освоишь современные паттерны.
Аноним 10/05/20 Вск 12:06:46 1682963418
>>1682953
Спасибо, посмотрю. На тухлый синтаксис действительно всё равно. Да и вообще даже на язык. Суть ведь в содержании, а не форме.
Аноним 10/05/20 Вск 14:59:15 1683180419
Аноним 10/05/20 Вск 16:36:29 1683269420
>>1683180
>Поскольку камрады
>камрады

Чего ты здесь забыл, камрад?
Аноним 10/05/20 Вск 16:49:38 1683278421
Выбрал сишарп для вката в айти, подводные какие, может все же в джаву? До этого баловался питоном в школе. Смущает малое кол-во джуниор позиций в дс, не знаю что будет к зиме вообще на рынке твориться.
Аноним 10/05/20 Вск 17:06:59 1683294422
>>1683180
>критика книги по паттернам от автора книги по паттернам
А что, звучит легитимно.
Аноним 10/05/20 Вск 17:09:04 1683297423
>>1683294
>рряяя, его книга говно, а вот моя книга по той же теме намного лучше ррряяя
Аноним 10/05/20 Вск 18:15:51 1683374424
>>1682820
я пробовал до закрытия, все хуйня
Аноним 10/05/20 Вск 18:29:09 1683392425
>>1682789
У тебя дочернее окно как открывается, диалогом или нет?
Аноним 10/05/20 Вск 18:41:30 1683403426
image.png 7Кб, 566x107
566x107
Аноним 10/05/20 Вск 18:49:34 1683412427
>>1683278
Джуны не нужны. Их сейчас выращивают сами компании потому что это дешевле и практичнее. Рынок переполнен вкатывальщиками дебилами из-за которых дешевле вырастить джуна самому, чем пытаться нанять. Больше времени и денег уйдет на поиски.
Конторы которые еще хоть кого-то набирают в 90% случаев построены на наебалове, где в лучшем случае тебе хотя бы 20-30к за месяц заплатит с дикими переработками. А у особо хитрых ты еще и должен останешься. Плюс работа в таких компаниях это считай волчий билет в индустрию. Так как оттуда выходят угольки (выгоревшие люди), а такой человек это беда для компании.

Если у тебя не будет проекта на гитхабе через которой тебя могут позвать на работу или в резюме не будет ссылки на ПР который пошел в ядро или топ библиотеку, при том реальный ПР, а не правка орфографии, то лучше иди на стройку, поверь там условия в десятки раз лучше будут.
Аноним 10/05/20 Вск 18:50:22 1683413428
>>1683403
Тогда в главном окне подписывайся на событие закрытия дочернего (или делай свое событие, если данные должны обновляться не только при закрытии) и в обработчике обновляй данные главного окна.
Аноним 10/05/20 Вск 18:58:59 1683421429
Аноним 10/05/20 Вск 19:03:30 1683424430
>>1683421
Что именно? С событиями не умеешь работать?
Аноним 10/05/20 Вск 19:06:23 1683426431
>>1683424
не знаю такого события для окна на закрытия другого окна
Аноним 10/05/20 Вск 19:09:40 1683431432
Аноним 10/05/20 Вск 19:12:41 1683435433
>>1683431
так погоди, это хандлер который выполняется на том же окне что закрывается перед закрытием, чем оно тогда отличается от просто вызова метода в другом окне?
Аноним 10/05/20 Вск 19:16:33 1683440434
>>1683435
Тем, что дочернему не надо ничего знать об окне, вызвавшем его.
Аноним 10/05/20 Вск 20:08:09 1683499435
>>1683440
ты рофлишь? я же вроде ясно написал что мне нужно обновить контент на родительском окне после закрытия дочернего, при обработке хандлера на дочернем окне на родительском ничего обновляться не будет...
Аноним 10/05/20 Вск 20:58:28 1683541436
2020-05-10 20-5[...].mp4 218Кб, 1920x1080, 00:00:16
1920x1080
Аноним 10/05/20 Вск 23:33:40 1683626437
>>1681761
Не создавай новый httpClient каждый раз, как делаешь вызов. У тебя в существующем скорее всего что-то в конфигурации не то - headers, baseAddress.
Аноним 10/05/20 Вск 23:39:30 1683633438
>>1683499
Чувак, у тебя знания джуна, в документацию ты не можешь, но всё туда же: "рофлишь", "я же ясно пояснил". Вместо наездов иди учись.
Аноним 11/05/20 Пнд 00:20:23 1683647439
>>1683633
>у тебя знания джуна
Это где с такими знаниями на позицию джуна берут?
Аноним 11/05/20 Пнд 00:31:32 1683651440
>>1683647
В любой конторе где 30к платят, там нужен код который дает результат и не важно как он написан.
Если ты можешь давать результат, то тебя возьмут.
Аноним 11/05/20 Пнд 19:23:18 1684287441
Поясните, как отправлять POST-запрос через httpwebrequest. Что-то ничего не получается. Если я отправляю что-то через soapui, сервер нормально отвечает. Если пытаюсь делать то же через httpwebrequest — он посылает меня нахрен.
Аноним 11/05/20 Пнд 21:17:59 1684367442
>>1684287
Зачем тебе делать это через httpwebrequest, если есть более высокоуровневые классы вида HttpClient?
Аноним 11/05/20 Пнд 21:27:01 1684374443
Аноним 11/05/20 Пнд 21:28:53 1684376444
>>1684374
В смысле .Net framework 3.5
Аноним 11/05/20 Пнд 21:40:56 1684380445
20200305031119.jpg 176Кб, 1085x939
1085x939
>>1684374
Нет, но в нём есть WebClient. Но если хочешь ебаться с httpwebrequest, то придётся делать что-то уровня пикрил.
Аноним 11/05/20 Пнд 21:44:12 1684382446
>>1684380
Короче, разобрался, проблема была не в нём, а в неправильном URL
Аноним 12/05/20 Втр 07:20:53 1684676447
шарпачи, а я тут набрел на забавную хотя может быть и бредовую идею: использовать ЮНИТИ чисто для кроссплатформенного гуя искаропки
подводные камни?
Аноним 12/05/20 Втр 07:40:14 1684683448
>>1684676
Хуйня идея. Лучше уж электрон или другие кросс гуи, там и возможности и производительность.
На крайняк veldrid + imgui куда лучше юнити будут.
Аноним 12/05/20 Втр 08:45:31 1684721449
>>1684683
>электрон
>производительность

В голос нахуй. Там одна основа в виде браузера в пустом приложении уже жрёт всю твою оперативку и 300 мб на жестком диске.
Аноним 12/05/20 Втр 12:15:15 1684858450
Здравствуйте
Хочу из фрондэнд-макаки перекатиться в шарп (ебаный коллега просто без ума от вашего языка и меня заразил)
Проблема в том, что у меня есть оффер в европу (знакомый работает в Прагве манагером и может меня подтянуть к свою практику), но я блять не хочу макакой
Так вот...правда ли, что в этой самой европе шарп активно наступает на пятки жабе? Судя по кличеству вакансий на линкедине в бэке сначала жаба, потом питон, а потом шарп, а в тырыпрайзе и подавно
Не хочу устраивать срач и холивар, поэтому пардон, если флуд
Аноним 12/05/20 Втр 12:43:32 1684891451
Является ли добавление новых/удаление старых (не изменение) записей в бд через контексты еф потокобезопасным? делаю сайт, и если от нескольких пользователей прилетают в базу данные может ли быть конфликт, что получится попытка вставки нескольких запией под оди ИД (ид автоинкременируемый)?
Аноним 12/05/20 Втр 12:46:29 1684894452
>>1684858
>знакомый работает в Прагве манагером
>правда ли, что в этой самой европе шарп активно наступает на пятки жабе
Почему бы не спросить у манагера? По крайней мере по Праге у него инфа поактуальнее, чем у сосачера.
Аноним 12/05/20 Втр 12:46:59 1684896453
>>1684891
Зависит от настроек уровня изоляции транзакций. Если ничего не менял, то потокобезопасно. Но и высокой производительности не будет.
Аноним 12/05/20 Втр 12:52:50 1684899454
>>1684676
>использовать ЮНИТИ чисто для кроссплатформенного гуя

ЗАПУСКАЕШЬ КАЛЬКУЛЯТОР
@
ДЛЯ РАБОТЫ ПРИЛОЖЕНИЯ НУЖНА ВИДЕОКАРТА НЕ НИЖЕ 2080RTX
@
ЛЕТИШЬ ТРАССИРУЯ ЛУЧИ ЖОПОЙ
Аноним 12/05/20 Втр 12:53:38 1684901455
>>1684894
свои тонкости и нюансы просто, спрашивать про другое направление - такое себе
но, хорошо, спасибо
Аноним 12/05/20 Втр 12:57:21 1684904456
Есть один лист, в который выгружено, допустим, 30 полей, но мне не нужны все 30, мне нужно только 10, поэтому лишние я хочу удалить. Но мне нужно делать это динамически, потому что я не знаю, какие именно 10 мне нужны, список этих полей хранится в ещё одном листе в виде строк. Что можно сделать?
Аноним 12/05/20 Втр 13:14:38 1684917457
>>1684904
Сортируешь этот лист руководствуясь тем в котором список нужных полей, после чего удаляешь 20 не нужных.
Аноним 12/05/20 Втр 13:17:47 1684924458
>>1684917
Как поле-то удалить динамически?
Аноним 12/05/20 Втр 13:37:45 1684946459
>>1684924
Никак. Можешь только null ему присвоить или 0, в зависимости от типа данных. Для динамического удаления тебе нужно использовать класс Dictionary.
Аноним 12/05/20 Втр 13:47:26 1684952460
>>1684946
Ну пиздец, я догадывался, что так и будет. Я через properties как-нибудь?
Аноним 12/05/20 Втр 13:58:57 1684967461
>>1684952
Никак. Только перебирать лист каждый раз сначала после удаления элемента.
Аноним 12/05/20 Втр 14:00:15 1684970462
>>1665540 (OP)
престарелый байтоёб-вкатывальщик не может осилить одну хуиту:

WPF на форме есть элементы два радиобатона и комбобоксы, также есть кнопка "подключить". Хочу, чтобы при выборе одного радиобатона часть комбобоксов становилась isEnable=false

это я сделал через IsEnabled="{Binding IsChecked, ElementName=rbSerial}"

а также, чтобы все комбобоксы и радиобатоны становились isEnable=false при нажатии на кнопку (т.е. там какая-то переменная становиться isConnected = true)

Но для этого надо класс сделать и в него вставить логическое условие. Однако в это логическое условие я не могу пихнуть
!isConnected && (MainWindow.rbSerial.IsChecked == false);

Или могу, но что-то не могу разобраться с ключевыми словами static public и прочее. Куда смотреть? Чего почитать?
Аноним 12/05/20 Втр 14:39:47 1685035463
В России дотнет вообще применяется где-то? Везде где работал крутились на 1с или жабе.
Аноним 12/05/20 Втр 14:44:51 1685046464
>>1684970
Почитай про впф, ты пытаешься с впф работать как с винформс.
Аноним 12/05/20 Втр 14:54:42 1685067465
image.png 16Кб, 432x347
432x347
image.png 17Кб, 467x347
467x347
image.png 16Кб, 447x342
447x342
image.png 16Кб, 462x345
462x345
>>1685035
разработчики всякие нужны. Но 1с и Java, как мы видим, нужны чаще.
Аноним 12/05/20 Втр 15:04:45 1685079466
>>1685067
У меня дико бомбит, когда вкатывался жаба была очень примитивной по сравнению с шарпом, без лямбд, с тоннами бойлерплейта. Сейчас переучиваться на жабу уже поздно, а с работой на шарпе всё не так радужно.
Аноним 12/05/20 Втр 15:11:33 1685084467
>>1684904
Если ты под полем понимаешь объект, а не поле, то
mylist = mylist.Where(a => a.IsOK()).ToList();
>список этих полей хранится в ещё одном листе в виде строк
Есть еще intersect, которым можно получить пересечение множеств, но врядли это для тебе подойдет.
>>1684970
IsConnected это вьюшная часть? Если да, то логигу можно запилить через поведения (Behavior) и триггеры. Если нет, то переделывай c исрользованием MVVM.
Аноним 12/05/20 Втр 15:16:00 1685090468
>>1685079
Брат на джуна шарписта не может устроиться, уже третий месяц бомбит в личке.
Аноним 12/05/20 Втр 15:17:20 1685093469
image.png 46Кб, 1782x462
1782x462
>>1665540 (OP)
Играюсь с анусом с сокетами. Происходит какая то хуйня. В коде слева Send почему то запихивает буфер до талого на весь его размер, но в коде справа запихивает ровно по длине строки. В итоге код слева принимает ровно "Test request", а код справа принимает в ответ "Test response\0\0\0...\0"

Я в растерянности, код один, а работает по разному. Чому так?
Аноним 12/05/20 Втр 15:18:21 1685097470
>>1684721
Оператива и место это фигня если это конечно не калькулятор, проц и видяха куда важнее.
Электрон не так плох если правильно писать, та же vs studio отлично работает, но вот если пишут на нем рукожопы, то это да. Пиздец во все поля.
И тема производительности это не только об электроне, абсолютно все приложения сейчас этим грешат, типа время программиста дороже и прочая хня.
В результате куча приложений тормозят у пользователей независимо от того насколько у них крутые компы.

Но идея делать юнити в качестве интерфейса это еще хуже чем электрон.
Аноним 12/05/20 Втр 15:27:22 1685109471
>>1685090
Больше я жалею только о времени, потраченном на кресты. Там тысячи человекочасов лежат, литры крови, пота и слёз, а денег за это получено хуй да нихуя. Причём по меркам матёрых крестовиков я всё равно в них плохо разбираюсь, т.к. не умею патчить таблицы виртуальных функций в рантайме.
Аноним 12/05/20 Втр 15:31:26 1685113472
>>1685093
while(socket.Available > 0)
Пояснить сможешь? Нет? тогда засунь себе это в очко и перепиши нормально.
Аноним 12/05/20 Втр 15:37:06 1685122473
>>1684676
Не ты один набрёл. Видел вакансию полгода назад, искали спеца по юнити для доработки приложения. То ли они маршруты прокладывали, то ли для бизнеса какую-то визуализацию, но дело было связано с картами
Аноним 12/05/20 Втр 15:49:12 1685150474
>>1685113
Себе в очко запихни, пидарас чахоточный. Тот же самый код работает для сервера с одинаковыми размерами буфера и тот же самый код приводят в пример в любом источнике. Специально для тебя, дебила, поясняю: пока количество доступных байт > 0 - получать дальше. Вся хуйня работает на буферах размером нескольких байт, но тратит очень много времени на буферах большого размера, но только когда сервер отправляет клиенту строку тем же методом, которым клиент отправлял серверу. Почему?
Аноним 12/05/20 Втр 15:52:27 1685163475
>>1685084
>mylist = mylist.Where(a => a.IsOK()).ToList();
Так ему динамически надо. Т. е. на этот лист уже кто-то ссылается до его изменения. Ты же создаешь новый лист, который никак не влияет на тот лист на который уже кто-то ссылается.
Аноним 12/05/20 Втр 16:04:30 1685197476
>>1685163
На правах наркомании
var tmp = mylist.Where(a => a.IsOK()).ToList();
mylist.Clear();
mylist.AddRange(tmp);
>>1685150
>пока количество доступных байт > 0
пока есть непрочитанные байты в буффере сокета У тебя, говножуя, может в сокет прийти 40 байт из 100 ты их прочтешь и получишь, что доступно 0, а потом долетят еще 60 байт, но ты их не прочтешь. Или может еще может прийти следущее собщение и оно приклеится и ты прочтешь 500 байт из ста. А еще ты можешь соснуть, склеивая строку из кусков полученных байт, в коре, например, Default кодировка это utf8.
Аноним 12/05/20 Втр 16:07:02 1685201477
Как хранить записи серилога для того чтобы отдавать их в качестве ответов webapi?
Аноним 12/05/20 Втр 16:10:30 1685207478
>>1685197
>пока есть непрочитанные байты
Но проблема то вообще не в этом. Я же бля сижу дебажу и смотрю, что на малых буферах, когда сервер отвечает клиенту, у клиента в дебаге пишется socket.Available == 12 после чтения первых 4 байт. А у сервера на его receive и вовсе проблем нет ни при буффере в 4 байта ни при буффере в 4 мегабайта. Я бы понял, что я делаю что то неправильно, если бы поведение было бы одинаковым с обеих сторон, но тут же блядь сервер нормально считывает, а клиент заполняет весь буфер.
Аноним 12/05/20 Втр 16:14:19 1685214479
>>1685207
На одной машине запуцскаешь? Еще ты неправильно в Send длину передаешь, ты передаешь длинну строки, а надо размер массива байт. Опять же на однобайтовой кодировку это может сработать, а может и нет, а utf8 не сработает.
Аноним 12/05/20 Втр 16:19:25 1685220480
image.png 3Кб, 517x52
517x52
>>1685214
>На одной машине запуцскаешь?
На одном вижаке
>Еще ты неправильно в Send длину передаешь,
Да блядь, ну не в этом дело, ну. На клиенте и только на клиенте строка оказывается длинной в весь буфер с нулями на конце, если буфер больше данных - вот это проблема. С остальным я буду разбираться, когда преодолею текущую проблему
Аноним 12/05/20 Втр 16:20:23 1685222481
>>1685220
На одном вижаке в двух разных процессах
быстрофикс
Аноним 12/05/20 Втр 16:21:32 1685223482
>>1685220
>Да блядь, ну не в этом дело, ну.
Так зачем ты срёшь здесь, если знаешь в чём дело, долбоебина обосранная?
Аноним 12/05/20 Втр 16:22:53 1685224483
>>1685223
Ты пиздец ты мразь. Ты сюда верно из андроид тредов пришёл, пидорас? Я тебе про одно, ты мне про другое. Я тебе, долбоёбу, говорю, что не в этом проблема, а ты опять хуйню пишешь, мудила. Тебе видно в глаза попало, хуесосина? Ты глотай в следующий раз, как твоя мамаша-шлюха.
Аноним 12/05/20 Втр 16:24:39 1685225484
>>1685197
>mylist.Clear();
>mylist.AddRange(tmp);
Но это не динамика. Динамика это когда ты видишь визуальное отображение этого листа и то как меняются в нём данные по мере изменения этого листа. У тебя же он сначала путсым будет, а потом обновится.
Аноним 12/05/20 Втр 16:26:29 1685229485
>>1685224
Да все уже поняли, что проблема тут на генном уровне. Но неужели так сложно почитать документацию, особенно когда работает с низкоуровневой хуетой типа сокетов? Тебе указали на то, что у тебя значительные пробелы в знаниях. Но вместо того чтобы пиздовать на msdn, ты продолжаешь срать скриншотами с обрубками своего говнокода.
Аноним 12/05/20 Втр 16:26:57 1685231486
>>1685207
Не пердоль энкодинг, записывай сообщение через бинари райтер/ридер, в них же запихивай/считывай в массив байт и длину, и прочие данные о твоём стринге.
Аноним 12/05/20 Втр 16:28:08 1685235487
Да, кроме серилога. Еще вот какой вопрос. Смотрите, есть SignalR. Вооот. И типа мне нужно изменения каких-то данных отсылать клиентам. Но в чем суть: учетки клиентов находятся в группах, скажем пусть это будут отдельные комнаты чатов, где некоторые люди сидят сразу в нескольких комнатах. Так вот, можно ли, и если можно то как, отсылать изменения относящиеся к группе только людям в этой группе? Типа вот есть 2 в комнаты: Программирование, Аниме. Когда сообщение отправлено в группу "аниме", я хочу отослать это сообщение только тем, кто в этой группе сидит, а другим клиентам не отсылать. Как это сделать-то?
Аноним 12/05/20 Втр 16:28:28 1685237488
>>1685220
>буфер с нулями на конце, если буфер больше данных - вот это проблема
Эм.. А ты что ожидал, что буффер с хуями будет, а не снулями? Тебе receive возвращает количество прочитанных байт, именно на столько и будет заполнен буффер.
Аноним 12/05/20 Втр 16:31:23 1685244489
>>1684683
>>1684899
ну не стукайте
из новой юнити оказывается можно вообще все кроме гуя выбросить нахер, т.е. там голые билды по 1мб получаются и сразу ведроид и линукс и черт в ступе
короче говоря попробую отпишусь
>>1685122
занятно
Аноним 12/05/20 Втр 16:31:48 1685247490
>>1685225
Первый раз такое определение динамики слышу. Тогда почему бы по одному не удалять, если сразу удалить 10, это же уже тоже не "динамика".
Аноним 12/05/20 Втр 16:37:12 1685260491
>>1685244
А Xamarian чем не угодил?
Аноним 12/05/20 Втр 16:41:42 1685269492
>>1685247
Ну в этом и проблема. Если ты по одному удалять будешь в цикле, то цикл будет работать неправильно, так как ты перебираешь изменяемый массив. Если удалять по 10, то это не динамика. Особенно если речь идёт не только об отображении информации, но и об её обработке. Поэтому для таких целей используют Словарь, ключи которого можно удалять в цикле без негативных последствий.
Аноним 12/05/20 Втр 16:52:09 1685282493
>>1685269
>цикл будет работать неправильно, так как ты перебираешь изменяемый массив
Можно перебирать с конца, а если перебирать одновременно в потоках, то и со словарем можно словить много чего.
>Поэтому для таких целей используют Словарь
Мне, конечно, все еще не ясна цель, но словарь используют, когда нужен доступ по ключу за O(1). Удалять можно и из связанного списка.
Аноним 12/05/20 Втр 17:35:50 1685343494
У меня есть пустая база данных, как по DB-first заполнить ее теми же таблицами и полями, как по DbContext? Типо когда Code-First - создается автоматическая DB с такой же структурой, как в DbContext.

P.S. - Скрипты для SQL я писать умею, но вставлять такую залупу из 50 таблиц, в каждой из которой по 10 полей, как то не ок
Аноним 12/05/20 Втр 20:05:08 1685697495
>>1685343
Так ДБ фирст и подразумевает что у тебя есть созданная баз. Ты не хочешь создавать её, не хочешь генерить её из кода, как ты хочешь чтоб она создалась?
Аноним 12/05/20 Втр 20:09:33 1685707496
>>1685225
foreach(var item in list.ToArray())
{
if(!item.Check()) list.Remove(item);
}
Аноним 12/05/20 Втр 20:09:54 1685709497
>>1685697
> заполнить ее теми же таблицами и полями, как по DbContext?
>P.S. - Скрипты для SQL я писать умею
Аноним 12/05/20 Втр 20:31:25 1685737498
Аноним 12/05/20 Втр 20:35:11 1685741499
>>1685079
Т.е. ты не вкатился в джаву из-за ее кривости и теперь жалеешь, работая на шарпе?
Аноним 12/05/20 Втр 20:48:29 1685759500
>>1685737
ты тупой или ты читать не умеешь?
Есть пустая БД (без возможности DropCreateDatabaseFirst), без ЕДИНОЙ ТАБЛИЦЫ. Мне нужно перенести мой DbContext со всеми DbSet объектами и их полями в базу данных. Я могу это сделать скриптом - тригерить при первом обращении к БД, но нахуй оно мне нужно, если есть EF?
Аноним 12/05/20 Втр 21:26:51 1685813501
>>1685707
>Collection was modified; enumeration operation may not execute
Аноним 12/05/20 Втр 21:34:54 1685822502
>>1685741
Йип. Чему меня научил опыт в программировании: чем ужаснее язык, тем более сладкая работа. За язык, который никто не знает, никто не может на нём ничего написать, и в легаси которого можешь разобраться только ты, платят очень хорошо, дают очень вольные эстимейты, считают тебя крутым специалистом.
Самая благодарная работа, которую я выполнял -- отладка скриптов на ANSYS APDL, жутком выпердыше фортрана и бейсика. Тем не менее я мог заниматься спокойно, получал хорошие деньги и никто меня не подгонял неделями.
В этом плане жаба гораздо круче шарпа.
Аноним 12/05/20 Втр 21:59:59 1685859503
Аноним 13/05/20 Срд 01:21:08 1685976504
господа сисярписты, а можно
public static int Sign2(int val) {
return val > 0 ? 1 : -1;
}
сделать как-то хитро-хитро через сдвигание байтиков чтобы вот быстро-быстро работало? чет не могу придумать как сделать это изящьно.
Аноним 13/05/20 Срд 01:30:08 1685981505
Расскажите плз какие основные практики для обработки ошибок у Web Api приложения на коре 3 используются в настоящее время в тырпрайзе?

Для небольших приложений я так понимаю на фронте просто ловится код ошибки и текст какой-то пишется для пользователя, а если приложение больше и много разных видов ошибок, каждый из которых нужно как-то передать на клиент, там обработать и выдать нужный текст пользователю? Какие-то error codы вводятся? А как они выбрасываются? Пилятся свои классы исключений поверх стандартных? Как определяется код ответа нужный, тело ответа? Мидлвеер какой-то, который эти эксепшены ловит и делает нужный ответ? Расскажите плз или тыкните ссылкой

Ну и это только что я придумал сходу, а вообще что еще используется, какие архитектурные решения? Расскажите плз или тыкните ссылкой
Аноним 13/05/20 Срд 01:33:46 1685982506
>>1685981
>просто ловится код ошибки
имею ввиду код типа 200 401 итп
Аноним 13/05/20 Срд 01:44:29 1685985507
Аноним 13/05/20 Срд 02:47:22 1686001508
>>1685976
Пук-сереньк


if (num == 0)
return -1;
var shiftCount = sizeof(int) -1 ;
var n = (num >> shiftCount & 1);
return n == 1 ? -1 : 1;
Аноним 13/05/20 Срд 04:52:49 1686017509
Аноним 13/05/20 Срд 06:37:38 1686042510
Что сейчас юзают для веба? ASP.NET? Или что-то новое есть?
Аноним 13/05/20 Срд 07:33:00 1686071511
>>1683541
>>1683633
нет, я блядь нихрена не понимаю, объясни мне почему не работает тот код который я написал?
Аноним 13/05/20 Срд 08:57:51 1686121512
>>1686071
Показывай чот у тебя там накалякано
Аноним 13/05/20 Срд 09:01:46 1686123513
Здарова братва. Собираюсь захуячить видеоплеер с субтитрами и с переводчиком. С чего начать? Какие подводные?
Аноним 13/05/20 Срд 09:34:01 1686130514
image.png 24Кб, 808x205
808x205
image.png 15Кб, 484x259
484x259
>>1686121
вот мой вопрос, >>1682789
если что-то дополнительно нужно то скажи я инфу дам какую-нужно
Аноним 13/05/20 Срд 09:50:24 1686138515
Да хз что у тебя там и как вызывается. Второй скрин это главная форма? Дам же рефреш в контент новый экзмпляр вставляет, он же наверняка пустой. А еще дебе нужно обновить контрол, который отображает контент.
Аноним 13/05/20 Срд 09:50:49 1686140516
Аноним 13/05/20 Срд 09:52:06 1686142517
>>1685260
Ты его пробовал? Раз мы говорим про кроссплатформу, то речь идёт о Xamarin Forms. Большей параши я в жизни не видел. Запуск хелловордла 5 секунд! Пять ебаных секунд! Кто будет ждать открытия приложения столько времени?

После wpf прямо таки отвращение выработалось к XAML. За десять лет нихуя не изменилось. Как мелкомягкие вылизали asp.net добавив разор, и какой хуй они положили на wpf/xamarin, это просто цинизм какой-то
Короче, xamarin – параша, имхо. Надо ждать blazor для мобилок. Или не ебать себе мозг и писать нативные приложения. Потому что у Майков уже столько инициатив было, что в блазор уже как-то не верится
Аноним 13/05/20 Срд 09:56:31 1686146518
>>1686138
>>1686140
ну он не пустой, и по задумке должен работать по аналогии с методом выше, который вызывается по клику, по клику он работает как надо, мне это же надо и от рефреша,а вот про обновление контрола по подробнее

а что конкретно не понятно что называется?
второй скрин это методы на главном окне, родительском а скрин с методом submitbutton это хандлер на другом окне, который добавляет что-то закрывает окно и должен продолжить работу на родительском окне (метод рефреш)
Аноним 13/05/20 Срд 10:06:59 1686154519
>>1686146
>а вот про обновление контрола по подробнее
Ну типо контрол должен же как-то узнать, что Content изменился, но если работает по клику, то хз.
>не понятно что называется?
не называется, а вызывается, в дочернем ты добавляешь в менежер, потом это как-то должно аоеазаться в new Products(). Логика окутана тайной.

Бери отладчик и в путь. Во первых, посмотри заходит ли код в рефрешь, во-вторых, сравни классы Products() в рефреше и в клике.
Аноним 13/05/20 Срд 10:14:28 1686156520
>>1686154
я знаю что он гарантированно заходит в рефреш.
так же когда он заходит в рефреш после выполнения
Main.Content = new Products();
Main.Content = продолжает оставаться нулом, и я не совсем понимаю почему и как такое возможно что он не выкинул нул или что-то такое
на клике та же самая команда выполняется уже нормально Main.Content уже не нул, и я тоже не понимаю почему
Аноним 13/05/20 Срд 10:14:48 1686157521
WPF или WinForms? Периодически возникает потребность написать маленькие утилиты для коллег, которые не программисты

Раньше я думал, что формы это устарелое говно. Покушав сладкого WPF, я пришел к выводу, что формы лучше. Они быстрее. Они не лагают. Они моментально открываются
у меня 9700к, так что проблема не в старом железе
Аноним 13/05/20 Срд 10:17:38 1686161522
>>1686154
в дополнении к предыдущему посту добавлю что при клике Main.Conten не нул даже до захода в метод, но при рефреше который вызывается с другого окна он уже нул и до и после захода
Аноним 13/05/20 Срд 10:19:43 1686165523
>>1686156
> гарантированно заходит в рефреш
Точка останова срабатывает? Конструктор не может вернуть налл. Если Main.Content null, то тут только 2 варианта: или в рефреш не заходит или потом где-то обнуляется.
Аноним 13/05/20 Срд 10:21:42 1686167524
image.png 9Кб, 430x157
430x157
>>1686165
он заходит он получает и он оставляет нулл
Аноним 13/05/20 Срд 10:27:47 1686174525
>>1686157
>WPF или WinForms?
Для маленьких приложений-утилит, пожалуй формы лучши, их быстрее создавать, они больше прощают говнокод. А вот крупное приложение на впф писать лучше, имхо. К формам все равно придется прикручивать MV*, настраивать биндинги и прочее, а это может стать болью, в впф это все их коробки + есть всякие призмы и мввмлайты.
> Они быстрее. Они не лагают. Они моментально открываются
Открываются может и быстрее, хотя особой рзницы быть не должно, а вот если у тебя динамический интерфейс, много контролов и прочее, то формы соснут.

>>1686167
Еще раз ф10 нажми, чтоб он строчку выполнил.
Аноним 13/05/20 Срд 10:28:38 1686175526
image.png 8Кб, 518x131
518x131
Аноним 13/05/20 Срд 10:29:51 1686176527
>>1686174
я может быть далеко не сеньйор в программировании. но не настолько же тупой, очевидно что когда я говорил что он выходит с нулом это значит что он выходит с нулом...
Аноним 13/05/20 Срд 10:35:36 1686183528
>>1686176
>>1686175
Ну не может в шарпе конструктор налл вернуть. Контент это проперти? Сеттер кастомный? Другие потоки есть? Попробуйтак и проверь
Refresh(){
..var p = new Products();
..Main.Content = p;
}
Аноним 13/05/20 Срд 10:45:09 1686194529
image.png 37Кб, 955x266
955x266
>>1686183
контент это эм... вложенный контент в маин, маин это собственно фрейм на окне.

а вот добавление этой строчки var p = new Products(); в каком-то смысле помогло так как теперь p не нулл и main.content собственно тоже, но проблема остается, окно не обновляется
Аноним 13/05/20 Срд 10:48:13 1686198530
image.png 25Кб, 700x428
700x428
>>1686183
>>1686194
в догонку, нессмотря на то что р теперь не нул, main.content почему-то все еще нул
Аноним 13/05/20 Срд 10:48:21 1686199531
>>1685859
в том, что на борде не знают про миграцию

Еще вопрос к антонам - в WebApi как происходит общение между фронт-бэк в передаче служебных сообщений? К примеру - валидация прошла, 200 - Ок, переходим к методу "Validate". Эта логика в routing фронта должна быть заложена?
И еще - на фронте или на бэке должна быть проверка аутентификации? Или и там и там? Если сделать только на фронте, то через Postman можно выебать, как street hooker весь бэк, если на бэке делать, то это геморойная передача отклика с сервера клиенту. На какой стул садиться?
Аноним 13/05/20 Срд 11:06:22 1686231532
>>1686199
Так миграции это тоже сode-first, а ему вроде это не подходило, ему надо db-first, но что б не писать SQL. Короче мутный тип.
Сам толко начал ковырять асп, поэтому особо не подскажу, но вот что точно, это то что валидации на стороне клиента доверять нельзя. Она скорее для того что б сообщить пользователю. Так что на беке ваидация нужа, а то
>можно выебать, как street hooker весь бэк
>>1686198
Так у тебя впф.. Юзай мввм и пили свою навигацию, та что из коробки там говно.
Аноним 13/05/20 Срд 11:07:52 1686235533
>>1686231
действительно, люди добрые, извините что не уточнил сразу что это впф.
Аноним 13/05/20 Срд 12:20:56 1686372534
>>1686235
Так ты слишком туп для впф. Либо переходи на винформс, либо читай литературу по впф и возвращайся к впф после прочтения.
Аноним 13/05/20 Срд 13:16:07 1686457535
Господа, кто-нибудь сталкивался с реализацией алгоритма литтла? Поделитесь примерами пожалуйста.
Аноним 13/05/20 Срд 13:40:39 1686473536
Аноним 13/05/20 Срд 14:21:49 1686503537
>>1686473
Спасибо, но я имею в виду пример кода. Уже не одну неделю вожусь с этой рекурсией, уже сам в зациклился
Аноним 13/05/20 Срд 14:28:50 1686513538
Котаны, как быть, если нужно селектить linq из массива, который может быть пустым?
Аноним 13/05/20 Срд 14:35:57 1686522539
>>1686513
А в чем проблема, вроде только Min Max давятся пустым перечислением. Проверяй размер перед запросом, благо для массива это почти бесплатно.
Аноним 13/05/20 Срд 14:41:53 1686528540
например FirsOrDefault давится, хотя казалось бы он для этого и предназначен: Value cannot be null.
Parameter name: source
Аноним 13/05/20 Срд 14:42:40 1686530541
Если проверять на null вручную, придётся переделывать на foreach
Аноним 13/05/20 Срд 14:44:23 1686535542
Аноним 13/05/20 Срд 14:51:38 1686545543
>>1686535
Так у тебя там не пустой массив, а null вместо массива.
Аноним 13/05/20 Срд 14:54:54 1686552544
>>1686545
И как быть в этом случае?
Аноним 13/05/20 Срд 14:57:43 1686563545
Аноним 13/05/20 Срд 15:00:41 1686575546
>>1686563
А если нужно типа левое соединение?
Аноним 13/05/20 Срд 15:02:13 1686578547
>>1686552
>>1686563
Хотя там еще и при обращении к Foo.foo можно NRE словить, если FirstOrDefautl вернет все же Default.
Аноним 13/05/20 Срд 15:03:20 1686581548
>>1686575
Я ж и говорю хависит. Ты сначала сформируй исходные данные и то что нужно получить. А то это "а если то, а если это" может долго продолжаться.
Аноним 13/05/20 Срд 15:05:29 1686585549
Я хочу, чтобы когда внутренний массив есть, я мог бы выбрать первую строчку из этого массива; когда внутренний массив null — какие-то другие данные, например код ошибки.
Аноним 13/05/20 Срд 15:08:01 1686590550
>>1686503
В таком случае могу только посоветовать книги по фрезерному и токарному делу. Если ты алгоритм в код переписать не можешь, что дальше тебе в программировании делать нечего.
Аноним 13/05/20 Срд 15:10:40 1686596551
>>1686535
Задай в классе Bar дефолтное значение для foo равное пустому массиву, очевидно.
Аноним 13/05/20 Срд 15:21:02 1686626552
>>1686596
Так там еще и попытка обращения к элементу этого массива через FirstOrDefaul, т.е. и тут налл может быть, а потом еще и чтение поля, котое может быть налл. Та еще наркомания.
Аноним 13/05/20 Срд 15:21:08 1686627553
111.jpg 43Кб, 507x559
507x559
Аноним 13/05/20 Срд 15:22:35 1686629554
>>1686585
А ты на JS до этого не писал?
Аноним 13/05/20 Срд 15:25:43 1686631555
>>1686626
А не напиздел, в foo запутался
Аноним 13/05/20 Срд 15:50:48 1686690556
>>1686585
Короч, на мои вопросы можете уже не отвечать.
Аноним 13/05/20 Срд 15:58:47 1686706557
>>1686690
Спасибо, что разрешил.
Аноним 13/05/20 Срд 16:03:50 1686721558
Аноним 13/05/20 Срд 17:55:17 1686915559
>>1686142
Ты давно приложения на питоне открывал? Там и 5 и 10 секунд под декстоп.
Приложухи на Замарине под мобилками открываются в момент.

Также не сравнивай Релиз с Дебагом.
Аноним 14/05/20 Чтв 14:06:47 1687704560
Как сбиндить изменяемый словарь к листбоксу в WPF?
Аноним 14/05/20 Чтв 14:20:41 1687719561
>>1687704
Как и все остальное - через ItemsSource. Отображение настроить через ItemTemplate.
Аноним 14/05/20 Чтв 15:16:44 1687781562
IMG202005141514[...].JPG 89Кб, 720x613
720x613
Сап, сисач.
Помогите пожалуйста
Нужно выполнить задания 17 и 18 по примеру 15/16 (через string/substring)
Аноним 14/05/20 Чтв 15:46:54 1687845563
>>1687781
Через сабстринг это условие препода? Если да, то передай ему привет в челюсть. А тебя потом в приличном обществе за такой код обольют ссаниной.
Аноним 14/05/20 Чтв 16:08:45 1687893564
>>1687781
Скажи преподу чтобы он для себя открыл класс StringBuilder
Аноним 14/05/20 Чтв 16:09:46 1687895565
111.jpg 58Кб, 891x583
891x583
>>1687781
Скажи преподу чтобы он для себя открыл класс StringBuilder
Отклеилось.
Аноним 14/05/20 Чтв 16:31:35 1687915566
>>1685813
ToArrаy() возвращает копию
Аноним 14/05/20 Чтв 16:44:09 1687936567
>>1687915
Вылетает OutOfMemoryException
C 14/05/20 Чтв 17:09:18 1687984568
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
ПЕРЕКАТ: https://2ch.hk/pr/res/1687982.html
Аноним 14/05/20 Чтв 18:08:58 1688113569
>>1687719
Если биндить сам словарь через Values, ничего не отображается. Если же преобразовать в ObservableCollection, кидает исключение при изменении словаря.
Аноним 14/05/20 Чтв 18:49:13 1688187570
Аноним 14/05/20 Чтв 19:43:14 1688257571
wpf.png 117Кб, 1884x940
1884x940
>>1687936
У тебя бесконечная последовательность генерируется энумератором?
>>1688113
>Если биндить сам словарь через Values, ничего не отображается
А не пиздишь?
>кидает исключение при изменении словаря.
Значит ты не правильно делаешь.
Ты бы учебник какой прочитал, а то так будешь долго ебаться и не факт, что получится.
Аноним 14/05/20 Чтв 20:45:17 1688334572
Здравствуйте.
Хотел бы задать не очень обычный вопрос в тредике.
Есть ли тут аноны, которые работают в Европке или знают о ситуации о востребованности c#? С тянкой по ее учебе будем перекатываться в Германию или Англию, и ПОЧЕМУ-ТО язык в Англии более востребован, чем джава-я очень охуел (в германии все же джава). Так ли это?
Сам я фронт-макака и хочу давно дропать.
Ну и в целом любая полезная информация для вкатывальщика. Спасибо
Аноним 14/05/20 Чтв 20:51:16 1688339573
>>1685985
А зачем нужен флюент когда есть стандартные валидации
соответствия модели (DataAnnotations)?
Аноним 14/05/20 Чтв 21:11:49 1688368574
>>1688339
Не был бы нужен - то никто бы такого монстра не разрабатывал и он бы не пользовался такой популярностью.

Больше гибкости, хорошо укладывается в Mediator и CQRS patterns. Логику проще изолировать и проще управлять.
Аноним 14/05/20 Чтв 21:22:48 1688378575
>>1688334
Судя по штатам у нас тут у каждой второй конторы есть аутсорс или бранч компании в Ирландии и Англии. Если мы тут на дотнете, то и они там будут на дотнете.
В Германии, наверное, много банков и они там тонут в джава легаси. Хз короче.
Аноним 14/05/20 Чтв 21:35:10 1688382576
.png 7Кб, 368x200
368x200
>>1687895
Хм, почему просто так не сделать? У тебя просто почему-то подразумевается, что считаются буквы внутри слов, но ведь в задании ничего про это нет, там только про строку. Или это я тупой?
Аноним 14/05/20 Чтв 21:40:59 1688388577
image.png 13Кб, 405x253
405x253
>>1665540 (OP)
ДВАЧ ПАМАГИ
Уже 2 дня пытаюсь подключить бд sql с сервака к программе, но не выходит. В списке подключений сервера нет, при загрузке файла напрямую вот такая вот ошибка.
Все программы обновил до последней версии, и сервер, и sql, и manager.
Аноним 14/05/20 Чтв 22:06:20 1688431578
Аноним 14/05/20 Чтв 23:48:23 1688554579
image.png 5Кб, 247x165
247x165
>>1688431
Я все обновил по максимуму, видать, зря.
Вот старый сервер и остался.
И что делать?
Не понял как эту проблему решили, эту тему уже видел.

Аноним 15/05/20 Птн 08:11:36 1688715580
>>1687781
Здесь вы можете наблюдать причину почему программистов не хотят брать на работу после ВУЗов и боятся их как огня.
Аноним 15/05/20 Птн 08:43:18 1688719581
15866136025300.jpg 5Кб, 230x219
230x219
>>1688715
Больше всего полыхает срака, что учился на другой инженерной вышке, тянул как основное образование которое нахуй не уперлось, так и программирование, потом доказывал на собеседованиях, что я не верблюд, а какие-то дегенераты занимают места в вузе и приходят с плевыми задачками, чтобы ты решил за них. Блять

Я делал за деньги экономику младшим курсам. Не мой профиль, но задачи плевые. Подготовил формулы в Экселе, и поставил решение на поток. Я могу понять моих клиентов – это пезды тупые, и то говно в принципе не интересное. Что делает этот анон, я понять не могу

Вспомнил своего недавнего клиента. Он учится программированию, но петпроекты заказывал у меня. Причем я ощущал, что по ту сторону экрана сидит малолетний пахом, потому тз были крайне ебанутые. Например, написать просмотрщик фото, который позволяет делать удобные вырезы стикеров. Он серьезно показывал это учителю!
Аноним 15/05/20 Птн 19:22:35 1689420582
кто-нибудь пользовался авалонией? хорошая вещь или хуйня?
Аноним 15/05/20 Птн 23:42:00 1689742583
Почаны, что там слышно про NET 5 и типа когда там вся линейка в попенсорс уходит?
Аноним 16/05/20 Суб 00:44:26 1689817584
>>1665567
какой же ты тупой, пиздец. Ты же понимаешь, что оно ищет по словам в вакансии, и очевидно, что множества С# и .net в твоем высере пересекаются и потому их складывать нельзя. Хотя кому я объясняю.
Аноним 16/05/20 Суб 00:44:26 1689818585
image.png 17Кб, 408x271
408x271
>>1688554
Ну вот, удалил я старую версию sql сервера, получил другую ошибку.
Аноним 16/05/20 Суб 09:57:57 1689977586
>>1689742
>что там слышно про NET 5
Уже третье превью вышло
> когда там вся линейка в попенсорс уходит?
кор в опенсорсе уже много лет
Аноним 16/05/20 Суб 10:02:31 1689978587
>>1689818
>try to use (localdb)\mssqllocaldb as server name to connect to the LocalDB automatic instance, for example:

><connectionStrings>
><add name="ProductsContext" connectionString="Data Source=localdb)\mssqllocaldb;
> ...
Аноним 16/05/20 Суб 14:44:06 1690178588
Как преобразовать List<Post> в List<IViewPost> где Post имплементирует IViewPost?
Аноним 16/05/20 Суб 15:07:22 1690228589
>>1690178
Бля, кароче не так вопрос написал. Вот у меня есть класс ListResult<T>. В нём поля List<T> List и int Total. Как сделать чтобы я мог писать ListResult<IViewPost> = listResult где listResult - ListResult<Post>? Чтобы неявное преобразование проводилось итеративно по каждому элементу поля List как бы.
Аноним 16/05/20 Суб 15:55:23 1690296590
>>1690228
list.Cast<IPostSomething>().ToList()
Аноним 16/05/20 Суб 18:51:03 1690596591
>>1690296
Лучше фильтрануть OfType или использовать ConvertAll чтобы эксепшенов избежать
Аноним 16/05/20 Суб 22:58:10 1691106592
>>1689977
Обещали что весь .NET 5 будет попенсорсе же? Ну типа останется только кор. Или уже переобулись?
Аноним 16/05/20 Суб 23:24:41 1691126593
>>1691106
Кора и Фреймворка не будет, останется только .NET 5
Аноним 17/05/20 Вск 00:12:32 1691169594
>>1689978
Спасибо, анончик, за помощь. Твой способ не сработал, но после третьей переустановки с устаановкой всех ненужных плагинов, удалением старых бд и ещё одного дня пердолинга, я наконец сделал это.
Аноним 17/05/20 Вск 04:39:50 1691255595
Правильно ли я понимаю, что просто так использовать ms sql нельзя, и за него надо платить? Допустим, есть коммерческое приложение, и я создал базу через ef code first. Там какие-то лицензионные соглашения всплывают во время установки нугет пакетов, но кто их читает?
Просто ебаться с постгресом нет желания, хотелось бы уточнить
Аноним 17/05/20 Вск 04:42:44 1691257596
>>1691255
есть express версия, сильно лимитирована, но полностью халявная
Аноним 17/05/20 Вск 20:54:16 1692222597
newtonsoft json при десериализации не перезаписывает свойства у сложных объектов стандартными значениями как добиться такого же эффекта от нового System.Text.Json в net core 3?
Суть в том что объект который я десериализую имеет кучу свойств которые создают автоматически и у которых некоторые поля используются как базовые, но помечены как игнорируемые, но System.Text.Json превращает такие поля для чисел к примеру в 0, когда newtonsoft json оставит там созданный объектом 100.
Аноним 18/05/20 Пнд 01:02:42 1692462598
Как можно получить массив, состоящий из уровней сигнала из wav-файла? То есть гружу wav-файл, программа определяет кол-во отсчетов N, и грузит в одномерный массив разрядности N данные о каждом уровне. Файл монофонический, разрядность 16 бит.

Сам искал, но примеры по ссылкам в гугле либо с какими-то наворотами, либо для стерео, либо еще не пойми что, а самого простого - нет видимо потому что я один не могу додуматься самостоятельно
Аноним 18/05/20 Пнд 11:00:31 1692662599
Можно ли править код в библиотеках, которые подключил к проекту через NuGet?
Я не пишу на шарпе и вовсе не кодер, но необходимо автоматизировать одну хуиту и нашел разве что готовую библиотеку на шарпе с подключением к проекту через нугет. Но надо кое что поправить, а как не пойму и можно ли вообще.
Вижу его в ссылках, могу посмотреть в обозревателе какие методы там есть, но сам код увидеть не могу. Он закрыт?
Аноним 18/05/20 Пнд 11:17:48 1692680600
Не разбираюсь в дотнете вообще.
Поясните на пальцах тонкости реализации с async/await ?
Что есть Таск и сколько тредов создает среда исполнения в простых случаях?
Код написанный в стиле async/await не страдает от многопоточного исполнения ?
Упростило ли серьезно введение async/await гуипрограммирование?
Аноним 18/05/20 Пнд 11:19:45 1692683601
>>1692662
Найди на гитхабе этот модуль и подключи как проект
Аноним 18/05/20 Пнд 11:43:37 1692698602
>>1692680
На ютубе об этом часовых и меньше видео десятки где поясняют что и как внутри работает.
Аноним 18/05/20 Пнд 11:53:05 1692705603
>>1692222
Добавь метод, который будет создавать нужное состояние и пометь его атрибутом [OnDeserialized]
Но вообще не понятно зачем ты пометил их игнорируемыми, если тебе нужно сохранить их состояние.
Аноним 18/05/20 Пнд 12:18:34 1692713604
>>1692683
Так и сделал. А из нугета нельзя править, да?
Аноним 18/05/20 Пнд 12:20:19 1692716605
>>1692662
>Не разбираюсь в дотнете вообще.
А зачем тебе тогда ответы на эти вопросы?
>Что есть Таск
Задача, которая завершится в будущем. Или не завершится.
>сколько тредов создает среда исполнения в простых случаях?
Сколько посчитает нужным в зависимости от свободных ресурсов, активности приложения, настроек пула и т.д.
>Код написанный в стиле async/await не страдает от многопоточного исполнения ?
Что значит традать от многопоочного исполнения? Таска может выполнится в другом потоке. Зависит от контекста синхронизации. Но в общем случае надо обеспечивать потокобезопасность самому.
>Упростило ли серьезно введение async/await гуипрограммирование?
Упростило написание асинхронного кода.
Аноним 18/05/20 Пнд 13:28:28 1692757606
>>1692705
>Но вообще не понятно зачем ты пометил их игнорируемыми, если тебе нужно сохранить их состояние.
Это сериализация/десериализация настроек и настройкам не нужно хранить границы возможных настроек потому что они могут меняться в коде. Плюс если их не игнорить, то json вырастет минимум в 3 раза.
Просто мне не понятна логика десериализаторов зачем если у объекта есть установленное свойство, они создают новый экземпляр и заменяют тот что уже существует, почему не заменить только те свойства/поля которые есть в json, не создавай экземпляры на каждый чих.
Аноним 18/05/20 Пнд 13:55:45 1692783607
>>1692757
Они ничего не заменяют, когда происходит десериализация, то объект десериализуемого типа инициализируется в памяти без вызова конструктора, но при этом все байты объекта инициализируются в состояние null или 0.
Аноним 18/05/20 Пнд 17:20:05 1693001608
Как Garbage Collector собирает мусор из разных потоков? Передаю в ThreadPool несколько методов, внутри которых выделяется over9000 байт. Память начинает освобождаться начиная со второго потока, в первом же лишь спустя значительное время, каждый раз разное, независящее от количества выполняющихся методов. Как пофиксить? Что почитать?
Аноним 18/05/20 Пнд 17:28:03 1693008609
>>1693001
Вызов GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced,true, false) ничего не меняет.
Аноним 18/05/20 Пнд 17:57:20 1693050610
>>1692783
>>1692757
Попробовал оба аттрибута
[OnDeserializing]
[OnDeserialized]
и походу они не для System.Text.Json.JsonSerializer

А про создание объекта, я не знал что он так работает так как разбирал другие json библиотеки и в них всегда создавался объект при чем такой же косяк был с заменой свойств даже если они существуют.
Что в принципе для моей логики не подходит и вообще хотелось бы десериализатор в который можно прокинуть объект которых хочешь десериализовать и чтобы в нем заменились лишь то что есть в json.
Но походу для такого придется писать свой велосипед, что не радует, так как велосипед в 99% случаев равен куче косякам в будущем.
Аноним 18/05/20 Пнд 19:44:30 1693160611
>>1693001
>собирает мусор из разных потоков?
В смысле из разных потоков? То что в стеке потока, гц не трогает ибо стек, а куча с потоками никак не связана.
>Что почитать?
Ну Рихтера почитай.
Аноним 18/05/20 Пнд 19:52:13 1693168612
>>1692713
Вроде нет, это же сборка
Аноним 18/05/20 Пнд 21:27:27 1693264613
Есть консольное приложение и подключенная ДЛЛка, которая выводит текст в консоль. Есть ли возможность как-то прочитать, что было написано в консоле не мной (ДЛЛкой) ?
Аноним 18/05/20 Пнд 21:45:16 1693282614
>>1693264
Есть пара идей тупая и не производительная.
1) Закомментить все свои вызовы или пометить их чтобы отличать от чужих
2) Console.SetOut с собственным TextWriter где ты перед выводом берешь стэк вызовов и смотришь откуда пришел вызов тем самым определяя эту длл.
Аноним 19/05/20 Втр 01:18:50 1693403615
Untitled.png 28Кб, 1106x260
1106x260
Здарова, недавно начала вкатываться в сишарп и асп.кор, никак не могу понять в чём дело.
Задача вывести в хтмл элемент количество записей с определённым возрастом через контроллер, пикрил мой вариант пользуясь документацией и стаковерфлоу.
Когда добавляю какой-либо параметр после FromSqlRaw("...") страница выдаёт SqlException: An expression of non-boolean type specified in a context where a condition is expected, near ')' .
Заранее спасибо!
Аноним 19/05/20 Втр 08:57:47 1693472616
>>1693403
Потому что надо начинать с основ. Запрос надо не толко создать, но и выполнить.
Аноним 19/05/20 Втр 09:16:35 1693482617
Используют ли спецификаторы доступа для инкапсуляции?
Аноним 19/05/20 Втр 09:26:41 1693485618
>>1693482
Скорее да, чем нет.
Ох сейчас срач нанется
Аноним 19/05/20 Втр 10:39:23 1693516619
>>1693482
Всё что скрывает данные от внешнего кода используют для инкапсуляции.
Аноним 19/05/20 Втр 13:10:10 1693670620
Ебусь с аутентификацией-авторизацией битую неделю. Вопросы в следующем:
1. Сгенерировать, зашифровать, выдать JWT токен я понял как, что дальше? Где его хранить? Сохранять в кукисах браузера пользователя? Сопрут же нахуй.
2. Нужна ли Global autentification? Типо давай логинься, тварына, потом суй свой нос. (Знаю, что субъективно, я про best practice)3
3. Самое ебонутое для меня - refresh token. Как и когда? Типо в Access token зашифрован Exp, по истечении которого он должен обновиться Refresh токеном? Чи шо? Перечитал уже тонны материала, все вроде понятно, но как реализовать - хуй его знает.
4. Access токен для каждого юзера должен быть свой? По сути да, ведь там Claims, то чурбаны-индусы создают его в StartUp (хуй знает зачем) и выдают один и тот же при Auth.
Спасибо
Аноним 19/05/20 Втр 21:30:14 1694245621
Шарпач-помогач, как справиться с такой задачей:
Подается лист из объектов bar, есть доступ к bool(bar, bar).
Мне нужно как-то отсортировать поданный лист, разделив его на разные листы, где обретаются только объекты с true между собой и false со всеми остальными, как это лучше сделать?
Аноним 19/05/20 Втр 22:12:41 1694276622
15802378576410.webm 855Кб, 720x1280, 00:00:03
720x1280
>>1694245
/pr/, который вы заслужили. Разделить один лист на два. Я не хочу тебя обидеть, но ты тупой или да? Может тебе еще задачку с разделение на upper case разделить?
Аноним 20/05/20 Срд 14:42:29 1695100623
Сап, как мне вытащить /ru/feedback из <a href="/ru/feedback">?
Чтобы это работало если будет даже <a href="/ru/feedback/hui/s/masloь"> ? Что можно использовать?
Аноним 20/05/20 Срд 14:47:40 1695113624
Начал изучать ASP Core, пытаюсь сделаь сайт на razor pages. Возникли впросы по валидации.
1. В примерах в основном используется биндинг параметров запроса к классу модели, где через DataAnnotation настроены ограничения. У меня модель настроена для EF через Fluent Api, очевидно при валидации эти ограничения не учитываются. Какой путь правильный? Не хочется размазывать логику по кофигурации сужностей и на флюент и на аннотации. Писать отдельные классы для EF и для запросов? Какие бэст приктис есть?
2.Как валидировать параметры, которые передаются не через привязку к модели, а как аргументы метода:
OnPostAaa(int n)
if(n < 0)
...//что тут писать, что б страница отобразила ошибку? Какой акшнрезалт возвращать?
3. В примерах используется такая конструкция
if(!model.IsValid) return Page();
Это хорошо работает, если на странице ничего нет. А если методом Get тянутся данные из бд и прочее, то при вызове пост оно не загружено и если вернуть Page(), то будет ошибка. Что возвращать? RedirectToPage? Вызвать Get (if(!model.IsValid) return Get())? Но тогда параметры гета будут просраны.
Поясните плз.
Аноним 20/05/20 Срд 15:58:30 1695190625
Шарпач помоги, аноны я писал код на VS WF, и похерил конструктор, все данные об объектах остались в коде, но сам конструктор чист. Так вот как востановить состояние конструктор, со всеми объектами на своих места?
Аноним 20/05/20 Срд 16:27:47 1695232626
>>1695190
Во-первых, исользовать Git, чтоб не было такого "ой, я что-то поменял, а оно все сломалось". Во-вторых, откуда нам знать как ты там конструктор похерил? Ошибки есть? Предупреждения? В какие файлы лазил? Что значит конструктор чист? И т.д. и т.п.
Аноним 20/05/20 Срд 16:38:44 1695254627
>>1695100
Регулярки, очевидно.
Аноним 20/05/20 Срд 16:40:39 1695255628
>>1695190
Хуй знает что ты высрать пытался из своей тупой бошки. Могу лишь рефлексию посоветовать.
Аноним 20/05/20 Срд 17:26:08 1695286629
>>1695113
>>1695190
эх, сейчас бы решеточки поучить. До карантина вакансий не было, сейчас вообще пиздец - у нас 4 проекта закрыли, с начала карантина всех джунов нахуй повыгоняли, на сейчас - кто может во что ни будь кроме решеток - на бенч, остальных - нахуй. Я на реакте сейчас помогаю педалить под RoR и пыху, а вы все решеточки учите, лол. А стоп, учебный год же не закончился, забыл
Аноним 20/05/20 Срд 19:39:31 1695464630
Аноним 20/05/20 Срд 21:22:22 1695542631
Аноним 20/05/20 Срд 22:49:13 1695654632
>>1695113
Ты обязан делать отдельную валидацию для юзерских данных и для твоих БД моделей.

DB entities и User data (Request/Response) должны друг от друга наглухо изолированы быть. В твоей бизнес логике должен быть какой-то маппер, который возмёт данные от юзера и добавит их к БД модели.
Аноним 20/05/20 Срд 23:25:59 1695702633
15855935722820.png 19Кб, 603x525
603x525
12123.jpg 40Кб, 465x531
465x531
Ну всё, теперь буду делать любые манипуляции с данным, в которых нужен перебор, только в unsafe блоках.
Теперь понятно почему жаба петухи нам завидуют. Им ведь не то что указатели, им даже goto не завезли)))))))
Аноним 21/05/20 Чтв 01:26:22 1695857634
>>1695654
> Маппер
Какой? В ef core с этим ебля, не помню механизм, но null не разрешает. Как нормально это сделать? Это основная моя проблема на пути понимания DDD Вторая – Boundaries Context и проброс сообщений между контекстами

Для валидации советую FluentValidator
Аноним 21/05/20 Чтв 01:35:31 1695860635
>>1695702
Ужасный пример.
Я не буду утверждать со 100% уверенностью так как ил код не смотрел, но скорее всего в первом примере внутри цикла тупо был удален весь код и идет только цикл и он пустой, а во втором как раз таки не удален так как помимо получения данных из массива там вроде при вызове по индексу есть проверка выхода за пределы массива. Если добавить зависимость на внутренний цикл типа суммирование массива, то результат скорее всего будет примерно одинаковым.

Плюс весь этот unsafe код можно заменить на Span и результат будет тем же самым что с unsafe., но только более читаемый.

Но результат во всех 3 случаях думаю будет примерно одинаковым (+-5% разница) при условии обмана оптимизации цикла чтобы он не исчезал.
Аноним 21/05/20 Чтв 09:02:38 1695963636
>>1665540 (OP)
Аноны, а разве массивы в структурах не ссылочные? Они что ли прям в структуре на стеке находятся?
Как тогда прилепить ссылочную коллекцию? Использовать List? Он сильно больше памяти жрёт?
Аноним 21/05/20 Чтв 09:04:35 1695967637
Сап пр, у меня есть такая хуйня на винформ:
в форм1 есть объект Client client и в нём есть всякая залупа(свойства взял из текстобоксов итд), так вот, как мне всю эту залупу перетащить в форм2?
Аноним 21/05/20 Чтв 09:18:23 1695979638
>>1695860
Так посмотри, ничего не исчезает. Можно также и память забивать создавая обекты в куче не присваивая их никуда. У Рихтера часто такое используется для демонстрации работы gc.
Аноним 21/05/20 Чтв 09:36:43 1695992639
>>1695860
Так и есть, хоть два кода и выглядят похоже, но сравнивать их бессмысленно.
>>1695963
Массив - ссылочный тип.
>Они что ли прям в структуре на стеке находятся?
В структере хранится ссылка на массив (сама ссылка - значимая). Где хранится структура - зависит от контекста.
>Как тогда прилепить ссылочную коллекцию?
Бери да прилепляй
>List? Он сильно больше памяти жрёт
Есть минимальный оверхед на хранение внутренних переменный листа. Но по дефолту, если место во внутреннем массиве кончилось, то лист увеличивает массив в два раза. Т.е. если у тебя есть миллион объектов и ты вставляешь еще один, для которого нет места, то внутренний массив становится размеров в 2 миллина, 999999 из которых пустые записи. Что займет лиших ~8Мб для ссылочных типов х64.
>>1695967
Разделяй модель и представление. Если форма2 создается новая, можешь пропихнуть нужные зависимости через констрруктор. Если форма2 живет паралельно, и должна следить за изменениями данных, то события. Слишком абстрактый вопрос.
Аноним 21/05/20 Чтв 09:40:32 1695996640
>>1695992
Уже сделал через конструктор, а так спасибо всё равно за ответ
Аноним 21/05/20 Чтв 10:11:55 1696025641
>>1695979
Значит рантайм пропускает то что внутри цикла будет, просто у тебя фундаментальная ошибка измерения перформанса.
Замени сохранение переменной, на суммирование ее в переменную до Start:, в результате ты увидишь что разницы практически не будет. А все потому что теперь нельзя выкинуть код внутри цикла.

Рихтер писал давно и скорее всего по умолчанию имел ввиду версию кода без оптимизаций, а сейчас у же в net core 3 столько оптимизаций наделали, а в net 5 еще больше собираются, что многие перформанс библиотеки становятся бессмысленными.

Раньше вот считалось что Activator.CreateInstance медленный и надо его оптимизировать, а точнее заменять на Expression версию, будет лучше, сейчас же разница на уровне погрешности.
А в C# 9.0 вообще новая веха наступает когда можно писать код не только быстрый, но и с 0 аллокацией памяти.
Аноним 21/05/20 Чтв 11:51:48 1696083642
>>1695992
> В структере хранится ссылка на массив
Тогда почему при копировании структуры копируется весь массив и при изменении копии оригинал не меняется?
Аноним 21/05/20 Чтв 12:05:02 1696089643
struct.png 12Кб, 678x448
678x448
>>1696083
>при изменении копии оригинал не меняется?
Отвечаешь за базар?
Аноним 21/05/20 Чтв 15:40:44 1696336644
Подскажите смысл функции: https://pastebin.com/bJCtXjPY там суммируются все элементы вектора или все кроме последнего? Я C# не знаю, пытаюсь на питон перевести.


double VectorSum(double[] A)
{
double sum = 0;
double n = A.Length;
for (int i = 0; i <= n - 1; i++)
sum += A;
return sum;
}
Аноним 21/05/20 Чтв 15:42:14 1696337645
>>1696336
Собсна вот доказательство того, что те, кто учат питоняшку первым языком не смогут в другие языки. Даже в элементарное понятие синтаксиса.
Аноним 21/05/20 Чтв 15:48:05 1696348646
>>1696337
А по делу не подскажешь? Рэнджи в питоне по другому задаются и я не знаю как интерпретировать for (int i = 0; i <= n - 1; i++). Онлайн компилятор вообще ошибку выдает.
Аноним 21/05/20 Чтв 16:06:08 1696379647
>>1696348
Складывает все элементы массива А и возвращает сумму. Написано очень криво
Аноним 21/05/20 Чтв 16:08:21 1696384648
Аноним 21/05/20 Чтв 16:28:59 1696411649
12123.jpg 86Кб, 950x694
950x694
>>1696025
>Рихтер писал давно и скорее всего по умолчанию имел ввиду версию кода без оптимизаций

Всё также работает, как и при Рихтере. Это .NET Core 3.1.

Аноним 21/05/20 Чтв 16:47:43 1696426650
12123.jpg 53Кб, 553x533
553x533
15855935722820.png 22Кб, 473x689
473x689
20190929095249.jpg 78Кб, 459x657
459x657
15855935722831.jpg 49Кб, 430x538
430x538
Вот новый тест.
1 - Span<int>
2 - указатели
3,4 - обычный массив

Код: https://pastebin.com/H7KCDYXt

И происходит какая-то херня в случае с обычным массивом. Если обозначить метод Sum как статичный, то скорость падает до уровня Span. Если сделать его методом экземпляра, то скорость чуть хуже чем у указателей.
При этом IL код одинаковый, разница лишь в том, что в случае статики вызывается 0 аргумент, а в случае экземпляра 1 аргумент (потому что 0 аргумент это this).
Также скорость падает если убрать модификатор in/ref у аргумента функции. Эти модификаторы никак не влияют на время выполнения в случае Span, он также показывает 6100-6300.

Пробовал тоже самое компилировать в VS 2019, релиз версия, включенная оптимизация кода. Результаты одинаковые. В случае с массивом тоже самое - если создать экземпляр Program и вызывать у него метод Sum, то скорость выполнения будет выше, чем если объявить метод Sum как метод типа и вызывать его напрямую.

Почему так?
Аноним 21/05/20 Чтв 16:55:26 1696430651
>>1696426
stackalloc span - где эта залупа в реальных проектах применяется? И зачем это говно в 7.2 притащили в решеточки?
Аноним 21/05/20 Чтв 16:56:32 1696433652
Аноним 21/05/20 Чтв 17:26:41 1696482653
>>1696430
Там где нужна производительность и работа с пайплайнами. Аллокация памяти происходит не в куче, а на стеке, т. е. у тебя не создается оверхеда от создания указателей на тип и блок синхронизации. Также предотвращает боксинг и анбоксинг, потому что Span это ref struct.
Но по мне так самая незаменимая их функция это способность искать определенную последовательность/последовательности при помощи indexOf и indexOfAny.
Аноним 21/05/20 Чтв 17:33:14 1696494654
15855935722820.png 18Кб, 389x547
389x547
>>1696426
3 пик не тот, вот нужный.
Аноним 21/05/20 Чтв 17:33:21 1696495655
>>1696482
>Аллокация
>оверхеда
пиши или на русском или не коверкай ангельский
>Аллокация памяти происходит не в куче, а на стеке
>Также предотвращает боксинг и анбоксинг, потому что Span это ref struct.
Америку открыл, гранд этому
>указателей
какие нахуй указатели? Это не тред крестов, алло
>Но по мне так самая незаменимая их функция это способность искать определенную последовательность/последовательности при помощи indexOf и indexOfAny.
вообще хз зачем ты это написал

Но я так и не услышал реального ответа - в каком именно проекте ты дрочишь эту шнягу в unsafe блоках? Стэк, технология, сфера, решение какие задач?
>Там где нужна производительность
и коню понятно, где байтодрочеры, там и гонка за производительностью
Аноним 21/05/20 Чтв 17:34:55 1696501656
>>1696495
>какие нахуй указатели? Это не тред крестов, алло
 Ты не слышал об указателях в шарпе?
Аноним 21/05/20 Чтв 17:40:42 1696512657
vom1.gif 121Кб, 220x123
220x123
>>1696501
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/unsafe-code-pointers/how-to-use-pointers-to-copy-an-array-of-bytes
я в этом ебучем болоте под названием "unsafe code" не сижу. С 7 версии в решетки пихают все, что душе угодно. Скоро ФП будут запихивать. Будут и тут reduce,maps, функции высшего порядка и казино с шлюхами. Фу блять, фу нахуй
Аноним 21/05/20 Чтв 17:44:22 1696517658
image.png 105Кб, 1920x1080
1920x1080
>>1696512
>Скоро ФП будут запихивать
Ебать тебя даже шторм не разбудил
Аноним 21/05/20 Чтв 17:49:46 1696520659
Тестер репортинг итт. Получил доступ к проекту разрабов, решил его пощупать, а там в ебало отсутствующие пакеты, рефы, dll-ки и прочий пиздец.
Я полдня решал ошибки, а они сыпятся каждый ребилд одна за другой.
Скажите, так в любом языке при вкатывании в рабочий проект? Почему все так хуево? Я хочу кодить, а не ебаться с настройками окружения.
Аноним 21/05/20 Чтв 17:52:07 1696527660
>>1696517
чтобы писать качественный код на решетках не нужны все эти ебучение замашки ФП и байтоебство (если конечно даун архитектор не решил написать какой то хайлоад кусок на #, земля ему пухом).
Update by update они поднасирают какими то новыми "фичами" от которых не знаю толи родоваться, толи плакать.
>>1696495
>Но я так и не услышал реального ответа - в каком именно проекте ты дрочишь эту шнягу в unsafe блоках? Стэк, технология, сфера, решение какие задач?
Жду ответа
Аноним 21/05/20 Чтв 17:55:05 1696532661
>>1696520
>решил его пощупать, а там в ебало отсутствующие пакеты, рефы, dll-ки и прочий пиздец
>ебаться с настройками окружения.
>настройками окружения.
>настройки
>окружения
зачем так толсто, маQAQA? Ты моки умеешь писать? Интеграционные и блочное тестирование хорошо освоил, что ты клюв суешь?
Аноним 21/05/20 Чтв 17:55:08 1696533662
>>1695286
А во что тогда вкатываться? В куа 300 рыл на место буквально, фронтов тоже до жопы, на жабе и пыхе сейчас вакансий на джуна не сильно больше чем шарпе, да даже 1с просел - ну оно и ясно.
только начинаю учить решетки
Аноним 21/05/20 Чтв 17:56:21 1696536663
>>1696527
>не нужны все эти ебучение замашки ФП
Наоборот, писать на шарпе без это ебучее макакство
Аноним 21/05/20 Чтв 17:56:53 1696538664
>>1696532
Не понимаю твоего петушиного.
Аноним 21/05/20 Чтв 17:58:40 1696545665
>>1696533
я слету могу назвать 3 стэка, на какие я бы хоть сейчас перепрыгнуть, но в силу лени, стабильного дохода и занятности - дрочу бибу на бенче
>>1696536
так пиздуй на Erlang, что ты в # забыл, нимакака?
Аноним 21/05/20 Чтв 17:59:18 1696547666
>>1696538
ну да, тестировщик, который тесты не знает как писать, а в проект лезет. Классика жанра
Аноним 21/05/20 Чтв 18:03:04 1696554667
>>1696545
Я на шарпе писал ещё когда ты не родился, хуесосина
Аноним 21/05/20 Чтв 18:09:11 1696565668
>>1696554
>Я на шарпе писал ещё когда ты не родился
>Наоборот, писать на шарпе без ФП (добавил за тебя) это ебучее макакство
ФП начали добавлять с 7 версии шарпа, а это 17 год. Предположим, что ты начал писать 3.5 фреймворка (не такой тухлый, как предыдущие патчи), который был в 7 году. Т.е. ты 10 лет был макакой? Нахуй ты себя так овнишь?
Мне конечно интересно подискусировать с ФП решеточными богами нет, но меня из всего срача интересует только один вопрос - где вы их нахуй применяете. С конкретико й - стэк, проект, сфера применения, задачи. Всо
Аноним 21/05/20 Чтв 18:09:16 1696566669
Аноним 21/05/20 Чтв 18:12:32 1696571670
>>1696565
>ФП начали добавлять с 7 версии шарпа, а это 17 год.
LINQ с 2007 года
Аноним 21/05/20 Чтв 18:20:32 1696584671
>>1696545
>я слету могу назвать 3 стэка, на какие я бы хоть сейчас перепрыгнуть
Напиши, интересно.
Аноним 21/05/20 Чтв 18:25:22 1696590672
>>1696495
>Америку открыл, гранд этому
Так ты спросил зачем нужно, тебе ответили.

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

>эту шнягу в unsafe блоках?
Для Span не нужен unsafe блок.

>Стэк, технология, сфера, решение какие задач?
Тебе же сказали - в пайплайнах. А именно, в сериализации/десиреализации, в обработке сетевых запросов. В общем, везде где тебе нужно получить какой-то массив данных и предеать/обработать/изменить его с максимальной производительностью и скоростью.
Аноним 21/05/20 Чтв 18:30:18 1696592673
>>1696512
> Будут и тут reduce,maps

Уже есть со времён LINQ. Aggregate = reduce, Select = map
Аноним 21/05/20 Чтв 18:52:55 1696629674
изображение.png 26Кб, 412x392
412x392
>>1696426
Вот https://pastebin.com/Hqmga8R2
Дает вот такой результат для 3.1 под релизом с выключенным arithmetic overflow.
Предполагаю у тебя такая разница как раз из-за него, потому что с указателями ты обходишь эту проверку отсюда и такой выигрыш.
Аноним 21/05/20 Чтв 19:01:22 1696633675
>>1695857
>Какой?
Кастомный. Но можешь и automapper заюзать.
Аноним 21/05/20 Чтв 19:01:53 1696634676
>>1696584
react/vue/RoR/Golang (последние два на любителя, денег на них много не заработаешь)
>>1696592
>>1696571
LINQ это ФП? Not sure about it (см. различие метода и функции, в LINQ может и написанны алгоритмы приближенные к идеалу, но это скорее методы, чем функции). Могу ошибаться, не буду спорить
>>1696590
>Тебе же сказали - в пайплайнах. А именно, в сериализации/десиреализации, в обработке сетевых запросов
Задача, стэк, приложение? Я не совсем понимаю, что ты сериализируешь и какого рода сетевые запросы. Я скажу больше, я даже не пойму о каком уровне OSI мы говорим
Аноним 21/05/20 Чтв 20:00:23 1696690677
>>1696426
>>1696411
Каким ебаном на быть, чтоб тестить перформанс в дебаг конфигурации? Ты бы хоть в сэмплы линкпада зашел и посмотрел как это в нем делается.
Аноним 21/05/20 Чтв 20:41:37 1696748678
>>1696634
Ну вот тебе простая задача:
Ты получаешь ответ на сетевой запрос, для этого тебе нужно создать буфер, при каждом новом пакете ответа ты должен записать последовательность полученных байт в этот буфер, при этом ты должен отслеживать получение конца ответа, допустим это последовательность байт вида 13 10 13 10 (\r\n\r\n).
С помощью Span Это делается легко и красиво:

byte buffer = new byte[1024];
int bytesRead= 0;
byte[] endSequence = new byte[] { (byte)'\r', (byte)'\n', (byte)'\r', (byte)'\n' };


//Нет необходимости отслеживать смещение и вычитать его из уже полученных данных, всё делается с минимум переменных, в одну строку
bytesRead = networkStream.Read(buffer.AsSpan(bytesRead));

//Заменяет целый цикл по перебору массива и легко позволяет найти нужную последовательность в полученных данных
if (buffer.AsSpan(0, bytesRead).IndexOf(endSequence == -1)
{
if (bytesRead == buffer.Length) Array.Resize(ref buffer, buffer.Length*2);
continue;
}

Я всё не пойму чего ты пытаешься добиться. Что кто-то признает, что если ты это не используешь и не можешь придумать где это использовать, то значит нинужна и хуйню сделали?
Аноним 21/05/20 Чтв 21:03:44 1696778679
>>1696748
>ответ на сетевой запрос
Какой протокол, уровень OSI? Конткретней можно?
>Я всё не пойму чего ты пытаешься добиться. Что кто-то признает, что если ты это не используешь и не можешь придумать где это использовать, то значит нинужна и хуйню сделали?
Мне все равно, как применяют инструмент, меня конфузит, когда используя этот инструмент N лет я вижу конструкции типо int* и начинаю гуглить, что это за хуйня возле типа прилипла, поэтому и интерисуюсь, какие сферы затрагивает решение задач ФП на # (это я про unsafe блоки). Единственное, что я хочу из всего этого диалога понять - это сфера применения. Ни задача, ни проблема, ни пример, а именно сфера применения.
И да, все, что можно сделать на ++ лучше сделать на ++. В # могут что угодно запихнуть, от этого язык лучше не станет. Кто думает "Азаза чем больше возможностей, тем лучше" - поспрашивайте от чего Java в говне тонет
Аноним 21/05/20 Чтв 21:04:37 1696779680
>>1696690
Каким ебаном надо быть чтобы для таких простых тестов разворачивать целую бенчмарк библиотеку?
Аноним 21/05/20 Чтв 21:13:45 1696783681
>>1696778
>Какой протокол

А что, в каком-то протоколе не нужно искать определенные последовательности?

>уровень OSI

Любой кроме физического и канального. Сетевой это один из уровней OSI, тебе привели пример, но ты спрашиваешь УРОВНИ? ПРАТАКОЛ!? Ты правда дурачок или просто немного с ума сошел от осознания того, что язык на месте не стоит вместе с тобой?

>когда используя этот инструмент N лет я вижу конструкции типо int

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

>от чего Java в говне тонет

От того что погряз в легаси и не развивается, как раз из-за таких дурачков как ты, которые боятся поломать старые устои и перед тем как использовать что-то новое крестится тысячу раз (а потом всё равно не использует). У них и половины от шарпа нет, а главное и не предвидится.
Аноним 21/05/20 Чтв 21:51:27 1696814682
>>1696783
>в каком-то протоколе не нужно искать определенные последовательности?
да, не нужно, т.к. все оптимизированное и формализованно до нас
>тебе привели пример, но ты спрашиваешь УРОВНИ? ПРАТАКОЛ!?
если ты даже не можешь конкретную задачу привести и уже 3 или 4 пост кидаешься абстрациями. Тебе стыдно сказать проект, в котором ты пишешь код? Или у тебя свистелка-перделка на высчитываение доли секунд запросов и обработки?
>Ну потому что ты используешь этот инструмент на более высоком уровне и не заботишься об оптимизациях
на то это и высокоуровневый язык, чтобы пользоваться высокоуровневыми интерфейсами взаимодействия
>При этом даже из интереса не заглядываешь в исходники этого инструмента
facepalm. Дрочило, попутавшее стэк на месте. Не хочу толстить за бинарники и команды процессора, устал уже от этой хуйни. Я даже благодарен таких дурачкам, как вы, которые вкатышам за килобаксы советуете начинать с Таненбаума, Кнута и освоение ассемблера
>От того что погряз в легаси и не развивается
ты за апдейтами Java следишь, что пишешь такую хуйню?
Я устал от попыток диалога с тобой, могу лишь сделать вывод, что ты скорее всего студентота, когда то дрочившая C/++, пытаясь в очередной раз изобрести колесо
21/05/20 Чтв 21:55:49 1696819683
Аноним 21/05/20 Чтв 22:09:57 1696854684
>>1696814
>Тебе стыдно сказать проект
>ты скорее всего студентота

Да, ведь для того чтобы интересоваться и изучать возможности языка на котором ты пишешь, нужно обязательно использовать эти возможности в проекте, либо нужно быть студентом, который дрочил С. Не перестаю проигрывать с животного. Ну сиди ты /b/ и перди там вместе с таким же быдлом как ты, этот раздел и тред как раз и создан для того чтобы обсуждать язык и его возможности, нахуй ты сюда лезешь?
Аноним 21/05/20 Чтв 22:21:19 1696875685
>>1696854
чтобы что то изучать, нужно понимать для чего ты это изучаешь. Только студентота и дрочилы бьються головой об стену изобретая изобретенные вещи еще и не тем инструментом
>Не перестаю проигрывать с животного. Ну сиди ты /b/ и перди там вместе с таким же быдлом как ты
не знаю, чем так поджег твою жопу, но видимо аргументация была моя верна, раз такой триггер пошел. И да, это уже 5ый пост с пуков в воздух твоего Unmanagement code. Жаль тебя вобщем.
Аноним 21/05/20 Чтв 22:35:51 1696894686
>>1696875
Да-да, ты всех затроллил, аргументированно насрав себе в штаны.
Аноним 21/05/20 Чтв 23:12:08 1696942687
>>1696894
мальчик, мне интересен был проект или идея, где используется этот код, а не троллинг. Ты видимо и сам не так давно из /b/ пришел, раз такую дичь пишешь
Аноним 21/05/20 Чтв 23:15:42 1696949688
'NavigationExpandingExpressionVisitor' failed. This may indicate either a bug or a limitation in EF Core. See https://go.microsoft.com/fwlink/?linkid=2101433 for more detailed information.

Крашится LINQ запрос на GroupJoin. Стаковерфлоу говорит там какую-то непонятную хуйню про вычисление на стороне клиента итд. Чем мне заменить мой GroupJoin-то можно? Подскажите плз
Аноним 21/05/20 Чтв 23:56:14 1696997689
>>1696942
>мне интересен был проект или идея

Так в чём проблема? Открываешь Github, вбиваешь в поиск Span с любым интересующим аргументом типа, смотришь на массу проектов и идей. Что, в чём проблема? Ах, да, так ведь будет сложно манямирок свой подкреплять в котором всё новое не нужно, нигде не используется, нигде не применимо.
Я понимаю, что тебе сложно осознавать свою ущербность из-за которой ты вместо того чтобы изучать, ищешь оправдания, но разве это причина для того чтобы начинать нести какую-то чушь и повторять из сообщения в сообщение одно и тоже? Ты хотя бы хоть немного оригинальности добавил, а то совсем скучно.
Аноним 22/05/20 Птн 00:21:45 1697064690
15842999757210.jpg 5Кб, 224x225
224x225
>>1696997
>манямирок
>всё новое не нужно, нигде не используется, нигде не применимо.
>сложно осознавать свою ущербность
мальчик, ты какой то тупенький. Мало того, что ты не можешь в 2 словать описать что ты делаешь, так ты еще не понимаешь смысла зачем ты это делаешь. Может ты оптимизаторы для Linq делаешь? Или какой то низкоуровневый API? Not sure about it. По поводу всего остального, что ты брыжешь желчью, когда тебя тыкают носом в говно - я тебя на путь истинный пытаюсь вывести да нет, на самом деле мне похуй на тебя И да, серьезно жаль тебя
Аноним 22/05/20 Птн 00:52:30 1697108691
>>1697064
Ты уже определись, тебе конкретно я интересен или "проект или идея". Даже страшно представить, почему я стал интересен умственно отсталому и он так сильно пристал именно ко мне.
Аноним 22/05/20 Птн 01:52:10 1697151692
>>1696949
>GroupJoin
Твоя база это не поддерживает. С 3.0 на клиенте больше не выполняется.
>Чем мне заменить
Ручками делать после выполнения запроса. А вапще это от тебя зависит что ты там понаписал и хочешь - иди читай, переписывай.
https://github.com/dotnet/efcore/issues/17068
https://stackoverflow.com/questions/60588364
https://stackoverflow.com/questions/58622571
Аноним 22/05/20 Птн 11:19:54 1697396693
>>1697151
Я просто нихуя не понимаю причем здесь клиент, у меня вебапи приложение.
Аноним 22/05/20 Птн 12:13:53 1697506694
>>1697396
Ой вэй! Твое приложение и есть клиент по отношению к бд.
Аноним 22/05/20 Птн 13:19:21 1697577695
>>1697506
Ааа, вот оно что епт. Охуеть просто. Теперь понял всё. Спасибо.
Аноним 22/05/20 Птн 19:55:53 1697989696
Можете пояснить неофиту кто такой сишарп, а кто такой дотнет? Сишарп разработчик == .Net разработчик?
Аноним 22/05/20 Птн 22:00:56 1698254697
>>1697989
Шарп - язык программирования.
.NET - фреймворк.

Аноним 22/05/20 Птн 22:07:58 1698265698
>>1693670
бамп, по всему разобрался кроме refresh token
Аноним 22/05/20 Птн 23:55:23 1698423699
>>1698254
Это понятно, но тут же вроде ситуация не как с явой и спрингом и не как с питоном и джангой. Вроде как наоборот - сишарп входит в состав .NET. Если это так то что еще входит в его состав?
>Сишарп разработчик == .Net разработчик?
Аноним 23/05/20 Суб 00:07:09 1698431700
>>1698423
>Вроде как наоборот - сишарп входит в состав .NET
Не входит, а может использовать функционал .NET, так же как и куча других языков программирования, даже на С++ можно писать для .NET
Можешь свой компилятор написать и обходиться без .NET, как это сделали создатели Mono или Unity.
>Сишарп разработчик == .Net разработчик?
Не обязательно, если ты под Unity пишешь, то с .NET у тебя не так много общего.

.NET это основа. Чистый .NET Это стандартный набор библиотек. Потом уже идут всякие ответвления типа ASP .NET, WPF, Win Forms, Xamarin и т. д.
Аноним 23/05/20 Суб 07:09:35 1698634701
images (1).jpeg 8Кб, 252x200
252x200
Шарпаны, появилось острое желание освоить мобилки. Пробовал кто-нибудь xamarin forms? Собрал дефолтный проект, 16 мб apk весит. Запускается около секунды на 835 snapdragon, это уже терпимо. Раньше, насколько помню, было хуже. А вот анимация плавная или нет – не пойму. Кажется, что стабильно 30 кадров, как на консолях

Второй стул – Flutter. Совершенно противоречивые отзывы в сети. Говорят даже, что гугл наебывает со списком компаний, которые его используют, агрессивно пиарит и делает это лишь затем, чтобы иметь запасную технологию, если oracle начнет брыкаться. Зашел в новость на сайте Microsoft по поводу MAUI, в который превратится Xamarin, Flutter прямо таки не любят. Но вдруг он будет лучше?
Смущает то, что контролы там не нативные, но как бы и в forms так же ебаться с xml для Xamarin native желания нет

Вообще, все языки разметки для меня вызывают какую-то боль. Не получается их просто так изучить на достойном уровне, просто листая документацию. Взять тот же XAML – я им пользовался, пока писал на wpf. Многословный, неинтуитивный. Очень сложно сделать что-то красивое. Но этот же XAML и в Xamarin. Попробовал Vue.js – охуел от удобства

В общем, отпуск у меня две недели, и хотелось бы потратить их с пользой, заперевшись в своем чулане. Если кто-нибудь имел опыт с двумя этими технологиями, был бы рад услышать отзыв
Аноним 23/05/20 Суб 09:46:12 1698680702
Сап аноны, насколько сильно я проебался начав вкатываться в дотнет? Что должен уметь падаван, по вашему мнению? И почему так мало вакансий в России?
Аноним 23/05/20 Суб 10:42:51 1698705703
>>1698680
>насколько сильно я проебался начав вкатываться в дотнет?
Довольно сильно.
>Что должен уметь падаван
Всё. Я бы дал 80%, что будешь фулстеком и в итоге перейдешь на реакт
>почему так мало вакансий в России?
Странный вопрос. Сколько надо кодеров, столько и вакансий.
Аноним 23/05/20 Суб 10:56:09 1698716704
>>1698705
Я с дотнетом проебался в плане того, что надо перекатываться в Японию, а там мир победившей джавы
Насчет фулстека ты прав, попробовав пописать на wpf, через месяц перескочил на Vue и кайфую уже полгода. Теперь думаю, то ли б-гмерзкий js изучать и всю его экосистему на нормальном уровне, чтобы во фронт уйти, или продолжать дрочить дотнет с неизвестной перспективной при перекате
Аноним 23/05/20 Суб 11:03:40 1698719705
>>1698716
ЖС-то все равно придется учить, потому что опять же, подавляющее большинство c# разработчиков это ASPшники. Но раз тебе про Японию, то я ничего не знаю. У них там всегда все не как у людей.
Аноним 23/05/20 Суб 12:02:28 1698737706
>>1698719
Да хотелось бы просто бекендом деньги зарабатывать, です
Но да, учить js придется. На работе можно клепать простые сайты для внутрикорпоративных нужд, не понимая особо промисов, но далеко так не уедешь. Да и по шарпу я не то чтобы спец, весь мой код синхронный, не считая мест, где без параллельности никак. Но и там простые Task.Factory.StartNew(() = {}). Просто не успеваю все это изучать. И фронт, и бек, и алгоритмы, и японский. Сейчас очень сильно себя виню за то, что был распиздяем в универе и слил пять лет фактически свободного времени впустую
Аноним 23/05/20 Суб 13:09:43 1698785707
Аноним 23/05/20 Суб 13:26:37 1698794708
>>1698785
Хороший код для первого раза, читается по диагонали, です
Я бы на твоем месте навернул абстракций, потому что сегодня ты хранишь инты в качестве сущности мира, а завтра захочешь дома и дороги – вместо массива с интами массив с объектами. И презентер к нему
Добавил бы интерфейсы, DI, заменил общее исключение на ArgumentException

Но это так, не забивай голову. Ты очень понятно написал, мой первый более менее осмысленный код был дерьмом по сравнению с твоим
Сколько изучаешь и как?
Аноним 23/05/20 Суб 13:30:00 1698796709
>>1698785
У тебя set и get одно и тоже делают. Проверка не нужна, так как тот же самый результат ты получишь при обычной попытке доступа к значениям находящимися за границами массива.
Аноним 23/05/20 Суб 13:34:23 1698800710
>>1698785
И Console.Write + Console.WriteLine() нужно заменить на StringBuilder, а в конце добавить Console.WriteLine(sb.ToString())
Аноним 23/05/20 Суб 14:13:09 1698830711
>>1698785
Ты же за критикой пришел, верно?
-Вынеси в отдельный метод вывод мира из Main
-Не захардкоживай числа
-Check - плохое имя метода, когда в коде появится world.Check(..) первая мысль - проверяется сам мир на какие-то параметры, как вариант CheckCell, а лучше упомянуть что именно проверяется, например IsCoodrdinatesBelongToWorld.
-В методах гет и сет (опять плохие имена, не понятно что именно устанавливается и получается), ты проводишь проверку и кидаешь эксепшн. Что плохого? Во-первых, при неверных координатах сам массив и так бросит АутОфРэнж, а во-вторых, ты бросаешь максимально обобщенное исключение - Exception, что сильно усложнит обработку исключений на верхних уровнях. Всегда генерируй максимально специфичные исключения.
-Твои гет/сет логичнее заменить индексатором, прочитай про него.
-Еще ты вроде с индексами проебался, попробуй сделать не квадратный мир

https://ideone.com/oyNcSe
Аноним 23/05/20 Суб 17:10:06 1699024712
Аноним 23/05/20 Суб 17:14:57 1699033713
>>1699024
Посмотри в папке пользователя
Аноним 23/05/20 Суб 17:18:07 1699036714
Аноним 23/05/20 Суб 17:34:42 1699056715
Аноним 23/05/20 Суб 18:10:56 1699102716
Untitled.png 5Кб, 1008x82
1008x82
Аноним 23/05/20 Суб 18:29:54 1699136717
Зачем нужна асинхронищина в ef core? Все эти async методы-аналоги стандартных, писать await перед каждым итд. Типа рантайм разбивает на потоки как-то если их используешь? В жсе всё понятно - чтобы не блочить юай.
Аноним 23/05/20 Суб 18:30:03 1699138718
>>1699102
>>1699102
>Делаю все в точности как в ссылке
А вот и нет. Проверяй куда что вставляешь. Ты вставляешь инициализатор туда, где нужен контекст.
Зачем тебе EF6, когда уже кор3 вышел?
Аноним 23/05/20 Суб 18:31:16 1699140719
>>1699136
>Зачем нужна асинхронищина в ef core?
Как и везде, чтоб не блокировать поток. Пока бд проперживается поток твоего приложения спеет сделать что нибудь полезное.
Аноним 23/05/20 Суб 18:59:09 1699173720
Аноним 23/05/20 Суб 20:17:45 1699267721
>>1699138
Бля, разобрался, мне нужно было написать
Database.SetInitializer(new laba1DbInitializer());
вместо
Database.SetInitializer(new CreateDatabaseIfNotExists<laba1Context>());
Аноним 23/05/20 Суб 20:51:01 1699326722
Помогите, пожалуйста!
Работаю с цмсками и решил обратно вкатиться в программирование на шарпах в асп.нет. В связи с этим возник вопрос контроля версий. Чтобы делать все по-человечески, отслеживать изменения. Но не могу понять как к этому подойти. Что сделать сначала? Как начать работать с гитом? Как потом из Гита на продакшн разворачивать?
Не мог бы кто-нибудь мне подсказать?
Аноним 23/05/20 Суб 21:40:53 1699388723
>>1699326
Просто ставишь гит и открываешь мануал по нему, там две с половиной интуитивные команды.
Аноним 23/05/20 Суб 23:00:50 1699539724
Без названия.png 655Кб, 1534x1440
1534x1440
Аноним 24/05/20 Вск 02:51:54 1699634725
>>1699326
Это то есть ты если что то сломаешь и забудешь как было тогда не сможешь пофиксить? Проиграл
Аноним 24/05/20 Вск 06:50:22 1699667726
>>1699326
Смотри, если ты только начинаешь работать с системами контроля версий, то я советую выбрать GitHub (Да, я хорошо осведомлён о том, что он сейчас принадлежит Microsoft, в нём есть анальная слежка и вообще всё плохо.). Соответственно хостинг уже выбран, а значит выбрана система контроля версий Git.
Далее установи себе GitHub Desktop с официального сайта. А в установщике Visual Studio в разделе дополнительных компонентов убедись, что стоит галочка "Git для Windows".

Теперь действуй так:
1. Создавай решение и проект Visual Studio, где тебе удобно на локальном диске. Во время создания проекта поставь галочку "Включить в систему контроля версий Git";
На этом этапе Visual Studio создать тебе проект и инициализирует локальный репозиторий вместе с файлом игнорирования .gitignore.
2. Далее ты можешь управлять своим локальным репозиторием непосредственно из обозревателя решений Visual Studio, но так и через GitHub Desktop (и последнее я считаю удобнее).
3. Поэтому запускай GitHub Desktop и там найди пункт меню "Add local repository" ("Добавить локальный репозиторий"). И укажи путь в корень той папки, где у тебя лежит файл решения твоего проекта (это который имеет расширение .Sln).
4. Теперь вверху окна открой список веток (Branch) и создай новую с именем "development". В программных кодах своего проекта делай именения с коммитами в эту ветку.

Расписывать тут можно ещё дальше поэтому, если тебе действительно это нужно, то можешь обратиться с вопросами мне в телегу. (Зловещий Дед)
Аноним 24/05/20 Вск 06:58:45 1699670727
>>1698634
Привет тебе)
В Xamarin с мобильной всё как-то не очень. Есть и положительные моменты, но больше отрицательных на мой взгляд.
Я так понимаю, что ты хочешь иметь один проект для обоих платформ iOS и Android, если выбирал Xamarin. И далее вижу, что тебе понравился Vue.js. В таком случае я советую ознакомиться с Vue-Native тут https://vue-native.io
Аноним 24/05/20 Вск 07:04:23 1699671728
>>1699326
https://git-scm.com/book/ru/v2
Хотя бы глазами пробежаться стоит, понять, что такое ветки. А в остальном тебе анон прекрасно расписал
>>1699667
На работе локальный гитлаб поднят. В одной программе используются dll от какой-то левой библиотеки, которые сами не установятся при dotnet restore. Решили проблему в лоб – просто поправили gitignore, и теперь проект заливается на гитлаб с dll. Но коммит почему-то горит красным. Кажется, "commit failed" пишет. Но при клонировании все выгружается как положено. Что это может быть? И какой был оптимальный способ?
Аноним 24/05/20 Вск 07:16:20 1699673729
>>1699671
>На работе локальный гитлаб поднят. В одной программе используются dll от какой-то левой библиотеки, которые сами не установятся при dotnet restore. Решили проблему в лоб – просто поправили gitignore, и теперь проект заливается на гитлаб с dll. Но коммит почему-то горит красным. Кажется, "commit failed" пишет. Но при клонировании все выгружается как положено. Что это может быть? И какой был оптимальный способ?

Тут можно несколькими путями пойти же.
Если уже существует репозиторий с такой зависимостью, то можно использовать git submodule.
Ещё можно написать свой скрипт развёртывания для конечных машин, где перед dotnet restore какой-нибудь условный Wget или Curl будет качать зависимости.
Аноним 24/05/20 Вск 18:14:03 1700347730
15429816506660.jpg 46Кб, 532x531
532x531
Объясните по хардкору за динамическое добавление в WPF, в какую сторону копать?
Мне нужно динамически по нажатию на кнопку добавлять "строку элементов" (насколько я понял лучше всего в stackpanel) по типу "текстбокс/кнопка/текстбокс". Как это реализовать лучше всего? Во что "завернуть" мне строку?
Аноним 24/05/20 Вск 18:16:15 1700350731
перекотите тред!!!
Аноним 24/05/20 Вск 19:11:50 1700388732
>>1700347
А почему бы не в листвью/листбокс добавлтяь?
Аноним 24/05/20 Вск 19:45:37 1700446733
Аноним 24/05/20 Вск 20:06:21 1700474734
Что поменяли в 4.8 .net wpf? У меня нихуя теперь кнопки к коммандам не биндятся старым кодом.
Аноним 24/05/20 Вск 20:14:24 1700483735
А, все, отбой, я забыл прибиндить viewmodel в view.cs.
Аноним 24/05/20 Вск 20:39:38 1700515736
>>1700388
А можно поконкретнее?
Аноним 24/05/20 Вск 22:20:45 1700618737
Аноним 24/05/20 Вск 23:44:02 1700802738
Как отсортировать по блоги последнего комментария?
Вот мое выражение ебаное и оно не хочет работать совсем кидаясь System.ArgumentException: Expression of type 'System.Linq.IOrderedQueryable`1[Comment]' cannot be used for return type 'System.Linq.IOrderedEnumerable`1[Comment]'


await blogs
.Include(b => b.Comments
.OrderBy(c => c.Date)
)
.OrderBy(b =>b.Comments.Last().Date)
.Skip(BLOGS_ON_PAGE * page)
.Take(BLOGS_ON_PAGE )
.ToListAsync()
Аноним 24/05/20 Вск 23:45:03 1700804739
>>1700802
>Как отсортировать блоги по дате последнего комментария?
Аноним 25/05/20 Пнд 00:41:10 1700913740
>>1700802
Нахуй нам твоё выражение, кидай пример того как выглядит блог.
Аноним 25/05/20 Пнд 00:59:37 1700924741
>>1700913
Какая разница? У блога есть Id, у комментариев есть BlogId, 1 к многим. Две таблицы - комментарии и блоги.
Аноним 25/05/20 Пнд 12:26:21 1701458742
>>1665540 (OP)
Аноны, как пофиксить :
the type or namespace name 'windows' does not exist in the namespace 'system'
Интернеты советуют добавить reference System.Windows.Forms, но такого нет. Есть System.Windows.Forms.DataVisualization и System.Windows.Forms.DataVisualization.Design, просто System.Windows.Forms нет.
Аноним 25/05/20 Пнд 12:45:05 1701490743
>>1701458
> но такого нет
Проект у тебя под что собирается? Какая версия фреймворка?
Аноним 25/05/20 Пнд 12:53:32 1701501744
Аноним 25/05/20 Пнд 13:29:45 1701548745
>>1700618
Да я помоему все описал. С текстбоксов нужно будет считывать значения, а кнопка в строке должна удалять эту строку (кнопка "х"). Пока что нагуглил что-то подобное https://overcoder.net/q/1006835/%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2-%D0%B2-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81-%D0%B2-c , но мне походу нужно будет это как-то перепердолить под mvvm.
Можно как-то без задней мысли создавать класс с полями элементов, потом коллекцию этого класса в вью модели прибиндить в листвью (или чему лучше?)? Алсо нужно еще заранее выровнять эти элементы, т.е. размер такой строки элементов и самих элементов - статический.
Аноним 25/05/20 Пнд 13:32:12 1701550746
Алсо в отличии от примера в ссылке мне нужно только вниз добавлять строки.
Аноним 25/05/20 Пнд 14:35:27 1701661747
>>1701501
Тут смотрел C:\Windows\Microsoft.NET\Framework64\v4.0.ххххх?
Аноним 25/05/20 Пнд 15:27:25 1701792748
У кого-нибудь визуалка уходить в полный аут, не отвечая, когда наводишь мышкой на подключенную Oracle DB в обозревателе серверов? Я уже 10 раз пытаюсь, каждый раз такая хуйня. Вот когда подключал ее, то норм было, все работало.
Аноним 25/05/20 Пнд 19:24:35 1702266749
изображение.png 19Кб, 720x504
720x504
Блять! Пытаюсь второй день реализовать эту хуйню >>1701548. Объясните ньюфагу - что за хуйня из под коня этот ваш mvvm в wpf? Яннп.
В этих ваших тырнетах пишут что пытаться достучаться к элементу view через viewmodel напрямую, а не через биндинг - это хуевая практика и вообще типа нихуя уже не mvvm.
Хорошо, теперь объясните - как мне тогда динамически добавлять/удалять эти самые элементы, ведь по идее это должно быть в viewmodel?
Вот есть код типа пикрил, как его можно реализовать в viewmodel без задней мысли? Можно конечно при ините viewmodel отправлять в конструктор текущую view (this), но тогда назревает вопрос - нахуя нужны биндинги?
Аноним 25/05/20 Пнд 20:18:39 1702349750
Как в wpf xaml реализовать ScrollViewer в itemscontrol? Код следующий
<ItemsControl
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
При попытке завернуть над гридом - на каждый грид появляется свой скролл. При попытке завернуть itemsControl либо же в Scrollviwer+Grid/Dockpanel - он какбэ есть, но он нихуя не работает.
Аноним 25/05/20 Пнд 20:27:56 1702361751
Все, сделол, держу вкурсе. Надо добавить докпанель, указать высоту и под докпанелью ебануть скролвью, а затем уже все остальное.
Аноним 25/05/20 Пнд 20:40:15 1702372752
Аноним 25/05/20 Пнд 21:57:32 1702458753
На wpf окне есть одна кнопка с командой и условный список. Как сделать так чтобы в команде кнопки CanExecute() тригерился на изменение количества элементов в списке на форме?
Аноним 25/05/20 Пнд 22:38:47 1702498754
>>1702372
хуй знает мб после OrderBy(date) добавь .AsEnumerable()
Аноним 26/05/20 Втр 00:23:04 1702628755
>>1702498
Так я не хочу в память грузить всю эту дрисню( хочу элегантный простой запрос чтобы он шел в базе
Аноним 26/05/20 Втр 00:26:15 1702631756
>>1700802
Не скажу где у тебя затык, но вот вижу 1 явную логическую проблему.
.OrderBy(c => c.Date)
)
.OrderBy(b =>b.Comments.Last().Date)
Второй должен быть ThenBy() иначе у тебя первая сортировка не работает.
Аноним 26/05/20 Втр 07:51:34 1702745757
>>1700347
Может быть имеет смысл использовать DataTemplate и ItemTemplate? Там можно будет сделать привязку данных к коллекции, а по нажатию на кнопку в этой коллекции создавать объект. А данные сами добавятся в твой ListBox.

Вот тут почитай: https://metanit.com/sharp/wpf/14.3.php
Аноним 26/05/20 Втр 08:58:20 1702760758
>>1702372
Я тут в треде выше бомбил из-за Last() и TakeLast() которые не работают для IQueryable. Плюс вызывает сомненеие сортировка для инклюда, но тут я не уверен. Я б сделал тип такого:
await blogs
.OrderBy(b=>b.Comments.Max(c=>Date))
.Skip(BLOGS_ON_PAGE * page)
.Take(BLOGS_ON_PAGE )
.Include(b=>b.Comments) //если надо явно загрузить комметнты
.ToListAsync()
Аноним 26/05/20 Втр 10:58:48 1702807759
Аноним 26/05/20 Втр 11:42:11 1702842760
>>1701661
Анон, извини только увидел твоё сообщение.
Да, System.Windows там есть!
Но почему то Microsoft Visual Studio не видит эти файлы.
Аноним 26/05/20 Втр 11:45:14 1702844761
>>1701458
Сделай скрин списка ссылок в проекте. И проверь чтобы mscorlib был включен.
Аноним 26/05/20 Втр 12:02:54 1702850762
>>1701458
>Интернеты советуют добавить reference System.Windows.Forms, но такого нет
>Да, System.Windows там есть!
Ну вто его и добавь в референсы. И ты так и не ответил что за тип проекта ты создал.
Аноним 26/05/20 Втр 12:03:50 1702851763
Аноним 26/05/20 Втр 12:07:00 1702855764
>>1702850
Почему то Microsoft Visual Studio сама не находила нужные референсы и из-за этого выдавала ошибки. Как оказалось, всё это есть тут >>1701661 и нужно было показать это студии.
Я нашел рандомный проект на гитхабе и решил его допилить, заодно вкатиться в c#.
Аноним 26/05/20 Втр 12:11:54 1702858765
Аноним 26/05/20 Втр 12:33:59 1702877766
>>1702858
Десктопный чат (desktop chat c# поисковый запрос).
Судя по гитхабу это тоже вкатывальщик его делал, возможно, даже из этого треда.
Аноним 26/05/20 Втр 13:02:04 1702893767
Аноним 26/05/20 Втр 13:04:59 1702898768
Аноним 26/05/20 Втр 13:54:23 1702968769
Писал код на ASP.Net Core, столкнулся с таким багом. Код, который ещё утром работал - сейчас выдаёт ошибку 405. С яваскрипта запрос на сервер идёт, он его обрабатывает, отсылает ответ, но браузер выдаёт ошибку 405. Изменил буквально нихуя, вроде назад всё даже вернул что вспомнил - нифига. В чём может быть дело? Или хотя бы где какие то логи посмотреть, почему такая фигня выходит?
Аноним 26/05/20 Втр 14:01:28 1702985770
>>1702968
Выхлоп dotnet run сюда давай.
Аноним 26/05/20 Втр 14:14:09 1703021771
Безымянный.jpg 373Кб, 1693x893
1693x893
>>1702985
Не совсем понял что надо сделать.. Если запустить проект через консоль - то вот это. Никаких дополнительных логов не пишет, просто браузер выдаёт ошибку 405. Не на весь код. Многое в проекте работает. Но на некоторые вещи вылетает ошибка. Вроде как они все на одной странице находятся, что интересно.
Аноним 26/05/20 Втр 14:40:15 1703072772
>>1702968
>Изменил буквально нихуя, вроде назад всё даже вернул что вспомнил - нифига.
По-моему самое время начать пользоваться гитом.
>>1703021
Зачем ты в половине мест закрасил, то что ты Шевченко? Если шифруешься, то надо было все закрашивать.
Аноним 26/05/20 Втр 14:47:23 1703082773
>>1703072
>Зачем ты в половине мест закрасил, то что ты Шевченко? Если шифруешься, то надо было все закрашивать.
Торопился, хотел везде. Ну так то мне похуй на анонимность, но тут так принято. Начнётся ололо, мы тебя спалили. Точнее началось.
>По-моему самое время начать пользоваться гитом.
Было б неплохо, но инет на работе гавно. Половина сервисов работают через жопу
Аноним 26/05/20 Втр 15:00:00 1703105774
5ff5e6.jzajmv.e[...].jpg 18Кб, 450x360
450x360
>>1703082
>Было б неплохо, но инет на работе гавно.
Дратути, гиту не нужон ентот ваш интернет.
Аноним 26/05/20 Втр 15:06:33 1703118775
Аноним 26/05/20 Втр 15:43:09 1703186776
>>1703118
Блять нашёл ошибку. Не закрыл тэг <div> на странице. Сука, вот кто мог знать, что с этого такая ошибка может быть?
Аноним 26/05/20 Втр 16:14:04 1703226777
>>1703186
Это еще хуйня. У меня когда-то бот в телеграме лежал полтора дня - сервер работает, а в телегу ничего не приходит. Оказалось что я проебался с вставкой ссылки и у меня вместо http было https.
Аноним 26/05/20 Втр 16:14:35 1703228778
Аноним 26/05/20 Втр 19:04:48 1703499779
Аноним 26/05/20 Втр 23:54:06 1703879780
А существуют какие-нибудь анализаторы на Visual Studio которые могут проблемы связанные с EfCore например показать? Пиздец заебало, нихуя не понятно что ему не нравится
Аноним 27/05/20 Срд 09:51:45 1704078781
В общем анон, есть картинка. Т. е. Image. Как можно разрезать эту картинку на определенное множество одинаковых частей и какие классы для этого лучше всего использовать?
Аноним 27/05/20 Срд 09:57:44 1704084782
Аноним 27/05/20 Срд 10:15:32 1704097783
>>1704078
Попробуй копировать по пикселю.
Аноним 27/05/20 Срд 10:18:03 1704098784
>>1703879
Попробуй Jetbrains Resharper, у него неплохой статический анализатор. Или же установи Jetbrains Rider и пиши в нём.
Аноним 27/05/20 Срд 10:18:54 1704099785
>>1704078
Класс Bitmap покакатит. Бери матрицу пикселей и дели её, как тебе надо.
Аноним 27/05/20 Срд 16:46:37 1704434786
Только не проигрывайте с меня сильно, ладно?
Как в WPF текстбоксе сделать инпут только интовых чисел? Мне нужно чтобы можно было вводить и отрицательные числа, все упирается в "-" в начале строки. Я думал это платиновый реквест - а в тырнете нихуя нету нормального решения, я в ахуе.
Аноним 27/05/20 Срд 17:29:19 1704479787
>>1704434
Можно свой валидатор написать или конвертер, в котором ты будешь пытаться привести строковое значение к числовому и в зависимости от этого давать предупреждение.
В общем, гугли в сторону валидации ввода.
Аноним 27/05/20 Срд 18:24:36 1704548788
>>1704434
Задача крайне примитивная и я не верю что ты не нашел ее в гугле.

<TextBox PreviewTextInput="Preview"></TextBox>

https://pastebin.com/sRhKht8a
Аноним 27/05/20 Срд 19:02:16 1704588789
>>1704548
>не верю что ты не нашел ее в гугле
Нашел разные вариации по типу только плюсовые или минусовые значение, нашел с не целыми числами, нашел что-то с регулярками.
Спасибо, только единственное что твое решение не инпутит "-" если в текстбоксе что-то есть.
Аноним 27/05/20 Срд 19:52:19 1704649790
>>1704588
Не быть тебе походу программистом.
Я лишь показал тебе пример как можно, как правильно я не знаю потому что дел с wpf не имел практически вообще.
Но посмотрев быстренько свойства что мне доступны я моментально нашел решение.
https://pastebin.com/xpBwVn84
Аноним 27/05/20 Срд 20:13:33 1704676791
image.png 10Кб, 293x245
293x245
Сап, есть один проект который нужно скомпилировать в один exe. Пытался это делать при помощи csc но меня шлют нахуй исключением CS0246(не удалось найти тип или имя пространства имён "Newtonsoft").
Сама эта dll-ка подключена и всё хорошо работает, так же добавлена в сборку
Аноним 27/05/20 Срд 22:12:07 1704817792
Подскажите, что сейчас используют для написания сайтов на C#? Есть задача написать сайт, представляющий собой онлайн сервис, то есть будет регистрация, личный кабинет, баланс, настройки и проч. Сам я, когда-то фрилансил на шарпе и более менее его знаю, поэтому выбрал его. Помню был ASP.NET, но я так понимаю это уже говно мамонта и никто не использует его.
Желательно, что-нибудь самое простое, лучше вообще с конструкторами типа вордпресса, которые еще подпиливать можно под свои нужды, только под шарп.
Аноним 27/05/20 Срд 22:30:07 1704844793
15274757591720.png 187Кб, 720x720
720x720
Тупых вопросов тред.
Нужно запилить логику работы с дб/ентити в отдельную либу. Есть один метод который возвращает записи с бд (IQueryable<T>). При попытке получить (в мейн коде) уже с полученного (с метода либы) IQueryable<T> записи или count прилетает в ебало само собой эксепшн - datacontext has been (ясен хуй) disposed.
Можно конвертнуть его как-то во что-то явное/человеческое, без енумераторов там или я долбаеб?
Аноним 27/05/20 Срд 22:30:14 1704845794
>>1704676
> нужно скомпилировать в один exe.
Еще один свидетель церкви одна программа - один файл? Кор вроде может в один файл все запихать.
>делать при помощи csc но меня шлют нахуй
И правильно. csc ничего не знает про проекты студии. Ему надо ручками все референсы скармливать.
>>1704817
>был ASP.NET
Ну раз делаешь новый проекь, то ASP Net Core.
>Желательно, что-нибудь самое простое
Ну можешь с Razor Pages начать.
> лучше вообще с конструкторами типа вордпресса
Тогда ты не по адресу.
Аноним 27/05/20 Срд 22:33:48 1704851795
>>1704844
Ты хоть одну книгу прочитал? У тебя вопросы ппц тупые. Тебе надо выполнить запрос, т.е. воспользоваться ToArray/ToList/ToEnumerable и т.д.
Аноним 27/05/20 Срд 22:35:15 1704853796
>>1704851
А, точно, спасибо, я забыл совсем.
Аноним 27/05/20 Срд 22:54:32 1704882797
Посоветуйте быстрогайд для вката в asp.net mvc за один день.
Мне не нужны все эти контролы, вью, модели, роуты, нужно буквально скрафтить 1 страницу с лейблой, подгружаемой с бд табличкой, текстбоксом и кнопкой, даже без верстки.
Аноним 27/05/20 Срд 23:10:47 1704908798
>>1704882
Попробуйте майкодоки десу.
Аноним 28/05/20 Чтв 08:04:44 1705098799
>>1704882
>asp.net mvc
>не нужны все эти контролы, вью, модели
Кек.
>1 страницу с лейблой, подгружаемой с бд табличкой, текстбоксом и кнопкой
Бери Razor Pages и в учебнике мсдн/на метаните как раз на таком примере объясняется что к чему.
Аноним 28/05/20 Чтв 08:06:04 1705100800
>>1704882
P.S. Лучше пыху возьми для такого.
Аноним 28/05/20 Чтв 10:38:03 1705182801
>>1705100
Код то на шарпе
>>1704908
>>1705098
Спасибо, посмотрю. Алсо я как раз таки с метанита и пришел.
Аноним 28/05/20 Чтв 12:03:48 1705374802
На winform'ax был такй контрол назывался - data что-то там. Ему можно было скормить таблицы, списки и т.д. и он их автоматически подгружал.
Какой подобный аналог есть у wpf, чтобы можно было загрузить лист класса с n полей?
Аноним 28/05/20 Чтв 12:13:59 1705406803
>>1705374
> На winform'ax был такй контрол назывался - data что-то там. Ему можно было скормить таблицы, списки и т.д. и он их автоматически подгружал.
Datagrid
> Какой подобный аналог есть у wpf, чтобы можно было загрузить лист класса с n полей?
Datagrid
Аноним 28/05/20 Чтв 12:50:28 1705472804
>>1705406
Да, оно, спасибо. Просто я не кодил 10 тысяч лет.
Аноним 28/05/20 Чтв 14:15:48 1705593805
Ы 8.png 17Кб, 604x230
604x230
Ы 9.png 13Кб, 795x224
795x224
Аноним 28/05/20 Чтв 14:30:52 1705608806
>>1705593
Я просто хочу разобраться чем у меня отличается код от того, что на видео
Анон 28/05/20 Чтв 15:16:19 1705654807
Ебать тут токсики сидят
Аноним 28/05/20 Чтв 15:22:38 1705669808
>>1705654
дак жиза же. Все, кто помимо меня отписал - правы. Сначала # за час, потом резюме на почте HR с фразой - "Работаю за еду или бесплатно". И да, # это не JS, где зная основные механизмы языков программирования (что и дает Гоша, просто переписывает под синтаксис языка) можно интуитивно разобраться. В # нужен углубленный подход к изучению.
Геймдев - это еще пиздецовей, чем # интерпрайза. Тебе помимо общей логики, нескончаемой дрочки ООП нужны будут применения тригонометрии, физики и прочего (если ты не Unity-constructor clown).
Хочешь # - начни хотя бы с мутанита, этот ресурс даже дауны осилят.
Аноним 28/05/20 Чтв 15:33:31 1705683809
>>1705669
А тебе спасибо. Единственный адекват в треде
Аноним 28/05/20 Чтв 17:15:11 1705882810
Кто-то итт ставил на 19 студию 19 решарпер с торрентов? У меня после инсталла и крякинга - нихуя, в расширениях vs нету решарпера.
Аноним 28/05/20 Чтв 17:15:28 1705884811
мочератор, ты нахуя посты трешь?
Аноним 28/05/20 Чтв 17:25:36 1705896812
>>1705884
У него пригорело от собственной ущербности.
Аноним 28/05/20 Чтв 18:16:29 1705959813
посмотрел на ютабе кучу уроков да, не до конца, но какие-то до конца что, блять, означает :
static void Main(string[] args)
во всех уроках это тупо пропускают, мол, вот блять вы потом поймете что это это блять пока знать не надо
Аноним 28/05/20 Чтв 18:26:39 1705969814
>>1705959
Это метод который является точкой начала выполнения твоего консольного приложения.
> string[] args
Аргументы командной строки которые ты можешь передать при запуске своего приложения.
Аноним 28/05/20 Чтв 19:06:10 1706013815
>>1705969
>твоего консольного приложения.
Любого приложения.
Аноним 28/05/20 Чтв 19:19:26 1706024816
>>1705969
спасибо, что вообще ответили, все равно тяжело вникаю, ну не могу продолжать когда не понимаю что и для чего, может ли это объявляться как-то иначе, я именно про string[]args
по отдельности я вижу тут string - строка, [] массив и args щито? а вместе вообще не понятно
Аноним 28/05/20 Чтв 19:21:43 1706025817
>>1706024
Вся суть уроков по ютубу - долбоеб не может отличить тип аргумента от его названия.
Бери книгу Троелсена и читай её, зачем ты своё время тратишь на хуйню?
Аноним 28/05/20 Чтв 20:08:19 1706052818
14968184210340.png 225Кб, 486x640
486x640
Аноним 28/05/20 Чтв 20:34:08 1706076819
>>1706052
что по твоему без метода Main работает? Интересно почитать
Аноним 28/05/20 Чтв 20:35:19 1706077820
>>1706013
А еще можно без args.
С async.
И вообще в C# 9 можно без него.
Аноним 28/05/20 Чтв 20:49:35 1706100821
>>1706077
Ты путаешь "делает за тебя" и "можно без него".
Аноним 28/05/20 Чтв 20:51:58 1706104822
>>1706077
>>1706052
это вы, два петушка (возможно один, игнорящий мой пост), решили тут крылешками помахать, что в #9.0 можно высирать код без точки входа?
Аноним 28/05/20 Чтв 20:54:32 1706109823
>>1706104
Нет, я не он.
Точка входа не всегда main, а еще ее можно поменять.
Аноним 28/05/20 Чтв 21:03:06 1706114824
>>1706109
точка входа - это в первую очередь команда CLI и похуй как ты ее назовешь, если будешь свое говно клепать. Дефолт - это Main, открытие контекста выполнения приложения с последующей передачей CLI команды на ассемблирование сборки. Так что нечего тут выебываться
Аноним 28/05/20 Чтв 21:30:38 1706140825
>>1706109
вообще бредовый вопрос от того человека, который начал спрашивать про этот main
а что насчет unity там как это все? там вообще есть точка входа или..ладно, пойду я нахуй тупой я дебил спать ((
Аноним 28/05/20 Чтв 21:40:37 1706146826
>>1706109
Приведи пример "не всегда main"
Аноним 29/05/20 Птн 00:52:36 1706317827
Почему xamarin такое говно?
Аноним 29/05/20 Птн 00:55:29 1706323828
>>1706317
Дай угадаю. Потому что ты макака привыкшая к вин формочкам, у которой от одного вида XAML начинаются нервные судороги?
Аноним 29/05/20 Птн 10:00:15 1706490829
Что лучше\проще\быстрее для веб разработки - Питон или Шарп? Просто Шарп немного знаю, а Питон впадлу с нуля изучать. Либо проще и быстрее с нуля изучить Питон?
Аноним 29/05/20 Птн 10:47:00 1706547830
>>1706490
>лучше\проще\быстрее
Вордпресс
Аноним 29/05/20 Птн 11:05:48 1706561831
>>1706547
Да ты заебал со своим вордпрессом
Аноним 29/05/20 Птн 11:40:04 1706589832
.mp4 2244Кб, 720x900, 00:00:10
720x900
Вопрос про BeginInvoke.
Дано: нужно менять интерфейс из другого потока. Если использовать простой Invoke, то он блокирует поток до окончания своего выполнения,что может быть не очень хорошо, ведь интерфейс может подлагивать, насколько я понимаю. Окей, можно использовать BeginInvoke, который работает асинхронно и его не нужно ждать, но возникает вопрос: если я вызову сразу 2-3-4-...10 BeginInvoke подряд, они будут выполняться подряд, или существует вероятность, что более поздний вызванный BeginInvoke выполнится раньше, чем более ранний? Если да, то вариант пилить отдельный поток, который по команде будет выполнять простые Invoke - хорошее решение?
Аноним 29/05/20 Птн 11:58:14 1706598833
>>1706490
Зависит от того, насколько знаешь шарп. Если уже писал что-то кроме хэллоувордов, то через неделю можно высрать первый сайт на разорпагесах (наверно и за пару дней можно, я изучаю программирование паралельно моей не ИТ работе). Если только знаком с синтаксисом, то хз, наверно на петухоне проще. Но в любом случае еще надо знание хтмл/жс/ксс.
>>1706589
Зачем тебе в 2020 BeginInvoke? Юзай async/await.
>пилить отдельный поток, который по команде будет выполнять простые Invoke - хорошее решение
Нет.
Аноним 29/05/20 Птн 12:16:04 1706622834
>>1706589
При Invoke у тебя блокируется вызывающий функцию поток, а не основной поток который будет выполнять то что ты ему через Invoke передаешь (если ты конечно не долбоеб, который Invoke вызывает из основного потока, что вообще приведёт к его дедлоку).

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

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

Нет. Плодить потоки ради вызова Invoke это плохоее решение, тебе нужно синхронизировать нужную часть и делать вызовы из потоков которые либо обрабатывают результаты обработки информации, либо совершаю обработку этой информации.
Допустим, у тебя есть 3 задачи, которые требуют отдельных потоков, но при этом тебе нужно обновлять интерфейс в последовательном порядке, тогда ты на каждую задачу создаешь свой Task, добавляешь их в список, после чего используешь цикл в котором ждёшь Task.WhenAny до тех пор пока все задачи не выполнятся, в цикле проверяешь какая именно задача выполнилась, убираешь её из списка, если эта задача должна обновлять интерфейс первой, значит вызываешь BeginInvoke, если второй или третьей, значит добавляешь её в массив, в котором индексы это порядок выполнения задач и ничего не делаешь.
Выполняется еще одна задача, убираешь её из списка задач, проверяешь какой по счету эта задача должна выполниться. Допустим, что первым выполнилась вторая задача, а второй первая, значит у тебя в массиве заполнены первые два индекса, значит выполняешь каждую, из этих задач последовательно при помощи BeginInvoke.
Ну и т. д.
Аноним 29/05/20 Птн 12:51:03 1706664835
>>1706598
А на чем проще, на разор-пейджс или на ASP (MVC, Core и какие там еще бывают..)
Аноним 29/05/20 Птн 13:05:08 1706687836
>>1706664
На разоре, наверно. Но на 99% это одна хуйня.
Аноним 29/05/20 Птн 13:15:36 1706704837
.webm 4266Кб, 960x540, 00:00:16
960x540
Аноним 29/05/20 Птн 13:17:23 1706705838
IMG202005291313[...].JPG 13Кб, 456x160
456x160
Сишарп, помоги с легким заданием, отсосать готов
Аноним 29/05/20 Птн 13:18:49 1706707839
>>1706705
> отсосать готов
Извини, но тут это делают ради удовольствия. Не помогу
Аноним 29/05/20 Птн 13:34:03 1706725840
>>1706707
Та кмон.
Хочешь я взамен фото блинчиков со сгущенкой скину?
Или оладушков домашних?
Помоги пожалуйста.
Аноним 29/05/20 Птн 13:41:51 1706732841
>>1706705
var givenTenNumbers = new[] {5,9,1,3,7,4,0,6,8,2};
var result = givenTenNumbers[0] * givenTenNumbers[givenTenNumbers.Length - 1];
Жду к 20-00 на ул Пушкина за домом Колотушкина
Аноним 29/05/20 Птн 13:58:08 1706744842
Аноним 29/05/20 Птн 14:09:32 1706757843
Засекаем через сколько этот >>1706744 запостит "делаю как на видео, но у меня не работает" или "а как сделать хернянэйм, в видео такого нет",
Аноним 29/05/20 Птн 14:16:15 1706769844
>>1706732
Оно должно через текстбокс выводиться.
Аноним 29/05/20 Птн 14:17:57 1706770845
>>1706732
По-моему, это должно через массивы решаться
Аноним 29/05/20 Птн 14:21:15 1706780846
>>1706769
Выводи через что хочешь
>>1706770
А у меня через связный список по-твоему сделано?
Аноним 29/05/20 Птн 14:22:13 1706782847
>>1706780
Как мне его вывести?
Аноним 29/05/20 Птн 14:24:31 1706787848
Аноним 29/05/20 Птн 14:31:42 1706793849
>>1706757
Ты дурак или гомосек? Я запостил после того как уже все сделал.
Аноним 29/05/20 Птн 14:32:20 1706794850
>>1706787
Как мне его прописать?
Аноним 29/05/20 Птн 14:33:49 1706797851
>>1706782
>>1706794
TextboxName.Text = result.ToString();
Это если ты на формах, если на впф то это тебе бесполезно объяснять.
Аноним 29/05/20 Птн 19:24:11 1707172852
>>1696025
>А в C# 9.0 вообще новая веха наступает когда можно писать код не только быстрый, но и с 0 аллокацией памяти.
Изобрели то, что в нормальных языках вроде C++ было в 70-х? >_<
Аноним 29/05/20 Птн 19:27:05 1707174853
>>1665540 (OP)
Сап, есть такой вопрос.

using(var client = httpClient()) {
var responseMessage = client.sendAsync();
}

responseMessage.ReadAsStringAsync()

Не будет ли проблем из-за того что я читаю содержимое после dispose у httpClient?
Здравый смысл подсказывает что так делать нельзя, но на удивление не падает.
Ответы с сервера ввиде json, стримов там нет.
Есть объективные причины по которым нужно иметь возможность возвращать responseMessage, но при этом не держать клиент открытым
Аноним 29/05/20 Птн 20:02:29 1707218854
>>1707174
Код в твоём посте не будет работать, потому что responseMessage объявляется вне контекста в котором ты обращаешься к нему. Это раз.
И два, если присвоить переменной responseMessage возвращаемое значение client.SendAsync, то никакого отношения оно к этому клиенту уже иметь не будет, у него тоже есть свой Dispose, который нужно вызывать.
Аноним 29/05/20 Птн 20:03:55 1707223855
Аноним 29/05/20 Птн 21:48:32 1707422856
>>1707218
>Код в твоём посте не будет работать, потому что responseMessage объявляется вне контекста в котором ты обращаешься к нему. Это раз.
По-моему вполне очевидно что суть вопроса не в этом
>>1707218
>>1707218
>то никакого отношения оно к этому клиенту уже иметь не будет, у него тоже есть свой Dispose, который нужно вызывать.
Где это про почитать, я ничего не нашел
Аноним 29/05/20 Птн 22:28:52 1707475857
>>1707422
Проехали, добрался до компа, протестил действительно dispose у httpclient не влияет
Аноним 29/05/20 Птн 22:34:48 1707481858
>>1707174
Диспоузить HttpClient и создавать новый не самая лучшая идея. Алсо не забывай await'ить таски.
Аноним 29/05/20 Птн 22:49:12 1707496859
>>1707422

>Где это про почитать, я ничего не нашел
Про что про это, блять. Вся тупость твоего вопроса заключается в том, что ты связываешь две разных переменных.
Это тоже самое, что написать:

int x = someObject.GetInt();

и после:
someObject.Dispose();
Спрашивать как это повлияет на int x.
Аноним 29/05/20 Птн 23:05:08 1707511860
Кто-то сталкивался с тем что проект на аспе не может подтянуть существующую ентити бдшку? При том что весь код в либе и сонсоль/винформы/впф/аллах нормально с ним работает. Только создать новую может и уже с ней работать.
> System.Data.SqlClient.SqlException: Cannot attach the file dbname.mdf as database dbname.
На стаковерфлоу в закрепе решение
> Ну короче бля хуй знает, баг воркграунда.
https://stackoverflow.com/questions/17012839/cannot-attach-the-file-mdf-as-database
Все что ниже вроде перепробовал.
Может кто фиксил подобное?
Аноним 30/05/20 Суб 07:19:31 1707707861
Через gridview пытаюсь сделать удаление и правку записей в таблице, данные берутся из бд на access
По гайдам пытался, никак не выходит
DeleteCommand="DELETE `IP_PC`, `Name_PC`, `MacAD_PC`, `Notice_PC`, `Domain_PC`, `General_ID` FROM `LocalPC`" Работает, но удаляет всю таблицу, а хотелось бы только одну строку
UpdateCommand="UPDATE `IP_PC`, `Name_PC`, `MacAD_PC`, `Notice_PC`, `Domain_PC`, `General_ID` FROM `LocalPC`" править дает, при обновлении выдает ошибку
Спасайте, что делать?
Аноним 30/05/20 Суб 09:57:31 1707759862
>>1707707
Ты ж не указываешь строку. Тебе нужно выбрать строку по айдишнику там...
Аноним 30/05/20 Суб 18:46:25 1708268863
>>1707759
Анон, я разобрался со своей проблемой
Я предполагаю, что ты знающий
Подскажешь, как мне сделать обновление данных на gridview, после того как я в ней данные удалил/изменил
Данные изменились по кнопке в БД, но он показывает все еще старые на gridview
Аноним 30/05/20 Суб 21:48:56 1708600864
>>1708268
Я не сильно знающий и ковырял grid давно, мало того слабо понял твой реквест. Если тебе нужно апдейтить бд после изменения значений в гриде то вангую что тебе нужно гуглить и реализовать ивенты грида что-то вроде cellchanged или как-то так.
Или еще можешь сделать по тупому - реализовать отдельную форму/место для инсерта/апдейта/делейта где есть например текстбокс где юзверь вводит айди конкретной записи (или скролит грид+ивент onclick по записи) и условная кнопка делейт на которой уже вся логика работы с бд.
Аноним 31/05/20 Вск 12:48:06 1708946865
изображение.png 5Кб, 564x57
564x57
Как тут delegate убрать?
Аноним 31/05/20 Вск 12:50:00 1708947866
>>1708946
Надо повесить лямбду на ивент
Аноним 31/05/20 Вск 13:14:03 1708959867
>>1698794
Я из с++ вктатываюсь, по шарпу читал что-то года 3 назад, пытаюсь вспомнить теперь
Аноним 31/05/20 Вск 13:15:55 1708961868
Сап, учусь работать на wpf, есть таблица в бд которую надо вывести в DataGrid. Это я научился делатьentity framework, но теперь появилась проблема: как эту бд редактировать через этот же DataGrid. Есть ли другие способы вывалить всю таблицу сразу с возможностью редактирования?
Аноним 31/05/20 Вск 14:17:19 1708992869
Есть program.cs в котором хочу мутить логику, но окошко создаётся с button1_Click, как вынести логику из формы, то есть разделить код и графику? Или на WPF принято писать код в button1_Click?
Аноним 31/05/20 Вск 14:35:12 1709007870
>>1708992
То есть не WPF, a windows forms
Аноним 31/05/20 Вск 14:54:10 1709029871
>>1708961
Не понимаю в чем проблема. Получил данные из БД. Произвел биндинг модели к твоему датагриду, при изменении значения поля, данные объекта будут так же изменены если биндинг двухсторонний. Если ты не выключал трекинг, то после сохранения изменений, в БД все само обновиться.
Аноним 31/05/20 Вск 16:19:57 1709128872
Смотрите, есть набор запросов. Разным запросам соответствуют разные обработчики(методы которые знают что делать с этим запросом). Так вот, какой вариант будет лучше в коде смотреться для организации этого дела?
1. switch - просто на каждый запрос ебашим case в котором задаем обработчик.
2. словарь - ключ - тип запроса, значение - обработчик.

Вроде как второй вариант мне больше нравится по причине того, что обращение довольно простым будет, типа если этот запрос есть в словарике - попробуй обработать, если нет - верни ошибку. Да и нет switch'а, который понижает читаемость кода. Что думаете, шарпаны?
Аноним 31/05/20 Вск 17:32:17 1709226873
Аноны, помогите с Drag&Drop в WPF. Вот у меня есть окно, в нём два контрола, которые принимают дроп. Но как только на окно что-то перетянули, мне ведь нужно показать пользователю, куда ему кидать объект. Как мне отследить сам факт того, что на окно уже перетянули какой-то объект, чтоб изменить вид своих DropTarget'ов?
Аноним 31/05/20 Вск 17:33:47 1709227874
>>1709128
Гугли chain of responsibility
Аноним 31/05/20 Вск 17:40:37 1709233875
>>1709226
Вешаешь на самый верхний элемент обработчик PreviewGiveFeedback и в нём можешь менять вид элемента, в котором принимается элемент
Аноним 31/05/20 Вск 20:31:47 1709408876
>>1709029
можешь показать на скринах как это работает? я просто в xaml нихуя не понимаю еще, какие-то биндинги хуиндинги, не ебу
Аноним 31/05/20 Вск 22:19:45 1709499877
tom-cat.jpg 13Кб, 360x270
360x270
>>1695286
>сейчас бы решеточки поучить
А хули делать тогда?
Аноним 01/06/20 Пнд 00:07:15 1709562878
image.png 13Кб, 1002x117
1002x117
image.png 5Кб, 487x86
487x86
Как работать с UDT PL/SQL, вызывая функции из C#? Я бы передал просто строку в качестве аргумента, но я не знаю как внутри ее поделить и привести к нужному типу.
Аноним 01/06/20 Пнд 07:27:13 1709695879
>>1709499
вкатывайся в хачкель
Аноним 01/06/20 Пнд 12:19:19 1709816880
Студент первого курса. Из яызков изучали си и джаву на первом курсе.
Как понять на каком я уровне и какую книгу по шарпам начинать читать/какие видео смотреть. Ведь какие-то фундаментальные вещи по типу массивов, переменных и т.д я и так знаю, а более глубокие вещи и дотнет релейтед штуки нет. С чего стартовать чтобы на летних каникулах как следует обмазаться?
Аноним 01/06/20 Пнд 12:26:16 1709828881
Аноним 01/06/20 Пнд 13:52:05 1709881882
Oop сейчас в теме?
Аноним 01/06/20 Пнд 15:56:23 1710049883
>>1709881
Нет. Сейчас толко ФП.
AnalDestructor2010 01/06/20 Пнд 20:51:19 1710414884
EF вообще можно использовать не в хэллоувордах? Куда не шагни везде минное поле. Какого хера он генерирует запрос с outer apply/cross apply для sqlite, если sqlite ну умеет в outer apply/cross apply?
Аноним 02/06/20 Втр 04:55:21 1710638885
>>1709816
Троелсен для старта, потом Рихтер для углубленных знаний. Сразу скажу, у Рихтера очень душное начало, которое будет интересно разве что интрпрайз петухам, но в целом книга действительно годная. Раздел про многопоточность и асинхронность самые топовые из всей шарп литературы.
Аноним 02/06/20 Втр 06:09:19 1710661886
>>1710638
Да, начало душное пизда. Интересно только через год-два вернуться и почитать про это все
Аноним 02/06/20 Втр 07:08:45 1710679887
Что думаете про .net 5?
Аноним 02/06/20 Втр 11:55:57 1710769888
>>1710679
Что майки движутся в правильном направлении, не нравится только их желание привлечь макак, которое привело к неявному main и коду как в жопаскрипте/петухоне. По мне так лучше бы на что то другое время потратили, например, поддержки socks прокси до сих пор нет.
Аноним 02/06/20 Втр 12:25:15 1710782889
Cап,
что есть годного на сишарпе для машинного обучения?
пока нагуглил только ML.net, но что-то отзывы слишком неоднозначные
Аноним 02/06/20 Втр 17:35:22 1711049890
Аноны, где можно посмотреть пример простейшего Self-Hosted WebApi2 приложения. Интересует только как инициализируется само приложение и простейший тривиальный контроллер. Просто у себя на .NET Core 3 собрал, запустил, а эта залупа не обрабатывает реквесты - они просто в очереди, что ли, висят.
Аноним 02/06/20 Втр 17:49:52 1711073891
Аноним 02/06/20 Втр 18:01:37 1711092892
>>1711073
Не, так же реквесты не принимает нихуя. Забыл сказать, что пробую все запустить под Linux'ом, как обычно наебалово, короче.
Аноним 02/06/20 Втр 18:17:08 1711106893
>>1711092
>запустить под Linux'
фаервол настроил?
Аноним 02/06/20 Втр 18:35:07 1711117894
Выгонят ли меня с галеры, если я понял что классы не нужны и паттерны тоже и ебашу структурами ну и статичные классы использую вместо неймспейсов? Просто блядь, ну серьезно, весь этот DI где хуй знает сколько ритуалов совершить надо чтоб оно работало, все эти паттерны-хуятерны, с которыми хуй потом в коде разберешься, а тут:
public static class Zalupa{
public static Koncha[] ZdelauConchu(int KakMnogoKonchiNado) => new Koncha[100];
}
Это же очень удобно. Удобнее чем сделать:
public class Zalupa{
public Koncha[] ZdelauConchu(int KakMnogoKonchiNado) => new Koncha[100];
}

Просто потому что чтобы из другого места кода получить много-много кончи, мне не нужно ебучий объект смоздавать, я могу сделать таск и продуцировать сколько хочу кончи асинхронно, и вообще обмазаться ей с ног до головы. При этом и ошибки искать легче, я сразу могу понять в каком классе и из-за чего что-то наебнулось, я не боюсь что сборщик мусора удалит мой объкет, либо что я забуду удалить какой-то и он будет висеть там хуй пойми сколько, просто из-за того что я не отписался от события.
В общем, одни плюсы. Структуры и статичные классы - свет и процветание, обычные классы - тьма и упадок.
Аноним 02/06/20 Втр 19:21:55 1711167895
Хочу написать программу которая бы висела в треи и выполняла мне кучу периодических действий.
Типа проверяй папочку каждую минуту и если появился файл, то сделай то-то.
Зайди на сайт раз в 5 минут и скачай то-то.
Встал вопрос в том как правильно реализовать эту периодичность?
Пока что есть идея в том что отдельный бесконечный поток который бегает по моим задачкам и проверяет время, а в конце цикла Thread.Sleep(1). Но я не совсем уверен что так делать правильно, какие есть варианты и как вообще подобное делается в настоящих программах?
Аноним 02/06/20 Втр 19:22:48 1711169896
Аноним 02/06/20 Втр 19:42:52 1711192897
Аноним 02/06/20 Втр 20:05:59 1711223898
>>1711167
Делаешь проект типа воркер. Там будет создан класс наследуемый от бекграунд сервиса. Этому сервису реализуешь метод ExecuteAsync. Внутри просто бесконечный цикл, в конце которого await Task.Delay(переодичность выполнения этого самого воркера). Довольно просто и должно работать даже на линуксах, правда я не проверял.
Чтобы оно висело в трее, можешь добавить дополнительно всяких приблуд, но я бы просто добавил приложение в список сервисов и либо поставил в автозагрузку, либо коротенький скриптик для запуска сделал.
Аноним 02/06/20 Втр 20:11:57 1711229899
Аноним 02/06/20 Втр 20:23:26 1711248900
Вот все говорят: Иди джуном, там тебя будут бить по рукам за говнокод.
Ну, я пошел. И всем насрать, говорят: "Чел, оно ж работает, ты это, новые фитчи давай делай, а код, как-нибудь потом отрефакторишь".
Никаких кодревью. Никаких советов от старших коллег. Буквально: Дали компьютер со студией, дали проект, сказали - делай.
Так везде? Так и должно быть? Почему постоянно слышу в интернете про эти кодревью, про то как дядьки бьют по рукам за говнокод и в этом духе, но уже третье место и ничего такого нет, просто делай.
Как быть? Что делать? Я просто без какого-то фидбека начинаю галюцинировать и мне кажется что я все неправильно делаю, потому начинаю переделывать то что уже сделал, хотя оно работает нормально, но мне кажется что я что-то сделал не так, потому лучше создам новый проект и быстро перепишу так как надо, но только я его написал так как считаю что надо, начинаю что-то добавлять, все вроде идет норм, но потом понимаю, что что-то мне не нравится и по кругу ебаному. И выходит что я отдаю проект в виде, в котором мне не нравится, но всем похуй, его отправили куда-то, там протестировали, прислали заключение что все заебись и сказали делать другой. Я же так ебнусь нахуй, либо начну забивать на все и буду ебашить как попало, ведь всем плевать же, почему мне должно быть не?
Аноним 02/06/20 Втр 20:26:48 1711255901
photo2020-06-02[...].jpg 31Кб, 545x468
545x468
Народ, может кто помочь, как заставить код ждать выполнения выделенной желтым функции? А то хитрицы на msdn просто sleep вставили не запариваясь.
Аноним 02/06/20 Втр 20:39:44 1711267902
>>1711255
А без легаси дерьма вида BeginExecute никак не обойтись? Какой фреймворк тогда пиши.
Аноним 02/06/20 Втр 20:41:02 1711272903
>>1711255

Алсо, проиграл с AsyncQuery, какой это нахуй асунк, если у них тред в конце блокируется? Код будет выполняться быстрее, если убрать часть с BeginExecute.
Аноним 02/06/20 Втр 20:51:57 1711290904
Аноним 02/06/20 Втр 20:59:29 1711306905
>>1711290
Так тебе же ниже написали тоже самое, только с использованием async и await
Аноним 02/06/20 Втр 21:05:25 1711322906
>>1711290
И Thread.Sleep там вставлено для того чтобы тот кто хочет прогнать код у себя, смог увидеть вывод в консоль результата асинхронного вызова, а не в качестве примера того, как делать если тебе нужно дождаться выполнения задачи.
Аноним 02/06/20 Втр 21:05:37 1711323907
>>1711255
Ну, я бы сделал как-то так:

while(people==null){Thread.Sleep(0);}

лол кек
Аноним 02/06/20 Втр 21:21:18 1711342908
>>1711323
>>1711322
Код перенес к себе. Я не знаю, что там курят создатели этих классов в .net для работы с odata, но нервы мне потрепали знатно. Те классы почти ни с чем работать не умеют.
В итоге сделал через TaskFactory:
var tfc = new TaskFactory<IEnumerable<Название_сущности>>();
IEnumerable<Название_сущности> items = (tfc.FromAsync(query.BeginExecute(null, null), query.EndExecute)).Result;
Аноним 02/06/20 Втр 21:22:34 1711344909
15911021532710.png 98Кб, 323x239
323x239
>>1711167
Делаешь цикл while(true), в нем все действия, дальше в конце итерации пишешь int i = 0; while(i > n) i++; где n это условное обозначение времени. К примеру n = 4677448096544 это где-то минута.
В случае чего, лет через 10 когда обновишь пекарню, поставишь в условии цикла (i > n*2) - очень удобно.
Аноним 02/06/20 Втр 21:44:49 1711363910
Понимаю что есть геймдев. Но таки спрошу тут. Хочу сделать простую игрушку в учебных целях. Естественно с написанием своего движка. Но вот лезть на уровень OpneGL/DirectX как-то не хочется(боюсь что не разберусь я со всеми этими шейдерами и прочим). Собственно вопрос: что есть под шарп для рисование и, желательно, звука, при этом чтобы? Я вот слышал что есть порты SFML и SDL, а их первыми выдает при запросе библиотек для рисования в играх. Оно подойдет? Кто-нибудь прикладывал их к шарпу?
Аноним 02/06/20 Втр 21:54:45 1711374911
>>1711363
> Естественно с написанием своего движка
Нахуя?
Аноним 02/06/20 Втр 21:55:02 1711376912
>>1711363
>что есть под шарп для рисование
GDI+
Аноним 02/06/20 Втр 21:59:41 1711379913
>>1711374
Потому что я хочу разобраться как оно там устроено же чуть больше, чем: Ну, движок это такая вот херовина, которая достает из папочек файлики и скрипты, производит черную магию и как-то из этого игра получается.
>>1711376
Спасибо. Пойду курить мануалы.
Аноним 02/06/20 Втр 22:11:21 1711388914
>>1711379
Да тупо делаешь на System.Drawing.Graphics, только двойную буфферизацию сделай, чтобы не мерцало. Для laba1 вполне подойдёт, ничего учить не надо толком, всё есть, вплоть до преобразований в однородных координатах.
Аноним 02/06/20 Втр 22:14:17 1711389915
>>1711388
Ну, я ж не для лабы делаю, а чтоб разобраться.
Аноним 03/06/20 Срд 04:52:44 1711594916
20200305031119.jpg 148Кб, 977x899
977x899
>>1711342
Зачем ты BeginExecute использовал, ты совсем отбитый и не понимаешь, что два кода на пикриле выдают совершенно одинаковый результат? Ты зачем-то приплёл не нужный TaskFactory, еще и поток заблочил в конце своим .Result
Аноним 03/06/20 Срд 05:03:52 1711595917
>>1711594
Пердолинг, sir. Думаю, он для Linux приложение делает.
Аноним 03/06/20 Срд 08:46:07 1711623918
image.png 409Кб, 1920x975
1920x975
двач, помогай, изучаю WPF и работу с базами данных. не могу подключиться к локальной базе на этом же компе

MS server 2017. при установке все оставлял по умолчанию


и следом, что и куда писать если я хочу подключить к базе данных по локальной сети, при авторизации через SQL профиль (а не профиль виндовс)
Аноним 03/06/20 Срд 09:13:57 1711632919
>>1711623
> и следом, что и куда писать если я хочу подключить к базе данных по локальной сети, при авторизации через SQL профиль (а не профиль виндовс)
При установке sql сервера он должен был выдать месседбокс со строкой подключения которую ты должен был схоронить и вставить у себя в проекте. Гугли теперь как ее посмотреть.
Аноним 03/06/20 Срд 11:36:52 1711693920
>>1711623
Вроде через SQL Management Studio можно строку скопировать
Аноним 03/06/20 Срд 11:53:42 1711713921
>>1711623
У тебя слева открыт не SQLEXPRESS
Аноним 03/06/20 Срд 12:05:34 1711721922
Анончики, помогите!
У меня есть текстовый документ, где находятся слова, разделенные пробелом. Я спличу их и добавляю в массив, но при выводе в консоль вместо букв знаки вопроса. Это с кодировкой связано? Как фиксить?
Аноним 03/06/20 Срд 12:08:56 1711723923
Безымянный.png 53Кб, 931x735
931x735
Аноним 03/06/20 Срд 12:51:34 1711762924
>>1711721
>Это с кодировкой связано?
Да.
> Как фиксить?
У ReadAllText есть перегрузка, которая принимает кодировку. Если пишешь под FW (и если звезды будут благосклонны), то должно помочь Encoding.Default. Если пишешь под Core, то надо явно указать кодировку ISO 8859-1 (её нет в стандартной поставке и надо стянуть нугет пакет). Но это гадание на кофейной гуще, я не ебу что у тебя там за файл, так что сам смотри какая кодировка нужна.
Аноним 03/06/20 Срд 13:07:18 1711787925
>>1711762
>её нет в стандартной поставке и надо стянуть нугет пакет
Я только вкатываюсь, хз как это сделать, помоги пожалуйста

Пишу обычное консольное приложение(.NET Core)
Аноним 03/06/20 Срд 13:21:35 1711815926
>>1711762
Файл - обычный блокнот
Аноним 03/06/20 Срд 13:45:04 1711834927
>>1711815
Если файл сам делаешь, то сохраняй сразу в utf8 и не мучай жопу. Все таки 21 век уже давно настал.
>>1711787
Возможно я погорячился с нугетом, это под линь надо, в винде вроде должна быть зарегистрирована 8859. Попробуй сначала так:
ReadAllText(path, Encoding.GetEncoding(28591))
Аноним 03/06/20 Срд 13:50:13 1711839928
>>1711834
>Если файл сам делаешь, то сохраняй сразу в utf8 и не мучай жопу. Все таки 21 век уже давно настал.
Спасибо, все работает!
Аноним 03/06/20 Срд 15:17:18 1711942929
image.png 23Кб, 810x77
810x77
Сап. Решарпер втирает мне какую то дич, причем только в одном солюшине, в других такой хуйни нет. Сброс настроек помогает до следующего перезапуска студии, потом опять тоже самое. Кто нибудь сталкивался?
Аноним 03/06/20 Срд 15:31:50 1711969930
>>1711942
Т. е. решарпер заставляет идти наперекор конвенции от майкрософтов, которые говорят, что свойства должны именоваться с заглавной буквы?
Аноним 03/06/20 Срд 15:37:39 1711976931
>>1711969
Вангую, что это свойство приватное, тогда должно быть с маленькой.
Вряд ли в jetbrains стали бы выдумывать какую-то хуйню.
Либо на уровне проекта кто-то внес своё васянское правило в конфиг форматтера.
Аноним 03/06/20 Срд 20:19:00 1712253932
Как справиться с паническими атаками из-за того что боишься что твой код упадет уже в продакшене? Просто пиздец, я два месяца назад все сделал, но не сдаю проект, постоянно выдумываю причины, чтобы допиливать напильником, лишь бы не отдавать в продакшн это добро. А код мой никто и не смотрел, посмотрели, что работает и сказали сразу выкатывать. Приходится отпиливать уже впиленные фитчи и тыкать в это, типа вот, в ТЗ есть, а я не сделал.
Аноним 03/06/20 Срд 20:24:53 1712268933
>>1712253
Узнаешь после того как тебя попрут из теплого офиса и ты окажешься в пятерочке рядом с такими же паникерами.
Аноним 03/06/20 Срд 20:26:12 1712271934
>>1712268
Да я бы рад, чтобы меня поперли, но не прут. А заявление брать отказываются.
Аноним 03/06/20 Срд 20:45:48 1712312935
>>1712271
Ну тогда тебе в /b/ надо, там таких пиздоболов не о чём любят.
Аноним 03/06/20 Срд 20:50:26 1712315936
>>1712312
В каком смысле пиздоболов? Я из глухой провинции, тут кодеров почти нет, а они все равно нужны и потому предпочитают откладывать сроки сдачи и отговаривать от увольнений, потому что поиск нового может на годы затянуться.
Аноним 03/06/20 Срд 20:51:26 1712317937
>>1712315
В смысле любителей попиздеть не о чём. Нахуй ты вообще в шарп тред с этим зашел?
Аноним 03/06/20 Срд 20:52:18 1712318938
>>1712317
Я перепутал просто.
Аноним 03/06/20 Срд 20:52:27 1712321939
Есть транспайлер с новых версий шарпа на старые? Скажем, с 7 на 4-й какой-нибудь?
Аноним 03/06/20 Срд 23:54:58 1712463940
Где можно посмотреть примеры хорошего кода на шарпах, при этом не излишне переусложненных? Просто я пробовал смотреть то что МС в ветке архитектуры выкладывает и их интернет-магазин какой-то ну слишком замудреный для меня.
Аноним 04/06/20 Чтв 00:11:54 1712477941
Есть класс. В нем есть два асинхронных метода. Суть в том, что желательно чтобы они не работали одновременно, но гарантировать что для одного объекта из разных участков кода эти методы не будут вызваны одновременно не получается. Вот и как решить эту задачу?
Я вот подумал о двух решениях:
1. Я делаю конечный автомат с состояниями и метод не может быть вызван, пока состояние не сменится на какое-то.
2. Я создаю внутри класса очередь выполнения и при вызове просто добавляю нужный метод в очередь, а потом дополнительный класс обработчик, достает эти методы и выполняет.

И оба решения мне не нравятся. В первом случае я не совсем понимаю как мне дождаться нужного состояния(просто вызывающий-то кусок кода не знает о том, что внутри класса происходит, он просто передал параметры в метод и ждет результат). Во втором как результат моего обработчика очереди возвращать туда, откуда метод вызвали.
Я наверное совсем тупой. Извините.
Аноним 04/06/20 Чтв 00:14:41 1712482942
>>1712477
Мьютекс не подойдёт?
Аноним 04/06/20 Чтв 00:28:06 1712492943
>>1712477
Использовать нужно классы SemaphoreSlim, Interlocked, SpinWait и ReaderWriterLockSlim и тп, в зависимости от контекста. Эффективнее всего будет синхронизация при помощи interlocked, потом идут все что с приставкой слим, самые низкопроищводительные это монитор, мьютекс, авторезетивент и т. д.
Аноним 04/06/20 Чтв 00:36:03 1712495944
>>1712492
Где можно почитать про это?
Аноним 04/06/20 Чтв 00:49:06 1712500945
>>1712495
https://docs.microsoft.com/en-us/dotnet/api/system.threading
Если из книг, то у Рихтера хороший раздел про многопоточность с примерами реализации. Советую его, но если лень читать, то документации хватит.

Еще присмотрись к
https://docs.microsoft.com/en-us/dotnet/api/system.collections.concurrent

Возможно тебе будет достаточно использовать тред-сейф коллекцию.
Аноним 04/06/20 Чтв 00:53:41 1712503946
>>1712500
Спасибо, буду Рихтера дрочить.
Я много с шарпом работаю, но всегда обходился мьютексами и тред-сейф коллекциями, даже не знал, что в шарпе спинлоки есть и всякое такое.
Аноним 04/06/20 Чтв 01:14:52 1712516947
Привет. Хочу себе сделать удобную библиотечку для работы с сетью, чтобы не нужно было каждый раз в своих небольших штуках писать работу с этой самой сетью на базовом уровне. Набросал прототип TCP-сервера. В общем, еще не готовы события, не учитывается число подключений и некоторые другие штуки, но проверил сделав эхосервер и вроде удобно пользоваться получается, по сути из сервера торчит один делегат, в котором можно реализовать какую-то логику. Но я боюсь что где-то обосрался. В общем, если не сложно, то дайте фидбек.
https://ideone.com/jOHYql
Аноним 04/06/20 Чтв 01:22:17 1712521948
Аноним 04/06/20 Чтв 08:22:51 1712624949
>>1712321
Есть ILSpy, который может декомпилировать сборку в любую версию шарпа. Но только ридонли, т.е. если посмотреть во что превращается сахар, то ок, а если сконвертировать проект - хуй.
>>1712463
C# awesome на гитабе
Аноним 04/06/20 Чтв 08:52:44 1712631950
>>1712624
Меня больше всего интересуют перегрузки методов со значениями по умолчанию, очень хочется от них избавиться. На читаемость кода плевать.
Аноним 04/06/20 Чтв 16:53:09 1713096951
Стоит вкатываться в решетку? Работа есть для вкатунов?
Аноним 04/06/20 Чтв 16:55:15 1713100952
>>1713096
Хуже, чем на жабе, но язык гораздо лучше
Аноним 04/06/20 Чтв 17:08:24 1713117953
>>1713100
Стоит попробовать, спасибо.
Аноним 04/06/20 Чтв 18:01:18 1713167954
Анон, посоветуй open-source CMS на .net core (желательно 3+).
Интересует именно личный опыт использования, статей и обзоров я нашёл прям дохуя.
Аноним 04/06/20 Чтв 22:10:54 1713412955
15849625600730.png 223Кб, 512x387
512x387
>>1713117
>Стоит вкатываться в решетку?
>2k20
Аноним 04/06/20 Чтв 22:49:54 1713454956
image.png 83Кб, 228x222
228x222
Бля я придумал топовый кроссплатформенный гуи фреймворк на щарпах.
Вин формс же портанули под нет кор.
Вин формс - это просто обертка над вин апи
Юзаем на линуксе/маке нативный нет кор, а для винформс ставим вайн.

Я гений?
Аноним 04/06/20 Чтв 22:55:17 1713457957
>>1713454
Так везде виртуалки ставь и говори, что у тебя кроссплатформенное приложение. Нахуй вообще эти кросплатформенные языки, да?
Аноним 04/06/20 Чтв 23:41:31 1713518958
image.png 56Кб, 1063x543
1063x543
Вечер в хату.
Пишу значит говнокод и столкнулся с такой херней после обработки исключений не могу прервать метод при помощи return. Подскажите в чем херня?
Аноним 04/06/20 Чтв 23:45:29 1713521959
>>1713518
Метод должен возвращать тот тип, который указан в качестве возвращаемого в его сигнатуре. В твоём случае это тип int, а ты пытаешься просто выйти из метода не вернув ничего. Либо пиши return 1, либо меняй сигнатуру метода.
Выйти без возвращения чего-либо, можно только в методах которые помечены как ничего не возвращающие, т. е. методы с void в качестве возвращаемого типа.
Аноним 04/06/20 Чтв 23:46:20 1713522960
>>1713518
Можно еще просто пробросить эксепшн в вызывающий код, написав throw; вместо return.
Аноним 05/06/20 Птн 05:24:12 1713670961
image.png 19Кб, 718x460
718x460
Помохите...

изучаю WPF.. читал metanit - них не запомнил, все вылетело из головы. Теперь пытаюсь изучать на практике (я только так могу - пока сам не начну делать - ничего не запоминаю)

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

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

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


Да-да, я знаю что тут DataGrid - а можно какой-нибудь пример именно такого? А то нахожу только примеры где область равна размеру окна (без полос прокрутки)

Аноним 05/06/20 Птн 06:37:24 1713676962
>>1713670
>читал metanit
Сочувствую.
>пока сам не начну делать - ничего не запоминаю
Любимые слова лентяев.

Бери книгу и читай. У Троелсена хороший раздел по WPF, как раз интеграция с базой данных идёт. То что тебе нужно.
Вот так чтобы "пакажити как, а я сделаю бля буду" не бывает.
Аноним 05/06/20 Птн 07:49:08 1713685963
>>1713412
А ты кроме гринтекста и боевой картники способен выдать осмысленное возражение?
Аноним 05/06/20 Птн 08:07:51 1713690964
15898818763460.jpg 24Кб, 540x540
540x540
>>1713685
да нет, все нормально. Продолжай учить решетки
Аноним 05/06/20 Птн 08:31:38 1713696965
Аноним 05/06/20 Птн 08:51:46 1713702966
>>1713676
>Любимые слова лентяев.
тут другое - когда я ставлю задачу, начинаю гуглить решения, смотрю кто как делает - вот только тогда у меня оно в голове укладывается. А когда просто читаю книгу/стать/папер - оно сразу же забывается.

>>1713676
>Вот так чтобы "пакажити как, а я сделаю бля буду" не бывает.
у меня бывает))) я раньше так на С++ прогал (в геймдев вкатывался во времена когда движков еще не было). по началу тоже нихрена не понимал вплоть до указателей и постоянно всех заебывал вопросами. А теперь мой самый любимый язык, с которым я вкатывался в геймдев. Но жизнь такая - писать надо на том, за что платят, поэтому пошел учить шарп.

>>1713676
>как раз интеграция с базой данных идё
ну тут вопрос не про интеграцию с базой данных, а про возможность сделать прокрутку части экрана. Но сих пор не нашел примеров чтобы у людей она была. выводят три строчки из базы и всё.
05/06/20 Птн 09:13:36 1713708967
>>1713702
Пиздишь как дышишь.
Аноним 05/06/20 Птн 09:29:07 1713714968
>>1713690
весь рофл в том, что пока все пилили опен сорурс, мелкософты сидели на своем .NET, как на золотом яйце. И что то переседели. Я вообще хз, кто сейчас для проектных решений выбирает стэк кора и всех его прелестей, если сейчас есть альтернативы куда удобней, проще и дешевле, чем .NET
Кстати учат сейчас решетки студентота (задачи с формочками ака welcome back to past), так что да, его стоит учить. Да и в 9 версии ФП завезут, может взлетит
PhP - хоронят 10 лет, работают на нем по сей день
Java - хоронят 5 лет, работают на нем по сей день
C# - не хоронили, но уже не работают (кроме легаси, SOF и пары укуренных SA)
Аноним 05/06/20 Птн 09:49:18 1713720969
Аноним 05/06/20 Птн 10:53:15 1713751970
>>1713670
> этот фронт
Госпаде, деда ты там с делфи перекатываешся?
Аноним 05/06/20 Птн 11:10:23 1713761971
Господа, мне нужен жабаскрипт для сайтиков фронта на asp.net?
Аноним 05/06/20 Птн 11:53:59 1713796972
>>1713761
А нам откуда знать в чем ты нуждаешься?
Сейчас фронт не делается без фреймворков(рикт, вью, ангуляр)
Аноним 05/06/20 Птн 13:00:51 1713866973
>>1713670
как уебищно выглядит, назад в нулевые. WPF as it is
>>1713761
конечно нужен, даже ссаный MVC с Razor View без JS - говно на палке
Аноним 05/06/20 Птн 18:23:48 1714246974
>>1713714
Проще и дешевле – это какие, кроме ноды?
Ходил по собесам год назад работу к тому моменту уже нашел, шел просто ради опыта собеседований, рассказывал, что делал с помощью ASP.NET Core MVC. Интервьюер спросил, мол, а сколько я изучал эту хуйню. Я сказал, что неделю, и ещё 2-4 недели писал. Он крякнул: "Мда, а у нас джава. Со спрингом надо пару месяцев ебстись, прежде чем писать что-то"

Мне, к сожалению, придётся джаву учить, либо оттачивать навыки вротендера, потому что там, куда я хочу, дотнета мало
Аноним 05/06/20 Птн 18:26:29 1714248975
>>1713866
> как уебищно выглядит, назад в нулевые. WPF as it is
Ну VS норм выглядит. Это не отменяет того факта, что майки хуй ложили на впф
Аноним 05/06/20 Птн 18:30:10 1714253976
>>1713761
Не нужен. Но ты через некоторое время ты столкнешься с тем, что захочешь подключить скрипты на свою страницу. А потом изучишь какой-нибудь фронтенд фреймворк и будешь писать на asp не mvc, а api
Может, и нет. Мсдн у майков не SPA
Аноним 05/06/20 Птн 18:31:07 1714255977
>>1713720
Что за КМС и для чего он тебе? Попахивает вордпрессом и 1с
Аноним 05/06/20 Птн 22:31:02 1714603978
image.png 42Кб, 713x350
713x350
я могу на визуал студио работать с mySQL который где-то на линукс сервере установлен? как жто сделать, я раньше только с ms sql server работал
Аноним 05/06/20 Птн 23:43:58 1714675979
>>1714246
>Проще и дешевле
пыха, рор, тот же нод (привет JS-ерам, которые кроме Node бэка не видели). Если крупный проект - Kotlin сейчас взлетает, java и # врядли, разве что из за больше комьюнити
>Интервьюер спросил, мол, а сколько я изучал эту хуйню. Я сказал, что неделю, и ещё 2-4 недели писал
не знаю, что ты ему рассказал и что ты вкладываешь в понятие "учил". Т.е. ты за 1 неделю его знаешь от А до Я и готов выкатить на проект? Очень сомневаюсь, подводных камней очень много (которые перевыпилились новыми камнями с перехода на 2.2 и на 3+)
>Со спрингом надо пару месяцев ебстись, прежде чем писать что-то"
тоже индивидуально. Смотря какие задачи ставяться, как разраб решает проблему. Я лично никогда не писал на JS начал педалить реакт и на плевой хуйне, как Redux просидел ломая голову неделю (хотя это просто ебаный глобал стейт - переведя на C# - класс с набором констант покрытый ассесорами).
>куда я хочу, дотнета мало
я уже писал в этот тред, возможно в предыдущий - когда началась эпидемия - у нас сначало выкосили всех джунов, потом начали закрываться один проект за другим. В итоге я на бенче начал в React, сейчас так же пишу на нем. Не знаю, чем это все закончится и как себя поведет рынок, но # имо такой себе вариант для вката. Я думаю браться за изучение TypeScript/Kotlin, еще не определился
Аноним 06/06/20 Суб 03:54:52 1714765980
>>1713866
>как уебищно выглядит, назад в нулевые. WPF as it is

А при чём здесь WPF и автор-долбоеб из нулевых? Или ты когда пиксельную игру видишь, которая сделана с использованием юнити, тоже начинаешь кукарекать про то что юнити говно, игнорируя качество графики в каком-нибудь Escape from Tarkov?
Аноним 06/06/20 Суб 03:59:10 1714767981
>>1714675
Проиграл с этой аналитики. Ладно еще тайпскрипт куда не шло, потому что жопаскрипт монополист в вебе. Но сравнивать Котлин, который поддерживается говнокомпанией, которая уже забила на его развитие, а также жабу, которая погрязла в легаси и уже несколько лет не развивается с C# и .NET, который поддерживается IT гигантом и постоянно дополняется новыми возможностями, а также улучшается. Это либо быть умственно отсталым, либо совсем не понимать то, о чём говорить и судить обо всём по постам с двача.
Аноним 06/06/20 Суб 10:15:18 1714813982
В общем, сделал простенькое консольное приложение для просмотра сущностей в БД. Воооот. Само приложение - бесконечный цикл вида: считать ввод, проверить команду - выполнить команду. Вооот. И тут такое дело, при нажатии Ctrl+C программа завершается с ошибкой. Вооооот. Оно как бы не критично, но хотелось бы чтобы этого не было. Я конечно могу запихнуть все в блок try-catch, но мне не нравится так делать. Да и читал что оно нужно для обработок конкретных ошибок, либо какого-нибудь логгирования. Воооооооооот. В общем, как правильно завершать программу, чтобы ошибка не вываливалась в консоль, если пользователю скажем надоест ждать пока его запрос на кучу строк из таблицы будет выводиться в консоль и он ебнет ctrl+c,
Аноним 06/06/20 Суб 11:01:23 1714823983
>>1714767
>Котлин
>говнокомпания
>забила на его развитие
> C# и .NET, который поддерживается IT гигантом
фанаты мелкософта в треде?
парень, я тебе не хочу ничего доказывать, но всю ты пыль, что описал - никак не относиться к созданию и поддержке интерпрайз приложений. Рыночек решает - кому на чем писать. Рыночек сейчас стоит спиной к .NET- и вся работа сейчас - это легаси. Не спорю, возможно запускают новые проекты - у кого на галере сфежаки хотя бы от 2.2 версии - пишите, интересно почитать, что за стэк и какая сфера. У нас же (как я писал раньше) все .NET проекты уже упали с саппорта
Аноним 06/06/20 Суб 12:36:22 1714866984
>>1714823
Проснись, сычуша, ты серишь. На .NET вакансий всего в 2 раза меньше чем на твою жабу. При этом около 50% из вакансий ориентированы на .NET Core, в то время как жаба это в 99% случаев говноспринг который уже задыхается от легасиговна.
Аноним 06/06/20 Суб 13:14:31 1714896985
>>1714866
причем тут Java, если я писал выше, что с .NET пересел на React? Я еще раз повторяю, что никого ни в чем не убеждаю. Гуглите вакансии и аналируйте рынок. У меня все.
Аноним 06/06/20 Суб 13:32:15 1714903986
Я тупой и не въезжаю в асинхронность и многопоточность.
Вот смотрите есть метод:

public async Task<int> Foo(){
int a = 0;
while(true){
await Task.Yield();
a++;
if(a>100) break;
}
return a;
}

Вот.
Я вызываю эту функцию в двух местах.
Что там происходить-то будет? Сколько итераций будет сделано? И вообще. Просто мне вот кажется, что должно быть как-то так: a будет локальной копией и они никак не будут друг на друга влиять, будет просто 100 итераций. Вот. Но в голове все равно какая-то тупая мысль, что на самом деле это будет одна и та же функция и количество итераций - хуй пойми каким будет. Вот.
В общем, где почитать про это? Ну или объясните сами, если не сложно.
Аноним 06/06/20 Суб 13:45:55 1714913987
>>1714813
> при нажатии Ctrl+C
Стандартная комбинация для завершения консольного приложения
>завершается с ошибкой
Отсюда не видно что за ошибка. Воооооот.
>как правильно завершать программу, чтобы ошибка не вываливалась в консоль
Запустить под отладчиком. посмотреть что за ошибка и почему возникает, исправить.
>>1714903
Тут не будет никаких отличий от синхронного кода. Каждый метод у тебя работает только со своими локальными переменными. Вооооооот.

Аноним 06/06/20 Суб 14:06:48 1714920988
>>1714913
> Отсюда не видно что за ошибка.
OperationCanceledException. Как я понимаю дело в том, что я ожидаю результата выполнения. Скажем запрашиваю данные из БД или вывожу их в консоль. Воооооот. Ну и Ctrl+C вызывает это самое исключение. А что делать чтобы его не было я не знаю((( Я пробовал и передавать в таск CancellationToken и свой делать из CancellationTokenSource. Все равно если с помощью Ctrl+C останавливать работу в конце будет эксепшн.
Аноним 06/06/20 Суб 14:27:42 1714923989
>>1714920
Попробуй запустить в релизе, а не под дебагом.
Аноним 06/06/20 Суб 17:54:38 1715037990
>>1714896
Реакт это же фронт. Фронт на клиенте. А нет – бекенд. Ты, блядь, с базой из реакта работаешь? Авторизацию на стороне клиента проводишь? Охуеть
Аноним 06/06/20 Суб 19:47:12 1715120991
Аноним 06/06/20 Суб 19:56:33 1715124992
>>1715120
Все фреймворки жабаскрипта окуколжены, джанга питоновская тоже.
Аноним 06/06/20 Суб 19:59:49 1715125993
Без названия.jpg 15Кб, 474x260
474x260
>>1715037
>Реакт это же фронт. Фронт на клиенте. А нет – бекенд
Что за хуйню ты пишешь, дебил? Или у тебя клеймо решеток на жопе набито, что кроме .NET на других языках не пишешь?
Аноним 06/06/20 Суб 20:19:27 1715144994
image.png 19Кб, 651x189
651x189
Стоит вкатываться?
Аноним 06/06/20 Суб 20:27:26 1715152995
>>1715125
> кроме .NET на других языках не пишешь?
Пишу. Дарт, js. Ну и хули
Го? Элексир? Пхп? Джанго? Зачем?

>>1715144
Либо твой пользователь загружает бандл 4 мегабайта, либо ты с каждым пользователем поддерживаешь gRPC-коннект. Не вижу пути, по которому тут будут какие-то плюхи. Я рассчитывал, что сделают что-нибудь с xamarin, когда в роадмапе Blazor было заявлено, что в будущем можно будет делать мобилки. Но там такие оговорки, что интерфейс будет не с помощью HTML оформляться, а, значит, скорее всего все тот же XAML будет. Да и xamarin не спешат закапывать, ожидается его ребрендинг под названием MAUI
Аноним 06/06/20 Суб 21:21:25 1715191996
Есть проект С который ссылается на проект Б, который в свою очередь ссылается на проект А и Д.
При компиляции проекта С в папку к нему копируются файлы из проекта А и Д, хотя везде в ProjectReference Private="False" т.е чтобы не копировало файлы в проект.
Как сделать так чтобы не копировало? Это какая-то проблема зависимостей, если добавить проекты А и Д в С, то копироваться ничего не будет, но это делать надо вручную так как в интерфейсы они указаны как добавленные.
Ситуацию осложняет то что я пилю кучу микропроектов которые имеют как бы наследование друг друга и хочу чтобы все было чистенько, но все портит компиляция.
Я могу придумать костыли, но хотелось бы нормальное решение, а не очередной костыль за который стыдно.
Аноним 06/06/20 Суб 21:43:55 1715212997
>>1715152
нахуй ты мне тогда пишешь, что React, этожи фронт? Да, пересел с .NET на фронта (был фулстэком). Ну и хули? Не будет работы на React, пойду туда, какой стэк понравится.
Я замечаю, что писька .NET-чиков такая маленькая, что ее только зацепи, сразу начинается вонь на пол треда
Аноним 06/06/20 Суб 23:21:23 1715294998
Зачем нужна херня вида:
private Class _class;
public class { get => return _class; set => _class = value }

?
Аноним 07/06/20 Вск 01:20:44 1715360999
>>1715294
Чтобы даже тому, кто с сахарком не знаком все было сразу понятно.
Аноним 07/06/20 Вск 02:18:02 17153801000
>>1715294
Не нужна, достаточно просто:
public Class PropertyName {get; set;}
Аноним 07/06/20 Вск 05:58:24 17154181001
>>1715191
Private больше похоже будто надо поставить на true
Аноним 07/06/20 Вск 15:12:11 17156971002
В ходе написания своего рогалика для консольки возникла навязчивая идея сделать кроссплатформенную библиотеку консольного UI. Как минимум чтобы в линуксе и винде работало. Опасаюсь, что это кто-то уже делал. С другой стороны, если кто-то делал опенсорсное решение, я бы был рад спиздить его для своего рогалика. В общем, собственно вопрос: Есть ли открытые кроссплатформенные либы для консольного UI?
Аноним 07/06/20 Вск 16:07:46 17157441003
Господа программеры, как реализовать поиск минимального/максимального значения в определенном диапазоне индексов при использовании List?
Аноним 07/06/20 Вск 16:44:28 17158011004
Аноним 07/06/20 Вск 18:42:28 17158891005
>>1715744
Эм.. Ну так же как и при поиске во всем листе, только искать не во всем..
Аноним 07/06/20 Вск 19:47:32 17159591006
.png 21Кб, 512x515
512x515
Аноним 07/06/20 Вск 19:49:27 17159621007
image.png 3Кб, 485x26
485x26
Чуваки, мне надо чтобы бот заходил в стим аккаунт. Но проблема в том, что в библиотеке, которую нашёл, там есть код для входа без двухфакторной аутентификации стима, в итоге просто еррор получаю и хуй сосу, как её пройти можно?
https://github.com/SteamRE/SteamKit/blob/master/Samples/1.Logon/Program.cs

Аноним 07/06/20 Вск 19:50:29 17159631008
>>1715959
->
>>1715744
>в определенном диапазоне индексов
Хех мда.
Аноним 07/06/20 Вск 19:52:40 17159671009
.png 19Кб, 562x500
562x500
>>1715959
Блядь, я тупой. Там же диапазон индексов был. Пиздец.
>>1715963
Да я уже понял, блядь.
Аноним 07/06/20 Вск 20:07:06 17159801010
image.png 20Кб, 704x192
704x192
Анончики, есть винформа с кучей кнопок на ней, при нажатии на которые воспроизводятся определенные аудиофайлы, при этом один файл не должен прерывать воспроизведение другого, т.е. они должны играть параллельно, сделал на каждую кнопку пикрилвозможно хуево, но когда нажимаю с большой интенсивностью на кнопки, то спустя 30 сек аудиофайлы перестают воспроизводиться, как пофиксить?
Аноним 07/06/20 Вск 20:14:40 17159891011
>>1715980
делать код асинхронным
Аноним 07/06/20 Вск 20:56:43 17160321012
Посоветуйте книг по SQL? В шапке написано "любую", но ведь есть же какие-то фавориты?
Аноним 07/06/20 Вск 21:00:20 17160421013
>>1716032
Если ты шарпист, то тебе кроме того что такое ключи(чем первичные от внешних отличаются) и нормальные формы ничего особо знать не нужно. Ну и может быть как join делается и чем left от inner отличатся будет. В исключительном случае - как построить индекс. Все, блин.
Аноним 07/06/20 Вск 21:06:32 17160461014
>>1715989
Не совсем понимаю зачем он здесь и как его сюда присобачить
Аноним 07/06/20 Вск 21:10:27 17160511015
.png 10Кб, 522x216
522x216
Аноним 07/06/20 Вск 21:13:44 17160541016
Аноним 07/06/20 Вск 21:33:43 17160741017
>>1716054
Прост))) Разницы-то особой в данном случае не будет, что тут я запустил тред в котором открыл песенку и проиграл, что там я бы создал таск, который бы открыл песенку и проиграл бы ее.
А вообще что мой пример, что решение того анона - бред. По факту будет создана куча объектов плеера, если чел просто начнет щелкать как не в себя, будет жутких грохот и сожрано куча памяти и процессорных ресурсов. Я ХЗ просто что там за цель у чела, если какая-то программа-прикол, то и так сойдет, если там что-то типа: включил типа фоновый звук, потом голосовую дорожку диктора, потом звуковые эффекты по клику, то так делать не надо.
Аноним 07/06/20 Вск 21:44:17 17160861018
>>1716074
>цель
Сделать что-то типа пианино, где каждая клавиша - button(1,2,3,etc), клик на который триггерит проигрывание аудиофайла(ноты?)
>сожрано куча памяти и процессорных ресурсов
Мне ясно что так будет, я хз просто как сделать это по другому, чтобы при этом клавиши не прерывали звук друг друга при нажатии
Аноним 07/06/20 Вск 21:57:23 17161011019
>>1716086
делай await task.run на кнопке
Аноним 07/06/20 Вск 22:09:44 17161171020
>>1716074
> Разницы-то особой в данном случае не будет
Так у тебя безусловно отдельный поток создастся, а с Task у тебя будут использоваться уже существующие, первое нажатие скорее всего синхронно выполниться.
Аноним 07/06/20 Вск 23:10:29 17162031021
>>1715962
Всё, решил...
Только теперь непонятно как авторизоваться на сторонний сайт, через стим
Аноним 07/06/20 Вск 23:28:03 17162191022
>>1716086
Если это именно сорт оф пианино, то тебе надо бы не просто воспроизводить эти файлы, а производить операции со сложениями сигналов. Кстати в данном случае даже асинхронность не нужна будет, у тебя затухающие колебании, при нажатии клавиши ты просто производишь математические операции со звуковым буффером. Такие дела.
Аноним 08/06/20 Пнд 00:07:48 17162741023
>>1716203
>>1715962
Как понял, надо копать в сторону OAuth2, но пока нахожу только инфу как его подключить на сайт, а не как залогиниться.
всё ещё надеюсь на шарющего анона
Аноним 08/06/20 Пнд 06:29:59 17164411024
image.png 72Кб, 1347x718
1347x718
>>1713708
нит. я уже минимум восемь лет кодирую (из которых 5 - за зарплату)

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

Аноним 08/06/20 Пнд 06:38:52 17164431025
>>1714823
>фанаты мелкософта в треде?
ну хорошо, котлины, пыхапы - а что делать если нужно стартовать не очередной говномагазин в вебе, а серьезный корпоративный софт?

Который может:
- в базы данных
- в серьезные нагрузки сервера
- интеграцию с документооборотом (возможность из всевозможных доков и экселей собирать данные и выдавать в таком же виде)
- знать про облака для хранения больших массивов данных (сканов например)
- хорошо развертываться в пару кликов без установки ебучих фреймворков
- без велосипедства
Аноним 08/06/20 Пнд 06:39:37 17164441026
>>1716443
а к джаве религиозная ненависть так как всегда бесило
08/06/20 Пнд 08:53:52 17164781027
>>1714823
>фанаты мелкософта в треде?
>C#/Сишарп/.NET Тред
Аноним 08/06/20 Пнд 13:13:34 17166871028
Cап,
Хочу создать массив данных (data) из файла состоящего из 2 колонок (ссылка и подпись). У data конструктор принимает в себя 2 строки - ссылку и подпись. Как это сделать на лету?
Код - https://codeshare.io/21Wqz0
Аноним 08/06/20 Пнд 13:36:17 17166971029
>>1716687
Зааускаешь поток который будет считывать строки из файла и добавлячть их в ИммутаблДиктионери. Запускаешь два потока на чтение файла, один будет считывать от начала строки до первого пробела (разделителя колонок), другой от конца строки и до пробела (разделителя колонок). После считывания они добавляют результат в массив. Получится два ассоциативных массива, по одному на колонку, индексы в которых будут означать номера строк.
Если файл большой, то можно разбить его на нексолько частей и обрабатывать их отдельно, а потом сджоинить массивы.
Также можно преобразовать два массива в словарь, но по мне так это лишнее действие.
Аноним 08/06/20 Пнд 13:56:59 17167051030
>>1716697
>Два потока на чтение строк из словаря

Фикс.
Аноним 08/06/20 Пнд 15:41:54 17167861031
>>1716697
> Запускаешь два потока
Зойчем? Если один поток нашел раделитель, смысл второму делать ту же работу но сдругого конца?
Аноним 08/06/20 Пнд 15:52:11 17167991032
>>1716786
Синхронизация потоков и передача информации о нахождении разделителя займет больше ресурсов и времени, чем поиск этого разделителя каждым потоком. Всё равно каждому потоку нужно будет доходить до этого разделителя.
Аноним 08/06/20 Пнд 19:36:29 17170191033
>>1716799
Нет. Не надо ничего синхронизировать. Один поток справится за то же время что и 2. Потому что 2 потока будут делать у тебя в 2 раза больше работы.
Аноним 08/06/20 Пнд 19:56:47 17170361034
.png 42Кб, 608x620
608x620
.png 14Кб, 359x602
359x602
>>1716687
4 МБ файл с 300к строк меньше чем за секунду разбирает таким макаром. Если тебе нужно больше, то наверное придется хитрее поступать, но ты ничего про скорость не говорил, потому буду считать, что и так норм.
Аноним 08/06/20 Пнд 20:01:03 17170421035
>>1717036
Блядь, неправильно поля класса обозвал и перепутал ту порядок разбитых строк. И хуй с ним.
Аноним 08/06/20 Пнд 20:13:02 17170511036
.png 11Кб, 979x265
979x265
>>1716687
Да, для интереса, я чутка раздул файл. До 100МБ и почти 9 млн строк. ~7 секунд в релизе. Жрет памяти правда как не в себя(ну а хули, в лист-то пихаем, он достигает края и расширяется)
Аноним 08/06/20 Пнд 20:23:57 17170591037
>>1717036
Скинь код и файл, хочу проверить. По идее можно гораздо быстрее парсить.
Аноним 08/06/20 Пнд 20:31:57 17170681038
Аноним 08/06/20 Пнд 21:01:05 17171051039
>>1717019
Ты совсем тупенький? Два потока у меня будут независимы и разделят работу на 2.
Есть у тебя стрка вида

"аааааа<разделитель>ббббб"
Допустим перед и после разделителя в сумме 5к символов. Ты действильно настолько тупой и думаешь, что 1 поток справится с проходом 5к символов быстрее, чем 2 потока каждый из которых одновременно обходи (5к - длина разделителя + 1 (первый символ означающий начало разделителя)) / 2 символов?
Аноним 08/06/20 Пнд 21:05:53 17171111040
code.png 16Кб, 314x571
314x571
>>1717068
Как и предпологалось. Ничего особо не меняя, просто выкинув стрингбилдер (хз, что ты пытался им сделать), выкинув псевдоасинхронность (рили зачем? у тебя один потокок который все равно ожидает чтение), ну и главное заменив сплит на индексоф (у нас же гарантировано по условию что два столбца всегда будут) можно неплохо забустить.
Аноним 08/06/20 Пнд 21:07:49 17171151041
>>1717105
А может ты тупой? У анона 2 столбца, те разделитель один на строку. Так зачем его искать дважды, проходом с начала и с конца?
Аноним 08/06/20 Пнд 21:17:46 17171201042
>>1717036
>>1717051
Конечно, ты ведь зачем-то создаешь List<Data> в методе, хотя мог принимать из вызывающего кода ссылку на List и избавиться от .AddRange
И split лишний, лишнее создание строки вызовом sb.ToString().
Надо было работать с sb.GetChunks().Span
Аноним 08/06/20 Пнд 21:18:56 17171211043
>>1717115
Уебище тупорылое, задача не найти разделитель, а считать всё что находится слева от него и справа от него. Ты проходишь по массиву байт, который представляют из себя символы, до тех пор пока не встретишь байт который представляет из себя символ-разделитель.
Аноним 08/06/20 Пнд 21:28:24 17171251044
>>1717111
> хз, что ты пытался им сделать
Я не знаю кодировку предполагаемого файла, стрингбилдер умеет ее распознавать. Вдруг у анона там в КОИ-8 строки? Хуй знает.
> рили зачем? у тебя один потокок который все равно ожидает чтение
Это в данном случае. Я ХЗ куда тот анон это собирается впихивать. Может быть он решит 10 файлов одновременно читать. Лучше уж тогда будет асинхронно читать, а не создавать потоки под это дело.
> ну и главное заменив сплит на индексоф
Для удобочитаемости. Если разделителем будет два-три символа, придется либо переменную с его размером вводить, либо магические числа в коде использовать.
Ну и да, я вроде не говорил что я оптимальное в плане перформанса решение сделал, просто оно довольно приемлемое и быстрее, чем считать весь файл и пото уже его парсить.
Аноним 08/06/20 Пнд 21:31:01 17171261045
>>1717121
Ты реально дебил или не хочешь признавать обсер? Найти нужный символ легчайшая задача, парсинг такой простой штуки будет ио баундед.
Аноним 09/06/20 Втр 01:27:11 17172251046
>>1717068
>мну развели на бесплатную работу(((
ты скилл так качаешь

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

-мимокрок
Аноним 09/06/20 Втр 09:53:59 17173381047
>>1714248
конечно, XAML тому подтверждение. Хотели сделать под десктоп и мобайл один синтаксис на XML, получилось говно говна, в котором и по сей день некоторые плавают
>>1714765
>кукарекать
батя твой кукарекает, чухан. И я не говорил, что автор долбоеб, я говорю, что вьюшка выглядит, как в нулевых на Win98. На XAML можно запилить охуенный GUI, но не тому, кто кидал пику. Про юнити, хуюнити можешь мне не писать, на этом говне не пишу и не играю
Аноним 09/06/20 Втр 20:35:36 17179961048
Анон, считается ли использование partial - чем-то плохим? Просто блин, у меня файлик с одним служебным классом раздулся до 3к строк кода, и как порезать его на отдельные классы я хз, потому что там, по сути один публичный метод: HandleMessage(Message message, TcpClient cleint) и куча методов для обработки конкретных сообщений. Конечно, в теории можно как-то в стратегии вынести это все дело, но я ХЗ как тогда эти стратегии передавать этому классу, сейчас-то более-менее все просто-понятно. Вот. И тут я глянул исходники .net core, так у них там куча partial-классов. Вот. Но на работе я ни разу не встречал в коде чтобы так делали. Вот и не знаю, надо ли оно, если я не в майкрософте работаю.
Аноним 09/06/20 Втр 20:53:16 17180221049
>>1717996
Плохим считается любой костыль, который просто откладывает решение проблемы до тех пор, пока вся конструкция из костылей окончательно не развалиться и не сможет решить очередную возникшую проблему.
В данном случае partial это и есть тот самый костыль.
Если использовать его уместно, а это - для того чтобы разделить автогенерируемый код от написанного вручную, либо для того чтобы над классом могли работать несколько человек. То ничего плохого в этом нет.
Аноним 09/06/20 Втр 21:42:21 17180531050
Как в консоле сделать "декорирование" текста. Подчеркивания всякие, жирные буквы и это вот все. Еще интересно как курсор отлавливать и его клики. Просто я видел приложения, которые все это умеют в виндовой консоли и они тоже на .net'е написаны были, но когда гуглил почему-то везде пишут что это невозможно в виндовой консоли. Хотя опять же, я видел как в консольке какой-то магией умудрялись картинку отрисовывать и даже не из ASCII и игрой с консольными цветами, а вполне обычную такую картинку. Что это за магия и как такому же научиться?
Аноним 09/06/20 Втр 22:01:56 17180831051
Аноним 09/06/20 Втр 23:32:55 17181591052
>>1718083
Ну и где там как сделать подчеркивание в консолечке? Я в упор не вижу.
Аноним 09/06/20 Втр 23:51:01 17181681053
>>1718159
using System;
using System.Runtime.InteropServices;

class Program
{
const int STD_OUTPUT_HANDLE = -11;
const uint ENABLE_VIRTUAL_TERMINAL_PROCESSING = 4;

[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr GetStdHandle(int nStdHandle);

[DllImport("kernel32.dll")]
static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode);

[DllImport("kernel32.dll")]
static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);

static void Main()
{
var handle = GetStdHandle(STD_OUTPUT_HANDLE);
uint mode;
GetConsoleMode(handle, out mode);
mode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
SetConsoleMode(handle, mode);

const string UNDERLINE = "\x1B[4m";
const string RESET = "\x1B[0m";
Console.WriteLine("Some " + UNDERLINE + "underlined" + RESET + " text");
}
}
Аноним 10/06/20 Срд 08:48:20 17184221054
>>1717111
Если при парсинге нужна скорость и низкое потребление памяти, гугли System.IO.Pipelines и Span<T>.
Аноним 10/06/20 Срд 10:39:29 17184571055
>>1717225
>ты скилл так качаешь
у меня 12 тасков на моем проекте, хочешь свои скиллы прокачать? Эстимейт каждого - 3-4 часа, дедлайн - конец недели. ЗП мне, таски тебе - идет?
Аноним 10/06/20 Срд 11:00:47 17184671056
Аноним 10/06/20 Срд 11:54:55 17184941057
>>1718467
нужно написать для core 3.0 web api генератор refresh токенов. JwtBeawer - валидирует access токены. Методы контроллера покрыты атрибутом [Authorize]. Тригер метода на выдачу Refresh должен срабатывать после получение не валидного access с expire time 60m.
Выложи решение на гитхаб, если будет норм - скину еще
Аноним 10/06/20 Срд 12:27:34 17185371058
>>1718494
if(DataTime.Now > token.CreationTime.AddMinutes(60))
RefreshToken();
Не благодари
Аноним 10/06/20 Срд 12:29:11 17185421059
>>1718494
Сделаю за 4 часа, час — $50. Тесты пишу, код на модули разбиваю, коммиты делаю атомарными. Аванс — 50%. По рукам?
Аноним 10/06/20 Срд 13:09:30 17186021060
>>1718537
>DataTime.Now
ясно, иди нахуй
>>1718542
>Аванс — 50%
и ты туда же

Кто там хотел таски поклепать - мне нужен тестовый проект с контроллерами, где по роутингу идет редирект от контроллера получающего упавший access, до реализации refresher-a. Refresh пишите какой угодно, все равно свои клеимсы буду пихать.
Аноним 10/06/20 Срд 14:01:30 17186261061
>>1718602
Да пошел-ка ты нахуй с такими запросами бесплатной рабочей силы!
Аноним 10/06/20 Срд 14:22:24 17186421062
>>1718542
То чувство, когда получаешь 4,4 доллара за час
Аноним 10/06/20 Срд 14:41:09 17186611063
Аноним 10/06/20 Срд 14:41:34 17186621064
>>1718626
ты охуел? >>1717225 скиллы качает за бесплатно, чем ты лучше?
>>1718642
да он пиздабол, какие $50/h. Сидит на Upwork-e и пердит за $5 конкурируя с индусами
Аноним 10/06/20 Срд 14:46:38 17186661065
>>1718662
Тебе нужен результат работы того, кто качает скиллы, или того, кто знает что и как надо сделать, чтобы это потом работало и было сопровождаемо?
Аноним 10/06/20 Срд 14:53:19 17186751066
>>1718666
а это я после получения результата оценю. Не думаю, что увижу что то хуже кода джуна. Пусть на аутентификации скилы покачают, а я таск закрою (может быть)
Аноним 10/06/20 Срд 14:57:04 17186801067
>>1718675
Тогда удачи. Пиши, если передумаешь.
Аноним 10/06/20 Срд 15:07:58 17186941068
>>1718662
Ты из ДС? Соснешь мне хуй? Как раз скилл минета покачаешь за бесплатно
Аноним 10/06/20 Срд 15:14:23 17186991069
>>1718680
$50/час - у меня индус будет за $5 работать, если буду все таски свои плавить ему
Аноним 10/06/20 Срд 15:20:20 17187111070
>>1718699
Так почему же таска твоя все еще не сделана индусом?
Аноним 10/06/20 Срд 15:26:07 17187191071
>>1718711
влень искать карманного индуса, который будет делать качественно работу. А тут на халяву готовы таски лепить. Что я теряю? Одни профитаны
Аноним 10/06/20 Срд 15:38:18 17187351072
>>1718719
Деловой подход. Мы бы с тобой сработались.
Аноним 10/06/20 Срд 16:05:46 17187671073
>>1718735
я предлогал датчанину сапортить его проект на ASP.NET MVC5 + jquery/vanilla за половину от его рейта ($40/h), а ты тут за 50 толкаешь
Аноним 10/06/20 Срд 16:17:14 17187741074
>>1718767
Ну, я же не виноват, что ты себя так низко оцениваешь. Кстати, какая-то хуйня с твоим датчанином. $40/в час это какое-то дно для Дании (если он оттуда).
Аноним 10/06/20 Срд 16:38:00 17187821075
>>1718774
3.2k+ за ремоут мне бы хватило с головой. По поводу Дании - говорит нормальный рейт. Он себя называет фрилансером, хотя за всю жизнь (7 лет пишет) работал только на 3 проектах. И еще если его словят за передачу таска - йому пiзда.
По его словам - у них внутреняя мирка с закрытым рыночком. Т.е. если у них будет открыта вакансия (в Аартусе к примеру) и я им кину CV на английском, то с вероятностью в 95%, что меня пошлют нахуй.
Вообще он говорит, что с "нашим" братом связываются только жлобы. Why i'm not surprised?
Аноним 10/06/20 Срд 22:32:27 17189781076
Анон, смотри, я балуюсь с консолькой. В общем в чем суть. Меня не устраивает скорость вывода с помощью Console.Write(). Если я использую его для рендера своей хуйни, то оно работает дюже медленно. При этом я заметил, что Console.WriteLine() работает быстрее намного. Ну, я решил придумать что-то типа кадра, он генерируется, потом выводится с помощью Console.WriteLine(). Только вот беда, мне хочется чтобы у выводимой информации были цвета, но я не знаю, можно ли как-то с Console.WriteLine передать цвет отдельного символа и фона за ним, а если можно то как?
Аноним 11/06/20 Чтв 01:38:55 17190801077
image.png 431Кб, 600x313
600x313
>>1718642
РАБОТАЕШЬ В ОДНО ЛИЦО
@
ПИШЕШЬ С НУЛЯ КРИТИЧЕСКИ ВАЖНЫЙ ИНФРАСТРУКТУРНЫЙ СОФТ
@
УЖЕ ЗА ТРИДЦАТЬ
@
ПОЛУЧАЕШЬ 2.2$ ЗА ЧАС
@
НЕТ ДЕНЕГ НА РЕЛОКАЦИЮ ИЗ ДЫРЫ
@
ПО ЖИЗНИ СЫЧ НЕ УМЕЮЩИЙ СЕБЯ ПРОДАТЬ HR-МЕНЕДЖЕРАМ
@
ПОНИМАЕШЬ ЧТО ПОТРАЧЕНО



Аноним 11/06/20 Чтв 02:13:29 17190881078
image.png 52Кб, 1157x605
1157x605
Я пытаюсь запустить запустить аспнет сайт, и я не понимаю его иис от меня хочет
Аноним 11/06/20 Чтв 07:51:35 17191231079
>>1719088
там все написано в теле ошибки
Аноним 11/06/20 Чтв 09:50:28 17191501080
>>1719080
это у тебя $400 ЗП? Если это так и ты сам понимаешь, что делаешь важную работу - иди и требуй больше. Если нет - меняй работу.
Аноним 11/06/20 Чтв 10:25:35 17191681081
>>1719150
Два чая и печеньки этому капиталисту.
Аноним 11/06/20 Чтв 10:48:30 17191831082
Аноним 11/06/20 Чтв 13:20:44 17192531083
>>1719080
> РАБОТАЕШЬ В ОДНО ЛИЦО
Сейм. Со старта в одного. Слова аджайл и скрам, а также софт-скиллы вызывают ночные кошмары и мочеиспускание
4,4$-24лвл-кун
Аноним 11/06/20 Чтв 15:12:35 17194311084
>>1719123
да я вижу но я не понимаю что от меня хотят, у меня в вебконфиге даже нет таких строк
Аноним 11/06/20 Чтв 15:59:53 17195471085
>>1719431
Файл конфигурации - открой файл, посмотри на 67 строчку (вангую, что тэг не закрыт)
Если нет такого - удали webconfig и посмотри - измениться ли ошибка
Аноним 11/06/20 Чтв 18:27:29 17197041086
>>1719547
ладно, если кому-то надо будет, у меня асп нет было херово поставлен, после переустановки все заработало

Аноним 11/06/20 Чтв 18:49:59 17197331087
>>1719704
НАСТАЛО ВРЕМЯ ПЕРЕУСТАНАВЛИВАТЬ ШИНДОВС ДОТНЕТ СДК
Аноним 11/06/20 Чтв 21:11:33 17198851088
.png 22Кб, 624x967
624x967
.png 5Кб, 330x195
330x195
Смотрите. Я накидал свой линкованый лист. Вот.
Но есть одно но, я могу такую вот херабору как на первом скрине провести и оно не упадет с ошибкой и если я не прирываю цикл, оно не будет останавливаться. В M$ реализациях вылетает исключение, что коллекция была изменена. Как добиться такого же поведения? Ну, т.е. я не совсем понимаю, где я должен кидать исключение и как смотреть что моя хрень изменяется.
Аноним 11/06/20 Чтв 22:07:05 17199211089
>>1719885
> В M$ реализациях
А какие бывают редакции?
Аноним 11/06/20 Чтв 22:29:45 17199441090
>>1719885
добавляешь в список поле version и увеличиваешь его при изменении листа, создаешь свой перечислитель, который принимает в качестве аргумента твой список, и у которого тоже будет поле version, которое при создании будет принимать значение переданного списка. Далее при перечислении будешь сравнивать version перечислителя с version листа и если они не равны, то бросать эксепшн.
Аноним 12/06/20 Птн 09:06:54 17201281091
>>1719944
Лойс этому подсматривателю в исходники.
Аноним 12/06/20 Птн 13:15:54 17203091092
Как конвертировать лист моих объектов (допустим ContactsData) в IDataView? Я гуглил, но микрософт предлагает какой то бред типо записать лист в файл и прочитать его как IDataView. По понятным причинам такое решение для меня не решение, возможно есть какой нибудь другой способ.
Аноним 12/06/20 Птн 13:27:01 17203191093
mlnet.jpg 130Кб, 1280x943
1280x943
Аноним 12/06/20 Птн 15:02:31 17203971094
Вот смотрите, у меня есть EF. Вот. Там табличка с юзерами все дела. У юзеров есть номер в диапазоне от 1 до 2^64. Вот. И у меня есть непреодалимое желание, чтобы в этих номерах не было дырок. Вот. Допустим мы удалили пользователя из БД, образовалась дырка. И я хочу чтобы при регистрации нового, я мог найти эту дырку и заменить его.
В чем суть, на SQL я могу сделать что-то типа

SELECT id + 1
FROM mytable mo
WHERE NOT EXISTS
(
SELECT NULL
FROM mytable mi
WHERE mi.id = mo.id + 1
)
ORDER BY
id
LIMIT 1

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

var used = db.Set<User>().Select(x=>x.Num).Sort();
if(!used.Any())
return 1;
uint missing = used.First();
foreach(var n in used.Skip(1))
{
if(++missing!=n)
break;
}
return missing;

То уже при 1к записей жрется куча памяти. Я конечно могу делать это же таким же SQL-запросом, либо вынести это в хранимку и ее вызывать, но что-то мне кажется, что тащить эту логику в само приложение - не лучшая затея.
Не бейте ногами, если для шарпа это какая-то ординарная ситуация и я задал тупой вопрос, я просто 5 лет был отвечающим исключительно за БД и все это вот, но в ходе оптимизаций и реорганизаций, теперь я стал фуллстек девелопером и нихуя не понимаю, как на ваших шарпах все это делается.
Аноним 12/06/20 Птн 15:49:34 17204421095
Попробуй, я под свою бд написал, так что на свои сущности и св-ва поменяй
var firstAvailableId = context
.Posts
.Select(p => p.ID + 1)
.Except(context.Posts.Select(p => p.ID))
.OrderBy(i => i)
.First();
Аноним 12/06/20 Птн 15:50:03 17204431096
Аноним 12/06/20 Птн 16:03:06 17204571097
>>1720397
Просто из интереса: а зачем тебе такая оптимизация? У тебя пропадает автоинкремент и увеличится время записи в базу. Или у тебя настолько частые операции записи и удаления пользователей, что ты точно знаешь, что 2ˆ64 на всех юзеров тебе точно не хватит? В противном случае это выглядит как лекарство, которое хуже болезни.
Аноним 12/06/20 Птн 16:43:50 17205071098
>>1720457
Ну смотри, я работаю в конторе которая умные штуки делает. Эти штуки надо регистрировать на сервере и периодически всякие данные читать и схоронять. Временами штуки выходят из строя и их нужно заменить. Вот. Заменять вручную ID не вариант, потому что пользователи ПО низкоквалифицированны, им надо чтобы включил и работало, а они только состояние отслеживали. Так вот, был случай когда из-за адреса таки кончились, правда тогда адресов было только 2^16, думали всем хватит, кек, конторка-то была маленькой, из-за этого куча хуйни произошла, было решено сначала до 32байт на адрес выделять, чтобы типа как ОйПи выглядело, но оказалось, что за 5 лет работы с высокими нагрузками и постоянными заменами устройств и этого может не хватать, тогда и прибегли к штуке с вклиниванием адреса для устройств, которые удалили. Вот. Недавно таки решили перейти на 64 битные адреса, но решили, что лучше таки этот костыль оставить, а то вдруг через 20 лет все наебнется, а все кодеры уже помрут к тому времени. Как-то так. Ну, т.е я понимаю, что 2^64 это типа ~18квинтилионов, что дохера, но хуй знает, может быть простоит эта вся хуйня еще 200 лет, устройства будут тот же протокол тащить(ну а хули, наша контора его в 90х придумала, а он все еще используется, кек, а TCP вообще из 80х и скорее всего пока интернет существует он будет основным протоколом), и по всей галактике расползутся, и тут все внезапно встанет. А так еще чутка поработает, пока до 128 бит не расширят адреса.
Просто все тут старые и решаем перестарховаться, потому что в прошлый раз когда новая партия устройств не могла зарегаться и нормально работать, т.к. адреса кончились, нас чуть не разогнали к хуям, потому что это был один из жирных заказчиков и как-бы планировалось долгое сотрудничество, а такие вот оказии как-то не хорошо влияют на репутацию.
Аноним 12/06/20 Птн 17:03:02 17205301099
>>1720397
Так добавляй используя тот sql который ты написал в примере "на sql я могу". В чем проблемв?
Аноним 12/06/20 Птн 17:06:00 17205331100
>>1720397
И зачем ты Skip(1) вызываешь, вместо обычного прохода по массиву? Очевидно, что он у тебя памяти жрать будет дохера, потому что каждый раз возвращает новую коллекцию - 1 элемент
Аноним 12/06/20 Птн 17:15:06 17205411101
>>1720533
>каждый раз возвращает новую коллекцию - 1 элемент
Чего? Skip создаст енумератор и форич пройдет по нему один раз. ХЗ что у него там память жрет, он конечно выгружает себе все Num из таблицы, но на 1к записей это все равно только ~8Кб.
Аноним 12/06/20 Птн 18:00:03 17205901102
>>1720541
В реальной таблице больше миллиона устройств и как я понимаю именно то что я выгружаю их как раз и жрет столько памяти. Просто, как я сказал уже, я на шарпы только недавно был пересажен, до этого я занимался исключительно SQL и сейчас просто пытаюсь разбираться как оно у вас устроено.
Аноним 12/06/20 Птн 18:26:51 17206051103
>>1720590
Хм..
>уже при 1к записей жрется куча памяти.
Ты вот это >>1720442 попробовал?
Аноним 12/06/20 Птн 18:35:52 17206101104
>>1720605
Пока не пробовал, потому что сегодня ж выходной, к прод базе доступа удаленно нет. В понедельник посмотрю.
Аноним 12/06/20 Птн 19:15:59 17206501105
Не совсем понимаю как работает TPL. С потоками-то все ясно, мы создали поток, в нем какой-то более-менее линейный алгоритм, он выполнился в отдельном потоке, я поймал результат и как-то его использую. А вот с TPL какие-то непонятки. Вот я сделал Таск, запихнул внутрь его еще пару которые жду await'ом, и почему-то у меня на самом верху вызова ожидание прерывается и идет дельше, а потом я ловлю эксепшн, дескать операция отменена. Я чет не догоняю, как оно задумано и должно работать.
Аноним 12/06/20 Птн 20:42:01 17207681106
image.png 25Кб, 1105x210
1105x210
Какого хуя name does not exist? Объявил же буквально на предыдущей строке.
Аноним 12/06/20 Птн 20:47:21 17207771107
>>1720768
Потому что ты еблан, пытается заполнить словарь в области описания класса?
Что, блядь, тебе мещало так сделать:
Dictionary<byte, string> items = new Dictionary<byte, string>
{
{1, "sword"},
{2, "zalupa"},
{3, "hui"}
}
Или вынести это в метод, скажем InitItemList()?
Нет, блядь, ты какую-то хуйню пишешь.
Аноним 12/06/20 Птн 22:37:18 17209371108
>>1720650
Ну ебанарот, ну записли минимальный код, воспроизводящий проблнмк, да напиши, что ты ожидаешь, а что есть на самом деле. Очень охуенно с твоих словесных описаний пытаться понять, что у тебя там за код.
Аноним 12/06/20 Птн 23:05:36 17209781109
>>1720650
Читай CLR via С# и его раздел про многопоточность. Если кратко описать различия, то таск это более интеллектуальный тред, который самостоятельно контролирует распределение процессорного времени и избавляет тебя от части работы по синхронизации потоков.
Аноним 12/06/20 Птн 23:12:27 17209871110
.png 16Кб, 744x357
744x357
.png 23Кб, 681x606
681x606
>>1720937
Ну вот. После того как я получаю данные от клиента, ожидание в методе ProcessSession почему-то оканчивается и начинается двигаться дальше к остановке сессии, потом мой делегат пытается отправить ответ киленту, и выскакивает ObjectDisposedException. Вооооот. Даааа.
Я понимаю, что скорее всего дело в том, что я еблан и пытаюсь ждать void, а это нельзя, но а как тогда сделать? Ну, а чего я хочу? Я хочу вынсти обработку соединения клиента в делегат, чтобы логику разную логику можно было реализовать не особо меняя мой класс. Вот. Да.
Аноним 12/06/20 Птн 23:23:20 17209981111
>>1720987
Таки да. Заменил обработчик с Action<Session> на Func<Session, Task> и заработало как надо. Другое дело, что как-то все равно непонятно. Тупенький я, наверное.
Аноним 13/06/20 Суб 00:30:27 17210511112
>>1720998
>>1720998
Task.Run выполняется моментально, так как внутри его делегата асинхронная функция, которая просто запускается и возвращает контроль.
Заменив на Func<Session, Task> у тебя лямбда выражение стало неявно возвращать Task (если добавить фигурные скобки твоему Task.Run, то у тебя опять всё наебнется), поэтому await срабатывает именно на этот Task.
Но вообще это говнокод, так как Task.Run в данном случае не нужен, сразу пиши функцию которую ты зачем то засунул в этот Task.Run
Аноним 13/06/20 Суб 01:21:51 17210761113
.png 12Кб, 645x253
645x253
.png 22Кб, 630x590
630x590
>>1721051
Ну, я засунул ее в Task.Run, потому что как раз думал вот что: Task.Run возвращает Task -> обернув асинхронную функцию, я все еще смогу ее ждать. Оказывается не смогу. Вот. Да.
Сейчас оно так выглядит.
Заодно проверил. Вроде 1к клиентов подключились, отправили, получили ответ и отключились нормально. Теперь надо придумать, как какую-то более сложную обработку делать, скажем собрать из пришедших данных HTTP пакет и обработать запрос.
Аноним 13/06/20 Суб 05:09:48 17211381114
>>1721076
>обернув асинхронную функцию, я все еще смогу ее ждать
Для таких задач есть специальный класс - TaskCompletionSource, но это уже будет выглядеть костыльно и применять его нужно только там где без него действительно обойтись нельзя, например в какой-нибудь сложной цепочке вызовов, выполнение которой нужно ожидать в одном месте.
Аноним 13/06/20 Суб 11:02:52 17212401115
Можно ли как-нибудь с помощью рефлексии вызывать метод который принимает ref(in) struct чтобы не было боксинга при вызове при условии что тип через generic мы запрограммировать не можем, но на этапе компиляции нам о типе известно?
Вся суть чтобы не было боксинга, с боксингом это сделать легко.
Аноним 13/06/20 Суб 11:36:13 17212831116
>>1720987
>Вооооот. Даааа.
>>1721076
>Вот. Да.
>>1685235
>Вооот
>>1714813
>Воооот
>>1714920
>Воооооот
Пиздец ты ебан. Тебе даже отвечать не хочется.
Лямбды тоже можно делать асинхронными
Аноним 13/06/20 Суб 11:40:30 17212861117
>>1721240
>что тип через generic мы запрограммировать не можем, но на этапе компиляции нам о типе известно
С этого места по-подробнее
Аноним 13/06/20 Суб 11:44:52 17212881118
>>1721240
Создаешь делегат из нужного метода и вызываешь его передав структуру по ссылке
Аноним 13/06/20 Суб 11:46:23 17212901119
Аноним 13/06/20 Суб 11:47:30 17212911120
>>1721283
И потом писать await await await
Аноним 13/06/20 Суб 11:53:08 17212941121
Аноним 13/06/20 Суб 12:15:39 17213041122
12123.jpg 19Кб, 721x107
721x107
>>1721294
Каким будет порядок вывода в консоль?
Аноним 13/06/20 Суб 12:22:10 17213071123
>>1721304
Тебе асинк метод возвращает горячую таску, ты нахуя её оборачиваешь еще в таску? Если ты любитель делать Task<Task<Task<Task<Task<Task<Task<int>>>>>>>, о да придется писать await await await await await await, но умственно здоровые люди так не пишут.
Аноним 13/06/20 Суб 12:27:48 17213141124
>>1721283
Там не все посты мои. Дааааа.
> Лямбды тоже можно делать асинхронными
Я знаю.
Аноним 13/06/20 Суб 12:35:36 17213161125
Где устанавливать куки в разорпагесах? Сейчас я впендюрил это в миддлваре, это нормально?
Аноним 13/06/20 Суб 12:41:47 17213191126
>>1721286
Есть методы в классе которые принимают структуры которые реализует интерфейс, но принимают для оптимизации они через ключевое слово in. Интерфейс лишь нужен для intellisense, потому что если приводить структуру к нему будет боксинг, ну и для связывание только необходимых мне методов.
Так вот в методе мы заранее знаем какой тип он хочет принять, но я хочу вызывать этот метод не напрямую, а через рефлексию.
Вся соль в том что у меня есть список классов в которых есть куча таких вот методов и при загрузки программы они анализируются через рефлексию и происходит связывание между типом структуры и этим методами (которые как бы их обработчики) и таким образом я хочу в любом месте программы создать структуру, затем вызвать на ней extension метод, который найдет все обработчики для этой структуры и вызовет для них методы.

Будет что-то типа new MyStruct(123).Send();
И тут все обработчики этой структуры вызовутся, при том я нигде не должен явно писать что за обработчики, просто пиши методы что принимают такие структуры, а оно само все будет работать.

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

>>1721288
>>1721290
Там Generic используется, а я на этапе связывания имеют Type структуры в этом и проблема. Без понятия как на этом создать делегат нужного мне метода.

Аноним 13/06/20 Суб 12:49:03 17213221127
>>1721307
Конечно, все тупенькие, один ты умный. Даже в документации пишут:
>It is often useful to be able to return a Task from a Task<TResult>, where the inner Task represents work done as part of the outer Task<TResult>.
Но куда им, дуракам пишущим документации, до великого знатока с двача, верно?
Аноним 13/06/20 Суб 12:53:13 17213241128
>>1721319
> все это работало на стэке и не нагружало GC.
Смешно читать такое, когда речь о рефлексии идёт. Ты понимаешь, что боксинг в данном случае вызовет меньшую нагрузку, чем ебля с передачей его по ссылке через рефлексию для избежания этого боксинга?
Аноним 13/06/20 Суб 12:59:34 17213311129
>>1721322
Так ведь
>It is often useful to be able to
в чем у тебя useful? То что ты able to, не значит что тебе надо так делать. Напомню, на случай, если у тебя паамять хлебушка, то ты сказал буд-то при использовании асинхронных лямбд, надо будет писать цепочку эветов, что не так. ХЗ с чем ты спорить пытаешься.
>Лямбды тоже можно делать асинхронными
>И потом писать await await await
>Нет
Аноним 13/06/20 Суб 13:03:37 17213341130
>>1721324
Это нагрузка будет только при загрузке приложения, я же хочу получить не супер мега быструю загрузку, а быструю работу приложения.
У меня уже есть рабочее приложение с боксингом, но хочется сделать все по красоте иначе смысл в структурах теряется.
А я хочу написать event ориентированную систему которую не стыдно показать кому-то другому.
Аноним 13/06/20 Суб 13:27:21 17213511131
>>1721331
>в чем у тебя useful?

Где у меня, долбоеб? Ты настолько отбитый, что в примере c foo и bar начинаешь спрашивать в чём польза этих классов?
>То что ты able to, не значит что тебе надо так делать.
Ты хоть сам понял что высрал? Если "ты можешь и это полезно/удобно, то это не значит, что надо так делать".
Не перестаю проигрывать с этих жалких попыток оправдаться. И написал я про await await чтобы указать на неочевидное поведение, которое можно встретить при использовании асинхронных функций в лямбда-выражениях, но закомплексованный долбоеб конечно же принял всё на свой счет и начал нести бред.
> то ты сказал буд-то при использовании асинхронных лямбд, надо будет писать цепочку эветов, что не так.
Ну так покажи мне, как в этом >>1721304 примере обойтись без await await или .Unwarp(), скотина тупорылая.
Аноним 13/06/20 Суб 13:42:24 17213611132
>>1721334
>Это нагрузка будет только при загрузке приложения
А боксинг у тебя на всей работе приложения отразится что ли? Ну создаст он у тебя на старте несколько объектов, потом gc их соберет. В чём проблема? Или у тебя приложение работает пару секунд?
Аноним 13/06/20 Суб 14:24:15 17213801133
Кстати, если не сложно, можете указать на ошибочки и объяснить, почему подключение и обработка работает довольно быстро, а вот когда клиент дисконнектится - уже не так быстро и как сделать это быстрее? Ну и вообще, если не сложно, то объясните, что я делаю не так и как надо.
https://github.com/BakaVaka/TcpLib/tree/master/src
Аноним 13/06/20 Суб 15:58:59 17214761134
>>1721380
Опять этот злоебучий аваилабл.
>Возвращает значение, указывающее количество полученных из сети и доступных для чтения данных.
В реальной жизни тебе будут прилетать сообщения не всегда целиком за раз - т.е. ты прочитал все из стрима и у тебя аваилабл = 0, но часть сообщения еще летит по проводам.
Аноним 13/06/20 Суб 16:18:28 17214871135
>>1721361
Боксинг происходит на моменте вызова события, т.е как раз во время работы приложения, а не на его старте.
Вроде бы нашел решение через создание generic делегата, которые оказывается дает обычный Delegate, который затем надо приводить к generic типу и тогда боксинга не будет.

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

Конечно я уже придумал грязный хак, тупо хранить в словаре по имени названия структур которые реализуют нужный мне интерфейс, а затем проверять по имени подходящая ли структура в том методе что я исследую, там различие только в конце, у не in/ref структуры будет название с & на конце. Но это не совсем правильный метод, но рассмотрев абсолютно все свойства и методы, я на нашел другого способа.
Аноним 13/06/20 Суб 16:36:10 17214961136
>>1721476
А как надо, если я не знаю по какому протоколу работать будем?
Аноним 13/06/20 Суб 17:30:01 17215371137
>>1721487
Ну и зачем эта ебля, если ты можешь создать функцию, которая будет вызываться из конструктора структуры, которая будет принимать её в качестве параметра и обрабатывать всеми обработчиками для данной структуры.
Обработчики будешь прописывать в partial классе. Единственный минус в том, что при добавлении обработчика нужно будет явно прописывать его вызов в общей функции, которая этот обработчик вызывает.
Аноним 13/06/20 Суб 17:31:30 17215401138
>>1721487
>Боксинг происходит на моменте вызова события
Ну вот и получается, что у тебя рефлексия работает на протяжении всей работы приложения, а не только при запуске.
Аноним 13/06/20 Суб 17:43:41 17215631139
>>1721496
ДатаАвалибле дает тебе знать, готовы ли данные к прочтению, при этом оно может вызвать эксепшн, если удаленный хост внезапно закроет соединение.
>А как надо, если я не знаю по какому протоколу работать будем?
А как ты работать то собрался тогда? Наугад?
Аноним 13/06/20 Суб 18:08:41 17216071140
Где можно посмотреть небольшие проекты ASP с грамотной архитектурой? Хотелось бы увидеть пример того как строить авторизацию к различным ресурсам, чтобы минимизировать повторение кода. К примеру есть у меня класс пользователь и документ. Документ может быть публичным(доступен всем пользователям для чтения) или приватным(читать может только создатель). Пользователь может создавать документ и делать его публичным. Соответственно мне приходится в каждом методе контроллера писать проверки типа if document.IsPublic || document.Creator == user ... Хотелось бы как-то 1 раз разграничить доступ еще на этапе чтения данных из базы и не писать одно и то же раз за разом.
Аноним 13/06/20 Суб 18:26:44 17216341141
>>1721563
> ДатаАвалибле дает тебе знать, готовы ли данные к прочтению, при этом оно может вызвать эксепшн, если удаленный хост внезапно закроет соединение.
Ну, оберну чтение в try-сatch и как-то обработаю это дело же.
>>1721563
> А как ты работать то собрался тогда? Наугад?
Ну, дык вся логика обработки сообщений, по моей задумке, должна быть вынесена в ProcessSessionHandler, там уже пользователь библиотеки(я), может логику в соответствии с протоколом реализовывать. А TcpServer - Session это просто служебные классы, чтобы не писать каждый раз повторяющийся код. Вот, для примера, скажем мне сегодня нужно реализовать простую логику: клиент подключается, я его регистрирую и шлю ему пакет проверки соединения и потом просто повторяю проверку соедниения по таймеру, чтобы знать что клиент подключен и работает нормально, я просто пихаю эту логику в ProcessSessionHandler. А завтра я решаю что мне нужно HTTP сервер намутить и я не хочу тащить апач или что-то такое, я сделаю класс, который бы собирал из пришедших байтиков запрос, запихну экземпляр в ProcessSessionHandler, буду в цикле пихать в экземпляр класса байты, пока не получу нужный пакет или пока не истечет лимит, если будет валидный запрос - обработаю его и пошлю ответ, если нет - дропну соединение. В этом и задумка как-бы, чтобы сделать такую вот маленькую библиотечку, которая не зависит от протокола и чтобы можно было ее таскать с собой и каждый раз не реализовывать всю эту фигню.
Просто да, я понимаю, что никому нормальному оно не всралось, но я вот такой вот еблан. Изобретаю велосипед и есть готовая нормальная библиотека, для вот этого вот всего, чтобы просто можно было сделать класс который должен был бы парсить байтики, я бы пришедшие данные в него запихивал и когда получал сообщение - отдавал какую-то логику обработки реализовывал. Но я, как не гуглил, нашел только WatsonTCP и NetCoreServer. Watson не подошел потому что он почему-то не хотел вызывать событие получения сообщения, если это было долгосрочное подключение, и я вот шлю-шлю пакеты, а он это событие вызывает только после того как я дропаю соединение, хз, может быть я тупой и не понимаю что-то. А у NetCoreServer на тот момент были проблемы с 500+ соединениями, хотя заявлялось что 10к умеет держать, ну и тогда были утечки, но сейчас гуглил, вроде пофиксили.
Ай, ладно, моих скиллов все равно недостаточно, чтобы такое сделать и чтобы оно было не только мне удобно.
Аноним 13/06/20 Суб 22:31:42 17219461142
изображение.png 26Кб, 650x237
650x237
изображение.png 26Кб, 640x240
640x240
>>1721537
Затем что я хочу иметь чистый и красивый код.
Отдельно структуры которые являются способом передачи данных.
Отдельно обработчики где я регистрирую только класс (можно и не регать, просто я так ускоряю запуск) и там уже методы сами регистрируются без моего участия. Захотел удалил метод, захотел добавил и нигде ничего писать не нужно дополнительно.
Плюс дебажить такое удобно.
А еще можно через атрибуты отключать/подключать функционал.
Может чего еще придумаю на основе этого.


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

IdeaCall это то что я придумал.
Дальше тоже самое, но с боксингом, кстати удивительно но нагрузки на GC нет, я думал будет.
DirectCall это прямой вызов.
Delegate это вызов через созданные делегат напрямую.
EventCall это вызов через event EventHandler.
Ну и IdeaDynamicBoxingCall это вызов через DynamicInvoke, т.е через рефлексию.
Все это дело было с повторами в 100_000_000 раз.
Вызывался кстати метод которые суммировал из прокидываемой структуры поле, чтобы не было читинга
Аноним 14/06/20 Вск 10:25:09 17222051143
Аноним 14/06/20 Вск 15:02:10 17224321144
изображение.png 24Кб, 479x492
479x492
Зачем нужен шарп, если всё то же самое можно делать на крестах?
Аноним 14/06/20 Вск 15:03:30 17224361145
>>1722432
Зачем нужны кресты, если всё то же самое можно делать на шарпе?
Аноним 14/06/20 Вск 15:05:43 17224441146
>>1722436
Ты не можешь на шарпе контроллировать потребление ОЗУ программой.
Аноним 14/06/20 Вск 15:17:42 17224701147
.png 11Кб, 415x360
415x360
>>1722432
Ну, няша, ты что-то наговнокодил. Что тебе мешало так сделать?
А вообще, у шарпов синтаксис поприятнее, меня вот задалбывало то '->' то '.' использовать и держать в голове, по указателю я обращаюсь или не. Короче, у шарпа оно как-то все более структурированно, имеет какую-то общую фому, плюс глаз легче цепляеется за ключевые слова типа ref out и т.д. Опять же, можно очень сильно упрощать себе жизнь, ловя ошибки на этапе компиляции, вместо того чтобы потом кучу времени искать где же ты там изменил то что должно было быть неизменяемым.
Аноним 14/06/20 Вск 15:22:59 17224821148
>>1722444
Таки можешь, только вот обычно на шарпе это не особо надо.
Аноним 14/06/20 Вск 15:31:38 17225021149
>>1722444
Зато в шарпе можно бла-бла-бла. Вопрос поставлен некорректно.
Аноним 14/06/20 Вск 15:34:05 17225101150
>>1722470
С классом так не сделаешь.
Аноним 14/06/20 Вск 15:38:30 17225251151
изображение.png 17Кб, 436x389
436x389
Аноним 15/06/20 Пнд 03:47:41 17231611152
>>1719150
да, 400$. полугосконтора в мухосрани в области жизнеобеспечения города.

конечно потребую поднять зарплату, но сначала придется сделать, а то заявляют что все просто, а я просто не хочу работать, а на улице и так полно желающих
Аноним 15/06/20 Пнд 11:02:30 17233291153
>>1722444
Какие ваши юзкейсы для этого?
Аноним 15/06/20 Пнд 15:08:15 17236851154
1592222894279.png 38Кб, 860x596
860x596
>>1723329
Мм.. как жи хочеца контлоллировать.. опелативку.. скачать контлоль озу.. так сболщик мусола.. ето не то..
Аноним 15/06/20 Пнд 15:15:03 17236951155
приведите реальный юзсейс использования рефлекшена. Принцип я понимаю - по методанным получать инфу о типах. Но где это дерьмо используется? Это можно юзать разве что, если нет доступа к самой сборке. И с помощью этого дерьма можно стейт приложения менять? Типо в DI подсунуть другу реализацию?
Аноним 15/06/20 Пнд 17:41:57 17238891156
>>1723695
1. Для расширения приложения сторонними разработчиками. Создаешь определенные условия, которыми должно обладать расширение и подгружаешь дополнительный функционал без необходимости лезть в основной код.
2. Для работы фреймворков. Которые анализируют твой код при помощи рефлексии и дописывают комплексные части за тебя.
3. Для большей автоматизации. К примеру, у тебя есть меню и несколько его пунктов. Не используя рефлексию при добавлении нового пункта, тебе придется лезть в код и помимо описания нового элемента, добавлять его в общее меню, возможно меняя порядок отображения. При помощи рефлексии достаточно написать логику вида - если у класса в имени содержится MenuItem, значит берем его свойство Title и вставляем в отрисовку общего меню в порядке обозначенном его свойством OrdinalNumber. Те для добавления нового пункта, тебе нужно всего лишь создать новый класс с таким названием и задать необходимые свойства, лезть в основной код не нужно. Соблюдая как DI принцип, так и ОC принцип. При этом тратя меньше времени.
4. Для изоляции отдельных компонентов. Подгружаешь их в отдельный домен и работаешь с ними при помощи рефлексии, не опасаясь того, что они повлияют на работу твоегр приложения без твоего ведома.
5. В крайних случаях, можно использовать для запиливания костылей к уже скомпилированному коду, перекомпилировать который нет возможности.
Аноним 15/06/20 Пнд 19:33:40 17240021157
>>1723889
1. Типо есть в рантайме приложение, которое пердит
Аноним 15/06/20 Пнд 19:38:20 17240041158
У меня тут такое дело. Смотрите, пользователь регестрируется мое API должно отдать ему в случае успешной регистрации его ID, котороый клиентская часть будет использовать для доступа к личной информации. И я чет не совсем понимаю, как сделать это быстро. Типа если я делаю асинхронное сохранение в контроллере, то ID повторяться начинают. Если добавляю lock то ID не повторяются, но уже при 50 клиентах одновременно обратившихся начинается торможение. А как тогда правильно делать-то, если ID это не первичный ключ с автоинкрементом?
Аноним 15/06/20 Пнд 19:40:06 17240051159
>>1723889
>>1724002 >стучайно отправил
*хоститься и не лезть в основной код. Но этот код не появиться в сборке и приходиться компилировать отдельно и запускать эту свистелку-перделку уже под рантайм основного приложения. Вопрос - зочем? Ладно, если какой то крупный интерпрайз 24/7 крутиться в продакшене и к нему нет доступа, но если сама же команда разрабов будет пилить такие костыли на ходу, то запуск одного приложения + N костылей (который будет так же с зависимостями - это ад адский). Кстати да, когда по методанным получаешь дерево типов - можно ли делать Reference на них?
2. >дописывают комплексные части за тебя.
К примеру? Не понимаю, о чем речь
3. Почему не перекомпелировать?
4. Это более ли менее здраво
5. Тот же вопрос, что и 1,2.
Ок, есть охуенно огромная сборка, которая компилиться 2-3 часа, а у заказчика нет времени на это. Ты пишешь костыль, как основной модуль узнает, что есть такой вот приставленный костыль? Ведь в основном модуле этот функционал не заложен и на него нет ни эндпоинтов ни ссылок - вообще нихуя.
Аноним 15/06/20 Пнд 19:58:53 17240151160
>>1724004
откуда у тебя одновременных 50 клиентов то?
Аноним 15/06/20 Пнд 20:02:49 17240181161
>>1724015
Ну, я написал для тестирования на формочках простенький эмулятор клиентов. Вбиваешь адрес, количество клиентов, жмакаешь кнопочку, они стучаться и ответ сервера рисуют на своих вкладочках, плюс небольшой текстбокс с текстовым представлением ответа. Как-то так. Понимаю что не самый честный способ проверки.
Аноним 16/06/20 Втр 01:54:26 17243241162
Как быстро заставить себя писать на Шарпе? До этого писал пару проектов на Python, но щас дико прокрастинирую по поводу программирования в целом. А Шарп очень сильно бросает в тильте из-за ебучих конструкций язык.
Аноним 16/06/20 Втр 07:14:13 17243891163
>>1724324
Почитай еще теории. Бросает в тильт не из за корструкций, а из за того что ты динамикопетух, еще и пришел из языка-калькулятора для школьников/ученых. Это как с трехколесного велосипеда перепрыгнуть на мотоцикл и винить во всем конструкцию.
Если боишься, значит не знаешь, значит теорию нужно подтянуть. Я сам на шарп с жопаскрипта перешел, свободно писать начал только после трёх книг по шарпу и одной по ооп и паттернам проектирования.
Аноним 16/06/20 Втр 07:20:25 17243921164
>>1724324
Попробуй пару лет писать на си и плюсах, кек. Я вот когда на третьем курсе нам начали шарп давать, радугой кончал от того как там все удобненько. Да и какие конструкции там могут быть неудобными или неочивидными? Разве что лямбды попервой, но первое время можно без лямбд кодить, вынося все это в отдельные функции. Ну или ООП, но ООП это отдельная срань, которую нужно отдельно от шарпа учить.
Аноним 16/06/20 Втр 07:32:19 17243981165
>>1724018
я в смысле, откуда у тебя будет 50 одновременных клиентов?
Аноним 16/06/20 Втр 07:43:31 17244021166
>>1724398
Странный вопрос. Даже не знаю что ответить, лол.
Аноним 16/06/20 Втр 08:37:06 17244171167
>>1724402
у тебя там настолько большая штука что по 50 клиентов одновременно регистрируются ?
Аноним 16/06/20 Втр 09:10:19 17244261168
Аноним 16/06/20 Втр 11:40:34 17245151169
>>1724392
Мне не дается разделение программы на части. Типа, создаем сервис, к нему еще один сервис, а в результате все работает и легко модифицируемо
Что почитать, чтобы строить красивую архитектуру?

Работаю больше года, вроде руку набил, но уперся в потолок. Вместо совершенствования шарпа изучил js и vue на примитивном уровне, что позволяет писать простенькие spa, а сейчас понимаю, что хороший бекендер ценится больше, чем тяпляп фуллстек
Аноним 16/06/20 Втр 18:25:15 17249891170
>>1724417
Ну, я не знаю насколько она большая будет. Но считаю что надо заложить производительность на случай если такая ситуация произойдет.
Аноним 16/06/20 Втр 22:44:14 17252961171
Аноним 16/06/20 Втр 22:57:14 17253151172
>>1725296
статические переменные в абстрактном классе. Братишка - ты долбоеб, земля тебе пухом
Аноним 16/06/20 Втр 23:00:20 17253171173
>>1725315
Без статического модификатора тоже не работает
Аноним 16/06/20 Втр 23:06:32 17253241174
>>1725317
иди читай про абстрактные типы, васян
Аноним 16/06/20 Втр 23:09:51 17253271175
>>1725296
https://dotnetfiddle.net/tT47Dg
В общем, будь внимательнее. Во-первых, ты зачем-то пишешь BMW(...) : Auto(...), так оно никогда не работало. На метаните используется base.
Второе, ты используешь статичные свойства в абстрактном классе. Это значит что все наследники обращаясь к этим свойствам будут последнее присвоенное значение использовать. Если хотел чтобы они больше не изменялись, для этого есть readunly, если хотел чтобы они только внутри класса менялись, делаешь set приватным или протектным.
Ну и в общем с оформлением кода. Почитай гайдлайны, стиль кода это важная штука, особенно если ты скидываешь его другим людям. Создается впечатление, что тебе просто похуй.
Аноним 17/06/20 Срд 11:18:48 17258601176
>>1725324
Так я этим сейчас и занимаюсь
Аноним 29/06/20 Пнд 15:59:41 17369331177
>>1665549
> .NET5
Долбоёб, купи себе неткор.
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов