Главная Юзердоски Каталог Трекер NSFW Настройки

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 639 79 109
C# Тред #38 /csharp/ Аноним 14/08/22 Вск 10:26:02 2433268 1
image.png 557Кб, 868x946
868x946
image.png 90Кб, 500x500
500x500
Тред лучшего языка на планете.

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 2433269 2
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 2433305 3
Кортежи медленнее классов?
Аноним 14/08/22 Вск 11:10:26 2433310 4
>>2433305
Хз, но если да, то разрабы ДАУНЫ
Аноним 14/08/22 Вск 11:15:18 2433313 5
>>2433310
Заметил, что за последние несколько дней появился петрсоян.
Аноним 14/08/22 Вск 12:40:10 2433403 6
>>2433269
Найс шапку пофиксил кста, пиздабол.
Аноним 14/08/22 Вск 12:57:58 2433429 7
>>2433403
Скажи как пофиксить, а я пофикшу.
Аноним 14/08/22 Вск 14:35:49 2433572 8
>>2433305
Кортежи быстрее, т.к. это структуры по сути
Аноним 14/08/22 Вск 14:36:21 2433573 9
Ура блять дашчан починил наконец-то
Аноним 14/08/22 Вск 14:42:16 2433587 10
image.png 24Кб, 1017x90
1017x90
image.png 46Кб, 801x472
801x472
Здравствуйте. Есть идеи как заполнить такой словарь Dictionary<string, Dictionary<string, decimal>>?
Данные беру их XML, для обычного Dictionary<string, string> всё легко, а тут хз что делать. Нужно получить словарь, как на первом пике. На втором пике код, который работает на обычном словаре ключ => значение.
Аноним 14/08/22 Вск 14:48:47 2433599 11
изображение.png 9Кб, 1167x54
1167x54
Почему ругается?
Аноним 14/08/22 Вск 14:55:35 2433613 12
Можно ли определить тип переменной как число?
Аноним 14/08/22 Вск 15:13:46 2433638 13
>>2433613
Берёшь double/decimal и норм
Аноним 14/08/22 Вск 15:14:45 2433640 14
>>2433587
Через обычный add пробовал?
Аноним 14/08/22 Вск 15:27:22 2433676 15
>>2433640
залупа какая-то получается...
Аноним 14/08/22 Вск 15:33:47 2433694 16
>>2433587
.ToDictionary(x => x.Key, x.ToDictionary(y => y.Hui1, y => y.Hui2))
Аноним 14/08/22 Вск 15:33:54 2433695 17
>>2433638
Можно подробнее?
Вот есть тип String. Как мне выразить тип через число? Естественно, суть данной затеи в экономии передаваемых байт.
Аноним 14/08/22 Вск 15:38:16 2433714 18
>>2433695
int i = 5;
decimal d = 5.0m;
float f = 5.0f;
double d = 5.0d;
Аноним 14/08/22 Вск 15:48:25 2433736 19
>>2433714
В мою функцию приходит какие-то данные в формате Object. Я не знаю что за данные.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Это норм код. Не пытайся изменить это, пиши свич-кейсы. Всё правильно делаешь в таком случае
Аноним 15/08/22 Пнд 21:12:52 2435255 95
>>2435238
Так у меня на выходе из функции тип Object, а не соответствующий сконвертированным данным.
Аноним 15/08/22 Пнд 21:25:05 2435262 96
>>2435255
Сделай метод дженерик и возвращай его
Аноним 15/08/22 Пнд 21:29:13 2435265 97
>>2435262
но конкретный тип дженерика я должен объявить при вызове функции, а как я это сделаю, если я до ее вызова не знаю какой тип.
Аноним 15/08/22 Пнд 21:37:45 2435274 98
>>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 2435282 99
>>2435197
Ну так а ты коммиты делал? В коммиты все файлы проекта добавлял? На прошлых коммитах работает?
Покажи-ка что там по истории коммитов в обоих ветках.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Возникла другая проблема. Мощной обвязки для управления ресурсами из ВПФ там похоже тоже нет. Ну знаете, все эти статик-ресурс-дикшионари и т.п. Курб мануалы дальше. А то окажется что я опять ССЗБ.
Аноним 18/08/22 Чтв 19:28:57 2438605 230
>>2438565
>там похоже тоже нет
где ТАМ?
Аноним 18/08/22 Чтв 19:39:31 2438615 231
image.png 46Кб, 877x270
877x270
Ситуация хелп, ситуация соси. Имеется словарь 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 2438616 232
>>2438348
>Я заика, и это явно будет влиять на решение о принятии меня на работу.
На самом деле нет. Я работал с людьми с разными дефектами речи, в том числе и с заиками. Сейчас только конченые мудаки по такому параметру отсеивают.
Просто заранее, первом общении с HR, предупредишь ее, что имеешь такую особенность и все, она уже уведомит основного интервьюера.
В софтскилах главное чтобы ты мог формулировать мысль, нормально рассуждать без пустых выебонов и не быть душнилой.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

