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

Ответить в тред Ответить в тред
Check this out!
C#/Сишарп/.NET Тред #28 /csharp/ Аноним 26/07/21 Пнд 14:50:33 21073111
image.png 101Кб, 941x1025
941x1025
image.png 3217Кб, 1920x1200
1920x1200
Прошлый тред: /pr/res/2096462.html

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

1. Ресурсы:
https://dotnet.microsoft.com/learn
https://docs.microsoft.com/ru-ru/dotnet/csharp/
https://metanit.com/

2. Онлайн-компиляторы:
https://ideone.com/
https://dotnetfiddle.net/

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

4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
C# активно развивается, недавно вышел .NET 5 и С# 9.0. Дотнет стал полностью опенсорсным и кроссплатформенным. В том же энтерпрайзе он очень даже востребован. Но в то же время стоит реально оценивать свои возможности и ресурсы. Основная часть вакансий приходится на ДС и ДС2. "Чистых" C#-разработчиков требуется буквально несколько десятков на всю страну. Вакансий в несколько раз меньше, чем в других направлениях. Порог входа намного выше, чем, например, в том же фронтенде.

5. Какую IDE выбрать?
Для Windows самым очевидным вариантом будет Visual Studio ( https://visualstudio.microsoft.com/ru/downloads/ ). Бесплатной Community-версии более, чем достаточно для большинства задач. Также есть версия для macOS.
Кроссплатформенный полуредактор/полуIDE VS Code ( https://code.visualstudio.com/ ).
Кроссплатформенный IDE Rider ( https://www.jetbrains.com/rider/ ).
Также существуют C#-плагины для Atom и Sublime Text, но функциональность там достаточно сильно урезана.

6. С# для мобильной разработки
https://dotnet.microsoft.com/apps/xamarin

Новые возможности C# 9.0: https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/

Текст шапки: https://pastebin.com/pbK8CGqw
Аноним 26/07/21 Пнд 14:51:37 21073142
image.png 2559Кб, 1920x1080
1920x1080
7. Что почитать?
The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.
C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price) — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь.
C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen) — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином.
C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari) — просто выжимка из книги сверху, можно всегда держать рукой.
Pro C# 8 with .NET Core 3 (Andrew Troelsen) — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.

8. Более хардкорный материал
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 структура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче всё, что нужно, чтобы вам перезвонили.

9. Литература по WPF
— Pro WPF 4.5 in C# (Matthew MacDonald)
— Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)

10. Литература по ASP.NET
— Pro ASP.NET Core 3 (Adam Freeman)
— Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)

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

12. Литература по мобильной разработке
— Creating Mobile Apps with Xamarin.Forms (Charles Petzold)
— Xamarin.Forms Projects (Johan Karlsson, Daniel Hindrikes)
— Mastering Xamarin.Forms (Ed Snider)

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

14. Разработка игр
Unity-тред в /gd/

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

16. Что еще нужно знать, чтобы взяли работать за еду?
— Базы данных — подойдет любая книга по MSSQL/MySQL/PostgreSQL. DDL, DML. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper.
— Системы контроля версий — обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote, diff, разрешение конфликтов.
— GitHub — issues, пулл-реквесты, теги, релизы, Actions.
— Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
— Структуры данных — связанные списки, деревья (бинарные, красно-чёрные, b-деревья), хеш-таблицы, графы.
— Если идти в веб — HTML, CSS, JavaScript, веб-сокеты, REST, JS-фреймворки (Angular, React, Vue).
— Паттерны проектирования, стиль кода, архитектура приложения, внедрение зависимостей, MVVM (если хочется в WPF), SOLID.

17. Я не умею читать, что посмотреть?
— C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
— Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
— Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
Аноним 26/07/21 Пнд 19:51:51 21077163
Каким надо быть чмоней, чтобы вкатываться в шарп с нуля? Я понимаю, если ты уже опытный погромист, и кабан требует. Но вот с нуля - это пиздец.

Вы понимаете, что никогда работу с нуля не найдете?
Аноним 26/07/21 Пнд 20:11:54 21077394
>>2107716
А куда идти? В С++ что ли?
Аноним 26/07/21 Пнд 20:19:00 21077505
>>2107716
Дурында, это как раз самый рабочий вариант. Раньше вкатывались на дельфи и вижуал бейсики, альтернативой были хардкорные кресты или зеленые ещё скрипты.
Хотя зумеры может и не оценят, или ты и есть он?
Аноним 26/07/21 Пнд 20:30:34 21077656
dn1.jpg 41Кб, 607x215
607x215
image.png 25Кб, 607x212
607x212
image.png 27Кб, 616x256
616x256
>>2107311 (OP)
Создал web проект и добавил в него функциональности (пик 1)
Запускаю
dotnet publish -r win-x64 -p:PublishSingleFile=true -p:PublishTrimmed=true
чтобы создать финальную версию сборки, которую можно будет прикладывать к резюме и выебываться, но оно мне создало почему-то 2 папки (bin и obj), в которых кучи файлов в папках Debug. Но я не хочу Debug, я хочу PublishSingleFile. Где мое приложение и как его сделать в нормальном виде?

По адресу bin\Debug\net5.0\win-x64\publish
содержится пик 2, это мое приложение? Но почему оно в папке Debug и состоит из множество файлов? Что за кучи файлов по соседству с папкой publish? Как вообще этот файловый ад понимать? Почему минимальное приложение создало 649 (пик 3) файлов?
Аноним 26/07/21 Пнд 22:20:00 21078897
Можно ли как-то через рефлексию получить общепринятое имя примитивного типа?
Допустим я вызываю typeof(int).Name. Как вместо Int32 получить int?
Аноним 26/07/21 Пнд 22:29:14 21078938
>>2107889
Вряд ли. Это же алиас и в рантайме, скорее всего, уже нету инфы, писал ты там инт или Инт32.
Посмотри ил код мне лень.
Ну или решение влоб - создай дикшинари со своими "общепринятыми"
Аноним 26/07/21 Пнд 22:40:33 21079039
Аноним 26/07/21 Пнд 23:09:35 210794710
>>2107750
Какой нахуй зумер. Я в профессии 7 лет. У нас вакансия в банке на джуна открывается раз в 2 года, блядь.
Аноним 26/07/21 Пнд 23:53:51 210799011
Поясните за
1. Performance паттерны - Spam<T>, Memory<T> - зачем, как и где? В прод лили такую хуету? Если да, то в каких местах и для чего? Примеры с Marshaling и Unmanagement кусками говна не интересны.
2. Что думаете за array of structs? У кого нибудь stackoverflow вылетало на этой хуйне? Поправьте, если не так - стэк распухает до тех пор, покуда живет контекст исполнения, т.к. если не использовать такого рода паттерны, хип покуда наполняется его чистит GC, что по вопросам стэка? Реально ли его вообще забить? Как стэк затригерить на SOF я так знаю, я про array of structs
Аноним 27/07/21 Втр 07:22:32 210806712
>>2107311 (OP)
Поделитесь опытом программирования на C# на маке. Это рабочий вариант, или только винда?
Аноним 27/07/21 Втр 09:37:41 210811813
>>2107990
1. Это не паттерны.
2. Ничего, это не паттерн. Нет. Нет. Ты наркоман.
Аноним 27/07/21 Втр 13:55:38 210833314
Работаю почти третий год. Вроде полет нормальный, зп стабильно растет. Недавно для интереса решил пройти тесты на знание синтакиса, уровень джун - ответил на 6 вопросов из 15.
Аноним 27/07/21 Втр 13:56:01 210833515
Начал читать Троеллсена и что-то он слишком непонятно пишет. К примеру, перечисляет модификаторы out, ref, param. Но не приводит примеров и из-за этого ничего не понятно куда и что писать. И так почти везде.
Пробовал читать Гриффитса, дак тот вообще может 10 страниц обсуждать применения null. На примеры тоже скупится. А ведь хороший пример мог бы заменить все это переливание из пустого в порожнее.
Может Прайса почитать? Но его тоже критикуют, что книга у него получилась не для профессионалов, да и новичкам не сильно подойдёт.
Аноним 27/07/21 Втр 14:12:24 210836416
>>2108333
Ну хоть бы чтоль вопросы показал. Может там какая-то херь типа __makeref.
Аноним 27/07/21 Втр 14:47:22 210838217
>>2108364
Дело не в вопсросах, а в том, чем я занят. За три года ни разу не пользовался структурами, может один раз массивами, это уже -2 правильных ответа. И вообще иногда кажется, что отвечать на вопросы для миддлов мне легче, чем для джунов.
Аноним 27/07/21 Втр 15:11:33 210840118
image.png 217Кб, 400x400
400x400
Аноним 27/07/21 Втр 18:30:35 210860919
Вот иногда я думаю, особенно начитавшись треда: Какой же я говнокодер.
А потом вижу код лида:
string BuildRequest(){
var s = "";
var str1 = "tag1:val1";
var str2 = "tag3:val2";
var str3 = "tag3:";
var str4 = "tag4:val4";
var str5 = "tag5:";
var str6 = "tag6:";
var str7 = "tag7:";
var str8 = "tag8:";
var str9 = "tag9:val9";
if( str1!= null)
{
s+=str1+";";
}
if( str2!= null )
{
s+=str2+";";
}
if( str3!= null )
{
s+=str1+";";
}
if( str4!= null )
{
s+=str4+";";
}
if( str5!= null)
{
s+=str5+";";
}
if( str6!= nul )
{
s+=str6+";";
}
if( str7!= null)
{
s+=str7+";"
}
if( str8!= null )
{
s+=str8+";";
}
if( str9!= null)
{
s+=str9+";";
}
return s;
}

И вот после этого мне как-то пофиг становится что тут про мой код говорят. Возникают совсем другие мысли, типа: БЕЖАТЬ!!!
Аноним 27/07/21 Втр 18:32:57 210861120
>>2108609
Я про то и говорю, что те, кто залезли в ит раньше - говнокодеры, но чтобы их не вытеснили реально талантливые ребята, они придумали собесы, чтобы никого больше не пустить в ит.
Аноним 27/07/21 Втр 18:48:50 210862821
>>2108335
Книги для кодеров всегда нужно воспринимать как справочник.
Писать код > читать про конструкции языка.
Це просто аксиома.

Сделай, допустим, ToDo-лист, очередной. Подумай, что тебе для этого нужно. Какие операции с ним ты хочешь делать добавить, удалить, отметить как выполненное. Выдели сущности задача. Какие структуры данных подойдут для решения список. Затем подумай над архитектурой приложения MVC. А книгу бери/гугли, когда не понимаешь что-то. Допустим, ты не знаешь как передать структуру в метод так, чтобы а - не создавать новую структуру; b - изменения в методе влияли на структуру которую ты передал в метод. Вот, ищешь это в книге/гугле. Применяешь, запоминаешь. И так вот пока не получишь готовый ToDo-лист.
Аноним 27/07/21 Втр 20:23:10 210877322
>>2108611
Где-то тут или в бугурт треде была прохладная про то как нулячего дрота наняли чтоб он на собесах своей алгохуитой валил всех
Аноним 27/07/21 Втр 20:24:51 210877623
>>2108609
Че это за хуйня? Оно же никогда не будет нулл, не? Может это какая-то автогенерируемая хуита?
Какая ЗП у тебя и лида, штоб понимать уровень организации?
Аноним 27/07/21 Втр 20:25:49 210878024
>>2107990
"Выгорел три раза пока читал"
Ни разу не использовал, мимовебмакака.
Аноним 27/07/21 Втр 20:41:57 210880125
>>2108118
>1. Это не паттерны.
посмотреть бы, как Span<T> в чистом виде используют. Пиши по существу или не пиши вообще
>>2108780
почему выгорел?
Сейчас все в вебе сидят десктоп и мобайл бляди лесом, разве не задумывался над оптимизациями? Никогда на High load проектах не был?
Аноним 27/07/21 Втр 20:44:26 210880226
>2106951
>2106952
аргументируйте
Аноним 27/07/21 Втр 20:45:06 210880427
Аноним 27/07/21 Втр 20:45:20 210880628
>>2108801
>Никогда на High load проектах не был?
Нет. Да и нахуй тебе твои спаны, если все равно, скорее всего, ботлнеком будут ИО операции.
Аноним 27/07/21 Втр 20:57:07 210882729
>>2108801
>Пиши по существу или не пиши вообще
Что тебе писать? Ты простых вещей не понимаешь.
Аноним 27/07/21 Втр 22:05:36 210894330
>>2108806
>ботлнеком будут ИО операции.
в рамках рантайма они нихуя не хавают, что за бред?
>>2108827
>простых вещей не понимаешь.
найс пердишь, двери только закрывай за собой
Аноним 27/07/21 Втр 22:30:14 210899431
>>2108776
> Может это какая-то автогенерируемая хуита?
Не
> Какая ЗП у тебя и лида, штоб понимать уровень организации?
У меня - 30к, у лида - 300к.
Аноним 27/07/21 Втр 22:32:38 210899832
>>2106952 →
Ну, значит кестрел пишут дегроды. Там lock постоянно используется.
Аноним 27/07/21 Втр 23:33:52 210909633
Еще вопросов по многопоточке закину знающему анону - IIS получил 10 (к примеру) реквестов по http, для них он выделил 10 потоков? И сколько потоков выделит CLR, чтобы захендлить эти 10 реквестов с IIS на обработку? Кто нибудь задумывался над таким?
Аноним 28/07/21 Срд 01:30:54 210913634
Аноним 28/07/21 Срд 08:42:46 210921835
Как работает эта строка?
- - - - - - - - -
public int X { get; } => Class.StaticMethod(A, B);
- - - - - - - - -
Свойство, доступное только для чтения, ... за что отвечает этот недокусок лямбды вконце?
Аноним 28/07/21 Срд 10:46:13 210927336
Аноним 28/07/21 Срд 11:21:03 210930237
>>2109273
Я понимаю, что в случае
int Prop => Func();
это просто сокращенная форма для
int Prop { get { return Func(); }; }
Но меня интересует пример, когда есть и скобки и этот кусок (нашел это в статье на хабре: https://habr.com/ru/post/338518/ (пятый по счету блок кода):
public int Number3 { get; } => MathFuncs.GetSumOf(Number1, Number2);
Не на МСДНе не в книжке подобного не встречал, поэтому и стало интересно - что это такое.
Аноним 28/07/21 Срд 13:24:23 210944838
image.png 24Кб, 993x229
993x229
Аноним 28/07/21 Срд 13:28:36 210945239
>>2109302
Ты мог просто посмотреть IL код и убедиться, что во всех случаях он одинаковый, даже не вникая в его суть.
Аноним 28/07/21 Срд 13:37:58 210945840
>>2109448
Спасибо большое, я не заметил этот комент
Аноним 28/07/21 Срд 15:20:46 210960641
Как наконей запомнить, нахрена нужны автосвойства? Чем они лучше полей?
Аноним 28/07/21 Срд 15:30:55 210963142
У меня есть класс, назовём его условно Indicator, этих Indicator'ов - ограниченный набор возможных значений.

И есть класс IndicatorProvider, в котором можно получать Indicator'ы. Можно получить полный список, можно получить фильтром по некоторым параметрам и ещё ряд специальных опций получения.

Соответственно, я хочу, что конструктор Indicator'а был доступен только IndicatorProvider'у, чтобы в IndicatorProvider'е создался необходимый набор Indicator'ов, и затем они могли быть получены только из IndicatorProvider'а, чтобы доступа к конструктору Indicator'а не было больше нигде в коде.

В С++ я мог бы легко это реализовать через friend class. Но как сделать в C#?

Я мог бы включить функционал IndicatorProvider'а в класс Indicator, но не хочу его загромождать, т.к. в IndicatorProvider'е далеко не один метод.

Я мог бы добавить исключение в конструктор Indicator'а, когда IndicatorProvider инициализирован, но это будет слишком криво обеспечивать, чтобы статический конструктор IndicatorProvider'а вызывался всегда строго раньше любого возможного вызова Indicator'а.

Я мог бы использовать рефлексию, но это слишком уродливо.
Аноним 28/07/21 Срд 17:24:06 210986843
изображение.png 12Кб, 274x315
274x315
Почему у объект-типа Manager в списке методов нет (кроме GetProgressReport) ещё и Lookup и GetYearsEmployed? Они ведь точно так же наследуются и у класса Manager есть, хоть и не переопределяются как GetProgressReport. Или только поэтому (нет переопределения) их и нет?
Аноним 28/07/21 Срд 17:24:29 210987244
>>2109606
>Как наконей запомнить, нахрена нужны автосвойства?
Запоминать не надо. ПРОСТО юзаешь их для всех пабликов.
>Чем они лучше полей?
Дают возможность наговнокодить. Плюс ченджтрекеры для ебучих декстопов.
Аноним 28/07/21 Срд 17:44:59 210991645
Аноним 28/07/21 Срд 18:21:10 210994746
Смотрите. Есть один TCP-сервер. Вооот. Он умеет обрабатывать несколько типов запросов. Вооооот. И есть один исключительный запрос, который обрабатыватется долго и при этом это CPU-Bound запрос. И именно этот запрос, мать его, шлют клиенты при первом подключении. Собственно, хуйня в чем - 10к клиентов подключаются, проц на 100% загружен несколько минут, в это время нихуя другого сервер делать не может, прожевал этих пидорасов - начинаем нормально работать, средняя загрузка на I7 - 1% при 10к коннектов и ежесекундной отправке сообщений.
Собственно вопрос в чем. Какие есть нормальные способы, не переписывая кучу кода, как-то распределить нагрузку на один инстанс приложения? Я придумал - сделать две очереди обработки, собственно, этого пидораса прожерливого в очередь с низким приоритетом, которую обрабатывает 1 ядро, остальные - в очередь с высоким приоритетом и там все оставшиеся ядра. Но кажется хуйней какой-то. Типа, блин, во первых - потому что придется придумывать какой-то объект для ожидания завершения задачи в очереди, либо хуярить коллбеки как не в себя, во вторых - ну, не нравится мне что-то это решение, выглядит перемудренным, в третьих - сама ситуация когда разом 10к стучатся меньше чем за секунду - выглядит надуманной, да, я ее легко могу на своей пеке смоделировать, но в реальном проде как-то не верится что такое может быть, задержки же, вся хуйня, балансировщики, хуе-мое.
Аноним 28/07/21 Срд 18:27:47 210995847
>>2109947
Хуй знает. Можно мидлвейр написать, который будет тротлить через тред слип рандомный или какой лучший способ, если более Н инстансов.
Аноним 28/07/21 Срд 18:28:53 210996148
>>2109947
1) поставь лоад балансек перед сервером, сделай n инстансов. Поднимай новые инстансы если в очереди на обработку больше чем n * capacity запросов. Потом скалируй вниз, когда простаивать начинаешь
2) сделай worker pool, который может выполнять ограниченное кол-во запросов одновременно. Клиент при запросе получает handle, который он может потом поллить с вопросом "Ну чё, готово?"

Много еще что можно придумать.
Аноним 28/07/21 Срд 18:31:39 210996649
>>2109961
>2) сделай worker pool, который может выполнять ограниченное кол-во запросов одновременно. Клиент при запросе получает handle, который он может потом поллить с вопросом "Ну чё, готово?"
Че за worker pool?
Аноним 28/07/21 Срд 18:32:11 210996950
>>2109958
ЦЕ TCP-сервер. Делать свой миддлвар - зеаеб.
>>2109961
Ну, я примерно так и думал, но мне говорят - сделай чтобы этот конкретный запрос не тормозил все, и времени тебе до вчера.
Аноним 28/07/21 Срд 18:35:13 210997651
>>2109966
Бассейн с рабочими. Каждый рабочий умеет делать таску, но рабочих ограниченное количество. Когда рабочий выполняет таску - суёшь его обратно в бассейн
>Ну, я примерно так и думал, но мне говорят - сделай чтобы этот конкретный запрос не тормозил все, и времени тебе до вчера.
Тогда профайлер в руки и вперед.
Аноним 28/07/21 Срд 18:37:00 210998052
>>2109976
А нахуй делать этот басейн, если в нете он по умолчанию изкаробки?
Аноним 28/07/21 Срд 18:37:57 210998353
>>2109976
>Тогда профайлер в руки и вперед.
Ну, дык я ужо. Ускорил и так обработку этого запроса раз в 20, сейчас на 10к - минута уходит, раньше уходил час.
>>2109980
Про другое говорят, няша.
Аноним 28/07/21 Срд 18:38:35 210998654
>>2109980
Так бери и используй. Кто ж тебе помешает то?
Аноним 28/07/21 Срд 18:40:47 210999155
Аноним 28/07/21 Срд 18:52:03 211000056
>>2109983
>Ну, дык я ужо. Ускорил и так обработку этого запроса раз в 20, сейчас на 10к - минута уходит, раньше уходил час.
Если всё уже обёрнуто в таски - можешь захуячить свой task scheduller, который умеет в обработку n количества CPU-bound запросов.
Аноним 28/07/21 Срд 18:59:22 211001957
Аноним 28/07/21 Срд 23:56:31 211030658
Зачем нужны IStructuralEquatable и IStructuralComparable?
Они имеют только методы сравнения через оборачивание в object, а это ж медленно, и тогда какой смысл городить struct вместо class?
Аноним 29/07/21 Чтв 01:06:07 211032859
Решил только что 2 изи задачки на литкоде. Поздравьте меня.
не могу документайшн таску на 30 мин сделать за неделю
Олсо, совсем они ф-ционал нонпремиум похерили, нихуя ниудобно (наверное так и надо). 140 баксов в год, ууу сука.
Аноним 29/07/21 Чтв 08:29:54 211038360
Аноны, зачем нужен вообще модификатор доступа internal? Можете примеры какие-то привести или глобально без подробностей рассказать?
Аноним 29/07/21 Чтв 08:36:54 211038661
image.png 46Кб, 281x225
281x225
Сап шарпач, дали вступительное задание чтобы устроиться на завод C# девелопером за 30к. “Заводоуправление” – корневой участок дерева, его нельзя ни удалить ни изменить. Внутри располагаются дочерние ветки: Веток 2 типа: подразделение и должность - Подразделения могут иметь сколь угодно глубокую вложенность, а должность– конечная ветка. Как такую залупу хранить в реляционной БД MS SQL? Как организовать таблицы?
Аноним 29/07/21 Чтв 08:39:13 211038762
>>2110386
Для подразделения oneToMany, для должности oneToOne
диванный программист
Аноним 29/07/21 Чтв 08:40:29 211038863
1627537218971.png 1060Кб, 600x706
600x706
Аноним 29/07/21 Чтв 08:45:55 211039464
>>2110387
Не понимаю как делать узлы в которых еще будут узлы, к примеру структура будет
узел1 -> {подраздел1; должность1; подраздел->{должность2; должность3}}

Как такое организовать в БД? Не понимаю структуру таблиц.
Аноним 29/07/21 Чтв 11:08:58 211047365
>>2110394
Ну решение влоб: ParentNodeID + NodeType колонки. Ну или без типа, но две таблицы для должности и подразделения. Так наверное даже лучше бужет. В подразделении будет иерархия, в должности нет, но у тебя вроде бы много типов.. Ну и гугли чтото типа sql tree для запросов с with.
Решение со звездочкой- что то типа нестед сетов.
Решение хипсерское- графовые бд
Аноним 29/07/21 Чтв 11:17:14 211047466
>>2110383
Ну пишешь ты либу какую-то и не хочешь кишками светитт, только интерфейсами, вот и юзаешь. Потом еще в тестах френдли ебнул и тестишь даже кишки
Аноним 29/07/21 Чтв 11:19:41 211047667
>>2110386
CREATE TABLE Departments (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
ParentId INTEGER NULL,
Name TEXT NOT NULL,
FOREIGN KEY (ParentId) REFERENCES [Departments](Id)
);

CREATE TABLE Employees(
Id INTEGER PRIMARY KEY AUTOINCREMENT,
DepartmentId INTEGER NULL,
Name TEXT NOT NULL,
FOREIGN KEY (DepartmentId) REFERENCES [Departments](Id)
);

Кстати, кто знает, напишите, насколько валидно вот это:
FOREIGN KEY (ParentId) REFERENCES [Departments](Id)
Т.е. ограничение forein key на эту же таблицу.
Или может этот как-то по другому делается?
Аноним 29/07/21 Чтв 11:47:15 211048868
>>2110476
Нормально.
Но у тебя таки по факту много типов нод. Директор, отдел и сектор тоже ноды. Для вашего завода и так сойдет. Но можно еще подумать. Например, саму иерархию хранить в одной таблице а уже сами велью (емплойи, департменты) в другой
Вместо текста нварчар(300) юзай.
Аноним 29/07/21 Чтв 13:33:01 211060369
>>2110306
Чтобы, например, не реализовывать сортировку для каждой коллекции по 100500 раз. Про struct и class вопрос не понял, должно быть пофиг struct или class для этих двух интерфейсов.
Аноним 29/07/21 Чтв 14:18:40 211067270
Есть ли в студии горячая клавиша, рефакторинг или что-то в этом роде, чтобы заменить var на нормальное название типа?
типа чтобы вместо var x = 1.0;
он бы написал double x = 1.0;
???
var-ы делают код нечитаемым. Но писать руками имена особенно с дженериками замотаешься.
Аноним 29/07/21 Чтв 14:29:06 211069671
>>2110672
Нашел как это в студии делать через рефакторинг, но что-то многовато кликов. Можно ли сделать одним сочетанием клавиш?
Аноним 29/07/21 Чтв 15:47:22 211081572
Работаю в паре с другим разработчиком и постоянно сремся из-за Linq. Он любит применять его везде где можно и писать сложные циклы или проверки в пару строк. Вроде компактно и элегантно, но дебажить эти цепочки сущий кошмар.
Есть какие-то рекомендации насчет целесообразности применения Linq? В Clean code про это естесственно ничего нет.
Аноним 29/07/21 Чтв 15:53:36 211082373
>>2110815
Давай примеры что у него на линке, а ты против.
Ну сделай перфоманс тесты и его линки, скорее всего, обосрутся, особенно пг памяти
Аноним 29/07/21 Чтв 17:17:39 211094274
image.png 9Кб, 134x363
134x363
Сап анончики выручайте супер мега срочно, случайно нажал комбинацию клавиш хуй пойми какую и появились ебучие точки. Как убрать нахуй?
Аноним 29/07/21 Чтв 17:37:52 211096775
Аноним 29/07/21 Чтв 17:47:38 211098076
Untitled.png 108Кб, 297x342
297x342
Аноним 29/07/21 Чтв 18:12:09 211099677
>>2110942
ППХПХПРХАХАХАХАХАХПХПХАХАХАХ. Как же я проиграл на всю квартиру. Уже соседи по батареям хуярят.
Аноним 29/07/21 Чтв 18:55:04 211104978
>>2110386
Я в базе вот так сделал
NodeType
{
int id;
int? parentId;
string Name;
}
Node{
int id;
int typeId;
string Name;
}

А на уровне приложения уже плясал бы.
Аноним 29/07/21 Чтв 21:31:33 211122479
>>2111049
Чому int? parentId; в NodeType?
Чета ты хуйню написал.
Аноним 29/07/21 Чтв 21:36:43 211123580
>>2111224
Потому корень дерева не имеет родителя. Что не ясного-то?
Аноним 29/07/21 Чтв 22:15:55 211129781
>>2111235
И что? Ну будет parentId нал.
Аноним 29/07/21 Чтв 23:07:05 211133482
>>2111297
То что можно таким образом строить иерархию. Как-бы в том и суть. Родитель null - мы нашли корень. Если у нас в таблице несколько корней - мы можем сразу найти все корни и пройтись построив несколько деревьев. Допустим, у тебя логика такова, что есть фирма, она является корнем, у фирмы - есть филиалы, у филиалов - оффисы, в оффисах - отделы, в отделах - начальники, ну а у начальника - проекты, у проектов сабпроекты, ну а у каждого сабпроекта может быть еще один сабпроект до бесконечности и в конечном счете на каждом уровне относительно проектов - есть назначенные люди.
Вот тебе говорят: Анонов - сделай запрос чтобы можно было посмотреть все проекты такого-то хуя и назначенных на них людей в фирме. С тем что я выше описал это изи: находим вершину дерева и проходимся рекурсивно вниз. Как ты будешь определять корень без null - ну, разве что ссылается на самого себя, но это хуйня потому что для того чтобы такую сущность получить - тебе придется ебатеку устраивать на уровне базы, вместо того чтобы просто сделать parentId - null
Аноним 30/07/21 Птн 08:32:08 211156283
image.png 22Кб, 298x273
298x273
image.png 10Кб, 176x179
176x179
>>2111334
Чому так? При запуске окна wpf оно открывается через жопу. В чем проблема?
Аноним 30/07/21 Птн 10:14:11 211163384
Бля, мне кажется dependency injection это реально какая-то меташутка, оно никогда блять не работает, сколько бы примеров не повторял, сколько бы раз не возвращался итог всегда блять один и тот же, даже сколько ГОТОВЫХ примеров бы не кача они даже никогда не компилируются, какая же это хуйня
Аноним 30/07/21 Птн 10:32:49 211166885
>>2111633
На тебя порчу навели, в ИТ такое сплошь и рядом.
Аноним 30/07/21 Птн 10:41:00 211168186
>>2110696
alt+enter/ctrl+. и там в экшенах ищи>>2110672
>var-ы делают код нечитаемым
не забудь префикс типа к имени переменной добавить, а то ведь тебе что б узнать тип надо в объявление заглядывать долбаеб блядь
Аноним 30/07/21 Птн 10:45:17 211169087
Как же хочется работать в команде, где есть синьоры, которые ревьювят твой код, указывают что не так.
Работаю в команде, где все одинакового уровня недомиддлы и кажется, что нихуя не развиваюсь.
Аноним 30/07/21 Птн 10:55:30 211171588
>>2111668
как от нее избавиться? без ДИ жить вообще не вариант
Аноним 30/07/21 Птн 11:00:13 211173089
>>2111715
Для начала попробуй полить системник святой водой, на рабочий стол поставить фото Гейтса и кактус перед монитором. Если не поможет, значит дело серьезное - придется искать светлого мага-программиста.
Аноним 30/07/21 Птн 11:06:55 211174590
>>2111633
DI, как и весь SOLID и ООП, это искусственные барьеры для поднятия планки вката в IT и наебки работодателей. Бесполезные, увеличивающие объем кода, высосанные из пальца принципы. К сожалению, остается просто вызубрить. Необязательно понимать это все, пользуйся Autofac-ом.
Аноним 30/07/21 Птн 11:15:55 211175791
image.png 39Кб, 733x466
733x466
image.png 15Кб, 523x204
523x204
image.png 4Кб, 609x34
609x34
Ну реально чушь смотри вот здесь, первый пикрил отсюда :
https://www.c-sharpcorner.com/UploadFile/85ed7a/dependency-injection-in-C-Sharp/

там говорят что это пример реализации ДИ но нет, это полная хуйня, на втором пикриле пример кода который делает ТО ЖЕ САМОЕ но умещается в 10 строках и не создает спагетти код,
а теперь рассмотрим случай когда инжеция нужна, вот мне надо надо например передать класс Identity.UserManager будет ли это работать? НЕТ КОНЕЧНО потому что иди нахуй вот почему

то-есть реально хуйня без задачи, усложняет то что ты можешь написать, но когда нужно у него лапки блять, безполезнейшая хуйня которую я только видел в программировании
Аноним 30/07/21 Птн 11:16:43 211176092
Аноним 30/07/21 Птн 11:24:38 211176893
>>2111757
Сори, но ты немножко туповат.
Аноним 30/07/21 Птн 11:30:46 211177594
>>2111768
Не надо, у меня много лет опыта в программировании, просто ди это реально хуйня без задач, она не выполняет свою главную функцию, через нее нельзя передать нужные тебе зависимости.
опять таки я читал документацию по идентити и знаешь что там писало о передачи ваисимостей? НИХУЯ, а обычная реализация не работает, так каким образом они себе представляют использовании этой хуйни?
Аноним 30/07/21 Птн 11:39:59 211178395
>>2111775
>не выполняет свою главную функцию
Главная функция - снижение связанности кода. Прекрасно выполняется.>>2111775
>идентити и знаешь что там писало о передачи ваисимостей? НИХУЯ
А почему в доках по Identity должны писать про DI?
>обычная реализация не работает
У всех работает, а у тебя не работает. Угадай гле проблема.
Аноним 30/07/21 Птн 11:45:38 211178796
>>2111783
>Главная функция - снижение связанности кода.
Я представил примеры двух реализаций, как видишь спагетти код именно там где используется идентити

>А почему в доках по Identity должны писать про DI?
потому что без ди идентити НЕ ВОЗМОЖНО использовать где либо за границами контроллера, тоесть есть например у меня контроллер который должен найти пользователя когда выполнилось какое-то условия например выстрелил хенгфаер, и что дальше? нулл рефернс или клонирование севрвиса и до свидания, весь этот фреймворк просто не имеет смысла без ди а он естественно не работет нихрена

>У всех работает, а у тебя не работает. Угадай гле проблема.
Да что ты говоришь маня, пруфов что это вообще в принципе может работать ты конечно же не приведешь
Аноним 30/07/21 Птн 11:47:53 211179197
>>2111787
Спагетти код именно там где используется идентити -> DI

то-есть есть например у меня контроллер -> класс который

быстрофикс
Аноним 30/07/21 Птн 11:58:32 211180598
>>2111787
>Я представил примеры двух реализаций
Ты представил какой-то хэлловорлд и на основании того, что там появилось несколько строк, делаешь выводы о ДИ. Охуено, че.
Остальной твой высер комментировать не буду. Конфигурируй все вручную, никакой магии в дефолтном сервиспровайдере нет.
Аноним 30/07/21 Птн 12:05:16 211181999
>>2111805
>Ты представил какой-то хэлловорлд
>ЭТО ДРУГОЕ
>Остальной твой высер комментировать не буду
>ПУК СРЕНЬК НЕЧЕГО ОТВЕТИТЬ
Как бы с первых ответов было понятно что ты ничего в этмо не смыслишь и по этому ничего по делу ответить не сможешь, я только не понимаю нахуя ты вообще что-то предъявляешь если сам в этом 0
Аноним 30/07/21 Птн 12:48:52 2111880100
>>2111690
Хочет сениор реввью
0
Получил сениор ревью
0
юз табс интсефд оф спейсес
0
документ олл методс/пропс/классес лайк ГетЮзер - гетс юзерс
0
Ревьюрит раз в полугодие
0
Пока заревьюрил мастер ушел вперед
0
Мержешь с мастером
0
Полиси ту реверт апрувалс он коде чейндж
0
Жди еще пол года внимания его величества
Аноним 30/07/21 Птн 12:50:58 2111885101
>>2111745
Ты панимаешь што ты полнейший дебик?
Начиная от обсера по аргументам и заканчивая Autofac-ом.
Аноним 30/07/21 Птн 12:56:17 2111888102
>>2111757
>https://www.c-sharpcorner.com/UploadFile/85ed7a/dependency-injection-in-C-Sharp/
Atul Rawat хуйни не напишет. И код стайл прекрасен. И проперти инжекшн - бест практис.
В следующем выпуске от Atul Rawat - юзама сервиса локатор инстюд канстрюктар инжекшн евривиа
Ты же толстяк, признайся плиз? Найти насколько уебищную статью по ДИ это мастерство
Аноним 30/07/21 Птн 13:02:10 2111892103
>>2111787
> выстрелил хенгфаер
Ты сам себе в ногу выстрелил.
Хуею, если честно, я сам тупой додик, но аудитория тута это финиш какой-то
Аноним 30/07/21 Птн 13:10:29 2111899104
>>2111888
По ДИ, лучших примеров нет, на мсдн ВОДА лютая, ничего не понятно, никаких примеров, и даже то что есть не то что не работает, даже не компилируется, поэтому да, тот рафат он гений что вообще заставил это говно рабоать. про стак оверфлов я вообще молчу, там на секундочку советуют передавать зависимости в контролер и ВДУМАЙСЯ делать из менеджера ГЕТ запросы на контролер, что бы получить например имя из индентити.Ебана в рот это казино Депенденси инжекшин, такая хуня что просто от осознания того что что-то такое вообще существует в природе у меня руки трясутся.
Аноним 30/07/21 Птн 13:17:35 2111907105
>>2111899
>делать из менеджера ГЕТ запросы на контролер
Че? Кидай ссылку.
Чего ты вола ебешь? Поствь себе кор, юзай коробочный ДИ и не городи свои велосипеды в рамках учебы - хорошо, но походу ты слишком тупенький и/или пожилой для этого, что там н еработать-то может?
Аноним 30/07/21 Птн 13:57:21 2111951106
Можно ли Dapper при мультимаппинге заставить понимать что PostId это ID сущности Post, а CommentId это ID коммента?
Аноним 30/07/21 Птн 13:57:33 2111952107
image.png 24Кб, 1185x45
1185x45
image.png 46Кб, 862x296
862x296
image.png 15Кб, 965x83
965x83
>>2111907
Че? Кидай ссылку.
Линка нет, но зуб даю что такое видел и сам лулзы ловил.
>Чего ты вола ебешь? Поствь себе кор, юзай коробочный ДИ и не городи
я так-то на коре 3.1

>что там н еработать-то может?
уже 1000 раз написал, вот еще раз

потому что на том примере индуса ГДЕ ОН САМ НАПИСАЛ ИМПЛЕМЕНТАЦИЮ все просто, но и ДИ если честно в таких случаях нахер не нужна давай посмотрим на ситуацию когда нам нужна зависимость именно потому что у нас нет собственной имплементации, и что тогда? ну вот смотри есть у нас идентити и вот смотри хочется мне получить какого-то пользователя при старте веба, не будет о том зачем надо, или что могу просто сделать запрос до базы, ну хочется мне сделать так как вот. на мсдн пишет что так можно и так делать круто стильно молодежно, ну ок. и смотри в трех скринах как все фейлиться если эту хуйню попытаться применить в Реальной жизни где нужны РЕАЛЬНЫЕ зависимости которые негде больше барть коме через ДИ, а не в самописных сферических маня-примерчиках в вакууме
пикрил один где я пытаюсь получить результат
пикрил2 где все фейлиться
пикрил 3 из за чего все фейлиться
Аноним 30/07/21 Птн 14:13:15 2111974108
>>2111952
Какой у тебя опыт, гнида? Ты зеленей водоросли. Ты даже не можешь прочитать, что тебе компилятор пишет. Еще блять регистрирует IAuthManager, а заинжектить хочет UserManager. Иди Шилдта читай, тебе до DI еще ползти и ползти.
Аноним 30/07/21 Птн 14:19:12 2111988109
>>2111952
Братик, ты в трех соснах заблудился.
В третьей пикче ты скобки забыл.
Во второй, зачем тебе testDi, ты наркоман?
В первой, ты нахуй инстанс вручную создаешь, совсем ебобо? В конструкторе контроллера IAuthManager принимай. Не забудь нормально зарегать в стартапе как IAuthManager , так и идентити говно это коробочное.

дай угадаю, ты до этого на каком-то легаси говне нулевых сидел?
Аноним 30/07/21 Птн 14:20:52 2111989110
image.png 23Кб, 1250x33
1250x33
>>2111974
>Ты даже не можешь прочитать, что тебе компилятор пишет. Еще блять регистрирует IAuthManager, а заинжектить хочет UserManager.
я прекрасно знаю что он хочет, проблема именно в том что мне нужен UserManager а могу только IAuthManager у которого нет UserManager смотри пикрил
Аноним 30/07/21 Птн 14:22:36 2111990111
Почему нельзя использовать params с IEnumerable<>?
Только с уставшим и давно не актуальным пропахшим нафталином массивом, который уже ни один API не возвращает?
Аноним 30/07/21 Птн 14:23:24 2111992112
>>2111880
Ты сейчас с кем разговаривал?
Аноним 30/07/21 Птн 14:24:32 2111994113
>>2111974
Пажилой пиценосец не может прочитать ошибки ((на русском)) в студии
0
Не может понять говнокод уровня хеловорда от уважаемого Atul Rawat
0
Говорит о ДИ и ИоК контейнере дотнетовском, но инстансы вручную создает
0
Читай Шилдта
0
Читай ИЛ код
0
Читай машинный код
0
Читай вибрации от дроселлей процессора и ССД
0
Читай Библию
0
Читай по губам
0
Маааам, а как срать синглтон сделоть? ((((
Аноним 30/07/21 Птн 14:25:37 2111995114
>>2111892
Научиться программировать можно всегда, но вот если токсик, то это пожизненно и не лечится.
Аноним 30/07/21 Птн 14:26:31 2111997115
>>2111988
>В третьей пикче ты скобки забыл.
Речь шла о другом прочитай этот пост >>2111989

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

>дай угадаю, ты до этого на каком-то легаси говне нулевых сидел?
ну на вебформах, да
Аноним 30/07/21 Птн 14:30:25 2112001116
>>2111989
Ну так подключи services.AddIdentity(); или как там правильно, оно настроит и юзерманагера и все нужные зависимости (разве что еще EntityFramework как провайдера для хранилища надо отдельно подключать).
Аноним 30/07/21 Птн 14:33:00 2112007117
image.png 4Кб, 432x13
432x13

>>2111997
так он подключен, смотри пикрил, проблема именно в том что использовать его можно только в контролерах. а когда хочу юзать в своем классе оно не работает и в общем вся идея что бы нужный класс получил в конструктор зарегистрированный интерфейс который имплементирует класс, который наследует нужную нам зависимость я знаю как это по дебильном звучит, но бля со стороны выглядит что именно так это типа доожно было работать, естественно это нихуя не работает
Аноним 30/07/21 Птн 14:37:38 2112012118
>>2112007
> использовать его можно только в контролерах
От того что ты это повторяешь, правдой это не станет.
>так он подключен
Хорошо, а ты AuthManager откуда берется, когда там налл в конструктор приходит?
Аноним 30/07/21 Птн 14:43:23 2112020119
image.png 7Кб, 585x19
585x19
>>2112012
потому что я делаю так, так программа хотя бы стартует, иначе у меня ошибка компиляции и программа даже не заводится а дебажить как-то надо
Аноним 30/07/21 Птн 14:46:44 2112027120
image.png 76Кб, 913x643
913x643
>>2112012
Собственно если сделать так результат очевиден null reference exception
Аноним 30/07/21 Птн 14:49:03 2112029121
>>2112020
Божечки, как всё плохо. Ну так если ты передаешь в конструктор налл, то почему ты ожидаешь что-то другое там? И причем тут встроенная система DI, если ты создаешь класс вручную?
Аноним 30/07/21 Птн 14:51:00 2112031122
>>2111997
>ну на вебформах, да
Из увожения к инвалидам помогу тебе в твоей проблеме.

Удоляй нахуй testDi.

Убеждаешься, что идентити у тебя настроен, смотришь чтоб в стартапе было что-то типа
services.AddDbContext<ApplicationDbContext>(options =>
// options.UseSqlite(
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();

Добавляешь в стартап как тут >>2111952 на третьей пикчи.

В контроллере в КОНСТРУКТУРЕ принимай IAuthManager. Не надо никаких нью. Его и юзай
Аноним 30/07/21 Птн 14:56:54 2112040123
image.png 27Кб, 506x258
506x258
image.png 3Кб, 596x35
596x35
>>2112031
>Удоляй нахуй testDi.
Удалил

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

>Добавляешь в стартап как тут 2111952 (You) на третьей пикчи.
Добавлено, пикрил 2

>В контроллере в КОНСТРУКТУРЕ принимай IAuthManager. Не надо никаких нью. Его и юзай
Ты троллишь? я же говорил, вот в контролере все отлично работает. мне нужно что бы работало в моем AuthManager
Аноним 30/07/21 Птн 14:58:33 2112042124
>>2112029
>Ну так если ты передаешь в конструктор налл, то почему ты ожидаешь что-то другое там?
конечно когда я передаю налл я, ожидаю что там будет налл. я передаю что бы программа хотя бы запустилась и я мог посмотреть что происходит в других местах

> если ты создаешь класс вручную?
Это как так? Не понимаю о чем ты
Аноним 30/07/21 Птн 15:00:26 2112044125
>>2112040
Кредит помощи инвалидам: 3
Использовано: 1
Остаток: 2

Если ты используешь зависимости в твоем AuthManager, то и его инстанс надо создавать используя IoC container (в твоем случае дефолтный коровский).
Тебе надо где-то инстанцинировать AuthManager окромя веб контроллеров?
Аноним 30/07/21 Птн 15:07:04 2112056126
image.png 56Кб, 974x564
974x564
>>2112044
>Тебе надо где-то инстанцинировать AuthManager окромя веб контроллеров?
Конечно, ведь вся суть Ди заключается именно в том что настроитв зависимость один раз его можно использовать где тебе надо, то-есть везде где я вызову метод из AuthManager, в данном случае в мейне
Аноним 30/07/21 Птн 15:08:20 2112059127
>>2112042
>Это как так? Не понимаю о чем ты
Если ты через new сам руками создаешь класс, DI (для простоты буду называть так всю инфраструктуру с этим связанную) никак тут не задействована.
>работало в моем AuthManager
А AuthManager ты где используешь? Если это несвязно с запросом, то тебе надо вручную из сервисМанагера тянуть нужный сервис через GetService<T>.
Аноним 30/07/21 Птн 15:12:11 2112061128
>>2112056
> в данном случае в мейне
Ебаный стыд, а сразу нельзя было сказать. Гугли как сконфигурировать сервисы до того как стартанет вебсервер и тащи через GetService<UserManager>.
Аноним 30/07/21 Птн 15:12:48 2112063129
>>2112059
>Если ты через new сам руками создаешь класс, DI (для простоты буду называть так всю инфраструктуру с этим связанную) никак тут не задействована.
не понимаю каким образом можно использовать класс не создавая его

А AuthManager ты где используешь? Если это несвязно с запросом, то тебе надо вручную из сервисМанагера тянуть нужный сервис через GetService<T>.
Здесь >>2112056 то-есть в мейне, но в общем не важно я хотел бы этот менеджер использовать где-угодно, ну согласись делать гет запрос на контролер это костыль костилей, я не верю что это нельзя сделать нормально
Аноним 30/07/21 Птн 15:19:33 2112067130
>>2112056
>ведь вся суть Ди заключается
Еще раз - суть DI в ослаблении связанности. Научись различать DI, DIP, IoC
>>2112063
>использовать класс не создавая его
Делегировать создание классов и разруливание зависимостей IoC контейнеру.
>я хотел бы этот менеджер использовать где-угодно
А где это угодно-то? У тебя это угодно есть либо до старта сервера (уже написал выше про это), либо во время работы сервера (а там по сути цикл запрос-ответ. а запрос идет через мидлвари, в которых DI отлично работает).
Аноним 30/07/21 Птн 15:20:30 2112071131
>>2111885
поясни за autofac тогда
Аноним 30/07/21 Птн 15:25:43 2112073132
>>2112067
>Делегировать создание классов и разруливание зависимостей IoC контейнеру.

>А где это угодно-то? У тебя это угодно есть либо до старта сервера (уже написал выше про это), либо во время работы сервера (а там по сути цикл запрос-ответ.
Ну я хотел бы как использовать как до старта так и после, ну то-есть хотел бы инициализировать и позже уже работать по запрос-ответ
например в данном случае мне хотелосы бы проверить есть ли админ, если нет создать, а дальше работать как обычно как любой другой менеджер вызывая статические методы
Аноним 30/07/21 Птн 15:28:02 2112074133
>>2112061
ты имеешь ввиду как здесь?
Аноним 30/07/21 Птн 15:28:20 2112075134
image.png 7Кб, 735x52
735x52
Аноним 30/07/21 Птн 15:36:48 2112084135
>>2112071
автофак IoC контейнер, можешь использовать его вместо дефолтного майкрософтовский сервисМанагер. Если ты думаешь что будет принципиальная разница, и автофак магическим образом будет менять твои наллы на реализации интерфейсов, то нет. Разница в деталях.
>>2112073
>проверить есть ли админ, если нет создать
А почему нельзя сразу задать нормальный вопрос, а не влетать в тред с криком а-ля "вы все дебилы понапридумывали неработающей херни ряяяяяяя"?
Читай:
https://dotnetthoughts.net/seed-database-in-aspnet-core
>так и после
насчет после не знаю, возможно там уже будет задиспозено все что можно. Не пробовал.
>>2112074
Почти. CusomDataSurceStorage тоже зарегистрируй в IoC, и дальше serviceProvider.GetService<CusomDataSurceStorage>()
Аноним 30/07/21 Птн 15:46:16 2112097136
>>2112084
>проверить есть ли админ, если нет создать
Я это ЧИСТО для примера сказал, у меня уже есть такая проверка, она мне не нужна, мне нужно решить это именно так как об этом пишут на мсдн. что мол все офигено, бери класс, там будут все зависимости и тп, а когда пробую создать и сделать у меня не получается

Почти. CusomDataSurceStorage тоже зарегистрируй в IoC, и дальше serviceProvider.GetService<CusomDataSurceStorage>()
у меня же нет доступа до serviceProvider в мейне, как мне тогда получить Identity.UserManager и передать его в AuthManager который я создаю в мейне перед стартом вебСервера?
Аноним 30/07/21 Птн 15:48:10 2112099137
>>2112084
>Почти. CusomDataSurceStorage тоже зарегистрируй в IoC, и дальше serviceProvider.GetService<CusomDataSurceStorage>()
у меня же нет доступа до serviceProvider в мейне, как мне тогда получить Identity.UserManager и передать его в AuthManager который я создаю в мейне перед стартом вебСервера?
Аноним 30/07/21 Птн 15:49:22 2112103138
>>2111951
BUMP.
А то засрали тред херней какой-то.
Аноним 30/07/21 Птн 15:52:38 2112107139
>>2112074
>>2112075
Да. Читай https://docs.microsoft.com/ru-ru/dotnet/core/extensions/dependency-injection-usage

Пойми ты как оно работает в принципе, что бы создавались инстансы, кто-то их должен их создавать. Так вот, когда ты просто в конструкторе ожидаешь зависимости, ане создаешь их внутри класса - это уже DI (подкласс/реализация IoC).
Дабы не охуеть в екшене/мейне, создавая инстансы для передачи в конструкторы, используют IoC container. В твоем случае - коровский. Вот он и должен знать куда и как что пихать. IoC container не пропихнет зависимости в твой обьект волшебным образом, ты должен предоставить ему конфигурацию (твой стартап с аддСкопед) и создавать инстансы через него в явном (serviceProider.GetService - "service locator" pattern) или неявном, как за тебя делает аспнетовский контроллер (он же aggregation root в контесте IoC container-а) ​или как в магических пропертиинджекшн автофака, или через вивер какой-то (походу ты такой долбоеб, что они тебе понравятся) .

Так вот, не создаешь обьекты внутри сервисных классов (менеджер твой), а ожидаешь их в кострукторе или параметрах методов - красавчик у тебя есть DI.
Дальше ебись как хочешь, но для нелюбителей грызть катус есть IoC container-ы., они тебе помогут, если ты их настроишь и будешь использовать. Большинство из них универсальны, но ты обосрался из-за того, что фсп.нет за тебя много работы сделал, подставля их "магическим" образом в контроллеры и ты как каргокультист стал ожидать такого же поведения от консольки.

Все, теперь иди нахуй плиз. Ты заебал.
Аноним 30/07/21 Птн 15:54:57 2112112140
Аноним 30/07/21 Птн 15:55:11 2112113141
>>2112099
>у меня же нет доступа до serviceProvider
Я же тебе скинул ссылку как получить serviceProvider до запуска host.Run(). Первая часть статьи для Core 1, вторая для Core 2 и выше. Или тебе похуй и я должен придти к тебе и написать код? Заливай на гитхаб, напишу.
>получить Identity.UserManager и передать его
Да ты задрал. Тебе не надо ничего передавать. тебе надо зарегистрировать все классы и интерфейсы, которые ты хочешь использовать. IoC сам подставит в конструкторы нужные классы.
Аноним 30/07/21 Птн 15:56:36 2112116142
>>2112107
Селффикс:
>(он же aggregation root в контесте IoC container-а)
иеется ввиду стартап. Что-то не туда написал.
Аноним 30/07/21 Птн 15:57:36 2112117143
>>2112113
Давай игнорировать этого пажилого инвалида, братик. Свою порцию внимания он получил.
Аноним 30/07/21 Птн 15:59:58 2112122144
>>2112112
Видел, да. Но это с каждым полем придется сну-сну, я думал может есть какие настройки для нэйминг конвеншн.
Аноним 30/07/21 Птн 16:00:43 2112124145
image.png 91Кб, 426x336
426x336
>>2112117
Не надо, я же не вниманиеБлядь, я искренние хочу разобраться и вырваться уже с этих вебформсов, а тут сразу такая засада
Аноним 30/07/21 Птн 16:05:13 2112129146
>>2112122
Бля, ну там все равно в ColumnAttributeTypeMapper рефлексия дрочится. У тебя там и имя типа и поля будет - вот и сложи 1+1.
Аноним 30/07/21 Птн 16:05:26 2112130147
>>2112116
>aggregation root
Вроде обычно composition root называют. Хотя тот чел все равно гуглить и читать не станет.
>Давай игнорировать этого пажилого инвалида
Как говорится, старую собаку новым трюкам не научишь.
Аноним 30/07/21 Птн 16:08:38 2112137148
>>2112130
Да, композишн рут, у меня самого башка сейчас как желе.
Сидеть до 2к2дека1 на вебформсах это боль.
Аноним 30/07/21 Птн 16:11:14 2112139149
Аноним 30/07/21 Птн 16:19:00 2112145150
>>2112139
Спс, гляну.
А ты в базах шаришь? У меня весь гемор из-за того, что я не могу из хранимки вернуть сджойненые таблицы, в которых есть одинаковые имена колонок во тут спрашивал >>2111625 →
Аноним 30/07/21 Птн 16:58:22 2112172151
>>2112113
Извини Братек, но я не понимаю, я был бы очень благодарен если бы ты написал как надо и тыкнул пальчиком куда смотреть вот репозиторий
https://github.com/stasmalinovskij/DITest
там в общем ничего особенного просто темплейт с Индентити и тем самым менеджером
Аноним 30/07/21 Птн 17:13:35 2112189152
>>2112172
Игорь, ты заебал.
Что теб нахуй надо? Задачу описать можешь хотя бы? Не можешь - иди нахуй.
Аноним 30/07/21 Птн 18:32:34 2112304153
>>2111745
>увеличивающие объем кода
Тут-то ты и обосрался.
Без DI у тебя будет миллион факторий, триллион билдеров и дохуилиярд статики с классическими синглтонами.
Серьезно, няша. DI позволяет смотреть на класс как изолированный компонент и даниматься именно им, не думая о том что вокруг происходит. Твой класс должен что-то делать и делать хорошо. Без DI у тебя внезапно начинаются прокидываться служебные штуки, чтобы их не прокидывать ты хуячишь статику, и так все глубже и глубже в пучину говнокода, а в конечном истоге - неподдерживаемый кусок говна, в котором чтобы маленькое изменение сделать - месяц работы 10 программистов нужно выделять.
Аноним 30/07/21 Птн 19:03:17 2112343154
>>2112304
>Без DI у тебя будет
Тут-то ты и обосрался.
Аноним 30/07/21 Птн 19:12:27 2112351155
>>2112343
Няша. Я как-бы не первый год в разработке и видел времена, когда костылили как могли.
Я уже написал, в чем суть. С DI ты воспринимаешь класс как компонент. Тебя мало ебет что там вокруг происходит, у него есть одна ответственность, обычно один-два метода и погнали. Без DI - среднестатистический код выглядит как полотнище на 2-3к строк, с вложенными классами, дерганием отовсюду статики, служебной хуйней по прокидыванию зависимостей. А если нет - то это и есть DI просто самописный и который говно.
Аноним 30/07/21 Птн 19:14:09 2112354156
>>2112351
Попробуй прокидывать сразу значение вместо зависимости.
Аноним 30/07/21 Птн 19:16:07 2112357157
Какого хуя OData от майков - отдает все данные если выставить фильтр? Пиздец же, я и так полдня разбирался - почему это говно не хочет работаь(спойлер, это говно в route не умеет), ну ок, норм. Делаем skip-take, норм работает, хотим отфильтровать по полю - хуяк, 80к записей загрузилось. Что это за говно, блядь? Какого хуя оно так работает? Что с этим говном делать и как чинить?
Аноним 30/07/21 Птн 20:55:49 2112426158
image.png 4Кб, 283x113
283x113
image.png 5Кб, 450x95
450x95
>>2107311 (OP)
Объясните пожалуйста как работает вот такой синтаксис.
Мне не понятно что вообще тут делает =>
Аноним 30/07/21 Птн 21:00:37 2112433159
>>2112426
На первой пикче в метод Map передали два параметра: строка и лямбда.
На второй пикче в метод Run передали один параметр: асинхронная лямбда.

Лямбда - это функция в виде переменной.
Аноним 30/07/21 Птн 21:07:57 2112441160
>>2112433
А. спасибо, анонче
Только сейчас увидел в конце скобки }); Сначала относился к этому как к какому то телу функции Map
Спасибо ещё раз, отличное объяснение что такое лямбды кстатей
Аноним 30/07/21 Птн 22:11:54 2112495161
>>2112351
ООП головного мозга. Никогда не понимал почему не юзать статику, когда методам никакого ООП не нужно. И всегда впадаю в ступор, когда вижу код типа:

new ClassA().Get(id)

когда простая статика выглядит более лаконично и чище.

Главное чтобы все было разделено модульно и не смешивалось в кучу.

>Я как-бы не первый год в разработке
Ты давно в разработке, да, это видно, наверно и F# с ФП никогда не трогал - слишком стар уже? Ничего, скоро на пенсию.
Аноним 31/07/21 Суб 00:19:40 2112568162
>>2112172
Сделал пулл реквест, проверяй за щекой
Аноним 31/07/21 Суб 02:09:35 2112604163
image.png 1328Кб, 2880x1024
2880x1024
бля как же охуенно, видеть всего одну ошибку в компилере, я уже понимаю что мне осталось решить всего одну проблему и оно у меня бдует работать, о да сука

тема: Linq groupBy

inb4: > аряяяя я пишу на шарпе из под линукса ну мааамм
Аноним 31/07/21 Суб 07:21:25 2112632164
>>2112495
>Никогда не понимал почему не юзать статику
Как ты статику мокать собрался? Или ты такой умный и нахуй тесты? Или чтобы проверить что запрос возвращает то что нужно - будешь все базу разворачивать и пусть тесты по полдня гоняются?

И вообще, эти офигительные истории про модульную статику всегда, блядь, приводят к граблям, которые оч больно в будущем ебнуть могут. Да блядь, хрестоматийный пример из моей ранней работы. Проект, люди до - хуйнули свое логгирование в SQLite, написали свой асинхронный логгер, с очередями, все по уму на самом деле. Работало, дергали лог в виде Log.Critical("Message"). В итоге - 5 лет разработки, пора переносить в облако, это говно - дергается отовсюду, лог на серваке сожрал 10 гигов стораджа(ой, не предусмотрели возможность задать уровни, чтобы можно было не логгировать trace и debug, ай-ай-ай, до облака - отдельное приложение следило за файлом лога и когда раздувалось - удаляли), охуенно, клиент кричит, логгирование все еще нужно и просто полезть и закомментить лог - нельзя, все нормальные люди - вынесли логер в интерфейс и можно было прокинуть логгирование какое хош, но нет, тут была статика, везде она дергалась, на перепиливание кода ушел почти месяц, клиент сыпал хуями, благо альтернатив у него не было. Обернули бы эту статику хотя бы в интерфейс - одной строчкой бы проблема решалась при конфигурировании хоста, но зачем, правда же, статика эт ж охуенно, какие проблемы оно в будующем вызвать-то может.

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

И про ФП. Да, пробовал скалу, пробовал хацкель, пробовал F#. Весело, как опыт. Но что-то большое чисто на ФП в жизни писать не стану. Достаточно просто взглянуть на репки "реальных" проектов, когда пытаются на тырпрайз натянуть ФП, а потом гордо тыкают в грудь, что какие мы молодцы, никто кроме нас это говно поддержать не может, а клиент - жрет кактус и вынужден вам платить, потому что тупенький был когда ему продавали и повелся на истории про то что меньше строк кода -> быстрее разработка.
Аноним 31/07/21 Суб 08:06:57 2112644165
>>2112632
ВСЕ ПО УМУ
@
Log.Critical
@
РЯЯЯЯЯ 10 ГИГ ЛОГОВ
@
РЯЯЯЯЯ ЛОГИРУЕТСЯ DEBUG И TRACE
Аноним 31/07/21 Суб 08:20:16 2112648166
>>2112644
Ну, по уму в контексте - лог вообще не тормозит работу самого приложения. В те времена тот же NLog при работе с базой - пиздец как тормозил.
Но да, вот так вот, не догадались, те кто делал, сразу что нужно уметь отключать уровни, не догадались что может быть нужно будет не в базу логгировать а отправлять другому микросервису или сервису, много о чем не догодались и заметить на этапе отладки и тестирования было сложно, потому что: ну работает, вроде за месяц работы не особо-то раздулось и т.д., а нужно еще и основную функциональность пилить.
Аноним 31/07/21 Суб 08:24:36 2112652167
>>2112632
Потому что тебе попалась хуевая статика - теперь у тебя травма и ты пихаешь ООП во все щели. Я же ничего против классов, интерфейсов и так далее, не имею, просто не нужно делать overengineering там где он не нужен. Для логгинга я бы не стал юзать статику.
Аноним 31/07/21 Суб 08:35:29 2112659168
>>2112632
>записью в базу, когда луна восходящая, а меркурий в водолее
В функциональщине прокидывают зависимость в самый последний момент, в контроллере, чтобы бизнес-уровень не зависел от внешнего мира. Или не прокидывают зависимость вовсе, просто передав значение функции где-то по дороге. Все правила бизнес правила инкапсулируются, чтобы не было дублирования и чтобы не захламлять основной код.

>простым добавлением нового условия
Это не простое добавление условия:
1. Твой код превращается в лапшу с каждым ифом, такое обычно разбивают на машину состояний.
2. Приходится покрывать код логами на всех слоях. Мало того, что код выполняет несколько ответственностей, следит за коннекшеном к базе данных и исполняет бизнес процессы, так и модульные тесты это пиздец усложняет, еще и интеграционные тесты могут попросить на это написать. Создать мок, потом нагородить инфраструктуру моков, только чтобы у зависимости вызвать метод.
3. Так с таким подходом еще непонятно какие исключения бросаются. Из-за того, что доступ к базе данных размазан по всему бизнес слою, надо постоянно помнить, какие исключение умеет кидать база данных или тот же логгер.
4. В разы легче покрыть тестами простую функцию без сайд эффектов, доступа к базе данных, логгирования и непредсказуемых исключений. В разы проще написать тестирование на основе свойств, чем классическое менее эффективное тестирование.
Аноним 31/07/21 Суб 08:38:58 2112661169
>>2112648
Лог тормозит работу, особенно если надо что-то тяжелое в дебаге писать, особенно если это структурные логи с сериализацией объектов. Я уже писал об этом, в .NET 6 хотят сделать ленивый провайдер генерации строк, чтобы решить эту проблему.
Аноним 31/07/21 Суб 09:15:05 2112671170
200.gif 502Кб, 240x200
240x200
>>2112661
>логи с сериализацией объектов
>код настолько хуево написано что без логгирования каждого чиха и объкта не разобрать что происходит
Аноним 31/07/21 Суб 09:29:03 2112673171
>>2112671
>без логгирования каждого чиха
С чего ты решил, что логгируется каждый чих?

Ситуация: пишется аналитика, в дебаге надо измерить производительность всех запросов, тест не один - нужен контекст теста для анализа производительности, на проде этот лог нахрен не нужен.

Другая ситуация: нужен аудит действий пользователя, чтобы понять, что делал тенант. Нужно знать действие и результат действия. Кишки покрывают тесты.
Аноним 31/07/21 Суб 10:03:19 2112683172
image.png 33Кб, 466x111
466x111
image.png 93Кб, 598x316
598x316
Чому так? В бд данные есть.
Аноним 31/07/21 Суб 10:09:04 2112686173
>>2112683
Все норм. Надо было в конце ToList() указать.
Аноним 31/07/21 Суб 13:41:41 2112830174
C# всё, он никому не нужен

Но у меня есть вопрос

Мне надо сделать пять одинаковых, простых микросервисов, я не хочу ебатыся и делать их отдельными классами, а только одним и чтобы этот класс работал с разными ссылками типа http://abc/001 http://abc/002 http://abc/003, писал через общий репо в разные таблицы в БД

Такое вообще возможно? И как это сделать?
Аноним 31/07/21 Суб 13:44:38 2112832175
>>2112830
Подними 5 раз один и тот же микросервис на 5 разных ссылках, нашел проблему.
Аноним 31/07/21 Суб 13:49:37 2112838176
>>2112830
Че ты за хуйню несешь.
Микросервис, в классическом понимании. Это отдельное приложения, который, обычно, работает со своей базой и делает какую-то одну простую задачу и в идеале ничего о других микросервисах не знает, общаясь. если нужно через какой-нибудь евент-бас или с помощью апи. Все.
Если тебе нужно запустить пять инстансов одного и того же микросервиса - ты так и делаешь. При чем тут классы - я вообще не понял. В рамках микросервиса у тебя вообще может не быть каких-то классов, кроме Program, и то если мы про шарп говорим.
Про разные ссылки - это вопрос развертывания, ты вообще можешь развернуть за проксей и балансировщиком и у тебя по одном и тому же урл будут 100 инстансов роутиться и запускаться новые инстансы в зависимости от нагрузки.
Я к чему. К тому что сформируй вопрос нормально, что тебе вообще надо.
Аноним 31/07/21 Суб 13:54:09 2112851177
изображение.png 1Кб, 446x46
446x46
>>2112832
Я полный новичок, я знаю, что над классом используется вот такая запись как на картинке и по ней идёт обращение, но как сделать их несколько для одного класса или как сделать некий список из этих ссылок, я не знаю

>>2112838
Очень сложно, потому что у тебя уровень понимания выше.

Попробую раздробить

Итак, часть первая

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

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

Как смог объяснил
Аноним 31/07/21 Суб 13:59:01 2112859178
>>2112851
>как сделать их несколько для одного класса
Зачем? У контроллера атрибут задает только часть пути. Ничего не мешает или создать другой контроллер, или развернуть несколько раз приложение на разных ссылках (не трогая C# код вообще). Коннекшен к базе данных можно в конфигурационный файл запихнуть или еще куда.
Аноним 31/07/21 Суб 14:04:06 2112871179
изображение.png 17Кб, 560x429
560x429
>>2112859
О, вот это уже похоже на то, что мне нужно.

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

Но тогда вопросы!

Где мне ссылки прописывать? Ибо обычно это дерьмо в файле на картинке
И где, как мне прописывать подключение к базе? Обычно это просто строка и некий путь к таблице.

А, и как мне пять версий сервиса запускать с разными ссылками?
Аноним 31/07/21 Суб 14:07:52 2112882180
>>2112871
>Где мне ссылки прописывать?
>как мне пять версий сервиса запускать с разными ссылками?
iis, nginx или apache, есть еще другие опции, зависит от того, куда деплоить и есть ли лоад балансер. На пикче сеттинги для ide, а не для деплоя.
Аноним 31/07/21 Суб 14:14:38 2112892181
>>2112882
Меня смущает слово деплоить, к сожалению, я нихера не понимаю, что это такое, точнее забыл.

> и есть ли лоад балансер
Та же история, нихера не понимаю, но очевидно, что нет.

Как работает программа, она собирает данные с текущего ПК по адресу localhost, ну и порт там, а дальше уже сам собственно сонтроллер, далее, собрав это демо, оно пишет полученное значение и время получения этого значения в таблицу БД, похрен постгре или мсскл.

Но уже становится понятнее и понятнее.

А можно ли сделать два уровня, типа дерева, на C# - есть прога со ссылками и куда писать и она же запускает пять раз этот блядский сервис, передавая ему данные, ну, как например через соснольку через пробел досовское приложение на С или С++? Ну а далее оно там само ебошит.
Аноним 31/07/21 Суб 14:24:25 2112911182
>>2112892
>Меня смущает слово деплоить, к сожалению, я нихера не понимаю, что это такое, точнее забыл.
В Visual Studio это называется publish. Чтобы сделать publish, тебе надо создать publish profile с нужными параметрами или написать свой кастомный скрипт.

Объясню на примере с IIS:
1. Для запуска сайта исходники сайта не нужны. Нужно то, что получается после компиляции + статические файлы. Publish - позволяет отделить исходники от файлов сайта. Поэтому, первым делом делаем publish в нужное место, в папку скажем. Так же можно создать 5 разных конфигурационных файлов и по суффиксу брать только один нужный во время publish.
2. Делаем 5 раз publish в 5 разных папок.
3. Заходим в IIS и создаем сайт с любым названием. В биндингах прописываем начало ссылка.
4. Создаем 5 приложений у сайта и указываем 5 заранее подготовленных папок. В биндингах для каждого приложения 5 раз прописываем часть пути, которая будет добавляться к ссылке всего сайта.

Для обновления приложения достаточно:
1. Остановить весь сайт
2. Удалить содержимое папок для 5 приложений
3. Сделать снова 5 раз publish
4. Запустить сайт
Аноним 31/07/21 Суб 14:25:27 2112916183
1.png 41Кб, 548x597
548x597
2.png 14Кб, 1444x427
1444x427
>>2112871
>Суть дерьма, что я делаю, есть пять разных ссылок, есть пять абсолютно одинаковых сонтроллера
Почему ты просто не сделаешь дженерик-контроллер? Методы в базовом классе - виртуальные, чтобы если нужно было - мог переопределить.
Аноним 31/07/21 Суб 14:31:17 2112928184
>>2112892
>Та же история, нихера не понимаю, но очевидно, что нет.
Касательно лоад балансера. Эта задача может быть еще решена через лоад балансер. Все пользователи идут на ссылку лоад балансера, а лоад балансер разбирает ссылку и перенаправляет траффик на нужный сервер. Так как нужно анализировать ссылку, то это лоад балансер 7 уровня - HTTP.
Аноним 31/07/21 Суб 14:32:42 2112931185
>>2112911


Подумаю, в моём случае хоть HTTP и используется, но сайта нет, просто выставленно в настройках, что он открывает страницу по такому то адресу и ничего не выдаёт, только если например postman обращаться по конкретному методу. То есть сонтроллеры максимально простые, просто очень простые и работаю фактически в фоне записывая данные текущего ПК в таблицу в БД.

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

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

>>2112928
А вот это уже больше понятно. Но, надо использовать готовое решение или свой велосипед писать для этого? Типа string разбирать на куски и искать нужное.
Аноним 31/07/21 Суб 14:33:19 2112932186
>>2112892
>А можно ли сделать два уровня, типа дерева, на C#
Можно, поздравляю, ты изобрел свой костыльный лоад балансер.
Аноним 31/07/21 Суб 14:36:56 2112938187
>>2112932
А запуск на разных ядрах-потоках это async или сама ОС позаботится для разных запущенных сервисов?
Аноним 31/07/21 Суб 14:38:57 2112945188
>>2112938
Так я ж не знаю как ты собрался этот сервис запускать. Звучит, как будто ты хочешь прогой запустить другую прогу. Тогда это вообще два разных процесса - очевидно два разных потока.
Аноним 31/07/21 Суб 14:40:54 2112947189
>>2112945
> Звучит, как будто ты хочешь прогой запустить другую прогу

Да, с передачей ссылки и пути к таблице с сохранением в БД

Если такое вообще возможно и главное, верно ли так делать в 2021.
Аноним 31/07/21 Суб 14:42:03 2112948190
>>2112947
>верно ли так делать в 2021
Зависит от требований. Если тебе все равно как, сделай несколько вариантов решения и сравни плюсы и минусы.
Аноним 31/07/21 Суб 14:46:54 2112957191
>>2112948
Понял, благодарю за разъяснения.
Аноним 31/07/21 Суб 14:48:39 2112961192
>>2112931
>в моём случае хоть HTTP и используется, но сайта нет
У тебя на пикче Api контроллеры - это тоже сайт, хоть у него и нет html страниц.

>Но, надо использовать готовое решение или свой велосипед писать для этого?
Можно свое написать, можно использовать готовое. Зависит от того, куда это деплоить будут и сколько бабок готовы башлять. Например у амазона есть уже готовый Application Load Balancer, где можно через правила сделать то, что ты хочешь, но он стоит бабок и не малых.
Аноним 31/07/21 Суб 14:54:07 2112967193
изображение.png 53Кб, 989x858
989x858
Наверное самое близкое к тому, о чём идёт речь, но будет ли это работать для нескольких случаев сразу, неизвестно
Аноним 31/07/21 Суб 14:54:46 2112968194
>>2112961
На данный момент это скорее пример для себя чтобы научится
Аноним 31/07/21 Суб 15:03:01 2112977195
>>2112967
Получится один супер метод у контроллера с гигантским свичом внутри, где на основе входящих частей ссылки будет выбираться нужное поведение.
Аноним 31/07/21 Суб 15:04:54 2112983196
>>2112977
Понятно, значит один сервис, запускаемый несколько раз лучший для меня вариант, что неудивительно, ведь он соответствует принципу декомпозиции.
Аноним 31/07/21 Суб 23:39:28 2113438197
Если в EF сделать так
context.Foos.OrderBy(...).Take(3).Select(f => new {...})
порядок анонимных типов будет такой же как и у отсортированных Foos?
Аноним 01/08/21 Вск 01:10:48 2113475198
Так, поясните мне вот че
Вот это LINQ?
var selectedUsers = from user in users
where user.Age > 25
select user;

А вот это метод расширения?
var selectedUsers = users.Where(u=> u.Age > 25);

В чем профит LINQ ?
Как помне он пиздец не читаемо выглядит.
Я всегда пишу методом расширения.
Тащемта я думал что users.Where(u=> u.Age > 25) это и есть linq лол.
ну бля этож пиздец удобно.
Аноним 01/08/21 Вск 07:13:14 2113539199
>>2113475
>Вот это LINQ?
Да.

>А вот это метод расширения?
Тоже Linq.
Аноним 01/08/21 Вск 12:15:47 2113696200
image.png 9Кб, 287x107
287x107
image.png 9Кб, 410x110
410x110
В чем может состоять разница? Как правильно?
Аноним 01/08/21 Вск 12:23:49 2113712201
Аноним 01/08/21 Вск 14:08:32 2113839202
>>2113539
Пасиб.
А то я испугался что что то не то делаю.
Аноним 01/08/21 Вск 14:14:08 2113845203
Запустил программу из книжки Прайса и мне выдало такой результат:
0 types with 0 methods in System.Runtime assembly.
380 types with 6 797 methods in System.Data.Common assembly.
530 types with 5 173 methods in System.Net.Http assembly.
103 types with 1 094 methods in System.Linq assembly.
57 types with 699 methods in System.Console assembly.

Почему System.Runtime assembly всё по нулям? Это нормально? OS Ubuntu 20.04.
Аноним 01/08/21 Вск 15:20:03 2113940204
image.png 13Кб, 406x135
406x135
image.png 15Кб, 427x142
427x142
Анончики, есть список сотрудников, как сделать поиск лучше? Сейчас я через LINQ ищу на точное совпадение(пик1), но может стоит юзать Contains(пик2)?
Аноним 01/08/21 Вск 16:06:02 2113974205
>>2113940
Это разные задачи и никто кто кроме тебя не знает что тебе надо. А ведь еще можно StartWith. Единственное, что могу посоветовать - использовать IgnoreCase компаратор, это раз. Почему у тебя "или"? Это нормально, что по запросу Иванов Иван Иванович в выборку попадут Петров Иван Semenович и Иванов Billy Лэзермэнович и т.д? Это два. И в-третьих, я хз что у тебя там за имплоиСтор, но метод GetItems() выглядит так, как будто он выдает все записи, а если там БД используется, то это неприемлемо.
Аноним 01/08/21 Вск 16:25:36 2113988206
Много ли я упускаю, если пишу код в VS Code, а не в Visual Studio 2019?
Дело в том, что в книге Прайс даёт примеры для VS Code и чтобы не путаться, я тоже решил также писать.
Когда выйдет свежая книга Прайса по 9 версии на русском?
Аноним 01/08/21 Вск 16:29:10 2113989207
>>2113974
>И в-третьих, я хз что у тебя там за имплоиСтор, но метод GetItems() выглядит так, как будто он выдает все записи, а если там БД используется, то это неприемлемо.
Метод GetItems() возвращает все записи из бд. Как правильно тогда? Ебануть отдельный метод в классе отвечающий за работу с бд Search?
Аноним 01/08/21 Вск 16:29:49 2113991208
>>2113988
Теряешь удобный интерфейс + IntelliSense
Аноним 01/08/21 Вск 16:38:03 2113995209
Меня очень заинтересовала тема кодогеренерации.
Начал реализовывать некоторые задумки, и понял, что красиво и правильно это делать не просто набивая StringBuilder'ы, а используя какие-то обёртки вокруг конструкций языка.
Я написал себе велосипеды для Statement'ов, Expression'ов, Operator'ов и т.п. с кучей наследования (впервые ООП так красиво ложиться на предметную область).
И вроде кажется, что вот уже почти всё готово (во всяком случае для основных конструкций языка, за пределы которых в кодогенерации точно выходить не стоит), и кажется получается красиво, и даже кажется, что это можно даже легко использовать для преобразования произвольного языка в C#, но немного пугает, а вдруг 1) кроличья нора намного глубже, чем может показаться; 2) может это всё уже где-то в дотнете есть и реализовано для всего языка, если да, то как это называется, где смотреть?
Аноним 01/08/21 Вск 16:59:28 2113999210
>>2113989
Варианты разные есть. Самым простым сейчас будет в employeeStore добавить метод FindEmployees(name, surname, patronymic), который вытащит из БД только нужные записи.
Аноним 01/08/21 Вск 19:37:11 2114136211
>>2113991
IntelliSense же плагином добавляется
Аноним 01/08/21 Вск 21:48:25 2114233212
image.png 941Кб, 1271x1024
1271x1024
OneCollectJoinInAnother.cs(13,9): error CS0246: The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?)
OneCollectJoinInAnother.cs(19,9): error CS0246: The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?)

Бля что за хуета, почему вылетает вечно эта ошибка?
Аноним 01/08/21 Вск 21:56:32 2114236213
>>2114233
иди нахуй с таким редактором
Аноним 01/08/21 Вск 21:56:39 2114237214
>>2114233
Ну анимешники и тупыыыыыые
using System.Collections.Generic;
VS Govnocode не умеет а квикэкшинс?
Аноним 01/08/21 Вск 21:58:40 2114238215
>>2114233
Я тебя узнал шизик из линукс треда

using System.Collections.Generic
Аноним 01/08/21 Вск 22:02:05 2114240216
image.png 1046Кб, 1276x1023
1276x1023
>>2114236
предложи что то нормальное, вим недуобный, хоть он у меня и уже напердоленный с кучи плагинами, но всё ровно имеет кучу мелких недовчётов которвые нужно в ручкую фиксить, пока вс код более менее это исправил

>>2114237
>>2114238

пик

Кароч вообще не ебу в чём пробелма, уже даже не делаю задание, а просто копирую код с учебника, значит вероятно беда в компилере, но я компилил и через csc, т.е от skd от шиндуза, и через mcs то есть от моно, и в обейх такая ошибка
Аноним 01/08/21 Вск 22:02:37 2114243217
>>2114233
ПОЛНОЕ РУКОВОДСТВО ПО С#
@
ХИПСТЕРСКИЙ РЕДАКТОР КОДА
@
ОБОСРАЛСЯ НА НЕЙМСПЕЙСАХ
Аноним 01/08/21 Вск 22:08:39 2114253218
>>2114240
>предложи
Ну начнем с того нахуя вообще на c# под пинусом писать, а закончим Rider'ом. Ну да, под пинус нормального бесплатного нет, зато швабодка.
>вероятно беда в компилере
Беда в том, что ты нашел какой-то говнокурс вместо нормальной книги. И попутно обосрался в 20 строке
List<Player> players = new List<Player>() {
Аноним 01/08/21 Вск 22:17:09 2114260219
image.png 232Кб, 1598x900
1598x900
image.png 545Кб, 871x836
871x836
image.png 242Кб, 1355x715
1355x715
>>2114253
бля пиздец, сука, просто по собственной невнемательности проебался, да бля


Вообще я учу по пик1

> Ну начнем с того нахуя вообще на c# под пинусом писать

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

> inb4: аряяя бубунта ну маааммм

> райжер

ятжеловестный кал


Аноним 01/08/21 Вск 22:25:51 2114271220
>>2114260
Но зачем писать? Разве весь смысл всей этой хуйни это не настраивать-перенастраивать и обмениваться скриншотами?
Аноним 01/08/21 Вск 22:26:35 2114272221
>>2114260
>Вообще я учу по пик1
Вот и я о том. Тебе еще до линка много чего надо узнать.
>хочу писать шарп, но не хочу сидеть на винде без i3wm
Dualboot. Ну или страдай, а потом будет хуже - хреновый дебагер, тесты отдельная боль.
Аноним 01/08/21 Вск 22:37:34 2114280222
Screenshot204.png 133Кб, 356x267
356x267
>>2114272
> Тебе еще до линка много чего надо узнать.

хз тогда, предложи нормальный учебник

> хреновый дебагер, тесты отдельная боль.

поглядим. кто то из под линя на шарпе полноценно работает и пишет

>>2114271
> Но зачем писать?

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

> Разве весь смысл всей этой хуйни это не настраивать-перенастраивать и обмениваться скриншотами?

Да



Аноним 01/08/21 Вск 22:45:36 2114288223
>>2114280
>предложи нормальный учебник
>>2107314
>— Pro C# 8 with .NET Core 3 (Andrew Troelsen) — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
>>2114280
> кто то из под линя на шарпе полноценно работает
C VS Code-то, сомневаюсь. В коде хорошо js/ts, css, sql пердолить. Но не сам шарп.
Аноним 01/08/21 Вск 22:49:12 2114293224
Screenshot195.png 154Кб, 359x302
359x302
>>2114288
> >— Pro C# 8 with .NET Core 3 (Andrew Troelsen)

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

> Но не сам шарп.
idk, кому как, кто то вообще плюсы в виме пишет


Так всё, я пойду дальше учить, нужно меньше прокрастинировать
Аноним 01/08/21 Вск 23:58:46 2114370225
image.png 1123Кб, 1275x1024
1275x1024
блять что за хуйня, опять
Аноним 02/08/21 Пнд 00:06:25 2114373226
>>2114370
Ты и в этом треде срёшь...
Аноним 02/08/21 Пнд 00:21:18 2114383227
image.png 1139Кб, 1267x1024
1267x1024
installgentoo.jpg 296Кб, 1920x1080
1920x1080
сука я дебил ебаннный , бляяяяяяяяяяяяяяяятььььььььььььььььььььььььььььььььььььь


просто нужно было всё это дерьмо запухнуть в main()
Аноним 02/08/21 Пнд 00:38:00 2114393228
>>2114383
Во всем виновато аниме
Аноним 02/08/21 Пнд 01:52:41 2114464229
>>2114383
Какая у тебя красота на экране. Что за IDE и с каким расширением?
Аноним 02/08/21 Пнд 02:10:03 2114467230
image.png 5297Кб, 2880x1024
2880x1024
image.png 190Кб, 756x573
756x573
image.png 117Кб, 765x476
765x476
>>2114464
Вообще если у тебя не линь то половину что ты видишь ты не сможешь повторить, иле половина будет костыльно работтать на винде, по причине отсуствия comton на не-unix-based системах

>IDE

вскалкод офк

>каким расширением?
пик3 экстеншин для вс кода, пик2 цветовая схема


jetBrains Rider Аноним 02/08/21 Пнд 10:04:06 2114572231
сап дир анон. хочу вкатиться в си-диез. поясните за райдер - как оно вообще? чем отличается от мелкомягкой студии?
Аноним 02/08/21 Пнд 10:16:45 2114582232
price-02-exm.jpg 264Кб, 1153x861
1153x861
Я правильно решил?
Аноним 02/08/21 Пнд 10:17:58 2114584233
Аноним 02/08/21 Пнд 10:18:47 2114586234
>>2114572
Он платный и надо платить безумные деньги каждый год.
Аноним 02/08/21 Пнд 10:29:39 2114600235
Аноним 02/08/21 Пнд 11:37:57 2114659236
image.png 4992Кб, 1920x3240
1920x3240
image.png 23Кб, 962x251
962x251
image.png 34Кб, 1091x319
1091x319
>>2112568
Анонче, Спасибо ТЕБЕ ОГРОМНОЕ, правильно говорят лучше один раз показать чем 1000 раз объяснить.
Твой коммит работает на 100% и благодаря ему я +- понял как это работает. Я бы тебе даже задонатил косарь другой, но ты наверное крутой программист и сам зарабатываешь 100500\наносек и тебе эти копейки нафиг не сдались, но я тебе очень благодарен

Скажи только вот правильно ли я понял что теперь что бы использовать эту фичу в middleware и не парится по поводу периода жизни? можно сделать как на пиках?
Аноним 02/08/21 Пнд 12:17:20 2114677237
>>2114659
>что бы использовать эту фичу в middleware
Ко времени работы мидлварей уже все сконфигурировано автоматически и тебе надо просто иметь либо конструктор, который принимает нужные сервисы, либо принимать их аргументами в Invoke методе. Разумеется сервисы должны быть зарегистрированы через метод Sturtup.ConfigureServices. Мидлвари регистрируются в Startip.Configure, и будут тоже создаваться автоматически.
>не парится по поводу периода жизни?
Париться о периоде жизни надо в момент регистрации - тебе доступно Transient (новый экземпляр на каждый инжект), Scoped (отдельный экземпляр на запрос) и Singleton (один экземпляр на все время жизни приложения). Все что создано IoC'ом и можно задиспозить будет задиспожено автоматически.
>можно сделать как на пиках?
Хз, хз. Зачем прослойка из статического класса? Откуда ты вытащил DB?
Аноним 02/08/21 Пнд 12:50:42 2114697238
>>2114659
В продолжение >>2114677
Прочёл комменты в коде и понял что опять ничего не понял. А ты точно программист?
Выбрасывай эту свою хрень, как я уже написал миддлвари должны создаваться автоматически и для них доступен DI.
Аноним 02/08/21 Пнд 12:52:40 2114701239
>>2114697
>понял что опять ничего не понял
понял что ты ничего не понял
Fix

Аноним 02/08/21 Пнд 12:55:23 2114703240
>>2114701
Ты тот чел который делал комит?
Аноним 02/08/21 Пнд 12:57:29 2114706241
Почему этот гад Чарльз Энтони Ричард Хоар придумал null, а сейчас должен голову ломать с этим говном на всякие проверки null? Допускает он, не допускает, генерирует исключение, не генерирует. Почему он мне не выплачивает компенсацию за мои моральные страдания?
Аноним 02/08/21 Пнд 13:13:23 2114723242
>>2114706
Тогда было модно. Ошибка признана, попытались исправить накостылив #nullable
Аноним 02/08/21 Пнд 13:15:59 2114726243
>>2114706
>>2114723
Т.е. в шарпе налл, потому что модно. А зачем его придумали, хз, скучно было мужику.
Аноним 02/08/21 Пнд 13:20:51 2114732244
>>2114703
Да он это я. Или я это он. А может мы просто близнецы. Еше коммитов захотелось?
Аноним 02/08/21 Пнд 13:41:14 2114755245
image.png 16Кб, 833x134
833x134
>>2114732
Да нет, просто хотел поблагодарить, как сейчас работает отлично, но если у тебя есть предложение или советы тогда я толко рад, но вот я только не понял что значит
>Мидлвари регистрируются в Startip.Configure\

это как?

>Хз, хз. Зачем прослойка из статического класса? Откуда ты вытащил DB?
дб это просто класс в котором находятся обращения к базе, там есть строка подключения и конфигурация датаЛайера
Аноним 02/08/21 Пнд 13:45:28 2114761246
>>2114582
Ты тоже на линуксе что ли сидишь? решение выглядит костыльным, но скорее всего для твоего уровня другова решения и нет
Аноним 02/08/21 Пнд 14:06:58 2114789247
>>2114755
>если у тебя есть предложение или советы
так заливай изменения на хаб, а то по скринам разбирать код это как по обрывкам папируса
>я только не понял что значит Мидлвари регистрируются..
У тебя есть класс Startup (по дефолту так назван). В нем есть два основных метода ConfigureServices - регистрация интерфейсов, классов, фабрик, опций и т.д. И есть метод Configure - настройка конвеера обработки запроса, который состоит из поочереди вызываемых мидлварей (кхм.. на самом деле сама мидлваря вызывает следующую и может как прервать дальнейшие вызовы так и выполниться после последующих мидлварей). Мидлвари создаются автоматически.
...
app.UseMiddleware<MyMiddleware>();
...
class MyMiddleware{
//next - делегат для вызова следующего мидлваря
//контекст будет взят из IoC контейнера
public MyMiddleware(RequestDelegate next, DbContext context){}
//Метод Invoke будет вызван автоматически
//В методе тоже можно указать доп. зависимости, которые будут заинжечены (IFoo и DbContext должны быть зареганы в ConfigureServices)
public async Task InvokeAsync(HttpContext context, IFoo foo){}
>дб это просто класс в котором находятся обращения к базе
И он тоже должен быть зареган в ConfigureServices (если это EF, то через AddDbContext) и получаться из IoC'a. А ты видимо его руками где-то создаешь.
Аноним 02/08/21 Пнд 14:18:18 2114798248
>>2114761
Я жду, когда в ноябре добавят MAUI и можно будет писать кроссплатформенные графические приложения, чтобы сразу и на Линуксе и на Винде всё работало. А пока до ноября решил изучить основы по книжке Прайса. Он приводит все примеры для VS Code, поэтому я и решил писать также. В этой главе мы проходили базовые типы, а циклы ещё не проходили, поэтому вот такое решение. Ещё наверняка там есть какое-нибудь решение в стиле ООП, что можно сделать список всех типов хитрым вызовом какой-нибудь библиотеки.
Аноним 02/08/21 Пнд 15:32:24 2114829249
image.png 118Кб, 654x480
654x480
>>2114789
>так заливай изменения на хаб, а то по скринам разбирать код это как по обрывкам папируса
залил

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

поэтому я никогда раньше не использовал ни ДИ, ни IoC контейнера и на самом деле вообще мы все делали в старом добром вебКонфиге, и ну... там не просто этого нет это вообще ну... одним словом вебконфиг, кто знает тот поймет

В общем все сложно конечно, но я не отчаиваюсь

Аноним 02/08/21 Пнд 15:52:49 2114841250
>>2114829
>залил
Гляну. Но с гитом и студией могу только по вечерам.
>у меня мидваре
Ну нееееет. Давай без этого, хоть мидлварь может быть разным, но в контексте asp core под ним буlут понимать именно звено конвеера обработки запроса. >RoleManager статический класс который я могу вызвать от куда угодно.
Ну это же классический антипаттерн. Ты так свое приложение тоже превратишь в хрупкую неподдерживаемую каку.
>контроллер -> менеджер -> и тот калсс дб
Значит это все в рамках запроса, а значит фреймфорк сам разрулит завимости. Если уж будет реальная необходимость общего класса, то делай AddSingletone(new object).
Аноним 02/08/21 Пнд 20:50:27 2115189251
Нахрена рекламируют rider?
Аноним 02/08/21 Пнд 20:53:49 2115191252
>>2115189
Чтобы заработать денег. Когда выйдет MAUI, то тоже напишу свою IDE и буду продавать подписку на год по 100-200 долларов.
Аноним 02/08/21 Пнд 20:57:17 2115194253
>>2115191
Это часто используют компании? Есть смысл знакомиться? Какие преимущества по отношению к MS VS?
Аноним 02/08/21 Пнд 21:04:15 2115202254
Аноним 02/08/21 Пнд 21:07:35 2115205255
>>2115202
Rider даже русский не поддерживает и написан на Java.
Аноним 02/08/21 Пнд 21:10:44 2115208256
>>2115205
>русский не поддерживает
Это ж хорошо.

>написан на Java
Щито поделать.
Аноним 02/08/21 Пнд 21:12:15 2115211257
>>2115202
Ясно, очередная модная хрень без задач.
Аноним 02/08/21 Пнд 21:19:16 2115214258
>>2115211
Сейчас модно писать в VS Code. Это не банальная Visual Studio, поэтому писать там код более престижно. А по функционалу я бы не сказал, что сложнее. Нужно лишь вручную писать команды dotnet, а не жмакать кнопки. Хотя наверняка есть плагин для кнопочек.
Rider - это какой-то троллинг. IDE за бешенные деньги и не дотягивает даже до бесплатных аналогов. При этом грузится миллион лет, тупит с открытием больших файлов. Нет визуальных редакторов XAML и WinForms. Поддержка по сравнению с VS2019 и даже плагина VS Code постоянно отстаёт. Вот в ноябре все получат апдейт, а райдеровцы будут сидеть на устаревшей системе.
Аноним 02/08/21 Пнд 21:31:24 2115224259
>>2115211
Чел, последние версии студии - крайне нестабильная херня с постоянным отвалом какого-то куска. Еще и с солюшеном невозможно работать пока он асинхронно (!!!) не загрузит за несколько минут все проекты на ссд.

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

>XAML
Блендер.

>WinForms
Есть.

>Поддержка по сравнению с VS2019
В гробу я видел такую поддержку.

>райдеровцы будут сидеть на устаревшей системе
По твоему они обкатывают новые фичи в день релиза?

>Нужно лишь вручную писать команды dotnet, а не жмакать кнопки.
В VS Code это настраивается в дефолтном лаунчере, не надо никакие dotnet писать и не надо никакие кнопки нажимать.
Аноним 02/08/21 Пнд 21:40:50 2115232260
>>2115224
Где ты берёшь деньги на Rider? Или крякаешь его каждый год? А если надо будет срочно сделать что-то, а у тебя кряк слетел, а новый ещё не выпустили?
Аноним 02/08/21 Пнд 21:49:24 2115245261
image 27Кб, 406x427
406x427
image 24Кб, 288x524
288x524
>>2115232
Ты меня решил заебать? 83 бакса в год - неподъемная сумма. Подписка VS хороша тем, что дают 50 баксов на аккаунт ажура.

>у тебя кряк слетел
В VS не нужен кряк. У него есть мастер-ключ на обе редакции. Я не могу использовать нелицензионный софт.
Аноним 02/08/21 Пнд 21:51:41 2115248262
Будут ли выпускать Visual Studio для Linux?
Аноним 02/08/21 Пнд 21:52:55 2115250263
>>2115248
Есть для мака, на него же все дрочат. На линухе вроде считается не круто педалить.
Аноним 02/08/21 Пнд 23:24:37 2115332264
Хули новая версия студии аж на 22 запланирована? Я потыкался в превью - охуенно. Автокомплит раз в 100 стал лучше и наконец НЕ ЛАГАЕТ. Пофиксить вылеты и совместимость с расширениями же и выпускать. Нахуя они на 22 год ее оттягивают?
Аноним 03/08/21 Втр 00:22:00 2115352265
Screenshot20200[...].jpg 248Кб, 1280x720
1280x720
>>2115332
> студия

Нинужон, пока не завезут на прыщах
Аноним 03/08/21 Втр 06:17:12 2115409266
>>2115205
а зачем тебе русский?
Аноним 03/08/21 Втр 06:19:37 2115411267
>>2115214
> Сейчас модно писать в VS Code
бесполезно тебе что-то доказывать. у тебя наверно и штаны с подворотами
Аноним 03/08/21 Втр 09:26:25 2115446268
Кок мне подключиться к базе данных mysql? Я пользуюсь vscode и консольным дотнетом, а в интернете гайды только на visual studio!
Аноним 03/08/21 Втр 10:04:13 2115470269
>>2115409
У меня родной язык - русский.

>>2115411
Сейчас же модные штаны с обрезкой внизу, но я ношу узкие необрезанные, чтобы видно было подкаченную попку.
Аноним 03/08/21 Втр 10:08:25 2115472270
>>2115470
>У меня родной язык - русский
Сраный ватник, хули в айтишку лезешь вообще, иди водяры наверни за путена.
Аноним 03/08/21 Втр 10:54:12 2115540271
>>2115446
Получаешь строку подключения и подключаешься к БД в каком-нибудь классе.
Аноним 03/08/21 Втр 11:45:52 2115578272
price-03-exm.jpg 119Кб, 539x795
539x795
На какую зп уже можно претендовать?
Аноним 03/08/21 Втр 12:02:46 2115586273
>>2115578
Что-то я не вижу JavaBeanFactory.
Аноним 03/08/21 Втр 12:03:55 2115587274
Аноним 03/08/21 Втр 12:04:28 2115588275
Аноним 03/08/21 Втр 12:06:07 2115590276
>>2115214
>писать там код более престижно
Престижная ИДЕ для престижных людей.
Аноним 03/08/21 Втр 12:07:14 2115591277
>>2115588
Я не знаю чё это такое. Прайс ещё не рассказывал. Я по главам иду в его книже по 8 версии. 9 не читаю, потому что она только на английском.
Аноним 03/08/21 Втр 12:10:39 2115594278
>>2115591
Проблема твоего кода, что он делает все на свете = говнокод. В тырпрайзе городят абстракции над абстракциями. Но этот пример еще показывает, что ты не знаешь про паттерн матчинг.
Аноним 03/08/21 Втр 12:20:24 2115599279
>>2115594
А как и зачем та паттерн матчинг?
Аноним 03/08/21 Втр 12:23:37 2115607280
>>2115599
Ну хуй его знает, может код чуть читабельнее станет, а то у тебя иногда есть else, иногда нет, еще и переменная зачем-то.
Аноним 03/08/21 Втр 12:43:47 2115626281
>>2115607
Это флаг, чтобы не писать одинаковый код два раза два раза.
Аноним 03/08/21 Втр 13:44:18 2115695282
>>2115578
-20к, оплата за обучение
Аноним 03/08/21 Втр 14:11:49 2115719283
paimei494587.jpg 202Кб, 1280x720
1280x720
Пацаны, вопрос насчёт именования. Вы приписываете к названию переменной строку, которая обозначает происхождение или назначение?

Пример:
var foundUser = repository.FindUserById(...);
if (foundUser != null) { ... }

var newUser = new User() { ... };

void Remove(User userToRemove) { ... }

Или во всех трёх случаях вы бы просто написали user?
Аноним 03/08/21 Втр 15:00:22 2115756284
>>2114586
Так и Visual Studio платный(если не брать Community версию)
Аноним 03/08/21 Втр 15:07:18 2115766285
>>2115719
Если в скоупе только один юзер и значение переменной очевидно из контекста - то просто юзер. Если не очевидно - то с пояснениями
Аноним 03/08/21 Втр 15:17:36 2115786286
>>2115756
А VS Code абсолютно бесплатный и вполне на уровне платных IDE за счёт плагинов. Бонусом ещё можешь всем говорить, что ты не пишешь в банальной студии, а в модном VS Code.
Аноним 03/08/21 Втр 16:07:14 2115845287
Hashtable ht = new Hashtable();
ht.Add("I_best_user", "12349");
// Считаем коллекцию ключей
ICollection keys = ht.Keys;

ICollection - интерфейс, то есть он же ничего не реализует и не содержит полей данных, как мы можем создавать объект интерфейса и что-то ему передавать?
Аноним 03/08/21 Втр 17:01:59 2115902288
изображение.png 60Кб, 1037x596
1037x596
Правильно сделал? Только перешёл на шарп, скажите не колхожу ли я
Аноним 03/08/21 Втр 17:29:11 2115916289
>>2115902
В исключение надо еще через nameof передать имя параметра.
Аноним 03/08/21 Втр 18:43:58 2115962290
изображение.png 14Кб, 573x134
573x134
>>2115916
О, спасибо, не знал что такое есть в шарпе. Добра и удачи тебе
Аноним 03/08/21 Втр 18:49:50 2115969291
>>2115902
Нет тебя просят кидать исключение, если нулл передали, а пустая строка должна нормально обрабатываться. Но если хочется самодеятельности, то тогда уж сразу NullOrWhitespace, и не ArgumentNullException, a InvalidArgumentException, что бы не вводить в заблуждение.
Аноним 03/08/21 Втр 19:02:36 2115983292
>>2115902
Что значит "конструкции языка"?
Регулярки это "конструкции языка"?

К дополнению, я бы еще гласные запихнул в ридонли массив какой и/или создал метод типа IsVowel
Аноним 03/08/21 Втр 19:03:19 2115984293
>>2115845
Ты не создаешь объект типа ICollection, ты создаешь объект, который реализует интерфейс ICollection и работаешь с ним как с ICollection. Каким именно образом реализует интерфейс - это его дело. Это называется полиморфизмом.

Интерфейс ICollection имеет проперти и методы, а так же реализует интерфейс IEnumerable, так что он не пустой ни разу.
Аноним 03/08/21 Втр 19:04:46 2115986294
>>2115902
+
ТуЛовер ебни, а то обосрется на апперкейсах
Аноним 03/08/21 Втр 19:07:38 2115991295
>>2115695
А что не так-то?
Ну можно немного оптимизировать и физзбазз не двуя консолями делать, и шо?
Аноним 03/08/21 Втр 19:08:51 2115993296
>>2115902
[Fact]
ClountVowels_Should_ReturnZero_When_CalledWithEmptyString()
{
____Assert.Equals(0, Program.CountVowels(""); // обосрамс
}
Аноним 03/08/21 Втр 19:11:18 2115995297
>>2115993
смайлик в конце отклеился. Ну да похуй, не в гугл собеседуюсь
Аноним 03/08/21 Втр 19:12:20 2116000298
>>2115352
>на прыщах
Откуда вы лезете то? Дал вам микрософт венду, дал тулзы, дал пропитание. Нет, хочу с прыщами ебаться. Пиздец. Особенно печет от всяких уников, которые сидят кодят под .нет и постоянно хают "майки говно".
Аноним 03/08/21 Втр 19:13:06 2116001299
>>2115995
Провалился по мягкоумениям тксзть...
Аноним 03/08/21 Втр 19:13:23 2116002300
>>2115969
Спасибо, действительно не заметил что не просят агриться на пустую строку. Если string это ссылочный тип, то простое ==null должно сработать, я думаю.
Согласен с твоим замечанием по поводу вызова конкретного эксепшена, но не буду менять. Это я отрыл какие-то уроки от Epam на гитхабе и просто делаю по очереди их таски, что бы набить руку на незнакомом языке. В тестах они проверяют конкретный Exception
Аноним 03/08/21 Втр 19:15:52 2116004301
>>2115332
Поди объединяют с свидуал студией фор мак aka xamarin studio покрашеный в сиреневый цвет
Аноним 03/08/21 Втр 19:26:50 2116015302
ilita.png 220Кб, 1920x1080
1920x1080
ИЛИТА врывается в тред

Ссу на лицо шиндос-локнутым, использую C#, win 10 + VisualStudio только на работе, под энтерпрайз лицензией и только когда платят.

Ссу на лицо вимо-щёнку и другим красноглазикам, раньше сам на Арче сидел, но вылечился, сейчас Дебиан + i3.

Ссу на лицо C#-боям.

Ссу на лицо ООП фанатикам.

Linux + .NET5.0/6.0 + F# + PostgreSQL + VS Code - стэк боярина.

Ах да, EntityFramework - для быдла, онли Dapper + ADO.NET.

Ноудискас.
Аноним 03/08/21 Втр 19:30:08 2116019303
>>2116015
>Ноудискас.
Спасибо, вы нам не подходите: not a good cultural fit
Аноним 03/08/21 Втр 19:41:10 2116024304
ШКЯ.jpg 89Кб, 1280x720
1280x720
>>2116019
>not a good cultural fit
А в чём проблема? Я сказал правду как есть про .NET наш.

Лучше сразу слабых отсечь, чтобы не тянули коллектив на дно потом со своим ДОТ НЕТ ФРЕЙМФОРКОМ ЧЕТЫРЕ ТОЧКА ЫЫЫЫЫЫ СЕМЬ.

Всё ладно, принял таблеку, отошёл, тише... тише. Не надо. Закрываю компьютер.
Аноним 03/08/21 Втр 19:48:34 2116028305
>>2116024
>правду
>"нитакой как все" стартерпак
Мда, кек. Замочек на хуй у тебя с опенсорс прошивкой?
Аноним 03/08/21 Втр 19:49:27 2116030306
Доброе время суток. Подскажиде как правильно оформить следующее:

Есть структура, простая, допустим
struct Point
{
___int x;
___int y;

___public Point(x, y){
___x = x;
___y = y;}
}

Есть лист этих структур. Я могу добавить в конец листа структуру следующим образом

Point a(1, 1);
list.Add(a);

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

list.Add( x => {Point(1,1); } );

Или как-то так, ток код не компилится чёта. Подскажите люди добрые как тут лямбды работают
Аноним 03/08/21 Втр 19:50:39 2116031307
>>2115984
разве мы не обязаны написать реализацию методов например в классе? мы можем прям брать и использовать интерфейсы?
бля, я наверное не совсем понял эту тему или что-то пропустил, мб скажешь где почитать подробнее? метанит?
Аноним 03/08/21 Втр 19:51:59 2116032308
>>2116028
.NET Framework 3.5 бригада подтянулась
Аноним 03/08/21 Втр 19:57:12 2116034309
>>2116032
Как дела у бригады? План выполняется?
Аноним 03/08/21 Втр 20:01:49 2116037310
>>2116024
>Всё ладно, принял таблеку, отошёл, тише... тише. Не надо. Закрываю компьютер.
Это хорошо. Здоровье - важная штука.
Аноним 03/08/21 Втр 20:02:49 2116038311
>>2115845
>ICollection keys = ht.Keys;
Не создается новый объект ICollection с нуля, а приравнивается ht.Keys к интерфейсу.

>>2116031
>мы можем прям брать и использовать интерфейсы?
Если объект реализует интерфейс, то этот интерфейс из него можно вытащить и юзать, да, а вот создавать объект-интерфейс нельзя.

Создать IEnumerable нельзя, но можно создать List, HashSet и юзать их как IEnumerable - вот же и суть интерфейсов, что у тебя разные типы, но у всех есть общее основание, которое можно полиморфно реюзать.
Аноним 03/08/21 Втр 20:02:51 2116039312
Аноним 03/08/21 Втр 20:46:02 2116065313
1.png 59Кб, 916x824
916x824
>>2115578
Я бы как-то так сделал...
Блядь, вот как самому то не смеяться когда такое постишь?
Аноним 03/08/21 Втр 20:55:58 2116071314
>>2116065
Не достаточно тырпрайзно. Нет SharpBeanFactory. Есть магические константы 1, true, false. Через вонючие колбеки написал, еще и onStep скрыл. Метод все еще делает все на свете и срет в консоль одновременно.
Аноним 03/08/21 Втр 20:58:22 2116074315
>>2116071
Да, и про флайвейт паттерн не слышал. Неудв.
Аноним 03/08/21 Втр 20:59:17 2116075316
q.jpeg 6Кб, 225x224
225x224
>>2116065
>mfw
>ты ебаный сеньйор 5к$/мес
>написал бы как первый вариант и давно бы уже таску закрыл
>направляешься к любовнице на мерседесе
Аноним 03/08/21 Втр 21:00:22 2116079317
>>2116075
>>ты ебаный сеньйор 5к$/мес
Так это стронг жун на парттайме
Аноним 03/08/21 Втр 21:01:47 2116080318
>>2116074
Та слышал я(((.
>>2116075
А я ебаный джун за 250$ в месяц. Как еще прикажешь мне развлекаться?
Аноним 03/08/21 Втр 21:04:29 2116082319
>>2116080
А вот щас серьезно, я про record в C# до твоего скрина не знал, завтра будем переписывать весь продакшен.
Аноним 03/08/21 Втр 21:12:15 2116096320
>>2116082
Подожди до дикриминатед юнионов. Хотя пожди, лучше до тайп классов. Во веселья-то будет.
Аноним 03/08/21 Втр 21:13:08 2116097321
>>2116065
И что реально такую хрень сейчас пишут в рабочих проектах?
Аноним 03/08/21 Втр 21:14:34 2116100322
>>2116097
Экспоненциально хуже. Этот код еще пока читабельный.
Аноним 03/08/21 Втр 21:22:57 2116108323
>>2116096
>дикриминатед юнионов.
Что-то типа утиных типов? Или как в тайпскрипте.

> тайп классов.
А это че? Не гуглится.
Аноним 03/08/21 Втр 21:23:27 2116109324
>>2116097
Я пишу. Просто потому что мне так нравится. Люблю, лямбды, люблю когда класс в 30 строчек умещается, люблю чтоб только я понимал как оно работает. Еще люблю по папочкам все раскладывать и делать длиннющую иерархию папочек, чтобы пиздец: WebServer/Features/Users/Models/Api/ а там один файлик User.cs. Уууу, как я это люблю. И как мне нравится представлять лицо другого человека, который прийдет и будет пытаться поддерживать мой код.
Аноним 03/08/21 Втр 21:23:45 2116111325
Аноны, есть ли смысл вкатываться в asp net core? Если нет, то во что? Что думаете по поводу Xamarin?
поридж 18 лвл
Аноним 03/08/21 Втр 21:25:34 2116114326
Аноним 03/08/21 Втр 21:30:20 2116116327
>>2116114
Бля. Кароч, учите хаскель, посоны.
Почти ничего не понял с примеров.
Аноним 03/08/21 Втр 21:32:59 2116119328
Аноним 03/08/21 Втр 21:33:09 2116122329
>>2116111
Что ты понимаешь под смысл? Если про то: есть ли работа, то да, есть.
Аноним 03/08/21 Втр 21:44:35 2116129330
>>2116030
У листа нет Add с лямбдой.
И вообще, не понятно что ты хочешь.
Если тебе >>2116039 не нравится, то объясни чем.
Аноним 03/08/21 Втр 21:48:14 2116133331
1.jpg 56Кб, 739x540
739x540
>>2116030
Короче, учись пока я жив.
Аноним 03/08/21 Втр 21:52:44 2116135332
>>2116133
Тебе не долго осталось?
Аноним 03/08/21 Втр 21:54:35 2116136333
Аноним 03/08/21 Втр 21:56:10 2116139334
>>2116135
Ну да, 26 лет уже, а я 3й год джун за 250 бачей, думаю годик еще протяну, а там - и помирать пора будет.
Аноним 03/08/21 Втр 22:00:24 2116141335
>>2116136
Ты IRC-чатик так вот сделай, няша.
Аноним 03/08/21 Втр 22:01:04 2116142336
>>2116133
Пиздос.

>>2116111
Есть два типа девелоперов:

одни знают что .NET - это лучшее что есть сегодня для продакшена

вторые - никогда не юзали C#/F# в связке с Кором/.NET5.0, жабисты, пхпшеры, рубисты и прочие

Я просто не знаю, что ещё есть годное, ну может OCaml/Ocsigen или Elixir/Phoenix, ну это не продакшен рэди, и у Эликсира динамика, ну под бухлом можно юзать.

>>2116114
Ну уже если честно за C# не слежу особо, так, чтобы таски закрыть для кабана. В основном задрочу F#/OCaml, а там это уже с 90-х это всё есть.
Аноним 03/08/21 Втр 22:02:12 2116144337
>>2116142
>Пиздос.
А шо? Чел же именно этого просил.
Аноним 03/08/21 Втр 22:04:16 2116146338
>>2116144
Умение отличить "то что просят" от "то, что на самом деле хотят получить" - главное уменее хорошего сеньора+.
Аноним 03/08/21 Втр 22:07:38 2116151339
>>2116146
Двачую этого, обристался от изначального реквеста и фактори которую доставили.
Аноним 03/08/21 Втр 22:11:34 2116157340
>>2116151
Кхм. В том как-бы и суть была. Ну да ладно. Видимо шутник из меня такой себе(((.
Аноним 03/08/21 Втр 22:19:53 2116165341
>>2116141
Пилю борду уже на F#, выложу в опен сорс, вот тогда заживем!
другой анон

>>2116136
Исправил, https://dotnetfiddle.net/6e9kjd

Извини, но я прагматист - стараюсь делать попроще и чтобы си-шарперы не вешались так как с ними продакшен делю function сложно читается для незнаюших.
Аноним 03/08/21 Втр 22:21:50 2116170342
Аноним 04/08/21 Срд 14:06:30 2116814343
price-04-exm.jpg 156Кб, 1317x691
1317x691
Задача на представление числа в виде простых множителей.
Листинг не влез, поэтому продолжение во второй колонке.
Ынтерпрайзно получилось? Я старался!
Аноним 04/08/21 Срд 15:57:50 2116925344
>>2116814
Получилось так себе. Хранить множители в строке это такое. Алгоритм поиска делителя херовенький. Стиль кода шарпов вообще не соблюдён.
Аноним 04/08/21 Срд 16:22:49 2116939345
>>2116925
>Хранить множители в строке это такое
Условие задачи

>Алгоритм поиска делителя херовенький
Массивы ещё не проходили

>Стиль кода шарпов вообще не соблюдён
Я раньше на С++ писал
Аноним 04/08/21 Срд 16:31:35 2116943346
>>2116109
Блять, это страшно, представьте, сколько таких неадекватов сидит по галерам. Представили? Воздуха в грудь набрали? А теперь сопоставьте с качеством современного софта.
Аноним 04/08/21 Срд 16:35:54 2116946347
>>2116939
>Условие задачи
Текст задачи в студию
>Массивы ещё не проходили
Не в массивах дело
>Я раньше на С++ писал
Вообще никого не волнует
Аноним 04/08/21 Срд 16:37:41 2116947348
>>2116943
А потом такое товарищ обсирается писать адекватные тесты к своим поделкам, тимлид его ебет в сраку и он таки исправляется
Аноним 04/08/21 Срд 17:00:18 2116969349
price-04-task.jpg 87Кб, 569x559
569x559
>>2116946
>Не в массивах дело
А в чём?
Аноним 04/08/21 Срд 17:26:53 2116988350
>>2116969
>А в чём?
Начнем с того, что не требует массивов: ты проверяешь простые множители начиная с n-1. По факту, максимальный простой множитель числа не может привышать квадратный корень из этого числа. Или другими словами minPrimeFactor * minPrimeFactor <= n

Второе: ты декриментируешь минимальный простой множитель на 1. Ни одно четное число (кроме 2) не может быть простым. Т.е. ты непонятно зачем гоняешь в 2 раза больше проверок чем нужно

Третье: Для большинства чисел куда более вероятно найти минимальный простой множитель быстро, чем максимальный. Например, в твоем примере с 50 ты шел с 49 до 5 пока не нашел простой множитель. Если бы ты шел с 2, то ты нашел бы один из множителей сразу.

Что требудет массивы и прочие коллекции:

Динамическое программирование и мемоизация. Если ты уже проверил, что 2, 3, 5, 7 и 11 простые числа - имеет смысл это запомнить и использовать в будущем. А когда ты обнаружишь, что и 13 тоже простое число - это тоже стоит запомнить.

Что не относится к алгоритму:
Тебе нужно вернуть строку, но что ты там внутри используешь никого не волнует. Когда выучишь массивы, будет иметь смысл взглянуть на функцию string.Join
Аноним 04/08/21 Срд 18:56:30 2117055351
>>2116943
Няша, мой софт качественный. Очень качественный. По сути, за все время моей работы - только первый проект был тем, где было найдено на этапе тестирования хотя бы что-то что пришлось править, все остальные проекты - дорабатывались только в плане добавления нового функционала. И с моим подходом - это делать было пиздец как легко. Код мягкий как пластелин, все по папочкам расфосовано и легко найти, хочешь поменять что-то - одну лямбду поправил и все.
Аноним 04/08/21 Срд 18:59:57 2117060352
image.png 32Кб, 515x639
515x639
Аноны, хелп, почему он не видит статический метод?
Аноним 04/08/21 Срд 19:05:26 2117066353
Аноним 04/08/21 Срд 19:06:09 2117067354
>>2117066
Реально, я чёто туплю
Аноним 04/08/21 Срд 19:09:12 2117071355
Это нормально, что подача в "The C# Player's Guide" такая жидкая и без подробностей? На метаните подробнее, пачиму так?
Аноним 04/08/21 Срд 19:12:58 2117076356
>>2117071
Да? Давай без подглядывания отличие контрвариантности от ковариантности.
Аноним 04/08/21 Срд 19:14:42 2117079357
>>2117076
Я пол книги только прошёл и разве контрвариативность - это не перегрузка метода?
Аноним 04/08/21 Срд 19:15:16 2117081358
Аноним 04/08/21 Срд 19:16:02 2117082359
>>2117081
а нет, всё правильно, я покаки сделал
Аноним 04/08/21 Срд 19:16:27 2117083360
>>2117079
Дженериков не было до половины книги?
Аноним 04/08/21 Срд 19:16:29 2117084361
>>2117082
>контрвариантность*
Аноним 04/08/21 Срд 19:18:15 2117088362
>>2117083
Сложно, хз что это. Пол книги - это синтаксис C# и начало ООП
Аноним 04/08/21 Срд 19:20:41 2117093363
image.png 91Кб, 1259x512
1259x512
>>2117088
Нашёл, оно чуть дальше идёт
Аноним 04/08/21 Срд 19:25:23 2117096364
image 177Кб, 1109x641
1109x641
>>2117093
В книге большее 400 страниц. Получается ты не прочитал полкниги.
Аноним 04/08/21 Срд 19:26:37 2117097365
image.png 81Кб, 1072x659
1072x659
>>2117096
Нет, там контента до 301 страницы, дальше какая-то залупа
Аноним 04/08/21 Срд 19:27:24 2117098366
>>2117097
Получается тогда, книга - залупа.
Аноним 04/08/21 Срд 19:28:56 2117099367
>>2117098
Ну хз, просто многое опускается. Там есть какой-то справочник на много страниц, я его после гляну, чтобы всё закрепить
Аноним 04/08/21 Срд 20:05:17 2117115368
>>2117071
Она только на англюсеке?
Аноним 04/08/21 Срд 21:08:16 2117154369
изображение.png 26Кб, 424x440
424x440
изображение.png 22Кб, 382x220
382x220
Бля, я уже вообще мелкомягких не понимаю. На пике один я создал структуру. На пике два создаю её экземпляры. Компилятор выдает error CS0573: "Program.Numbers": в структуре не могут содержаться инициализаторы свойств или полей экземпляров.
Вообще уже не понимаю хули от меня хотят, что тут вообще может быть не так
Аноним 04/08/21 Срд 21:10:34 2117155370
изображение.png 22Кб, 637x426
637x426
>>2117154
В офф доки лазил, вон что там написано. Нихуя не понятно.

ps документация у мелкомягких в целом конечно моё почтение. Но всеравно временами говной ваняет
Аноним 04/08/21 Срд 21:27:11 2117165371
1.png 9Кб, 312x343
312x343
2.png 10Кб, 194x225
194x225
3.png 1Кб, 695x27
695x27
>>2117154
Ты где-то пиздишь, няша.
Твоя ошибка похожа на то что ты внутри класса - не в конструкторе пытаешься создать экземпляр класса, допустим что-то типа int[] _arr = Array.Empty<int>() или пустую строку.
Аноним 04/08/21 Срд 21:31:00 2117169372
>>2117165
>>2117154

Блядь, как же я давно структурами не пользовался.
Суть. Там вообще нельзя задавать не в конструкторе значения по умолчанию, потому что конструктор по-умолчанию подразумевает что все поля структуры должны будут иметь дефолтные значения, потому кста и нельзя переопределить пустой конструктор.
Да. Ты своими скринами спиздел. Врун-врун на башке чугун!
Аноним 04/08/21 Срд 21:45:03 2117191373
>>2117076
Одно позволяет использовать без каста обьект/лист/женерик как чайлд тип, если он парент, второе наоборот как парент, если чайлд.
хуй знает. Типа IEnumerable<Cat> передавать как аргумент IEnumerable<Animal>
Ща пойду гуглить как правильно.
Вы мне перезвоните?
Аноним 04/08/21 Срд 21:57:07 2117201374
>>2117169
А смысл мне пиздеть на анонимном форуме, красавчик? Я тут решение пришёл искать
Не, я до этого конструктор описал параметров со значениями по умолчанию, всеравно агрится. Да и не пустой конструктор я переопределяю, кажется.

Вот кст нарыл на православном киберфоруме ссыль:
https://www.cyberforum.ru/csharp-beginners/thread415932.html

Там у людей такая же пробелма, но они на visual studio думают, мол её баг. Я vscode няшным пользуюсь на линуксе, поэтому скорее всего проблема конкретного компилятора, ну или что там в дотнете на месте компилятора, до сих пор разобрать не могу
Аноним 04/08/21 Срд 21:59:47 2117206375
изображение.png 66Кб, 408x832
408x832
>>2117169
Вот, даже без параметров по умолчанию сделал, простой конструктор с двумя параметрами принимаемыми, всеравно таже ошибка.
А почему ты структуры давно не юзал в работе? По мне самый няшным и минималистичный инструмент
Аноним 04/08/21 Срд 22:05:33 2117213376
>>2116015
Говорят F# работает медленнее даже петухона. И что элементарные казалось бы конструкции разворачиваются в десятки тысяч строк IL-кода.
Это правда?
Аноним 04/08/21 Срд 22:08:19 2117220377
>>2117206
: this() в консструктор ебни. И хватит русич использовать в студиях.
Аноним 04/08/21 Срд 22:08:59 2117222378
>>2117213
> в десятки тысяч строк IL-кода.
В ИЛИТНЫЕ десятки тысяч строк, прошу заметить.
Аноним 04/08/21 Срд 22:13:35 2117227379
>>2117154
Вот кстати не понятно, почему структурам нельзя сделать инициализацию хотя бы константой, известной на этапе компиляции.
Раз уж всё равно туда нули прописывают, лучше бы уж дали возможность прописать что-то полезное.
Кстати, можно ли в шарпе отключить авто-инициализацию структур нулями (дефолтами), чтобы съэкономить лишние такты как в серьзном С++?
Аноним 04/08/21 Срд 22:13:58 2117229380
>>2117206
>>2117206
Попробуй из консоли тогда собрать.
>>2117220
Зачем, если это не обязательно? Ну серьезно, у меня-то тот код собирается.
Основные ограничения же:
> You can't declare a parameterless constructor. Every structure type already provides an implicit parameterless constructor that produces the default value of the type.
> You can't initialize an instance field or property at its declaration. However, you can initialize a static or const field or a static property at its declaration.
> A constructor of a structure type must initialize all instance fields of the type.
> A structure type can't inherit from other class or structure type and it can't be the base of a class. However, a structure type can implement interfaces.
> You can't declare a finalizer within a structure type.
Аноним 04/08/21 Срд 22:20:27 2117234381
>>2117220
ты имеешь ввиду передача самого себя первым параметром? Дык оно же неявно подставляется, если я всё правильно читал.
>>И хватит русич использовать в студиях.
хз, я чисто из консоли заинсталил, по стандарту русский был, походу где-то в метаданных линукса нарыло стандартный язык системы. Так мне как-то всеравно

>>2117227
Без понятия, няш, я шарп месяц учу, перекатываясь с прекрасно отвратительных плюсов. С великой долей вероятности, какими нибудь костылями да можно.

>>2117229
>>Попробуй из консоли тогда собрать
Ну я в консоли и пишу dotnet run, хз, ты имеешь ввиду какие нибудь конкретные флаги поставить?

Аноним 04/08/21 Срд 22:35:07 2117244382
>>2117227
> ты имеешь ввиду какие нибудь конкретные флаги поставить
Я имею ввиду - csc использовать.
Хотя все равно хуй знает почему у тебя не собирается, а у меня - собирается. Попробуй пеку перезагрузить, удалить bin и obj
Аноним 04/08/21 Срд 23:06:15 2117277383
>>2117165
А я нашёл проблему, няш. Я то создаю экземпляры Number в другой структуре Numbers. При чём инициализирую объекты структуры прям при объявлении, глянь ещё раз. Оно походу именно на это и агрится. правда как сделат по другому, красивенько, я хз, щяс буду думать.
Аноним 04/08/21 Срд 23:13:51 2117281384
Что такое стандартыне структуры данных BCL?
Взял книгу Аноним 04/08/21 Срд 23:13:57 2117282385
Что скажете о пикрил? Случайно увидел в читай городе
Аноним 04/08/21 Срд 23:14:42 2117283386
ECF065D4-BF49-4[...].jpeg 2312Кб, 4032x3024
4032x3024
Аноним 04/08/21 Срд 23:17:21 2117284387
>>2117283
>русич
>2к16
Ну хуй знает. Выглядит не оч.
Аноним 05/08/21 Чтв 03:14:46 2117408388
>>2117284
И что поменялось с 2016 года? .NET Core тогда уже был.
Аноним 05/08/21 Чтв 07:59:53 2117476389
>>2117115
Да вроде, но у меня он хороший, я на русском не искал
Аноним 05/08/21 Чтв 08:27:41 2117485390
>>2117408
Книги за 2018 уже устарели, потому что там нет .NET 5, а тут 2016. Плюс русские авторы обычно какие-нибудь преподы из универа и пишут для студентов. Т.е. курс базовый и очень упрощенный, чтобы поняли даже самые деревянные. Как первая книга пойдёт, но потом всё равно придётся искать более углубленную книгу типа Троелсена.
Аноним 05/08/21 Чтв 08:47:27 2117488391
Работаю уже третий год, начал задумываться о релокейте, решил немного ознакомиться с вопросами для собеседований. Это список вопросов для миддла. Я с большими оговорками смог бы ответить только на второй и четвертый вопросы. Получается я хреновый программист или подготовка к собеседованиям это отдельный вид спорта? Вроде работаю вполне свободно, огромный проект, технология немного устаревшая, но все же.
Аноним 05/08/21 Чтв 08:48:01 2117489392
image.png 634Кб, 1412x602
1412x602
Аноним 05/08/21 Чтв 09:28:22 2117499393
>>2117488
я вот фронтэндер, у меня на первой работе был кодер с опытом более трех лет, он засыпал отборочный собеседование сказав что не знает что такое промис, ну а что, если вся асинхронность была или абстрагирована или написана другими

это значит ты плохо знаешь язык
Аноним 05/08/21 Чтв 10:45:49 2117558394
>>2117488
Я - релоцировавшийся сеньор. Могу ответить на 7-8 вопросов из списка. Это не список вопросов на миддла, это хрень. Задавать на чобесе вопросы с правильными ответами - крайне неэффективно. Мне на собесе куда важнее посмотреть как ты думаешь, нежели твое знание кишочков.
Аноним 05/08/21 Чтв 10:47:31 2117561395
>>2117558
Ну отвечаф. Давай без гугла ток. Хгтя ты уже и так нагуглился.
Аноним 05/08/21 Чтв 13:04:59 2117674396
>>2117283
Вы охуели, я ещё даже не вкатился, но для меня эти вопросы лёгкие. Ну может, если про сборщика копнуть, то я поплыву, хотя про поколения, уплотнение и очередь финализации расскажу.
Аноним 05/08/21 Чтв 14:34:10 2117792397
>>2117674
так ты еще гарячий и читаешь всякие книженции и "интересные" статьи по такому вот говну.
А солидному синиору надо ерс на СТО загнать и жену порадовать.
Аноним 05/08/21 Чтв 14:34:42 2117793398
>>2117674
Ну и давай, отвечай без гугла.
Аноним 05/08/21 Чтв 14:37:48 2117798399
>>2117792
Это в какой днищепомойке такие сеньоры подпивасники?
Аноним 05/08/21 Чтв 16:31:12 2117936400
image.png 9Кб, 486x81
486x81
Аноны, которые шарят в идентити и Linq как мне получить список пользователей по определенной роли? Что бы получить то же самое что на query на пикриле, но в линке?

продублированная команда текстом:
select AspNetUsers.Id, UserName
,[dbo].[AspNetRoles].Name
from AspNetUsers
inner join AspNetUserRoles on AspNetUserRoles.UserId = AspNetUsers.Id
inner join AspNetRoles on AspNetRoles.Id = AspNetUserRoles.RoleId
Аноним 05/08/21 Чтв 18:04:16 2118038401
>>2117936
ХЗ что там с идентити
Чисто допустим там стандарт
var res = from u in db.Users
where u.Roles.Any(r=>r.Name == name) // допустим ты хочешь по имени роли найти
select new {u.Id. u.Name}//то что тебе там надо
Аноним 05/08/21 Чтв 18:50:27 2118093402
>>2117798
На помойках таких нет, там зарплаты слишком низкие, чтобы таких синьоров себе позволить.
Аноним 05/08/21 Чтв 19:28:36 2118161403
>>2117488
>Я с большими оговорками смог бы ответить только на второй и четвертый вопросы.
Ебать ты дно. Ты точно программист? 1 и 2 вопрос - это основы дотнета, 3 и 4 вопрос - спрашивают на каждом собеседовании, 5, 6 и 7 - чисто логически можно ответить, если основы знаешь. Т.е. по сути здесь только 3 вопроса, ответ на которые возможно не знать.
>подготовка к собеседованиям это отдельный вид спорта?
Да.
Аноним 05/08/21 Чтв 19:30:18 2118165404
>>2118161
Ответь на третий, умник
Аноним 05/08/21 Чтв 19:32:06 2118166405
>>2118161
>1 и 2 вопрос - это основы дотнета
Ни разу за 5+ лет не использовал кенселейшн токены. И вообще поебать где там что хранится. Ты и сам в своем ответе оборешься с большой вероятностью "гыгы на стеке а то на куче говна"
Аноним 05/08/21 Чтв 19:49:49 2118185406
>>2117489
1. Ебнуть поток в котором таска выполняется)))
2. Как реализуют платформу, так и будут)))
3. Ну, ыыы, кароч, берет и помечает кусок кучи как свободный.
4. Да.
5. Тупой вопрос. Вообще хуй знает что подразумевается под создание. Статика вызовется сначала.
6. Еще один тупой вопрос. Потому что непонятно что значит переопределено. Есть таблица виртуальных методов. В случае если метод виртуальный - будет происходить поиск в этой таблице и нахождение последнего переопределения.
8. Еще один ебанутый вопрос. Потому что нихуя не понятно что значит 2 интерфейса. Имеется ввиду IEnumerator и IEnumerable? Или женерик-неженерик? В обоих случаях - исторически сложилось.
9. Это вообще пиздец с точки зрения постановки вопроса. Что, блядь, значит понимает? Компилятор ничего, блядь, не понимает. С точки зрения того как оно реализовано - хуй знает, я в кишки не лез, подозреваю что опять там стейтмашина хуячится, как с тасками.
10. Можно хоть мамашу передать, если у нее есть метод GetEnumerator
Аноним 05/08/21 Чтв 19:53:15 2118189407
>>2118185
> 4
Или нет)))
Вот это таки из тех вопросов, которые пиздец бесят. В жизни не возникало желания вообще что-то там в конструкторе вызывать. Конструктор должен просто проверить аргументы на валидность и проинициализировать поля, все. Какие, блядь, нахуй методы в конструкторе? Может быть еще из бд запросы читать в конструторе, нахуй? А может быть бесконечный цикл ебнуть? Охуеть, блядь.
Аноним 05/08/21 Чтв 19:53:37 2118190408
vxc.png 36Кб, 1074x367
1074x367
bgbrt.png 23Кб, 936x361
936x361
Помогите ньюфагу плез, что я делаю не так?
Аноним 05/08/21 Чтв 19:54:35 2118192409
Аноним 05/08/21 Чтв 19:58:08 2118205410
>>2118192
Спасибо. А почему, если я использую =, то обязательно нужно преобразовать всё в bool?
Аноним 05/08/21 Чтв 20:01:24 2118214411
>>2118205
Нет.
Вообще, присматривайся блядь в ворнингам в студии, вон тебе сколько хуйни отметило. Или еще лучше поставь какой-то линтер, сонарсканера, например. И не еби тут мозги. Пока он тебя лучше научит, чем ананимасы тута.
Аноним 05/08/21 Чтв 20:02:33 2118216412
>>2118205
В шарпе '=' - присвоение, т.е. ты говоришь что левый операнд теперь имеет значение правого
'==' - булева операция сравнения, которое вернет true если левый и правый операнды - равны(в зависимости от того что там определили как равные и не переопределили ли сам оператор)
Аноним 05/08/21 Чтв 20:06:16 2118222413
Аноним 05/08/21 Чтв 20:06:27 2118223414
lin.png 20Кб, 712x286
712x286
Аноним 05/08/21 Чтв 20:08:20 2118227415
Анончики, как избавиться от ебаных бесконечных if?
Аноним 05/08/21 Чтв 20:15:18 2118239416
Аноним 05/08/21 Чтв 20:16:07 2118241417
Как выводить кубические и прочие корни?
Аноним 05/08/21 Чтв 20:19:46 2118248418
>>2118241
Math.Pow - возведение в степень. А если ты учился в школе, то наверняка знаешь как выразить корень через степень.
Аноним 05/08/21 Чтв 20:21:29 2118250419
Аноним 05/08/21 Чтв 20:22:00 2118252420
1.png 89Кб, 637x824
637x824
>>2118190
Я бы как-то так сделал...
Аноним 05/08/21 Чтв 20:32:24 2118261421
>>2118252
Хуя. Немножечко тырпразно, но код ревью не пройдет: схуяли рид инпут что-то там еще консолит, сингл респонсибилити нахуй. РидИнпут - какой инпут? Оно у тебя на ероре в бесконечный луп зайдет но баги это не задача од ревью, так шо - сойдет
Пашиму только флоат? А ну пездуй другие типы раздрачивать.
Аноним 05/08/21 Чтв 20:37:36 2118269422
1.png 9Кб, 445x151
445x151
2.png 116Кб, 982x857
982x857
>>2118252
Небольшой рефакторинг
Аноним 05/08/21 Чтв 20:55:14 2118290423
>>2118269
Я б тебе в тапки нассал только за то что ты TryConvert метод обозвал Convert, не говоря уже про всё остальное.
Аноним 05/08/21 Чтв 20:59:42 2118295424
>>2117489
Есть видео на тытруба, где разбирают 1 в 1 эти же вопросы. Скрин вроде из этого видео.
Аноним 05/08/21 Чтв 21:01:41 2118297425
Аноним 05/08/21 Чтв 21:01:48 2118298426
Аноним 05/08/21 Чтв 21:03:47 2118300427
>>2118290
Шо все остальное? Я лично из проблем вижу только то что инициализация не ленивая, ну и хорошо бы было вынести набор действий в конфигурацию, чтобы можно было передавать в конструкторе список операций которые умеет калькулятор делать.
>>2118298
Вот кста у меня на работе сеньеры примерно так же и пишут. Горит с них. С другой стороны - у них горит с моего >>2118269 кода, так что хуй знает какой там код считать хорошим.
Аноним 05/08/21 Чтв 21:07:34 2118302428
>>2118300
>Шо все остальное?
Покаж мне твои юнит тесты для метода Calculate.
Если будешь чесать нос залезая в жопу - не только в тапки нассу, а еще и насру.
Аноним 05/08/21 Чтв 21:08:15 2118304429
Аноним 05/08/21 Чтв 21:08:18 2118305430
>>2118298
Выглядит как велосипед. Шо нету какой-то либы крон парсера? Если нету, то спиздить у квартца какого-то
Аноним 05/08/21 Чтв 21:09:22 2118306431
16272399811670.jpg 149Кб, 927x1200
927x1200
>>2118304
Ага, спасибо.
есть еще видосы с собесов норм, можно на англ?
Аноним 05/08/21 Чтв 21:15:50 2118309432
Аноним 05/08/21 Чтв 21:19:43 2118314433
>>2118309
А еше у него фаил назван с маленькой буквы. А больше проблем нет.
Аноним 05/08/21 Чтв 21:20:29 2118318434
>>2118309
>DateTime - это не момент времени.
А что?
А DateTimeOffset?
Аноним 05/08/21 Чтв 21:22:02 2118320435
>>2118314
Венгерская нотация, дебильное название переменных t1, сокращает слова Prev. Это я еще комменты не читал.
Аноним 05/08/21 Чтв 21:22:28 2118322436
>>2118318
Тоже хуйня, Offset - это не момент времени.
Аноним 05/08/21 Чтв 21:42:10 2118351437
>>2118322
Почему? Точка отсчета известно, смещение есть.
Аноним 05/08/21 Чтв 21:45:17 2118354438
>>2118351
1. Не UTC.
2. У каждого юзвера свое смещение.
3. Свое летнее время, которое меняется пяткой левой ноги.
Аноним 05/08/21 Чтв 21:48:59 2118358439
>>2118304
>Platinum DEV
>линкпад лиценсед ту ЕРАМ
лол. Зайчик пойман
Аноним 05/08/21 Чтв 21:49:32 2118359440
>>2118354
Ну а если ебнуть ТуЮтс, то будет "момент времени"?
Аноним 05/08/21 Чтв 21:50:12 2118360441
1.png 20Кб, 388x291
388x291
Аноним 05/08/21 Чтв 21:52:42 2118362442
>>2118359
Нет.

Although a DateTimeOffset value includes an offset, it is not a fully time zone-aware data structure. While an offset from UTC is one characteristic of a time zone, it does not unambiguously identify a time zone. Not only do multiple time zones share the same offset from UTC, but the offset of a single time zone changes if it observes daylight saving time. This means that, as soon as a DateTimeOffset value is disassociated from its time zone, it can no longer be unambiguously linked back to its original time zone.

+ ты теперь еще и бесполезный Offset таскаешь.
Аноним 05/08/21 Чтв 21:52:49 2118363443
>>2118360
Уже аж целых два костыля нахерачил. Поздравлю.
Аноним 05/08/21 Чтв 22:04:47 2118374444
>>2118363
Тест есть? Есть. Какие еще вопросы-то?
Тем более что вот у нас вообще кроме меня - никто тесты не пишет, все по фидбеку с прода чинят.
Аноним 05/08/21 Чтв 22:20:11 2118389445
>>2118374
Вопросы к твоим костылям. А оправдания "а у нас сеньоры негров линчуют" звучат смешно.
Аноним 05/08/21 Чтв 22:28:58 2118398446
>>2118389
Ок, Покажи как ты будешь сам тестировать работу какого-нибудь HttpListener?
Аноним 05/08/21 Чтв 22:50:06 2118407447
>>2118398
1) Если очень нужно - оберну HttpListener в свой интерфейс и буду использовать этот интерфейс
2) Не буду использовать HttpListener, а выберу тот же KestrelServer, который можно спокойно мокать.
Аноним 06/08/21 Птн 09:45:57 2118627448
image.png 25Кб, 1157x171
1157x171
Аноним 06/08/21 Птн 12:53:31 2118886449
А как скомпилировать проект в один маленький exe файл? При помощи тех способов, что нашел в интернете, получается один файл с размером 70мб за приложение, которое практически на уровне хеллоу ворлда.

Но до этого я же видел десятки утилит, что весят 100-200 кб, которые еще умудряются и гуи иметь, а не только запускаются в консольке, что за магия?
Аноним 06/08/21 Птн 13:01:55 2118898450
>>2118886
подключают системные библиотеки из PATH
Аноним 06/08/21 Птн 13:07:47 2118903451
>>2118898
А как мине это сделать?
Аноним 06/08/21 Птн 14:30:48 2119040452
>>2118886
>десятки утилит, что весят 100-200 кб
Они наверное на каком-нибудь борланде или плюсах написаны. 70 мб - это твоя программа + бутстраппер + весь рантайм. Есть способ ужать до 8кб, но он тебе не понравится, из области ненормального программирования.
Аноним 06/08/21 Птн 14:41:36 2119047453
>>2119040
Я бы кстати раст посоветовал, он еще пизже шарпа, но вот ехешник, увы, весит еще больше.
Аноним 06/08/21 Птн 14:49:05 2119052454
>>2119047
>>2119040
А как тогда делают кучу мелких программок? Неужели везде си и си++? Я не хочу в это верить!

Дай ссылку на способ.
Аноним 06/08/21 Птн 14:52:28 2119054455
>>2119052
>Неужели везде си и си++?
В основном все говно утилитное написано на делфи. На делфи как раз и получается около 300кб.

https://medium.com/@MStrehovsky/building-a-self-contained-game-in-c-under-8-kilobytes-74c3cf60ea04
Я думаю 70 мб - это не проблема. Paint.net весит 74 мб и умеет дохера чего делать. Но для мелких утилит, да, не подходит.
Аноним 06/08/21 Птн 14:58:41 2119063456
>>2119052
Кста, а я мелкие программы делаю на powershell, shell или батниками. Но, как по мне, проще установить .NET 5 и не ебать себе мозг.
Аноним 06/08/21 Птн 21:44:49 2119544457
NqyHRf1uer4.jpg 98Кб, 960x519
960x519
Когда уже можно будет вкатываться?
Аноним 06/08/21 Птн 22:08:50 2119567458
Аноним 06/08/21 Птн 22:58:27 2119636459
>>2118627
Это и не должно работать. Ты хуйню какую-то написал.
Аноним 07/08/21 Суб 00:57:49 2119724460
>>2119544
1) Когда установишь спеллчекер
2) Когда выучишь английский
Аноним 07/08/21 Суб 01:25:48 2119734461
Сап. Есть проблема - приходит реквест (моделька) с кучей булевых, каждая переменная из которых отвечает за определенный функционал. В данный момент реализация через хуеву тучу if проверок. Внимание вопрос - как из модельки выпилить все False переменные? Подходят любые варианты маппинга, только чтобы без простыни условных операторов и без рефлексии (это overhead и является слабосвязным, при расширении логики человек, который будет этим заниматься должен знать, что есть такой магический метод с рефлексией, иначе новое поле выпадет из логики). Спасибо
Аноним 07/08/21 Суб 01:47:13 2119741462
>>2119734
>из модельки выпилить
Как ты собрался это делать без рефлексии? Сисярп тебе не жыэс.
Аноним 07/08/21 Суб 01:51:46 2119742463
>>2119734
А, ну и скинь текущую реализацию, так проще будет понять, возможно ли то что ты просишь вообще сделать.
Аноним 07/08/21 Суб 08:09:07 2119780464
>>2119544
Сейчас в программисты берут только по блату, а для незнакомых устраивают жесткие собесы, чтобы их не брать.
Аноним 07/08/21 Суб 08:53:33 2119789465
>>2119780
>по блату ряяя
Бумер, это называется нетворкинг
мимо нашел работу познакомившись с тимлидом в дискорде
Аноним 07/08/21 Суб 09:03:04 2119792466
>>2119780
>а для незнакомых устраивают жесткие собесы, чтобы их не брать.
Тут где-то кинули мысль - все эти собесы нужны не то чтобы не брать, а чтобы собеседующий согласился работать за еду

Эта схема такая - приходишь, и тебя начинают прессовать ища момент. Даже если ты идеально знаешь свою область (что вряд ли), начнут спрашивать что-то левое - если студия держит репутацию, то это будут вопросы уровня "почему люки круглые" (гугл, я про тебя). если нет - то начнут спрашивать про базы данных, сайты, безопасность или даже как починить кофемолку. Например недавно я ржал (сквозь слезы) с одной видеозаписи скрытой камеры, где собеседующему прямо говорили что он будет делать все что ему скажут - выходить на выходных, фиксить баги в 5 утра, выполнять другие поручения.
Аноним 07/08/21 Суб 11:10:48 2119835467
>>2119789
>мимо нашел работу познакомившись с тимлидом в дискорде
Сосешь у него?
Аноним 07/08/21 Суб 11:12:02 2119838468
>>2119741
я вот тоже задумываюсь как
>>2119742
https://pastebin.com/eZcfW2b9 - вот текущая реализация
Мне посоветовали такое решение - https://stackoverflow.com/questions/31580534/design-patterns-that-can-replace-if-statements
но проблема в том, что блоки просто выносятся в фабрики (насколько я это понял) и вся простыня переносится из одного места в другое
Аноним 07/08/21 Суб 12:11:08 2119866469
>>2119780
Практически в любой конторе с известным именем и ассоциациями с большими зп, на хорошие должности берут ТОЛЬКО по блату ответственной рекомендации кого-то из действующих сотрудников.
Потому что с улицы нанять кого-то - слишком дорого. Кто будет фильтровать горы резюме всяких непрофильных долбоёбов и пиздаболов? Кто будет их собеседовать?
Это не касается широкопрофильных специалистов, которых очень много на рынке, и которые легко заменяемы другими такими же (программист на популярных стеках/фреймворках, клинеры, курьеры, водители и т.п.)
Аноним 07/08/21 Суб 12:44:32 2119882470
image.png 728Кб, 750x548
750x548
Аноним 07/08/21 Суб 13:03:43 2119901471
5fa8317ec6005.jpeg 124Кб, 720x683
720x683
Двощик. Пытаюсь что-то изучить и столкнулся с заданием желанием запилить метод который создаёт Массив с количеством измерений указанных пользователем.
Как это сделать? Я даж загуглить не смог свой вопрос.

Есть Rank, дак он только узнаёт сколько там уже есть. Есть GetLenght. Дак он тоже только узнаёт длину каждого измерения.

Мне надо чтоб:

int b = сколь надо?;
int array[ , , , , , ] вот сколь указали чтоб столько измерений и было.

Подскажи, оверфлотч.
Аноним 07/08/21 Суб 13:11:58 2119906472
dno.png 34Кб, 643x464
643x464
Аноним 07/08/21 Суб 13:15:56 2119910473
>>2119906
Array.CreateInstance

Пасиба :3. Я и не знал что там есть такой.
Аноним 07/08/21 Суб 13:22:20 2119919474
>>2119838
Чел, твоя реализация - не реализация. Что за NewModel? Такого типа нет в твоём коде. Каким образом из MyModel получается NewModel? Ничего нет. Напиши подробнее код. Если же тебе просто дергать какие-то действия надо на те флаги, которые true, то это через рефлексию делается в один цикл по всем таким флагам.
Аноним 07/08/21 Суб 13:43:59 2119933475
>>2119919
> Каким образом из MyModel получается NewModel
Маппинг + рефлексия, но такой подход не катит, т.к. слабосвязный + плохо поддерживается. Вот поэтому и сушу мозги, как это переписать без горы if и без рефлексии.
Все было бы ничего, но в моделе уже ~ 30 булевых и это количество может расти. Жаль нет метода рассширения у type для скипа полей, если bool - false
Аноним 07/08/21 Суб 13:50:17 2119938476
1.png 37Кб, 610x721
610x721
>>2119734
Cудя по тому что ты выложил, тебе лучше всего прикриплейд подойдет.
Выпиливать из модели что-то это какая-то шиза говна и не понятно вообще что ты хочешь добиться.
Аноним 07/08/21 Суб 14:02:53 2119956477
Sample.png 67Кб, 757x568
757x568
Аноним 07/08/21 Суб 14:11:07 2119962478
>>2119933
Чел, сишарп это стронгли тайпед язык, какое нахуй расширение для скипа полей. Ты объявил поле, значит оно всегда будет теперь у этого типа, жёстко. Смысл стронгли тайп языков именно в этом. В рантайме его изменить тоже нельзя без изъебств с IL. Да и зачем так делать - непонятно. Вероятно ты с самого начала выбрал неверный подход к решению своей задачи. А поскольку код на пастбине, который ты прислал, вообще ничего не говорит о твоей задаче, все супер абстрактно, то сложно понять общую картину, чтобы подсказать другие пути решения.
Аноним 07/08/21 Суб 14:16:26 2119965479
Sample.jpg 27Кб, 525x164
525x164
>>2119962
Именно потому я давно предлагаю в шарпе все через dynamic писать, ну или как минимум делать что-то типа прикриплейда
Аноним 07/08/21 Суб 14:17:35 2119967480
>>2119956
Ага, только с результатом, который obj, работать невозможно будет, поскольку его никуда не скастуешь, кроме dynamic. А через dynamic работать - ну, отдельный пиздец, сам понимаешь. Если ему нужно только в джейсон это положить, то сойдёт.
Аноним 07/08/21 Суб 14:19:12 2119971481
>>2119965
Блядь, в попыхах забыл.
короче
> public object this[string memberName] => _members[memberName];
фикс
Аноним 07/08/21 Суб 14:21:10 2119972482
>>2119965
Блядь, ты ебобо? Зачем ты выбрал шарп тогда, если не умеешь работать с языками в которых сильная типизация? Пиши на js, ts, python, ruby или чё там ещё.
Dynamic нужен только в очень узких случаях, если ты его применяешь ВЕЗДЕ, то у тебя по сути отсутствует какая-либо проверка на ошибки и до компиляции, и после, и только в рантайме оно у тебя свалится. Как и никаких линтеры, плагины для рефакторинга при таком подходе работать не будут.
Аноним 07/08/21 Суб 14:29:14 2119976483
>>2119967
Так в obj я положил потому что не знаю что у него там за хуйня предполагается. Там вообще постановка вопроса странная. В том виде что он хочет - ему вообще нужен был бы просто словарь, а не такая вот модель с кучей полей. Как раз - просто мог бы фильтровать, добавлять новые в рантайме и т.д.
>>2119972
Я не ебобо. И да, было время, что я думал о статической типизации так же как ты, но потом я поработал с ЖС и господи, как же это прекрасно, когда ты в рантайме можешь дохуячить новый метод, можешь добавить полей, можешь вообще что хочешь делать.
Короче, это свобода, это удобство. И теперь меня не удивляет, чего в Ненси использовали dynamic.
А шарп я выбрал, потому что за него платят неплохо и из-за опыта в шарпах - перекат в ЖС == просадка по ЗП значительная, даже с учетом того что и в ЖС у меня есть опыт.
Аноним 07/08/21 Суб 14:40:38 2119987484
>>2119976
Чел, и статическая типизация, и динамическая имеет свои преимущества и недостатки. Выбирая язык со статической типизацией, предполагается что ты будешь использовать его систему типов и понимать, что она даёт, так же и с динамикой. А не стараться подогнать этот язык под другой - если так происходит в 99% случаев, ты явно выбрал не тот инструмент для твоей задачи или же не хочешь учиться правильно использовать этот инструмент. Это не срач "сисярп лучше жыэс" или наоборот, языки для разных задач созданы. Если ты вилкой пытаешься есть суп - согласись, это странно выглядит.
Аноним 07/08/21 Суб 14:53:04 2120000485
>>2119734
Десереализуешь в словарь
.Where(kv => kv.Value == true)
Аноним 07/08/21 Суб 15:37:46 2120056486
>>2119987
Няша, ты будто никогда не работал на проекте который долго живет.
Выбирали по одним критериям, плюс люди, которым в вузе вбили в голову что статика - ванлав и вообще, только длбоебы динамику используют. В итоге - проект есть, давно работает и все норм, но вот возникает задача - клиент присылает json, сервер должен на основе - собрать форму и отдать клиенту, формат json-а в виде:
{
"RequestActions":
[
"Action1" : {"UserName":"Pupkin", "Password" : "MatEbal"},
"Action2" : [{"Computers" : {"Filter": [{"Price" : ["<", 100000]]}}],
"Action3" : "MakeMeBeer"
"Action4" : {"$ref":"#/fuck/your/mom", "params":[{"$ref":"#/fuck/your/dad"}]}
]
}
И это в упрощенном виде кусочек того пиздеца который должен вообще быть обработан.
А задачка-то разве сложная? Пришел запрос на сервер, сервер должен сгенерировать несколько форм и временные эндпоинты, чтобы пользователь мог что-то в них ввести, сервер бы это получил и схоронил/как-то обработал. Изи же. И на ноде оно делается действительно изи, но присобачивать сбоку ноду, когда у вас монолит, ну такое себе решение.
Аноним 07/08/21 Суб 15:56:48 2120085487
>>2120056
Да если конкретная задача - без проблем, ты вроде писал про использование dynamic везде, а не под конкретную задачу, где без нее будет супер громоздкий пиздец. Под такие единичные случаи в шарпе она и существует. Я не говорю, что статика заебись, а динамика плохо - все относительно. Речь про грамотное использование инструмента.
Аноним 07/08/21 Суб 15:57:33 2120087488
>>2120056
Двачую. Статическая типизация давно себя изжила. Да, перформанс сенситивити кейсы всё ещё требуют осторожного обращения с типами, но НИКТО НЕ ПИШЕТ ИХ НА C#. Их пишут на С/С++/ASM, где ВНЕЗАПНО кстати тоже нет никакой статической типизации.
По сути дела статическая типизация - это лишь некая вытекающая из концепции ООП характеристика, чтобы всякие интерфейсы и наследования работали. Больше ни за чем это не нужно.
В реальных кейсах статика просто порождает кучу бессмысленного и кода, за который бизнесу приходится платить. Т.е. в нормальном языке типа JS, ты можешь сразу из коробки получить класс с произвольными рантайм депенденс полями и методами, аккуратно под задачу, и сразу работать и решать бизнес задачу, то в дотнете и прочих пережитках ты под каждый набор данных вынужден городить классы-уроды либо опять таки хуячить словари-уроды string-object. ЗАЧЕМ? А бизнесу за это платить.
Надо убить некоторое легаси в JS и мы получим ультимейт язык будущего.
По перформансу за счёт сотен миллиардов вложенных в браузерную оптимизацию JS уже давно на уровне лучших решений на С.
Аноним 07/08/21 Суб 16:04:42 2120094489
>>2120087
>По сути дела статическая типизация - это лишь некая вытекающая из концепции ООП характеристика

Как связаны вид типизации и парадигма программирования? А как же функциональные языки с ещё более строгой типизацией, но без этих проблем вроде порождения бессмысленного кода?
Аноним 07/08/21 Суб 16:05:01 2120095490
>>2120087
Поэтому с js переходят на ts, да?
Аноним 07/08/21 Суб 16:39:33 2120159491
>>2120095
Где-нибудь в банках, а остальные так и хуярят на жс, тем более есть новые врсии языка и бабель.
Аноним 07/08/21 Суб 16:45:05 2120166492
>>2120094
ООП основано на возможности использовать отношения типа Manager является Person, и соответственно, повторное использование кода и в некотором роде динамичность типизации при сохранении аспекта является. Просто в JS или питоне такой проблемы нет вообще, т.к. в принципе нет ограничений на поведение класса, это динамическая сущность, гибко подстраиваемая под стремительно меняющиеся бизнес-объекты из реального мира.

>А как же функциональные языки
Функциональные языки - отличное хобби для борщехлёба. К сожалению, на них никто не пишет, и денег за них не платят.

> с js переходят на ts
Из джавы и дотнета люди могут перекатиться в более привычный ts, да. Другого смысла в нём нет. Профессионалы из JS никуда не перекатываются.
Аноним 07/08/21 Суб 16:49:46 2120175493
>>2120166
>Функциональные языки - отличное хобби для борщехлёба. К сожалению, на них никто не пишет, и денег за них не платят.

Найс аргумент, причем тут опять платят или не платят нахуй, мы про связь типизации и парадигмы программирования говорили.
И да, ты скозал? Хоть и реже используются, но вакансии есть.
Аноним 07/08/21 Суб 16:52:10 2120180494
>>2120159
Прикол в том, что как раз если ты используешь бабели и т.п., то ничто не мешает тебе использовать макроязыки вроде TS. Ты ведь всё равно что-то в промежутке гоняешь.

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

В плане ошибок статическая типизация решает очень мало проблем, кроме производительности.

Для современного языка нужна не статическая типизация, а система ограничений на переменные, constrains.

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

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

А статическая типизация это фигня.

Но пока языки только движутся в этом направлении.
Аноним 07/08/21 Суб 17:08:11 2120212495
>>2117213
Нет, не неси хуйню.

F# и C# конвертируются, как ты и сам сказал, в IL.

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

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

Я также напоминаю, что F#, как и OCaml, - это мультипарадигмальный язык ориентированный на продакшен, а не на ФП-боев, и в местах где нужно можно спокойно захуярить оптимизацию, не покидая пределов F#.
Аноним 07/08/21 Суб 17:14:46 2120224496
>>2120212
Какого хуя тогда при всей мультипарадигмальности, стоит мне запостить мой код на F#, все начинают корчить кривые рожи и говорить что-то про фп? А, А?
Аноним 07/08/21 Суб 17:18:56 2120227497
>>2120180
>В плане ошибок статическая типизация решает очень мало проблем, кроме производительности.
Проблема, которую решает статическая типизация - более раннее обнаружение ошибок. Если ты написал код, который не компилируется - ты обннаружишь ошибку еще до того, как твой код запустится хоть один раз.

Если ошибка будет обнаружена только клиентом, её стоимость вырастает астрономически.
Аноним 07/08/21 Суб 17:19:54 2120231498
>>2120180
>В плане ошибок статическая типизация решает очень мало проблем, кроме производительности.
Статическая типизация - это как наличие мыла, не делает тебя элитой и достижением назвать сложно, но без него - ты уже вонючая обезьяна, а не человек.

>>2120224
>все
Кто все? Шизик, проспись.
Аноним 07/08/21 Суб 17:36:47 2120248499
>>2119962
я не буду код с прода кидать на двач, чтобы его тут обсасывали. Я описал проблему, описал условия, этого хватит.
>>2119965
# как статически типизированный язык имеет ряд приемуществ, я бы сказал даже больше, чем в динамическом, как в том же TS, где от any можно голову сломать.

Так или иначе - я пришел к решению, правда его еще не тестировал - conditional mapping. If sourceValue == true, then ...
Проблема только в том, что маппер очень специфический используется, доки почти на него нет, придется с бубном потанцевать
Аноним 07/08/21 Суб 17:45:50 2120254500
>>2120248
Тебе уже третий чел говорит, что проблема и постановка вопроса мутная. Необязательно для этого код с прода тащить, напиши просто более подробно код и с нормальным неймингом, чтобы проблема была ясна на высоком уровне.
Аноним 07/08/21 Суб 19:32:17 2120345501
Как же бесит ебучая магия в шарпе.
Вот какого хуя я должен опытным путем выяснять что нельзя сделать вот так:
HttpRequestMessage requestMessage = new()
{
Content = content,
Method = HttpMethod.Post,
RequestUri = new Uri("http://localhost:8000")
};
while (true)
{
try
{
await client.SendAsync(requestMessage);
}
catch(Exception ex) { Console.Write(ex); }
}
?
Вот почему так? Почему нужно каждый раз новое сообщение создавать? А хуй знает, так кто-то в майкрософт решил, ты - не выебывайся. И чтобы узнать про такое поведение - нужно было положить выключить сервер и словить бяку про то что нельзя использовать один и тот же реквест. Бесит жутко.
Аноним 07/08/21 Суб 21:24:37 2120447502
Тупой вопрос.
Чтобы не было абстрактно дам контекст. Сморите, есть приложение веб-апи, оно запущено в докере. Так вот, внутри докеровской сети - есть несколько других приложений.
Чего я хочу. Я хочу чтобы приложение А, заведомо зная адрес по которому обращаться к приложению B - отправило сообщение и приложение B таким образом бы знало куда слать запросы(ip-port/uri).
Собственно, я не понимаю как это сделать внутри докера. Типа я на локальной машине могу через Dns.GetHostEntry узнать свой IP-адрес внутри сети, допустим я при этом могу через IConfiguration["urls"] - так же узнать и порт. Но меня смущает некоторое мое непонимание - будет ли это все валидно для обращения другого контейнра, в случае если они в одной сети? Может быть кто подобные штуки делал? Потому что я как-бы проверял в докере и оно работает, но вот хуй знает-хуй знает, вот допустим - сервисы будут в разных сетях относительно докера работать, как я понимаю, в таком случае - сервис B - не сможет по тому же IP:port обратиться к сервису A, а хотелось бы.
Просто да, я понимаю что залупа какая-то, в теории проще было бы это на уровень переменных окружения отдать, типа пусть при запуске контейнера я буду брать это из этой переменной и отдавать другому сервису, но это какая-то хуйня как по мне и перекладывание ответственности.
Аноним 08/08/21 Вск 15:50:43 2121053503
>>2120345
Есть же метод PostAsync
С помощью него не нужно каждый раз сообщение создавать самому
Аноним 08/08/21 Вск 18:33:51 2121176504
Untitled.png 14Кб, 501x165
501x165
Тестирую сейчас работу с двумя базами данных, возник такой вопрос. Можно ли написать запрос сразу в две бд (SQL и NOSQL) с необходимыми для меня опциями сортировки? Пробовал что-то типа пикрил, но выбрасывает эксепшн при конкатенации.
Аноним 08/08/21 Вск 18:39:11 2121181505
>>2121176
Можно. Все что нужно - сконфигурировать контекст для определенного провайдера.
Аноним 08/08/21 Вск 18:42:03 2121184506
>>2121053
Ну, допустим я не знаю в том куске кода будет ли пост, гет или еще что-то и сообщение приходит из фабрики. И логика в том что в случае отсутствия ответа, либо невалидного ответа - я должен несколько раз попробовать переотправить запрос.
Да и не то чтобы проблема, пофиксил перенеся это все внутрь цикла, просто сама эта магия бесит. Узнаешь о таком поведении только опытным путем.
Аноним 08/08/21 Вск 18:44:10 2121187507
>>2121181
А что под еф уже завезли провайдеры для NoSql баз?
Аноним 08/08/21 Вск 18:50:13 2121194508
>>2121187
Оффициальных - нет. Но какая разница-то? Да и сам можешь запилить, не так это сложно.
Аноним 08/08/21 Вск 22:46:54 2121392509
Аноним 09/08/21 Пнд 07:58:33 2121597510
image.png 263Кб, 1398x868
1398x868
Почему "приложение с одним файлом" в понимании майкрософтов это 6 файлов? Шакальный у вас язык программирования
Аноним 09/08/21 Пнд 10:47:56 2121709511
>>2119636
почему? я написал все как в примере
Аноним 09/08/21 Пнд 11:38:42 2121758512
image.png 996Кб, 1273x1024
1273x1024
блдяь, меня чё это, компилер тралит? через отладчик никаких пробелм не показывает, но почему то всесто паралельного выведения цифр просто пустые строки
Аноним 09/08/21 Пнд 12:04:38 2121807513
>>2121758
Разве WriteLine() не должен выводить пустые строки? Если хочешь числа, то впиши туда переменную.
Аноним 09/08/21 Пнд 12:10:27 2121822514
>>2121807
да я уже решил, мне в мпв подсказали
Аноним 09/08/21 Пнд 12:29:51 2121842515
image.png 41Кб, 768x391
768x391
Это наиболее аффективный способ сортировки доступный в такой ситуации? Выглядит страшно...
Аноним 09/08/21 Пнд 12:55:48 2121856516
>>2121842
Ну и мразь же ты. Отвратительно. В начале чтения словил рвотные позывы, когда дошёл до листа динамиков закрыл нахуй. Здоровье дороже.
Аноним 09/08/21 Пнд 14:27:04 2122059517
>>2121856
Да ладно тебе, в данном случае ничего лучше не придумать, ловко же сделано ну?
Аноним 09/08/21 Пнд 14:28:03 2122064518
Аноним 09/08/21 Пнд 14:39:36 2122097519
>>2122059
List - это не динамический список.
мимо
Аноним 09/08/21 Пнд 14:45:55 2122102520
Аноним 09/08/21 Пнд 15:41:49 2122155521
Как сделать сразу два условия в цикле while? В условных операторах есть такая параша &&, но с циклами она почему-то не работает
Аноним 09/08/21 Пнд 15:48:04 2122167522
>>2122155
Я понял где и как проебался, игнорируем этот пост
Аноним 09/08/21 Пнд 18:56:58 2122434523
>>2121709
В моем примере? У меня нормальный ключ для джойна указан, а не коллекции.
Аноним 09/08/21 Пнд 19:02:32 2122450524
>>2122059
>ловко же сделано ну?
Писать пять строчек вместо одной? Сравнивать в ифе булевое значение с тру? Писать по несколько раз одинаковые строковые литералы? Давать переменным кривые имена? Нагородить хуиту, которую проще удалить и написать заного, чем разбираться в ней?
Этот код можно показывать как образец говнокода.
Аноним 09/08/21 Пнд 19:14:18 2122464525
image.png 702Кб, 1338x1120
1338x1120
Бля. Одни чернозадые в профессии
Аноним 10/08/21 Втр 05:53:13 2122982526
>>2121842
1) dynamic вместо обобщений - чек
2) строковые константы вместо перечислений или выборки из словаря - чек
3) сравнение булевого значения
4) поиск по строке вместо чисел
5) асинхронность, на которую будет потрачено больше, чем сэкономлено

Поздравляю, автор кода даже на интерна не тянет.
Аноним 10/08/21 Втр 07:43:24 2123017527
>>2122102
List - это массив с дефолтной емкостью 4. При нехватке элементов создается новый массив удвоенного размера.
Аноним 10/08/21 Втр 09:00:04 2123044528
Анонас, подскажи годный курс/книгу по WPF/MVVM.
После шлепанья формочек, никак не могу вкурить что, где и как в MVVM устроенно. Как правильно разделить бизнес логику от гуи.
Аноним 10/08/21 Втр 09:44:32 2123080529
>>2122982
>5) асинхронность, на которую будет потрачено больше, чем сэкономлено
Почему это? Обоснуй
Аноним 10/08/21 Втр 10:44:24 2123145530
>>2123080
Task неявно создаёт новый поток и исполняет в нём метод. Помимо аллокации, процессору придётся выделять время для нового потока. Я не думаю, что в данном случае, проверка наличия роли имеет сложность больше O(n). А если имеет - лучше переписать проверку роли, чем отдавать это в отдельный поток.
Аноним 10/08/21 Втр 11:00:12 2123161531
>>2123145
Я не тот анон, но про поток ты не совсем верно сказал. Новый поток не будет создаваться. Твой делегат будет запланирован на исполнение планировщиком на первый свободный поток из пула потоков по дефолту. Возможно ещё зависит от контекста синхронизации, не помню. Но новый поток с нуля в большинстве случаев создаваться не будет, если ты этого явно не задал через TaskCreationOptions например. Так что и ты на джуна не тянешь как-то.
Аноним 10/08/21 Втр 11:12:44 2123183532
>>2123161
> Так что и ты на джуна не тянешь как-то.

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

Если новый поток не создаётся, как ты говоришь, то использовать async вообще нельзя, потому что это только увеличит общее время исполнения.
Аноним 10/08/21 Втр 11:31:27 2123196533
>>2123044
Есть только старые книги за 2011. Там уже всё устарело на мой взгляд. Но возможно для понимания общей концепции будет полезно.
Аноним 10/08/21 Втр 12:27:47 2123273534
>>2123145
Task может и создать отдельный поток. Даже, если он не будет создан, все равно async-await будет развернут в конечный автомат.

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

мимо
Аноним 10/08/21 Втр 14:15:16 2123421535
>>2123183
>перданул с експертным видом "тибе в жуны"
>кококо ниразбираюсь нинужно
Иди нахуй вася.
Аноним 10/08/21 Втр 15:17:49 2123490536
Все справочники проекта я спроектировал в виде трех иерархично связанных таблиц.
MainTable - хранит ID и парочку служебных полей.
HistoryTable - тут хранится значение справочника и BeginDate EndDate (интервал актуальности значения)
Translation - хранит переводы значений справочника.
Насколько верное решение именно так хранить данные?
Linq запросы превращаются в кошмар, со связкой до 15-20 таблиц, не лушче ли использовать хранимые процедуры или View?
Аноним 10/08/21 Втр 15:31:20 2123508537
>>2123490
А что такое "справочник" в твоем случае?
Похожу на евент сорсинг + локализация (очевидно). Погугли по евент сорсингу - мож найдешь что-то похожее. Быстрый ответ - делать снапшоты, но у тебя есть еще какой-то BeginDate EndDate, так что у снапшота тоже будет екпирейшен дей.

Ну а вообще, да, попробуй разбит ьна несколько небольших ЕФ запросов. Если не получается или изначально видно. что та пизда, иди в хранимки.
Хм. А может тебе выгодней будет в память выгрузить и там продрачивать, чем свои десятиэтажные запросы городить?
Аноним 10/08/21 Втр 15:47:39 2123525538
>>2123508
Например, нужно хранить список городов на двух языках. У каждого города есть история изменений названия, которая хранится во второй таблице. А в третьей будут храниться переводы. Например:
MainTable
Id = 1
History
name = Стамбул BeginDate = 28 марта 1930 EndDate = null
name = Константинополь BeginDate = null EndDate = 28.03.1930
Translation
name=Стамбул
iname=stanbul
Аноним 10/08/21 Втр 15:50:07 2123527539
>>2123508
Я совсем ньюфаня, почитал про event sourcing.
>в память выгрузить
А как гуглить это? caching что ли?
Аноним 10/08/21 Втр 15:56:04 2123531540
>>2123525
А вопрос, зачем тебе такая ебанутая схема базы? Вы там какую-то динамику храните?
Перевод тупо по слова, связи по айди нету?
Аноним 10/08/21 Втр 16:01:51 2123534541
>>2123531
Есть связка по айди конечно.
Часто по работе приходилось срочно добавлять историю для какого-то справочника. Например, имя клиента изменилось, но нужно, чтобы в отчетах ранние даты отображалось старое имя.
В этот раз решил для всех таблиц по умолчанию сделать таблицы с историей изменения, но сразу усложнились запросы.
Аноним 10/08/21 Втр 16:06:30 2123539542
>>2122434
но у меня такого нет, у меня вместо этого колекции
Аноним 10/08/21 Втр 16:15:07 2123553543
>>2122982
>dynamic вместо обобщений - чек
Что плохого в динамеке!?
>строковые константы вместо перечислений или выборки из словаря по твоему я что должен создавать целый словарь что бы разобраться с 3 строчкаами? серьезно? что дальше? может сразу целый менедер ебнуть, с СИНГЛЕТОНОМ И ДИ
>поиск по строке вместо чисел
Где блять? ты что в глаза ебешся? там везде итем по числу берется
> асинхронность, на которую будет потрачено больше, чем сэкономлено
Потому что ты так сказал? Это даже не зауши притянуто, а тупо выдумано
Аноним 10/08/21 Втр 16:16:31 2123554544
Аноним 10/08/21 Втр 17:04:52 2123592545
>>2123554
Посмотри на какой вопрос отвечаешь, лопух. А лучше вообще скройся.
Аноним 10/08/21 Втр 19:45:27 2123763546
>>2123539
Ну тогда иди читай что такое Join.
Аноним 10/08/21 Втр 21:15:20 2123872547
>>2123145
Откуда ты вообще хуйню про новый поток взял? Ты вполне можешь ограничить тредпул/настроить скедулер и все вообще в одном будет происходить. Как-бы асинхронщина в том виде что в шарпе это древний концепт кооперативной многозадачности. Своим await ты явно говоришь: короче, ебите мою жену, а я посмотрю. Потом насмотрелся и сам ебешь. Куколдская многозадачность, все дела.
>>2123183
>Если новый поток не создаётся, как ты говоришь, то использовать async вообще нельзя, потому что это только увеличит общее время исполнения.

Ты вообще понимаешь зачем придумали асинхронное выполнение? Давай я тебе расскажу. Вот ты читаешь с диска. В это время поток - нихуя не делает, кроме как ждет завершения чтения с диска. Нахуя ему ждать, если можно заставить его делать что-то ползеное, а завершение чтения пусть обработается в любом другом свободном потоке. Так вот, для любых I/O bound и прочего говна, которое не нагружает процессор но что-то там ждет ты обязан, нахуй, использовать асинхронщину и не ебет.
Я вообще не особо представляю, что ты там такое работаешь, что тебе асинхронщина не нужна. На каждый запрос к базе - отдельный поток, лол? Если бы там какие-то вычисления, то я бы поверил, что ты мог не сталкиваться с асинхронностью, потому что там оно действительно не нужно, только вот вычисления требующие скорости на шарпе не пишут.

Аноним 10/08/21 Втр 21:37:55 2123897548
Как блядь организовывать проект, чтобы к моменту когда все фитчи реализованы не выходило какое-то уродливое хуй пойми что?
Пиздец просто горит. Вот есть в базе, допустим какие-то константы(ака справочники), есть пользователи, есть их проекты. Так вот, для добавления проекта апи: post api/User/{id}/Progects для получения проекта get api/User/{userId}/Projects/{id} для получения списка проектов юзера - внезапно post api/User/{userId}/Projects с сущностью {Take:int, Skip:int, Filter:[some filters], Sort:[some sorts]} и в ответ ебала вида: {Data:[projects], Total:int, Next?:{тело запроса на следующую порцию данных}; Prev?:{тело запроса на предыдущую порцию данных}} пиздец это бесит. Пиздец это раздращает. Еще и нужно переводить сущности из базы в ДТО, которые тоже фронт для каждой странички свои просит и у тебя получается куча говна которая наполовину копирует друг-друга, но вот это вот специфичное свойство там есть, тут нет, но есть другое. Говно какое-то. Хочу чтобы я сделал всю базовую хуйню а фронт мог одним запросом сам достать что ему нужно в том виде какой ему нужен. При этом не хочу ни OData ни GraphQL, потому что ебать, блядь, у меня так-то не просто круды, эти сущности нужны и для других вещей, типа кому на мыло оповещение отправить, что-то еще сделать и если фронтоблядь накосячит мимо меня - потом меня же ебать и будут, хули я письма не туда шлю или что-то еще. Но по итогу - какой-то уродливый монстр, в котором самому противно возиться. Что делать? Как жить?
Аноним 10/08/21 Втр 22:58:41 2123970549
Короче не реклама, а просто желание поделиться своей хуйней творением.
В общем можете залететь @Chan2Bot, потестировать и желательно обосрать
Гит репозиторий скоро выложу, если смогу привести код в читаемое состояние
Текущий функционал: просмотр шапки треда и приложенных к ней пикч
В будущем добавлю просмотр не только шапки, но и всего треда, загрузку видосов, а не только пикч
Аноним 10/08/21 Втр 23:04:01 2123983550
>>2123970
Забыл упомянуть что это телеграм бот
Аноним 11/08/21 Срд 01:55:24 2124093551
>>2123273
> Асинхронный код не для уменьшения/увеличения общего времени исполнения.

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

> Аноны выше прав, ты на джуна не тянешь.

О да. Ведь C# только из async и состоит, и нет задач, в которых он был бы не нужен. Тешьтесь сколько влезет, мне не жалко. Если это поможет вам не повеситься - даже отлично.
Аноним 11/08/21 Срд 02:48:34 2124104552
Аноним 11/08/21 Срд 09:45:50 2124154553
>>2123763
Типичнй ответ на доске пр двачей, я обосрался не знаю что ответить но что бы как бы последний ответ был за мной поэтому иди туда не знаю куда и почитай то не знаю что
Аноним 11/08/21 Срд 12:06:32 2124242554
>>2124154
Если ты пытаешься в качестве ключа использовать коллекцию - значит ты не знаешь что такое джоин. Так что иди читай. в интернете по нему инфы море, копировать сюда определения не имеет смысла.
не забудь ответить, раз тебе важно за кем последнее слово, школьник
Аноним 11/08/21 Срд 12:10:46 2124258555
image.png 276Кб, 1596x302
1596x302
Впервые встретил UB в шарпе, как решать?
Аноним 11/08/21 Срд 12:18:57 2124271556
>>2124258
Не верю. Покажи код. Если кто-то пытается работать с наллом, тот получает NRE. Это строго определенное поведение.
Аноним 11/08/21 Срд 12:20:56 2124275557
image.png 485Кб, 1599x900
1599x900
>>2124271
IDK где я проебался, но я вроде делаю всё по докам
Аноним 11/08/21 Срд 12:53:21 2124313558
>>2124275
Проверь testType, возможно налл. А вообще уже давно бы запустил под отладчиком и посмотрел значения переменных. Ах да, отладка из под вскода это же боль, но тебя предупреждали. А дальше больше.
Аноним 11/08/21 Срд 13:06:39 2124323559
>>2124313
Я дебил, забей блядь, я уже выполнил, после отладки в вс коде бтв, беда была в классе, точней в области видимости и моей невнимательности
Аноним 11/08/21 Срд 13:07:44 2124324560
>>2124093
>Но если операция, которую на скрине отдали на обработку в другой поток, настолько долго обрабатывается, что основной поток нельзя блокировать на такое время, эта операция хреново реализована.
Охуительные истории.
Когда же ты уже сьебешь, обсерун. Ты же нихуя не шаришь и сам это признаешь, но продолжаешь с експердным видом пукать.
Аноним 11/08/21 Срд 13:11:43 2124329561
Анон, подскажи, мсдн не помогает.
Есть ли простой способ без изъёбов конвертировать массив битов в номерной тип?
Например, по идее bool[32] должен легко входить в int32 без масла.
Типа ConvertToInt(bool[]/BitArray), что-то в этом роде?
Аноним 11/08/21 Срд 13:41:36 2124364562
>>2124329
Ищи BitConverter да обрятешь.
Аноним 11/08/21 Срд 13:48:14 2124373563
>>2124364
>>2124329
Или нет. он же с байтами работает, а тебе биты. Но всегда можно написать свой конвертер.
Аноним 11/08/21 Срд 13:59:48 2124383564
>>2124373
Если свой писать, то полагаю нужно массив битов конвертировать в строку нулей и единиц, а их уже парсить в номер, замороченно и мало эффективно.
Другой варик, использовать unsafe и пробежаться циклом по указателю, но тоже так себе решение.
Я думал, может что-то готовое и вразумительное существует.
Аноним 11/08/21 Срд 14:50:04 2124443565
>>2124383
Ну я бы как-то так написал (нулевой bool массива- старший бит числа, т.е. [true. false, false] = 4)
public int ToInt32(bool[] data)
{
int res = 0;
for(int i = 0; i < data.Length; i++)
{
res <<= 1;
if(data){ res |= 1; }
}
return res;
}

P.S. А как ты вообще сподобился получить число в виде массива булов? Я бы сначала посмотрел туда, прежде чем костылями подпирать.
Аноним 11/08/21 Срд 14:56:31 2124456566
>>2124443
У меня массив черных или белых пикселей, их можно записать в виде булевых значений и сохранить в виде чисда. Вот и придумываю.
Аноним 11/08/21 Срд 14:59:59 2124457567
>>2124443
А вот в эту магию я не врубаюсь
>res <<= 1;
> res |= 1;
Битовые операнды? Где почитать?
Аноним 11/08/21 Срд 15:06:08 2124465568
>>2124457
>Битовые операнды?
Да. << сдвигает биты влево. | побитовое ИЛИ, так как 1(10) = 0...001(2), то x | 1 установит младший бит x в 1.
>>2124457
>Где почитать?
Да хоть на мсдн.
Аноним 11/08/21 Срд 15:29:13 2124480569
>>2124465
Там читал, конечно, но там поверхностно. Вот я в твой код и не вдупляю.
Я вижу, что длина масива влияет на значение res, но как значения элементов массива влияют, не вижу. И как в каком случае data может иметь false тоже не врубаюсь.
Аноним 11/08/21 Срд 15:39:59 2124499570
>>2124480
> в каком случае data
Так то макаба съела разметку, там if(data[ай])
Аноним 11/08/21 Срд 15:50:24 2124511571
>>2124499
Ёжки, отдуплил. Двач образовательный, спасибо анон.
Аноним 11/08/21 Срд 21:22:17 2124920572
>>2121597
Шакал здесь только ты. Эти .dll не нужны для exe файла.
Аноним 11/08/21 Срд 21:35:14 2124934573
>>2123553
>Что плохого в динамеке!?
Динамаки - это зло и должна использоваться только в КРАЙНИХ случаях на уровне unsafe.

Во-первых, использование dynamic крайне неэффективно с просадкой по ресурсам до 15-ти раз.

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

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

В
Аноним 11/08/21 Срд 21:40:10 2124938574
>>2123897
tierless web programming - пока единственное решение для всё этой инфраструктурной воды между разными экосистемами в вебе.

Например F#/Fable, или Ocsigen/Eliom.

Но там академичненько, энтерпрайз не осилит.
Аноним 11/08/21 Срд 21:53:04 2124953575
>>2124934
Мантры неосилятора.
По факту - достаточно посмотреть на ЖС чтобы понять какую же хуйню ты несешь.
Даже лень расписывать. Открой любой жс проект написанный не студентом - убедишься.
Аноним 11/08/21 Срд 21:53:09 2124954576
14088569696630.jpg 12Кб, 604x295
604x295
Есть у кого опыт работы с unmanaged dll?
Имеется некое апи на, вероятно, на С. От него есть dll, описание констант, типов данных и функций в h.
Как COM dll в вижуал студио не подгрузилась.
Я смог через DllImport написать обертки для простейших функций, которые void().
Но как быть с более сложными функциями, которые оперируют указателями, кастомными типами и вот этим вот всем? Пробовал char * заменять через MarshallAs.., но получил эксепшн на чтение\запись в защищенной памяти.
Желательно без unsafe-темы.
Я тупой, оа стэковерфлоу, pinvoke.net читал, нихуя не понял.
Аноним 11/08/21 Срд 22:14:53 2124986577
>>2124938
Че это за хуйня? В гугле непонятно.
Что-то типа блейзора или вебформ?
Аноним 12/08/21 Чтв 05:52:23 2125156578
>>2124953
> По факту - достаточно посмотреть на ЖС

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

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

Встречное предложение. Открой код любого проекта на C#, написанного сведущим человеком (или человеками). dynamic ты там не найдёшь даже если очень постараешься.
Аноним 12/08/21 Чтв 08:54:56 2125226579
Зачем нужен using static?
Аноним 12/08/21 Чтв 09:03:22 2125237580
>>2125226
Не нужон. Разве что у тебя в классе тонны математики и тебе лень писать Math каждый раз.
Аноним 12/08/21 Чтв 09:09:05 2125242581
>>2125156
Но чем заменить динамик если хочется просто одноразовый тип, не создавать же ради одного использования целый класс
Аноним 12/08/21 Чтв 09:35:39 2125254582
Аноним 12/08/21 Чтв 11:09:39 2125349583
Как же я люблю программирование, когда строишь алгоритмы, лезешь в кишки, даже когда пишешь сложные скл запросы.
Но этот ваш ебучий ООП и солиды всякие, когда городишь хуевую тучу классов и зависимостей, когда небольшой проектик с парочкой таблиц превращается в гигантскую кучу классов и папочек ууух сука горит.
Аноним 12/08/21 Чтв 11:17:15 2125362584
>>2125349
Бедненький. Попробуй на жабе пописать полгодика для профилактики.
Аноним 12/08/21 Чтв 11:18:06 2125365585
>>2125362
Дак жаба это тот же шарп без сахара
Аноним 12/08/21 Чтв 12:47:23 2125473586
>>2107311 (OP)
Кто нибудь хостил веб-приложения на asp.net core? Не знаю что выбрать. Хостинг Azure vs VPS windows/linux vs Docker vs уже настроенная служба приложений для .NET Core? Если VPS, то Windows vs Linux? Хостинг как служба vs IIS vs Kestrel vs HTTP.sys vs Nginx vs Apache vs etc?
Аноним 12/08/21 Чтв 13:00:27 2125481587
>>2125242
Чего бля. Ты же все равно кастишь к динамику конкретный тип, тебе же оно не из соm прилетает. А если нужен одноразовый тип, то родина тебе дала анонимные классы, tuple и value tuple.
>>2125473
У меня сайтец крутиться на лине + энжинкс. Но вроде сейчас уже можно и кестрелрм наружу торчать. Если хочешь стильно-молодёжно, то без джокера никак. На лине впски дешевле. Ну а сравнивать облоко и впс, это пушка, тут уж что тебе больше подходит под задачи.
Аноним 12/08/21 Чтв 13:03:25 2125485588
>>2125365
Я к тому, что ты не видел ебучий ООП. После жабы попустит.
Аноним 12/08/21 Чтв 13:30:07 2125504589
>>2125481
Мне нужно дешево и надежно. Azure напрягает ценами и тем что плата за ресурсы. Если будет дидос, то ресурсы полетят. Еще он сложный в управлении. С другой стороны на впске придется все руками делать. Почему не сравнивать облако и впски? Сейчас облачные впски есть. Различия размываются.

Еще не знаю как использовать 200 долларов, которые Azure обещает на новый открытый счет. Их нужно использовать в течении месяца. Типа купить сразу на год что то или так нельзя? Есть у рег.ру готовая сборка для .net core, не знаю что это будет, доступ к какой то панели или как. Наверное что то похожее на azure. Не знаю что выбрать, ступор.

Еще нет данных о производительности как лучше хостить. Как померить самому тоже не понятно. Можно же с реверс-прокси и без. В качестве прокси разные веб-сервера. Можно кестрел не кестрел. В общем вот это вот все не понятно.
Аноним 12/08/21 Чтв 13:37:14 2125512590
>>2125349
>ебучий ООП
Всё так. Как сказал Джо Армстронг создатель Erlang, что ООП языки проблемы, вы хотели банан, а получили гориллу с бананом и все джунгли в придачу. ООП которое сейчас все используют и ооп-языки это очень тупое поделие. Как на пикче, нужно сделать всего лишь лошадь, а тупое ооп и ооп языки требуют сначала сделать лошадиную фабрику. Идиотизм полнейший. Чисто для дегенератов.
Аноним 12/08/21 Чтв 13:37:29 2125513591
>>2125473
Разве приложение asp.net само не является серваком? Всякие Nginx или Apache нужны если пишешь на РНР каком-нибудь.
Аноним 12/08/21 Чтв 13:41:02 2125515592
5Abik1askdA.jpg 143Кб, 809x624
809x624
Аноним 12/08/21 Чтв 13:48:08 2125521593
>>2125513
>Разве приложение asp.net само не является серваком?
Да, может само обрабатывать запросы, но обычно в продакшине так не делают, используют реверс-прокси-сервер. Он и проксирует запросы и может статику быстро отдавать и балансировать нагрузку.

>Всякие Nginx или Apache нужны если пишешь на РНР каком-нибудь.
Их используют как фронтенд-веб-сервер, хотя не уверен используют ли так apache, наверное если не nginx, то вместо апача лучше H2O, Caddy или что то другое.

Я хочу пока понять общую картину как лучше хостить asp.net core. Хотя бы сузить до того какой тип хостинга и какую ОС использовать.
Аноним 12/08/21 Чтв 14:01:11 2125530594
>>2125504
Раз не знаешь, то бери впс на лине (только учти, в отличии от облака менять конфигурацию сервера будет не так просто, а на дешманских тарифах нельзя совсем). Накатывай nginx и запускай свой суперсайт. Мануалов в сети до жопы.
>>2125513
Раньше даже на мсдн писали, что не надо светить кестреловской жопой во внешнюю сеть. Сейчас вроде можно, но нгинкс/апач предоставляет больше возможностей по пердоленью и прочему, поэтому обычно их ставят на передовую.
Аноним 12/08/21 Чтв 14:14:43 2125544595
>>2125521
>>2125530
Зачем тогда нужен этот asp.net? Проще же на РНР написать сайт и быстрее. Тут полгода учишь язык, потом полгода этот асп. Ещё какого-нибудь Рихтера надо читать, чтобы собесы проходить. А на РНР можно через неделю уже писать готовые и работающие сайты.
Аноним 12/08/21 Чтв 14:18:08 2125545596
Аноним 12/08/21 Чтв 14:19:43 2125547597
>>2125544
>полгода этот асп
Ты вообще это серьезно? Ай, шутник.

>А на РНР можно через неделю уже писать готовые и работающие сайты.
Поэтому тебе никто и не даст писать сайты еще на этапе собеседования.
Аноним 12/08/21 Чтв 14:24:42 2125551598
>>2125547
Я уже писал сайты на РНР и мне даже заплатили.
Аноним 12/08/21 Чтв 14:25:40 2125552599
>>2125551
Пиши дальше. В чем проблема? Какой смысл ныть в шарп треде?
Аноним 12/08/21 Чтв 14:28:52 2125555600
>>2125530
>бери впс на лине
Хорошо, спасибо. Попробую разные варианты.

>>2125544
>Зачем тогда нужен этот asp.net?
Он дает все что нужно для создания веб-приложений.

>Проще же на РНР написать сайт и быстрее
Не факт. В .net можно создать каркас asp.net core приложения одной командой. Есть много каркасов под разные типы приложений. Фреймвокр из коробки дает все что нужно. Не надо искать либу, выбирать какая либа лучше подойдет, склеивать все это не нужно. Можно легко поменять http на вебсокеты. Можно писать фронтенд на c# с рендерингом на выбор, на клиенте с помощью webassembly или на сервере с помощью .net core. Короче куча всяких фич, которые php не дает вообще или они кривоватые и их сложно использовать.

>Тут полгода учишь язык, потом полгода этот асп.
Быстро охватываешь общую картину и начинаешь пилить приложение. Только нужна реальная цель, чтобы ты хотел это приложение, чтобы не бросил его писать. Не изучаешь ничего просто так, а решаешь задачи написания приложения и тем самым в процессе изучаешь asp.net core. Я так делаю и тебе советую. Пробовал и как ты говоришь, сначала учить, потом все остальное, это тупиковый путь. Если есть вопросы задавай, помогу чем смогу. Тут конечно место не очень, надо бы дискорд создать думаю.
Аноним 12/08/21 Чтв 15:00:42 2125586601
>>2125504
> Если будет дидос, то ресурсы полетят.
Какие рессурсы? Апп сервис план - фиксирован. Сиквел Дб - фиксировано.
ЧТо у тебя там полететь может-то?
Аноним 12/08/21 Чтв 15:08:48 2125594602
Хочу 5к баксов. ЧТо я должен уметь/знать/представлять?
Аноним 12/08/21 Чтв 15:10:49 2125596603
>>2125555
>Проще же на РНР написать сайт и быстрее
Еще проще и быстрее на народе "сайт" создать.

А вот интересно. Вот бы такое соревнование - запилить базовый ф-ционал какой типа авторизации, пермишенов, пару-тройка крудяков и листов. На ПХП и .нет, кто бы быстрее сделал? КТо качественее?
Аноним 12/08/21 Чтв 15:18:31 2125609604
>>2125596
.нет очевидно, там большинство из озвученного функционала добавляется в прямом смысле в два клика
Аноним 12/08/21 Чтв 15:19:15 2125611605
>>2125594
Для начала тебе надо иметь западный паспорт
Аноним 12/08/21 Чтв 15:28:40 2125620606
Аноним 12/08/21 Чтв 15:36:51 2125632607
>>2125620
А без этого ты зарабатываешь деньги пузатом дядюшке, больше будешь работать, больше уметь больше, а в итоге будешь только больше зарабатывать дядюшке а сам один хуй будешь получать в лучшем случае за сотку
Аноним 12/08/21 Чтв 15:43:29 2125638608
>>2125632
Пусть дядя зарабатывает. Но я хочу 5к и не слишком потогонку. Вон на джини по 10к нанимают смузеров...
https://djinni.co/q/7a1ac643f8/
Аноним 12/08/21 Чтв 15:53:36 2125659609
>>2125638
ахахаха, нет чел, ты им напишешь и они скажут мол? что ? доларов? Ты че ебобо? Мы просто не знаем как значок поменять, а вообще это 10к гривен, то бишь под 50к обычная зарплата в хохляндии на говноджс мидле
если не веришь сделай супер охуеть анкету 100500 лет опыта в гугл и наса и отправь им а когда ответят спроси. вангую так и будет
Аноним 12/08/21 Чтв 15:56:05 2125662610
>>2125638
и вообще ты скинул не предложение работы а финансовые ожидание, то-есть маняфантазии по зарплате у хохлов, на деле будет в 5 раз меньше
Аноним 12/08/21 Чтв 15:57:10 2125664611
Аноним 12/08/21 Чтв 15:58:00 2125668612
>>2125662
Нихуя, это завершеные нанимательства из рассылки джини.
Аноним 12/08/21 Чтв 16:02:06 2125674613
>>2125668
Какие же маняфантазии. Блять просто сделай как я сказал.
Создай охуеть Анекту, пройди на собес со смузи и просто сразу спроси о зарплатной вилке, я тебе гарантирую что там будут сумы в 5-10 раз меньше чем те маняфантазии на джини
Аноним 12/08/21 Чтв 16:08:57 2125689614
Есть кто шарит как на 5к$ попасть?
Аноним 12/08/21 Чтв 16:12:51 2125699615
>>2125689
Тебе уже ответили >>2125611
без трактора реально никак
Аноним 12/08/21 Чтв 16:21:34 2125710616
>>2125689
В других странах программист по уровню жизни совпадает с каким-нибудь продавцом в маке + нужно платить большие налоги.
Аноним 12/08/21 Чтв 16:39:11 2125726617
>>2125699
>>2125710
Вв меня обманываете. Небось сами на 5к сидите, но конкурентов не хотите
Аноним 12/08/21 Чтв 16:49:13 2125743618
>>2125726
чел, говорю же, тебе незачем верить мне на слово, просто реально создай анкету ит-чада и отправь, ты поймешь что никаких 100500 в наносек не существует даже с идеальной анкетой сеньора на луне, по крайней мере не в россии точно, и да выше правильно сказали, в других странах программист на уровне ну не продавца но обычного работника вроде экономиста\менеджера, сильно всасывает тем же докторам и юристам на западе, в россии они зарабатывают много именно потому что работаю за палюту часто на западные компании и то что там средние зарплаты у нас манна небесная, ну так было раньше, до санкций, сейчас компании шарахаются в россии работать и программисты медленно скатываются в средне-заработок по россии хочешь 5к пиздуй на запад тут уже такого нет и не будет
Аноним 12/08/21 Чтв 17:13:55 2125778619
>>2125743
ЧТо в анкете написать? Микросервисы/докеры/300лет опыта?
Аноним 12/08/21 Чтв 20:26:51 2125944620
>>2125674
>Какие же маняфантазии.
Лахтовик штоле? Этих людей реально нанимали, там это все видно. Ты скорее всего проплатка пропагандонская, хочешь убедить нас, что на Украине таких зарплат нет и что вообще нужно за копейки на Расие работать.
Аноним 12/08/21 Чтв 20:28:45 2125947621
>>2125699
>без трактора реально никак
Это не правда. Даже на hh есть вакансии на 10к в месяц.
Аноним 12/08/21 Чтв 21:34:20 2126002622
>>2125512
Да. Вот бы на расте писать в кровавом энтерпрайзе... Ну или на хаскелле хотя бы.
Аноним 13/08/21 Птн 07:20:07 2126206623
>>2124920
Без них не работает, ублюдок.
Аноним 13/08/21 Птн 09:11:46 2126281624
>>2125944
>>2125947
Я тебе уже 3 раз повторяю, тебе незачем мне верить на слово, просто берешь и пробуешь вкатиться с идеальной анкетой, и хоть ты усрись ты не найдешь работу за 5к \месяц
Аноним 13/08/21 Птн 10:09:48 2126325625
Чому нету перекатаН Тред потонул же
Аноним 13/08/21 Птн 10:16:56 2126332626
>>2126325
Чем дольше сидим без переката, тем престижней считается тред
Аноним 13/08/21 Птн 10:18:47 2126338627
>>2126325
Почти всегда тред катят с 1000+ постов, но ты решил это только сейчас спросить? Недавно вкатился? Тебе в тред какого-нибудь голанга.
Аноним 13/08/21 Птн 10:21:36 2126342628
>>2126338
"небахата жили неча и начинать".
обезьяны_вода_бананы.тхт

Я олдфаг харкача. КОгда тред болтался на нулевой веселее было.
Аноним 13/08/21 Птн 10:22:15 2126343629
>>2126342
Тебе на пенсию пора, дедуля.
Аноним 13/08/21 Птн 11:42:46 2126463630
Аноним 13/08/21 Птн 13:15:42 2126565631
>>2126463
И сколько из них реальных? 0! ну или там будут подводные типа 800к но не в месяц а за год, или за весь проект и тп. Здесь не о чем спорить я прав потому что хорошо знаю как это работает, у нас делают точно так же?

Создаешь объявления на 200-300к, к тебе приходит мидл-сеньер, ты гнобишь его на собесе и говоришь, мол, ну "сам видишь ты не подходишь, но мы так и быть дадим тебе шанс поднять квалификацию и через год возьмем, а пока работай штука за 60"
и знаешь что? это работает потому что челы которые приходят после 100500 безрезультатных аппликаций и собесов на такие должности выхопают как на самом деле устроен рынок труда на ит
Аноним 13/08/21 Птн 13:17:24 2126570632
image.png 2Кб, 249x136
249x136
Как из этого стринга получить два стринга ключ \ валью, сплит не работает
Аноним 13/08/21 Птн 13:21:18 2126576633
>>2126570
Выглядит как джсон.
А коли сие есть джсон, то и работай с ним как с джсоном и не еби мозги (с) Будда Стетхэм
>сплит не работает
Смелое заявление. Пожалуй я тебе не поверю.
Аноним 13/08/21 Птн 13:21:23 2126577634
>>2126463
100 вакансий? Из всего ит рынка труда? Это уровень статистической погрешности
Аноним 13/08/21 Птн 13:24:14 2126584635
>>2126576
Точно, сериализация, помнил же не регаксом это надо делать спасибо анон
Аноним 13/08/21 Птн 14:39:46 2126716636
>>2126565
Ты пропагандонская проплатка. Я скинул тебе ссылки с вакансиями. То что ты это игнорируешь и твои манеры говорят о том, что ты жалкая шлюха с проплаченными комментариями, проще говоря лахтоскот.
Аноним 13/08/21 Птн 14:41:37 2126718637
>>2126577
Тупица, это только в Москве. Ты что думал, что вакансий 5-10к USD будет много? Думаю не более 1% от общего числа программистских вакансий.
Аноним 13/08/21 Птн 19:57:28 2127007638
gf.png 47Кб, 1287x523
1287x523
Анон, выручи новичка плез.
Знаю, что ошибка в последнем цикле, но не знаю в чём именно
Аноним 13/08/21 Птн 20:01:05 2127015639
>>2127007
Ну если массивы отсчитываются от 0, то у тебя старший элемент не .Length(), а Length()-1...
Аноним 13/08/21 Птн 20:03:21 2127017640
Аноним 13/08/21 Птн 20:15:07 2127033641
Аноним 13/08/21 Птн 20:15:37 2127034642
Аноним 13/08/21 Птн 20:38:32 2127049643
>>2127033
Забей. Эт мамкин сноб. Еще про 1С сейчас начнет брюзжать.
На этапе обучения - главное чтобы ты понял основы.
Аноним 13/08/21 Птн 20:50:45 2127051644
>>2127049
Да не то чтобы.
Просто уже сто лет как надоело ебаться с кодировочками, поэтому все пути, все комментарии, все всё на англицком.
Аноним 14/08/21 Суб 00:10:54 2127230645
По долгу службы мне нужно написать не очень сложное оконное приложение. Окна я не писал около 13 лет. Я начал было писать на WinForms, мне коллега сказал, что это уже перегиб по старости, и надо WPF.
Накидайте пожалуйста годные мануалы по WPF/XAML. Я знаю, что есть MSDN, я прошу мануалы получше. Вдруг кто из анонов знает
Аноним 14/08/21 Суб 06:55:08 2127340646
>>2127230
9. Литература по WPF
— Pro WPF 4.5 in C# (Matthew MacDonald)
— Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
В шапке говном насрали?
Аноним 14/08/21 Суб 08:36:04 2127350647
Я вчера ходил на собес, а мне там челик собеседующий спрашивает "Почему курица перешла дорогу?" я что-то промямлил, но так и не понел, что от меня хотели. Похоже меня не возьмут на галеру.
Аноним 14/08/21 Суб 08:44:00 2127353648
Безымянный.png 11Кб, 1635x454
1635x454
>>2127230
Забей на то что там тебе говорят. Используй что знаешь.
Для примера у нас на работе - чел пишет на шарпе, но использует WinApi, просто потому что он сеньер-сеньер, начинал с плюсов в начале нулевых и винапи он знает, и все остальное - нет и не собирается учить. И хуй ему что сделаешь, потому что: Я 20 лет работаю, для конторы сделал оч многое, а вы еще в яйцах сидели, когда я целину поднимал, отъебитесь. И блядь, проблема в том что он действительно эту хуйню знает и умеет с ней работать, делает действительно сложные интерфейсы, сами приложения - сложные, но при этом в собранном виде оно жрет меньше 1МБ оператики в простое и не больше 10 при активной работе. Блядь, я просто запускаю WPF где лейбл с текстом по центру - это говно откуда 39МБ оперативки жрет. С хуя-то?
Короче. Придумывалось оно с расчетом что можно будет программисту делать логику всякую, а в это время дизайнер хуячит тебе в каком-нибудь графическом редакторе всякую визуальную фигню. Если у тебя не будет собственного раба-дизайнера, а сам интерфейс не будет пиздец какой сложный(да, в замле удобнее таки сложный интерфейс наделать) - то хули выебываться?
Аноним 14/08/21 Суб 09:11:56 2127356649
1628921514564.png 110Кб, 1451x859
1451x859
>>2127353
> Придумывалось оно с расчетом что можно будет программисту делать логику всякую, а в это время дизайнер хуячит тебе в каком-нибудь графическом редакторе всякую визуальную фигню.
Самое забавное знаешь, что?
В олдовых дидовских тулкитах/рантаймах тоже было реализовано это разделение. Формочка в виде скомпилированного res-файла зашивается в экзешник. Формочку тоже без задней мысли и без знаний крестов мог бы собирать раб-дизайнер в стороннем форм-билдере, например, из современного, ResHacker - открывает экзешники, показывает все их ресурсы, показывает формочки, с возможностью их редактирования визуально. Вот тебе для иллюстрации моих слов один из диалогов 7зипа открытый в резхакере и окно добавления нового виджета, и скрипт сверху виден. Неужели он был хуже модного молодёжного гзамля?
Далее, кодеру достаточно взглянуть на res-скрипт, взять имена виджетов, которые набросал дизайнер, и навязать на них логику.

З.Ы. После сишников пришли дельфисты и сделали свой костыль dfm-файл дельфи-форма, который хранился внутри дельфи-приложений как кастомный тип ресурса, в который копировался dfm-скрипт, его уже можно было поредактировать только в дельфи, скопировав текст, создав файл. С этого началась эпоха вендорлоков. Когда она кончилась, вместо того, чтобы вернуться к универсальному res-скрипту, по кой-то хуй накостылили хамл. Ну в общем-то ясно, по кой хуй - "я молодой, чоткий дерзкий, що мне дедовские лапти, ща свои говнодавфы изобрету" - такая логика.
Аноним 14/08/21 Суб 11:48:58 2127438650
>>2127230
Так если нужен чисто утилитарный интерфейс до побыстрее, то винформс самое оно. А своему коллеги можешь сказать, что у него тоже уже песочек из жопы посыпывается. Если хочеться современно и с заделом на будущее то WinUI/MAUI/UNO. Что бы с этого не прихуеть, можно ознакомиться с этим:
https://habr.com/ru/post/546576/
https://habr.com/ru/post/566352/
Аноним 14/08/21 Суб 12:11:08 2127463651
Аноним 14/08/21 Суб 12:39:43 2127483652
E8SU-bXMAMb6pu.png 17Кб, 579x429
579x429
>>2127463
Полгода - ыыыы, я уже мидл)))
Вопросы там тоже пиздец кринжовые(в плане это же совсем дно, какое нахуй мидла-то?).
Я просто не знаю. У меня будто какое-то другое АйТи вокруг и вообще я из парралельной реальности общаюсь.
Лично в моей реальности(в смысел то что было и есть у меня) - джун - тот кто в соло пишет среднего размера проект за 3 месяца(как минимум альфа за 3 месяца со всеми функциональными требованиями, допиливать до релиза да, джун может еще полгода, но все функциональные требования и требования ТЗ среднего проекта он должен за 3 месяца без помощи сам реализовать), сам оформляет ТЗ(ему на стол ТТ, он покумекал со старшими чутка - выдал на следующий день ТЗ, его на согласование, если говно - дорабатывает), общается с заказчиком, участвует в конференциях с партнерами на уровне консультации по всяким кишочкам их стека, чтобы имплементировать в свой, ведет закупки железа, ездит на объект, и чтобы перейти в мидлы ему все это мнимум года 2 нужно выполнять, чтобы показать, что он - уже может претендовать на должность повыше.
Так вот, когда я слышу подобные штуки от человека что мидлом там делаться хочет - чет хуею немного. У нас бы его еще год стажером держали, давали пилить какие-нибудь утилиты для внутреннего пользования. Да, там фронтенд, но не суть, суть в том что человек же блядь уровня первокурсника средней паршивости МухГУ. Какой нихуй мидл? Иди блядь за опыт еще годика 2 сиди. Мам я мидл1 Мам я полгода работаю!!1 Небось даже дев-сервер сам поднять не сможет без готовых инструментов, прод поднять - вообще охуеет, но МИДЛ. Блядь. Нахуй. Да, там фронт, типа знать не нужно, но они же блядь упорно хотят чтобы их программистами считали, но какой он нахуй программист, если все что он делал - говновиджиты и собирал из готовых, выбранных его лидом хуйню? Это не программист не хуя. Это грязь из под ногтя. Тьфу, блядь.
Сори за токсичность.

Нет, блядь. Не сори. Вот зашел в его твиттер. Охуеть. Блядь. Решил задачку на редьюс. Мать его в сраку. Беру слова обратно. Это точно сеньер. Да не. Лид, нахуй. Архитектор, едрить его в сраку. И гитхаба у него нигде нет, чтобы какие-то другие примеры кода. Да. Блядь. Нахуй и в пизду.
Аноним 14/08/21 Суб 12:50:19 2127496653
>>2127356
Замл позволяет более красивое UI средствами DX сделать без особой мозгоебли, тогда как на WinAPI надо поебаться, чтобы привести GDI+ в божеский вид.

Посмеялся про нытье на 39 МБ на хелоу ворлд. В свете удвоенной памяти с выходом DDR5 и сложностью поддержки pinvoke говна.
Аноним 14/08/21 Суб 12:50:20 2127497654
>>2127483
>джун
>сам оформляет ТЗ
>общается с заказчиком
>ведет закупки железа, ездит на объект
Ну пральна, а синиор новый беэнве новый выбирает в рабочее время, так?
Я хуею с вашей шарашкиной конторы. Не хвастайся такой обсерной хуйней
Аноним 14/08/21 Суб 13:06:49 2127518655
>>2127483
>джун
>сам оформляет ТЗ
>общается с заказчиком
>участвует в конференциях с партнерами на уровне консультации по всяким кишочкам их стека
>ведет закупки железа
>ездит на объект
Этот анон кукухой поехал. Только последний пункт может быть хоть как-то касается разработчика.
Аноним 14/08/21 Суб 13:09:35 2127521656
>>2127497
А сеньер - может в соло довольно крупный проект поднять за те же три месяца(а те что поднимает джун - он за неделю-две может осилить) и при этом у него дохуя опыта, чтобы принимать стратегические решения относительно архитектуры, нагрузок и прочего.
Ну и да, сеньер, в случае когда проект не просто крупный, а пиздец какой крупный - может выполнять обязанности тимлида и организовывать работу команды.
И, блядь. Так везде было где я работал. И я не то чтобы горжусь, просто я хуею с того насколько разный экспириенс от работы в айТи у людей может быть в зависимости от того где они карьеру начинали.
>>2127518
Это опыт embedded разработки, няша. Я пайку и выбор комплектующих еще не включил сюда и обоснования руководству, почему нужно покупать вот эту хуйню, если у китайцев вроде то же, но стоит в 10 раз дешевле.
Аноним 14/08/21 Суб 13:13:50 2127529657
>>2127521
>embedded разработки
Мы в шарпе треде, а не в треде плюсовиков.
Аноним 14/08/21 Суб 13:21:54 2127541658
>>2127529
По твоему embedded ограничивается только плюсами и прошивками? Эх, если бы так было. Я бы с радостью байтики всю жизнь перекладывал. Но нет. К несчастью даже ООП добралось. А на мощных железках во всю жава крутится и те же шарпы. Благо есть деды, что топят за сишечку до последнего, к сожалению для них - я за него не топлю.
Аноним 14/08/21 Суб 13:23:40 2127545659
>>2127463
Кста. Он же чистокровный жид, не? Тренирую детектор.
Аноним 14/08/21 Суб 13:25:32 2127547660
>>2127541
Я потому и написал, что последний пункт может быть хоть как-то и касается разработки. То, что на тебя повесили левые обязанности - сугубо твоя проблема.
Аноним 14/08/21 Суб 13:37:45 2127558661
Screenshot111.png 233Кб, 792x484
792x484
лол только что узнал что в шарпе так можно
Аноним 14/08/21 Суб 13:38:44 2127562662
>>2127558
Для таких ебантяев как ты как раз и придумали гит хуки, чтобы не могли такое писать.
Аноним 14/08/21 Суб 13:41:43 2127568663
>>2127541
netmf подох и слава богу, блядь.
а нормальные шарпы ты запустишь только на линуксе под микроконтроллеры (если запустишь), но это уже нихуя не true embedded в плане требований к железке.
Да даже netmf требует для нормальной работы 1-2 mb оперативки (умножай это число в 2 раза, если сможешь запустить джиттер)

мимо разработчик под netmf
Аноним 14/08/21 Суб 13:45:15 2127574664
>>2127562
да я знаю, но вообще иронично что код через майкрософтовский компилер вообще скомпилился и запустился
Аноним 14/08/21 Суб 13:46:31 2127576665
>>2127568
>только на линуксе под микроконтроллеры
На разбери под линукс арм шоль?
мимо
Аноним 14/08/21 Суб 13:46:38 2127577666
>>2127558
можно аутичный spinwait запиливать
while (condition)
;
Аноним 14/08/21 Суб 13:48:06 2127578667
>>2127568
Ну да, это уже не совсем тру embedded. Только вот ну а как называть еще, когда вы все жизнь писали под микроконтроллеры на си и иногда плюсах, но вот внезапно вам сказали: нас заебало что пока мы трушно делаем - конкуренты взяли аналог малины с линуксом, используют жсоны вместо трушних протоколов и ебашут как не в себя. Вот вам деньги, делайте свою сборку линуксовую и догоняйте пидоров.
Аноним 14/08/21 Суб 13:49:23 2127579668
Аноним 14/08/21 Суб 13:53:15 2127581669
Аноним 14/08/21 Суб 13:58:31 2127584670
>>2127581
откуда вы/ты такое берёте? пизда, уже два года кодингом занимаюсь. но такое впервой вижу
Аноним 14/08/21 Суб 14:02:51 2127589671
>>2127584
Вся хуйня стандартизируется и описывается во всяких рфц и тому подобных спеках. Т.е., нужно например запилить имейл валидатор, открываешь рфц 822 и пошел пилить. Простому смертному это нахуй знать не надо.
Аноним 14/08/21 Суб 14:17:41 2127599672
>>2127576
у многих вендоров есть или свои сборки типа OpenSTLinux или sdk с поддержкой, но это как правило куцая хуйня и тебе всё равно придётся какой-то из популярных дистров пытаться установить на свою платформу.
Хотя это ещё не совсем мейнстрим, в основном предпочитают что-то полегче, posix-подобное, типа mbed, FreeRTOS, chibios и прочее.
Аноним 14/08/21 Суб 14:19:38 2127605673
>>2127578
угу, видел как-то одну хуйню, которая работает на ОДНОМ pi ORANGE и продаётся за 1кк денег - тоже заставило задуматься
Аноним 14/08/21 Суб 14:22:42 2127607674
>>2127350
Это проверка на реакцию на раздражители нестандартных поведений. Как ты поведёшь себя в непредусмотренных обстоятельствах.
Аноним 14/08/21 Суб 15:03:10 2127651675
На хабре прочитал такой каммент:
>Что произошло при вызове метода с params? Выделил память (инкремент счётчика), заполнили, использовали и забыли. Далее GC (внимание) проходит по живым, достижимым объектам, среди которых нашего params массива уже нет. GC компактит кучу и перетирает память выделенную под params так никогда и не узнав, что он вообще существовал.
>То есть непонятно зачем вы оптимизировали временные объекты если их создание и удаление это (почти) бесплатная операция? GC (почти) никогда эти объекты не увидит и не тронет. Все ваши оптимизации привели к тому, что снизилось давление на кучу, реже стал запускаться full GC, но он все также тратит много времени на эти запуски. Не то, чтобы это вообще было бессмысленно, но такое.
>Гораздо веселее разобраться почему GC тратит время на обход и компакт кучи. Если модель заточить под GC, то беспокоиться о params и итераторах уже не нужно. Я хочу сказать, что создавать сотни тысяч и миллионы объектов в секунду это не проблема, если они живут секунды. А вот напихать в кеш кучу развесистых изменяемых объектов это прямой путь к тормозам.
Ответов на него нет, минусов не накидали. Он правду говорит, что если объект ссылочного типа короткоживущий, то он практически никак не грузит коллектор и не влияет на производительность, и скажем замена его на значимый тип скорости не даст?
Аноним 14/08/21 Суб 15:18:42 2127668676
>>2127353
> Я 20 лет работаю, для конторы сделал оч многое
Если человек работал 20 лет подряд программистом на одном месте, то... как бэ... ну... он чмо
Аноним 14/08/21 Суб 15:28:18 2127684677
>>2127668
Джуну стоит скакать по рогам и копытам, и пробовать мовомодные фреймворки и аджайлы. Но если ты уже на верхней позиции для технического специалиста, то зачем скакать? Если у тебя зп ниже рынка, то ок, поищи может где больше дадут, то если всё устраивает и зп выше не будет, то как бы скакать - это идиотизм.
Аноним 14/08/21 Суб 15:29:27 2127686678
image.png 44Кб, 197x199
197x199
image.png 3Кб, 174x167
174x167
image.png 26Кб, 461x119
461x119
image.png 76Кб, 623x178
623x178
Есть два класса. После того как я вызываю Database.EnsureCreated у меня сформировалась связь один ко многим в бд, EFCore сам построил таблицы и связи в них (пик1 - модели, пик2 - сформированная бд самой EFCore)

При попытке добавления Order в базу данных я получаю пик3 из-за того, что нужен вторичный ключ, а я на него забиваю хуй.

короче вот мои варианты решения:
1. Первый тот что на пик4 (Это класс модели Order)
2. Добавить такое же свойство как и в первом пункте, но во ViewModel тем же способом что и первый и удалить из Model
3. Забить на это
4. Вариант о котором я не знаю, но полагаю он теоретически есть (к примеру что-то настроить и efcore сам будет получать Id у нужного свойства и записывать в бд его как вторичный ключ). Нагуглить не могу

Аноним 14/08/21 Суб 15:41:57 2127702679
Аноним 14/08/21 Суб 15:45:57 2127711680
>>2127684
Ты и в 60 хочешь быть пограммистом?
Аноним 14/08/21 Суб 15:46:52 2127713681
1.png 4Кб, 604x83
604x83
2.png 33Кб, 505x442
505x442
>>2127651
Короче, я тупой и не знаю как это интерпритировать. Но вот что бенчмарк показывает.
Аноним 14/08/21 Суб 15:58:15 2127736682
>>2127668
Тому челу ты бы это в лицо не сказал, я тебе гарантирую. Это раз.
Два, зачем менять работу, если тебе всегда платили раза в 4 выше рынка?
Аноним 14/08/21 Суб 17:49:38 2127838683
>>2127711
Чел, я уже старенький, у меня есть семья, дети и ряд целей в жизни, вот совсем никак не связанных с реализацией крутых проектов для кабанчика.
От работы мне надо, чтобы платили больше, а ебали мозги меньше.
На текущей работе это соотношение для меня весьма удовлетворительное.
Если быть не программистом, то кем бы ты хотел быть в 60? Начальником программистов? Некоторые люди комфортно живут с 200+ писем в день и тратой 20% времени на телефонные разговоры, и 40% времени на совещания, а также постоянно переключаясь между задачами, и работая на 3-4 часа больше, чем отведённые 8 часов. При этом зачастую надбавка по зп будет ну процентов 20% по сравнению с должностью аналогом сеньора. Будешь ли ты готов к этому в 60 лет? Сомневаюсь. Можно быть начальником уровня вице-президента, только не стоит на это рассчитывать, скорее всего у тебя не получится.
Аноним 14/08/21 Суб 18:25:48 2127861684
>>2127496
>на WinAPI надо поебаться
GDI+ работает в ряде случаев в разы быстрее winform'ов. Особенно когда надо что-то с битмапами делать. Формы на каждый чих будут кучу лишних аллокаций делать, когда GDI позволяет напрямую байтики крутить.
Когда в интерфейсе есть места, которые должны быть быстрыми и отзывчивыми, без GDI+ никуда.
И он кстати весьма понятен, один раз напишешь свои обёртки и проблем уже не будет.
Аноним 14/08/21 Суб 20:47:30 2128017685
>>2127736
> Тому челу ты бы это в лицо не сказал
И что? Это аргумент?
> всегда платили раза в 4 выше рынка?
Интеллект с годами подтачивается, а программирование это постоянный скилл-чек твоего интеллекта. Профу эту надо менять с годами.

>>2127838
> кем бы ты хотел быть в 60?
Долларовым мультимиллионером.
Аноним 14/08/21 Суб 22:04:03 2128084686
microsoft identity server теперь платный? Ну охуеть. Да и еще 12,000 баков в год для анлимитед апликейшенов.
Це зрада.
раньше хотел заюзать, но останавливался на облачных решениях, наверноеи правильно
Аноним 15/08/21 Вск 09:59:31 2128295687
>>2127438
Я вот жду ноября, чтобы начать писать на MAUI. Правда как писать на нём не знаю. Надеюсь выйдут книжки с объяснениями.
Аноним 15/08/21 Вск 10:25:00 2128318688
>>2127713
Классы вдвое медленнее, но это всё же не так страшно.
Это значит, что в самых критичных местах их конечно надо заменять структурами, но в подспудных методах можно и классы юзать.
Интересно, как в яве решается эта проблема, где вообще нет значимых типов, кроме примитивов.
Аноним 15/08/21 Вск 10:57:14 2128335689
Вопрос: как расшарить директиву using между разными файлами в одном неймспейсе?
В начала каждого файла писать вереницу из десятков using MyUInt32 = System.UInt32 как-то явно не ООП-way, внутри наймспейса если писать, то из других файлов не видать.
Аноним 15/08/21 Вск 11:58:52 2128400690
>>2128295
Зачем? Нежизнеспособна хуйня же по типу замарина. Высрал ты с горем пополам свою прилку, а как поддерживать ее годами если мелкомягким моча в голову ударит в очередной раз?
Алсо, только недавно появился плагин для безболезненной интеграции адмоба в замарин (а последний считай уже сдох)
Аноним 15/08/21 Вск 12:10:54 2128421691
>>2128335
Зачем ты себе геморрой придумываешь? Типо у тебя дохера конфликтующих имен классов? К ОПП юзинги никакого отношения не имеют. Если все же очень надо, создай шаблон файла, в котором все будет прописано.
Аноним 15/08/21 Вск 12:15:11 2128432692
>>2128400
А как писать десктопные приложения под линупс?
Аноним 15/08/21 Вск 12:19:39 2128439693
>>2128421
>Зачем ты себе геморрой придумываешь?
Все прототипы из api c++ используют свои типы, вот и переиначиваю их типы на шарповые.
Аноним 15/08/21 Вск 12:32:06 2128454694
>>2128421
Я другой анон, но такая потребность возникает, когда например один и тот же код нужен то для float, то для double. Приходится использовать что-то вроде using REAL=float; И эту конструкцию банальным ctrl+f во всем проекте заменять когда нужно.
Хотя тут вроде пишут, что наконец завезут фичу, избавляющую от этого:
https://habr.com/ru/post/572902/
Аноним 15/08/21 Вск 14:33:00 2128534695
inumber2.jpg 217Кб, 1353x1444
1353x1444
>>2128454
А выглядит эта годнота c INumber<Self> вот так.
Казалось бы, очень круто на первый взгляд. И, как говорят, будет настоящий zero-cost.
Но простейшая попытка реального использования приводит к необходимости использования таких вот костылей.
Но очень надеюсь, что фичу допилят к ноябрьскому релизу NET6.
Аноним 15/08/21 Вск 17:11:14 2128665696
Выпилите к хуям собачьим этот ебанный Метанит из шапки. Пытался учиться по их сайту - ебанная залупа, где вообще ничего не понятно.

Внезапно, решил сказать книгу Шилдта и МОМЕНТАЛЬНО НАХУЙ всё понял. На метаните ни структуры, ни нормальных объяснений, ни нормальных примеров, нихуя.
Аноним 15/08/21 Вск 17:32:33 2128687697
>>2128665
Ну так и программирование вообще не всем заходит.
Лично мне метанит отлично зашел, очень быстро можно вкатиться, если до этого знал другой язык.
Аноним 15/08/21 Вск 18:08:55 2128714698
>>2128687
> если до этого знал другой язык
Ключевой момент. Метанит это типа шпоргалка/квикстарт, но некоторые почему-то пытаются использовать его как учебник по вкатыванию.
Аноним 15/08/21 Вск 18:56:02 2128739699
>>2128665
Поздравляю, ты сверхразум
Аноним 15/08/21 Вск 22:02:56 2128911700
Аноним 15/08/21 Вск 22:08:00 2128917701
>>2108335
Потому что начинать Си Шрап нужно с Шевчука. Потом уже Троелсен + Метанит ну и дальше по наклонной
Аноним 15/08/21 Вск 22:09:24 2128919702
Аноним 15/08/21 Вск 22:23:13 2128936703
>>2116969
А что это ты такое читаешь?
Аноним 15/08/21 Вск 23:25:06 2129010704
>>2128318
Escape анализ компилятора, локальный класс просто инлайнится
Аноним 16/08/21 Пнд 00:03:33 2129075705
>>2128936
Выяснил уже Марка ПрайсаГодно?
Аноним 16/08/21 Пнд 08:07:55 2129298706
>>2129075
Отчасти. Книга как бы для профессионалов, но тут подразумевается не профессионал в шарпе, а то, что уже умеешь программировать, хотя бы знаешь какой-нибудь язык на уровне lab.cpp.
В целом изложение понятное, но бывает, что автор выдергивает темы из будущих глав, а потом пишет, что если вы ничего не поняли - это норм, я в такой-то главе всё объясню.
С другой стороны это самая свежая и актуальная книга на текущий момент. Альтернатив практически нет.
Аноним 16/08/21 Пнд 13:07:22 2129523707
Есть задача прикрутить конфиг файл к приложению, чтобы в него можно было записывать путь до базы и до кучи всяких дополнительных файлов или не записывать, сохранять введённые пользователем данные и подставлять их или не подставлять при последующем запуске и тому подобное. Как это лучше сделать, а то я пока не совсем понимаю, тем более, что уже есть app.config, где пути к базам прописываются
Аноним 16/08/21 Пнд 16:42:55 2129698708
>>2129523
>сохранять введённые пользователем данные
Звучит не как конфиг. Сохраняй в базу.
Почему ты хочешь держать это в конфиге?
Аноним 16/08/21 Пнд 16:57:29 2129717709
>>2129698
Я не хочу, хотят, чтобы так было, потому что так было в старой проге много-много лет и перестраиваться никто не хочет
Аноним 16/08/21 Пнд 19:09:03 2129808710
Где взять годные задания по ООП на сисярпе? Чтобы были не пиздец сложно, но и не супер легко.
Аноним 16/08/21 Пнд 22:41:24 2130003711
Screenshot153.png 955Кб, 1413x900
1413x900
лол, только что узнеал что в шарпе есть указатели, и что бы скомпилить проект через указатели нужно его компилить с флагом /unsafe

как же хорош шарпе, не то что усторевшие плюсы
Аноним 16/08/21 Пнд 22:56:56 2130020712
>>2130003
в 90% случаев они не нужны и будет достаточно обёрток над ансейф кодом из Unsafe, Marshal, Buffer + в .net появится ещё NativeMemory.
Ну и оборачивание всего что можно в Span тоже неплохо помогает в плане скорости.
Аноним 16/08/21 Пнд 22:59:13 2130021713
Аноним 17/08/21 Втр 08:29:58 2130154714
Такой вопрос. Есть у меня некий сервис, который делает всякие круды. Этот сервис использует БД как хранилище + еще всякие внешние зависимости. И вот вопрос мне надо оборачивать все операции в тру/кэтч и бросать свои исключения? Ведь по идеи вызывающему должно быть по барабану, что я использую в качестве хранилища. Но при этом как-то дохера ошибок получается от кейнотфаунд до дбконнектшнтаймаут. Или сделать основный ошибки со своими эксепшенами, а остальные кидать в аггрегатионЭксепшн? В общем есть что почитать по этому поводу или бест практис какие-нибудь.
Аноним 17/08/21 Втр 11:55:39 2130301715
Аноны зачем вообще нужен new в такой ситуации?

public new string[] MethodName(string something)
{
//...
}

Ты делаешь так, что метод с new будет перекрывать метод базового класса c таким же именем. Зачем это нужно, если есть override?
Аноним 17/08/21 Втр 13:13:40 2130453716
>>2130301
>Зачем это нужно, если есть override?
А если в базовом классе метод не виртуальный? А? Но перекрытие дело такое, знай что оно существует, но использовать его не надо.
Аноним 17/08/21 Втр 13:17:06 2130458717
>>2130453
Понял, пасибо. Просто в любом случае что мешает сделать класс виртуальным тогда?
Аноним 17/08/21 Втр 13:24:49 2130474718
>>2130458
Например то, что его пишешь не ты.
Аноним 17/08/21 Втр 13:32:14 2130486719
>>2128432
Брооо! Уже год задаюсь этим вопросом. ИТТ мне либо советуют АВАЛОНИЮ, либо нахуй шлют. Так вот, я для себя открыл кроссплатформенный оконный тулкит ETO, поддерживающий современные подходы типа MVVM.
В общем и целом суть токова, ты делаешь солюшен, включающий серверную часть, на которой у тебя создан абстрактный оконный интерфейс, и несколько клиентских подпроектов под каждую из интересующих тебя платформ. На винде "клиент" визуализирует "серверное" окно через WPF или Forms, на линухе через GTK.Sharp, соответственно и зависимости вышеуказанных графиклиб подтянуты только в свои подпроекты. Таким образом, при шиппинге на линукс, ты собираешь и дистрибутишь линуксовый подпроект с его зависимостями, среди которых твоя собственно главная прога с абстрактными окнами. На винду всё то же самое, но виндовый подпроект. На мак - тоже.
Аноним 17/08/21 Втр 13:37:48 2130493720
>>2130474
Переписываю как virtual и делаю комит в мастер, подводные?
Аноним 17/08/21 Втр 13:39:11 2130496721
>>2130486
Звучит как замариан.
Аноним 17/08/21 Втр 13:42:46 2130501722
>>2130493
Напимер, у тебя нет прав коммитить в мастер майкрософтовского или другого репозитория или исходники либы вообще закрыты.
Аноним 17/08/21 Втр 13:45:55 2130507723
>>2128534
Avg как-то неправильно реализованы. Я бы подавал на вход парам-па-пам-массив, и у него уже был бы размер, который не надо считать.

public static T Avg(params T[] numbers) where T : INumber<T>
{
T result;
for (int i = 0; i < numbers.Length; i++) result += numbers;
return result / numbers.Length;
}


Разъебите моё диванное предположение.
Аноним 17/08/21 Втр 13:48:56 2130518724
>>2130496
Который в свою очередь звучит, как WPF все современные оконные тулкиты - клоны WPF. Но могут в линукс, в отличие от.
Аноним 17/08/21 Втр 13:50:12 2130522725
>>2130507
Отсутствующую проверку деления на ноль не надо разъёбывать. Я сам.
Аноним 17/08/21 Втр 13:59:47 2130542726
>>2130518
Не понял, что ты хотел сказать. Можешь еще посмотреть на уно или мауи как приемника замариана, но я не знаю насколько они продакшн-реди.
>>2130507
Да чего разъебывать, это еще даже не бета фичи. Пусть определятся сначала что и как будет в финале, а потом уже и подразъебать можно.
Аноним 17/08/21 Втр 14:10:12 2130552727
>>2130507
А в чем разница? У тебя Length це int, и 2 у того чела тоже инт. Почему твой инт не надо кастить к Т, а у того анона надо?
Аноним 17/08/21 Втр 14:23:59 2130569728
>>2130552
Кстати да, каст проебал.


public static T Avg(params T[] numbers) where T : INumber<T>
{
T result;
for (int i = 0; i < numbers.Length; i++) result += numbers;
return numbers.Length > 0 ? result / (T)numbers.Length : (T)0;
}


Я не о том. У меня одна функция для вычисления среднего арифметического любого количества чисел, а у него только двух.

float avarage = Avg<float>(0.1, 0.3, 0.9, 0.25);
Аноним 17/08/21 Втр 14:27:05 2130573729
>>2130569
Блять, два раза не заметил очевиднейшую недопечатку result += numbers;
Аноним 17/08/21 Втр 14:29:52 2130575730
>>2130542
> Можешь еще посмотреть на уно или мауи
Смотрел. Уно, мауи, замарин, авалонию, хвт, чистый гткшарп, кьютшарп, ещё кучу всякого говна. ЕТО - самый заебись (для меня). Полностью покрывает мои потребности.
Аноним 17/08/21 Втр 14:33:14 2130580731
>>2130575
О, а можешь написать сравнение этих штук? Ну хотя бы что чем не подошло и какие бонусы у ЭТО. И можешь еще на ЭТО линк скинуть. Спс.
Аноним 17/08/21 Втр 14:42:28 2130585732
>>2130580
Делать мне больше нехуй. Давно это было, прошлым летом.
Вкратце скажу так. Некоторые переусложнены, некоторые устарели и не собираются без кучи депрекацированного легаси, у некоторых нет очевиднейших и нужных классов.

Вот https://github.com/picoe/Eto/wiki/Quick-Start
Я юзаю установку через dotnet new
Аноним 17/08/21 Втр 14:51:53 2130592733
image.png 42Кб, 814x385
814x385
Почему так нахуй?
Аноним 17/08/21 Втр 14:54:11 2130595734
>>2130592
You are missing a using directive or an assembly reference bitch.
Аноним 17/08/21 Втр 14:57:04 2130599735
image.png 14Кб, 527x200
527x200
image.png 5Кб, 436x84
436x84
Аноним 17/08/21 Втр 14:58:37 2130601736
>>2130599
Юзинги я и на прошлом скрине видел показывай ссылки/нугеты.
Аноним 17/08/21 Втр 15:01:49 2130604737
image.png 62Кб, 1540x436
1540x436
Аноним 17/08/21 Втр 15:07:19 2130611738
>>2130501
Так падажжи ебана, а нахуй интерфейсы нужны тогда? Это же то же самое, что и виртуальные классы, только без начальной реализации
Аноним 17/08/21 Втр 15:14:18 2130618739
>>2130604
Ну значит либо ты не в тот проект нугет прицепил, либо на тебе порча. Попробуй посмотреть что тебе в студия квик-экшенах предложит.
Аноним 17/08/21 Втр 15:17:03 2130620740
>>2130611
Как ты вообще связал сокрытие через new и интерфейсы. Виртуальных классов нет, есть абстрактные. В новых версиях шарпа интерфейс может иметь реализацию метода по-умолчанию.
Аноним 17/08/21 Втр 15:22:14 2130629741
>>2130604
Еще попробуй накатить
Microsoft.Extensions.Configuration.Abstractions
Аноним 17/08/21 Втр 15:26:01 2130635742
>>2130618
Фактори принадлежит инфраструктуре, но пробовал добавить и тупо во все проекты.
Квик экшены предлагают самому создать класс. Походу порча.
Аноним 17/08/21 Втр 15:32:18 2130644743
>>2130635
А покажи скрин дерева проекта с раскрытым References
Аноним 17/08/21 Втр 15:37:24 2130651744
>>2130635
А ты код откуда-то копировал или сам писал? Может там какая-то из букв из другого алфавита.
Аноним 17/08/21 Втр 15:46:36 2130667745
>>2130629
Просто накатил, доволен как слон, спасибо
Аноним 17/08/21 Втр 19:57:30 2130991746
Screenshot178.png 1269Кб, 1595x900
1595x900
СиШапр господа, почему вы до сих пор не пишите код в виме? а вместо вима используете проприетарную парашу с зондами?
Аноним 17/08/21 Втр 20:06:48 2131002747
Что перспективнее стек C# Asp NET или какое-нибудь говно на Go?
Аноним 17/08/21 Втр 20:08:15 2131004748
Киньте хороших примеров тырпрайз архитектуры для веба.
инбифо - ентерпрайз физбазз
Аноним 17/08/21 Втр 21:27:35 2131086749
>>2130991
Потому что вим - умная машина, думающая за тебя. Ты расслабляешься и
> СиШапр
Поэтому только батлерианский джихад, только хардкор!
Аноним 17/08/21 Втр 21:44:28 2131104750
>>2131086
>умная машина, думающая за тебя

Што блять

>батлерианский джихад

Можно нормальное название по которому можно будет гуглить?
Аноним 17/08/21 Втр 21:48:08 2131108751
>>2130569
>(T)numbers.Length
Такой каст не поддерживается в текущей реализации. Но можно вот так сделать:
T n = T.Create(numbers.Length);
Вероятно, компилятор или рантайм будут это оптимизировать, пока не понятно.

>params T[] numbers
Математические вычисления с примитивными типами как бы говорят о том, что тут производительность важна.
params при каждом вызове аллоцирует массив, и поэтому применяется не повсеместно, а только дозированно по необходимости.
Зачастую используется перегрузка с 2, 3, 4+ аргументами, а не params.
Хотя в ряде случаев конечно теоретически компилятор мог бы оптимизировать params, но насколько я знаю, пока нет такой оптимизации.
Аноним 17/08/21 Втр 22:17:20 2131137752
>>2131108
> теоретически компилятор мог бы оптимизировать params
Я даже знаю как. Компилятор пробежится по коду, выяснит, с каким количеством вызывался парам-па-пам, и:
> используется перегрузка с 2, 3, 4+ аргументами
Аноним 17/08/21 Втр 22:48:27 2131159753
"Кроссплатформенность", говорили мне они. Начал проект под линухом, перехожу на венду. ХУЯК
> NuGet.Packaging.Core.PackagingException: Не удалось найти резервную папку пакета "/usr/share/dotnet/sdk/NuGetFallbackFolder"
Ладно, мы не гордые, пойдём править конфиги вручную. Блять.
Аноним 17/08/21 Втр 23:05:15 2131176754
>>2131159
Отбой, самдурак оказался. Открыл не солюшен, а папку.
Аноним 18/08/21 Срд 01:25:44 2131267755
image.png 8Кб, 387x186
387x186
Почему шарпу не нравится такое форматирование?
Просто из с++, там принято во многих кодестайлах так выравнивать чтобы знак присваивания был выравнен

А тут студия мне говорит что надо убрать это. В мире шарпа так не принято выравнивать текст?
Аноним 18/08/21 Срд 09:51:15 2131393756
Господа, поясните такой момент. Вот есть сайт на асп нет коре с идентити. Роли, клаймы все дела. И вот есть, допустим, роль модератор и юзер с этой ролью. Потом я его разжаловал и он перестал юыть модером. А у него же в куках идентити указано, что он модер и user.IsInRole(Mod) будет тру и экшены с атрибутам авторизации пропустят его как модера. Или вот, раньше у модеров был клаим на правку постов, а потом я убрал его, но у авторизованных ранее этот клаим остается. Как быть в таких ситуациях? Каждый раз лазить в базу? Но тогда зачем в куках что-то кроме айди юзера. Как поступают серьезные дяди в таких ситуациях?
Аноним 18/08/21 Срд 11:43:13 2131460757
>>2131393
Походу красивого решиня нету.
Смотри вот тут Revocation
https://www.red-gate.com/simple-talk/development/dotnet-development/using-auth-cookies-in-asp-net-core/

Но решение такое себе, по сути да или "лазить в базу", или еще куда, или как в том примере "лазить в базу" и вылогинивать юзера.

Более красивое решение только на рефреш токенах.
Аноним 18/08/21 Срд 11:44:06 2131461758
>>2131004
Бамп реквесту
хде перекат?
Аноним 18/08/21 Срд 11:53:10 2131467759
>>2131004
Пошукай по гиту C# awesome или .net awesome. В таких репо обычно собраны в список кошерные проекты.
Аноним 18/08/21 Срд 11:56:26 2131470760
>>2131467
Там одни списки всяких тулзовин. Ну тоже полезно, конечно, но имено проектов чет нема.
Аноним 18/08/21 Срд 13:41:09 2131671761
>>2131267
> Почему шарпу не нравится такое форматирование?
> В мире шарпа так не принято выравнивать текст?
В 2к21 не принято. Лет 30 как нигде не принято. Откуда ты вылез, старпёр?
Аноним 18/08/21 Срд 14:54:18 2131772762
Ананасы - юзаю .net 5, чем можно эффективно работать с MS Excel и Word?

Пока что видел только epplus - но у них сосать лицензия по подписке, мне не подходит. Нужно что-то бесплатное.

То что там можно руками через xml делать доки - сразу нахуй, я не велосипедист.
Аноним 18/08/21 Срд 19:00:59 2132082763
>>2107311 (OP)
А почему нету ссылок где собственно скачать всю эту литературу? Например забил в гугл players guide этот и нихуя не нашёл где её почитать.
Аноним 18/08/21 Срд 19:02:05 2132084764
>>2128665
Где найти книгу Шилдта? Дай ссылку.

Аноним 18/08/21 Срд 22:44:58 2132269765
>>2131267
Я всегда так пишу, читаемость наше все.
Вроде решарпер из коробки так может форматировать.
Аноним 18/08/21 Срд 22:53:46 2132283766
>>2131137
Сложность вероятно в том, что в теле метода ты можешь произвольно работать с массивом и вызывать различные методы массива, использовать linq, передавать массив в другие методы и т.п.
Аноним 18/08/21 Срд 23:01:09 2132286767
>>2132283
Компилятор например заменит динамический массив, создаваемый в одной функции написанной кодером, на несколько функций-клонов, в которых будет инициализироваться быстрый как понос статический массив. Почему нет?
Аноним 18/08/21 Срд 23:09:11 2132294768
Допустим есть 3 микросервиса.
Первый - пользователи
Второй - гаджеты(содержит описание гаджетов, хранит информацию о типе, характеристиках, ну и архивные значения прочитанных данных)
Третий - система общения с гаджетами с помощью json'а
Собственно система простая: завели пользователя, микросервис сказал сервису гаджетов что вот есть пользователь, теперь при добавление на фронте гаджетов - они добавляются в сервис гаджетов. Затем если нужно что-то прочитать-записать на гаджет - микросервис передаст сообщение третьему и тот что-то прочитает/запишет.
Вводим четвертый сервис - общение по секретному протоколу, который работает через COM-порты. Ну допустим надо. Теперь нужно внести эту возможность в сервис гаджетов, чтобы была вилка: вот когда гаджет такой-то - отправляй запрос на чтение туда, когда такой-то - туда.
Допустим систем чтения у нас уже 100. Вилка оч большая получается.
Допустим добавилась какая-то логика, типа какой-то из протоколов позволяет коннектиться к устройству, какой-то получать от него пуш-сообщения, где-то нужно передать сертификат, где-то еще что-то. Получается что мы либо теряем часть возможностей протокола, либо теряем консистентность и второй сервис уже должен как-то знать про эти протоколы и как-то от пользователя просить нужные данные предоставить.
Допустим появляется еще сервис картографии, мы хотим иметь возможность смотреть где гаджет сейчас, допустим одни - могут сообщить информацию, другие - статично расположены. Хотелось бы чтобы те что могут сообщить информацию - таки ее сообщали. Но как это должно выглядеть? Опять через второй сервис слать запрос чтобы он проксировал его к нужному?
Вот допустим это порешали. Теперь мы хотим организовать какое-то переодическое чтение списка заранее известных абстрактных параметров(допустим серийный номер, почему абстрактных? Ну, в системе это серийный номер, но в этом протоколе это октетовая строка лежащая в таком-то регистре, в этом - это просто ответ по рестапи, в том - это файлик в папочке по такому-то маршруту и это все как-то должно быть объединено в единую сущность серийный номер). Решаем сделать отдельный сервис. Пусть он сам в обход сервиса гаджетов напрямую шлет запросы к разным системам сбора, а те уже в гаджеты передадут информацию. Но как мы можем знать о том, что такое-то устройство там вообще есть, какие там параметры? Не все же разом заставлять читать. Можно конечно придумать хитрое апи, допустим: считай серийный номер, время устройства, геокоординаты, но это убивает опять же часть протоколоа и привязывае уже к конкретным реализациям.

В общем я это к чему. К тому что чем дольше я с микросервисами имею дело, тем больше кажется, что шляпа какая-то. Может быть я не умею готовить их, но серьезно, с каждым новым микросервисом я вспомнимаю как это же все делалось охуенно в монолите.
Аноним 18/08/21 Срд 23:37:21 2132312769
>>2132286
Можно сделать массив stackallock, но всё равно, например вычислить среднее значение из двух чисел - это две инструкции, а сделать то же самое в цикле, пусть даже на стеке - это в разы больше инструкций процессора.
Аноним 18/08/21 Срд 23:44:40 2132315770
>>2132312
Так не в цикле... Ааа... Компилятору надо в таком случае обладать ИИ, чтобы угадывать, тут мол цикл можно в ряд разложить вот так, ага, а вот здесь выносим за скобачьки, падажжи.

Всё, понял принял.
Аноним 19/08/21 Чтв 00:02:11 2132319771
123.png 32Кб, 582x493
582x493
>>2132286
И как компилятор должен разруливать вот такое вот? А если там довольно сложная логика и важен порядок аргументов и метод строк на 100500, еще и подгружает что-то из конфигурации, которая берется из файлика, получаемого с сервера?
Аноним 19/08/21 Чтв 02:31:25 2132381772
Почему мне кажется что шарп - мертвый язык? Нет, не бегите бросать тапками, я просто описываю свой опыт написания коммерческих программ за один год фриланса

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



А тут - темы о шарпе полудохлые, многие темы вообще не раскрыты, почти нет никаких примеров, особенно новых, под коре и .net 5... Под коре вообще хуй что найдешь

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

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


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

О, ну есть пара всратых коммерческих либ, да только по платной подписке (я бы еще может один раз заплатил, но точно не подписка, идите нахуй). Почему под С++ все есть, а под шарп нихуя?

А когда пытался сделать такую простую вещь как объединение ячеек в DataGrid - ну я конечно нашел - какие всратые простыни говнеца с стековерфлоу. Никаких толковых гайдов

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

Вообще в печали. Помоему даже на ноде я бы больше инфы нашел
Аноним 19/08/21 Чтв 09:17:06 2132473773
>>2132269
Я конечно понимаю, что дело в привычке, но когда все выровнено, то глазу не за что зацепиться, особенно когда есть имена существенно различаются по длине и значение получается в 3-4 табах от имени. Кода такой херни на пол экрана приходится даже строку выделять, чтоб не ошибиться. А если не выравнивать. то тебе сразу вот имя, а вот значение.
>>2132315
Ты еще не учитываешь, что код может переиспользоваться. Вот заменил тебе компилятор массив на n параметров, а Вася подцепил твою сборку и вызвал твой метод (даже приватный через рефлексию) с массивом n+1. И твоя оптимизация обосралась.
Аноним 19/08/21 Чтв 09:57:55 2132543774
Аноним 19/08/21 Чтв 10:41:02 2132602775
>>2132381
>А тут - темы о шарпе полудохлые
Двач ведь показатель популярности, кек.

>А такая банальная задача как вылить данные из программы в какой-нибудь Excel
Не нашел как создать csv файл? Бедненький.
Аноним 19/08/21 Чтв 11:05:06 2132642776
>>2132294
Первый - пользователи
Второй - гаджеты и пользователи
Третий - интерфейс через json
Четвертый - интерфейс через com
Пятый - гаджеты и местоположение, надо, добавь пользователей
Ты не понимаешь, что такое Bounded Context.

>в этом протоколе это октетовая строка
Нахуя?
Аноним 19/08/21 Чтв 11:27:09 2132674777
>>2132602
>Двач ведь показатель популярности, кек.
Я и про другие

>>2132602
>Не нашел как создать csv файл? Бедненький.
Во-первых csv говно - я даже хуй знаю, можно ли в нем делать всякое оформление типа вставки фотографий, настроек фильтров, макросов.

Во-вторых csv говно, так MS Office 2010 его почти никак не открывает - например кракозябры вместо русского текста. И не надо орать про говно типа опенофисов или что там сейчас модно у прибитых свободкой. У нас внутренний софт завязан под 2010 офис (включая много чего на VBA), ставить стопятсот версий табличных редакторов - никто спасибо не скажет.

В третьих csv говно, и посоветовать его может только диванный теоретик не нюхавший русского софт-продакшена. Как бы все эти циферки нужно сдавать в виде сотни разных отчетов в фнс, еиасы, гис жкх, соцзащиту, и сотни других департаментов. А они требуют заполнения их форм, которые внезапно все в формате xls или xlsm - да тебя нахуй там пошлют с твоим csv, так как у них тоже свой софт забит на MS Excel (я даже скажу что в еиас сейчас нахуй пошлют даже если у тебя там версия офиса новая, так как хуй ты заполнишь их формы в MS старше 2015 - их формы не работают, ответ от техподержки)

Так что у меня задача интегрировать MS Office, а не какую-то херню
Аноним 19/08/21 Чтв 11:57:51 2132738778
image.png 111Кб, 500x500
500x500
Скажите,
1) В шарпе есть возможность локально хранить nuget пакеты?
2) Как решается конфликт имен, например у джавистов приписка домена к пути пакета. А тут как?
Аноним 19/08/21 Чтв 12:00:46 2132743779
>>2132674
Ты уже определись, у тебя банальная задача в отображении табличных данных или ты решил порно видео крутить в файле.

1. Ты очень сильно недооцениваешь "банальность" своей задачи. Лучше интеропа ничего нет, но я с такого бы проекта сразу бы сбежал на следующий день. Для его работы нужна конкретная установленная версия офиса и конкретная ссылка на зависимость.
2. Ты ожидаешь, что найдется добрый самаритянин, который бесплатно напишет отличную либу без багов и недостатков, тогда как такой сложный софт как опенофис или либраофис не могут без ошибок открыть сложный документ.
3. У тебя есть бабки на офис, но нет на лицензию либы. К тому же, ты не понимаешь, почему сделано через подписку. Причем ты не бесплатные, не платные либы не привел в пример, не описал, чем они тебе не подходят.
4. Данные в стороннюю систему передают не через эксель файлы и уж тем более не руками. И им нахуй не сдалось твое оформление, vba и фильтры в файле. Засовывать изображения в файл - это верх глупости.

Сидит на говнопроекте и придумывает себе говнозадачи.
Аноним 19/08/21 Чтв 12:07:58 2132754780
>>2132738
1) Есть
2) Приписывается namespace к названию класса или создается алиас. При правильной архитектуре конфликтов не будет.
Аноним 19/08/21 Чтв 12:18:15 2132765781
>>2132743
>4. Данные в стороннюю систему передают не через эксель файлы и уж тем более не руками
Очень внимательно посмотри на вот это:
http://www.eias.ru/?page=show_templates
Именно в экселе.. и руками. А вот чтобы не руками, для этого я и нужен:
Это только один из примеров. Дохрена еще всяких отчетностей. Плюс еще внутренняя документация для всяких анализов и прогнозов.

>>2132743
>Лучше интеропа ничего нет
интероп не поддерживается в core и net-5-6

>>2132743
>У тебя есть бабки на офис, но нет на лицензию либы.
Не у меня, а у компании. А доказать покупку либы - "ты же программист, мы тебе зарплату платим чтобы ты делал".


>>2132743
>Причем ты не бесплатные, не платные либы не привел в пример, не описал, чем они тебе не подходят.
Я не нашел бесплатные в том и дело. Нашел платную EPPlus - всем хорошо, но подписка. Видел еще какую-то платную, но там еще и жопные лимиты
Аноним 19/08/21 Чтв 12:19:44 2132770782
>>2132754
Спасибо, а можно по подробнее за второй пункт?
Я типа могу временно приписать наймспейс к какому-то пакету (или прям в через nuget могу)?
Аноним 19/08/21 Чтв 12:24:47 2132777783
>>2132743
>Засовывать изображения в файл - это верх глупости.
Ну опять ты голословно заявляешь "не нужно", даже не поинтересовавшись задачей. А подумать? данные ведь могут быть разными - это могут быть графики для мониторинга ситуации, это могут быть собранные фотографии состояния склада при выгрузке всех данных по нему - чтобы директор решал за модернизацию. Или карта его расположения... Да дохера всего. Можно конечно раскидывать все по папкам - но поверь, начальству меньше всего хочется куда-то тыкать - ему надо все сразу на большом проекторе в виде презентации какой-нибудь. Не руками же сидеть и делать, особенно если это ежедневные отчеты
Аноним 19/08/21 Чтв 13:09:23 2132802784
>>2132765
В коре можно использовать интероп.
Аноним 19/08/21 Чтв 13:11:12 2132804785
Аноним 19/08/21 Чтв 13:22:23 2132815786
>>2132770
У каждого класса есть namespace. Первое слово - обычно название конторы. Т.е. или пакет называется в виде полного названия класса или что-то вида ФирмаНейм.ХуйняНейм. Nuget не позволяет создать два пакета с одинаковым названием, но можно дублировать названия из разных Nuget хранилищ, тут и нужны алиасы, но лучше про это забыть.
Аноним 19/08/21 Чтв 13:27:49 2132821787
Аноним 19/08/21 Чтв 13:36:33 2132828788
>>2132821
Блядь. А ееплюс все уже? Теперь нахаляву только какое-то китайское дерьмо?
Аноним 19/08/21 Чтв 13:40:27 2132831789
>>2132828
npoi как уже тоже все, причину я уже озвучил.
Аноним 19/08/21 Чтв 13:44:11 2132836790
>>2132831
Где ты ее одвучил? Что за причина?
Аноним 19/08/21 Чтв 13:48:35 2132840791
>>2132815
Почему забыть? Ну вот ситуация когда ты работаешь с какими-то локальными пакетами, без регистрации на сайте и вдруг пересекается. Тут только алиасы?
Аноним 19/08/21 Чтв 13:54:55 2132852792
>>2132840
Потому что это плохой дизайн. Только алиас.
Аноним 19/08/21 Чтв 14:01:26 2132861793
>>2132836
Эту либу когда-то использовал для генерации отчетов. Забагованная и кривая как и все, что связано с офисом. Ты можешь один и тем же кодом генерировать стили на два листа у файла, но на выходе могут получиться разные листы, потому что ты что-то не учел, но апи позволило.
Аноним 19/08/21 Чтв 14:05:10 2132862794
>>2132861
Кстати, на фоне интеропа, эта либа аленький цветочек, потому что интероп открывает файл в фоне и делает эмуляцию действий пользователя с вытекающими последствиями как не закрытый процесс или странные баги. И либа не позволит воспроизвести порно видео.
Аноним 19/08/21 Чтв 14:25:39 2132883795
>>2132804
Ну да, вот толи дело онлайн казино писать или магазин анальных затычек - вот это идеальные проекты

>>2132802
Нормально нельзя. Есть черезжопный способ через ручной конфиг csproj - но это то еще говнище глючное.

Ну или показывай нормальный способ





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

Лично с этим столкнулся, когда делал интероп на аксес - часто ведь то там-то там вылетит в девелопе, и по итогу к концу дня у меня вся память (все 32гб) засрана незакрытыми аксесами застрявшими в памяти.

И пока что не нашел как с этим бороться (у wpf нет четкого финалайза, пока что только вбил в обработчик исключений апликейшена принудительное закрытие - но это не помогает в дебаге так как до туда не доходит... И до кучи годных решений по этому также не нашел, что еще раз говорит что как будто никто не кодит и только я уникально нахожу баги - но это блин базовые вещи
Аноним 19/08/21 Чтв 14:44:21 2132901796
>>2131460
Спасибо. На основании статьи и своих мысленных потуг родил такую схему. SignUpManager при логине будет помимо прочего класть в юзера клаим lastLoginToken:guid. Контроллер, после вызова SignIn возьмет этот токен и запихнет его в MemoryCache. При запросе от юзера я буду сравнивать токен из кук с токеном из кэша и если не совпадают или в кэше нет инфы, то тогда пользователя занаво за signIn'ить. При изменении звания юзера удалять его токен из кэша, при изменеии прав для роли можно грохнуть все токены из кэша. Есть какие-то очевидные подводные, которые я не заметил (ну кроме того что при 1кк юзеров минус ~150мб оперативы на кэш)?
Аноним 19/08/21 Чтв 14:49:15 2132910797
>>2132901
Есш ибольше одного инстанса будет, то пизда. Зачем тебе там какой-то токен? Просто юзер айди пихай
Аноним 19/08/21 Чтв 14:57:57 2132916798
>>2132910
>Есш ибольше одного инстанса будет, то пизда
Инстанс кэша? Такое может быть? Я просто еще не ковырял аспшный мемори кэш. Ну в худшем случае ляжет база хД, Хотя можно свой синглтон словарь под такое сделать.
>>2132910
>Просто юзер айди пихай
Как он мне поможет узнать актуальные ли клаймы в куках лежат?
Аноним 19/08/21 Чтв 15:02:13 2132919799
>>2132910
Либо просто дрочить базу на каждый запрос, требующий повышенных привилегий. Но зачем тогда в куки эти клайми пишутся...
Аноним 19/08/21 Чтв 15:26:18 2132948800
>>2132883
>толи дело
После казино или магазина ты хотя бы как-то развиваешься, а от электронного документооборота только деградация. Тем более с начальством, которому наплевать на разработчиков. У меня родственник 50+ как раз работает на такого полоумного, отчеты заполняет письменно и через компьютер одно и тоже дважды, вместо того, чтобы набрать на компьютере и распечатать, принтер есть, но бюрократия. Не говоря, что такие процессы уже давно автоматизируются, исключая вообще человеческий фактор.

>Нормально нельзя
В чем проблема добавить пару параметров в csproj размером с десяток строк от силы? Это проблема самой либы интеропа, а не в том, что кор не позволяет ссылаться на фреймворк либы. И раз у тебя есть опыт с С++, сделай враппер над С++ либой через маршалинг вместо интеропа.

>вызвать его Open, а потом где-нибудь вылетит исключение
Это ты слишком удачный сценарий описал. Я добавлял изображение не в клетку через OLE контейнер. Исключения не было, но и изображение не добавлялось.

>к концу дня у меня вся память (все 32гб) засрана
Открывай другим пользователем и раз в час убивай старые процессы. Или запоминай PID.

>у wpf нет четкого финалайза
Так или его аналоги, но ловит не все:
https://docs.microsoft.com/en-us/dotnet/api/system.appdomain.unhandledexception?view=net-5.0
Лучше вместо него на конкретную функцию ставить try-catch. К WPF это не имеет вообще никого отношения, но надо знать, что такое stathread и как он влияет.

>но это не помогает в дебаге так как до туда не доходит
Пиши логи.

>показывай нормальный способ
В нормальных системах для твоей задачи эксель не нужен. XLS/X - это хуевый формат для передачи и хранения данных, и работать с ним крайне неприятно и сложно.
Аноним 19/08/21 Чтв 15:58:43 2132985801
>>2132916
>Инстанс кэша?
Инстанс приложения.
Аноним 19/08/21 Чтв 16:05:26 2132993802
>>2132985
А. Ну в моем случае это не актуально. Инстанс один.
Аноним 19/08/21 Чтв 16:28:20 2133024803
Есть охренительный проект, написанный охренительным прогером, но на Delphi. Может ли что-то почерпнуть для себя из его исходников .Net разработчик?
Аноним 19/08/21 Чтв 16:55:00 2133066804
>>2133024
Может. Но стоит ли оно того, если есть шарпные?
Аноним 19/08/21 Чтв 18:28:28 2133173805
image.png 3Кб, 301x90
301x90
Сап. Подскажите, с чего начать. Нужен такой стэк. Предлагают внутри компании перекатиться.
Аноним 19/08/21 Чтв 19:27:26 2133253806
Вопрос к тем, кто работает на APS.NET'
Изучаю данный фреймворк по-тихоньку, но так и не могу понять, есть ли тут четкая граница между фронтом и бэком?
Аноним 19/08/21 Чтв 19:39:01 2133268807
Вот такой тупой вопрос.
Смотрите. В базе есть некоторые типы справочников. Они константные. По сути это сорт оф enum но лежит в базе. Допустим - тип пользователя {id : 1, name : admin}, {id : 2, name : user}, {id : 3, name : guest}
Что я хочу. Я хочу собрать openApi в котором будет примерно следущее:
"enum": ["admin","user","guest"]
При этом я не хочу делать его ручками. Да и каждый раз в базу лезть тоже не хочется(да, константные-то константные, но может быть нужно будет что-то добавить и хочется чтобы в опенапи это отразилось).
Собственно вопрос: как проще всего это сделать?
Плюс дополнительный вопрос, как на фронтенде красивенько это рисовать чтобы были на admin, user, guest а Администратор, Пользователь, Гость.
Аноним 19/08/21 Чтв 19:51:30 2133283808
>>2133173
> Подскажите, с чего начать. Нужен такой стэк.
кор и впф?
Да блять с МСДН и начни. Лучшей документации для их собственных тулкитов ты не найдёшь.
Аноним 19/08/21 Чтв 21:47:43 2133414809
Аноним 20/08/21 Птн 02:05:27 2133639810
>>2132948
>а от электронного документооборота только деградация.
С чего бы? Тоже самое теребоньканье данных из бд.

Аноним 20/08/21 Птн 02:59:24 2133652811
В общем хотел сам изучить шарп.
В тредах нихуя почти не нашёл, в закрепе тоже. В б никаких ссылок на книжки не дали. Охуенно короче.
Пришёл за ссылками на книжки и видосики - получил хуй в нос. Спасиба.

Единственное что нашёл ссылку на csharp net tutorials. И на том спасибо.

В итоге пришлось покупать курс от скиллбокса. Ведь стало понятно что придётся иначе искать всё самому и заёбываться.
Аноним 20/08/21 Птн 05:56:16 2133669812
>>2133414
Как по ссылке это не то. Опенапи позволяет нормальные строки передать. Если я буду сериализовать enum - то там будет НЕКРАСИВО если там какой-нибудь PrivilegedUser - так оно и отдастся. А я хочу чтобы в данном случае отдалось PrivilegedUser.
Ну и этот вариант завязан на том что я enum использую в dto, а хуячить enum если он есть а базе и там - просто нарушает dry. Опять же, если нужно будет добавить новый тип пользователя - нужно будет добавлять в двух местах: в этот вот enum и базу.
Аноним 20/08/21 Птн 06:13:05 2133672813
>>2133652
купи на юдеми за 800р
нахуй тебе скилбокс за 100к?
Аноним 20/08/21 Птн 08:27:20 2133701814
>>2133652
Умение самостоятельно искать инфу - это один из навыков погромиста. Список книг кстати есть во втором посте. В чём проблема вбить в гугле запрос "имя_книги скачать"?
Аноним 20/08/21 Птн 08:32:06 2133706815
>>2133652
Ты забыл прорекламировать Raid Shadow Legends. Но если тебе в гугле книжку не найти, то самообучение для тебя, конечно, невозможно. Но с другой стороны тут и курсы не помогут, посему лучше посмотреть в сторону профессий, где не нужно постоянное обучение.
Аноним 20/08/21 Птн 10:18:53 2133764816
Аноним 20/08/21 Птн 11:37:06 2133822817
>>2133639
На документообороте ты больше ничего не делаешь, кроме трансформации данных из одной формы в другую. Ценность такого опыта на нормальных проектах около нуля. Это еще хуже, чем в тупую круды пилить.
Аноним 20/08/21 Птн 11:47:00 2133827818
>>2133822
А какой опыт тогда ценится?
Аноним 20/08/21 Птн 11:56:22 2133833819
>>2133827
Открываешь вакансии и смотришь список базвордов. Да и низкий шанс, что встретится знание экселя. Ты же не пишешь в резюме или на собеседовании, что знаешь например JSON или PDF. И выше уже написали, что большинство сидит в вебе.
Аноним 20/08/21 Птн 13:52:09 2134004820
>>2133827
Сексуальный.
petrosyan.webm
Аноним 20/08/21 Птн 15:06:50 2134110821
Тред практически мертв, нужен перекат кто? я? для прилива свежей крови.
Аноним 20/08/21 Птн 17:29:44 2134257822
image.png 5Кб, 765x54
765x54
image.png 12Кб, 257x311
257x311
Объясните для дебила что я делаю не так.
Я скачал и установил SQL Express и с ним Management Sudio.
В своем тестовом веб-приложении создал модель юзера, сгенерировал миграцию, сделал Update-database. Смотрю в management studio и не вижу бд.
ConnectionString на первом пике
ObjectExplorer на втором
Аноним 20/08/21 Птн 20:17:49 2134465823
>>2133701
В том что там сплошные платные версии например? Сколько я должен страниц гугла пролистать? Почему ВАМ трудно это в тред залить, если у вас вся эта литература под рукой? Вы черви-пидоры которые притворяются помощниками а на деле вам лень поделится чем нибудь, для вас нихуя не стоящим.

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

В профильном чате в телеге мне всю литру дали спокойно.

>>2134110
Какая свежая кровь? От вас пользы вкатывальщику НУЛЬ просто. Лучше в чаты ТГ пойти или группы вк, там хотя бы реально помогут. Вон челик выше спросил как ему на работе хуйню сделать - РЯЯЯЯЯ ОФИС РЯЯЯЯЯЯ ТВОЯ РАБОТА ГОВНО РЯЯЯЯЯ вместо нормальных советов. Нахуй вы нужны?
Аноним 20/08/21 Птн 20:19:33 2134470824
>>2132602
Вот ты вот, обоссанец, я мать твою ебал. У тебя анон спросил совета а ты тока выебоны ему кинул свои. В жопу их себе засунь.

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

>>2132804
Говно - это твои родители
Аноним 20/08/21 Птн 20:32:49 2134479825
>>2134470
Вот тут ты и обосрался. За мою дерзость не банят на форумах, но на дваче банят постоянно.
Аноним 20/08/21 Птн 20:47:57 2134500826
>>2134479
Ну конечно. На форумах все дают нормальный совет а не визжат про ГОВНОПРОЕКТЫ когда их не спрашивали.
Аноним 20/08/21 Птн 21:19:11 2134538827
>>2132883
>если вот для интеропа создать Application, вызвать его Open, а потом где-нибудь вылетит исключение - то оно останется висеть в памяти даже если приложение уже закрыто
Все созданные объекты Excel нужно вручную прибивать через Marshal.ReleaseComObject (но не FinalReleaseComObject) , оборачивая в try-catch-finally.
По этой же причине нельзя использовать операцию точка более 1 раза.
var ws = application.Workbooks[1].Worksheets[1] - такое делать нельзя, промежуточный workbook останется висеть в памяти. Нельзя делать foreach, потому что создаётся висячий объект-итератор.
Аноним 20/08/21 Птн 21:45:55 2134576828
Аноним 20/08/21 Птн 21:47:26 2134577829
>>2134479
>За мою дерзость не банят на форумах, но на дваче банят постоянно.
Что ты такое?
Аноним 20/08/21 Птн 21:52:22 2134584830
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов