Сохранен 639
https://2ch.hk/pr/res/2433268.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C# Тред #38 /csharp/

 Аноним 14/08/22 Вск 10:26:02 #1 №2433268 
image.png
image.png
Тред лучшего языка на планете.

1. Ресурсы:
https://dotnet.microsoft.com/learn
https://ru.stackoverflow.com/a/416585/422180
https://metanit.com
https://professorweb.ru

2. С# для веб
https://docs.microsoft.com/ru-ru/aspnet/core

3. C# для десктопа
— WPF ( https://docs.microsoft.com/ru-ru/dotnet/desktop/wpf )
— WinForms ( https://docs.microsoft.com/ru-ru/dotnet/desktop )

4. С# для игр
— Unity-тред в /gd/, а так же учебники: https://ru.stackoverflow.com/a/609901/422180

5. С# для мобильной разработки
https://docs.microsoft.com/ru-ru/dotnet/maui

Шапка: https://pastebin.com/HT7Hi6FD
Прошлый тред: >>2423030 (OP)
Аноним 14/08/22 Вск 10:26:42 #2 №2433269 
6. Какую IDE выбрать?
Для Windows — Visual Studio ( https://visualstudio.microsoft.com/ru/downloads ). Также есть версия для macOS.
Кроссплатформенный IDE Rider ( https://www.jetbrains.com/rider ).
Если в C# хочется, но пк уж слишком хуёвый: https://docs.microsoft.com/en-us/dotnet/core/tutorials/with-visual-studio-code

7. Что нужно знать, чтобы взяли работать?
Общие навыки — TPL, Linq, DI, интеграционные тесты. Преимущество перед такими же вкатунами даст парочка интересных пет-проектов где вы делаете всё максимально правильно и точно следуя архитектуре.
Архитектура — DDD, микросервисная архитектура. Так же необходимо ознакомиться с паттернами проектирования. Обязательны к изучению: MVVM, MVC.
Базы данных — PostgreSQL + Mongo. Из ORM: EFCore обычно достаточно, но есть более быстрый, но менее удобный Dapper. Тратить время на ADO.NET не стоит.
Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
Структуры данных — связанные списки, деревья (бинарные, красно-чёрные), хеш-таблицы, графы.
Системы контроля версий — обычно гита достаточно.
Аноним 14/08/22 Вск 11:07:02 #3 №2433305 
Кортежи медленнее классов?
Аноним 14/08/22 Вск 11:10:26 #4 №2433310 
>>2433305
Хз, но если да, то разрабы ДАУНЫ
Аноним 14/08/22 Вск 11:15:18 #5 №2433313 
>>2433310
Заметил, что за последние несколько дней появился петрсоян.
Аноним 14/08/22 Вск 12:40:10 #6 №2433403 
>>2433269
Найс шапку пофиксил кста, пиздабол.
Аноним 14/08/22 Вск 12:57:58 #7 №2433429 
>>2433403
Скажи как пофиксить, а я пофикшу.
Аноним 14/08/22 Вск 14:35:49 #8 №2433572 
>>2433305
Кортежи быстрее, т.к. это структуры по сути
Аноним 14/08/22 Вск 14:36:21 #9 №2433573 
Ура блять дашчан починил наконец-то
Аноним 14/08/22 Вск 14:42:16 #10 №2433587 
image.png
image.png
Здравствуйте. Есть идеи как заполнить такой словарь Dictionary<string, Dictionary<string, decimal>>?
Данные беру их XML, для обычного Dictionary<string, string> всё легко, а тут хз что делать. Нужно получить словарь, как на первом пике. На втором пике код, который работает на обычном словаре ключ => значение.
Аноним 14/08/22 Вск 14:48:47 #11 №2433599 
изображение.png
Почему ругается?
Аноним 14/08/22 Вск 14:55:35 #12 №2433613 
Можно ли определить тип переменной как число?
Аноним 14/08/22 Вск 15:13:46 #13 №2433638 
>>2433613
Берёшь double/decimal и норм
Аноним 14/08/22 Вск 15:14:45 #14 №2433640 
>>2433587
Через обычный add пробовал?
Аноним 14/08/22 Вск 15:27:22 #15 №2433676 
>>2433640
залупа какая-то получается...
Аноним 14/08/22 Вск 15:33:47 #16 №2433694 
>>2433587
.ToDictionary(x => x.Key, x.ToDictionary(y => y.Hui1, y => y.Hui2))
Аноним 14/08/22 Вск 15:33:54 #17 №2433695 
>>2433638
Можно подробнее?
Вот есть тип String. Как мне выразить тип через число? Естественно, суть данной затеи в экономии передаваемых байт.
Аноним 14/08/22 Вск 15:38:16 #18 №2433714 
>>2433695
int i = 5;
decimal d = 5.0m;
float f = 5.0f;
double d = 5.0d;
Аноним 14/08/22 Вск 15:48:25 #19 №2433736 
>>2433714
В мою функцию приходит какие-то данные в формате Object. Я не знаю что за данные.

public int GetTypeIndex(object value)
{
//вот тут я из value должен получить тип в виде числа
}
Аноним 14/08/22 Вск 15:55:24 #20 №2433753 
>>2433736
Нахуй и в пизду, короч. Сам нашел.

public int GetTypeIndex(object value)
{
TypeCode valueTypeCode = value.GetType.Attributes.GetTypeCode
}
Аноним 14/08/22 Вск 18:25:37 #21 №2433906 
>>2433572
Если речь про record, то нет
Это просто метки для компилятора "сгенерируй тело сам" и, как следствие, поддержка конструкции with
Аноним 14/08/22 Вск 18:40:00 #22 №2433923 
>>2433906
Под классы выделяется память в куче, а структуры и туплы валяются на стеке.
No allocations => fast
Аноним 14/08/22 Вск 18:45:33 #23 №2433926 
>>2433923
Ну если речь про Tuple, то да - они структуры. я подумал речь про record

>No allocations => fast
Ну разве что только создание.
Аноним 14/08/22 Вск 18:48:19 #24 №2433927 
>>2433926
> >No allocations => fast
> Ну разве что только создание.
Условно если у тебя сервис с 300кк RPS/нс, то разница между туплами и классами я думаю нихуевая такая
Аноним 14/08/22 Вск 19:36:09 #25 №2433981 
Посоветуйте книгу про MS SQL. Если конкретнее, интересуют уровни изоляции и индексы.
Аноним 14/08/22 Вск 19:44:11 #26 №2433992 
>>2433981
Тебе в БД тред.
Аноним 14/08/22 Вск 22:22:49 #27 №2434207 
>>2433305
смотря какие
если использовать Tuple.Create(420, 69) - то это инстанс класса.
если использовать (int, int) t = (420, 96) aka ValueTuple - это структура;
Аноним 14/08/22 Вск 22:26:05 #28 №2434214 
image.png
>>2433640
>>2433694

Тааак, я сделал. Но теперь новая проблема. Курс валюты в XML записан через ",", а чтобы нормально преобразовать в decimal надо ".". Так что пока оставлю string
Аноним 14/08/22 Вск 22:38:09 #29 №2434229 
>>2434214
Кстати, до того как я написал "where(val == key)" у меня во второй словарь тупо вписывались все имена и все курсы.
Аноним 14/08/22 Вск 22:38:43 #30 №2434230 
>>2434214
val => decimal.Parse(((string)val.Element("Value")).Replace(",", "."))
Аноним 14/08/22 Вск 22:39:27 #31 №2434232 
>>2434214
>а чтобы нормально преобразовать в decimal надо ".".
Ну так поменяй CultureInfo при парсинге
Аноним 14/08/22 Вск 22:39:55 #32 №2434233 
>>2434230
Это да, завтра доделаю
Аноним 14/08/22 Вск 22:41:07 #33 №2434235 
>>2434232
Так у меня в xml файле через запятую. Или эта штука как-то повлияет?
Аноним 14/08/22 Вск 22:50:24 #34 №2434240 
image.png
>>2434235
XML ты читаешь как строку в любом случае. Но вот как интерпретировать эту строку в число зависит так же от формата данных, которые хранятся в CultureInfo. Вот например Culture Info ru-RU.
Аноним 14/08/22 Вск 23:28:37 #35 №2434281 
>>2434240
А понял, типо заместо точки поставить запятую.
Аноним 15/08/22 Пнд 00:47:03 #36 №2434349 
Хочу поменять первую работу. Там я просто крудошлепил в основном. Многие пишут в вакансиях, что требуется основы веба, или ангулар. Реально ли устроиться куда-то джун-мидлом без знаний ангуляр, или реакта?
Аноним 15/08/22 Пнд 00:48:20 #37 №2434350 
>>2434230
>>2434233
Не делай так. Парси в зависимости от локализации.

var InvariantCulture = System.Globalization.CultureInfo.InvariantCulture;
var MinValue = double.Parse(Value, InvariantCulture);

Само определит запятую, точку или какой другой разделитель. Потому что если ты будешь тупо реплейсить знак, а твоя прога запустится на какой нибудь другой шиндовс, с другой локализацией, то у тебя снова выскочит ошибка. Тебе нужно, чтобы локализация шиндовс совпадала с искомым знаком. И чтобы с этим не морочиться, собсно, код выше. Оно само сделает.
Аноним 15/08/22 Пнд 01:06:13 #38 №2434358 
>>2434349
Мне казалось, что такие вопросы задают подставные зрители на стримах инфоцыган, типа:
— А можно устроиться успешным 3д-моделлером без умения рисовать?
А инфоцыган такой:
— Ну конечно же можно! И даже получать 300к в секунду!
— А вот ... если я посмотрел 10% ваших видеоуроков, а остальное лень, то я могу устроиться в Близзард?
— Ну конечно же можно! На рынке не хватает специалистов, просто пукните на линкедине и вас оторвут с руками!
Аноним 15/08/22 Пнд 02:32:16 #39 №2434382 
>>2434358
Я просто хотел бекендом заниматься. Ну штош, придётся фронт осваивать глубже.
Аноним 15/08/22 Пнд 08:10:03 #40 №2434448 
image.png
>>2434350
Тту такое дело... У меня в итоге вообще разделитель стёрло
Аноним 15/08/22 Пнд 08:25:01 #41 №2434454 
>>2434448
Используй Convert.ToString(number, CultureInfo.GetCultureInfo("en-US")), так будет с точкой.

Но не забывай, что разные культуры используют разные разделители, например в СНГ - это запятая, на западе - точка, у каких-то арабов похожая на запятую, но не является ею (муммайз): "٫", так что в регулярках в некоторых случаях нужно
Аноним 15/08/22 Пнд 08:26:55 #42 №2434456 
>>2434349
Реально офк, но зарабатывать ты будешь меньше поскольку чисто бекендеры не выгодны бизнесу. Знания фронта дадут плюс офк, но учить это тебе или нет - твоё дело, я например не собираюсь учить и планирую перекат на десктоп, а то с веба блевать хочется.
Аноним 15/08/22 Пнд 08:27:37 #43 №2434457 
>>2434454
Это да. А можно как-то на основе чего-то узнать локацию, где запущена прога?
Аноним 15/08/22 Пнд 08:29:40 #44 №2434460 
>>2434457
Да, CultureInfo.CurrentCulture.
Аноним 15/08/22 Пнд 08:32:55 #45 №2434463 
>>2434460
>CultureInfo.CurrentCulture
Во, спасибо. Я только начал смотреть, что в этом классе есть
Аноним 15/08/22 Пнд 08:37:24 #46 №2434466 
>>2433573
Фсмысли блять? У меня не работает. И обновлений пишет, что нет.
Аноним 15/08/22 Пнд 08:38:29 #47 №2434468 
image.png
image.png
Всё, наконец-то всё работает. Теперь осталось победить эту кучу ворнингов.
Аноним 15/08/22 Пнд 08:41:20 #48 №2434473 
>>2434466
В /mobi/ в треде про дашчан постили патч.
Аноним 15/08/22 Пнд 08:42:25 #49 №2434475 
>>2434468
Пишешь вначале файла #nullable disable;
Если хочешь только какую-то часть кода пометить с выкл/вкл нуллейбл то делаешь вот так:

Чтобы выключить:
#nullable disable;
часть кода (метод, класс, пара строк внутри метода)
#nullable enable;

Чтобы включить
#nullable enable;
часть кода (метод, класс, пара строк внутри метода)
#nullable disable;
Аноним 15/08/22 Пнд 08:43:10 #50 №2434476 
>>2434475
Бля, без точки с запятой.
Аноним 15/08/22 Пнд 08:50:39 #51 №2434480 
Меня сюда перенаправил анон из "мы-вам-перезвоним"-треда.

Анон, ты здесь?)
Аноним 15/08/22 Пнд 08:52:34 #52 №2434482 
>>2434475
о, так называемый налблконтекст, проходил недавно месяц назад
Аноним 15/08/22 Пнд 08:54:34 #53 №2434484 
>>2434475
Кстати, вот он жалуется на null в этом огромном запросе. Как это всё обработать? Просто в try...catch засунуть? Потому что через if я тут хуй что проверю, код сразу раза в два увеличится.
Аноним 15/08/22 Пнд 08:56:39 #54 №2434488 
>>2434448
Почему у тебя не стоит решарпер?
Аноним 15/08/22 Пнд 08:57:36 #55 №2434489 
>>2434488
Что? Я новенький в C#, так что не очень понимаю о чём Вы
Аноним 15/08/22 Пнд 09:00:51 #56 №2434495 
>>2434475
А, и ещё, вот у меня получился этот огромный запрос - это норм? Или лучше там поделить на части и тд. Я прост щас тг бота пишу для резюме да и довольно интересное занятие, так что хочется правильно писать код. Да и к тому же хочется знать как правильно делать.
Аноним 15/08/22 Пнд 09:01:58 #57 №2434499 
>>2434480
На месте
Аноним 15/08/22 Пнд 09:02:46 #58 №2434501 
>>2434484
Забей хуй. Кидай ArgumentNullException в самом начале если входной параметр пустой или null
Аноним 15/08/22 Пнд 09:02:51 #59 №2434502 
>>2434499
Так можно к тебе на шею до момента вката?)
Аноним 15/08/22 Пнд 09:03:24 #60 №2434505 
>>2434502
Конечно. У меня тут полтреда на шее висит по собственной воле
Аноним 15/08/22 Пнд 09:03:50 #61 №2434507 
>>2434501
Yap kok
Аноним 15/08/22 Пнд 09:07:00 #62 №2434515 
>>2434468
Лучше юзай Fluent interfaces в Linq, а не ту хуиту с from
Аноним 15/08/22 Пнд 09:11:36 #63 №2434519 
>>2434515
> Fluent interfaces в Linq
А разница? До Fluent interfaces я ещё не дошёл и даже не представляю, что это
Аноним 15/08/22 Пнд 09:13:47 #64 №2434521 
>>2434519
>А разница?
Технически никакой, но выглядит в миллион раз лучше. Сразу приучайся к нормальному синтаксису иначе потом не переучишься или это будет трудным
Аноним 15/08/22 Пнд 09:16:09 #65 №2434525 
>>2434454
Бля, да как ты заебал. Нахуя ты его привязываешь к конкретной культуре?
Аноним 15/08/22 Пнд 09:18:05 #66 №2434528 
>>2434525
Он захотел точку - я ему показал как получить точку. Это хуита, да.
Аноним 15/08/22 Пнд 09:21:36 #67 №2434532 
Так уже всё норм. Я через CultureInfo.CurrentCulture беру культуру, а патом кидаю её в Parse
Аноним 15/08/22 Пнд 10:55:15 #68 №2434600 
image.png
У меня ещё тут возник вопрос по поводу архитектуры. Вот у меня есть куча классов отвечающих за там обработку сообщений, отдельный класс для меню и тд. Мне так всё и оставить или нужно разложить всё? Например, как в mvc сделать контроллер и тд. Или как лучше сделать?
Аноним 15/08/22 Пнд 10:57:55 #69 №2434601 
>>2434600
Например, как вот тут.
github.com/Excalib88/ValiBot/tree/master
Аноним 15/08/22 Пнд 10:59:40 #70 №2434603 
>>2434600
>У меня ещё тут возник вопрос по поводу архитектуры
Когда вижу подобное - глаз радуется.

Есть много подходов к архитектуре, например DDD, так же есть CHO. Можешь погуглить про это, например ddd очень хорошо объясняется вот тут: https://docs.abp.io/en/abp/latest/Domain-Driven-Design, это вообще сайт фреймворка для .NET, но по сути весь этот фреймворк - это уже готовая реализация DDD и модулей для .NET, AggregateRoot'ы всякие, сервисы и апп-сервисов. Можешь почитать, но не углубляйся в сам фреймворк. Почти всё, что написано там - относится напрямую к DDD.
Аноним 15/08/22 Пнд 10:59:46 #71 №2434604 
>>2434601
>github.com/Excalib88/ValiBot/tree/master
Правда мне вообще непонятно, что и как тут сделано
Аноним 15/08/22 Пнд 11:00:50 #72 №2434605 
>>2434603
thanks, пойду смотреть
Аноним 15/08/22 Пнд 15:57:17 #73 №2434933 
Можно в студии сделать свой синтаксис? Хочу всякие текстовые лог-файлики смотреть с подсветкой буков. Или есть какой-то уже готовый синтаксис?
Аноним 15/08/22 Пнд 16:03:15 #74 №2434936 
>>2434933
Лучше, в vs code лучше
Аноним 15/08/22 Пнд 16:07:30 #75 №2434945 
>>2434936
Да понятно что в сублим тексте, нотпаде++ и вс-коде есть. Меня интересует вижуал студия.

Я вот хочу просто файлик информации сделать к проекту — для заметок.
Аноним 15/08/22 Пнд 16:10:32 #76 №2434948 
>>2434945
И самое главное загуглить невозможно, т.к. идет перекрытие VS Code.
Аноним 15/08/22 Пнд 16:14:36 #77 №2434953 
>>2434933
https://stackoverflow.com/questions/41731589/visual-studio-custom-syntax-coloring
Аноним 15/08/22 Пнд 19:09:48 #78 №2435140 
Меж тем вышла новая версия net framework с поддержкой arm64
Аноним 15/08/22 Пнд 19:12:20 #79 №2435141 
>>2435140
Пусть лялех сначала допилят и потом занимаются всякой хуйнёй.
Аноним 15/08/22 Пнд 19:29:43 #80 №2435155 
Ебать скоро MAUI начнет доминировать на десктоп рынке, вот все охуеют
Аноним 15/08/22 Пнд 19:31:06 #81 №2435159 
А можно как-то возвращать данные из функции разного типа? В однмо случае интеджер, в другом стринг.
Аноним 15/08/22 Пнд 19:31:13 #82 №2435160 
>>2435155
да, есть такое, ща там должны еще новых фич подвести, нормальную поддержку кроссплатформ и начнется захват рынка к концу года
Аноним 15/08/22 Пнд 19:32:34 #83 №2435161 
>>2435155
Ебать скоро WPF начнет доминировать на десктоп рынке, вот все охуеют
Аноним 15/08/22 Пнд 19:32:55 #84 №2435162 
>>2435159
сделать тип возвращаемого значения обобщенным либо боксинг анбоксинг
Аноним 15/08/22 Пнд 19:37:00 #85 №2435168 
>>2435159
Есть эксепшены
Аноним 15/08/22 Пнд 19:37:49 #86 №2435173 
>>2435161
сравнение мауи и впф неверно, поскольку это совершенно разные платформы по своей сути
Аноним 15/08/22 Пнд 19:40:51 #87 №2435178 
>>2435173
Платформы разные, но каждый раз заявляется, что это самая лучшая гуёвая библиотека всех времён и народов, которая убьёт все предыдущие.
Аноним 15/08/22 Пнд 19:59:21 #88 №2435197 
изображение.png
Помогите разобраться с гитом. Писал проект в студии, всё синхронизировал, но решил перейти с текущей ветки на мастер и пиздец, ругается на ошибки. Пытался вернуться обратно, и вновь ругается (перед переходом на другую ветку я забыл запушить последние изменения). Что делать? Не хочется терять 5 часов работы.
Аноним 15/08/22 Пнд 19:59:54 #89 №2435199 
>>2435162
>>2435168
А как?

В мою функцию подается код типа,
и дальше через свич используются функции:
BitConverter.ToBoolean
BitConverter.ToInt32
BitConverter.ToDouble
... и так далее

Но вот я не знаю как высрать значение нужного типа, окромя Object.
Аноним 15/08/22 Пнд 20:07:07 #90 №2435203 
>>2435199
Только dynamic object хотя можно и byte[]
Аноним 15/08/22 Пнд 20:17:00 #91 №2435212 
>>2435199
Ты ваще сам код-то покажи. Большие свич-кейс это не плохо, это норма в нашем мире. При той же ебли с IL кодом нужно будет делать огромные свич-кейс т.к есть 8, 16, 32, 64 битные инструкции которые надо группировать в свич-кейсы большие под разрядность. Там кстати и используется BitConverter, ты случайно не с IL дрочишься?
Аноним 15/08/22 Пнд 20:44:41 #92 №2435227 
>>2435212
>ты случайно не с IL дрочишься?
Нет, с именованными каналами.
Они передаются через массив байт. Есть через стринги, но не суть.

Сервер конвертирует интеджеры, булеаны, стринги в массив байт и передает клиенту, а чтобы клиент понял какого типа даные, у меня передается TypeCode:
https://docs.microsoft.com/en-us/dotnet/api/system.typecode?view=net-6.0
И если с конвертацией в байты мне удалось хотя бы самому не писать свичи, то вот как обратно все это вернуть — непонятно.

Грубо говоря, приходит пакет данных, где первый байт — это тип данных, два следующих — длина в байтах, а все остальное — сами данные.

Как это сделать по уму, я не знаю. Я думаю юзать лямбда-функции т.к. там доступны все локальные переменные и тогда не надо их возвращать через обджект.
Аноним 15/08/22 Пнд 20:50:57 #93 №2435230 
>>2435212
>Ты ваще сам код-то покажи.

https://pastebin.com/EtvCh4Y6
Аноним 15/08/22 Пнд 21:00:58 #94 №2435238 
>>2435230
>>2435227

Это норм код. Не пытайся изменить это, пиши свич-кейсы. Всё правильно делаешь в таком случае
Аноним 15/08/22 Пнд 21:12:52 #95 №2435255 
>>2435238
Так у меня на выходе из функции тип Object, а не соответствующий сконвертированным данным.
Аноним 15/08/22 Пнд 21:25:05 #96 №2435262 
>>2435255
Сделай метод дженерик и возвращай его
Аноним 15/08/22 Пнд 21:29:13 #97 №2435265 
>>2435262
но конкретный тип дженерика я должен объявить при вызове функции, а как я это сделаю, если я до ее вызова не знаю какой тип.
Аноним 15/08/22 Пнд 21:37:45 #98 №2435274 
>>2435265
private T ReadByTypeCode<T>(typeCode TypeCode, byte[] bufferData, ref ushort offset, ushort length) where T: class, struct

Если нужно будет передавать какой-то инициализирующийся объект, то можно указать where T: new()
Аноним 15/08/22 Пнд 21:45:53 #99 №2435282 
>>2435197
Ну так а ты коммиты делал? В коммиты все файлы проекта добавлял? На прошлых коммитах работает?
Покажи-ка что там по истории коммитов в обоих ветках.

Кстати, правильно что закрасил имя пользователя, а то мы бы тебя сдеанонили и заказали тебе много приколов из секс шопа на домашний адрес, было бы неловко.
Аноним 15/08/22 Пнд 22:49:36 #100 №2435321 
>>2435282
>было бы неловко.
как пользователю git может быть неловко )))
Аноним 16/08/22 Втр 06:17:57 #101 №2435455 
>>2435449 →
>Тогда, надо поднимать redis-сервер, а значит надо инклюдить его код, а он на Си.
инклюдить его не нужно. Просто это как и база данных - отдельный процесс, а значит дополнительная возня с тем чтобы этот процесс работал, да учесть его перезапуск, учитывать как в нем хранить и т.д.
Аноним 16/08/22 Втр 09:21:58 #102 №2435544 
>>2435197
>Не хочется терять 5 часов работы.
Ты еще легко отделался. Считай это налогом на глупость.
Теперь сядь и нормально изучи git и то как с ним нужно работать, а потом уже скачи по веткам туда-сюда.
Аноним 16/08/22 Втр 09:30:26 #103 №2435553 
>>2435544
>Ты еще легко отделался. Считай это налогом на глупость
Глупость - использовать тулз, работа с которым сродни хождению по минному полю с миноискателем, который рэндомно взрывается прямо в руках. Но выбирать не приходится (не всем слава богу)
Аноним 16/08/22 Втр 11:04:24 #104 №2435599 
Скиньте парочку годных реализаций телеграм ботов на шарпе, плес. со всеми тонкостями по архитектуре
Аноним 16/08/22 Втр 11:12:46 #105 №2435606 
>>2435599
Таких нет. Пиши сам. Будут проблемы в архитектуре - поможем.
Аноним 16/08/22 Втр 11:22:45 #106 №2435611 
>>2435606
>проблемы в архитектуре
Хуй знает, эта проблема в архитектуре, или в я говнокода налепил. Мне б хотя бы проектик какой увидеть с моим кейсом.
Суть проекта такова: есть бот (пока что только в телеграме, но будет ещё и в вк) который берёт расписание пар с бд, в которую, в свою очередь, оно доставляется через говносервис ИРТЕХа "сетевой город" и класс этого бота разжирел до ~1000 строк и это ещё не конец. Показал код знающему человеку - тот завыл, сказав, что так не пишут и нужно распиливать код. Я не ебу как его распилить, т.к. первый проект, все дела. Есть мысли забить хуй на архитектуру и говнокод, и пилить так, как есть, ведь, опять же, первый проект, будет простительно.
Аноним 16/08/22 Втр 11:28:09 #107 №2435617 
>>2435611
Какой курс?
Аноним 16/08/22 Втр 11:30:07 #108 №2435621 
>>2435617
Перехожу на второй, а что?
Аноним 16/08/22 Втр 11:30:20 #109 №2435623 
>>2435611
>первый проект, будет простительно.
Не будет. Пиши нормально. Почитай про ООП для начала https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/tutorials/oop
Аноним 16/08/22 Втр 11:43:31 #110 №2435639 
>>2435553
Чувак, понимаешь, если ты молотком себе по пальцам хуяришь, то дело не в молотке, а в том, что ты криворукая обезьяна.
И если ты не удосужился потратить день-два на нормальное освоение гита и не научился правильно и безопасно им пользоваться, то это твоя проблема.
Аноним 16/08/22 Втр 12:14:20 #111 №2435675 
>>2435639
я другой чувак - счастливый обладатель возможности использовать меркуриал, а не убеждать себя "жрать что дают есть хорошо, а если оно не слишком вкусно, то это во мне проблема - нужно говорить "сладко""
Чувак с проблемой такой возможности не имеет - сочувствую ему

>>2435611
Распиливай по ответственностям (Принцип единственной ответственности). То есть поищи где в твоем классе смешивается "делает и то и это" и выноси по разным классам связанные вещи. А позже у тебя выработается навык сразу это делать.
Аноним 16/08/22 Втр 12:34:53 #112 №2435696 
>>2435553
Это ты про гит что ли?
Пххапххаахахппхп
Аноним 16/08/22 Втр 12:36:14 #113 №2435700 
В рот ебал я ваш гит. Блять, нельзя переключиться на ветку если есть конфликты и какие-то изменение не закоммичены. Какая же ебатория.
Аноним 16/08/22 Втр 13:07:01 #114 №2435723 
>>2435700
можно. в stash засунь,да.

почему ты вообще думаешь что твои проблемы уникальны?
все давно описано в Книге "Pro GIT"
Аноним 16/08/22 Втр 13:18:37 #115 №2435739 
>>2435696
про гит конечно. нормальная система не должна отвлекать внимание на "как бы не выстрелить себе в ногу" и рождать проблемы "ой бл...забыл это сделать и пи...".

>>2435700
ну это так везде. не дело терять изменения по глупости. поэтому требование где-то их зафиксировать или куда то сложить - нормальное.
Аноним 16/08/22 Втр 13:46:25 #116 №2435769 
>>2435675
>я другой чувак - счастливый обладатель возможности использовать меркуриал
Меркуриал конечно пизже гита, но изначальный поинт был в том, что чел в принципе через жопу VCS использует и жалуется на то, что инструмент плохой, а не у него руки кривые.
Аноним 16/08/22 Втр 15:03:10 #117 №2435874 
>>2435739
> про гит конечно. нормальная система не должна отвлекать внимание на "как бы не выстрелить себе в ногу" и рождать проблемы "ой бл...забыл это сделать и пи...".
Да какой выстрел в ногу? Сделал дело, закоммитил - ВСЁ, твой код никуда не денется.
Аноним 16/08/22 Втр 15:48:33 #118 №2435948 
>>2435874
>твой код никуда не денется.
я не спец в гит. он мне по работе не требуется, а пушить в гитхаб - гит не нужен. Но если мне не изменяет склероз...
Чтобы код никуда не делся - на комит должны быть указатели. Иначе твои комиты для гита мусор, который он со временем просто дропнет. И хорошо если ты не профукал эту ситуацию (тебя не отвлекли и ты не забыл все разрулить).

Я понимаю, что гит так спроектирован, но по факту он нагружает голову лишним контекстом и требует внимания помнить где-ты и что происходит.
Аноним 16/08/22 Втр 16:19:18 #119 №2436003 
>>2435948
> Чтобы код никуда не делся - на комит должны быть указатели. Иначе твои комиты для гита мусор,
Каво? У тебя в локальной ветке все коммиты будут.
Аноним 16/08/22 Втр 16:37:22 #120 №2436043 
Моя функция принимает аргумент IEnumerable, и я вдруг взял и передал туда массив, а не список. Оно заработало, но у меня вопрос, а не конвертируется ли массив в список?
Аноним 16/08/22 Втр 17:10:45 #121 №2436107 
>>2436043
С хуя ли? Array реализует IEnumerable
Аноним 16/08/22 Втр 17:12:13 #122 №2436109 
>>2436043
Почитай как работает интерфейс IEnumerable и энумераторы
Аноним 16/08/22 Втр 17:19:01 #123 №2436118 
>>2435675
Мне ещё сказали про MediatR. Новичку стоит в него лезть?
Аноним 16/08/22 Втр 17:26:18 #124 №2436127 
>>2436118
Нет.
Аноним 16/08/22 Втр 17:28:41 #125 №2436133 
>>2436127
Значит попробую. Спасибо, анон!
Аноним 16/08/22 Втр 22:10:24 #126 №2436466 
Передаю массив через Object. А как мне теперь узнать его тип?
Аноним 16/08/22 Втр 22:12:10 #127 №2436467 
>>2436003
>Каво? У тебя в локальной ветке все коммиты будут.
"Detached HEAD", гитовское изобретение. - возникает по глупости и не только. Грозит от необходимости помнить про это и разгребать до полной потери комита, если забыл и пришло время сборки мусора.

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

"Не в гит" ты просто работаешь с кодом. Экспериментируешь с кодом - не проблема. просто комитаешь, прыгаешь по истории и снова комитаешь цепочки. В итоге рождается гроздь вариантов. И нет никаких Detached HEAD state и необходимости что-то делать. Ты думаешь о коде, а не о том "ага сохраняем так, ага вот у нас потерялся комит, щас восстановлю нужно только поискать его и подумать куда приткнуть".

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

>>2436118
Как хочешь. Это просто один из подходов. Основной плюс медиатра является его же основным минусом. И поэтому выбор прост
Аноним 16/08/22 Втр 22:14:19 #128 №2436471 
>>2436466
рефлексией же.
И вроде там для массива свой подход нежели для дженерик листа

но вообще зачем передавать object и не знать его тип возможный. А если знаешь, то просто скасти через is
Аноним 16/08/22 Втр 22:15:12 #129 №2436472 
Ребятки-шарпятки, кто-нибудь туту пользовался отчетами от Стимулсофта? Как и где формируются и редактируются ебучие mrt файлы блять? Это шаблон будущего отчета я так понимаю Не в ручную же эта поебота пишется же...
Аноним 16/08/22 Втр 22:42:30 #130 №2436489 
>>2436471
У меня массив смешанных типов. Я не знаю как еще передать.
Кортежи не позволяют обратиться по индексу.
Аноним 16/08/22 Втр 22:46:32 #131 №2436493 
>>2436489
значит у тебя массив обжектов, а не массив какого то типа который скастили до обжекта

тип массива тут получать бесполезно
тип элемента - ну по каждому спрашивать
Аноним 16/08/22 Втр 23:15:26 #132 №2436529 
>>2436493
Я пытался, но у меня любой внутренний итем массива возвращал тип Object.

Потом я попытался через дженерики, но там GetType к условному int возвращает "System.Int32", в то время как обычный int возвращает просто "Int32", из-за этого не работает функция GetTypeCode. У меня не то что Object не работает, у меня вообще ничего не работает.

Тако ощущение, что GetTypeCode определяет по стринговому GetType.Name. Я думал там как-то более элегантно по какому-то ID. Сравнение по стрингу как-то затратно.
Аноним 16/08/22 Втр 23:25:52 #133 №2436545 
>>2436529
хз о чем ты вообще

https://sharplab.io/#v2:EYLgxg9gTgpgtADwGwBYA0AXEUCuA7AHwAEAmABgFgAoUgRmuoEs8MACAQ1YF5XaBuahGAArGGDbBurEgKrUitAJwAKACoBPAA4wAdAHEYGDdoDCEACYxl7fYeNWAlE9kKV920a0wzl5cA/2yk4OskA=
Аноним 16/08/22 Втр 23:34:08 #134 №2436554 
>>2436529
Сука.

GetType(value) возвращает Double
value.GetType() возвращает Double[]

GetType(value).Attributes.GetTypeCode возвращает int32
Convert.GetTypeCode(GetType(value)) возвращает Object

Что это вообще?
Аноним 16/08/22 Втр 23:36:22 #135 №2436557 
>>2436545
Так я тебе про дженерики пишу.
Аноним 16/08/22 Втр 23:37:05 #136 №2436558 
>>2436557
Сооруди на шарплабе пример
А то только ты и знаешь о чем ты
Аноним 16/08/22 Втр 23:47:16 #137 №2436573 
2022-08-1623-46-39.png
>>2436558
Ну смотри сам
https://pastebin.com/7ARJMZVG
Аноним 16/08/22 Втр 23:48:23 #138 №2436576 
2022-08-1623-47-50.png
>>2436573
Бля, скрин хреновый
Аноним 16/08/22 Втр 23:49:22 #139 №2436578 
>>2436576
Не хреновый, а хуёвый.
Аноним 16/08/22 Втр 23:51:06 #140 №2436580 
>>2436578
На пастебине код. У меня нет аккаунта на шарплабе.
Аноним 16/08/22 Втр 23:53:43 #141 №2436581 
>>2436573
а почему это TypeCode для double[] должен показывать Double[]?
TypeCode это не тип, а Enum и в нем физически нет Double[]

узнать double из IEnumerable<double> легко конечно.

>>2436580
> У меня нет аккаунта на шарплабе.
у меня так то тоже нет.
Аноним 16/08/22 Втр 23:59:47 #142 №2436588 
>>2436581
>а почему это TypeCode для double[] должен показывать Double[]?
да опять шалит. Выдает просто double и для него в Enum есть вариант.

Вот берешь value.GetType() — выдает double
Вот берешь GetType(value) — выдает double[]
На шарплабе наоборот.

Вообще неадекватно работает. До этого вообще выдавало System.double, я не зафиксировал это.
Аноним 17/08/22 Срд 00:01:53 #143 №2436590 
>>2436581
>у меня так то тоже нет.
А, разобрался, я копипастил по твоей ссылке
Аноним 17/08/22 Срд 00:03:13 #144 №2436593 
>>2436581
>узнать double из IEnumerable<double> легко конечно.

Как? У меня IEnumerable<T>
Аноним 17/08/22 Срд 00:06:28 #145 №2436595 
>>2436588
>Вот берешь GetType(T) — выдает double
фикс, но сработало. Чет магия какая-то. Изначально так и делал.
Аноним 17/08/22 Срд 00:09:25 #146 №2436598 
>>2436593
ну если у тебя есть T, то тебе доступен дешевый typeof(T)
Аноним 17/08/22 Срд 00:15:36 #147 №2436602 
>>2436595
Понял своб ошибку.
Изначально использовал Convert.GetTypeCode вместо Type.GetTypeCode
Раньше работало, а с дженериками — нет.

>тебе доступен дешевый typeof(T)
Мой маленький секретик в том, что я пишу на Basic, а typeof используется исключительно в контексте сравнения TypeOf(value) is Double, к примеру.
Аноним 17/08/22 Срд 00:18:19 #148 №2436604 
>>2436602
Вы только подумайте какое чудовищное у бейсикоблядка мышление
>Раньше работало
Не важно какой контекст.
самокритики пост
Аноним 17/08/22 Срд 00:21:48 #149 №2436608 
>>2436604
Сидит программист глубоко в отладке. Подходит сынишка:
- Папа, почему солнышко каждый день встаёт на востоке, а садиться на западе?
- Ты это проверял?
- Проверял.
- Хорошо проверял?
- Хорошо.
- Работает?
- Работает.
- Каждый день работает?
- Да, каждый день.
- Тогда ради бога, сынок, ничего не трогай и не меняй.
Аноним 17/08/22 Срд 07:43:03 #150 №2436685 
Мне показалось, или вакансий стало в 2 раза меньше?
Аноним 17/08/22 Срд 08:37:24 #151 №2436713 
>>2436685
Так вообще со всеми языками, западные конторы ушли, которые в основном и нанимали прогеров.
Аноним 17/08/22 Срд 09:42:47 #152 №2436739 
1660718567157.png
Sup, шарпач!
Я вот смотрю видосы Шмачилина по МВВМ, и делаю у себя что-то похожее, но столкнулся с такой проблемой. У меня собсна, линукс, и многих штук, которые он там показывает, нет в линуксе.

Ну собсна говоря, там нет ВПФ, ололо. Но вопрос не в этом.

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

Вопрос: Это вообще законно? Сколько кодерских кодексов я нарушил?
Аноним 17/08/22 Срд 09:48:33 #153 №2436742 
>>2436602
> Мой маленький секретик в том, что я пишу на Basic
Если у тебя на работе куча легаси, которое нужно тащить, то вопросов нет. Но если ты пишешь какие-то велосипеды для себя, то просто возьми и перейди на шарп. Будь мужиком, блять.
Аноним 17/08/22 Срд 09:53:28 #154 №2436743 
>>2436472
В StimulSoft Designer.
Только где его взять я х.з. У меня на прошлой работе был дистр лицензионный, но я после увольнения снес все.
mrt файл - да это шаблон отчета, он по факту содержит в себе структуру документа, ссылки на источнике данных, sql запросы и логику по которой данные из запросов в отчете формируются.
Внутри это либо xml-ка, либо json. В зависимости от того, что у тебя их формирует на конечной точке (честно говоря х.з., т.к. я эту часть не трогал никогда и только с json-ом работал). Редактировать при необходимости их можно и руками (например запрос подправить и т.д.). Но с нуля создавать вряд ли - заебешься, хотя нет ничего невозможного если тебе время девать некуда.
Аноним 17/08/22 Срд 10:07:32 #155 №2436747 
>>2436739
>CanExecute
Есть небось. В классе Command, потому что интерфейс нужно реализовать (если мы про шарповский ICommand говорим)

Принимать в конструктор EventHandler тоже дичь. Если хочется подписаться, то вангую что этот Executed сам по себе публичный event и к нему и подписывайся если нужно

А в конструктор передают метод обычно
Аноним 17/08/22 Срд 10:08:01 #156 №2436750 
>>2436743
>нет ничего невозможного если тебе время девать некуда
СЛОВА НЕ МАЛЬЧИКА, НО МУЖА!

мимо-анон
Аноним 17/08/22 Срд 10:18:04 #157 №2436766 
1660720684501.png
>>2436747
Да, выходит дичь какая-то, оно наследуется от ICommand, но CanExecute в какой-то момент упрятывается от потомков.
Я всё таки переделал на вариант более близкий к лекционному материалу. Но насчёт дичи хотелось бы пояснений. Дело в том, что авторы тулкита не стесняются передавать ивентхандлеры в конструкторы.
Аноним 17/08/22 Срд 10:45:42 #158 №2436797 
>>2436766
> оно наследуется от ICommand, но CanExecute в какой-то момент упрятывается от потомков
Вот тут я свои сомнения более подробно распишу. В каноническом ВПФ, как обесняет лектор, активность прибинденных к команде контролов задаётся через CanExecute если true - то активен, если false - то выключен. В местном же тулките, у команд сверху накинуто свойство bool Enabled, которое потом, видимо в потрохах тулкита, биндится к графическим контролам напрямую. Либо я всё неправильно понимаю. Либо одно из двух.

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

И вообще, судя по конечной реализации команд в используемом мной тулките (Command : IBindable, ICommand) , предполагается, что их Enabled я тоже должен биндить к вьюмодели, а не прокидывать туда лямбда-функции-условия, как предлагает лектор в лекции, и уже во вьюмодели я должен манипулировать логикой доступности команд.
Аноним 17/08/22 Срд 10:46:17 #159 №2436798 
>>2436766
Реализовывай самостоятельно ICommand, вообще на этапе изучения всё сам реализовывай. Потом уже заюзаешь Community.Toolkit.Wpf, ахуенная либа 10/10 для впф.
Аноним 17/08/22 Срд 10:48:57 #160 №2436801 
>>2436798
> Реализовывай самостоятельно ICommand
В линуксе нет вот этого из лекции:
> CommandManager.RequerySuggested
Отсутствует ссылка на сборку. Все юзинги прописан, ОФК.
То есть уже на этом этапе реализация 1-в-1 не возможна. Но ценный опыт понимания как всё работает, всё равно получен.
Аноним 17/08/22 Срд 11:45:42 #161 №2436857 
Количество элементов массива подсчитывается при помощи метода Length
Количество элементов списка подсчитывается при помощи метода Count

Если ли какое-то объяснение смены имени?
Аноним 17/08/22 Срд 13:06:41 #162 №2436933 
>>2436857
Ты ещё Size забыл.
Аноним 17/08/22 Срд 13:28:26 #163 №2436956 
>>2436857
> Количество элементов массива подсчитывается при помощи метода Length
Ну у тебя там сразу выделена память на столько элементов

> Количество элементов списка подсчитывается при помощи метода Count
А тут можно заранее зарезервировать память
Аноним 17/08/22 Срд 13:39:22 #164 №2436970 
>>2436956
А метод подсчета одинаковый? Т.е. проходит по всему списку элементов и складывает?
Аноним 17/08/22 Срд 13:46:42 #165 №2436984 
>>2436970
Конечно нет, там поле с количеством есть.
Пройтись и подсчитать это впринципе невозможно
Аноним 17/08/22 Срд 14:30:53 #166 №2437054 
Обесните, я не понимаю!
Вот я.
Создал класс MainWindowViewModel, подключил его в XAML как источник данных и подключаю его члены биндами к элементам интерфейса.
Когда этот класс создаётся-то?
Аноним 17/08/22 Срд 14:36:18 #167 №2437063 
И ещё вопрос вдогонку.
Получается, в шаблоне MVVM не нужен код-бихайнд? У меня там пустой класс висит, единственное назначение которого это загрузить в себя XAML.

Нет ли в этом некоторого нашего недопонимания гениальной мысли создателей WPF? Может быть вью - это хамл, а вью-модель - это мыслился код-бихайнд класс? А мы его весь дропаем и лепим ещё один класс?
Аноним 17/08/22 Срд 14:40:40 #168 №2437074 
>>2437054
В момент Initialize Window вроде, на крайняк Loading Window.
В XAML ты должен ему дат ьимя, чтобы потом обращаться к экземпляру как к кнопке.
Аноним 17/08/22 Срд 14:41:27 #169 №2437077 
>>2437063
Я спрашиваю, потому что приверженцы МВВМ говорят:
> Типа вот приходит в твою галеру новый чел, и хочет вообще весь вью заново переписать. Поэтому твоя вью-модель ничего не должна знать обо вью.
Но ведь с кодбихайндом всё так и есть. Если там какие-то свои поля, он их знает и с ними работает. Ни о каком XAML этот класс не знает. Но XAML наоборот знает о своём код-бихайндовом классе, может цепляться к его полям через x:Name и всё у него заебись.
Пришёл новый чел, нарисовал новую разметку в XAML, подцепился к нужным полям во вью-модели (которая есть искаробочный код-бихайнд класс).
Что я понимаю неправильно?
Аноним 17/08/22 Срд 14:46:21 #170 №2437087 
>>2436766
>но CanExecute в какой-то момент упрятывается от потомков
потому что в этом и суть существования базового класса - сделать в нем как можно больше, чтобы в наследнике делать как можно меньше.

>>2436797
> если true - то активен, если false - то выключен.
хз. может быть. а может и другое. я вот в своем лисапеде выключал CommandManager.RequerySuggested чтобы минимизировать бесполезные вызовы CanExecute

>>2437054
>Когда этот класс создаётся-то?
при создании MainWindow. По хорошему снаружи и присваивается MainWindow как DataContext

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

>>2437077
>подцепился к нужным полям во вью-модели (которая есть искаробочный код-бихайнд класс).
ты мух от коней то отдели. вьюмодель содержит одну логику, а код-бихайнд совершенно другую.
Если код что должен быть во вьюмодели находится в коде-бихайнд, то это уже не MVVM
Аноним 17/08/22 Срд 14:46:45 #171 №2437089 
>>2436743
Допустим, мне нужно добавить колонку в уже существующий в одной из наших систем отчет. Я пока очень смутно представляю, как это делается. Нужно подредактировать мрт файл отчета? Т.е. алгоритм действий примерно такой:
- Скачать софт от стимулсофта
- Создать бизнес-объект на основе предыдущего с добавлением туда нового поля (этой самой новой колонкой)
- На основе нового бизнес-объекта создать шаблон отчета (пока не очень пойму как на основе бизнес-объектов создавать шаблоны отчетов. (МРТ файлы) Как-то в софте от стимулсофта?)
- Заменить в приложении мрт на новый
- И передавать туда инстансы нового бизнес объекта с новой филдой?
Я себе примерно так этот процесс представляю. Анончик, я примерно прав?
Аноним 17/08/22 Срд 15:21:52 #172 №2437140 
А как вызвать дженерик функцию нужного типа зная Type?

Обычно делается так:
ElementInfo<String>(value);

А хочу так:
var valueType = value.GetType;
ElementInfo<valueType>(value);
Аноним 17/08/22 Срд 15:27:26 #173 №2437143 
>>2437140
ближе всего рефлексия MethodInfo.Invoke
Чуть дальше Delegate.DynamicInvoke
это медленные вызовы
А вот если нужно быстрее, то привет кодогенерация (или можно слепить абстрактный класс)
Аноним 17/08/22 Срд 15:41:46 #174 №2437156 
Аналоговнеты?
Аноним 17/08/22 Срд 15:43:31 #175 №2437159 
>>2437087
Спасибо за ответы. Яснее не стало, но ощущается поддержка анонская.
Аноним 17/08/22 Срд 15:48:27 #176 №2437168 
Можете дать примерный список вопрос на собесе джуна.
Аноним 17/08/22 Срд 15:54:51 #177 №2437179 
>>2437143
Сделал, называется, рекурсию с дженериками.
Аноним 17/08/22 Срд 16:01:48 #178 №2437199 
>>2437179
Молодец
Аноним 17/08/22 Срд 16:29:57 #179 №2437262 
>>2437168
Десктоп/веб/игры?
Аноним 17/08/22 Срд 16:32:50 #180 №2437267 
>>2437262
Десктоп, wpf
Аноним 17/08/22 Срд 16:56:02 #181 №2437300 
>>2437267
1. биндинги, триггеры, стили
2. мввм, мвс, ооп и паттерны (тут явно больше требований будет чем к джуну на асп)
3. DI в WPF
4. Открытие/закрытие окон и привязка VM, где и как
5. Код внутри окон (когда можно и нужно)
6. Почему биндинг указывать внутри окна - хуёвая затея
7. EFCore, ms sql, postgresql, sql-синтаксис и запросы (джоин, селекты всякие инсерты итд)
Это так, навскидку. Еще, если бы проект был связан с тем, что нужно тчо-то очень быстро считать/обрабатывать - спросил бы про маршаллинг из C++ в C#, тут есть ньюансы в строках (в мсдн даже написано). Если компания разрабатывает продукт какой-то, а не аутсорс, то почти гарантировано будут вопросы по байтоёбству и алгоритмам, так что какие-нибудь основные основы этого стоит подучить.
Аноним 17/08/22 Срд 17:21:21 #182 №2437332 
>>2437300
> Код внутри окон (когда можно и нужно)
Внутри окна в смысле в классе окна вроде mainwindow?
Аноним 17/08/22 Срд 18:07:28 #183 №2437390 
>>2437332
Да
Аноним 17/08/22 Срд 18:44:35 #184 №2437450 
>>2436713
Смысл вообще остался, вкатываться в шарпы?
Аноним 17/08/22 Срд 19:04:43 #185 №2437481 
изображение.png
>>2436739
>Шмачилина
Интересно, он девственник?
Аноним 17/08/22 Срд 19:17:24 #186 №2437498 
>>2437450
В айти скорее.
Аноним 17/08/22 Срд 19:19:34 #187 №2437502 
>>2437498
настолько хуево всё?
Аноним 17/08/22 Срд 19:21:05 #188 №2437504 
>>2437502
hh.ru последний раз когда открывал?
Аноним 17/08/22 Срд 19:22:43 #189 №2437505 
>>2437504
сегодня
Аноним 17/08/22 Срд 19:23:33 #190 №2437506 
>>2437505
И как оно?
Аноним 17/08/22 Срд 19:26:02 #191 №2437508 
>>2437506
походу в 2 раза меньше, вакансий
Аноним 17/08/22 Срд 19:39:45 #192 №2437523 
>>2437481
А со шлюхами считается?
Аноним 17/08/22 Срд 19:44:06 #193 №2437532 
>>2437523
Нет.
Аноним 17/08/22 Срд 19:48:23 #194 №2437535 
>>2437300
Спасибо за такой подробный ответ.
>5. Код внутри окон (когда можно и нужно)
>6. Почему биндинг указывать внутри окна - хуёвая затея
Вот на эти два вопроса я бы не ответил. Остальное то есть и в литературе, и в справочной информации по дотнету, а ответы на эти вопросы видимо с опытом приходят.
Аноним 17/08/22 Срд 19:50:55 #195 №2437538 
>>2437535
Задай вопросы на ru stackoverflow, там даже регаться не обязательно, ответят быстро. Там любят концептуальные вопросы. Я сегодня уже не в состоянии ответить адекватно
Аноним 17/08/22 Срд 20:13:19 #196 №2437568 
>>2437089
>бизнес-объектов
Я хуй знает, что в твоей вселенной бизнес-объект.

Короче, как работал с ними я.
Создаешь новый отчет.
Назначаешь источник данных (конкретно я тянул все из постгреса, поэтому просто прописывал коннекшен стринг до нужной БД.
Строишь нужные запросы к этой БД из которой тянешь по ним информацию.
Создаешь переменные и биндишь их к своим запросам (часть как параметры запроса, а часть будут хранить результаты запросов.
Потом строишь сам шаблон. Принцип очень похож на вордовские темплейты (docx), т.е. пишешь текст, рисуешь таблицы и т.д. и где нужно в них прописываешь свои переменные в фигурных скобках {} плюс логику по необходимости.
Дополнительно можно назначить фильтры, привязать их к переменным запросов, чтобы пользователь мог контролировать выборку данных (например диапазон дат, сортировку и т.д.)
Там же в дизайнере можешь ткнуть кнопку и оно подтянет данные и покажет тебе итоговый результат.

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

Если нужно отредактировать отчет, то просто берешь mrt файл, грузишь его в дизайнер и исправляешь.
Редактируешь запрос, добавляешь переменные и запихиваешь их в нужные места отчета.
Аноним 17/08/22 Срд 20:23:57 #197 №2437587 
>>2437568
С хуев ли в моей? Это термин из оф. документации стимула. И у меня похоже именно на них все и сделано. Но инструкция тоже пригодится, сяп :3
Аноним 17/08/22 Срд 20:24:52 #198 №2437589 
>>2437587
* но твоя инструкция
Аноним 17/08/22 Срд 22:20:37 #199 №2437754 
>>2437587
>Это термин из оф. документации стимула
Честно, вообще нихуя инструкций не читал.
Меня просто перекинули на проект, где уволился единственный человек который умел в эти отчеты.
Меня перекинули скинули пачку шаблонов и что в них нужно поправить. И буквально пол дня на разбор с чем это едят. Скинули какой-то видосик на полчаса, как фильтры добавлять и переменные биндить в запросы и все, остальное сам разбирал.
Там была срочная сдача объекта и нужно было их срочно исправлять. Правил практически в прямом эфире, когда шел показ заказчику. Я в это время правил и заливал отчеты на прод, пока его отвлекали. И так всю неделю.
Аноним 17/08/22 Срд 23:00:03 #200 №2437803 
>>2437300
>5. Код внутри окон (когда можно и нужно)
вопрос абстрактный. Держать код-бихайнд чистым это рекомендация и хамл далеко не всесилен. И даже не нужно своего контрола писать чтобы испытывать необходимость писать что то в код-бихайнд
>6. Почему биндинг указывать внутри окна - хуёвая затея
Какой биндинг? о чем это? Прямая работа с контролаями типа TextBox.Text=""?
Аноним 18/08/22 Чтв 08:37:34 #201 №2437955 
image.png
image.png
image.png
>>2437803
>Какой биндинг? о чем это? Прямая работа с контролаями типа TextBox.Text=""?

Нет, в плане в WPF в XAML можно напрямую биндинг указать к конкретному ViewModel. Хоть это и плохая практика т.к это просто хардкодинг, однако имеет некоторое преимущество перед биндингом т.к можно напрямую смотреть как меняется View в зависимости от изменения ViewModel еще на стадии написания кода (C# подтягивает данные из ViewModel и привязывает их в xaml еще до запуска проекта)
Аноним 18/08/22 Чтв 09:15:27 #202 №2437965 
>>2437955
Шмачилин, которого тут советовали, как раз прямо так и делает, например DataGrid привязывает к ICollectionView. А как собственно по другому?
Аноним 18/08/22 Чтв 09:19:53 #203 №2437966 
>>2437965
Пока что так делай, сейчас наглядность важнее чем правильность. Концепцию надо всю уловить, а дальше уже улучшать на более правильный вариант
Аноним 18/08/22 Чтв 09:22:43 #204 №2437967 
>>2437955
>можно напрямую смотреть как меняется View в зависимости от изменения ViewModel еще на стадии написания кода
ну так смотри через d:DataContext. Он, собственно, для этого и придуман (хотя поддержка в IDE хромает, но равна вот этому костылю на твоем скрине)

>>2437965
по другому это просто прямо. не всегда нужна сортировка, фильтрация и тому подобное. К тому же CollectionViewSource довольно магическая штукенция - ее можно сбоку прикрутить, а не только посередке (хз как и почему это работает)
Аноним 18/08/22 Чтв 09:31:02 #205 №2437969 
MVVM - антипаттерн.
Аноним 18/08/22 Чтв 10:05:46 #206 №2437979 
>>2437969
Почему же?
Аноним 18/08/22 Чтв 10:37:44 #207 №2437989 
где можно почитать гайды на разметку xamarin forms android layout.XML? не XAML
Аноним 18/08/22 Чтв 10:44:24 #208 №2437991 
>>2437979
Очевидно, потому что школьник наткнулся на статейку о том, что любой паттерн - это антипаттерн.
Аноним 18/08/22 Чтв 11:12:01 #209 №2438015 
>>2437989
Нигде, xamarin умер. Тебе на maui.
Аноним 18/08/22 Чтв 12:26:42 #210 №2438073 
>>2433269
>интеграционные тесты
>Архитектура — DDD, микросервисная архитектура
>Алгоритмы
>Структуры данных
Так бы сразу и писал: "Чтобы взяли работать сеньором (хуевым)". Микросервисы нужны далеко не везде и перед ними надо разобраться с монолитной архитектурой. DDD на шарпе - это лес из костылей.
Аноним 18/08/22 Чтв 12:37:54 #211 №2438095 
>>2438015
у меня проект на нем, буду по гайдам на android studio делать
Аноним 18/08/22 Чтв 12:51:37 #212 №2438108 
Анон, помоги умственно-отсталому разобраться с эвентами. Я вроде как понял суть: это возможность запустить цепочку методов из-за какого-то другого метода. Синтаксис тоже понятен. Но после десятков примеров я так и не разобрался, где нужно объявлять эвент, где выполнять EventName?.Invoke(); и где происходит подписка на эвент и отписка.
Аноним 18/08/22 Чтв 13:01:58 #213 №2438116 
>>2438073
Дебс, нахуя нужен джун в 2022 который знает только синтаксис? От джуна не требуется уметь использовать правильно архитектуры и паттерны, но требуется быть в курсе о существовании, хотя бы просто ЗНАТЬ что это. Это как взять на стажировку еблана который только начал учить синтаксис, нахуй такой нужен? Алгоритмы и структуры данных.. блять, да это база которую спрашивают у джунов НА КАЖДОМ собеседовании просто потому что у джунов больше нечего спрашивать ибо они и так нихуя не знают. Элементарно знать реализацию квик-сорта, дерева и еще парочки каких-нибудь линейных поисков, этого уже достаточно будет +-.
Аноним 18/08/22 Чтв 13:04:51 #214 №2438117 
>>2438108
Нужно чтобы реагировать на какое-то событие. Например событие - загрузка приложения, тут ты подписываешься на условное "OnApplicationLoad" которое вызывается где-то там. Хороший пример - https://stackoverflow.com/questions/1472498/wpf-global-exception-handler. Так же можно подписываться на условное добавление в бд и после того как бд изменилось - изменить какую-нибудь табличку в окошке, ну или в консоль что-то вывести. В общем события это буквально события.
Аноним 18/08/22 Чтв 13:21:35 #215 №2438132 
1660818093963.jpg
>>2438116
> Алгоритмы и структуры данных.. блять, да это база которую спрашивают у джунов НА КАЖДОМ собеседовании
Нужно наизусть знать пик?
Аноним 18/08/22 Чтв 13:23:29 #216 №2438134 
>>2438132
Если планируешь устраиваться не в региональную аутсорс парашу - да.
Аноним 18/08/22 Чтв 14:21:05 #217 №2438182 
>>2438134
Почти никто эту хуету не знает и тем более не использует. Исключения - узкие места в огромных сервисах, к которым даже мидлов никто не подпустит.
Аноним 18/08/22 Чтв 14:24:24 #218 №2438189 
>>2438117
Это суть, ее я понял. Я не понял, где объявляется сам эвент, где происходит инвок и где происходит подписка-отписка. То есть вот есть три класса, в методе первого происходит событие, после которого мне надо запустить по методу из второго и третьего класса. Куда что писать?
Аноним 18/08/22 Чтв 14:28:36 #219 №2438196 
>>2438189
евент обьявляется там где событие и происходит. а где же еще.
инвок там же присходит (а из другого места и не даст сделать)

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

с цепочками событий разве что можешь раскрыть сахар до ручного add/remove чтобы чуть меньше было говнокода
Аноним 18/08/22 Чтв 14:39:19 #220 №2438202 
>>2438182
Да, всё так и есть. В реальности эту хуйню никто не юзает, однако спрашивают на собесах. Для этого и нужно эту хуйню изучать, если бы у тебя как у лида был выбор: взять двух идентичных долбоёбов на мидл позицию, но один знает алгоритмы. Очевидно лучше взять дебила который знает алгоритмы.
Аноним 18/08/22 Чтв 14:47:01 #221 №2438210 
>>2438202
Ох если бы у лида был такой выбор. На деле приходит десять мидлов, восемь из них сразу нахуй, оставшиеся два тоже долбоебы, но каждый по-своему, - надо выбрать какой-то один вариант долбоебства, с которым будет меньше мучений. Про алгоритмы что-то слышал один из восьми выгнанных на мороз, но его эйчар даже на тех не пустил из-за провала по софтам. Примерно такие выборы у лидов.
Аноним 18/08/22 Чтв 14:49:54 #222 №2438213 
Пригласили на стажировку в яндекс, я джун, ищу первую работу. Чего ждать на собесе?
Аноним 18/08/22 Чтв 14:50:16 #223 №2438215 
>>2438213
Промазал тредом, извиняюсь
Аноним 18/08/22 Чтв 15:15:00 #224 №2438251 
>>2438213
Ты главное дверью не промахнись, а то тебя на синьора будут собесить во все дыры. А ждать от них следует много ненужных алгоритмических задач и дохуя одинаковых этапов
Аноним 18/08/22 Чтв 16:20:41 #225 №2438348 
>>2438210
>его эйчар даже на тех не пустил из-за провала по софтам
Больше всего этого боюсь. Я заика, и это явно будет влиять на решение о принятии меня на работу. Чтобы компенсировать сей факт мне нужно показать значительно лучшие знания, чем у остальных кандидатом, и то не факт, что не пошлют.
Аноним 18/08/22 Чтв 16:24:35 #226 №2438359 
>>2438202
Про каике алгоритмы идет речь, можно узнать?
Аноним 18/08/22 Чтв 16:26:55 #227 №2438369 
>>2438359
Такой например
https://en.wikipedia.org/wiki/Longest_common_subsequence_problem
Аноним 18/08/22 Чтв 16:27:53 #228 №2438373 
>>2438369
Какой шанс, что меня такую хуйню спросят, едва помню сортировку пузырьком
Аноним 18/08/22 Чтв 18:56:18 #229 №2438565 
>>2436739
> Ну и короче говоря, у меня тут тулкит, в котором есть опенсорсная реализация команд, в которых нет CanExecute,
Держу в курсе. Я покурил документацию, и там таки нашлись стандартные RelayCommand<> работающие идентично лекционному материалу. И всё там работает аналогично. ЗБС.

Возникла другая проблема. Мощной обвязки для управления ресурсами из ВПФ там похоже тоже нет. Ну знаете, все эти статик-ресурс-дикшионари и т.п. Курб мануалы дальше. А то окажется что я опять ССЗБ.
Аноним 18/08/22 Чтв 19:28:57 #230 №2438605 
>>2438565
>там похоже тоже нет
где ТАМ?
Аноним 18/08/22 Чтв 19:39:31 #231 №2438615 
image.png
Ситуация хелп, ситуация соси. Имеется словарь Dictionary<string, List<(string, bool)>> DictionaryUserSettings1. В него, с помощью Linq, нужно засунуть ключ из другого словаря, заполнить лист дефолтными данными, например так:
{"usd", new List<(string, bool)>{(("Pizda", false))}},
{"rub", new List<(string, bool)>{(("Pizda", false))}},
Ключ из другого словаря я перекинуть могу, а как лист заполнить? Помогите, пожалуйста, я щас сдохну. И подскажите, пожалуйста, как надо ко всему этому дело обращаться.
Аноним 18/08/22 Чтв 19:40:57 #232 №2438616 
>>2438348
>Я заика, и это явно будет влиять на решение о принятии меня на работу.
На самом деле нет. Я работал с людьми с разными дефектами речи, в том числе и с заиками. Сейчас только конченые мудаки по такому параметру отсеивают.
Просто заранее, первом общении с HR, предупредишь ее, что имеешь такую особенность и все, она уже уведомит основного интервьюера.
В софтскилах главное чтобы ты мог формулировать мысль, нормально рассуждать без пустых выебонов и не быть душнилой.

PS. Понятно, что если у тебя такая степень заикания, что ты вообще не можешь из себя ни слова выдавить, но тогда тебе к врачу нужно в первую очередь, а не работу искать.
Аноним 18/08/22 Чтв 19:42:08 #233 №2438617 
>>2438616
А за картавость будут пиздить? Или це ок?
Аноним 18/08/22 Чтв 19:46:26 #234 №2438620 
>>2438605
В линуксе. Или на линуксе...
Аноним 18/08/22 Чтв 19:47:53 #235 №2438622 
>>2438616
> и не быть душнилой
И тут я понимаю, что мимо галеры пролетаю.
Аноним 18/08/22 Чтв 19:49:53 #236 №2438624 
>>2438620
Оно тебе надо, анон? Чего ты хочешь добиться, занимаясь ковырянием васянского порта впф? Это какой-то особый вид красноглазого мазохизма?
Аноним 18/08/22 Чтв 19:54:28 #237 №2438628 
>>2438620
где в линуксе? WPF в линуксе нет
а хамловых фреймворков больше одного.
Аноним 18/08/22 Чтв 19:59:37 #238 №2438631 
>>2438628
Ну так ты посоветуй в котором есть. Мне нда чтоб был хамл, мввм, и как можно больше фич из ВПФ. Ну например, принцип констрцирования интерфейса из примитивов, чтобы был. Чтобы это значит, например, кнопка была такая, что я бы в любой момент, как в ВПФ мог на неё навесить две пикчи по бокам и два лейбла с текстом в середине. И чтобы во вкладку таб контрола мог пихануть такой же набор примитивов вместо стандартного набора иконка+текст.

И чтобы это всё кроссплатформенно и опенсорсно.

И чтобы с минимумом левых либ в выходном каталоге.

И... И... Вспомню, ещё допишу.

Авалонию не предлагать. Я её пробовал, говно какое-то.
Аноним 18/08/22 Чтв 20:00:50 #239 №2438632 
>>2438624
> Чего ты хочешь добиться
Хочу кроссплатформенное окошко настроек моего софта, чтобы не переписывать три раза для трёх целевых платформ. Ван райт - ван ран.
Аноним 18/08/22 Чтв 20:02:39 #240 №2438634 
>>2438631
Авалония конечно.

минимум левых либ не будет ибо нужно рантайм редер для каждой платформы.
Аноним 18/08/22 Чтв 20:03:43 #241 №2438635 
Кто-нибудь настраивал гитхабовские экшены на прогон тестов? У меня тесты зависают сука на час, приходится ручками стопить. Делаю так:
dotnet restore .......
dotnet test --no-restore SolutionName/TestProjectName
Пишет сколько тестов нашлось, выводит пару упавших тестов и висит без вывода.
Думаю, что проблема в линупсе, но хз
Аноним 18/08/22 Чтв 20:09:37 #242 №2438639 
>>2438631
>Я её пробовал, говно какое-то
значит плохо пробовал. там просто подход чуть другой и по другому называются свойства
и иногда приходится сильно гуглить "а как тут бл.. сделано это"

ненужная поддержка реактивности изкаропки

со стилями дело обстоит лучше. Стили в WPF лютое днище.

А больше ты ничего не найдешь. Всякие этоформсы и мауи это обертки над родными какими то там контролами, то есть ты ограничен в "хочу в кнопку впихнуть прогрессбар, в котором комбобоксы, в которых картинки котиков, в которых..."
Аноним 18/08/22 Чтв 20:11:05 #243 №2438640 
>>2438634
Ну ладно, уговорил. Щас попробую.
>>2438639
> ненужная поддержка реактивности изкаропки
Как выпилить?
Аноним 18/08/22 Чтв 20:16:11 #244 №2438645 
У меня вопрос.
Есть хоть одна причина для докера не собирать Self contained приложение и не хуячить образ на базе alpine без .net'а?
Ну, типа блин. Разница в размере конечного образа - довольно существенна. Когда у вас в приложении сервисов под 100 - вес в 250MB становится - довольно болезненным. А тут раза в 3 - меньше финальный образ.
Может быть я за что-то не шарю?
Аноним 18/08/22 Чтв 20:18:13 #245 №2438648 
>>2438640
>Как выпилить?
просто не используй. там есть реактивный MVVM который означает, что контролы умеют его понимать нативно

но так же нативно понимают и обычные биндинги. Я свой петофреймворк переводил под авалонию. пострадало
1 некоторые xaml расширения мои
2 window.ShowDialog не блокирующий, то есть привет Taskи
3 Нет CommandManager, пришлось свой написать, хотя я все равно не использую, а предпочитаю чтобы команды знали от кого они зависят.
4 шрифт под винду все таки мылит (и это для меня фатально ибо мне кросс нахер не нужно). но у меня в системе мылит и электрон и говнохром.
5 Пришлось знатно погуглить чем заменяется CollectionViewSource и я нашел замену (щас уже забыл)
6 были проблемы при определении свойств не понимал где там калбэк навесить, но помнится что вроде можно и то просто я не знал.
7 нельзя узнать размер экрана
Аноним 18/08/22 Чтв 20:18:58 #246 №2438649 
>>2438640
А еще датагрид. поставил - не отображается. а оказывается нужно докинуть дефолтные стили для датагрид и он появится.
Аноним 18/08/22 Чтв 20:23:54 #247 №2438653 
Безымянный.png
Будут чимырить на работе, если проходя увидят на мониторе вот такое вот?
Аноним 18/08/22 Чтв 20:24:37 #248 №2438654 
>>2438653
Сразу повысят.
Аноним 18/08/22 Чтв 20:25:27 #249 №2438655 
image.png
>>2438615
Пздц, всё оказалось легче, чем я думал
Аноним 18/08/22 Чтв 20:26:32 #250 №2438656 
>>2438655
Кстати, а подобное исполнение годится? А то я мог и через foreach всё заебенить без проблем
Аноним 18/08/22 Чтв 20:27:23 #251 №2438660 
>>2438653
Я думаю ты не устроишься на работу с таким кодом.
Аноним 18/08/22 Чтв 20:28:10 #252 №2438661 
>>2438653
зачем включать отображение пробелов?

А так...сразу стрингбилдер создавать - совсем память не экономишь
Аноним 18/08/22 Чтв 20:28:13 #253 №2438662 
>>2438660
Я как-бы уже.
Офигеть, сеньерский код разглядеть не могут...
Аноним 18/08/22 Чтв 20:29:31 #254 №2438665 
>>2438662
на скрине студия на русском языке. какой же тут сеньор
Аноним 18/08/22 Чтв 20:30:05 #255 №2438666 
>>2438661
Этот код - на 80% потребляет меньше памяти, чем среднее решение на литкоде, лол. Но да, я не экономил. Я пробовал это ваше модное TDD, на первой итерации, когда стало зелененькое, как настоящий сеньер я решил, что задача выполнена и пошел по своим делам.
Аноним 18/08/22 Чтв 20:31:23 #256 №2438669 
>>2438665
Спалил. Я ведущий программист всего лишь(((
Мне дома нет причин иметь английскую студию. А русскоязычная - по дефолту ж ставится.
Аноним 18/08/22 Чтв 20:31:23 #257 №2438670 
Активное обсуждение формошлёпства выдаёт, чем шарписты на самом деле занимаются на работе. А как же бэкенд? На жабу и Go всё переписали?
Аноним 18/08/22 Чтв 20:34:03 #258 №2438674 
>>2438666
но это плохой код
он рождает стрингбилдеры с дефолтным капасити и (даже не один)

минимально хотя бы задавать капасити чтобы избежать расширения стрингбилдера
а то и вообще юзать стрингбилдеркеш (который падла интернал)
ну или скомуниздить ValueStringBuilder, который тоже интернал но это уже не так страшно
Аноним 18/08/22 Чтв 20:49:31 #259 №2438686 
image.png
Как мне в данном списке поменять значение? Помогите, пожалуйста.
Аноним 18/08/22 Чтв 20:50:55 #260 №2438687 
>>2438686
Пездец мужик че ты нахуевертил-то ёптабля? В чем суть задачи, что хочешь сделать?
Аноним 18/08/22 Чтв 20:54:03 #261 №2438691 
image.png
>>2438687
Нужно вывести инлайн клавиатуру с валютами в телеграм боте. При этом, если я на неё нажимаю, то false меняется на true, а потом я возвращаю обновлённый словарь, но заместо серого квадрата вывожу галочку. Как на скрине ниже
Аноним 18/08/22 Чтв 20:54:55 #262 №2438693 
>>2438687
то есть заместо "suka ebanaya" я потом поставлю серый квадрат
Аноним 18/08/22 Чтв 20:55:31 #263 №2438694 
>>2438691
Пездец мужик ты в ооп ваще не умеешь?
Аноним 18/08/22 Чтв 20:56:18 #264 №2438695 
>>2438694
умею, но хочу так
Аноним 18/08/22 Чтв 20:58:54 #265 №2438698 
>>2438686
ты пытаешься изменить часть иммутабельного кортежа
Аноним 18/08/22 Чтв 21:11:24 #266 №2438712 
1660846283248.png
>>2438634
> Авалония конечно.
>>2438640
> Ну ладно, уговорил. Щас попробую.

Попробовал. И сразу вопрос. Почему они подключают датаконтекст в кодбихайнде? Это же харам-харам! Это же фу-фу! Это же, прости г-спди, антипаттерн!
Аноним 18/08/22 Чтв 21:14:27 #267 №2438713 
>>2438712
>Почему они подключают датаконтекст в кодбихайнде?
Ну ты даешь. Это класс App
в WPF ты тоже будешь в нем подключать как на скрине потому что это самый верхний уровень приложения
Аноним 18/08/22 Чтв 21:14:34 #268 №2438714 
>>2438712
Если по умолчанию, то не считается.
Аноним 18/08/22 Чтв 21:22:02 #269 №2438724 
>>2438714
>>2438713
О, я вспомнил, почему я дропнул авалония в прошлый раз. Паблиш хеллоуворлда мне высыпал 100 Мб файлоты. Когда Eto.Forms высыпал всего 7 Мб под линуксом. А щас я под виндой и паблиш выдал 4,5!

Понятное дело, считать мегабайты в 2022 это... кхм... кхе... Но тем не менее, хотелось бы в пределах 20-ти мегов.
Аноним 18/08/22 Чтв 21:23:12 #270 №2438728 
>>2438724
Я не хочу платить за возможность кроссплатформенно запилить кнопачьку с двумя иконками сотней мегов пустого проекта!
Аноним 18/08/22 Чтв 21:23:52 #271 №2438730 
>>2438712
Во-первых, класс App это не окно. Это класс инициализации и то, что у него есть хамл - не делает его окном (просто хамл это же выражение кода в виде хлм, а не чисто язык разметки)

Во-вторых харам это this.DataContext = выраженное в коде или в хамл. Я выделил жирным основную часть. На скрине контекст назначается окну, что для этого окна является "снаружи"

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

так что тут 2 стула.
Аноним 18/08/22 Чтв 21:42:26 #272 №2438750 
Если честно, то я не понял. Нарыл про ValueTuple, начал его использовать, но он не работает. Только отдельно от словаря, а внутри словаря не могу изменять.
Аноним 18/08/22 Чтв 21:48:08 #273 №2438756 
image.png
>>2438698
>>2438686
Всё, наконец-то понял, как надо изменять
Аноним 18/08/22 Чтв 21:52:05 #274 №2438758 
>>2438653
Ебать, это что за язык?
Аноним 18/08/22 Чтв 21:53:10 #275 №2438760 
>>2438758
Си шарп
Аноним 18/08/22 Чтв 21:57:10 #276 №2438768 
>>2438653
А мог бы на регулярках написать
Аноним 18/08/22 Чтв 22:02:57 #277 №2438776 
>>2438653
Ебать, что за жирная бабища на фоне?
Аноним 18/08/22 Чтв 22:05:05 #278 №2438780 
>>2438768
Не мог
Рекурсивные вещи на регулярках разбирать гемор

>>2438776
Ограничитель ширины строки же
Аноним 18/08/22 Чтв 22:06:37 #279 №2438782 
>>2438653
>Будут чимырить на работе, если проходя увидят на мониторе вот такое вот?
Да будут. Ставь на скрины гачи-мучи, только тогда зауважают.

Алсо.
Нахуй ты скобки фигурные в case'ах ставишь?
Аноним 18/08/22 Чтв 22:13:28 #280 №2438797 
>>2438617
>А за картавость будут пиздить? Или це ок?
Если слова не жуешь и говоришь разборчиво, то все норм.
А если бы ты был тянучкой то еще и бонусные очки к сексуальности.

>>2438622
>И тут я понимаю, что мимо галеры пролетаю.
Пиздуй колбаской. Думал тебя пожалеют - нет. Душнил никто не любит.
Аноним 18/08/22 Чтв 23:06:27 #281 №2438859 
>>2438760
Имхо любой адекватный лид при виде такого просто сожжет нахуй всю твою кодовую базу не читая и выпишет билет в бесконечный отпуск. Даже в крестах такой пиздец не пишут.
Аноним 18/08/22 Чтв 23:42:23 #282 №2438897 
>>2438782
>Нахуй ты скобки фигурные в case'ах ставишь?
Я не тот чел, но я тоже ставлю фигурные скобки. Потому что иначе эта хуйня не фолдится, плюс без скобок выглядит хуёво, как будто пролапс кода случается
Аноним 18/08/22 Чтв 23:50:54 #283 №2438917 
1660855853333.png
>>2438897
> Потому что иначе эта хуйня не фолдится
Кстати двачую. Я сиподобные языки только джва года как плотно изучаю и уже подметил, что скобки можно ставить просто так, для удобства. Плюс, у скобок есть преимущество, скобки это область (scope), то есть с их помощью можно оперировать одинаковыми локальными переменными внутри них. Насколько это нужно я ХЗ, но изъебнуться можно.
Аноним 19/08/22 Птн 00:18:41 #284 №2438973 
>>2438917
>Насколько это нужно я ХЗ, но изъебнуться можно
Я так иногда делаю, чтобы переменные потом в коде не мешались, если они только на разок нужны. Насчёт эффективности хз, насколько негативно сказывается
Повлияет ли уход Microsoft на C#.NET? Аноним 19/08/22 Птн 08:46:40 #285 №2439125 
Не смог нагуглить, обращаюсь сюда. Начал изучать C#/.NET пару недель назад, сегодня увидел новость о том, что "Microsoft постепенно сокращает свой бизнес в России до тех пор, пока там почти ничего не останется" и стало как-то тревожно.
Означает ли это, что в скором времени .NET платформу использовать в России будет невозможно/никто не будет, и, соответственно, джуну найти работу с этим стэком будет нереально?
Если проще сформулировать, то повлияет ли полный уход Microsoft на C#/.NET разработчиков в России?
Как я понимаю, C#/.NET сейчас open-source и ограничения Microsoft могут повлиять разве что на недоступность Visual Studio, но хотелось бы почитать мнение шарящих людей.
Аноним 19/08/22 Птн 08:47:57 #286 №2439128 
>>2439125
Нет.
Аноним 19/08/22 Птн 08:50:51 #287 №2439130 
>>2439128
Отличный ответ, а по развернутей можно?
Аноним 19/08/22 Птн 08:57:05 #288 №2439134 
>>2439133
Вот и винда с офисом останутся, а на шарпе писать запретят.
Аноним 19/08/22 Птн 09:02:22 #289 №2439137 
>>2439135
То-то дохуя капиталистов съебалось из этой страны, очень уж им похуй.
Аноним 19/08/22 Птн 09:08:45 #290 №2439143 
>>2439137
Типа java маст-хэв. Так получается?
Аноним 19/08/22 Птн 09:17:07 #291 №2439151 
>>2439142
Ч.т.д.
>>2439143
Нет, Оракл из этой страны съебался ещё раньше. Но хотя бы есть выбор IDE.
Аноним 19/08/22 Птн 09:20:49 #292 №2439154 
>>2439149
> кто-то может мыслить другими категориями, что кто-то может пожертвовать собственной прибылью ради поддержки другого.
Только с целью извлечь ещё больше прибыли или хотя бы не проебать то, что есть. Даже если прикрываются высокими идеями для общественности, которая им эту прибыли и приносит.
Аноним 19/08/22 Птн 09:35:22 #293 №2439167 
>>2439151
А что тогда ? Направь меня на путь истинный.
Аноним 19/08/22 Птн 09:39:37 #294 №2439174 
Подскажите, через что в С# сделать Local Strorage (хранение настроек приложения в файле с загрузкой и сохранением)?

Ну или текстовый инишник, который можно загрузить в переменные...
Аноним 19/08/22 Птн 09:49:41 #295 №2439181 
Finworldmap2022.gif
Быстрофикс карты
Аноним 19/08/22 Птн 09:50:15 #296 №2439182 
>>2439178
Разве он умеет сохранять ?
Аноним 19/08/22 Птн 09:53:11 #297 №2439186 
>>2439125
>шарящих людей.
Сейчас даже в банках РФ из первой пятерки новые проекты на .net ебашат (и старье на .net6 активно переводят). Я думаю при их финансах и осведомленности, если бы действительно на горизонте маячил реальный вендекапец, то все бы срочно переводилось на другие рельсы. Чего даже близко не происходит. Так что не ссы и учись дальше.
Аноним 19/08/22 Птн 10:05:01 #298 №2439197 
>>2439178
Дядь, мне бы для консольного приложения?
Аноним 19/08/22 Птн 10:09:14 #299 №2439200 
>>2439197
проще на коленке слепить за 15 минут
Аноним 19/08/22 Птн 10:19:44 #300 №2439213 
изображение.png
Как красиво реализовать замену запятых?
Аноним 19/08/22 Птн 10:43:16 #301 №2439249 
>>2439213
string.Replace(',', ' ');
Аноним 19/08/22 Птн 10:44:56 #302 №2439251 
>>2439249
Но мне нужно их заменить только внутри кавычек. Я конечно могу извлечь подстроку, заменить там, но как потом вставить эту подстроку в строку на место старой?
Аноним 19/08/22 Птн 10:50:25 #303 №2439255 
>>2439251
string replacement = ","; //тут можешь поставить на нужную тебе замену
Regex.Replace("pizdec',' hu','i, 2ch,,,", @"(',')", replacement);
Аноним 19/08/22 Птн 12:00:45 #304 №2439306 
>>2439213
Если регекс нужно будет юзать часто, и ты можешь его создать заранее, то добавь флаг компайлед. Иначе можешь кинуть его нахуй.

var regex = new Regex(@"""[^""]*?""", RegexOptions.Compiled);

...

var result = regex.Replace(text, m => '"' + m.Value.Replace(",", "") + '"');

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

Если кто шарит, как можно было сделать норм регекс тут, был бы рад почитать. Моя хуйня запятую онли не ловила, только вместе с ебалой, а игнорирование групп не работает на сам регекс, так что только запятую выделить не получается.
При попытке выловить группы вокруг запятых, всё ломалось, если между кавычками несколько запятых.
Аноним 19/08/22 Птн 12:15:20 #305 №2439317 
>>2439306
блять, пока дрочился в редакторе, забыл хуйню удалить

Там такая строка
var result = regex.Replace(text, m => m.Value.Replace(",", ""));
Аноним 19/08/22 Птн 12:36:28 #306 №2439342 
>>2439125
Я смотрю тебе по традиции так и не ответили на вопрос. Давай по порядку. Венда уходит и скорее всего уйдет. Ее уже не скачать без впна и очень проблемно купить лицензию. Госы переходят на отечественные дистры линуха, соответственно на него будут переходить вообще все для облегчения взаимодействия. По этой причине я думаю нет смысла учить тот же WPF, он действительно в перспективе может умереть итт. Это же касается всех более древних дотнетовских десктоп-фреймворков, которые работают только на венде.

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

Так что учи и не парься, но только если идешь в сторону веба. По идеешкам: если студия станет недоступна, то всегда есть райдер и сброс триала, либо вскод с напильником, но проще юзать впн, без которого в нынешние времена все равно никуда.
Аноним 19/08/22 Птн 12:45:56 #307 №2439356 
>>2439342
Rider ведь тоже не поюзаешь вроде как, за него платить надо. А жбрейнс съебали. Надо пилить отечесвтенную айдее под .нет
Аноним 19/08/22 Птн 13:05:33 #308 №2439378 
>>2439356
Пилить отечественную нерентабельно. А райдер прекрасно работает со сбросом триала. Делаешь новый ящик - заводишь новый аккаунт - включаешь новый триал - профит. Пять минут в месяц занимает.
Аноним 19/08/22 Птн 13:24:03 #309 №2439403 
bandicam 2022-08-19 17-19-39-582.mp4
изображение.png
изображение.png
изображение.png
Продолжаю постигать азы wpf по уроками шмачилина. Решил добавить фильтр стран. И вроде работает, но почему так медленно?
На первом пике свойство привязанное к TextBox, на втором сам фильтр, на третьем свойство привязанное к ListBox
Аноним 19/08/22 Птн 13:27:04 #310 №2439409 
На связи вкатунщик студент 2го курса cs Не знаю, что выбрать в перспективу - Java или C#. Выбираю только из этого, остальное на бэк не интересует. Шарп по вакансиям сейчас выглядит слабее, однако ощущение, что это пока, и дальше он будет только набирать обороты,а от жабы все желчью плются, но зато там работы дохера. я не из рашки, поэтому ситуация с уходом МС меня мало волнует
Подскажите, мастера сего языка, ставить всё на красное изучения шарпа? С будущей возможностью вкатиться в европу, там сейчас вроде тоже жаба популярнее, не считая швеции какой-нибудь
Аноним 19/08/22 Птн 13:38:59 #311 №2439428 
>>2439409
Лол, конечно .NET выбирать надо. Смотри в чем прекол. Майки крупнее оракла, они могут себе позволить тестировать что-то новое и даже если обосруться и не выстрелит - ничего плохого не случится в мире .NET, а в джаве же всё наоборот. Каждый апдейт оракл трясётся и надеятся чтобы выстрелило, ведь если нет - это огромные убытки для компании. C# и вся платформа активно развивается, майки вливают дохуя денег в платформу и она будет с каждым полугодием всё лучше и лучше. Джаву сейчас держит только легаси написанное в течении 20 лет, но сам язык развивается очень медленно и активно пиздится из как раз таки сишарпа, т.е выбрав джаву ты будешь писать на обрезанном C#.
Аноним 19/08/22 Птн 13:46:09 #312 №2439437 
>>2439403
>И вроде работает, но почему так медленно?
Потому что ты несколько тысяч элементов в оперативную память суёшь, а затем их еще и отрендерить надо. Юзай пагинацию.
Аноним 19/08/22 Птн 13:51:40 #313 №2439441 
>Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток
Ебал рот этой многопоточности ебаной. Что я делаю не так?
FlowDocument result = null;
Thread thread = new System.Threading.Thread(() =>
{
result = parser.Document;
});
thread.TrySetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
Document = result;

Что здесь не так? Я создал переменную в главном поток, запустил другой поток, из него вернул результат в эту переменную, затем хочу записать результат в другую переменную, которая ждала завершения потока, и получаю эту ебаную ошибку. Почему, нахуй? Неужели нет способа просто получить данные из потока нормально? async await использовать не могу, потому что мне нужно ApartmentState.STA, без него нихуя работать не будет у меня.
Аноним 19/08/22 Птн 13:55:17 #314 №2439443 
>>2439441
Опиши свою задачу, что ты хочешь сделать?
Аноним 19/08/22 Птн 14:00:36 #315 №2439444 
>>2439443
Хочу засунуть parser.Document в поток и получить на выходе данные, поток должен быть с ApartmentState.STA. Что в парсере особо не важно. Точнее, без ApartmentState.STA он будет отъёбывать, потому что некоторые части его хотят работать с главным потоком, ибо являются элементами UI. Вроде как.
Аноним 19/08/22 Птн 14:35:47 #316 №2439481 
Пацаны, а нахуй нужны абстрактные классы, если есть интерфейсы? Если нужны данные - в интерфейс всегда можно загнать и проперти, которые тоже де-факто методы. Я предполагаю, что абстрактный класс будет нужен там, где нужны филды, но, опять же, нахуй нужны филды, когда есть проперти с гораздо более гибким доступом?
Аноним 19/08/22 Птн 16:33:32 #317 №2439667 
Посмотрел некоторые главы в книге от майков .NET Microservices и ахуел от абстракций и говнокода в частях про работу с базой данных.

Этого сегодня так пишут, покрывая пяти слоями DI/FluentAPI/govnoUnit и запихивая всё в монгу?

Понятно, почему на меня на собесах смотрят как на скуфа старого.
Аноним 19/08/22 Птн 16:37:16 #318 №2439672 
>>2439481
Раньше нельзя было имлементацию методов запихнуть в интерфейс, а в абстракный класс можно было.
Аноним 19/08/22 Птн 16:44:44 #319 №2439680 
матрица.jpg
>>2439409
На шарпе можно попасть в ПРОСАК.

Одно дело, это ковырять винФормсы джуном или мидлом, а есть проекты где используют WPF/UWP/MAUI/Xamarin или очередной фреймфорк от корпорации.

Друга половина новых вакансий - это микросервисы, но там многие .NET проекты скоро сдохнут, не выдержав конкуренции с Голангом/Джавой.

В итоге остается полтооры вакансии, где можно пилить нормально citadel сидя на линуксе, без легаси и зумерского говна. Ноудискас. Хейтеры лесом.
Аноним 19/08/22 Птн 16:47:07 #320 №2439686 
Всё, ушла.

>>2439680
Аноним 19/08/22 Птн 16:51:47 #321 №2439695 
image.png
image.png
БЛЯТЬ, что это зазалупа???? Какой нахуй "<ValCurs xmlns=''> "??
Помогите, пожалуйста. Пытаюсь десериализовать xml, который приходит с сайта, приходит текстом, а я потом сохраняю в формат xml. Почему не получается десериализовать? Если использовать xRoot, то мне просто выдаётся пустой members. На скринах xml, код и тд. Заааа чтоооооо
Аноним 19/08/22 Птн 16:53:43 #322 №2439697 
image.png
>>2439695
Аноним 19/08/22 Птн 16:54:39 #323 №2439698 
>>2439697
Пиздос, я слепой. Ладно <ValCur есть. Но если использовать рут-хуют кидает тот же эксепшен
Аноним 19/08/22 Птн 16:56:07 #324 №2439701 
image.png
>>2439697
Аноним 19/08/22 Птн 16:57:39 #325 №2439703 
image.png
Аноним 19/08/22 Птн 17:15:42 #326 №2439729 
image.png
image.png
Баля дебс который говнокодит свою хуйню, сделай просто по-человечески вот так:
Аноним 19/08/22 Птн 17:22:35 #327 №2439735 
>>2439672
А, точно, это ж для имплементации методов. В интерфейсах это делать до сих пор считается моветоном.
Аноним 19/08/22 Птн 17:43:58 #328 №2439771 
image.png
>>2439729
Аноним 19/08/22 Птн 17:45:36 #329 №2439773 
>>2439771
Покажи жсон, с какого сайта парсишь?
Аноним 19/08/22 Птн 17:46:18 #330 №2439775 
>>2439773
Так не жейсон...А xml
Аноним 19/08/22 Птн 17:47:36 #331 №2439779 
>>2439773
https://www.cbr.ru/scripts/XML_daily.asp
Аноним 19/08/22 Птн 17:54:08 #332 №2439788 
>>2439775
>>2439779
Ну так понятное дело что >>2439771 не запустилось, у меня ж там жсон. Нахуй ты ебешься с хмл рыготным если есть вликолепный жсон? https://www.cbr-xml-daily.ru/daily_json.js и юзай тот код что я приложил
Аноним 19/08/22 Птн 17:57:33 #333 №2439795 
>>2439788
Хотел сам сделать бота. Типо пет проект в итоге завяз в этой хуйне. А вообще, бот уже имеет рабочий функционал, но код, что я навоял - просто ад ебейший. Так что решил переделать
Аноним 19/08/22 Птн 17:59:20 #334 №2439798 
>>2439795
Ты завяз на хуйне потому что пытаешься здесь и сейчас, а нужно сесть и продумать ООП и всю хуйню. То, что ты высераешь в треде - я в шоке, поверь, я если бы увидел такой пет-проект, я бы тебе даже отвечать наверное не стал на звонки после собеса.
Аноним 19/08/22 Птн 18:49:36 #335 №2439877 
>>2439798
Верно, я спонтанно решил сделать бота, при этом нихуя не продумав. Ошибка, конечно, но я не представляю даже с чего начать.
Аноним 19/08/22 Птн 18:57:53 #336 №2439896 
>>2439680
Чет обосрался с микросервисной джавы которая должна составить конкуренцию ASP NET CORE
Аноним 19/08/22 Птн 20:16:49 #337 №2440015 
>>2439896
Так жаба вне конкуренции. Аспнет - лучший выбор для монолитов, а аспнеткор - лучший выбор для опенсорсных монолитов.
Аноним 19/08/22 Птн 20:36:32 #338 №2440034 
>>2438859
Это просто-понятный императивный код, няша, который писался для литкода, чтобы потроллить вкатунцов из /b/.
Что ты от меня хочешь? Чтобы я по солиду разложил все это дело, когда мне нужно было сраться с вкатунцами? Это раз.

Два. Любой нормальный лид - в первую очередь думает о вэлью проекта, и уже во вторую очередь о красивом-понятном-поддерживаемом (нужное подчеркнуть) коде. Если тебе чтобы фичу запилить - нужно неделю, а Васе-говнокодеру достаточно 3 часа - то лид даст задачу Васе, и проталкивать по ЗП менеджеры и тимлид будет Васю, а не тебя. И все истории, про то как через 100 лет никто это поддержать не сможет - попросит засунуть поглубже, потому что через 100 лет ты мертвый будешь, а деньги ты не получишь уже сейчас, если охуительная фича не появится уже завтра.
Аноним 19/08/22 Птн 20:49:38 #339 №2440058 
>>2440034
Я даже мысль разверну.
Большая часть ваших проектов - это не гугл и амазон, нахуй. Даже не ворд. Это в 90% случаев - решение задачи конкретного клиента, в конкретный срок. Так вот. Тимлид уже насрался с клиентами, которым вдалбиваешь, что вот они завтра Амазоном станут, а у них секйлабилити не заложено, а клиент ему устал у виска крутить, говоря: "Какой блядь, амазон, я цветами торгую через интернет, сука, ты больной чтоли?"
Если бы ты свой хороший код делал забесплатно, причем за то же время, что Васа-говнокодер - плохой - вопросов бы не возникало. Только зачастую - это нихуя не так. Раз. Два - твой охуительный код - охуетилен только в твоей голове или пока ты им пользуешься, а когда его берет другой программист - он охуевает от того, сколько мыслительных усилий нужно приложить, чтобы понять полет твоей фантазии.

Так вот. В кодинге - первое что тебе нужно уяснить - ты решаешь не свои проблемы, не удовлетворяешь чувство прекрасного, не доказываешь какой ты у мамы умный и прочее - ты решаешь проблему конкретного клиента. И не за спиной в тихую принял решение, а нахуячу я ему 100слойную архитектуру, с микросервисами-хеурвисами, и похуй как он потом это будет поддерживать без тебя; а прямо подходишь и говоришь: Ребята, вы готовы потратить в 10 раз больше времени и в 25 раз больше деняк, чтобы возможно в будущем у вас не было проблем с допиливанием функционала, расширением, поддержкой и прочей залупой. И когда ты увидишь клиента, который скажет: "Да, берите все мои деньги, делайте сколько будет нужно, лишь бы было хорошо", вот тогда ты и начинаешь лезть в залупу. До того как твой клиент не дал согласие - ты делаешь ровно то что он просит, максимально быстро, максимально дешево.
Аноним 19/08/22 Птн 21:42:59 #340 №2440104 
>>2440058
>"Какой блядь, амазон, я цветами торгую через интернет, сука, ты больной чтоли?"
Ты описываешь ситуацию, где и клиент и исполнитель - шизоиды. Для такой хуйни надо нанять фрилансера на петухоне/петухапе, а не дотнет галеру. Дотнет берут как раз для случаев, когда:
>готовы потратить в 10 раз больше времени и в 25 раз больше деняк, чтобы в будущем не было проблем с допиливанием функционала, расширением, поддержкой и прочей залупой

Дотнет - это платформа для жирного энтерпрайза, которую надо поддерживать десятки лет и постоянно допиливать функционал. И как раз для этого там статическая типизация и ооп, чтобы код был максимально легко расширяем и максимально багоустойчив.
Аноним 19/08/22 Птн 22:02:19 #341 №2440117 
>>2440104
> Дотнет - это платформа для жирного энтерпрайза
Да нет. Дотнет берут, в том числе, потому что: "Ну, мы виндовс пользуемся"; "Ну, нам 5 лет назад студент написал на .net, столько лет пользовались - все заебись - пишите на шарпе", "Я сам - на висуал бейсике писал...", "читал где-то что это как с++ только с++++"
Это раз.
Два. При чем тут шарп вообще? Язык - значения никакого не имеет. Это общие вещи, которые нужно понимать. Если ты работал, например, в ДоДо - то видел код который в наследство остался. Охуенный, блядь кодище. И писался - очевидно с расчетом на то - что они - амазоном станут. Угу. Но теперь, в том числе благодаря этому коду - у них есть деньги, чтобы его переписать. Если бы они - вместо того чтобы развивать бизнес - тратили бы на вот таких вот умников миллионы денег - так бы и сдохли. И таких историй, как конторы загибались в попытках переделать - куча: с другой стороны - есть Фейсбук, который написали на ПХП, причем качество кода там такое же сомнительное было; есть гугл, который такой же сомнительный в плане кода на момент когда он только начинался; есть, блядь, сам дотнет, посмотрев исходники которого до того как они стали опенсорсом - ты охуеешь, потому что там тотальный пиздец уровня: упоровшийся силюб - обдолбался и хуй его остановишь, ансейф хендлер погоняет нативным вызовом, ебаша прямо в пасять хуй пойми что, а потом это обернули в какой-нибудь SafeHandler и заебись, четенько сделали.
Так вот. Ответь. С хуя я - в контексте написания кода в ответ на тупой вопрос джуна из /b/ - должен бы писать охуеннейший код? Давай. Мне интересно.
Аноним 19/08/22 Птн 22:06:59 #342 №2440121 
>>2440117
>джуна из /b/
Вкатыша из /b/

бухлофикс
Аноним 20/08/22 Суб 00:05:24 #343 №2440217 
>>2439356

>>2439378
>Пять минут в месяц занимает.
но это только тем, кому не хочется сделать чтобы 5 минут в полгода - год
Аноним 20/08/22 Суб 00:37:23 #344 №2440238 
>>2440117
Двачую кстати, все относительно современные успешные продуктовые проекты выросли из какого-то говна, написанного, внезапно на пхп.

ВК - пхп.
Озон - пхп.
Авито - пхп.
Фейсбук - пхп.
Яндекс - пхп и perl.
Гугл - джава и питухон (на тот момент cutting edge технологический стек)
Аноним 20/08/22 Суб 01:00:12 #345 №2440263 
>>2433268 (OP)
Аноны, помогите советом.В институте проходили С#, но потом год забрала работа одна и я выкатился из всего, сейчас хочу взяться по крупному за программирование, и вот думаю будет проще взять вспомнить С#, но как это применить потом? За что мне лучше взяться и на какую работу я смогу рассчитывать?
Аноним 20/08/22 Суб 01:34:54 #346 №2440271 
19192be53df3176390c7ef513363ae5c.jpg
>>2440263
Очевидно же.
Аноним 20/08/22 Суб 10:56:03 #347 №2440403 
image.png
Пасаны, помогите неткор нюфагу. Есть сайт один, еще на асп нет фрамеворк, структура папочек которые у меня есть пикрел.
Мои вопросы:
1)Как мне это запустить на 22 студии?
2)Там нахуй ни одного .cs файла нет, только вьюхи cshtml и папка с ангуляр/жс скриптами. Я так понимаю, там всё-таки чего-то не хватает?..
Аноним 20/08/22 Суб 13:18:44 #348 №2440479 
>>2440346
Как понять куда двигаться, вопрос в этом ведь.Что изучать в первую очередь, если я освежил уже синтаксис языка, вспомнил об основных типах данных, операторах, классах и методах?
Аноним 20/08/22 Суб 16:19:09 #349 №2440774 
>>2440403
Бтв, папка в которой это все лежало - называется www
Аноним 20/08/22 Суб 18:47:12 #350 №2440991 
Такой вопрос по поводу SOLID, в частности по поводу Liskov Substitution Principle (LSP). Если я усилю постусловие в классе-наследнике, то я уже не могу использовать класс-наследник заместо базового класса, да?
Аноним 20/08/22 Суб 18:51:02 #351 №2440999 
>>2440022
Спасибо за предложение, я тоже задумался по поводу ревью моего говнокода. И я придумал вот что: буду пилить проект, потом выкладывать на гитхаб, а потом заливать на переполнение стека, чтобы там оценили. Сюда тоже ссылку кидать буду.
а пока я пилю трёхслойную архитектуру для бота, попутно изучая основы архитектуры ПО)
Аноним 20/08/22 Суб 18:56:17 #352 №2441009 
>>2440991
В общем случае да.
Аноним 20/08/22 Суб 19:02:06 #353 №2441017 
>>2441009
А что я нарушаю? Инваринтность, скорее всего нет, т.к все условия сохранены. Или, скорее всего, я нарушаю Postconditions, но там, где я читаю говорится только про ослабление postconditions.
Аноним 20/08/22 Суб 19:04:01 #354 №2441019 
>>2441009
То есть, по сути, усиление/ослабление postconditions, а также усиление/ослабление preconditions - это одна хуйня и так делать нельзя?
Аноним 20/08/22 Суб 19:07:32 #355 №2441027 
>>2439798
> пытаешься здесь и сейчас, а нужно сесть и продумать ООП и всю хуйню
Никогда нихуя не продумывал. Садился и делал всегда просто. Проблем никогда не возникало особых
ЧЯДНТ?
Аноним 20/08/22 Суб 19:08:24 #356 №2441028 
>>2441023
о, тоже подписан на этого чела
Аноним 20/08/22 Суб 19:13:05 #357 №2441037 
>>2441027
Я тоже так делаю, а потом просто привожу всё к цивильному виду. Но всё-таки довольно неудобно, хочется иметь хоть какой-нибудь набросок. Я когда диплом в шараге писал, начал делать фронт для сайта, в итоге не имея общего представления просто бегал по понравившимся сайтам и по кусочкам пиздил оттуда дизайн. Времени проебал много, а можно было просто взять из фигмы какой-нибудь дизайн и по нему делать. в итоге мне дизайн подрихтовал дипломник, чтобы он был однородным
Аноним 20/08/22 Суб 19:20:05 #358 №2441051 
>>2433268 (OP)
Чисто ООПшный вопрос без привязки к языку. Допустим есть базовый класс Animal и я хочу от него отнаследоваться. Все наследники будут как-то расширять базовый класс, добавлять новые методы и поля. Например дочерний класс AnimalWithSuperpower будет иметь метод ShootLaserBeamsFromEyes, уникальный только для этого класса. С таким подходом появляется проблема, что если я храню в одной коллекции множество дочерних классов и пытаюсь с ними потом как-то работать, то мне нужно постоянно делать сужение типа (проверять что метод присутствует в объекте).
Как это можно отрефакторить? Первое что приходит на ум, это запихнуть все методы всех наследников в базовый класс, а реализацию запиливать уже непосредственно в наследниках. Но что-то мне подсказывает что это еще больший говнокод чем делать проверки инстансов.
Как вообще люди делают в таких ситуациях?
Аноним 20/08/22 Суб 19:24:56 #359 №2441062 
>>2441023
Ифалогия - плохо. Понял + принял
Аноним 20/08/22 Суб 19:32:44 #360 №2441085 
>>2441081
Не понял, к чему это. Я вроде написал, что понял
Аноним 20/08/22 Суб 19:36:34 #361 №2441093 
>>2440479
Возьми банальную идею сайта (магазин/соцсеть/имиджборд) и делай минимальный рабочий вариант, по ходу читая документацию и разбираясь, а как заработает - наращивай жир и фичи.
Потом учи всякие паттерны и архитектурные подходы и перепиши нормально.
Аноним 20/08/22 Суб 19:39:19 #362 №2441098 
>>2441051
Создай интерфейс IShootLaserBeamsFromEyes, и потом делай проверку на сайт.
Аноним 20/08/22 Суб 19:40:15 #363 №2441100 
>>2441098
> на сайт.
на тип

отвлекся на нижний пост
Аноним 20/08/22 Суб 19:57:03 #364 №2441107 
>>2441098
Понял, благодарю. От проверок походу никак не уйти
Аноним 20/08/22 Суб 20:17:08 #365 №2441128 
https://2ch.hk/pr/res/2440847.html
Аноним 20/08/22 Суб 20:28:23 #366 №2441139 
>>2441051
> если я храню в одной коллекции множество дочерних классов
У тебя неверное понимание наследования, от которого у тебя неправильная архитектура.
Коллекции обобщённого типа существуют для того, чтобы использовать из элементов только методы, имеющиеся в обобщённом типе. Если ты постоянно делаешь проверки на сужение типа - то ты что-то делаешь не так. Где-то ты свернул не туда.

Мой совет, завести коллекцию типа AnimalWithSuperpower и кидать в неё всех таких.
Аноним 20/08/22 Суб 20:32:49 #367 №2441143 
>>2441128
> Подскажи пожалуйста вариант решения
Avalonia UI
Eto.Forms
MAUI
Аноним 20/08/22 Суб 20:35:48 #368 №2441150 
>>2441143
> MAUI
Не работает на прошивке для роутера линуксе.
Аноним 20/08/22 Суб 20:37:39 #369 №2441155 
>>2441150
Оп треда по ссылке работает на МАКе.
Аноним 20/08/22 Суб 20:38:51 #370 №2441158 
>>2440991
Вообще, по идее можешь. Если ты усиливаешь постусловие, то по идее, ты всего лишь сокращаешь множество состояний на конец вызова до какого-то подмножества (внутреннее состояние объекта, возвращаемое значение и т.д.). Так как ты именно усиливает постусловие, то значит выбираешь это подмножество из множества уже допустимых состояний. А значит, не сломаешь код, который это использует. Вот ослаблять да, нельзя.
Аноним 20/08/22 Суб 20:42:10 #371 №2441163 
>>2441158
Не сломаю, но работать будет не так, как ожидалось, правильно?
Аноним 20/08/22 Суб 20:45:29 #372 №2441171 
>>2441163
УСИЛИВАТЬ НЕЛЬЗЯ
@
ОСЛАБЛЯТЬ НЕЛЬЗЯ
@
ВООБЩЕ НАСЛЕДОВАНИЕМ ПОЛЬЗОВАТЬСЯ НЕЛЬЗЯ
Аноним 20/08/22 Суб 20:45:39 #373 №2441172 
asd.png
Не особо работал с голым npgsql, щас вот решил понюхать батчинг. Вопрос - можно ли все эти new new new (batch command, parameter) один раз создавать и переиспользовать и насколько это хорошая задумка?
С BatchCommands вообще непонятно, когда создаешь новый NpgsqlBatch он дает в таком стиле команды пихнуть, а отдельно свою хуйню NpgsqlBatchCommandCollection не дает создать, и не дает скастить другие коллекции к ней. Вот например, если сделаю один static батч и буду в него новые соединения пихать и менять параметры достойно будет?
Аноним 20/08/22 Суб 20:49:00 #374 №2441176 
>>2441171
Это если я солид соблюдаю. А если нет - похуй
Аноним 20/08/22 Суб 20:49:45 #375 №2441177 
>>2441163
Почему же. Если использующий твой класс код написан правильно, то он уже готов к тому, что после вызова будет принято одно из допустимых состояний. То что твой класс сужает это множество ничего для вызывающего кода не меняет, так как какое состояние бы не было на момент окончания вызова принято, оно все ещё остаются допустимыми. Если же вызывающий код от этого ломается, то он скорее всего почему-то знал что-то о деталях реализации базового класса, чего бы ему не следовало.
Аноним 20/08/22 Суб 20:52:19 #376 №2441182 
>>2441177
Ой, блять, сорян. Я перепутал с ослаблением пост условия.
Аноним 20/08/22 Суб 21:01:18 #377 №2441195 
1.png
2.png
3.png
Хочу кодревью! Давайте мне кодревью!
Аноним 20/08/22 Суб 21:01:32 #378 №2441196 
>>2441181
Даппер и юзал, но я как я понял в нем батчинга. Гуглятся только bulk insert/update/...
Аноним 20/08/22 Суб 21:08:57 #379 №2441203 
>>2441195
Зачем сеньору кодревью?
Аноним 20/08/22 Суб 21:10:36 #380 №2441206 
>>2441203
Ну, в прошлый раз мне сказали, что уволить за мой код нужно. Я вот засомневался в своих силах и теперь хочу понять, что я делаю не так...

>>2441204
Где я троллил кого-нибудь?
Аноним 20/08/22 Суб 21:12:20 #381 №2441208 
>>2441206
> Я вот засомневался в своих силах
Ну и какой ты сеньор тогда? Ты должен был разъебать по фактам своих оппонентов.
Аноним 20/08/22 Суб 21:15:51 #382 №2441211 
>>2441139
>Мой совет, завести коллекцию типа AnimalWithSuperpower и кидать в неё всех таких.
Совет годный, скорее всего так и сделаю. Мой практический кейс такой: есть класс таблицы (Grid) и в ней могут находиться колонки разных видов, унаследованные от GridColumn. Я все колонки сейчас храню в одной коллекции ибо это на первый взгляд логично. Но это привносит кучу мусорных сужений. Наверное реально будет проще разделить по видам и потом склеивать при маппинге в UI слой.
Аноним 20/08/22 Суб 21:22:38 #383 №2441219 
>>2441213
Но разве в этом кейсе не напрашивается наследование? У меня около 5 видов колонок (и будет еще больше), у которых общая кор логика, типа валидации, фильтров, но также есть различия в поведении и разные поля.
Аноним 20/08/22 Суб 21:25:58 #384 №2441222 
>>2441221
Подписался на пост. Тоже интересно.
мимо
Аноним 20/08/22 Суб 21:34:50 #385 №2441227 
>>2441222
Не покажет он ничего. Это местный шиз, который постит везде "Не уходи из треда! Сейчас подробно всё распишу".
Аноним 20/08/22 Суб 21:39:30 #386 №2441231 
>>2441229
Ты композицию собираешься заюзать? Я хз как еще можно
Аноним 20/08/22 Суб 21:41:07 #387 №2441235 
>>2441229
У тебя 10 минут. Время пошло.
Аноним 20/08/22 Суб 21:50:28 #388 №2441244 
ezgif-2-76add9fdfe.gif
>>2441195
Видимо ревью не будет.
Тогда просто гифку с результатом вам дам.
Аноним 20/08/22 Суб 21:54:19 #389 №2441250 
>>2441244
Почему 17 орбита движется неправильно?
Аноним 20/08/22 Суб 21:55:47 #390 №2441251 
>>2441195
Как сделать такой же VS ?
Аноним 20/08/22 Суб 21:58:03 #391 №2441254 
image.png
У меня вопрос про ML.NET. Насколько актуально вкатываться через шарп, или лучше сразу идти вкатываться через питон?

Хз как спросить правильно, типа насколько ML.NET полноценен в этом плане или это просто маркетинговая заглушка, мол, у нас есть типа машинное обучение.
Аноним 20/08/22 Суб 21:59:14 #392 №2441256 
>>2441219
Посмотри ещё в сторону паттерна Visitor. Возможно сможешь натянуть его на свой кейс. Он как раз позволяет избавиться от необходимости явной проверки типов и даункастов.
Аноним 20/08/22 Суб 21:59:25 #393 №2441257 
>>2441250
17 это которая?
Да и там же беленьким - радиус на котором я перестаю рассчитывать взаимодействие. Типа я так считаю скорость:
if(Radius + other.Radius < distance)
{
var F = G (Mass other.Mass);

var fx = F dx / distance;
var fy = F
dy / distance;

float dX = fx / Mass;
float dY = fy / Mass;

Velocity += new Vector2f(dX, dY);
}

>>2441251
Я вот эту вот щтуку поставил.
https://marketplace.visualstudio.com/items?itemName=unthrottled.dokithemevisualstudio
Аноним 20/08/22 Суб 22:58:17 #394 №2441287 
>>2441284
Нет. Это шарп и SFLM.
Аноним 20/08/22 Суб 23:14:26 #395 №2441292 
>>2441284
Хуюнити.
Аноним 20/08/22 Суб 23:16:06 #396 №2441295 
>>2441227
Охлол! Серьёзно?
лет 5 назад в /б/ я баловался подобным тралингом, а тут спустя 5 лет меня подловили на таком же
Аноним 20/08/22 Суб 23:17:21 #397 №2441297 
>>2441284
> Это юнити?
Это Авалония UI?
Аноним 20/08/22 Суб 23:45:13 #398 №2441307 
>>2441298
Авалония - это как жавафх.
А вместо спринга тут .неткор+.
Вместо ваадина/gwt тут блазор.
Аноним 21/08/22 Вск 01:17:21 #399 №2441324 
Безымянный.png
>>2441195
Пока не было кодревью - я нашел ошибку в формуле рассчета скорости.
Ну и сделал красивые ЛГБТ хвостики.
Аноним 21/08/22 Вск 09:25:42 #400 №2441415 
>>2441307
И на выходе скомпилированный хеллоуворлд весит сто мегов. Сто, Карл! Сто, Хесус!
Аноним 21/08/22 Вск 09:50:18 #401 №2441435 
>>2441415
ась
Аноним 21/08/22 Вск 09:55:57 #402 №2441438 
>>2441435
124 Мб
Аноним 21/08/22 Вск 10:10:35 #403 №2441444 
>>2441415
А нахуя мерять хеллоу вордами? Он весит 100мб, готовая программа со сложной бизнес-логикой 120мб.
Аноним 21/08/22 Вск 10:11:38 #404 №2441445 
>>2441438
что 124мб? к чему эта жалоба? где не так же?
Аноним 21/08/22 Вск 10:17:56 #405 №2441446 
>>2441445
Eto.Forms, Хеллоуворлд = 4,5 Мб.
>>2441444
> готовая программа со сложной бизнес-логикой
Не пизди.
Сложная бизнес-логика это килобайты, ну десяток килобайт формул. Данные - это СУБД, висящая отдельно, в т.ч. на серверах.
Аноним 21/08/22 Вск 10:21:01 #406 №2441447 
>>2441445
Ах да, хоть ВПФ и не кроссплатформа, а мы тут как бы кроссплатформу обсуждаем, но хеллоуворлд на ВПФ вообще = 450 Кб. Кило! Не Мега!
Аноним 21/08/22 Вск 10:22:43 #407 №2441448 
>>2441446
>Eto.Forms, Хеллоуворлд = 4,5 Мб.
а если прибавить к нему формсы, гтк и что там еще что на маке
сколько получим?
Аноним 21/08/22 Вск 10:27:57 #408 №2441451 
>>2441448
Всё прибавлено, командой dotnet run запущено и после сборки измерено.
Аноним 21/08/22 Вск 10:29:23 #409 №2441454 
>>2441451
Щас ещё ради интереса перегружусь в линукс и пособираю там, и сравню размеры.
Аноним 21/08/22 Вск 10:31:18 #410 №2441456 
image
>>2433268 (OP)
Почему код типа как на пикриле компилировался и работал безошибочно много лет, а свежайшее обновление студии вдруг начало ругаться и выдавать ошибку CS8347?
https://pastebin.com/uZAVDDRa

Обе почти идентичные структуры, MySpanWrapper1 и MySpanWrapper2, содержат поле типа Span с именем content.
У обоих структур есть конструктор, который принимает Span и присваивает его этому полю content.
У обоих структур есть только один метод Copy, который берет Span из поля content и создаёт новый MySpanWrapper через конструктор.
Единственная разница между двумя реализациями в том, что в MySpanWrapper1 мы получаем в конструкторе аргумент типа Span с префиксом in. И именно наличие этого префикса приводит к появлению ошибки этапа компиляции. Но почему так происходит? Ведь когда мы присваиваем этот переданный по константной ссылке аргумент полю структуры, у нас ведь не ссылка присваивается, а создаётся просто копия всех полей аргумента. in - это только про способ передачи аргумента, про его неизменность, но не про его время жизни.
Почему префикс in приводит к этой ошибке, а если его нет, то всё норм?
Аноним 21/08/22 Вск 10:31:18 #411 №2441457 
>>2441451
те, кто измеряет размер приложения без учета рантайма и фреймворка - просто кривят душой

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

измерять нужно
(рантайм + фреймворк + приложение) / (функционал + удобство разработки)
Аноним 21/08/22 Вск 10:32:43 #412 №2441460 
>>2441457
Я нахожусь в одной среде. Оба шаблона создаю одной платформозависимой командой.
Хорошо, щас автономный паблиш сделою. Посмотрим.
Аноним 21/08/22 Вск 10:43:26 #413 №2441469 
>>2441456
В идеале хотелось бы увидеть пример, где префикс in (передача аргумента по ссылка и его неизменяемость) всё ломает. А без in - всё будет ок.
Аноним 21/08/22 Вск 10:46:37 #414 №2441473 
>>2441460
Посмотрел. Селфконтейнед релиз:
Авалония - 97 Мб.
Ето.формс - 154 Мб.
Ачо? Авмсысле?

Я ни разу не видел селфконтейнед дотнетного софта, какой установщик не скачиваешь, он всегда предлагает скачать самому или установить требуемый фреймворк. Поэтому, этот аргумент расцениваю слабым, но всё равно интересно, как так получается, что Авалония тянет меньше сборок дотнета? Потому что у неё больше сторонних сборок? Которые и занимают эти 100 Мб в простом (не селфконтейновом) билде?
Аноним 21/08/22 Вск 11:03:01 #415 №2441482 
>>2441473
Всё, разобрался с вопросом. Авалония в один билд засовывает отдельной папочкой все рантаймы всех поддерживаемых систем. Если, к примеру, находясь под виндой, удалить оттуда все лишние рантаймы, то размер билда становится 23 Мб, это хоть и больше 4,5, но уже в приемлемых рамках.
Аноним 21/08/22 Вск 15:01:14 #416 №2441767 
>>2441482
Тебе додику сказали, что авалония рисует сама и сама все тащит, а твои рисовашки окон 4,5мб дергают уже установленные движками либы, отсюда и разница.
Зачем я кормлю тупых? Лучше ты был бы троллем
Аноним 21/08/22 Вск 15:44:19 #417 №2441851 
image.png
У меня вопрос про ML.NET. Насколько актуально вкатываться через шарп, или лучше сразу идти вкатываться через питон?

Хз как спросить правильно, типа насколько ML.NET полноценен в этом плане или это просто маркетинговая заглушка, мол, у нас есть типа машинное обучение.
Аноним 21/08/22 Вск 16:07:40 #418 №2441883 
>>2441851
ML не про программирование вовсе. Актуальнее всего туда вкатываться через математику, особенно статистику и вычмат. Там поебешься с бумажками и экселем, и потом при изучении хоть мл.нет, хоть питона поймёшь, что они там в роли скриптов для предобработки и конфига для запуска готового движка (а раз так, не имеет значения, на чём их писать), и будешь ты ими пользоваться меньше половины рабочего времени.
Аноним 21/08/22 Вск 16:42:05 #419 №2441939 
>>2441324
Ну вот, теперь 17 норм летит.
Аноним 21/08/22 Вск 16:46:02 #420 №2441948 
>>2441883
Благодарю.
Аноним 21/08/22 Вск 16:49:18 #421 №2441949 
>>2441883
>конфига для запуска готового движка
Что за движок, tensorflow?
Аноним 21/08/22 Вск 16:52:56 #422 №2441959 
>>2441949
Тензорфлоу самый известный, но есть ещё несколько, иногда пишут и свои.
Аноним 21/08/22 Вск 18:07:03 #423 №2442068 
>>2434488
Решарпер для говноедов. Либо сидишь на райдере либо на чистой вс. Тормозные плагины нинужны.
Аноним 21/08/22 Вск 18:11:20 #424 №2442075 
>>2442068
Уроки сделал?
Аноним 21/08/22 Вск 18:20:51 #425 №2442077 
>>2442068
Сделал твой рот. VS с решарпером начинает лагать шо пздц. Если нужен решарпер, своруй rider или "купи" лицензию за 150р/месяц. Если нет, то тебе и VS хватит.
Аноним 21/08/22 Вск 18:37:01 #426 №2442094 
>>2442077
Школотун, купи себе нормальный комп, а не говно на пентиуме.
Аноним 21/08/22 Вск 18:37:45 #427 №2442098 
>>2442077
Жидбрейнсы делают тормознутый плагин, чтобы ты купил райдер? Хм, а это выглядит как бизнес.
Аноним 21/08/22 Вск 18:44:39 #428 №2442108 
>>2442098
Тормознутый плагин, чтобы покупали ещё более тормознутый райдер.
Аноним 21/08/22 Вск 18:57:40 #429 №2442135 
>>2442094
Я - другой анон, но у меня на не слабом таком компе (Ryzen 5700x, NVMe SSD и 32 Gb 4000 MHz DDR4) решарпер все равно заметно подтормаживает, особенно при открытии проекта. Райдер работает лучше. А чистая студия, особенно 22-ая вообще летает
Аноним 21/08/22 Вск 20:13:27 #430 №2442180 
изображение.png
Почему у меня студия начинает ругаться на эту строку, когда в другом проекте внутри решения, никак с этим не связанным, я делаю синтаксическую ошибку? Мне просто интересно, на компиляцию никак не влияет.
Аноним 21/08/22 Вск 20:15:28 #431 №2442181 
Восстанавливаю некро асп. Подскажите плиз, что такое этот ваш OWIN? Это тоже что-то мертвое? Это что-то, позволяющее запускать сервер не в иисе, а где угодно? (Где????)
Аноним 21/08/22 Вск 20:43:51 #432 №2442203 
>>2442181
>Подскажите плиз, что такое этот ваш OWIN?
это веб интерфейс для связи сервера с веб приложениям.
в руби такое rack, в питоне wsgi наверное, как то так

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

>Это тоже что-то мертвое?
узкая применимость. ведь есть кестрел для self-hosted и плодить свое уже не нужно.
ну может разве что для тестирования.
Аноним 21/08/22 Вск 21:42:50 #433 №2442264 
>>2441767
> авалония рисует сама
skia.sharp там всё рисует, а авалония тащит в зависимости. А в ето.формсах тащатся зависимости нативных графических либ каждой платформы, из-за чего ето.приложение выглядит нативно в каждой платформе, а приложение Авалонии выглядит везде одинаково, как веб-приложение на электроне с дефолтной темкой с цсс-файлопомоек. Кстати о зависимостях. Что делает сборка jetbrains.annotations.dll в выходной выдаче скомпилированного хеллоуворлда? Если я, к примеру, начну продавать своё приложение на Авалонии, то не доебётся ли до меня jetbrains типа я у них лицензию не покупал?
Аноним 21/08/22 Вск 22:01:59 #434 №2442286 
>>2442264
>skia.sharp там всё рисует
и еще бы умела рисовать нормально шрифты (((

>Что делает сборка jetbrains.annotations.dll в выходной выдаче скомпилированного хеллоуворлда?
ну ей не сделали PrivateAssets="All" чтобы она в выхлоп не лезла где она и не нужна (не факт, может что то в рантайме на нее опирается, в ней куча разных аттрибутов)

>то не доебётся ли до меня jetbrains типа я у них лицензию не покупал?
да кому ты нужен у нее MIT лицензия
Аноним 21/08/22 Вск 22:27:04 #435 №2442310 
1661110023590.png
>>2442286
> да кому ты нужен
Никому.
Аноним 21/08/22 Вск 22:44:28 #436 №2442328 
Все время теряю свое сообщение.

почему это не работает
public func<T>(){
var r = new T();
}
А, для класса с ограничением работает?
Аноним 21/08/22 Вск 22:48:16 #437 №2442333 
>>2442328
Что?
Аноним 21/08/22 Вск 22:51:08 #438 №2442336 
>>2442328
f c маленькой буквы. Вот и не работает...
Аноним 21/08/22 Вск 22:55:33 #439 №2442345 
>>2442328
Потому что T может быть интерфейс или абстрактный класс или

>>2442336
Двачую
Аноним 21/08/22 Вск 22:58:31 #440 №2442348 
1661111911220.png
>>2442345
УМВР
Аноним 21/08/22 Вск 23:04:10 #441 №2442360 
>>2442348
Че сказать-то хотел? Ты можешь написать int a = new int(5), вот и работает
Аноним 21/08/22 Вск 23:13:10 #442 №2442375 
1661112789515.png
>>2442360
> Че сказать-то хотел?
Сорян, думал ты - это он. А ты, видимо тоже подумал, что я - это он? Но я мимокрок.
Аноним 22/08/22 Пнд 08:50:55 #443 №2442548 
>>2439441
Бамп вопросу, так и не смог пофиксить
Аноним 22/08/22 Пнд 09:07:29 #444 №2442554 
>>2439441
Задай на SO вопрос бля, тебе никто тут уже не ответит. Я не знаю как решить данную проблему.
Аноним 22/08/22 Пнд 09:08:58 #445 №2442556 
>>2442548
Посмотри видос Хача про многопоточность (Xpuct на Youtube). Базарю, сразу всё поймёшь, ещё захочеш.

>>
Всем привет! Я тут продолжаю изучать МВВМ и по совету рандомного ютубера из туториалов подключил к своему тестпроекту пакет Fody.PropertyChanged чтобы автоматизировать обновление свойств. Карочи, он там какую-то чорную магию делает на уровне МСИЛ что не надо утруждаться с сеттерами. И вроде всё работает, но только, когда окно получает сообщения (когда я мышкой вожу).

ЧЯДНТ?
Аноним 22/08/22 Пнд 09:13:00 #446 №2442559 
>>2442554
Всё из-за того, что ошибки переводятся на русек. На инглише их легко гуглить.
> The calling thread cannot access this object because a different thread owns it
Аноним 22/08/22 Пнд 09:18:07 #447 №2442561 
>>2442556
> И вроде всё работает, но только, когда окно получает сообщения (когда я мышкой вожу).
> ЧЯДНТ?
Отбой, это баги ГТК.
ебучая прошивка для роутера так и не может в десктоп в 2z22
Аноним 22/08/22 Пнд 11:06:30 #448 №2442625 
>>2439441
Какая проблема прыгнуть в нужный поток, как это собственно и положено делать?
Аноним 22/08/22 Пнд 11:08:45 #449 №2442627 
>>2442556
> он там какую-то чорную магию делает на уровне МСИЛ что не надо утруждаться с сеттерами.
ничего там черного нет. Просто пишет гет сет по INPC за тебя везде где видит INPC. Можешь даже декомпил посмотреть. Никакого отношения к мышке не имеет.
Аноним 22/08/22 Пнд 12:35:21 #450 №2442687 
>>2442625
>прыгнуть в нужный поток
Что конкретно ты имеешь ввиду?
Аноним 22/08/22 Пнд 14:06:47 #451 №2442773 
>>2442687
в винформс это Control.Invoke
в WPF это Dispatcher у него методы выполняющие код в УИ потоке
обычно же SyncronizationContext - а он есть ибо только гуи придирается к потока, а раз он есть то смотри выше.
Аноним 22/08/22 Пнд 14:12:11 #452 №2442776 
>>2442773
А, это я пробовал, один хуй не робит, та же самая ошибка про владельца потока
Аноним 22/08/22 Пнд 14:14:50 #453 №2442779 
>>2442776
не знаю что ты пробовал. постоянно в WPF через Dispatcher обращаюсь к контролам.
Аноним 22/08/22 Пнд 14:42:59 #454 №2442809 
>>2433268 (OP)
Антуаны, потыкайте-ка тестерами - воот этого пира https://github.com/username1565/CSharpServers/tree/Peer
а то он меня уже вкрай заебал.
Аноним 22/08/22 Пнд 14:48:05 #455 №2442818 
>>2442809
Че за говнище?
Аноним 22/08/22 Пнд 15:09:10 #456 №2442840 
>>2442818
Ну блядь, там код, вон же написано оно всё.

Это короче недопиленный пир, шобы в локалке искать других пиров и по сети - синхрить между пирами базу наноборды (хэш-таблицу): https://github.com/username1565/nanoboard/issues/21#issuecomment-1200283392
Аноним 22/08/22 Пнд 15:19:02 #457 №2442845 
>>2442840
Пчёл, расфасуй по папочкам, хуё-моё туда-сюда, скажи что не работает и как хотелось бы чтобы работало. Если ищешь тестировщиков - тут их ты не найдешь
Аноним 22/08/22 Пнд 15:23:07 #458 №2442846 
>>2442779
Ты напрямую к контролу что ли обращаешься в впф? Я пытаюсь обновить переменную к нему привязанную и получаю кучу дерьма в лицо
Аноним 22/08/22 Пнд 15:29:59 #459 №2442850 
>>2442845
>Пчёл, расфасуй по папочкам, хуё-моё туда-сюда
Папочки вон, они, все, в разных бранчах залил. Пир чтоб собрать - просто батник тыкни, или Peer.sh запусти в mono, и там короче вся хуйня эта.
>скажи что не работает и как хотелось бы чтобы работало.
А хуй его знает, работает оно или нет. В локалке, вроде работает, на 192.168.0.4 подключается, и даже хэш-таблицу синхрит, а дальше уже, за NAT'ом - хуй знает как тестить, чтобы по инету оно пиздовало, весь этот мультикаст, и прочая поебня.
Я с одного компа не могу протестить, надо короче сетевиков призвать, походу, чтобы они там потыкали этого пира.

>как хотелось бы чтобы работало
Как в беткоене. Поднял пира - получил базу нанобороды, скроллишь, постишь. Профит. Анонимно, без регистрации и без СМС.

>Если ищешь тестировщиков - тут их ты не найдешь
Ну, тогда, наверное, надо бы их прямо туда нагнать, в Issues, какбє.
Аноним 22/08/22 Пнд 15:30:07 #460 №2442851 
Хочу изучить ASP.NET, но не знаю как к нему подступиться и с чего начать. Очень сложно учиться, когда не знаешь что тебе надо знать, а впереди лишь книга на 1000 страниц. Какие темы нужно знать, чтобы:
1) Меня приняли работать за еду
2) Я смог написать условный двачик
Если есть какие-то планы, будьте добры, скиньте
Аноним 22/08/22 Пнд 15:33:03 #461 №2442853 
27d349065ee3ba343cab69a0aaf0ab60.jpg
>>2442809
Хуёвая, неконсистентная разметка.

Я уже не говорю что не используется tabular formatting - за это сразу бью в ебало и мне сразу понятно что за персонаж передо мной.

Чё там за проект в душе не ебу, пиры, хуиры какие-то, чо академики ёпта? На понт взять меня не получится.
Аноним 22/08/22 Пнд 15:35:25 #462 №2442856 
>>2442846
нет. и ты обращаешься. ты посмотри что такое FlowDocument и кто его родители.
Аноним 22/08/22 Пнд 15:38:45 #463 №2442858 
15.1.png
>>2442846
он самый настоящий контрол
Аноним 22/08/22 Пнд 16:05:06 #464 №2442867 
>>2442856
>>2442858
Ну ок, один хуй, диспетчер не спасает
Аноним 22/08/22 Пнд 16:09:06 #465 №2442868 
>>2442853
Это надо чтобы координировать народ СССР, децентрализованнейшим образом, в локальных сетях.
Щас самое время, потому что хуйло не просто предало народ СССР, но ещё и спиздело ЯО СССР.
Но Горбачёв, дал нам гласность, поэтому можно спокойно координироваться децентрализировано, на принципиально немодерируемой, неубиваемой, вечной и бесконечной нанобордочке, заебатой, которую сукаблять допилить надо нормально, а то я уже вкрай заебался с нею, без моих косарей, что спиздили гнилые и усосочные нищие крысы.
Аноним 22/08/22 Пнд 16:09:11 #466 №2442869 
>>2442867
ну мы же не знаем КАК ты используешь диспетчер так что ок
Аноним 22/08/22 Пнд 16:18:59 #467 №2442873 
>>2442868
>поэтому можно спокойно координироваться децентрализировано, на принципиально немодерируемой, неубиваемой
>The Treasury Department sanctioned the crypto mixer Tornado Cash as well as several crypto wallet addresses associated with the service. That means the protocol and its associated smart contracts are now blacklisted, making them illegal for Americans to use.
>Dutch financial crimes agency FIOD arrested a 29-year-old Tornado Cash developer in Amsterdam over their suspected involvement in facilitating money laundering via the platform.
>Key blockchain infrastructure services Infura and Alchemy are blocking users from accessing Tornado Cash.
Удачи.
Аноним 22/08/22 Пнд 16:48:38 #468 №2442882 
>>2442873
Причём тут, к наноборде - пендосы, которые спиздили бабло и забанили в сети - какую-то криптоговнину?

Нанабороду если в локалках синхрить, через пиры, то хуй её забанишь. Она вообще без инета может работать, через пару роутеров. Что весьма очень кстати, в том же Мариуполе, Харькове, Северодонецке, где пидорашки сначала связь отрубают нахуй, затем хуярят танками, ракетами и советскими солнцепёками - по домам людям, а затем по GSM-триангуляции мины закидывают, чтобы не пиздели через тилибоны профы военных преступлений хуйла.
Аноним 22/08/22 Пнд 16:53:14 #469 №2442889 
>>2442882
https://youtu.be/Jt7e0i4POrs?t=449
Чья форма лежит в детском саду, говно?
Аноним 22/08/22 Пнд 16:56:35 #470 №2442891 
>>2442882
На мелком уровне или на уровне обхода пидорашек - да, такое возможно и даже полезно.

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

>Нанабороду если в локалках синхрить, через пиры, то хуй её забанишь
Это кстати самое больше заблуждение разработчиков подобных систем - они думают что государство будет в лоб идти и играть на техническом поле.
Аноним 22/08/22 Пнд 17:24:57 #471 №2442912 
>>2442889
>Чья форма лежит в детском саду
Рашистская, потому что они её и подкинули, для картинки на камеру - разве это не очевидно?
>, говно?
Я не твоя батя-членодевка.

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

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

>Нанабороду если в локалках синхрить, через пиры, то хуй её забанишь
>Это кстати самое больше заблуждение разработчиков подобных систем - они думают что государство будет в лоб идти и играть на техническом поле.
Мне кажется ты слишком переоцениваешь "государство". Оно не всесильно.
Если уж сверхдержава по пизде пошла, то что уж говорить о "государстве"?
ВДПЧ на порядок пижже законов государства будет, потому что это основополагающие принципе международного права, а ООН - наднациональная структура, международная.
В частности статья 19 ВДПЧ - право каждого человека на информацию.
И что против этого сделают подхуйловские дыровцы наёмные, из чужого, блядь, государства?
Провода обрежут нахуй? Или вайфай будут глушить?
А если я StarLink тарелку себе возьму, и буду там нанобордиться, в бункере?
Или через телефонный модем буду в нет выходить? Или тупо морзянкой настукивать двоичный код. Гы. Нихуя они не сделают, потому что стоит вычислить их в два клика, а дальше - один сигнал и пиздарики им.
Аноним 22/08/22 Пнд 18:51:21 #472 №2442981 
>>2441282
Благодарю, анон. Я знал про visitor, но чето думал что он применяется только для обхода всяких деревьев, про такое применение не додумался сам.
Аноним 22/08/22 Пнд 18:53:23 #473 №2442982 
>>2442981
Всегда пожалуйста
Аноним 22/08/22 Пнд 19:19:25 #474 №2443018 
public void Set<T, T1>(int foo) where T1: new()
{
ServicesCollection.AddScoped<T>(cotr => new T1(foo));
}
Привет красоточки.
Почему это не будет работать.
public static IServiceCollection ServicesCollection = ... new();
Аноним 22/08/22 Пнд 19:32:12 #475 №2443036 
>>2443018
По кочану.
Аноним 22/08/22 Пнд 19:33:26 #476 №2443040 
>>2443036
Разесняй или отпизжу
Аноним 22/08/22 Пнд 19:39:15 #477 №2443049 
>>2443040
Потому что сишярп не ебёт че ты от него хочешь. Тип T1 является дженериком и для него не определен конструктор по очевидным причинам который бы принимал int какой-то.
Аноним 22/08/22 Пнд 19:41:29 #478 №2443052 
>>2443049
Есть другие способы создания объектов которые поддерживают передачу аргументов при инициализации консруктора: Activator.CreateInstance() и Expression, так же можешь напрямую руками вызывать из ConstructorInfo.Invoke(object[])
Аноним 22/08/22 Пнд 19:42:38 #479 №2443054 
>>2443049
А,это почему работает
public static void func<T>(int hui) where T: new() {
var t = new T(hui);
}
Аноним 22/08/22 Пнд 19:43:37 #480 №2443055 
image.png
>>2443054
Где?
Аноним 22/08/22 Пнд 19:45:07 #481 №2443057 
>>2443055
Т.е. без хуя будет работать!?

>>2443052
Ты, красавчик.подскажи как мне решить задачу?
Аноним 22/08/22 Пнд 19:46:19 #482 №2443059 
Боярский сишарпсвятой отец,ублюдки, мать их
Аноним 22/08/22 Пнд 19:47:10 #483 №2443060 
>>2443055
Да. Но если нужны параметры, то никак без Expression/Activator/ConstructorInfo не обойтись
Аноним 22/08/22 Пнд 19:58:41 #484 №2443076 
16403455348290.jpg
Аноны, можете плс объяснить, нахуй нужоны конструкторы класса? Посмотрел пару видосов, и только сильнее запутался. Для чего нужен конструктор с параметрами? Запихивают в качестве аргумента одно из полей, создают переменную и присваивают ей значение аргумента и больше ее не используют. Зачем использовать поле в качестве аргумента, если оно и так в поле видимости?
Или, например, создают конструктор, в нем меняют значение поля на нужное. Не легче ли сразу при создании поля его инициализировать? Для чего это? Я вообще нихуя не понял.
Аноним 22/08/22 Пнд 20:00:41 #485 №2443077 
>>2443076
Чтобы когда твой класс зависил очень сильно от каких-то внешних условий их можно было привязать так, что по-другому попросту не получится создать объект и пользователь класса будет вынужден внести нужные тебе данные для корректной работы класса
Аноним 22/08/22 Пнд 20:19:28 #486 №2443103 
>>2443076
Конструкторы нужны, чтобы инстанции классов создавались в готовом и правильном для их работы состоянии. А потом классов будет много и например тебе нужно из одного что-то передать в другой. Где ты это будешь делать? В конструкторе и будешь.
Аноним 22/08/22 Пнд 20:21:16 #487 №2443105 
>>2443076
Конструкторы не нужны, это антипаттерн ебаный.
Если это не конструкторы сайтов
Аноним 22/08/22 Пнд 20:22:00 #488 №2443107 
>>2443057
>подскажи как мне решить задачу?
Никак. Ты пытаешься в опциях создания объекта T пытаешься инстанцировать и вернуть объект T1
Аноним 22/08/22 Пнд 20:28:17 #489 №2443114 
Анон, как нубу понять отличия ASP.NET API и ASP.NET MVC и выбрать, что из этого учить?

Я уже понял вроде бы, что в первом случае у нас приходит запрос на контроллер, который обрабатывается и идет дальше получать данные из базы данных тем или иным образом, а затем приходит на эндпоинт и отдается клиенту. В случае с MVC же добавляется view, который позволяет представить данные графически (я пока нихуя про это не понял). Так вот по идее я же могу взять данные с эндпоинтов API и потом их отрисовать с помощью условного Ангуляра. У меня при этом получится MVC? Зачем тогда нужен темплейт API, если можно сразу делать MVC и почему они вообще такие разные? Я запутался вообще нахуй.
Аноним 22/08/22 Пнд 20:38:59 #490 №2443129 
>>2443057
Можно так
private void func<T>(Func<T> factory)
{
var t = factory();
}

var hui = 1;
func<Zalupa>(() => new Zalupa(hui));
Через захват переменной.

Или так

private void func<T>(int hui, Func<int, T> factory)
{
var t = factory(hui);
}

var hui = 1;
func<Zalupa>(hui, x => new Zalupa(x));
Аноним 22/08/22 Пнд 20:43:55 #491 №2443136 
>>2443129
Красавчик,могеш,то что мне нужно.
Спасибо,что помогли,а то тут тян выше пишет конструкторы не нужны,шароеб не человек
Аноним 22/08/22 Пнд 20:49:13 #492 №2443146 
>>2443057
>Ты, красавчик.подскажи как мне решить задачу?
если это мелкософтовское DI то у них есть фабрика на этот случай. где то.
Аноним 22/08/22 Пнд 20:51:00 #493 №2443148 
>>2443103
Хорошо, а нахуя нужны все эти манипуляции?
>Запихивают в качестве аргумента одно из полей, создают переменную и присваивают ей значение аргумента и больше ее не используют. Зачем использовать поле в качестве аргумента, если оно и так в поле видимости?
Аноним 22/08/22 Пнд 20:54:08 #494 №2443151 
>>2443114
Учить оба. API - это апи, MVC - подход к построению сайта и его апи
Аноним 22/08/22 Пнд 20:55:55 #495 №2443154 
>>2443148
Затем, что когда у тебя 15 объектов в методе писать new Pizda(150) проще, чем new Pizda(); pizda.Depth = 150
Аноним 22/08/22 Пнд 20:57:07 #496 №2443156 
>>2443114
Нужно начать с самого начала, няша.

Не буду слишком углубляться, так что начну с того что знать-понимать надо.
Смотри. Есть стек TCP/IP.
Что он делает. Он гарантирует, что если маршрут удасться найти за некоторое время - данные будут доставлены получателю без потерь и в том же порядке, в котором были отправлены. Это один из самых главных столпов на котором все стоит и потому он реализован практически везде. Т.о. ты, разрабатывая сетевое приложение с использованием данного стека протоколов - можешь не думать о том, как тебе пакетики пропихнуть в сетевуху и по проводам доставить до получателя, и получателю - не нужно думать о том, как ему собрать из каши байтиков что пришли - что-то полезное.
Так вот. Поверх этого стека - есть протокол HTTP. Это - протокол прикладного уровня. Он был придуман специально для пересылки гипертекста и работы веб-серверов. Данный протокол - позволяет довольно просто, хоть и не совсем оптимально - слать туды-сюды html, css, js и прочие картинки с членодевками, которые уже браузер распарсит и нарисует в виде какого-то элемента.
Так вот. Когда все это начиналось - быстро стало понятно, что делать миллионы страничек одинаковых - не вариант. Вот представь, у тебя тредик этот. Кто-то что-то запостил - нужно в создать копию документа и впендерить туды кусок текста который добавился, чтобы остальные люди, обновив страничку - увидели.
Так вот. Как ты понимаешь - начали люди репу чесать и придумывать, а как бы нам сделать так, чтобы не нужно было вот это вот делать. И появилось несколько решений. Решением от майков был такой вот монстр, как ASP(Active Server Pages). Это довольно мутная хрень была изначально. Да и то же самое удобнее - было делать на PHP, обмазовшись шаблонизаторами или даже не обмазываясь. А JS - в то время - был ну ооооооооооооооооооооооооооооооооооооооооооооооооооооооооч говно. Просто пиздец какое. Молод потому что. Но это не отменяет факта, что тогда он был говно.
Так вот. Годы шли, майки видели, что ASP - чет тоже говно. А вокруг - была тема с MVC штуками, все это себе тащили. Ну, майки тоже натянули на свой ASP - MVC, придумали там OWIN и прочую залупистику, нахуячили, значится слоев абстракции. Получилось опять говно, не не такое хуевое как изначальный ASP.
Но тут - умирает флеш и из-за этого - все ринулись прокчивать JS. И JS - взял, да и перестал быть говном. А тут - еще и мода на мобилки же - соответственно - нужно чтобы сайты на моиблках работали, ну, и собственно - прокачка JS стала еще более жесткой. Появились миллиарды фрейморков, котторые почти сразу дохли.
Но не в этом дело.
Дело в том. Что та инфраструктура которую придумали для того чтобы свои MVC'шные штуки рисовать майки - оказалась довольно крутой. Тут тебе и фильтры запросов, и атрибуты для авторизации и охуенный роутинг и все-все-все. Проблема только в том, что изначально оно пилилось для MVC, а потому - приходилось делать уродливую хуйню, если тебе-то по сути - как раз нужно в ангуляр json'ы гонять.
Молили люди, просили, умоляли. И майки таки почесали репу - сделали еще одну абстракцию - выпилив необходимость делать уродливую хуйню, чтобы жсоны гонять. Назвали это ASP.Net API. По сути - это просто было сегрегирование от всей хуйни связанной с Vew в отдельный тип контроллеров.
Собственно - я тебе дал краткую историю. Теперь - ты не запутаешься.
Аноним 22/08/22 Пнд 20:59:34 #497 №2443162 
во нашел падлюку
https://docs.microsoft.com/ru-ru/dotnet/api/microsoft.extensions.dependencyinjection.activatorutilities.createfactory
как же тяжко быть мультиязычным и вечно забывать что где у кого
Аноним 22/08/22 Пнд 21:13:14 #498 №2443176 
Мне нужно написать программулину для работы в консоли Линукса. Программа проста до безумия: открыть файл с картинкой в стандартном формате, отресайзить его и, допустим, скопировать поверх другого Canvas'а.

GDI под прыщами не работает. Microsoft официально предлагает три стула https://docs.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only#recommended-action :
- https://github.com/dotnet/Microsoft.Maui.Graphics
- https://github.com/SixLabors/ImageSharp
- https://github.com/mono/SkiaSharp

Приложение будет написано с нуля и заковано в docker-контейнер, поэтому версия .Net абсолютно не важна. Какой из трёх стульев выбрать?
Сам склоняюсь в Мауи, как к официальному решению от самого Майкрософт. Нужен ли Мауи доступ к видеокарте (её не будет в доккер-контейнере, тем более на прыще-сервере без физической видухи) для обозначенных действий? Что с остальными двумя?
Аноним 22/08/22 Пнд 21:15:04 #499 №2443178 
>>2443176
Мауи не работает под линукс. Возьми что-то другое
Аноним 22/08/22 Пнд 21:21:36 #500 №2443180 
>>2443176
Почему ты не можешь как человек использовать ImageMagick?
Зачем тебе апи от майков?
Если нужно чтобы была веб-ручка - на go/питоне скрип один написал и дергай сколько хочешь.
Все это в докер.
Аноним 22/08/22 Пнд 21:25:20 #501 №2443182 
>>2443180
> Почему ты не можешь как человек использовать ImageMagick?
Потому что в нём обнаружен критический недостаток.
Аноним 22/08/22 Пнд 21:26:32 #502 №2443184 
>>2443180
> как человек использовать ImageMagick
Этот вариант также рассматривался. Однако странно писать код на Шарпе, а для работы с графикой дёргать отдельную приложуху
Аноним 22/08/22 Пнд 21:31:22 #503 №2443186 
>>2443184
>Однако странно писать код на Шарпе, а для работы с графикой дёргать отдельную приложуху
Что тут странного?
Ну. Давай возьмем для примера ZABBIX. Они берут и без задней мысли SNMP.Net - дергают, веб-сервер на пыхе, опросник на сях, их собственный клиент - тоже на сях. Ничего. Как-то живут. Никто странным забикс не считает.
Аноним 22/08/22 Пнд 21:32:36 #504 №2443187 
>>2443186
>SNMP.Net
Блядь. Обшарповался. Net-SNMP
Аноним 22/08/22 Пнд 21:33:48 #505 №2443188 
>>2443186
раз уж ты знаешь как устроен Заббикс, подскажи, как там работает JS-виртмашина для пост-обработчика данных вида JavaScript?
Аноним 22/08/22 Пнд 21:41:11 #506 №2443191 
>>2443188
Когда я им интересовался настолько, что лез в исходники - меня больше интересовала их модель данных. Так что извини, тут не могу помочь.
Аноним 22/08/22 Пнд 21:43:43 #507 №2443192 
>>2443186
ну объективно же кривота:
пишешь на языке с тысячей ассамблер
@
для работы с картинкой используешь отдельную приложуху
Аноним 22/08/22 Пнд 21:44:00 #508 №2443193 
Разве обращение к стороннему приложению не занимает много времени?
Аноним 22/08/22 Пнд 21:50:19 #509 №2443200 
1661194219479.png
>>2443176
Пять секунд в нугете. В чём я неправ?
Аноним 22/08/22 Пнд 22:03:03 #510 №2443211 
>>2443156
Благодарю, анон. А что там в этом view в mvc? Там какой-то аналог жса и его фреймворков, чтобы рисовать страницы? Или туда точно так же впендюривается жс фреймворк? Если второе, то в чем разница с API, куда точно так же впендюрен жс фреймворк?
Аноним 22/08/22 Пнд 22:09:07 #511 №2443212 
ХХООСППАДДЕЕЕ IL КОД, ВСТАВКИ IL ПРЯМО В ЕБАЛО, РЕФЛЕКСИЯ, АСПЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ, РАНТАЙМ-КОМПИЛЯЦИЯ МММ.............................................СИШАРПИК <3!!!!!!!!!!!!!!!!!!!!!!!!!!!11
Аноним 22/08/22 Пнд 22:49:49 #512 №2443243 
>>2443211
У MS свой движок(сейчас их несколько), которые генерят странички.
Странички в конечном итоге - да, будут с JS, CSS, даже jQuery и прочее можешь туда напихать, но писать ты их будешь на как-бы шарпе, внутри инфраструктуры.
Типа в теории - тем кто хочет онли студией пользоваться - наверное и норм. Но я в свое время - попользовался, чет не возбудило.
Раньше связка .net+angular - форсилсяь. Мне нравилось. Сейчас - я стал старый и ленивый и мне больше нравится связка .net+vue.
Аноним 22/08/22 Пнд 23:02:48 #513 №2443250 
Хочу изучить ASP.NET, но не знаю как к нему подступиться и с чего начать. Очень сложно учиться, когда не знаешь что тебе надо знать, а впереди лишь книга на 1000 страниц. Какие темы нужно знать, чтобы:
1) Меня приняли работать за еду
2) Я смог написать условный двачик
Если есть какие-то планы, будьте добры, скиньте
Аноним 22/08/22 Пнд 23:10:53 #514 №2443257 
>>2443250
Если ты действительно смог написать "двачик", с поддержкой вебем, админками, созданием досок, настройками и прочим - то тебя уже возьмут за еду. Чтобы пруфать - разверни на дешманском хостинге - и крепи ссылку к резюме.
Аноним 22/08/22 Пнд 23:16:09 #515 №2443262 
>>2443243
Правильно я понимаю, что сейчас в основном юзают в большинстве случаев именно API? По вакансиям смотрю - MVC редко встречается, очень часто вижу какую-то REST архитектуру, а это вроде тоже API. В новомодных курсах (2021-2022 от Нила Каннингса) API используется и так далее.
Аноним 23/08/22 Втр 00:11:36 #516 №2443301 
>>2443257
Ты видать неправильно понял моё сообщение. Я поинтересовался, что мне нужно знать для условного двача
Аноним 23/08/22 Втр 00:35:44 #517 №2443307 
>>2443262
В новых и относительно недавних проектах, по моему опыту - да.
Для внтутренних нужд - могут вообще - вебформы вспомнить. Так что минимальное понимание того, как все это работает - в любом случае нужно.
Аноним 23/08/22 Втр 01:07:06 #518 №2443317 
Я собираюсь вкатываться на работу примерно весной. Вижу, что Кор 3.1 в начале декабря уже этого года будет выпилен с поддержки. Значит ли это, что мне уже можно ориентироваться на 6 версию? Активно ли компании будут перекатываться с 3.1 на 6 после окончания саппорта? Понятно, что кто-то еще сидит даже не на последних версиях .нет фреймворка, но я к таким не хочу.

>>2443307
Я слышал, что вебформы — это лютый устаревший пиздец какой-то. Зачем страдать, если можно не? Есть же всякие Блейзоры например, тот же MVC.
Аноним 23/08/22 Втр 02:04:59 #519 №2443326 
>>2443317
> Активно ли компании будут перекатываться
Нет. Но их не нужно спрашивать
Аноним 23/08/22 Втр 02:07:11 #520 №2443327 
>>2443250
> 2) Я смог написать условный двачик
Ну ты загнул. В первую очередь тебе надо знать архитектуру. И принципы кеширования
Аноним 23/08/22 Втр 07:56:09 #521 №2443370 
aspnetcore-developer-roadmap[1].png
>>2443250
Аноним 23/08/22 Втр 08:08:37 #522 №2443375 
>>2442912
>они её и подкинули
Они на момент съёмки туда даже не входили, а снимал украинец.
>Я не твоя батя-членодевка.
Разумеется мой батя не говно и не членодевка, а вот ты - несомненно.
Аноним 23/08/22 Втр 08:28:29 #523 №2443385 
>>2443262
В нашем продукте, например, есть простенький интерфейс для админов на MVC, остальные общаются по апишке
Аноним 23/08/22 Втр 08:41:41 #524 №2443390 
изображение.png
Есть тут хорошо знающие wpf? Как мне привязать CaptionHead к высоте первого ряда грида?
Аноним 23/08/22 Втр 08:46:05 #525 №2443391 
>>2443390
через code-behind
Аноним 23/08/22 Втр 08:47:41 #526 №2443394 
>>2443391
Не хотелось бы нарушать принцип mvvm
Аноним 23/08/22 Втр 08:48:25 #527 №2443396 
>>2443394
не нарушаешь же
Аноним 23/08/22 Втр 08:56:12 #528 №2443400 
>>2443396
Разве? Да и если честно не особо понимаю, как это реализовать в коде. На пике же стиль.
Аноним 23/08/22 Втр 09:13:51 #529 №2443406 
>>2443400
>Разве?
да. в мввм вм не должен знать про вид. он и не знает.
Вот если бы вьюмодель хранила бы высоту у себя или вообще знало про грид - было бы нарушение

а код-бихайнд это вид и там он может творить что угодно с собой.
Аноним 23/08/22 Втр 11:59:40 #530 №2443589 
>>2443370
По этой мапе нихуя толком не выучишь и не поймешь. Отдельные куски не имеют смысла без понимания, как оно все вместе работает и зачем.
Аноним 23/08/22 Втр 15:14:42 #531 №2443732 
1661256881590.mp4
>>2443589
Мы вам перезвоним.
Аноним 23/08/22 Втр 15:49:11 #532 №2443760 
Там в ньюсаче пишут, что джетбрейнс ушёл из России.
Что будет с райдером?
Кто юзал?
Дискасс.
Аноним 23/08/22 Втр 16:21:32 #533 №2443795 
>>2443760
Будет как и всегда
Аноним 23/08/22 Втр 16:40:10 #534 №2443810 
>>2443760
Купить подписку было невозможно еще после ухода визы и мк, так что все эти официальные уходы ничего не меняют. Можно сбрасывать триал с помощью новых ящиков, можно купить трехмесячный триал на все продукты, можно попросить купить работодателя.
Аноним 23/08/22 Втр 16:48:47 #535 №2443812 
Пацаны. Создаю новый проект. Хочу использовать Git flow. Но тут вопрос, первой веткой должна быть ветка main или develop? Если первой должна быть main, тогда в какой момент создать develop? Допустим, в первом коммите будет только .gitignore. В следующем коммите создам вижуал студио проект. Второй коммит уже должен в develop попасть?
Аноним 23/08/22 Втр 16:53:20 #536 №2443815 
>>2443812
Ты сам в скрипте настраиваешь ветку. Можно вообще не указывать, тогда скрипт будет для всех выполняться.
Аноним 23/08/22 Втр 17:00:56 #537 №2443820 
>>2443812
> Допустим, в первом коммите будет только .gitignore. В следующем коммите создам вижуал студио проект. Второй коммит уже должен в develop попасть?
Да.
>>2443815
Какой ещё скрипт? Он про процесс разработки Git flow спрашивает, а не про девопс.
Аноним 23/08/22 Втр 17:27:05 #538 №2443832 
image.png
Господа, можете посоветовать что-то похожее на пикрил? Тут ее неоднократно хвалили и говорили, что после ее полного прочтения можно смело идти в джуны. Но к сожалению, мне не хватает английского, чтобы свободно ее читать и это весьма сомнительное удовольствие по полчаса переводить каждую страницу, тем более после начала ООП.
Аноним 23/08/22 Втр 19:01:09 #539 №2443935 
>>2443812
Первой должна быть master. Не используй main, куколдом станешь.
Аноним 23/08/22 Втр 19:21:05 #540 №2443945 
>>2443935
Двачаю этому.
Аноним 23/08/22 Втр 19:24:22 #541 №2443950 
>>2443935
trunk
Аноним 23/08/22 Втр 19:51:26 #542 №2443973 
>>2443375
>Они на момент съёмки туда даже не входили, а снимал украинец.
Пруф шо это украинец, а не подхуйловские буряты и дыровцы.
Или тебе хуйло по телеку в зацензоренной рашке так сказало, и ты сюда это сразу принёс, из своей грязной казармы, где ты сосёшь хуй дряблому мойору, за дозу бутирата?

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

Лучше не пизди а мультикаст ебучий мне давай, фикси. Мультикаст сам себя не зафиксит, его надо фиксить.
Аноним 23/08/22 Втр 19:53:30 #543 №2443976 
Посмотрел я значит вот это видео: https://www.youtube.com/watch?v=oKYcv2Xr9zY&t=1046s Вроде бы понятно, что к чему, но вроде бы нихуя непонятно. А нихуя непонятно, потому что нужен пример с рабочим кодом. Собственно, что можете посоветовать почитать/посмотреть по поводу трёхзвенной архитектуры? Желательно с рабочим примером.
Аноним 23/08/22 Втр 19:57:39 #544 №2443980 
>>2443976
На, смотри про паттерны вот тут. https://www.youtube.com/watch?v=92k-3UItBoU&ab_channel=AndreyShyrokoriadov
Аноним 23/08/22 Втр 19:58:15 #545 №2443981 
>>2443980
>про паттерны
Солид хотел сказать. Но и про паттерны тоже
Аноним 23/08/22 Втр 20:00:05 #546 №2443985 
>>2443981
Спасибо, солид я вроде более-менее понимаю
Аноним 23/08/22 Втр 20:05:27 #547 №2443988 
>>2443985
Не будь так уверен.
Аноним 23/08/22 Втр 20:15:59 #548 №2443997 
>>2443832
>говорили, что после ее полного прочтения можно смело идти в джуны
Пиздят. Я недавно полностью ее прошел и до джуна еще как до пекина. Надо учить фреймворк (в моем случае асп), базы данных, паттерны, алгоритмы и структуры данных, подтягивать множество отдельных пробелов и недопонятых вещей. На русском аналогов не видел и их скорее всего нет. Но вроде как четвертое издание есть переведенное, попробуй поискать. Книжка в целом хорошая, задания прикольные, но местами объяснения хромают. Я например нихуя не понял про делегаты, эвенты и асинхронку, хотя перечитывал эти темы несколько раз.
Аноним 23/08/22 Втр 20:18:43 #549 №2444001 
Анон, зачем многие компании используют SQL Server? Он же винда-онли, а это автоматически означает, что оно дырявое как решето и о какой-либо безопасности данных в данной бд даже речи идти не может. К тому же, майки отсюда валят.
Аноним 23/08/22 Втр 20:19:29 #550 №2444002 
>>2444001
Красноглазище...
Аноним 23/08/22 Втр 20:22:56 #551 №2444006 
>>2444001
> Он же винда-онли
Ты уверен в этом?
> К тому же, майки отсюда валят.
Оракл ещё раньше свалил и забрал лучшую СУБД всех времён и народов. Остался только постгрес и всякие ноунеймы типа nosql.
Аноним 23/08/22 Втр 20:55:27 #552 №2444042 
>>2444006
>Ты уверен в этом?
Так написано на сайте майков и в гугле. Так прямым текстом и написано: "Windows-only".

>Остался только постгрес
Он вроде как годный и довольно шустрый. И точно дает хоть какую-то безопасность.
Аноним 23/08/22 Втр 21:03:31 #553 №2444048 
>>2444001
Юзай фаербёрд. Будь чедом, блеать.
Аноним 23/08/22 Втр 21:06:04 #554 №2444050 
>>2444048
Такая себе гитарка, своеобразная, мне не очень заходит. А к SQL Server это как относится?
Аноним 23/08/22 Втр 21:23:23 #555 №2444058 
.png
>>2444042
Аноним 23/08/22 Втр 21:28:33 #556 №2444066 
>>2444050
> гитарка
Хуярка.
Пять секунд в нугете https://www.nuget.org/packages/EntityFramework.Firebird
Дальше сам.
Идиотина патлатая, блять.
Аноним 23/08/22 Втр 22:06:27 #557 №2444107 
>>2444066
Идиотина здесь ты, потому что при чем тут я, когда субд выбирается компаниями?

>>2444058
Так, вижу. Странно, что есть поддержка бубунты, но нет очевидного дебиана. Или оно и на дебе работать будет? Но самый главный вопрос: эта поебота настолько же дырявая как винда или тут они смогли?
Аноним 23/08/22 Втр 22:12:22 #558 №2444111 
>>2444107
> Странно, что есть поддержка бубунты, но нет очевидного дебиана
Можно и на дебиан. Да кому это всё нужно, если есть поддержка докера, который хоть на Gentoo ставь.
Аноним 24/08/22 Срд 03:06:05 #559 №2444243 
>>2444048
внезапно хорошая база, просто в рекламу не умеют
Аноним 24/08/22 Срд 04:31:45 #560 №2444246 
image.png
image.png
На 2-ом пике ГарбажеКоллектор соберёт а1 и б1, если не отписываться от ивента?
Аноним 24/08/22 Срд 05:21:16 #561 №2444252 
>>2444246
не усложняй.
если не остается внешних ссылок (и оно не в исполнении) - то кандидат на сбор. Циклические ссылки значения не имеют.
Аноним 24/08/22 Срд 07:19:07 #562 №2444263 
>>2442809
Там какая-то хуйня с LocalPeerDiscovery:
https://github.com/username1565/CSharpServers/blob/1663b16e9d8dc3292fb427df94f59db66b1e843f/Peer.cs#L142-L149

Тут: https://github.com/username1565/CSharpServers/commit/1663b16e9d8dc3292fb427df94f59db66b1e843f#commitcomment-81891501
я написал, что что-то с мультикастом.

Короче,
думал сделать TCP-UDP-Multicast сервер и всё на одном IP-порту,
но когда биндишь мультикаст-receiver на 0.0.0.0 (IPAddress.Any)
он начинает прослушивать все айпишники на всех сетевых интерфейсах.
Получается, когда приходит мультикаст-запрос, с каждого IP, пиздуют ответы, и их много, и их надо обработать все.

поэтому, хуй знает, как лучше сделать.
Походу TCP/UDP сервер - на одном порту,
а Multicast-server (receiver) - на другом порту,
и отдельным методом мультикаст-запросы отправлять на него.

Но это не точно.
Аноним 24/08/22 Срд 09:59:00 #563 №2444297 
>>2443832
>удовольствие по полчаса переводить каждую страницу
Как раз выучишь англ
мимо так и сделал
Аноним 24/08/22 Срд 11:08:44 #564 №2444353 
>>2443997
>Я например нихуя не понял про делегаты, эвенты и асинхронку, хотя перечитывал эти темы несколько раз

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

>>2443832
>можно смело идти в джуны
Нет, вот этот все верно говорит >>2443997
А еще шарписты как правило фуллстеки, так что и js возможно придется учить.
Аноним 24/08/22 Срд 11:40:58 #565 №2444368 
>>2441254
>это просто маркетинговая заглушка, мол, у нас есть типа машинное обучение
this

Весь машоб/анализ данных это всегда Python, иногда R, и С++ для какого-нибудь компьютерного зрения.

Сишарп, джава, го, раст для этих целей никак не используются.
Аноним 24/08/22 Срд 13:17:53 #566 №2444433 
image
Вы используете двустрочную форму записи IF или всегда ставите { }? А для циклов? Каким правилам следуете? На пике правила разработчиков дотнета.
Аноним 24/08/22 Срд 14:33:07 #567 №2444474 
Очень тупой вопрос, но я чет не могу понять. Куда устанавливаются нугет пакеты? В проект, в иде, в ось?
Аноним 24/08/22 Срд 14:34:28 #568 №2444475 
>>2444111
Я верно понимаю, что докер - это такая микро-виртуалка с установленной осью и всеми нужными зависимостями, которая может крутиться хоть в любой оси, хоть на хую?
Аноним 24/08/22 Срд 14:54:25 #569 №2444485 
>>2444474
В профиле пользователя есть папочка
И еще одна в програм файлес
Аноним 24/08/22 Срд 15:06:21 #570 №2444498 
>>2444475
Не совсем виртуалка, но смысл такой.
Аноним 24/08/22 Срд 15:38:19 #571 №2444513 
борщ, шарпач, хочу захардкодить 200 объектов типа string.
они никогда не будут меняться, но я буду потом их использовать на других коллекциях через что-то вроде .Except(200string).
как лучше поступить?
все string в один массив?
можно ли как-то хешировать это?
Аноним 24/08/22 Срд 16:44:44 #572 №2444574 
>>2444433
> всегда ставите { }
да
> для циклов?
Тоже да. Без вариантов. Нотация без скобок вообще должна быть запрещена
Аноним 24/08/22 Срд 16:50:33 #573 №2444581 
>>2444475
Доккер это система виртуальных контейнеров, где контейнер запускается из коллекции изображений, настаканных друг на друга как блины. Каждое изображение является расширением какого-то другого (кроме самого базового). В изображении хранятся файлы, скопированные в него единожды при сборке изображения. А также настройки какую программу и как стартовать в контейнере.
Ты можешь взять любое изображение и расширить его, добавляя новый блин поверх этого. Вот как выглядит типовой скрипт сборки (Dockerfile) от Майкрософт
https://docs.microsoft.com/en-us/dotnet/core/docker/build-container?tabs=windows#create-the-dockerfile
Аноним 24/08/22 Срд 16:57:40 #574 №2444592 
>>2444513

HashSet<string> если уникальные значения, они хэшируются и дохера методов для сравнения по значению и с другими коллекциями.
Хз, впрочем, на экспертизу не претендую - сам вкатываюсь из джавы.
Аноним 24/08/22 Срд 17:26:49 #575 №2444611 
Capture.JPG
>>2444592
о!
спасибо. нашел, сделал вот так.
Аноним 24/08/22 Срд 17:37:09 #576 №2444618 
>>2444611
я бы лучше как ICollection<string> обозначил. У тебя уже готовая коллекция в памяти, а не просто поток из айтемов
Аноним 24/08/22 Срд 17:49:50 #577 №2444633 
>>2444513
Юзай static класс с const. Это нормальная практика когда у тебя супер дохуя стринговых констант в приложении.
Аноним 24/08/22 Срд 18:08:52 #578 №2444648 
Что почитать на тему взаимодействия ч винапи?
Аноним 24/08/22 Срд 19:21:56 #579 №2444711 
>>2444485
Что за профиль пользователя? Олсо, какой програм файлес, если я на линуксе? Я просто хотел понять, вот открою я свой проект на другом компе - мне надо будет снова ставить все нюгеты для него?
Аноним 24/08/22 Срд 19:25:28 #580 №2444712 
>>2444711
>Олсо, какой програм файлес, если я на линуксе?
у меня тот же вопрос - нахера делать эту вторую папку если есть уже в профиле.

ну а так - придется конечно. А вот ты клонишь проекты с гитхаба, там же никаких либ нет, только код, а студия сама все ставит.
Так и тут будет
Аноним 24/08/22 Срд 19:49:25 #581 №2444721 
>>2441456
У меня в бейсике нижний прочерк иногда игнорируется, типа
MySpanWrapper и _MySpanWrapper может посчитать одним и тем же, хотя нет никаких правил, чтобы так считать.

А в шарпе распознает Async. В общем, студия читает все твои названия, и чем выше версия, тем больше студия сует туда нос. Особенно я это заметил как раз в шарпе.
Аноним 24/08/22 Срд 20:08:10 #582 №2444729 
>>2444513
Двачую этого >>2444633
Даже сами майки в том же кестрелле так же делают, для сообщений логов
Аноним 24/08/22 Срд 21:09:10 #583 №2444751 
>>2444633
>>2444729
а как это сделать? у меня он ругается если константой пытаюсь сделать
Аноним 24/08/22 Срд 21:17:47 #584 №2444755 
Я правильно понимаю, что для того чтобы делать какие-то сайтики на ASP.NET, мне нужно знать ещё и CSS, HTML и JS?
Аноним 24/08/22 Срд 21:30:30 #585 №2444770 
>>2444755
ЖС можно не знать.
А вот ЦСС И ХТМЛ тебе конечно надо знать. Чтобы делать сайты на любом языке тебе нужны ХТМЛ и ЦСС
Аноним 24/08/22 Срд 23:13:24 #586 №2444834 
>>2444770
Вот в жабе есть никому не нужные Vaadin и GWT, там аебхуйня пишется полностью на жабе, потом из этого генерируются HTML/CSS/JS (хотя на них тоже можно писать в дополнение к жабе). Разве блазор не умеет так?
Аноним 24/08/22 Срд 23:17:26 #587 №2444840 
Посоны, чёт я запутался.
Поясните за DateTime и DateTimeOffset (и NodaTime) в контексте Npgsql 6 и постгресовских timestamp и timestampz.
Как сделать чтобы заебись было и писалось/забиралось то время которое пришло?
Аноним 24/08/22 Срд 23:37:39 #588 №2444847 
>>2444834
> потом из этого генерируются HTML
Какой же там оверхед...
Аноним 25/08/22 Чтв 00:04:37 #589 №2444860 
>>2444711
При автоматическом билде всегда производится рестор - дотнет скачивает все пакеты и находит локальные зависимости.
Можно при желании делать рестор ручками - dotnet restore
Аноним 25/08/22 Чтв 00:27:54 #590 №2444879 
>>2444721
Ну в VBA нижнее подчеркивание перед переменными, классами, функциями нельзя писать.
А ещё он не различает большие и маленькие буквы.
Аноним 25/08/22 Чтв 02:02:43 #591 №2444894 
>>2444711
> какой програм файлес, если я на линуксе?
~/.dotnet или ~/.nuget поищи
Аноним 25/08/22 Чтв 02:05:27 #592 №2444896 
Какой VBA? Вы зачем на VBA пишете? Вы макросы для Ворда пишете? Зачем? Вы наркоманы? Какой Бейсик? Его полностью вытеснил Шарп из всех областей кроме макросов, которые не нужны, потому что офис не нужен, потому что гугл доки
Аноним 25/08/22 Чтв 02:24:13 #593 №2444898 
>>2444896
Чо гугл доки, шиз? Если надо часто заменять в указанной таблице в документе 50 фраз на 50 других фраз, в гугл доках ты будешь это проделывать вручную, а в офисе можешь за полчаса высрать макрос и забыть. Любая Зина из бухгалтерии тебя нахуй пошлёт за попытку впарить ей ущербнве гугл доки, к которым даже нет доступа из внутренней корпоративной сети, где нет интернета.
Аноним 25/08/22 Чтв 02:53:16 #594 №2444903 
Аноны, а для чего нужны гетеры и сетеры? Как я понял, у них практически такой же функционал как и у конструкторов. Вызываешь в мейне, в качестве аргументов впихиваешь нужные данные. Получаешь нужные значения в полях. В чем их смысл-то?
Аноним 25/08/22 Чтв 04:14:56 #595 №2444925 
>>2444903
У них вообще разные назначения. Конструктор вызывается при создании объекта. Свойства нужны для чтения или записи значения поля. При этом, в свойствах можно разместить дополнительную логику.
Аноним 25/08/22 Чтв 05:46:31 #596 №2444934 
1.png
>>2444751
Аноним 25/08/22 Чтв 08:12:28 #597 №2444963 
Какой фреймворк используют майки для интерфейса одиннадцатой винды? Или на винапи всё пишут?
Аноним 25/08/22 Чтв 09:25:00 #598 №2444988 
>>2444903

Это философия ООП, гугли "инкапсуляция".
Впрочем, я уже почти 2 года как вкатываюсь и до сих пор до конца не понимаю нахуя она нужна.
Аноним 25/08/22 Чтв 09:49:45 #599 №2445002 
>>2444711
> Что за профиль пользователя?
> я на линуксе
Линуксоиды, которых мы заслужили.
Аноним 25/08/22 Чтв 11:59:32 #600 №2445076 
изображение.png
Что они имею в виду? Wpf фреймворк, и asp net тоже фреймворк.
Аноним 25/08/22 Чтв 12:12:09 #601 №2445097 
>>2445076
Дотнет - это сам себе фреймворк. И от тебя хотят либо знание древнего проприетарного дотнета 4.8, либо современного дотнет кора или 5/6.
Аноним 25/08/22 Чтв 12:18:45 #602 №2445102 
>>2445097
Разве между ними такая большая разница?
Аноним 25/08/22 Чтв 12:22:52 #603 №2445108 
>>2445076
Ну назови их "стандартная библиотека". Суть не изменится.

>>2445102
4.8 застрял на старой версии шарпа и в нем есть компоненты, которые в кор просто выброшены были. Но если ты его знаешь, значит легко перейдешь на кор
Аноним 25/08/22 Чтв 12:33:12 #604 №2445113 
>>2445097
>>2445108
Спасибо за ответы. А что могут спрашивать у джуна на собесе именно по дотнету?
Аноним 25/08/22 Чтв 12:36:19 #605 №2445117 
image.png
>>2444894
>>2444711
В .dotnet
Аноним 25/08/22 Чтв 12:40:20 #606 №2445120 
>>2444988
> Это философия ООП, гугли "инкапсуляция".
Вообще мимо
> для чего нужны гетеры и сетеры?
Несколько назначений:
1. Для пре- и пост-обработки данных, которые ты втыкаешь в филды
2. Для создания виртуальных полей с авто-калькулируемыми данными. Например, у тебя есть сущность пользак, у него есть реальный филд "дата рождения", а в своём филде public int Age {get;} ты можешь калькулировать автоматом его возраст. Это реально удобно

only setter properties кстати не нужны, пишите методы.
Аноним 25/08/22 Чтв 12:42:05 #607 №2445123 
Свойство ведь по сути синтаксический сахар, заменяющий методы GetValue() и SetValue() в каких нибудь крестах.
Аноним 25/08/22 Чтв 13:35:33 #608 №2445143 
>>2445123
90% современного шарпа есть синтаксический сахар. Начиная от switch и заканчивая async
Аноним 25/08/22 Чтв 14:29:15 #609 №2445172 
>>2445120
>Несколько назначений

Тут как в анекдоте — объяснить я и сам могу... ;)
Аноним 25/08/22 Чтв 14:32:19 #610 №2445174 
Аноны, меня мучает вопрос - как правильно тестировать CRUD операции (в EF Core например). Везде инфа только про то, что можно использовать для тестов - т.е моки, InMemory Database, и тд. Ну либо я тупой и не нашёл, хотя гуглил уже даже на русском.
А меня интересует как должны выглядеть именно хорошо написанные тесты круд операций, к примеру что метод Create должен создать только 1 запись в бд и не затронуть другие и тд. Помогите, дайте каких-нибудь ссылок.
Аноним 25/08/22 Чтв 15:37:03 #611 №2445199 
изображение.png
Почему так? Операция "==" отвечает же за сравнение ссылок, а метод Equals() за сравнение значений. Как так? Ссылки-то разные.
Аноним 25/08/22 Чтв 15:48:41 #612 №2445215 
>>2445172
Польза геттеров сеттеров очевиднее чем 2*2=4
Аноним 25/08/22 Чтв 15:50:26 #613 №2445220 
>>2445199

Не знаю как в шарпе, но скорее всего это реализовано примерно так же как в джаве.
В джаве в памяти есть стринг пул, и если в переменных хранится одинаковая не сильно длинная строка, то он указатели обоих переменных на нее выставляет.
Аноним 25/08/22 Чтв 15:52:42 #614 №2445225 
>>2445199
>Операция "==" отвечает же за сравнение ссылок
Кто сказал этот бред?
Аноним 25/08/22 Чтв 15:54:57 #615 №2445229 
>>2445225
https://www.youtube.com/shorts/KAhG6475VWc
Аноним 25/08/22 Чтв 16:00:53 #616 №2445236 
>>2445229
Ты невнимательный
Аноним 25/08/22 Чтв 16:06:12 #617 №2445242 
изображение.png
>>2445236
Окей c object оно работает. Но почему не работает со строкой?
Аноним 25/08/22 Чтв 16:07:52 #618 №2445244 
>>2445242
потому что у строки перегружен оператор == который сравнивает по значению

а видео бредовое. == не сравнивает по ссылке. это у object реализация такая сравнения.
а в конкретном типе он может быть перегружен как душе угодно
Аноним 25/08/22 Чтв 16:08:43 #619 №2445245 
>>2445244
воооо, теперь-то всё встало на места. Спасибо
Аноним 25/08/22 Чтв 16:15:30 #620 №2445257 
>>2445245
интересно как автор видео пояснит это
internal class Foo
{
public static bool operator ==(Foo a, Foo b) => false;

public static bool operator !=(Foo a, Foo b) => false;
}

var foo = new Foo();
Console.WriteLine($"{foo==foo}");

>false
Аноним 25/08/22 Чтв 16:52:58 #621 №2445288 
>>2445257
Я чёт совсем забыл, что модно переопределять операторы сложения/вычитания/сравнения
Аноним 25/08/22 Чтв 17:01:01 #622 №2445296 
>>2445288
>>2428235 →
Еще вот такой прикол есть, с неявным переопределением оператора присваивания
Аноним 25/08/22 Чтв 21:39:35 #623 №2445495 
0Male-hands-hold-measuring-tape-to-crotch.jpg
Давайте попроектируем абстрактно.
Допустим, будем придумывать облачную систему менеджмента ресурсов.
Под ресурсами понимаем - любую хуйню, которую можно как-то измерить.

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

Ну, допустим кейс: мы измеряем количество топлива в самолете, и если количество топлива приближается к границе - отправляется уведомление диспетчеру, чтобы тот 1. Предупредил пилота, 2. Уже готовил команду для дозаправки.
Или другой кейс - при приближении к нижнему порогу количества чернил в принтере - уже состовляется заявка на замену картриджа, и в момент исчерпания реусрса картриджа - уже бежит эникей заменять.

Так вот. Какие сущности вижу я:

1. Нам нужна некая система именно что измерений. Тип измерения - абстрактный, содержит в себе только имя, и опционально - описывает метод проверки на нуль и сравнения значений. Сами измерения представляют из себя сущность вида: Метка времени, тип измерения, значение.
2. Нам нужна некая система профилей измерений для разных сущностей. Некое описание объекта, через его измерения.
3. Нам нужен канал получения данных. Это может быть некий протокол сетевой, может быть ручной ввод, может быть рассчитанное значение. Все это должны быть каналы получения данных. Данные отсюда - не знают что они такое.
4. Именно поэтому нам нужен некий интерпритатор/форматтер, который полученные данные из канала - преобразует к измерению.
5. Дальше - нам нужна некая система триггеров и пороговых значений. Ну, тут все просто. Имеем профиль, а дальше дело техники.
6. Нужна некая система действий. Простейший вид - действия определены заранее(отправить сообщение, воспроизвести звуковой сигнал). Чуть более сложный - действия можно комбинировать. Совсем сложный - пользователь может сам создавать действия на основе некоего графического языка программирования.

Вот так я это вижу.
А как бы вы такое спроектировали, шарпаны?
Аноним 25/08/22 Чтв 22:54:18 #624 №2445561 
>>2444111
А тут случаем никто не знает, как на Дебиан поставить? Я попробовал по инструкции с сайта майков на Убунту, но оно пишет, что нету у них пакетов для дебиана. Докер пока не, мне бы просто экспресс пока поставить для тренировок sql и ef, с докером тут наверное сложности возникнут.
Аноним 25/08/22 Чтв 22:56:46 #625 №2445562 
>>2445561
Где-то были инструкции от индусов, как ставить именно на дебиан.
Аноним 26/08/22 Птн 00:47:25 #626 №2445619 
ПЕРЕКАТ >>2443253 (OP) (OP)
ПЕРЕКАТ >>2443253 (OP) (OP)
ПЕРЕКАТ >>2443253 (OP) (OP)
ПЕРЕКАТ >>2443253 (OP) (OP)

Ебаная моча, ты хули тред не закрепишь?
sage[mailto:sage] Аноним 26/08/22 Птн 00:50:45 #627 №2445623 
>>2445619
Репорт.
Аноним 26/08/22 Птн 02:13:04 #628 №2445639 
>>2444574
>Нотация без скобок вообще должна быть запрещена
Почему?
Аноним 26/08/22 Птн 03:20:54 #629 №2445650 
>>2445639
потому что становится возможной неправильная интерпретация кода
Аноним 26/08/22 Птн 04:12:02 #630 №2445654 
>>2445650
ну разве что слепошарому. скобки раздувают код, что меньше влазит на экран.
Плохо читается if () ... на одной строке если это не проверка предусловий, а в остальном если это один уровень вложенности и нет кучи условий, то скобки нахер не нужны.
Аноним 26/08/22 Птн 04:13:15 #631 №2445655 
>>2445619
>ПЕРЕКАТ >>2443253 (OP) (OP) (OP)
да. зови их НЕСЧАСТНЫХ сюда.
Аноним 26/08/22 Птн 10:13:58 #632 №2445744 
Я когда лабы на джаве писал, мне было неприятно из-за бойлерплейта и отвратительной системы пакетов и сборки. А тут всё по кайфу ежже
sage[mailto:sage] Аноним 26/08/22 Птн 10:20:53 #633 №2445753 
ЛЕГЕТИМНЫЙ ПЕРЕКАТ
>>2445746 (OP)
>>2445746 (OP)
>>2445746 (OP)
>>2445746 (OP)
Аноним 27/08/22 Суб 06:43:57 #634 №2446720 
Есть ли будущее у шарпа сейчас в нашей стране? Почему не стоит бежать сейчас на котлин?
Аноним 27/08/22 Суб 10:10:59 #635 №2446807 
>>2446720
Все есть, но в основном только в продуктовых компаниях кмк.
Аноним 27/08/22 Суб 18:38:08 #636 №2447371 
>>2446807
>кмк
Кабельные металлические конструкции
Казанский медицинский колледж
Крымский многопрофильный колледж
тупое зумерье детектед
Аноним 28/08/22 Вск 09:35:29 #637 №2447850 
>>2447371
Как мне кажется блять
Можно ещё имхо писать, только это пендосская тема
дед, пей таблетки
Аноним 29/08/22 Пнд 00:29:51 #638 №2448908 
>>2447371
> зумерье
> детектед
Душнила, ты либо сам не юзай сленг, либо не выёбывайся.
Аноним 29/08/22 Пнд 03:30:38 #639 №2448965 
>>2448908
Слово не становится сленгом, если его стали использовать 1,5 зумера.
comments powered by Disqus

Отзывы и предложения