...

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

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

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

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

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

Так что учи и не парься, но только если идешь в сторону веба. По идеешкам: если студия станет недоступна, то всегда есть райдер и сброс триала, либо вскод с напильником, но проще юзать впн, без которого в нынешние времена все равно никуда.
Аноним 19/08/22 Птн 12:45:56 2439356 307
>>2439342
Rider ведь тоже не поюзаешь вроде как, за него платить надо. А жбрейнс съебали. Надо пилить отечесвтенную айдее под .нет
Аноним 19/08/22 Птн 13:05:33 2439378 308
>>2439356
Пилить отечественную нерентабельно. А райдер прекрасно работает со сбросом триала. Делаешь новый ящик - заводишь новый аккаунт - включаешь новый триал - профит. Пять минут в месяц занимает.
Аноним 19/08/22 Птн 13:24:03 2439403 309
bandicam 2022-0[...].mp4 908Кб, 976x552, 00:00:16
976x552
изображение.png 25Кб, 511x256
511x256
изображение.png 20Кб, 588x139
588x139
изображение.png 11Кб, 645x63
645x63
Продолжаю постигать азы wpf по уроками шмачилина. Решил добавить фильтр стран. И вроде работает, но почему так медленно?
На первом пике свойство привязанное к TextBox, на втором сам фильтр, на третьем свойство привязанное к ListBox
Аноним 19/08/22 Птн 13:27:04 2439409 310
На связи вкатунщик студент 2го курса cs Не знаю, что выбрать в перспективу - Java или C#. Выбираю только из этого, остальное на бэк не интересует. Шарп по вакансиям сейчас выглядит слабее, однако ощущение, что это пока, и дальше он будет только набирать обороты,а от жабы все желчью плются, но зато там работы дохера. я не из рашки, поэтому ситуация с уходом МС меня мало волнует
Подскажите, мастера сего языка, ставить всё на красное изучения шарпа? С будущей возможностью вкатиться в европу, там сейчас вроде тоже жаба популярнее, не считая швеции какой-нибудь
Аноним 19/08/22 Птн 13:38:59 2439428 311
>>2439409
Лол, конечно .NET выбирать надо. Смотри в чем прекол. Майки крупнее оракла, они могут себе позволить тестировать что-то новое и даже если обосруться и не выстрелит - ничего плохого не случится в мире .NET, а в джаве же всё наоборот. Каждый апдейт оракл трясётся и надеятся чтобы выстрелило, ведь если нет - это огромные убытки для компании. C# и вся платформа активно развивается, майки вливают дохуя денег в платформу и она будет с каждым полугодием всё лучше и лучше. Джаву сейчас держит только легаси написанное в течении 20 лет, но сам язык развивается очень медленно и активно пиздится из как раз таки сишарпа, т.е выбрав джаву ты будешь писать на обрезанном C#.
Аноним 19/08/22 Птн 13:46:09 2439437 312
>>2439403
>И вроде работает, но почему так медленно?
Потому что ты несколько тысяч элементов в оперативную память суёшь, а затем их еще и отрендерить надо. Юзай пагинацию.
Аноним 19/08/22 Птн 13:51:40 2439441 313
>Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток
Ебал рот этой многопоточности ебаной. Что я делаю не так?
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 2439443 314
>>2439441
Опиши свою задачу, что ты хочешь сделать?
Аноним 19/08/22 Птн 14:00:36 2439444 315
>>2439443
Хочу засунуть parser.Document в поток и получить на выходе данные, поток должен быть с ApartmentState.STA. Что в парсере особо не важно. Точнее, без ApartmentState.STA он будет отъёбывать, потому что некоторые части его хотят работать с главным потоком, ибо являются элементами UI. Вроде как.
Аноним 19/08/22 Птн 14:35:47 2439481 316
Пацаны, а нахуй нужны абстрактные классы, если есть интерфейсы? Если нужны данные - в интерфейс всегда можно загнать и проперти, которые тоже де-факто методы. Я предполагаю, что абстрактный класс будет нужен там, где нужны филды, но, опять же, нахуй нужны филды, когда есть проперти с гораздо более гибким доступом?
Аноним 19/08/22 Птн 16:33:32 2439667 317
Посмотрел некоторые главы в книге от майков .NET Microservices и ахуел от абстракций и говнокода в частях про работу с базой данных.

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

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

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

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

В итоге остается полтооры вакансии, где можно пилить нормально citadel сидя на линуксе, без легаси и зумерского говна. Ноудискас. Хейтеры лесом.
Аноним 19/08/22 Птн 16:47:07 2439686 320
Аноним 19/08/22 Птн 16:51:47 2439695 321
image.png 11Кб, 1308x118
1308x118
image.png 116Кб, 1093x530
1093x530
БЛЯТЬ, что это зазалупа???? Какой нахуй "<ValCurs xmlns=''> "??
Помогите, пожалуйста. Пытаюсь десериализовать xml, который приходит с сайта, приходит текстом, а я потом сохраняю в формат xml. Почему не получается десериализовать? Если использовать xRoot, то мне просто выдаётся пустой members. На скринах xml, код и тд. Заааа чтоооооо
Аноним 19/08/22 Птн 16:53:43 2439697 322
image.png 21Кб, 1518x672
1518x672
Аноним 19/08/22 Птн 16:54:39 2439698 323
>>2439697
Пиздос, я слепой. Ладно <ValCur есть. Но если использовать рут-хуют кидает тот же эксепшен
Аноним 19/08/22 Птн 16:56:07 2439701 324
image.png 18Кб, 571x596
571x596
Аноним 19/08/22 Птн 16:57:39 2439703 325
image.png 53Кб, 873x236
873x236
Аноним 19/08/22 Птн 17:15:42 2439729 326
image.png 10Кб, 331x255
331x255
image.png 6Кб, 650x68
650x68
Баля дебс который говнокодит свою хуйню, сделай просто по-человечески вот так:
Аноним 19/08/22 Птн 17:22:35 2439735 327
>>2439672
А, точно, это ж для имплементации методов. В интерфейсах это делать до сих пор считается моветоном.
Аноним 19/08/22 Птн 17:43:58 2439771 328
image.png 16Кб, 454x126
454x126
Аноним 19/08/22 Птн 17:45:36 2439773 329
>>2439771
Покажи жсон, с какого сайта парсишь?
Аноним 19/08/22 Птн 17:46:18 2439775 330
Аноним 19/08/22 Птн 17:47:36 2439779 331
Аноним 19/08/22 Птн 17:54:08 2439788 332
Аноним 19/08/22 Птн 17:57:33 2439795 333
>>2439788
Хотел сам сделать бота. Типо пет проект в итоге завяз в этой хуйне. А вообще, бот уже имеет рабочий функционал, но код, что я навоял - просто ад ебейший. Так что решил переделать
Аноним 19/08/22 Птн 17:59:20 2439798 334
>>2439795
Ты завяз на хуйне потому что пытаешься здесь и сейчас, а нужно сесть и продумать ООП и всю хуйню. То, что ты высераешь в треде - я в шоке, поверь, я если бы увидел такой пет-проект, я бы тебе даже отвечать наверное не стал на звонки после собеса.
Аноним 19/08/22 Птн 18:49:36 2439877 335
>>2439798
Верно, я спонтанно решил сделать бота, при этом нихуя не продумав. Ошибка, конечно, но я не представляю даже с чего начать.
Аноним 19/08/22 Птн 18:57:53 2439896 336
>>2439680
Чет обосрался с микросервисной джавы которая должна составить конкуренцию ASP NET CORE
Аноним 19/08/22 Птн 20:16:49 2440015 337
>>2439896
Так жаба вне конкуренции. Аспнет - лучший выбор для монолитов, а аспнеткор - лучший выбор для опенсорсных монолитов.
Аноним 19/08/22 Птн 20:36:32 2440034 338
>>2438859
Это просто-понятный императивный код, няша, который писался для литкода, чтобы потроллить вкатунцов из /b/.
Что ты от меня хочешь? Чтобы я по солиду разложил все это дело, когда мне нужно было сраться с вкатунцами? Это раз.

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

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

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

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

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

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

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

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

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

Хз как спросить правильно, типа насколько ML.NET полноценен в этом плане или это просто маркетинговая заглушка, мол, у нас есть типа машинное обучение.
Аноним 20/08/22 Суб 21:59:14 2441256 392
>>2441219
Посмотри ещё в сторону паттерна Visitor. Возможно сможешь натянуть его на свой кейс. Он как раз позволяет избавиться от необходимости явной проверки типов и даункастов.
Аноним 20/08/22 Суб 21:59:25 2441257 393
>>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 2441287 394
Аноним 20/08/22 Суб 23:14:26 2441292 395
Аноним 20/08/22 Суб 23:16:06 2441295 396
>>2441227
Охлол! Серьёзно?
лет 5 назад в /б/ я баловался подобным тралингом, а тут спустя 5 лет меня подловили на таком же
Аноним 20/08/22 Суб 23:17:21 2441297 397
>>2441284
> Это юнити?
Это Авалония UI?
Аноним 20/08/22 Суб 23:45:13 2441307 398
>>2441298
Авалония - это как жавафх.
А вместо спринга тут .неткор+.
Вместо ваадина/gwt тут блазор.
Аноним 21/08/22 Вск 01:17:21 2441324 399
Безымянный.png 33Кб, 1924x1024
1924x1024
>>2441195
Пока не было кодревью - я нашел ошибку в формуле рассчета скорости.
Ну и сделал красивые ЛГБТ хвостики.
Аноним 21/08/22 Вск 09:25:42 2441415 400
>>2441307
И на выходе скомпилированный хеллоуворлд весит сто мегов. Сто, Карл! Сто, Хесус!
Аноним 21/08/22 Вск 09:50:18 2441435 401
Аноним 21/08/22 Вск 09:55:57 2441438 402
Аноним 21/08/22 Вск 10:10:35 2441444 403
>>2441415
А нахуя мерять хеллоу вордами? Он весит 100мб, готовая программа со сложной бизнес-логикой 120мб.
Аноним 21/08/22 Вск 10:11:38 2441445 404
>>2441438
что 124мб? к чему эта жалоба? где не так же?
Аноним 21/08/22 Вск 10:17:56 2441446 405
>>2441445
Eto.Forms, Хеллоуворлд = 4,5 Мб.
>>2441444
> готовая программа со сложной бизнес-логикой
Не пизди.
Сложная бизнес-логика это килобайты, ну десяток килобайт формул. Данные - это СУБД, висящая отдельно, в т.ч. на серверах.
Аноним 21/08/22 Вск 10:21:01 2441447 406
>>2441445
Ах да, хоть ВПФ и не кроссплатформа, а мы тут как бы кроссплатформу обсуждаем, но хеллоуворлд на ВПФ вообще = 450 Кб. Кило! Не Мега!
Аноним 21/08/22 Вск 10:22:43 2441448 407
>>2441446
>Eto.Forms, Хеллоуворлд = 4,5 Мб.
а если прибавить к нему формсы, гтк и что там еще что на маке
сколько получим?
Аноним 21/08/22 Вск 10:27:57 2441451 408
>>2441448
Всё прибавлено, командой dotnet run запущено и после сборки измерено.
Аноним 21/08/22 Вск 10:29:23 2441454 409
>>2441451
Щас ещё ради интереса перегружусь в линукс и пособираю там, и сравню размеры.
Аноним 21/08/22 Вск 10:31:18 2441456 410
image 255Кб, 1576x1642
1576x1642
>>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 2441457 411
>>2441451
те, кто измеряет размер приложения без учета рантайма и фреймворка - просто кривят душой

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Чё там за проект в душе не ебу, пиры, хуиры какие-то, чо академики ёпта? На понт взять меня не получится.
Аноним 22/08/22 Пнд 15:35:25 2442856 462
>>2442846
нет. и ты обращаешься. ты посмотри что такое FlowDocument и кто его родители.
Аноним 22/08/22 Пнд 15:38:45 2442858 463
15.1.png 13Кб, 569x480
569x480
>>2442846
он самый настоящий контрол
Аноним 22/08/22 Пнд 16:05:06 2442867 464
Аноним 22/08/22 Пнд 16:09:06 2442868 465
>>2442853
Это надо чтобы координировать народ СССР, децентрализованнейшим образом, в локальных сетях.
Щас самое время, потому что хуйло не просто предало народ СССР, но ещё и спиздело ЯО СССР.
Но Горбачёв, дал нам гласность, поэтому можно спокойно координироваться децентрализировано, на принципиально немодерируемой, неубиваемой, вечной и бесконечной нанобордочке, заебатой, которую сукаблять допилить надо нормально, а то я уже вкрай заебался с нею, без моих косарей, что спиздили гнилые и усосочные нищие крысы.
Аноним 22/08/22 Пнд 16:09:11 2442869 466
>>2442867
ну мы же не знаем КАК ты используешь диспетчер так что ок
Аноним 22/08/22 Пнд 16:18:59 2442873 467
>>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 2442882 468
>>2442873
Причём тут, к наноборде - пендосы, которые спиздили бабло и забанили в сети - какую-то криптоговнину?

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

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

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

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

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

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

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

Я уже понял вроде бы, что в первом случае у нас приходит запрос на контроллер, который обрабатывается и идет дальше получать данные из базы данных тем или иным образом, а затем приходит на эндпоинт и отдается клиенту. В случае с MVC же добавляется view, который позволяет представить данные графически (я пока нихуя про это не понял). Так вот по идее я же могу взять данные с эндпоинтов API и потом их отрисовать с помощью условного Ангуляра. У меня при этом получится MVC? Зачем тогда нужен темплейт API, если можно сразу делать MVC и почему они вообще такие разные? Я запутался вообще нахуй.
Аноним 22/08/22 Пнд 20:38:59 2443129 490
>>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 2443136 491
>>2443129
Красавчик,могеш,то что мне нужно.
Спасибо,что помогли,а то тут тян выше пишет конструкторы не нужны,шароеб не человек
Аноним 22/08/22 Пнд 20:49:13 2443146 492
>>2443057
>Ты, красавчик.подскажи как мне решить задачу?
если это мелкософтовское DI то у них есть фабрика на этот случай. где то.
Аноним 22/08/22 Пнд 20:51:00 2443148 493
>>2443103
Хорошо, а нахуя нужны все эти манипуляции?
>Запихивают в качестве аргумента одно из полей, создают переменную и присваивают ей значение аргумента и больше ее не используют. Зачем использовать поле в качестве аргумента, если оно и так в поле видимости?
Аноним 22/08/22 Пнд 20:54:08 2443151 494
>>2443114
Учить оба. API - это апи, MVC - подход к построению сайта и его апи
Аноним 22/08/22 Пнд 20:55:55 2443154 495
>>2443148
Затем, что когда у тебя 15 объектов в методе писать new Pizda(150) проще, чем new Pizda(); pizda.Depth = 150
Аноним 22/08/22 Пнд 20:57:07 2443156 496
>>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 2443162 497
Аноним 22/08/22 Пнд 21:13:14 2443176 498
Мне нужно написать программулину для работы в консоли Линукса. Программа проста до безумия: открыть файл с картинкой в стандартном формате, отресайзить его и, допустим, скопировать поверх другого 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 2443178 499
>>2443176
Мауи не работает под линукс. Возьми что-то другое
Аноним 22/08/22 Пнд 21:21:36 2443180 500
>>2443176
Почему ты не можешь как человек использовать ImageMagick?
Зачем тебе апи от майков?
Если нужно чтобы была веб-ручка - на go/питоне скрип один написал и дергай сколько хочешь.
Все это в докер.
Аноним 22/08/22 Пнд 21:25:20 2443182 501
>>2443180
> Почему ты не можешь как человек использовать ImageMagick?
Потому что в нём обнаружен критический недостаток.
Аноним 22/08/22 Пнд 21:26:32 2443184 502
>>2443180
> как человек использовать ImageMagick
Этот вариант также рассматривался. Однако странно писать код на Шарпе, а для работы с графикой дёргать отдельную приложуху
Аноним 22/08/22 Пнд 21:31:22 2443186 503
>>2443184
>Однако странно писать код на Шарпе, а для работы с графикой дёргать отдельную приложуху
Что тут странного?
Ну. Давай возьмем для примера ZABBIX. Они берут и без задней мысли SNMP.Net - дергают, веб-сервер на пыхе, опросник на сях, их собственный клиент - тоже на сях. Ничего. Как-то живут. Никто странным забикс не считает.
Аноним 22/08/22 Пнд 21:32:36 2443187 504
>>2443186
>SNMP.Net
Блядь. Обшарповался. Net-SNMP
Аноним 22/08/22 Пнд 21:33:48 2443188 505
>>2443186
раз уж ты знаешь как устроен Заббикс, подскажи, как там работает JS-виртмашина для пост-обработчика данных вида JavaScript?
Аноним 22/08/22 Пнд 21:41:11 2443191 506
>>2443188
Когда я им интересовался настолько, что лез в исходники - меня больше интересовала их модель данных. Так что извини, тут не могу помочь.
Аноним 22/08/22 Пнд 21:43:43 2443192 507
>>2443186
ну объективно же кривота:
пишешь на языке с тысячей ассамблер
@
для работы с картинкой используешь отдельную приложуху
Аноним 22/08/22 Пнд 21:44:00 2443193 508
Разве обращение к стороннему приложению не занимает много времени?
Аноним 22/08/22 Пнд 21:50:19 2443200 509
1661194219479.png 155Кб, 1210x910
1210x910
>>2443176
Пять секунд в нугете. В чём я неправ?
Аноним 22/08/22 Пнд 22:03:03 2443211 510
>>2443156
Благодарю, анон. А что там в этом view в mvc? Там какой-то аналог жса и его фреймворков, чтобы рисовать страницы? Или туда точно так же впендюривается жс фреймворк? Если второе, то в чем разница с API, куда точно так же впендюрен жс фреймворк?
Аноним 22/08/22 Пнд 22:09:07 2443212 511
ХХООСППАДДЕЕЕ IL КОД, ВСТАВКИ IL ПРЯМО В ЕБАЛО, РЕФЛЕКСИЯ, АСПЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ, РАНТАЙМ-КОМПИЛЯЦИЯ МММ.............................................СИШАРПИК <3!!!!!!!!!!!!!!!!!!!!!!!!!!!11
Аноним 22/08/22 Пнд 22:49:49 2443243 512
>>2443211
У MS свой движок(сейчас их несколько), которые генерят странички.
Странички в конечном итоге - да, будут с JS, CSS, даже jQuery и прочее можешь туда напихать, но писать ты их будешь на как-бы шарпе, внутри инфраструктуры.
Типа в теории - тем кто хочет онли студией пользоваться - наверное и норм. Но я в свое время - попользовался, чет не возбудило.
Раньше связка .net+angular - форсилсяь. Мне нравилось. Сейчас - я стал старый и ленивый и мне больше нравится связка .net+vue.
Аноним 22/08/22 Пнд 23:02:48 2443250 513
Хочу изучить ASP.NET, но не знаю как к нему подступиться и с чего начать. Очень сложно учиться, когда не знаешь что тебе надо знать, а впереди лишь книга на 1000 страниц. Какие темы нужно знать, чтобы:
1) Меня приняли работать за еду
2) Я смог написать условный двачик
Если есть какие-то планы, будьте добры, скиньте
Аноним 22/08/22 Пнд 23:10:53 2443257 514
>>2443250
Если ты действительно смог написать "двачик", с поддержкой вебем, админками, созданием досок, настройками и прочим - то тебя уже возьмут за еду. Чтобы пруфать - разверни на дешманском хостинге - и крепи ссылку к резюме.
Аноним 22/08/22 Пнд 23:16:09 2443262 515
>>2443243
Правильно я понимаю, что сейчас в основном юзают в большинстве случаев именно API? По вакансиям смотрю - MVC редко встречается, очень часто вижу какую-то REST архитектуру, а это вроде тоже API. В новомодных курсах (2021-2022 от Нила Каннингса) API используется и так далее.
Аноним 23/08/22 Втр 00:11:36 2443301 516
>>2443257
Ты видать неправильно понял моё сообщение. Я поинтересовался, что мне нужно знать для условного двача
Аноним 23/08/22 Втр 00:35:44 2443307 517
>>2443262
В новых и относительно недавних проектах, по моему опыту - да.
Для внтутренних нужд - могут вообще - вебформы вспомнить. Так что минимальное понимание того, как все это работает - в любом случае нужно.
Аноним 23/08/22 Втр 01:07:06 2443317 518
Я собираюсь вкатываться на работу примерно весной. Вижу, что Кор 3.1 в начале декабря уже этого года будет выпилен с поддержки. Значит ли это, что мне уже можно ориентироваться на 6 версию? Активно ли компании будут перекатываться с 3.1 на 6 после окончания саппорта? Понятно, что кто-то еще сидит даже не на последних версиях .нет фреймворка, но я к таким не хочу.

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

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

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

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

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

>>2444058
Так, вижу. Странно, что есть поддержка бубунты, но нет очевидного дебиана. Или оно и на дебе работать будет? Но самый главный вопрос: эта поебота настолько же дырявая как винда или тут они смогли?
Аноним 23/08/22 Втр 22:12:22 2444111 558
>>2444107
> Странно, что есть поддержка бубунты, но нет очевидного дебиана
Можно и на дебиан. Да кому это всё нужно, если есть поддержка докера, который хоть на Gentoo ставь.
Аноним 24/08/22 Срд 03:06:05 2444243 559
>>2444048
внезапно хорошая база, просто в рекламу не умеют
Аноним 24/08/22 Срд 04:31:45 2444246 560
image.png 10Кб, 267x373
267x373
image.png 5Кб, 249x205
249x205
На 2-ом пике ГарбажеКоллектор соберёт а1 и б1, если не отписываться от ивента?
Аноним 24/08/22 Срд 05:21:16 2444252 561
>>2444246
не усложняй.
если не остается внешних ссылок (и оно не в исполнении) - то кандидат на сбор. Циклические ссылки значения не имеют.
Аноним 24/08/22 Срд 07:19:07 2444263 562
>>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 2444297 563
>>2443832
>удовольствие по полчаса переводить каждую страницу
Как раз выучишь англ
мимо так и сделал
Аноним 24/08/22 Срд 11:08:44 2444353 564
>>2443997
>Я например нихуя не понял про делегаты, эвенты и асинхронку, хотя перечитывал эти темы несколько раз

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

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

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

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

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

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

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

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

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

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

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

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

а видео бредовое. == не сравнивает по ссылке. это у object реализация такая сравнения.
а в конкретном типе он может быть перегружен как душе угодно
Аноним 25/08/22 Чтв 16:08:43 2445245 619
>>2445244
воооо, теперь-то всё встало на места. Спасибо
Аноним 25/08/22 Чтв 16:15:30 2445257 620
>>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 2445288 621
>>2445257
Я чёт совсем забыл, что модно переопределять операторы сложения/вычитания/сравнения
Аноним 25/08/22 Чтв 17:01:01 2445296 622
>>2445288
>>2428235 →
Еще вот такой прикол есть, с неявным переопределением оператора присваивания
Аноним 25/08/22 Чтв 21:39:35 2445495 623
0Male-hands-hol[...].jpg 80Кб, 1200x675
1200x675
Давайте попроектируем абстрактно.
Допустим, будем придумывать облачную систему менеджмента ресурсов.
Под ресурсами понимаем - любую хуйню, которую можно как-то измерить.

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

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

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

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

Вот так я это вижу.
А как бы вы такое спроектировали, шарпаны?
Аноним 25/08/22 Чтв 22:54:18 2445561 624
>>2444111
А тут случаем никто не знает, как на Дебиан поставить? Я попробовал по инструкции с сайта майков на Убунту, но оно пишет, что нету у них пакетов для дебиана. Докер пока не, мне бы просто экспресс пока поставить для тренировок sql и ef, с докером тут наверное сложности возникнут.
Аноним 25/08/22 Чтв 22:56:46 2445562 625
>>2445561
Где-то были инструкции от индусов, как ставить именно на дебиан.
Аноним 26/08/22 Птн 00:47:25 2445619 626
26/08/22 Птн 00:50:45 2445623 627
Аноним 26/08/22 Птн 02:13:04 2445639 628
>>2444574
>Нотация без скобок вообще должна быть запрещена
Почему?
Аноним 26/08/22 Птн 03:20:54 2445650 629
>>2445639
потому что становится возможной неправильная интерпретация кода
Аноним 26/08/22 Птн 04:12:02 2445654 630
>>2445650
ну разве что слепошарому. скобки раздувают код, что меньше влазит на экран.
Плохо читается if () ... на одной строке если это не проверка предусловий, а в остальном если это один уровень вложенности и нет кучи условий, то скобки нахер не нужны.
Аноним 26/08/22 Птн 04:13:15 2445655 631
Аноним 26/08/22 Птн 10:13:58 2445744 632
Я когда лабы на джаве писал, мне было неприятно из-за бойлерплейта и отвратительной системы пакетов и сборки. А тут всё по кайфу ежже
26/08/22 Птн 10:20:53 2445753 633
Аноним 27/08/22 Суб 06:43:57 2446720 634
Есть ли будущее у шарпа сейчас в нашей стране? Почему не стоит бежать сейчас на котлин?
Аноним 27/08/22 Суб 10:10:59 2446807 635
>>2446720
Все есть, но в основном только в продуктовых компаниях кмк.
Аноним 27/08/22 Суб 18:38:08 2447371 636
>>2446807
>кмк
Кабельные металлические конструкции
Казанский медицинский колледж
Крымский многопрофильный колледж
тупое зумерье детектед
Аноним 28/08/22 Вск 09:35:29 2447850 637
>>2447371
Как мне кажется блять
Можно ещё имхо писать, только это пендосская тема
дед, пей таблетки
Аноним 29/08/22 Пнд 00:29:51 2448908 638
>>2447371
> зумерье
> детектед
Душнила, ты либо сам не юзай сленг, либо не выёбывайся.
Аноним 29/08/22 Пнд 03:30:38 2448965 639
>>2448908
Слово не становится сленгом, если его стали использовать 1,5 зумера.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов