Этого треда уже нет.
Это копия, сохраненная 27 октября 2022 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
C# Тред #38 /csharp/ 2433268 В конец треда | Веб
Тред лучшего языка на планете.

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)
2 2433269
6. Какую IDE выбрать?
Для Windows — Visual Studio ( https://visualstudio.microsoft.com/ru/downloads ). Также есть версия для macOS.
Кроссплатформенный IDE Rider ( https://www.jetbrains.com/rider ).
Если в C# хочется, но пк уж слишком хуёвый: https://docs.microsoft.com/en-us/dotnet/core/tutorials/with-visual-studio-code

7. Что нужно знать, чтобы взяли работать?
Общие навыки — TPL, Linq, DI, интеграционные тесты. Преимущество перед такими же вкатунами даст парочка интересных пет-проектов где вы делаете всё максимально правильно и точно следуя архитектуре.
Архитектура — DDD, микросервисная архитектура. Так же необходимо ознакомиться с паттернами проектирования. Обязательны к изучению: MVVM, MVC.
Базы данных — PostgreSQL + Mongo. Из ORM: EFCore обычно достаточно, но есть более быстрый, но менее удобный Dapper. Тратить время на ADO.NET не стоит.
Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
Структуры данных — связанные списки, деревья (бинарные, красно-чёрные), хеш-таблицы, графы.
Системы контроля версий — обычно гита достаточно.
3 2433305
Кортежи медленнее классов?
4 2433310
>>33305
Хз, но если да, то разрабы ДАУНЫ
5 2433313
>>33310
Заметил, что за последние несколько дней появился петрсоян.
6 2433403
>>33269
Найс шапку пофиксил кста, пиздабол.
7 2433429
>>33403
Скажи как пофиксить, а я пофикшу.
8 2433572
>>33305
Кортежи быстрее, т.к. это структуры по сути
9 2433573
Ура блять дашчан починил наконец-то
10 2433587
Здравствуйте. Есть идеи как заполнить такой словарь Dictionary<string, Dictionary<string, decimal>>?
Данные беру их XML, для обычного Dictionary<string, string> всё легко, а тут хз что делать. Нужно получить словарь, как на первом пике. На втором пике код, который работает на обычном словаре ключ => значение.
изображение.png9 Кб, 1167x54
11 2433599
Почему ругается?
12 2433613
Можно ли определить тип переменной как число?
13 2433638
>>33613
Берёшь double/decimal и норм
14 2433640
>>33587
Через обычный add пробовал?
15 2433676
>>33640
залупа какая-то получается...
16 2433694
>>33587
.ToDictionary(x => x.Key, x.ToDictionary(y => y.Hui1, y => y.Hui2))
17 2433695
>>33638
Можно подробнее?
Вот есть тип String. Как мне выразить тип через число? Естественно, суть данной затеи в экономии передаваемых байт.
18 2433714
>>33695
int i = 5;
decimal d = 5.0m;
float f = 5.0f;
double d = 5.0d;
19 2433736
>>33714
В мою функцию приходит какие-то данные в формате Object. Я не знаю что за данные.

public int GetTypeIndex(object value)
{
//вот тут я из value должен получить тип в виде числа
}
20 2433753
>>33736
Нахуй и в пизду, короч. Сам нашел.

public int GetTypeIndex(object value)
{
TypeCode valueTypeCode = value.GetType.Attributes.GetTypeCode
}
21 2433906
>>33572
Если речь про record, то нет
Это просто метки для компилятора "сгенерируй тело сам" и, как следствие, поддержка конструкции with
22 2433923
>>33906
Под классы выделяется память в куче, а структуры и туплы валяются на стеке.
No allocations => fast
23 2433926
>>33923
Ну если речь про Tuple, то да - они структуры. я подумал речь про record

>No allocations => fast


Ну разве что только создание.
24 2433927
>>33926

> >No allocations => fast


> Ну разве что только создание.


Условно если у тебя сервис с 300кк RPS/нс, то разница между туплами и классами я думаю нихуевая такая
25 2433981
Посоветуйте книгу про MS SQL. Если конкретнее, интересуют уровни изоляции и индексы.
26 2433992
>>33981
Тебе в БД тред.
27 2434207
>>33305
смотря какие
если использовать Tuple.Create(420, 69) - то это инстанс класса.
если использовать (int, int) t = (420, 96) aka ValueTuple - это структура;
image.png61 Кб, 1229x293
28 2434214
>>33640
>>33694

Тааак, я сделал. Но теперь новая проблема. Курс валюты в XML записан через ",", а чтобы нормально преобразовать в decimal надо ".". Так что пока оставлю string
29 2434229
>>34214
Кстати, до того как я написал "where(val == key)" у меня во второй словарь тупо вписывались все имена и все курсы.
30 2434230
>>34214
val => decimal.Parse(((string)val.Element("Value")).Replace(",", "."))
31 2434232
>>34214

>а чтобы нормально преобразовать в decimal надо ".".


Ну так поменяй CultureInfo при парсинге
32 2434233
>>34230
Это да, завтра доделаю
33 2434235
>>34232
Так у меня в xml файле через запятую. Или эта штука как-то повлияет?
image.png27 Кб, 526x575
34 2434240
>>34235
XML ты читаешь как строку в любом случае. Но вот как интерпретировать эту строку в число зависит так же от формата данных, которые хранятся в CultureInfo. Вот например Culture Info ru-RU.
35 2434281
>>34240
А понял, типо заместо точки поставить запятую.
36 2434349
Хочу поменять первую работу. Там я просто крудошлепил в основном. Многие пишут в вакансиях, что требуется основы веба, или ангулар. Реально ли устроиться куда-то джун-мидлом без знаний ангуляр, или реакта?
37 2434350
>>34230
>>34233
Не делай так. Парси в зависимости от локализации.

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

Само определит запятую, точку или какой другой разделитель. Потому что если ты будешь тупо реплейсить знак, а твоя прога запустится на какой нибудь другой шиндовс, с другой локализацией, то у тебя снова выскочит ошибка. Тебе нужно, чтобы локализация шиндовс совпадала с искомым знаком. И чтобы с этим не морочиться, собсно, код выше. Оно само сделает.
38 2434358
>>34349
Мне казалось, что такие вопросы задают подставные зрители на стримах инфоцыган, типа:
— А можно устроиться успешным 3д-моделлером без умения рисовать?
А инфоцыган такой:
— Ну конечно же можно! И даже получать 300к в секунду!
— А вот ... если я посмотрел 10% ваших видеоуроков, а остальное лень, то я могу устроиться в Близзард?
— Ну конечно же можно! На рынке не хватает специалистов, просто пукните на линкедине и вас оторвут с руками!
39 2434382
>>34358
Я просто хотел бекендом заниматься. Ну штош, придётся фронт осваивать глубже.
image.png61 Кб, 910x284
40 2434448
>>34350
Тту такое дело... У меня в итоге вообще разделитель стёрло
41 2434454
>>34448
Используй Convert.ToString(number, CultureInfo.GetCultureInfo("en-US")), так будет с точкой.

Но не забывай, что разные культуры используют разные разделители, например в СНГ - это запятая, на западе - точка, у каких-то арабов похожая на запятую, но не является ею (муммайз): "٫", так что в регулярках в некоторых случаях нужно
42 2434456
>>34349
Реально офк, но зарабатывать ты будешь меньше поскольку чисто бекендеры не выгодны бизнесу. Знания фронта дадут плюс офк, но учить это тебе или нет - твоё дело, я например не собираюсь учить и планирую перекат на десктоп, а то с веба блевать хочется.
43 2434457
>>34454
Это да. А можно как-то на основе чего-то узнать локацию, где запущена прога?
44 2434460
>>34457
Да, CultureInfo.CurrentCulture.
45 2434463
>>34460

>CultureInfo.CurrentCulture


Во, спасибо. Я только начал смотреть, что в этом классе есть
46 2434466
>>33573
Фсмысли блять? У меня не работает. И обновлений пишет, что нет.
47 2434468
Всё, наконец-то всё работает. Теперь осталось победить эту кучу ворнингов.
48 2434473
>>34466
В /mobi/ в треде про дашчан постили патч.
49 2434475
>>34468
Пишешь вначале файла #nullable disable;
Если хочешь только какую-то часть кода пометить с выкл/вкл нуллейбл то делаешь вот так:

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

Чтобы включить
#nullable enable;
часть кода (метод, класс, пара строк внутри метода)
#nullable disable;
50 2434476
>>34475
Бля, без точки с запятой.
51 2434480
Меня сюда перенаправил анон из "мы-вам-перезвоним"-треда.

Анон, ты здесь?)
52 2434482
>>34475
о, так называемый налблконтекст, проходил недавно месяц назад
53 2434484
>>34475
Кстати, вот он жалуется на null в этом огромном запросе. Как это всё обработать? Просто в try...catch засунуть? Потому что через if я тут хуй что проверю, код сразу раза в два увеличится.
54 2434488
>>34448
Почему у тебя не стоит решарпер?
55 2434489
>>34488
Что? Я новенький в C#, так что не очень понимаю о чём Вы
56 2434495
>>34475
А, и ещё, вот у меня получился этот огромный запрос - это норм? Или лучше там поделить на части и тд. Я прост щас тг бота пишу для резюме да и довольно интересное занятие, так что хочется правильно писать код. Да и к тому же хочется знать как правильно делать.
57 2434499
>>34480
На месте
58 2434501
>>34484
Забей хуй. Кидай ArgumentNullException в самом начале если входной параметр пустой или null
59 2434502
>>34499
Так можно к тебе на шею до момента вката?)
60 2434505
>>34502
Конечно. У меня тут полтреда на шее висит по собственной воле
61 2434507
>>34501
Yap kok
62 2434515
>>34468
Лучше юзай Fluent interfaces в Linq, а не ту хуиту с from
63 2434519
>>34515

> Fluent interfaces в Linq


А разница? До Fluent interfaces я ещё не дошёл и даже не представляю, что это
64 2434521
>>34519

>А разница?


Технически никакой, но выглядит в миллион раз лучше. Сразу приучайся к нормальному синтаксису иначе потом не переучишься или это будет трудным
65 2434525
>>34454
Бля, да как ты заебал. Нахуя ты его привязываешь к конкретной культуре?
66 2434528
>>34525
Он захотел точку - я ему показал как получить точку. Это хуита, да.
67 2434532
Так уже всё норм. Я через CultureInfo.CurrentCulture беру культуру, а патом кидаю её в Parse
image.png5 Кб, 327x205
68 2434600
У меня ещё тут возник вопрос по поводу архитектуры. Вот у меня есть куча классов отвечающих за там обработку сообщений, отдельный класс для меню и тд. Мне так всё и оставить или нужно разложить всё? Например, как в mvc сделать контроллер и тд. Или как лучше сделать?
69 2434601
>>34600
Например, как вот тут.
github.com/Excalib88/ValiBot/tree/master
70 2434603
>>34600

>У меня ещё тут возник вопрос по поводу архитектуры


Когда вижу подобное - глаз радуется.

Есть много подходов к архитектуре, например DDD, так же есть CHO. Можешь погуглить про это, например ddd очень хорошо объясняется вот тут: https://docs.abp.io/en/abp/latest/Domain-Driven-Design, это вообще сайт фреймворка для .NET, но по сути весь этот фреймворк - это уже готовая реализация DDD и модулей для .NET, AggregateRoot'ы всякие, сервисы и апп-сервисов. Можешь почитать, но не углубляйся в сам фреймворк. Почти всё, что написано там - относится напрямую к DDD.
71 2434604
>>34601

>github.com/Excalib88/ValiBot/tree/master


Правда мне вообще непонятно, что и как тут сделано
72 2434605
>>34603
thanks, пойду смотреть
73 2434933
Можно в студии сделать свой синтаксис? Хочу всякие текстовые лог-файлики смотреть с подсветкой буков. Или есть какой-то уже готовый синтаксис?
74 2434936
>>34933
Лучше, в vs code лучше
75 2434945
>>34936
Да понятно что в сублим тексте, нотпаде++ и вс-коде есть. Меня интересует вижуал студия.

Я вот хочу просто файлик информации сделать к проекту — для заметок.
76 2434948
>>34945
И самое главное загуглить невозможно, т.к. идет перекрытие VS Code.
78 2435140
Меж тем вышла новая версия net framework с поддержкой arm64
79 2435141
>>35140
Пусть лялех сначала допилят и потом занимаются всякой хуйнёй.
80 2435155
Ебать скоро MAUI начнет доминировать на десктоп рынке, вот все охуеют
81 2435159
А можно как-то возвращать данные из функции разного типа? В однмо случае интеджер, в другом стринг.
82 2435160
>>35155
да, есть такое, ща там должны еще новых фич подвести, нормальную поддержку кроссплатформ и начнется захват рынка к концу года
83 2435161
>>35155
Ебать скоро WPF начнет доминировать на десктоп рынке, вот все охуеют
84 2435162
>>35159
сделать тип возвращаемого значения обобщенным либо боксинг анбоксинг
85 2435168
>>35159
Есть эксепшены
86 2435173
>>35161
сравнение мауи и впф неверно, поскольку это совершенно разные платформы по своей сути
87 2435178
>>35173
Платформы разные, но каждый раз заявляется, что это самая лучшая гуёвая библиотека всех времён и народов, которая убьёт все предыдущие.
изображение.png296 Кб, 2560x1392
88 2435197
Помогите разобраться с гитом. Писал проект в студии, всё синхронизировал, но решил перейти с текущей ветки на мастер и пиздец, ругается на ошибки. Пытался вернуться обратно, и вновь ругается (перед переходом на другую ветку я забыл запушить последние изменения). Что делать? Не хочется терять 5 часов работы.
89 2435199
>>35162
>>35168
А как?

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

Но вот я не знаю как высрать значение нужного типа, окромя Object.
90 2435203
>>35199
Только dynamic object хотя можно и byte[]
91 2435212
>>35199
Ты ваще сам код-то покажи. Большие свич-кейс это не плохо, это норма в нашем мире. При той же ебли с IL кодом нужно будет делать огромные свич-кейс т.к есть 8, 16, 32, 64 битные инструкции которые надо группировать в свич-кейсы большие под разрядность. Там кстати и используется BitConverter, ты случайно не с IL дрочишься?
92 2435227
>>35212

>ты случайно не с IL дрочишься?


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

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

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

Как это сделать по уму, я не знаю. Я думаю юзать лямбда-функции т.к. там доступны все локальные переменные и тогда не надо их возвращать через обджект.
93 2435230
>>35212

>Ты ваще сам код-то покажи.



https://pastebin.com/EtvCh4Y6
94 2435238
>>35230
>>35227

Это норм код. Не пытайся изменить это, пиши свич-кейсы. Всё правильно делаешь в таком случае
95 2435255
>>35238
Так у меня на выходе из функции тип Object, а не соответствующий сконвертированным данным.
96 2435262
>>35255
Сделай метод дженерик и возвращай его
97 2435265
>>35262
но конкретный тип дженерика я должен объявить при вызове функции, а как я это сделаю, если я до ее вызова не знаю какой тип.
98 2435274
>>35265
private T ReadByTypeCode<T>(typeCode TypeCode, byte[] bufferData, ref ushort offset, ushort length) where T: class, struct

Если нужно будет передавать какой-то инициализирующийся объект, то можно указать where T: new()
99 2435282
>>35197
Ну так а ты коммиты делал? В коммиты все файлы проекта добавлял? На прошлых коммитах работает?
Покажи-ка что там по истории коммитов в обоих ветках.

Кстати, правильно что закрасил имя пользователя, а то мы бы тебя сдеанонили и заказали тебе много приколов из секс шопа на домашний адрес, было бы неловко.
100 2435321
>>35282

>было бы неловко.


как пользователю git может быть неловко )))
101 2435455
>>2435449 →

>Тогда, надо поднимать redis-сервер, а значит надо инклюдить его код, а он на Си.


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

>Не хочется терять 5 часов работы.


Ты еще легко отделался. Считай это налогом на глупость.
Теперь сядь и нормально изучи git и то как с ним нужно работать, а потом уже скачи по веткам туда-сюда.
103 2435553
>>35544

>Ты еще легко отделался. Считай это налогом на глупость


Глупость - использовать тулз, работа с которым сродни хождению по минному полю с миноискателем, который рэндомно взрывается прямо в руках. Но выбирать не приходится (не всем слава богу)
104 2435599
Скиньте парочку годных реализаций телеграм ботов на шарпе, плес. со всеми тонкостями по архитектуре
105 2435606
>>35599
Таких нет. Пиши сам. Будут проблемы в архитектуре - поможем.
106 2435611
>>35606

>проблемы в архитектуре


Хуй знает, эта проблема в архитектуре, или в я говнокода налепил. Мне б хотя бы проектик какой увидеть с моим кейсом.
Суть проекта такова: есть бот (пока что только в телеграме, но будет ещё и в вк) который берёт расписание пар с бд, в которую, в свою очередь, оно доставляется через говносервис ИРТЕХа "сетевой город" и класс этого бота разжирел до ~1000 строк и это ещё не конец. Показал код знающему человеку - тот завыл, сказав, что так не пишут и нужно распиливать код. Я не ебу как его распилить, т.к. первый проект, все дела. Есть мысли забить хуй на архитектуру и говнокод, и пилить так, как есть, ведь, опять же, первый проект, будет простительно.
107 2435617
>>35611
Какой курс?
108 2435621
>>35617
Перехожу на второй, а что?
109 2435623
>>35611

>первый проект, будет простительно.


Не будет. Пиши нормально. Почитай про ООП для начала https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/tutorials/oop
110 2435639
>>35553
Чувак, понимаешь, если ты молотком себе по пальцам хуяришь, то дело не в молотке, а в том, что ты криворукая обезьяна.
И если ты не удосужился потратить день-два на нормальное освоение гита и не научился правильно и безопасно им пользоваться, то это твоя проблема.
111 2435675
>>35639
я другой чувак - счастливый обладатель возможности использовать меркуриал, а не убеждать себя "жрать что дают есть хорошо, а если оно не слишком вкусно, то это во мне проблема - нужно говорить "сладко""
Чувак с проблемой такой возможности не имеет - сочувствую ему

>>35611
Распиливай по ответственностям (Принцип единственной ответственности). То есть поищи где в твоем классе смешивается "делает и то и это" и выноси по разным классам связанные вещи. А позже у тебя выработается навык сразу это делать.
112 2435696
>>35553
Это ты про гит что ли?
Пххапххаахахппхп
113 2435700
В рот ебал я ваш гит. Блять, нельзя переключиться на ветку если есть конфликты и какие-то изменение не закоммичены. Какая же ебатория.
114 2435723
>>35700
можно. в stash засунь,да.

почему ты вообще думаешь что твои проблемы уникальны?
все давно описано в Книге "Pro GIT"
115 2435739
>>35696
про гит конечно. нормальная система не должна отвлекать внимание на "как бы не выстрелить себе в ногу" и рождать проблемы "ой бл...забыл это сделать и пи...".

>>35700
ну это так везде. не дело терять изменения по глупости. поэтому требование где-то их зафиксировать или куда то сложить - нормальное.
116 2435769
>>35675

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


Меркуриал конечно пизже гита, но изначальный поинт был в том, что чел в принципе через жопу VCS использует и жалуется на то, что инструмент плохой, а не у него руки кривые.
117 2435874
>>35739

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


Да какой выстрел в ногу? Сделал дело, закоммитил - ВСЁ, твой код никуда не денется.
118 2435948
>>35874

>твой код никуда не денется.


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

Я понимаю, что гит так спроектирован, но по факту он нагружает голову лишним контекстом и требует внимания помнить где-ты и что происходит.
119 2436003
>>35948

> Чтобы код никуда не делся - на комит должны быть указатели. Иначе твои комиты для гита мусор,


Каво? У тебя в локальной ветке все коммиты будут.
120 2436043
Моя функция принимает аргумент IEnumerable, и я вдруг взял и передал туда массив, а не список. Оно заработало, но у меня вопрос, а не конвертируется ли массив в список?
121 2436107
>>36043
С хуя ли? Array реализует IEnumerable
122 2436109
>>36043
Почитай как работает интерфейс IEnumerable и энумераторы
123 2436118
>>35675
Мне ещё сказали про MediatR. Новичку стоит в него лезть?
124 2436127
>>36118
Нет.
125 2436133
>>36127
Значит попробую. Спасибо, анон!
126 2436466
Передаю массив через Object. А как мне теперь узнать его тип?
127 2436467
>>36003

>Каво? У тебя в локальной ветке все коммиты будут.


"Detached HEAD", гитовское изобретение. - возникает по глупости и не только. Грозит от необходимости помнить про это и разгребать до полной потери комита, если забыл и пришло время сборки мусора.

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

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

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

>>36118
Как хочешь. Это просто один из подходов. Основной плюс медиатра является его же основным минусом. И поэтому выбор прост
128 2436471
>>36466
рефлексией же.
И вроде там для массива свой подход нежели для дженерик листа

но вообще зачем передавать object и не знать его тип возможный. А если знаешь, то просто скасти через is
129 2436472
Ребятки-шарпятки, кто-нибудь туту пользовался отчетами от Стимулсофта? Как и где формируются и редактируются ебучие mrt файлы блять? Это шаблон будущего отчета я так понимаю Не в ручную же эта поебота пишется же...
130 2436489
>>36471
У меня массив смешанных типов. Я не знаю как еще передать.
Кортежи не позволяют обратиться по индексу.
131 2436493
>>36489
значит у тебя массив обжектов, а не массив какого то типа который скастили до обжекта

тип массива тут получать бесполезно
тип элемента - ну по каждому спрашивать
132 2436529
>>36493
Я пытался, но у меня любой внутренний итем массива возвращал тип Object.

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

Тако ощущение, что GetTypeCode определяет по стринговому GetType.Name. Я думал там как-то более элегантно по какому-то ID. Сравнение по стрингу как-то затратно.
134 2436554
>>36529
Сука.

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

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

Что это вообще?
135 2436557
>>36545
Так я тебе про дженерики пишу.
136 2436558
>>36557
Сооруди на шарплабе пример
А то только ты и знаешь о чем ты
2022-08-1623-46-39.png26 Кб, 1424x418
137 2436573
>>36558
Ну смотри сам
https://pastebin.com/7ARJMZVG
2022-08-1623-47-50.png21 Кб, 1274x374
138 2436576
>>36573
Бля, скрин хреновый
139 2436578
>>36576
Не хреновый, а хуёвый.
140 2436580
>>36578
На пастебине код. У меня нет аккаунта на шарплабе.
141 2436581
>>36573
а почему это TypeCode для double[] должен показывать Double[]?
TypeCode это не тип, а Enum и в нем физически нет Double[]

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

>>36580

> У меня нет аккаунта на шарплабе.


у меня так то тоже нет.
142 2436588
>>36581

>а почему это TypeCode для double[] должен показывать Double[]?


да опять шалит. Выдает просто double и для него в Enum есть вариант.

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

Вообще неадекватно работает. До этого вообще выдавало System.double, я не зафиксировал это.
143 2436590
>>36581

>у меня так то тоже нет.


А, разобрался, я копипастил по твоей ссылке
144 2436593
>>36581

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



Как? У меня IEnumerable<T>
145 2436595
>>36588

>Вот берешь GetType(T) — выдает double


фикс, но сработало. Чет магия какая-то. Изначально так и делал.
146 2436598
>>36593
ну если у тебя есть T, то тебе доступен дешевый typeof(T)
147 2436602
>>36595
Понял своб ошибку.
Изначально использовал Convert.GetTypeCode вместо Type.GetTypeCode
Раньше работало, а с дженериками — нет.

>тебе доступен дешевый typeof(T)


Мой маленький секретик в том, что я пишу на Basic, а typeof используется исключительно в контексте сравнения TypeOf(value) is Double, к примеру.
148 2436604
>>36602
Вы только подумайте какое чудовищное у бейсикоблядка мышление

>Раньше работало


Не важно какой контекст.
самокритики пост
149 2436608
>>36604
Сидит программист глубоко в отладке. Подходит сынишка:
- Папа, почему солнышко каждый день встаёт на востоке, а садиться на западе?
- Ты это проверял?
- Проверял.
- Хорошо проверял?
- Хорошо.
- Работает?
- Работает.
- Каждый день работает?
- Да, каждый день.
- Тогда ради бога, сынок, ничего не трогай и не меняй.
150 2436685
Мне показалось, или вакансий стало в 2 раза меньше?
151 2436713
>>36685
Так вообще со всеми языками, западные конторы ушли, которые в основном и нанимали прогеров.
1660718567157.png51 Кб, 780x486
152 2436739
Sup, шарпач!
Я вот смотрю видосы Шмачилина по МВВМ, и делаю у себя что-то похожее, но столкнулся с такой проблемой. У меня собсна, линукс, и многих штук, которые он там показывает, нет в линуксе.

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

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

Вопрос: Это вообще законно? Сколько кодерских кодексов я нарушил?
153 2436742
>>36602

> Мой маленький секретик в том, что я пишу на Basic


Если у тебя на работе куча легаси, которое нужно тащить, то вопросов нет. Но если ты пишешь какие-то велосипеды для себя, то просто возьми и перейди на шарп. Будь мужиком, блять.
154 2436743
>>36472
В StimulSoft Designer.
Только где его взять я х.з. У меня на прошлой работе был дистр лицензионный, но я после увольнения снес все.
mrt файл - да это шаблон отчета, он по факту содержит в себе структуру документа, ссылки на источнике данных, sql запросы и логику по которой данные из запросов в отчете формируются.
Внутри это либо xml-ка, либо json. В зависимости от того, что у тебя их формирует на конечной точке (честно говоря х.з., т.к. я эту часть не трогал никогда и только с json-ом работал). Редактировать при необходимости их можно и руками (например запрос подправить и т.д.). Но с нуля создавать вряд ли - заебешься, хотя нет ничего невозможного если тебе время девать некуда.
155 2436747
>>36739

>CanExecute


Есть небось. В классе Command, потому что интерфейс нужно реализовать (если мы про шарповский ICommand говорим)

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

А в конструктор передают метод обычно
156 2436750
>>36743

>нет ничего невозможного если тебе время девать некуда


СЛОВА НЕ МАЛЬЧИКА, НО МУЖА!

мимо-анон
1660720684501.png43 Кб, 800x340
157 2436766
>>36747
Да, выходит дичь какая-то, оно наследуется от ICommand, но CanExecute в какой-то момент упрятывается от потомков.
Я всё таки переделал на вариант более близкий к лекционному материалу. Но насчёт дичи хотелось бы пояснений. Дело в том, что авторы тулкита не стесняются передавать ивентхандлеры в конструкторы.
158 2436797
>>36766

> оно наследуется от ICommand, но CanExecute в какой-то момент упрятывается от потомков


Вот тут я свои сомнения более подробно распишу. В каноническом ВПФ, как обесняет лектор, активность прибинденных к команде контролов задаётся через CanExecute если true - то активен, если false - то выключен. В местном же тулките, у команд сверху накинуто свойство bool Enabled, которое потом, видимо в потрохах тулкита, биндится к графическим контролам напрямую. Либо я всё неправильно понимаю. Либо одно из двух.

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

И вообще, судя по конечной реализации команд в используемом мной тулките (Command : IBindable, ICommand) , предполагается, что их Enabled я тоже должен биндить к вьюмодели, а не прокидывать туда лямбда-функции-условия, как предлагает лектор в лекции, и уже во вьюмодели я должен манипулировать логикой доступности команд.
159 2436798
>>36766
Реализовывай самостоятельно ICommand, вообще на этапе изучения всё сам реализовывай. Потом уже заюзаешь Community.Toolkit.Wpf, ахуенная либа 10/10 для впф.
160 2436801
>>36798

> Реализовывай самостоятельно ICommand


В линуксе нет вот этого из лекции:

> CommandManager.RequerySuggested


Отсутствует ссылка на сборку. Все юзинги прописан, ОФК.
То есть уже на этом этапе реализация 1-в-1 не возможна. Но ценный опыт понимания как всё работает, всё равно получен.
161 2436857
Количество элементов массива подсчитывается при помощи метода Length
Количество элементов списка подсчитывается при помощи метода Count

Если ли какое-то объяснение смены имени?
162 2436933
>>36857
Ты ещё Size забыл.
163 2436956
>>36857

> Количество элементов массива подсчитывается при помощи метода Length


Ну у тебя там сразу выделена память на столько элементов

> Количество элементов списка подсчитывается при помощи метода Count


А тут можно заранее зарезервировать память
164 2436970
>>36956
А метод подсчета одинаковый? Т.е. проходит по всему списку элементов и складывает?
165 2436984
>>36970
Конечно нет, там поле с количеством есть.
Пройтись и подсчитать это впринципе невозможно
166 2437054
Обесните, я не понимаю!
Вот я.
Создал класс MainWindowViewModel, подключил его в XAML как источник данных и подключаю его члены биндами к элементам интерфейса.
Когда этот класс создаётся-то?
167 2437063
И ещё вопрос вдогонку.
Получается, в шаблоне MVVM не нужен код-бихайнд? У меня там пустой класс висит, единственное назначение которого это загрузить в себя XAML.

Нет ли в этом некоторого нашего недопонимания гениальной мысли создателей WPF? Может быть вью - это хамл, а вью-модель - это мыслился код-бихайнд класс? А мы его весь дропаем и лепим ещё один класс?
168 2437074
>>37054
В момент Initialize Window вроде, на крайняк Loading Window.
В XAML ты должен ему дат ьимя, чтобы потом обращаться к экземпляру как к кнопке.
169 2437077
>>37063
Я спрашиваю, потому что приверженцы МВВМ говорят:

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


Но ведь с кодбихайндом всё так и есть. Если там какие-то свои поля, он их знает и с ними работает. Ни о каком XAML этот класс не знает. Но XAML наоборот знает о своём код-бихайндовом классе, может цепляться к его полям через x:Name и всё у него заебись.
Пришёл новый чел, нарисовал новую разметку в XAML, подцепился к нужным полям во вью-модели (которая есть искаробочный код-бихайнд класс).
Что я понимаю неправильно?
170 2437087
>>36766

>но CanExecute в какой-то момент упрятывается от потомков


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

>>36797

> если true - то активен, если false - то выключен.


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

>>37054

>Когда этот класс создаётся-то?


при создании MainWindow. По хорошему снаружи и присваивается MainWindow как DataContext

>>37063

>в шаблоне MVVM не нужен код-бихайнд?


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

>>37077

>подцепился к нужным полям во вью-модели (которая есть искаробочный код-бихайнд класс).


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

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

А хочу так:
var valueType = value.GetType;
ElementInfo<valueType>(value);
173 2437143
>>37140
ближе всего рефлексия MethodInfo.Invoke
Чуть дальше Delegate.DynamicInvoke
это медленные вызовы
А вот если нужно быстрее, то привет кодогенерация (или можно слепить абстрактный класс)
174 2437156
Аналоговнеты?
175 2437159
>>37087
Спасибо за ответы. Яснее не стало, но ощущается поддержка анонская.
176 2437168
Можете дать примерный список вопрос на собесе джуна.
177 2437179
>>37143
Сделал, называется, рекурсию с дженериками.
178 2437199
>>37179
Молодец
179 2437262
>>37168
Десктоп/веб/игры?
180 2437267
>>37262
Десктоп, wpf
181 2437300
>>37267
1. биндинги, триггеры, стили
2. мввм, мвс, ооп и паттерны (тут явно больше требований будет чем к джуну на асп)
3. DI в WPF
4. Открытие/закрытие окон и привязка VM, где и как
5. Код внутри окон (когда можно и нужно)
6. Почему биндинг указывать внутри окна - хуёвая затея
7. EFCore, ms sql, postgresql, sql-синтаксис и запросы (джоин, селекты всякие инсерты итд)
Это так, навскидку. Еще, если бы проект был связан с тем, что нужно тчо-то очень быстро считать/обрабатывать - спросил бы про маршаллинг из C++ в C#, тут есть ньюансы в строках (в мсдн даже написано). Если компания разрабатывает продукт какой-то, а не аутсорс, то почти гарантировано будут вопросы по байтоёбству и алгоритмам, так что какие-нибудь основные основы этого стоит подучить.
182 2437332
>>37300

> Код внутри окон (когда можно и нужно)


Внутри окна в смысле в классе окна вроде mainwindow?
183 2437390
184 2437450
>>36713
Смысл вообще остался, вкатываться в шарпы?
изображение.png90 Кб, 176x176
185 2437481
>>36739

>Шмачилина


Интересно, он девственник?
186 2437498
>>37450
В айти скорее.
187 2437502
>>37498
настолько хуево всё?
188 2437504
>>37502
hh.ru последний раз когда открывал?
189 2437505
>>37504
сегодня
190 2437506
>>37505
И как оно?
191 2437508
>>37506
походу в 2 раза меньше, вакансий
192 2437523
>>37481
А со шлюхами считается?
193 2437532
>>37523
Нет.
194 2437535
>>37300
Спасибо за такой подробный ответ.

>5. Код внутри окон (когда можно и нужно)


>6. Почему биндинг указывать внутри окна - хуёвая затея


Вот на эти два вопроса я бы не ответил. Остальное то есть и в литературе, и в справочной информации по дотнету, а ответы на эти вопросы видимо с опытом приходят.
195 2437538
>>37535
Задай вопросы на ru stackoverflow, там даже регаться не обязательно, ответят быстро. Там любят концептуальные вопросы. Я сегодня уже не в состоянии ответить адекватно
196 2437568
>>37089

>бизнес-объектов


Я хуй знает, что в твоей вселенной бизнес-объект.

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

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

Если нужно отредактировать отчет, то просто берешь mrt файл, грузишь его в дизайнер и исправляешь.
Редактируешь запрос, добавляешь переменные и запихиваешь их в нужные места отчета.
197 2437587
>>37568
С хуев ли в моей? Это термин из оф. документации стимула. И у меня похоже именно на них все и сделано. Но инструкция тоже пригодится, сяп :3
198 2437589
>>37587
* но твоя инструкция
199 2437754
>>37587

>Это термин из оф. документации стимула


Честно, вообще нихуя инструкций не читал.
Меня просто перекинули на проект, где уволился единственный человек который умел в эти отчеты.
Меня перекинули скинули пачку шаблонов и что в них нужно поправить. И буквально пол дня на разбор с чем это едят. Скинули какой-то видосик на полчаса, как фильтры добавлять и переменные биндить в запросы и все, остальное сам разбирал.
Там была срочная сдача объекта и нужно было их срочно исправлять. Правил практически в прямом эфире, когда шел показ заказчику. Я в это время правил и заливал отчеты на прод, пока его отвлекали. И так всю неделю.
200 2437803
>>37300

>5. Код внутри окон (когда можно и нужно)


вопрос абстрактный. Держать код-бихайнд чистым это рекомендация и хамл далеко не всесилен. И даже не нужно своего контрола писать чтобы испытывать необходимость писать что то в код-бихайнд

>6. Почему биндинг указывать внутри окна - хуёвая затея


Какой биндинг? о чем это? Прямая работа с контролаями типа TextBox.Text=""?
201 2437955
>>37803

>Какой биндинг? о чем это? Прямая работа с контролаями типа TextBox.Text=""?



Нет, в плане в WPF в XAML можно напрямую биндинг указать к конкретному ViewModel. Хоть это и плохая практика т.к это просто хардкодинг, однако имеет некоторое преимущество перед биндингом т.к можно напрямую смотреть как меняется View в зависимости от изменения ViewModel еще на стадии написания кода (C# подтягивает данные из ViewModel и привязывает их в xaml еще до запуска проекта)
202 2437965
>>37955
Шмачилин, которого тут советовали, как раз прямо так и делает, например DataGrid привязывает к ICollectionView. А как собственно по другому?
203 2437966
>>37965
Пока что так делай, сейчас наглядность важнее чем правильность. Концепцию надо всю уловить, а дальше уже улучшать на более правильный вариант
204 2437967
>>37955

>можно напрямую смотреть как меняется View в зависимости от изменения ViewModel еще на стадии написания кода


ну так смотри через d:DataContext. Он, собственно, для этого и придуман (хотя поддержка в IDE хромает, но равна вот этому костылю на твоем скрине)

>>37965
по другому это просто прямо. не всегда нужна сортировка, фильтрация и тому подобное. К тому же CollectionViewSource довольно магическая штукенция - ее можно сбоку прикрутить, а не только посередке (хз как и почему это работает)
205 2437969
MVVM - антипаттерн.
206 2437979
>>37969
Почему же?
207 2437989
где можно почитать гайды на разметку xamarin forms android layout.XML? не XAML
208 2437991
>>37979
Очевидно, потому что школьник наткнулся на статейку о том, что любой паттерн - это антипаттерн.
209 2438015
>>37989
Нигде, xamarin умер. Тебе на maui.
210 2438073
>>33269

>интеграционные тесты


>Архитектура — DDD, микросервисная архитектура


>Алгоритмы


>Структуры данных


Так бы сразу и писал: "Чтобы взяли работать сеньором (хуевым)". Микросервисы нужны далеко не везде и перед ними надо разобраться с монолитной архитектурой. DDD на шарпе - это лес из костылей.
211 2438095
>>38015
у меня проект на нем, буду по гайдам на android studio делать
212 2438108
Анон, помоги умственно-отсталому разобраться с эвентами. Я вроде как понял суть: это возможность запустить цепочку методов из-за какого-то другого метода. Синтаксис тоже понятен. Но после десятков примеров я так и не разобрался, где нужно объявлять эвент, где выполнять EventName?.Invoke(); и где происходит подписка на эвент и отписка.
213 2438116
>>38073
Дебс, нахуя нужен джун в 2022 который знает только синтаксис? От джуна не требуется уметь использовать правильно архитектуры и паттерны, но требуется быть в курсе о существовании, хотя бы просто ЗНАТЬ что это. Это как взять на стажировку еблана который только начал учить синтаксис, нахуй такой нужен? Алгоритмы и структуры данных.. блять, да это база которую спрашивают у джунов НА КАЖДОМ собеседовании просто потому что у джунов больше нечего спрашивать ибо они и так нихуя не знают. Элементарно знать реализацию квик-сорта, дерева и еще парочки каких-нибудь линейных поисков, этого уже достаточно будет +-.
214 2438117
>>38108
Нужно чтобы реагировать на какое-то событие. Например событие - загрузка приложения, тут ты подписываешься на условное "OnApplicationLoad" которое вызывается где-то там. Хороший пример - https://stackoverflow.com/questions/1472498/wpf-global-exception-handler. Так же можно подписываться на условное добавление в бд и после того как бд изменилось - изменить какую-нибудь табличку в окошке, ну или в консоль что-то вывести. В общем события это буквально события.
1660818093963.jpg505 Кб, 834x1200
215 2438132
>>38116

> Алгоритмы и структуры данных.. блять, да это база которую спрашивают у джунов НА КАЖДОМ собеседовании


Нужно наизусть знать пик?
216 2438134
>>38132
Если планируешь устраиваться не в региональную аутсорс парашу - да.
217 2438182
>>38134
Почти никто эту хуету не знает и тем более не использует. Исключения - узкие места в огромных сервисах, к которым даже мидлов никто не подпустит.
218 2438189
>>38117
Это суть, ее я понял. Я не понял, где объявляется сам эвент, где происходит инвок и где происходит подписка-отписка. То есть вот есть три класса, в методе первого происходит событие, после которого мне надо запустить по методу из второго и третьего класса. Куда что писать?
219 2438196
>>38189
евент обьявляется там где событие и происходит. а где же еще.
инвок там же присходит (а из другого места и не даст сделать)

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

с цепочками событий разве что можешь раскрыть сахар до ручного add/remove чтобы чуть меньше было говнокода
220 2438202
>>38182
Да, всё так и есть. В реальности эту хуйню никто не юзает, однако спрашивают на собесах. Для этого и нужно эту хуйню изучать, если бы у тебя как у лида был выбор: взять двух идентичных долбоёбов на мидл позицию, но один знает алгоритмы. Очевидно лучше взять дебила который знает алгоритмы.
221 2438210
>>38202
Ох если бы у лида был такой выбор. На деле приходит десять мидлов, восемь из них сразу нахуй, оставшиеся два тоже долбоебы, но каждый по-своему, - надо выбрать какой-то один вариант долбоебства, с которым будет меньше мучений. Про алгоритмы что-то слышал один из восьми выгнанных на мороз, но его эйчар даже на тех не пустил из-за провала по софтам. Примерно такие выборы у лидов.
222 2438213
Пригласили на стажировку в яндекс, я джун, ищу первую работу. Чего ждать на собесе?
223 2438215
>>38213
Промазал тредом, извиняюсь
224 2438251
>>38213
Ты главное дверью не промахнись, а то тебя на синьора будут собесить во все дыры. А ждать от них следует много ненужных алгоритмических задач и дохуя одинаковых этапов
225 2438348
>>38210

>его эйчар даже на тех не пустил из-за провала по софтам


Больше всего этого боюсь. Я заика, и это явно будет влиять на решение о принятии меня на работу. Чтобы компенсировать сей факт мне нужно показать значительно лучшие знания, чем у остальных кандидатом, и то не факт, что не пошлют.
226 2438359
>>38202
Про каике алгоритмы идет речь, можно узнать?
228 2438373
>>38369
Какой шанс, что меня такую хуйню спросят, едва помню сортировку пузырьком
229 2438565
>>36739

> Ну и короче говоря, у меня тут тулкит, в котором есть опенсорсная реализация команд, в которых нет CanExecute,


Держу в курсе. Я покурил документацию, и там таки нашлись стандартные RelayCommand<> работающие идентично лекционному материалу. И всё там работает аналогично. ЗБС.

Возникла другая проблема. Мощной обвязки для управления ресурсами из ВПФ там похоже тоже нет. Ну знаете, все эти статик-ресурс-дикшионари и т.п. Курб мануалы дальше. А то окажется что я опять ССЗБ.
230 2438605
>>38565

>там похоже тоже нет


где ТАМ?
image.png46 Кб, 877x270
231 2438615
Ситуация хелп, ситуация соси. Имеется словарь Dictionary<string, List<(string, bool)>> DictionaryUserSettings1. В него, с помощью Linq, нужно засунуть ключ из другого словаря, заполнить лист дефолтными данными, например так:
{"usd", new List<(string, bool)>{(("Pizda", false))}},
{"rub", new List<(string, bool)>{(("Pizda", false))}},
Ключ из другого словаря я перекинуть могу, а как лист заполнить? Помогите, пожалуйста, я щас сдохну. И подскажите, пожалуйста, как надо ко всему этому дело обращаться.
232 2438616
>>38348

>Я заика, и это явно будет влиять на решение о принятии меня на работу.


На самом деле нет. Я работал с людьми с разными дефектами речи, в том числе и с заиками. Сейчас только конченые мудаки по такому параметру отсеивают.
Просто заранее, первом общении с HR, предупредишь ее, что имеешь такую особенность и все, она уже уведомит основного интервьюера.
В софтскилах главное чтобы ты мог формулировать мысль, нормально рассуждать без пустых выебонов и не быть душнилой.

PS. Понятно, что если у тебя такая степень заикания, что ты вообще не можешь из себя ни слова выдавить, но тогда тебе к врачу нужно в первую очередь, а не работу искать.
233 2438617
>>38616
А за картавость будут пиздить? Или це ок?
234 2438620
>>38605
В линуксе. Или на линуксе...
235 2438622
>>38616

> и не быть душнилой


И тут я понимаю, что мимо галеры пролетаю.
236 2438624
>>38620
Оно тебе надо, анон? Чего ты хочешь добиться, занимаясь ковырянием васянского порта впф? Это какой-то особый вид красноглазого мазохизма?
237 2438628
>>38620
где в линуксе? WPF в линуксе нет
а хамловых фреймворков больше одного.
238 2438631
>>38628
Ну так ты посоветуй в котором есть. Мне нда чтоб был хамл, мввм, и как можно больше фич из ВПФ. Ну например, принцип констрцирования интерфейса из примитивов, чтобы был. Чтобы это значит, например, кнопка была такая, что я бы в любой момент, как в ВПФ мог на неё навесить две пикчи по бокам и два лейбла с текстом в середине. И чтобы во вкладку таб контрола мог пихануть такой же набор примитивов вместо стандартного набора иконка+текст.

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

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

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

Авалонию не предлагать. Я её пробовал, говно какое-то.
239 2438632
>>38624

> Чего ты хочешь добиться


Хочу кроссплатформенное окошко настроек моего софта, чтобы не переписывать три раза для трёх целевых платформ. Ван райт - ван ран.
240 2438634
>>38631
Авалония конечно.

минимум левых либ не будет ибо нужно рантайм редер для каждой платформы.
241 2438635
Кто-нибудь настраивал гитхабовские экшены на прогон тестов? У меня тесты зависают сука на час, приходится ручками стопить. Делаю так:
dotnet restore .......
dotnet test --no-restore SolutionName/TestProjectName
Пишет сколько тестов нашлось, выводит пару упавших тестов и висит без вывода.
Думаю, что проблема в линупсе, но хз
242 2438639
>>38631

>Я её пробовал, говно какое-то


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

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

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

А больше ты ничего не найдешь. Всякие этоформсы и мауи это обертки над родными какими то там контролами, то есть ты ограничен в "хочу в кнопку впихнуть прогрессбар, в котором комбобоксы, в которых картинки котиков, в которых..."
243 2438640
>>38634
Ну ладно, уговорил. Щас попробую.
>>38639

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


Как выпилить?
244 2438645
У меня вопрос.
Есть хоть одна причина для докера не собирать Self contained приложение и не хуячить образ на базе alpine без .net'а?
Ну, типа блин. Разница в размере конечного образа - довольно существенна. Когда у вас в приложении сервисов под 100 - вес в 250MB становится - довольно болезненным. А тут раза в 3 - меньше финальный образ.
Может быть я за что-то не шарю?
245 2438648
>>38640

>Как выпилить?


просто не используй. там есть реактивный MVVM который означает, что контролы умеют его понимать нативно

но так же нативно понимают и обычные биндинги. Я свой петофреймворк переводил под авалонию. пострадало
1 некоторые xaml расширения мои
2 window.ShowDialog не блокирующий, то есть привет Taskи
3 Нет CommandManager, пришлось свой написать, хотя я все равно не использую, а предпочитаю чтобы команды знали от кого они зависят.
4 шрифт под винду все таки мылит (и это для меня фатально ибо мне кросс нахер не нужно). но у меня в системе мылит и электрон и говнохром.
5 Пришлось знатно погуглить чем заменяется CollectionViewSource и я нашел замену (щас уже забыл)
6 были проблемы при определении свойств не понимал где там калбэк навесить, но помнится что вроде можно и то просто я не знал.
7 нельзя узнать размер экрана
246 2438649
>>38640
А еще датагрид. поставил - не отображается. а оказывается нужно докинуть дефолтные стили для датагрид и он появится.
Безымянный.png169 Кб, 1496x868
247 2438653
Будут чимырить на работе, если проходя увидят на мониторе вот такое вот?
248 2438654
>>38653
Сразу повысят.
image.png57 Кб, 1269x301
249 2438655
>>38615
Пздц, всё оказалось легче, чем я думал
250 2438656
>>38655
Кстати, а подобное исполнение годится? А то я мог и через foreach всё заебенить без проблем
251 2438660
>>38653
Я думаю ты не устроишься на работу с таким кодом.
252 2438661
>>38653
зачем включать отображение пробелов?

А так...сразу стрингбилдер создавать - совсем память не экономишь
253 2438662
>>38660
Я как-бы уже.
Офигеть, сеньерский код разглядеть не могут...
254 2438665
>>38662
на скрине студия на русском языке. какой же тут сеньор
255 2438666
>>38661
Этот код - на 80% потребляет меньше памяти, чем среднее решение на литкоде, лол. Но да, я не экономил. Я пробовал это ваше модное TDD, на первой итерации, когда стало зелененькое, как настоящий сеньер я решил, что задача выполнена и пошел по своим делам.
256 2438669
>>38665
Спалил. Я ведущий программист всего лишь(((
Мне дома нет причин иметь английскую студию. А русскоязычная - по дефолту ж ставится.
257 2438670
Активное обсуждение формошлёпства выдаёт, чем шарписты на самом деле занимаются на работе. А как же бэкенд? На жабу и Go всё переписали?
258 2438674
>>38666
но это плохой код
он рождает стрингбилдеры с дефолтным капасити и (даже не один)

минимально хотя бы задавать капасити чтобы избежать расширения стрингбилдера
а то и вообще юзать стрингбилдеркеш (который падла интернал)
ну или скомуниздить ValueStringBuilder, который тоже интернал но это уже не так страшно
image.png81 Кб, 1318x488
259 2438686
Как мне в данном списке поменять значение? Помогите, пожалуйста.
260 2438687
>>38686
Пездец мужик че ты нахуевертил-то ёптабля? В чем суть задачи, что хочешь сделать?
image.png83 Кб, 228x530
261 2438691
>>38687
Нужно вывести инлайн клавиатуру с валютами в телеграм боте. При этом, если я на неё нажимаю, то false меняется на true, а потом я возвращаю обновлённый словарь, но заместо серого квадрата вывожу галочку. Как на скрине ниже
262 2438693
>>38687
то есть заместо "suka ebanaya" я потом поставлю серый квадрат
263 2438694
>>38691
Пездец мужик ты в ооп ваще не умеешь?
264 2438695
>>38694
умею, но хочу так
265 2438698
>>38686
ты пытаешься изменить часть иммутабельного кортежа
1660846283248.png58 Кб, 812x570
266 2438712
>>38634

> Авалония конечно.


>>38640

> Ну ладно, уговорил. Щас попробую.



Попробовал. И сразу вопрос. Почему они подключают датаконтекст в кодбихайнде? Это же харам-харам! Это же фу-фу! Это же, прости г-спди, антипаттерн!
267 2438713
>>38712

>Почему они подключают датаконтекст в кодбихайнде?


Ну ты даешь. Это класс App
в WPF ты тоже будешь в нем подключать как на скрине потому что это самый верхний уровень приложения
268 2438714
>>38712
Если по умолчанию, то не считается.
269 2438724
>>38714
>>38713
О, я вспомнил, почему я дропнул авалония в прошлый раз. Паблиш хеллоуворлда мне высыпал 100 Мб файлоты. Когда Eto.Forms высыпал всего 7 Мб под линуксом. А щас я под виндой и паблиш выдал 4,5!

Понятное дело, считать мегабайты в 2022 это... кхм... кхе... Но тем не менее, хотелось бы в пределах 20-ти мегов.
270 2438728
>>38724
Я не хочу платить за возможность кроссплатформенно запилить кнопачьку с двумя иконками сотней мегов пустого проекта!
271 2438730
>>38712
Во-первых, класс App это не окно. Это класс инициализации и то, что у него есть хамл - не делает его окном (просто хамл это же выражение кода в виде хлм, а не чисто язык разметки)

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

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

так что тут 2 стула.
272 2438750
Если честно, то я не понял. Нарыл про ValueTuple, начал его использовать, но он не работает. Только отдельно от словаря, а внутри словаря не могу изменять.
image.png63 Кб, 1259x303
273 2438756
>>38698
>>38686
Всё, наконец-то понял, как надо изменять
274 2438758
>>38653
Ебать, это что за язык?
275 2438760
>>38758
Си шарп
276 2438768
>>38653
А мог бы на регулярках написать
277 2438776
>>38653
Ебать, что за жирная бабища на фоне?
278 2438780
>>38768
Не мог
Рекурсивные вещи на регулярках разбирать гемор

>>38776
Ограничитель ширины строки же
279 2438782
>>38653

>Будут чимырить на работе, если проходя увидят на мониторе вот такое вот?


Да будут. Ставь на скрины гачи-мучи, только тогда зауважают.

Алсо.
Нахуй ты скобки фигурные в case'ах ставишь?
280 2438797
>>38617

>А за картавость будут пиздить? Или це ок?


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

>>38622

>И тут я понимаю, что мимо галеры пролетаю.


Пиздуй колбаской. Думал тебя пожалеют - нет. Душнил никто не любит.
281 2438859
>>38760
Имхо любой адекватный лид при виде такого просто сожжет нахуй всю твою кодовую базу не читая и выпишет билет в бесконечный отпуск. Даже в крестах такой пиздец не пишут.
282 2438897
>>38782

>Нахуй ты скобки фигурные в case'ах ставишь?


Я не тот чел, но я тоже ставлю фигурные скобки. Потому что иначе эта хуйня не фолдится, плюс без скобок выглядит хуёво, как будто пролапс кода случается
1660855853333.png10 Кб, 324x269
283 2438917
>>38897

> Потому что иначе эта хуйня не фолдится


Кстати двачую. Я сиподобные языки только джва года как плотно изучаю и уже подметил, что скобки можно ставить просто так, для удобства. Плюс, у скобок есть преимущество, скобки это область (scope), то есть с их помощью можно оперировать одинаковыми локальными переменными внутри них. Насколько это нужно я ХЗ, но изъебнуться можно.
284 2438973
>>38917

>Насколько это нужно я ХЗ, но изъебнуться можно


Я так иногда делаю, чтобы переменные потом в коде не мешались, если они только на разок нужны. Насчёт эффективности хз, насколько негативно сказывается
Повлияет ли уход Microsoft на C#.NET? 285 2439125
Не смог нагуглить, обращаюсь сюда. Начал изучать C#/.NET пару недель назад, сегодня увидел новость о том, что "Microsoft постепенно сокращает свой бизнес в России до тех пор, пока там почти ничего не останется" и стало как-то тревожно.
Означает ли это, что в скором времени .NET платформу использовать в России будет невозможно/никто не будет, и, соответственно, джуну найти работу с этим стэком будет нереально?
Если проще сформулировать, то повлияет ли полный уход Microsoft на C#/.NET разработчиков в России?
Как я понимаю, C#/.NET сейчас open-source и ограничения Microsoft могут повлиять разве что на недоступность Visual Studio, но хотелось бы почитать мнение шарящих людей.
286 2439128
>>39125
Нет.
287 2439130
>>39128
Отличный ответ, а по развернутей можно?
288 2439134
>>39133 (Del)
Вот и винда с офисом останутся, а на шарпе писать запретят.
289 2439137
>>39135 (Del)
То-то дохуя капиталистов съебалось из этой страны, очень уж им похуй.
290 2439143
>>39137
Типа java маст-хэв. Так получается?
291 2439151
>>39142 (Del)
Ч.т.д.
>>39143
Нет, Оракл из этой страны съебался ещё раньше. Но хотя бы есть выбор IDE.
292 2439154
>>39149 (Del)

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


Только с целью извлечь ещё больше прибыли или хотя бы не проебать то, что есть. Даже если прикрываются высокими идеями для общественности, которая им эту прибыли и приносит.
293 2439167
>>39151
А что тогда ? Направь меня на путь истинный.
294 2439174
Подскажите, через что в С# сделать Local Strorage (хранение настроек приложения в файле с загрузкой и сохранением)?

Ну или текстовый инишник, который можно загрузить в переменные...
Finworldmap2022.gif108 Кб, 1000x884
295 2439181
Быстрофикс карты
296 2439182
>>39178 (Del)
Разве он умеет сохранять ?
297 2439186
>>39125

>шарящих людей.


Сейчас даже в банках РФ из первой пятерки новые проекты на .net ебашат (и старье на .net6 активно переводят). Я думаю при их финансах и осведомленности, если бы действительно на горизонте маячил реальный вендекапец, то все бы срочно переводилось на другие рельсы. Чего даже близко не происходит. Так что не ссы и учись дальше.
298 2439197
>>39178 (Del)
Дядь, мне бы для консольного приложения?
299 2439200
>>39197
проще на коленке слепить за 15 минут
изображение.png25 Кб, 669x237
300 2439213
Как красиво реализовать замену запятых?
301 2439249
>>39213
string.Replace(',', ' ');
302 2439251
>>39249
Но мне нужно их заменить только внутри кавычек. Я конечно могу извлечь подстроку, заменить там, но как потом вставить эту подстроку в строку на место старой?
303 2439255
>>39251
string replacement = ","; //тут можешь поставить на нужную тебе замену
Regex.Replace("pizdec',' hu','i, 2ch,,,", @"(',')", replacement);
304 2439306
>>39213
Если регекс нужно будет юзать часто, и ты можешь его создать заранее, то добавь флаг компайлед. Иначе можешь кинуть его нахуй.

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

...

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

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

Если кто шарит, как можно было сделать норм регекс тут, был бы рад почитать. Моя хуйня запятую онли не ловила, только вместе с ебалой, а игнорирование групп не работает на сам регекс, так что только запятую выделить не получается.
При попытке выловить группы вокруг запятых, всё ломалось, если между кавычками несколько запятых.
305 2439317
>>39306
блять, пока дрочился в редакторе, забыл хуйню удалить

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

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

Так что учи и не парься, но только если идешь в сторону веба. По идеешкам: если студия станет недоступна, то всегда есть райдер и сброс триала, либо вскод с напильником, но проще юзать впн, без которого в нынешние времена все равно никуда.
307 2439356
>>39342
Rider ведь тоже не поюзаешь вроде как, за него платить надо. А жбрейнс съебали. Надо пилить отечесвтенную айдее под .нет
308 2439378
>>39356
Пилить отечественную нерентабельно. А райдер прекрасно работает со сбросом триала. Делаешь новый ящик - заводишь новый аккаунт - включаешь новый триал - профит. Пять минут в месяц занимает.
309 2439403
Продолжаю постигать азы wpf по уроками шмачилина. Решил добавить фильтр стран. И вроде работает, но почему так медленно?
На первом пике свойство привязанное к TextBox, на втором сам фильтр, на третьем свойство привязанное к ListBox
310 2439409
На связи вкатунщик студент 2го курса cs Не знаю, что выбрать в перспективу - Java или C#. Выбираю только из этого, остальное на бэк не интересует. Шарп по вакансиям сейчас выглядит слабее, однако ощущение, что это пока, и дальше он будет только набирать обороты,а от жабы все желчью плются, но зато там работы дохера. я не из рашки, поэтому ситуация с уходом МС меня мало волнует
Подскажите, мастера сего языка, ставить всё на красное изучения шарпа? С будущей возможностью вкатиться в европу, там сейчас вроде тоже жаба популярнее, не считая швеции какой-нибудь
311 2439428
>>39409
Лол, конечно .NET выбирать надо. Смотри в чем прекол. Майки крупнее оракла, они могут себе позволить тестировать что-то новое и даже если обосруться и не выстрелит - ничего плохого не случится в мире .NET, а в джаве же всё наоборот. Каждый апдейт оракл трясётся и надеятся чтобы выстрелило, ведь если нет - это огромные убытки для компании. C# и вся платформа активно развивается, майки вливают дохуя денег в платформу и она будет с каждым полугодием всё лучше и лучше. Джаву сейчас держит только легаси написанное в течении 20 лет, но сам язык развивается очень медленно и активно пиздится из как раз таки сишарпа, т.е выбрав джаву ты будешь писать на обрезанном C#.
312 2439437
>>39403

>И вроде работает, но почему так медленно?


Потому что ты несколько тысяч элементов в оперативную память суёшь, а затем их еще и отрендерить надо. Юзай пагинацию.
313 2439441

>Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток


Ебал рот этой многопоточности ебаной. Что я делаю не так?
FlowDocument result = null;
Thread thread = new System.Threading.Thread(() =>
{
result = parser.Document;
});
thread.TrySetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
Document = result;

Что здесь не так? Я создал переменную в главном поток, запустил другой поток, из него вернул результат в эту переменную, затем хочу записать результат в другую переменную, которая ждала завершения потока, и получаю эту ебаную ошибку. Почему, нахуй? Неужели нет способа просто получить данные из потока нормально? async await использовать не могу, потому что мне нужно ApartmentState.STA, без него нихуя работать не будет у меня.
314 2439443
>>39441
Опиши свою задачу, что ты хочешь сделать?
315 2439444
>>39443
Хочу засунуть parser.Document в поток и получить на выходе данные, поток должен быть с ApartmentState.STA. Что в парсере особо не важно. Точнее, без ApartmentState.STA он будет отъёбывать, потому что некоторые части его хотят работать с главным потоком, ибо являются элементами UI. Вроде как.
316 2439481
Пацаны, а нахуй нужны абстрактные классы, если есть интерфейсы? Если нужны данные - в интерфейс всегда можно загнать и проперти, которые тоже де-факто методы. Я предполагаю, что абстрактный класс будет нужен там, где нужны филды, но, опять же, нахуй нужны филды, когда есть проперти с гораздо более гибким доступом?
317 2439667
Посмотрел некоторые главы в книге от майков .NET Microservices и ахуел от абстракций и говнокода в частях про работу с базой данных.

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

Понятно, почему на меня на собесах смотрят как на скуфа старого.
318 2439672
>>39481
Раньше нельзя было имлементацию методов запихнуть в интерфейс, а в абстракный класс можно было.
матрица.jpg7 Кб, 289x174
319 2439680
>>39409
На шарпе можно попасть в ПРОСАК.

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

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

В итоге остается полтооры вакансии, где можно пилить нормально citadel сидя на линуксе, без легаси и зумерского говна. Ноудискас. Хейтеры лесом.
320 2439686
Всё, ушла.

>>39680
321 2439695
БЛЯТЬ, что это зазалупа???? Какой нахуй "<ValCurs xmlns=''> "??
Помогите, пожалуйста. Пытаюсь десериализовать xml, который приходит с сайта, приходит текстом, а я потом сохраняю в формат xml. Почему не получается десериализовать? Если использовать xRoot, то мне просто выдаётся пустой members. На скринах xml, код и тд. Заааа чтоооооо
image.png21 Кб, 1518x672
322 2439697
323 2439698
>>39697
Пиздос, я слепой. Ладно <ValCur есть. Но если использовать рут-хуют кидает тот же эксепшен
image.png18 Кб, 571x596
324 2439701
image.png53 Кб, 873x236
325 2439703
326 2439729
Баля дебс который говнокодит свою хуйню, сделай просто по-человечески вот так:
327 2439735
>>39672
А, точно, это ж для имплементации методов. В интерфейсах это делать до сих пор считается моветоном.
image.png16 Кб, 454x126
328 2439771
329 2439773
>>39771
Покажи жсон, с какого сайта парсишь?
330 2439775
>>39773
Так не жейсон...А xml
332 2439788
>>39775
>>39779
Ну так понятное дело что >>39771 не запустилось, у меня ж там жсон. Нахуй ты ебешься с хмл рыготным если есть вликолепный жсон? https://www.cbr-xml-daily.ru/daily_json.js и юзай тот код что я приложил
333 2439795
>>39788
Хотел сам сделать бота. Типо пет проект в итоге завяз в этой хуйне. А вообще, бот уже имеет рабочий функционал, но код, что я навоял - просто ад ебейший. Так что решил переделать
334 2439798
>>39795
Ты завяз на хуйне потому что пытаешься здесь и сейчас, а нужно сесть и продумать ООП и всю хуйню. То, что ты высераешь в треде - я в шоке, поверь, я если бы увидел такой пет-проект, я бы тебе даже отвечать наверное не стал на звонки после собеса.
335 2439877
>>39798
Верно, я спонтанно решил сделать бота, при этом нихуя не продумав. Ошибка, конечно, но я не представляю даже с чего начать.
336 2439896
>>39680
Чет обосрался с микросервисной джавы которая должна составить конкуренцию ASP NET CORE
337 2440015
>>39896
Так жаба вне конкуренции. Аспнет - лучший выбор для монолитов, а аспнеткор - лучший выбор для опенсорсных монолитов.
338 2440034
>>38859
Это просто-понятный императивный код, няша, который писался для литкода, чтобы потроллить вкатунцов из /b/.
Что ты от меня хочешь? Чтобы я по солиду разложил все это дело, когда мне нужно было сраться с вкатунцами? Это раз.

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

Так вот. В кодинге - первое что тебе нужно уяснить - ты решаешь не свои проблемы, не удовлетворяешь чувство прекрасного, не доказываешь какой ты у мамы умный и прочее - ты решаешь проблему конкретного клиента. И не за спиной в тихую принял решение, а нахуячу я ему 100слойную архитектуру, с микросервисами-хеурвисами, и похуй как он потом это будет поддерживать без тебя; а прямо подходишь и говоришь: Ребята, вы готовы потратить в 10 раз больше времени и в 25 раз больше деняк, чтобы возможно в будущем у вас не было проблем с допиливанием функционала, расширением, поддержкой и прочей залупой. И когда ты увидишь клиента, который скажет: "Да, берите все мои деньги, делайте сколько будет нужно, лишь бы было хорошо", вот тогда ты и начинаешь лезть в залупу. До того как твой клиент не дал согласие - ты делаешь ровно то что он просит, максимально быстро, максимально дешево.
340 2440104
>>40058

>"Какой блядь, амазон, я цветами торгую через интернет, сука, ты больной чтоли?"


Ты описываешь ситуацию, где и клиент и исполнитель - шизоиды. Для такой хуйни надо нанять фрилансера на петухоне/петухапе, а не дотнет галеру. Дотнет берут как раз для случаев, когда:

>готовы потратить в 10 раз больше времени и в 25 раз больше деняк, чтобы в будущем не было проблем с допиливанием функционала, расширением, поддержкой и прочей залупой



Дотнет - это платформа для жирного энтерпрайза, которую надо поддерживать десятки лет и постоянно допиливать функционал. И как раз для этого там статическая типизация и ооп, чтобы код был максимально легко расширяем и максимально багоустойчив.
341 2440117
>>40104

> Дотнет - это платформа для жирного энтерпрайза


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

>джуна из /b/


Вкатыша из /b/

бухлофикс
343 2440217
>>39356

>>39378

>Пять минут в месяц занимает.


но это только тем, кому не хочется сделать чтобы 5 минут в полгода - год
344 2440238
>>40117
Двачую кстати, все относительно современные успешные продуктовые проекты выросли из какого-то говна, написанного, внезапно на пхп.

ВК - пхп.
Озон - пхп.
Авито - пхп.
Фейсбук - пхп.
Яндекс - пхп и perl.
Гугл - джава и питухон (на тот момент cutting edge технологический стек)
345 2440263
>>33268 (OP)
Аноны, помогите советом.В институте проходили С#, но потом год забрала работа одна и я выкатился из всего, сейчас хочу взяться по крупному за программирование, и вот думаю будет проще взять вспомнить С#, но как это применить потом? За что мне лучше взяться и на какую работу я смогу рассчитывать?
19192be53df3176390c7ef513363ae5c.jpg80 Кб, 720x980
346 2440271
>>40263
Очевидно же.
image.png52 Кб, 1108x750
347 2440403
Пасаны, помогите неткор нюфагу. Есть сайт один, еще на асп нет фрамеворк, структура папочек которые у меня есть пикрел.
Мои вопросы:
1)Как мне это запустить на 22 студии?
2)Там нахуй ни одного .cs файла нет, только вьюхи cshtml и папка с ангуляр/жс скриптами. Я так понимаю, там всё-таки чего-то не хватает?..
348 2440479
>>40346 (Del)
Как понять куда двигаться, вопрос в этом ведь.Что изучать в первую очередь, если я освежил уже синтаксис языка, вспомнил об основных типах данных, операторах, классах и методах?
349 2440774
>>40403
Бтв, папка в которой это все лежало - называется www
350 2440991
Такой вопрос по поводу SOLID, в частности по поводу Liskov Substitution Principle (LSP). Если я усилю постусловие в классе-наследнике, то я уже не могу использовать класс-наследник заместо базового класса, да?
351 2440999
>>40022 (Del)
Спасибо за предложение, я тоже задумался по поводу ревью моего говнокода. И я придумал вот что: буду пилить проект, потом выкладывать на гитхаб, а потом заливать на переполнение стека, чтобы там оценили. Сюда тоже ссылку кидать буду.
а пока я пилю трёхслойную архитектуру для бота, попутно изучая основы архитектуры ПО)
352 2441009
>>40991
В общем случае да.
353 2441017
>>41009
А что я нарушаю? Инваринтность, скорее всего нет, т.к все условия сохранены. Или, скорее всего, я нарушаю Postconditions, но там, где я читаю говорится только про ослабление postconditions.
354 2441019
>>41009
То есть, по сути, усиление/ослабление postconditions, а также усиление/ослабление preconditions - это одна хуйня и так делать нельзя?
355 2441027
>>39798

> пытаешься здесь и сейчас, а нужно сесть и продумать ООП и всю хуйню


Никогда нихуя не продумывал. Садился и делал всегда просто. Проблем никогда не возникало особых
ЧЯДНТ?
356 2441028
>>41023 (Del)
о, тоже подписан на этого чела
357 2441037
>>41027
Я тоже так делаю, а потом просто привожу всё к цивильному виду. Но всё-таки довольно неудобно, хочется иметь хоть какой-нибудь набросок. Я когда диплом в шараге писал, начал делать фронт для сайта, в итоге не имея общего представления просто бегал по понравившимся сайтам и по кусочкам пиздил оттуда дизайн. Времени проебал много, а можно было просто взять из фигмы какой-нибудь дизайн и по нему делать. в итоге мне дизайн подрихтовал дипломник, чтобы он был однородным
358 2441051
>>33268 (OP)
Чисто ООПшный вопрос без привязки к языку. Допустим есть базовый класс Animal и я хочу от него отнаследоваться. Все наследники будут как-то расширять базовый класс, добавлять новые методы и поля. Например дочерний класс AnimalWithSuperpower будет иметь метод ShootLaserBeamsFromEyes, уникальный только для этого класса. С таким подходом появляется проблема, что если я храню в одной коллекции множество дочерних классов и пытаюсь с ними потом как-то работать, то мне нужно постоянно делать сужение типа (проверять что метод присутствует в объекте).
Как это можно отрефакторить? Первое что приходит на ум, это запихнуть все методы всех наследников в базовый класс, а реализацию запиливать уже непосредственно в наследниках. Но что-то мне подсказывает что это еще больший говнокод чем делать проверки инстансов.
Как вообще люди делают в таких ситуациях?
359 2441062
>>41023 (Del)
Ифалогия - плохо. Понял + принял
360 2441085
>>41081 (Del)
Не понял, к чему это. Я вроде написал, что понял
361 2441093
>>40479
Возьми банальную идею сайта (магазин/соцсеть/имиджборд) и делай минимальный рабочий вариант, по ходу читая документацию и разбираясь, а как заработает - наращивай жир и фичи.
Потом учи всякие паттерны и архитектурные подходы и перепиши нормально.
362 2441098
>>41051
Создай интерфейс IShootLaserBeamsFromEyes, и потом делай проверку на сайт.
363 2441100
>>41098

> на сайт.


на тип

отвлекся на нижний пост
364 2441107
>>41098
Понял, благодарю. От проверок походу никак не уйти
366 2441139
>>41051

> если я храню в одной коллекции множество дочерних классов


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

Мой совет, завести коллекцию типа AnimalWithSuperpower и кидать в неё всех таких.
367 2441143
>>41128

> Подскажи пожалуйста вариант решения


Avalonia UI
Eto.Forms
MAUI
368 2441150
>>41143

> MAUI


Не работает на прошивке для роутера линуксе.
369 2441155
>>41150
Оп треда по ссылке работает на МАКе.
370 2441158
>>40991
Вообще, по идее можешь. Если ты усиливаешь постусловие, то по идее, ты всего лишь сокращаешь множество состояний на конец вызова до какого-то подмножества (внутреннее состояние объекта, возвращаемое значение и т.д.). Так как ты именно усиливает постусловие, то значит выбираешь это подмножество из множества уже допустимых состояний. А значит, не сломаешь код, который это использует. Вот ослаблять да, нельзя.
371 2441163
>>41158
Не сломаю, но работать будет не так, как ожидалось, правильно?
372 2441171
>>41163
УСИЛИВАТЬ НЕЛЬЗЯ
@
ОСЛАБЛЯТЬ НЕЛЬЗЯ
@
ВООБЩЕ НАСЛЕДОВАНИЕМ ПОЛЬЗОВАТЬСЯ НЕЛЬЗЯ
asd.png52 Кб, 1751x868
373 2441172
Не особо работал с голым npgsql, щас вот решил понюхать батчинг. Вопрос - можно ли все эти new new new (batch command, parameter) один раз создавать и переиспользовать и насколько это хорошая задумка?
С BatchCommands вообще непонятно, когда создаешь новый NpgsqlBatch он дает в таком стиле команды пихнуть, а отдельно свою хуйню NpgsqlBatchCommandCollection не дает создать, и не дает скастить другие коллекции к ней. Вот например, если сделаю один static батч и буду в него новые соединения пихать и менять параметры достойно будет?
374 2441176
>>41171
Это если я солид соблюдаю. А если нет - похуй
375 2441177
>>41163
Почему же. Если использующий твой класс код написан правильно, то он уже готов к тому, что после вызова будет принято одно из допустимых состояний. То что твой класс сужает это множество ничего для вызывающего кода не меняет, так как какое состояние бы не было на момент окончания вызова принято, оно все ещё остаются допустимыми. Если же вызывающий код от этого ломается, то он скорее всего почему-то знал что-то о деталях реализации базового класса, чего бы ему не следовало.
376 2441182
>>41177
Ой, блять, сорян. Я перепутал с ослаблением пост условия.
377 2441195
Хочу кодревью! Давайте мне кодревью!
378 2441196
>>41181 (Del)
Даппер и юзал, но я как я понял в нем батчинга. Гуглятся только bulk insert/update/...
379 2441203
>>41195
Зачем сеньору кодревью?
380 2441206
>>41203
Ну, в прошлый раз мне сказали, что уволить за мой код нужно. Я вот засомневался в своих силах и теперь хочу понять, что я делаю не так...

>>41204 (Del)
Где я троллил кого-нибудь?
381 2441208
>>41206

> Я вот засомневался в своих силах


Ну и какой ты сеньор тогда? Ты должен был разъебать по фактам своих оппонентов.
382 2441211
>>41139

>Мой совет, завести коллекцию типа AnimalWithSuperpower и кидать в неё всех таких.


Совет годный, скорее всего так и сделаю. Мой практический кейс такой: есть класс таблицы (Grid) и в ней могут находиться колонки разных видов, унаследованные от GridColumn. Я все колонки сейчас храню в одной коллекции ибо это на первый взгляд логично. Но это привносит кучу мусорных сужений. Наверное реально будет проще разделить по видам и потом склеивать при маппинге в UI слой.
383 2441219
>>41213 (Del)
Но разве в этом кейсе не напрашивается наследование? У меня около 5 видов колонок (и будет еще больше), у которых общая кор логика, типа валидации, фильтров, но также есть различия в поведении и разные поля.
384 2441222
>>41221 (Del)
Подписался на пост. Тоже интересно.
мимо
385 2441227
>>41222
Не покажет он ничего. Это местный шиз, который постит везде "Не уходи из треда! Сейчас подробно всё распишу".
386 2441231
>>41229 (Del)
Ты композицию собираешься заюзать? Я хз как еще можно
387 2441235
>>41229 (Del)
У тебя 10 минут. Время пошло.
ezgif-2-76add9fdfe.gif14 Мб, 817x720
388 2441244
>>41195
Видимо ревью не будет.
Тогда просто гифку с результатом вам дам.
389 2441250
>>41244
Почему 17 орбита движется неправильно?
390 2441251
>>41195
Как сделать такой же VS ?
image.png1,2 Мб, 1103x1360
391 2441254
У меня вопрос про ML.NET. Насколько актуально вкатываться через шарп, или лучше сразу идти вкатываться через питон?

Хз как спросить правильно, типа насколько ML.NET полноценен в этом плане или это просто маркетинговая заглушка, мол, у нас есть типа машинное обучение.
392 2441256
>>41219
Посмотри ещё в сторону паттерна Visitor. Возможно сможешь натянуть его на свой кейс. Он как раз позволяет избавиться от необходимости явной проверки типов и даункастов.
393 2441257
>>41250
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);
}

>>41251
Я вот эту вот щтуку поставил.
https://marketplace.visualstudio.com/items?itemName=unthrottled.dokithemevisualstudio
394 2441287
>>41284 (Del)
Нет. Это шарп и SFLM.
395 2441292
>>41284 (Del)
Хуюнити.
396 2441295
>>41227
Охлол! Серьёзно?
лет 5 назад в /б/ я баловался подобным тралингом, а тут спустя 5 лет меня подловили на таком же
397 2441297
>>41284 (Del)

> Это юнити?


Это Авалония UI?
398 2441307
>>41298 (Del)
Авалония - это как жавафх.
А вместо спринга тут .неткор+.
Вместо ваадина/gwt тут блазор.
Безымянный.png33 Кб, 1924x1024
399 2441324
>>41195
Пока не было кодревью - я нашел ошибку в формуле рассчета скорости.
Ну и сделал красивые ЛГБТ хвостики.
400 2441415
>>41307
И на выходе скомпилированный хеллоуворлд весит сто мегов. Сто, Карл! Сто, Хесус!
401 2441435
>>41415
ась
402 2441438
>>41435
124 Мб
403 2441444
>>41415
А нахуя мерять хеллоу вордами? Он весит 100мб, готовая программа со сложной бизнес-логикой 120мб.
404 2441445
>>41438
что 124мб? к чему эта жалоба? где не так же?
405 2441446
>>41445
Eto.Forms, Хеллоуворлд = 4,5 Мб.
>>41444

> готовая программа со сложной бизнес-логикой


Не пизди.
Сложная бизнес-логика это килобайты, ну десяток килобайт формул. Данные - это СУБД, висящая отдельно, в т.ч. на серверах.
406 2441447
>>41445
Ах да, хоть ВПФ и не кроссплатформа, а мы тут как бы кроссплатформу обсуждаем, но хеллоуворлд на ВПФ вообще = 450 Кб. Кило! Не Мега!
407 2441448
>>41446

>Eto.Forms, Хеллоуворлд = 4,5 Мб.


а если прибавить к нему формсы, гтк и что там еще что на маке
сколько получим?
408 2441451
>>41448
Всё прибавлено, командой dotnet run запущено и после сборки измерено.
409 2441454
>>41451
Щас ещё ради интереса перегружусь в линукс и пособираю там, и сравню размеры.
image255 Кб, 1576x1642
410 2441456
>>33268 (OP)
Почему код типа как на пикриле компилировался и работал безошибочно много лет, а свежайшее обновление студии вдруг начало ругаться и выдавать ошибку CS8347?
https://pastebin.com/uZAVDDRa

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

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

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

Я ни разу не видел селфконтейнед дотнетного софта, какой установщик не скачиваешь, он всегда предлагает скачать самому или установить требуемый фреймворк. Поэтому, этот аргумент расцениваю слабым, но всё равно интересно, как так получается, что Авалония тянет меньше сборок дотнета? Потому что у неё больше сторонних сборок? Которые и занимают эти 100 Мб в простом (не селфконтейновом) билде?
415 2441482
>>41473
Всё, разобрался с вопросом. Авалония в один билд засовывает отдельной папочкой все рантаймы всех поддерживаемых систем. Если, к примеру, находясь под виндой, удалить оттуда все лишние рантаймы, то размер билда становится 23 Мб, это хоть и больше 4,5, но уже в приемлемых рамках.
416 2441767
>>41482
Тебе додику сказали, что авалония рисует сама и сама все тащит, а твои рисовашки окон 4,5мб дергают уже установленные движками либы, отсюда и разница.
Зачем я кормлю тупых? Лучше ты был бы троллем
image.png1,2 Мб, 1103x1360
417 2441851
У меня вопрос про ML.NET. Насколько актуально вкатываться через шарп, или лучше сразу идти вкатываться через питон?

Хз как спросить правильно, типа насколько ML.NET полноценен в этом плане или это просто маркетинговая заглушка, мол, у нас есть типа машинное обучение.
418 2441883
>>41851
ML не про программирование вовсе. Актуальнее всего туда вкатываться через математику, особенно статистику и вычмат. Там поебешься с бумажками и экселем, и потом при изучении хоть мл.нет, хоть питона поймёшь, что они там в роли скриптов для предобработки и конфига для запуска готового движка (а раз так, не имеет значения, на чём их писать), и будешь ты ими пользоваться меньше половины рабочего времени.
419 2441939
>>41324
Ну вот, теперь 17 норм летит.
420 2441948
>>41883
Благодарю.
421 2441949
>>41883

>конфига для запуска готового движка


Что за движок, tensorflow?
422 2441959
>>41949
Тензорфлоу самый известный, но есть ещё несколько, иногда пишут и свои.
423 2442068
>>34488
Решарпер для говноедов. Либо сидишь на райдере либо на чистой вс. Тормозные плагины нинужны.
424 2442075
>>42068
Уроки сделал?
425 2442077
>>42068
Сделал твой рот. VS с решарпером начинает лагать шо пздц. Если нужен решарпер, своруй rider или "купи" лицензию за 150р/месяц. Если нет, то тебе и VS хватит.
426 2442094
>>42077
Школотун, купи себе нормальный комп, а не говно на пентиуме.
427 2442098
>>42077
Жидбрейнсы делают тормознутый плагин, чтобы ты купил райдер? Хм, а это выглядит как бизнес.
428 2442108
>>42098
Тормознутый плагин, чтобы покупали ещё более тормознутый райдер.
429 2442135
>>42094
Я - другой анон, но у меня на не слабом таком компе (Ryzen 5700x, NVMe SSD и 32 Gb 4000 MHz DDR4) решарпер все равно заметно подтормаживает, особенно при открытии проекта. Райдер работает лучше. А чистая студия, особенно 22-ая вообще летает
изображение.png12 Кб, 732x24
430 2442180
Почему у меня студия начинает ругаться на эту строку, когда в другом проекте внутри решения, никак с этим не связанным, я делаю синтаксическую ошибку? Мне просто интересно, на компиляцию никак не влияет.
431 2442181
Восстанавливаю некро асп. Подскажите плиз, что такое этот ваш OWIN? Это тоже что-то мертвое? Это что-то, позволяющее запускать сервер не в иисе, а где угодно? (Где????)
432 2442203
>>42181

>Подскажите плиз, что такое этот ваш OWIN?


это веб интерфейс для связи сервера с веб приложениям.
в руби такое rack, в питоне wsgi наверное, как то так

>сервер не в иисе, а где угодно?


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

>Это тоже что-то мертвое?


узкая применимость. ведь есть кестрел для self-hosted и плодить свое уже не нужно.
ну может разве что для тестирования.
433 2442264
>>41767

> авалония рисует сама


skia.sharp там всё рисует, а авалония тащит в зависимости. А в ето.формсах тащатся зависимости нативных графических либ каждой платформы, из-за чего ето.приложение выглядит нативно в каждой платформе, а приложение Авалонии выглядит везде одинаково, как веб-приложение на электроне с дефолтной темкой с цсс-файлопомоек. Кстати о зависимостях. Что делает сборка jetbrains.annotations.dll в выходной выдаче скомпилированного хеллоуворлда? Если я, к примеру, начну продавать своё приложение на Авалонии, то не доебётся ли до меня jetbrains типа я у них лицензию не покупал?
434 2442286
>>42264

>skia.sharp там всё рисует


и еще бы умела рисовать нормально шрифты (((

>Что делает сборка jetbrains.annotations.dll в выходной выдаче скомпилированного хеллоуворлда?


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

>то не доебётся ли до меня jetbrains типа я у них лицензию не покупал?


да кому ты нужен у нее MIT лицензия
1661110023590.png39 Кб, 645x773
435 2442310
>>42286

> да кому ты нужен


Никому.
436 2442328
Все время теряю свое сообщение.

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

>>42336
Двачую
1661111911220.png13 Кб, 490x222
440 2442348
>>42345
УМВР
441 2442360
>>42348
Че сказать-то хотел? Ты можешь написать int a = new int(5), вот и работает
1661112789515.png27 Кб, 553x390
442 2442375
>>42360

> Че сказать-то хотел?


Сорян, думал ты - это он. А ты, видимо тоже подумал, что я - это он? Но я мимокрок.
443 2442548
>>39441
Бамп вопросу, так и не смог пофиксить
444 2442554
>>39441
Задай на SO вопрос бля, тебе никто тут уже не ответит. Я не знаю как решить данную проблему.
445 2442556
>>42548
Посмотри видос Хача про многопоточность (Xpuct на Youtube). Базарю, сразу всё поймёшь, ещё захочеш.

>>


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

ЧЯДНТ?
446 2442559
>>42554
Всё из-за того, что ошибки переводятся на русек. На инглише их легко гуглить.

> The calling thread cannot access this object because a different thread owns it

447 2442561
>>42556

> И вроде всё работает, но только, когда окно получает сообщения (когда я мышкой вожу).


> ЧЯДНТ?


Отбой, это баги ГТК.
ебучая прошивка для роутера так и не может в десктоп в 2z22
448 2442625
>>39441
Какая проблема прыгнуть в нужный поток, как это собственно и положено делать?
449 2442627
>>42556

> он там какую-то чорную магию делает на уровне МСИЛ что не надо утруждаться с сеттерами.


ничего там черного нет. Просто пишет гет сет по INPC за тебя везде где видит INPC. Можешь даже декомпил посмотреть. Никакого отношения к мышке не имеет.
450 2442687
>>42625

>прыгнуть в нужный поток


Что конкретно ты имеешь ввиду?
451 2442773
>>42687
в винформс это Control.Invoke
в WPF это Dispatcher у него методы выполняющие код в УИ потоке
обычно же SyncronizationContext - а он есть ибо только гуи придирается к потока, а раз он есть то смотри выше.
452 2442776
>>42773
А, это я пробовал, один хуй не робит, та же самая ошибка про владельца потока
453 2442779
>>42776
не знаю что ты пробовал. постоянно в WPF через Dispatcher обращаюсь к контролам.
454 2442809
>>33268 (OP)
Антуаны, потыкайте-ка тестерами - воот этого пира https://github.com/username1565/CSharpServers/tree/Peer
а то он меня уже вкрай заебал.
455 2442818
>>42809
Че за говнище?
456 2442840
>>42818
Ну блядь, там код, вон же написано оно всё.

Это короче недопиленный пир, шобы в локалке искать других пиров и по сети - синхрить между пирами базу наноборды (хэш-таблицу): https://github.com/username1565/nanoboard/issues/21#issuecomment-1200283392
457 2442845
>>42840
Пчёл, расфасуй по папочкам, хуё-моё туда-сюда, скажи что не работает и как хотелось бы чтобы работало. Если ищешь тестировщиков - тут их ты не найдешь
458 2442846
>>42779
Ты напрямую к контролу что ли обращаешься в впф? Я пытаюсь обновить переменную к нему привязанную и получаю кучу дерьма в лицо
459 2442850
>>42845

>Пчёл, расфасуй по папочкам, хуё-моё туда-сюда


Папочки вон, они, все, в разных бранчах залил. Пир чтоб собрать - просто батник тыкни, или Peer.sh запусти в mono, и там короче вся хуйня эта.

>скажи что не работает и как хотелось бы чтобы работало.


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

>как хотелось бы чтобы работало


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

>Если ищешь тестировщиков - тут их ты не найдешь


Ну, тогда, наверное, надо бы их прямо туда нагнать, в Issues, какбє.
460 2442851
Хочу изучить ASP.NET, но не знаю как к нему подступиться и с чего начать. Очень сложно учиться, когда не знаешь что тебе надо знать, а впереди лишь книга на 1000 страниц. Какие темы нужно знать, чтобы:
1) Меня приняли работать за еду
2) Я смог написать условный двачик
Если есть какие-то планы, будьте добры, скиньте
27d349065ee3ba343cab69a0aaf0ab60.jpg23 Кб, 300x225
461 2442853
>>42809
Хуёвая, неконсистентная разметка.

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

Чё там за проект в душе не ебу, пиры, хуиры какие-то, чо академики ёпта? На понт взять меня не получится.
462 2442856
>>42846
нет. и ты обращаешься. ты посмотри что такое FlowDocument и кто его родители.
15.1.png13 Кб, 569x480
463 2442858
>>42846
он самый настоящий контрол
464 2442867
>>42856
>>42858
Ну ок, один хуй, диспетчер не спасает
465 2442868
>>42853
Это надо чтобы координировать народ СССР, децентрализованнейшим образом, в локальных сетях.
Щас самое время, потому что хуйло не просто предало народ СССР, но ещё и спиздело ЯО СССР.
Но Горбачёв, дал нам гласность, поэтому можно спокойно координироваться децентрализировано, на принципиально немодерируемой, неубиваемой, вечной и бесконечной нанобордочке, заебатой, которую сукаблять допилить надо нормально, а то я уже вкрай заебался с нею, без моих косарей, что спиздили гнилые и усосочные нищие крысы.
466 2442869
>>42867
ну мы же не знаем КАК ты используешь диспетчер так что ок
467 2442873
>>42868

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


>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.


Удачи.
468 2442882
>>42873
Причём тут, к наноборде - пендосы, которые спиздили бабло и забанили в сети - какую-то криптоговнину?

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

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

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


Это кстати самое больше заблуждение разработчиков подобных систем - они думают что государство будет в лоб идти и играть на техническом поле.
471 2442912
>>42889

>Чья форма лежит в детском саду


Рашистская, потому что они её и подкинули, для картинки на камеру - разве это не очевидно?

>, говно?


Я не твоя батя-членодевка.

>>42891

>На мелком уровне или на уровне обхода пидорашек - да, такое возможно и даже полезно.


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

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


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

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


>Это кстати самое больше заблуждение разработчиков подобных систем - они думают что государство будет в лоб идти и играть на техническом поле.


Мне кажется ты слишком переоцениваешь "государство". Оно не всесильно.
Если уж сверхдержава по пизде пошла, то что уж говорить о "государстве"?
ВДПЧ на порядок пижже законов государства будет, потому что это основополагающие принципе международного права, а ООН - наднациональная структура, международная.
В частности статья 19 ВДПЧ - право каждого человека на информацию.
И что против этого сделают подхуйловские дыровцы наёмные, из чужого, блядь, государства?
Провода обрежут нахуй? Или вайфай будут глушить?
А если я StarLink тарелку себе возьму, и буду там нанобордиться, в бункере?
Или через телефонный модем буду в нет выходить? Или тупо морзянкой настукивать двоичный код. Гы. Нихуя они не сделают, потому что стоит вычислить их в два клика, а дальше - один сигнал и пиздарики им.
471 2442912
>>42889

>Чья форма лежит в детском саду


Рашистская, потому что они её и подкинули, для картинки на камеру - разве это не очевидно?

>, говно?


Я не твоя батя-членодевка.

>>42891

>На мелком уровне или на уровне обхода пидорашек - да, такое возможно и даже полезно.


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

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


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

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


>Это кстати самое больше заблуждение разработчиков подобных систем - они думают что государство будет в лоб идти и играть на техническом поле.


Мне кажется ты слишком переоцениваешь "государство". Оно не всесильно.
Если уж сверхдержава по пизде пошла, то что уж говорить о "государстве"?
ВДПЧ на порядок пижже законов государства будет, потому что это основополагающие принципе международного права, а ООН - наднациональная структура, международная.
В частности статья 19 ВДПЧ - право каждого человека на информацию.
И что против этого сделают подхуйловские дыровцы наёмные, из чужого, блядь, государства?
Провода обрежут нахуй? Или вайфай будут глушить?
А если я StarLink тарелку себе возьму, и буду там нанобордиться, в бункере?
Или через телефонный модем буду в нет выходить? Или тупо морзянкой настукивать двоичный код. Гы. Нихуя они не сделают, потому что стоит вычислить их в два клика, а дальше - один сигнал и пиздарики им.
472 2442981
>>41282 (Del)
Благодарю, анон. Я знал про visitor, но чето думал что он применяется только для обхода всяких деревьев, про такое применение не додумался сам.
473 2442982
>>42981
Всегда пожалуйста
474 2443018
public void Set<T, T1>(int foo) where T1: new()
{
ServicesCollection.AddScoped<T>(cotr => new T1(foo));
}
Привет красоточки.
Почему это не будет работать.
public static IServiceCollection ServicesCollection = ... new();
475 2443036
>>43018
По кочану.
476 2443040
>>43036
Разесняй или отпизжу
477 2443049
>>43040
Потому что сишярп не ебёт че ты от него хочешь. Тип T1 является дженериком и для него не определен конструктор по очевидным причинам который бы принимал int какой-то.
478 2443052
>>43049
Есть другие способы создания объектов которые поддерживают передачу аргументов при инициализации консруктора: Activator.CreateInstance() и Expression, так же можешь напрямую руками вызывать из ConstructorInfo.Invoke(object[])
479 2443054
>>43049
А,это почему работает
public static void func<T>(int hui) where T: new() {
var t = new T(hui);
}
image.png8 Кб, 422x111
480 2443055
>>43054
Где?
481 2443057
>>43055
Т.е. без хуя будет работать!?

>>43052
Ты, красавчик.подскажи как мне решить задачу?
482 2443059
Боярский сишарпсвятой отец,ублюдки, мать их
483 2443060
>>43055
Да. Но если нужны параметры, то никак без Expression/Activator/ConstructorInfo не обойтись
16403455348290.jpg216 Кб, 617x616
484 2443076
Аноны, можете плс объяснить, нахуй нужоны конструкторы класса? Посмотрел пару видосов, и только сильнее запутался. Для чего нужен конструктор с параметрами? Запихивают в качестве аргумента одно из полей, создают переменную и присваивают ей значение аргумента и больше ее не используют. Зачем использовать поле в качестве аргумента, если оно и так в поле видимости?
Или, например, создают конструктор, в нем меняют значение поля на нужное. Не легче ли сразу при создании поля его инициализировать? Для чего это? Я вообще нихуя не понял.
485 2443077
>>43076
Чтобы когда твой класс зависил очень сильно от каких-то внешних условий их можно было привязать так, что по-другому попросту не получится создать объект и пользователь класса будет вынужден внести нужные тебе данные для корректной работы класса
486 2443103
>>43076
Конструкторы нужны, чтобы инстанции классов создавались в готовом и правильном для их работы состоянии. А потом классов будет много и например тебе нужно из одного что-то передать в другой. Где ты это будешь делать? В конструкторе и будешь.
487 2443105
>>43076
Конструкторы не нужны, это антипаттерн ебаный.
Если это не конструкторы сайтов
488 2443107
>>43057

>подскажи как мне решить задачу?


Никак. Ты пытаешься в опциях создания объекта T пытаешься инстанцировать и вернуть объект T1
489 2443114
Анон, как нубу понять отличия ASP.NET API и ASP.NET MVC и выбрать, что из этого учить?

Я уже понял вроде бы, что в первом случае у нас приходит запрос на контроллер, который обрабатывается и идет дальше получать данные из базы данных тем или иным образом, а затем приходит на эндпоинт и отдается клиенту. В случае с MVC же добавляется view, который позволяет представить данные графически (я пока нихуя про это не понял). Так вот по идее я же могу взять данные с эндпоинтов API и потом их отрисовать с помощью условного Ангуляра. У меня при этом получится MVC? Зачем тогда нужен темплейт API, если можно сразу делать MVC и почему они вообще такие разные? Я запутался вообще нахуй.
490 2443129
>>43057
Можно так
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));
491 2443136
>>43129
Красавчик,могеш,то что мне нужно.
Спасибо,что помогли,а то тут тян выше пишет конструкторы не нужны,шароеб не человек
492 2443146
>>43057

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


если это мелкософтовское DI то у них есть фабрика на этот случай. где то.
493 2443148
>>43103
Хорошо, а нахуя нужны все эти манипуляции?

>Запихивают в качестве аргумента одно из полей, создают переменную и присваивают ей значение аргумента и больше ее не используют. Зачем использовать поле в качестве аргумента, если оно и так в поле видимости?

494 2443151
>>43114
Учить оба. API - это апи, MVC - подход к построению сайта и его апи
495 2443154
>>43148
Затем, что когда у тебя 15 объектов в методе писать new Pizda(150) проще, чем new Pizda(); pizda.Depth = 150
496 2443156
>>43114
Нужно начать с самого начала, няша.

Не буду слишком углубляться, так что начну с того что знать-понимать надо.
Смотри. Есть стек 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 в отдельный тип контроллеров.
Собственно - я тебе дал краткую историю. Теперь - ты не запутаешься.
496 2443156
>>43114
Нужно начать с самого начала, няша.

Не буду слишком углубляться, так что начну с того что знать-понимать надо.
Смотри. Есть стек 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 в отдельный тип контроллеров.
Собственно - я тебе дал краткую историю. Теперь - ты не запутаешься.
497 2443162
во нашел падлюку
https://docs.microsoft.com/ru-ru/dotnet/api/microsoft.extensions.dependencyinjection.activatorutilities.createfactory
как же тяжко быть мультиязычным и вечно забывать что где у кого
498 2443176
Мне нужно написать программулину для работы в консоли Линукса. Программа проста до безумия: открыть файл с картинкой в стандартном формате, отресайзить его и, допустим, скопировать поверх другого Canvas'а.

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

Приложение будет написано с нуля и заковано в docker-контейнер, поэтому версия .Net абсолютно не важна. Какой из трёх стульев выбрать?
Сам склоняюсь в Мауи, как к официальному решению от самого Майкрософт. Нужен ли Мауи доступ к видеокарте (её не будет в доккер-контейнере, тем более на прыще-сервере без физической видухи) для обозначенных действий? Что с остальными двумя?
499 2443178
>>43176
Мауи не работает под линукс. Возьми что-то другое
500 2443180
>>43176
Почему ты не можешь как человек использовать ImageMagick?
Зачем тебе апи от майков?
Если нужно чтобы была веб-ручка - на go/питоне скрип один написал и дергай сколько хочешь.
Все это в докер.
501 2443182
>>43180

> Почему ты не можешь как человек использовать ImageMagick?


Потому что в нём обнаружен критический недостаток.
502 2443184
>>43180

> как человек использовать ImageMagick


Этот вариант также рассматривался. Однако странно писать код на Шарпе, а для работы с графикой дёргать отдельную приложуху
503 2443186
>>43184

>Однако странно писать код на Шарпе, а для работы с графикой дёргать отдельную приложуху


Что тут странного?
Ну. Давай возьмем для примера ZABBIX. Они берут и без задней мысли SNMP.Net - дергают, веб-сервер на пыхе, опросник на сях, их собственный клиент - тоже на сях. Ничего. Как-то живут. Никто странным забикс не считает.
504 2443187
>>43186

>SNMP.Net


Блядь. Обшарповался. Net-SNMP
505 2443188
>>43186
раз уж ты знаешь как устроен Заббикс, подскажи, как там работает JS-виртмашина для пост-обработчика данных вида JavaScript?
506 2443191
>>43188
Когда я им интересовался настолько, что лез в исходники - меня больше интересовала их модель данных. Так что извини, тут не могу помочь.
507 2443192
>>43186
ну объективно же кривота:
пишешь на языке с тысячей ассамблер
@
для работы с картинкой используешь отдельную приложуху
508 2443193
Разве обращение к стороннему приложению не занимает много времени?
1661194219479.png155 Кб, 1210x910
509 2443200
>>43176
Пять секунд в нугете. В чём я неправ?
510 2443211
>>43156
Благодарю, анон. А что там в этом view в mvc? Там какой-то аналог жса и его фреймворков, чтобы рисовать страницы? Или туда точно так же впендюривается жс фреймворк? Если второе, то в чем разница с API, куда точно так же впендюрен жс фреймворк?
511 2443212
ХХООСППАДДЕЕЕ IL КОД, ВСТАВКИ IL ПРЯМО В ЕБАЛО, РЕФЛЕКСИЯ, АСПЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ, РАНТАЙМ-КОМПИЛЯЦИЯ МММ.............................................СИШАРПИК <3!!!!!!!!!!!!!!!!!!!!!!!!!!!11
512 2443243
>>43211
У MS свой движок(сейчас их несколько), которые генерят странички.
Странички в конечном итоге - да, будут с JS, CSS, даже jQuery и прочее можешь туда напихать, но писать ты их будешь на как-бы шарпе, внутри инфраструктуры.
Типа в теории - тем кто хочет онли студией пользоваться - наверное и норм. Но я в свое время - попользовался, чет не возбудило.
Раньше связка .net+angular - форсилсяь. Мне нравилось. Сейчас - я стал старый и ленивый и мне больше нравится связка .net+vue.
513 2443250
Хочу изучить ASP.NET, но не знаю как к нему подступиться и с чего начать. Очень сложно учиться, когда не знаешь что тебе надо знать, а впереди лишь книга на 1000 страниц. Какие темы нужно знать, чтобы:
1) Меня приняли работать за еду
2) Я смог написать условный двачик
Если есть какие-то планы, будьте добры, скиньте
514 2443257
>>43250
Если ты действительно смог написать "двачик", с поддержкой вебем, админками, созданием досок, настройками и прочим - то тебя уже возьмут за еду. Чтобы пруфать - разверни на дешманском хостинге - и крепи ссылку к резюме.
515 2443262
>>43243
Правильно я понимаю, что сейчас в основном юзают в большинстве случаев именно API? По вакансиям смотрю - MVC редко встречается, очень часто вижу какую-то REST архитектуру, а это вроде тоже API. В новомодных курсах (2021-2022 от Нила Каннингса) API используется и так далее.
516 2443301
>>43257
Ты видать неправильно понял моё сообщение. Я поинтересовался, что мне нужно знать для условного двача
517 2443307
>>43262
В новых и относительно недавних проектах, по моему опыту - да.
Для внтутренних нужд - могут вообще - вебформы вспомнить. Так что минимальное понимание того, как все это работает - в любом случае нужно.
518 2443317
Я собираюсь вкатываться на работу примерно весной. Вижу, что Кор 3.1 в начале декабря уже этого года будет выпилен с поддержки. Значит ли это, что мне уже можно ориентироваться на 6 версию? Активно ли компании будут перекатываться с 3.1 на 6 после окончания саппорта? Понятно, что кто-то еще сидит даже не на последних версиях .нет фреймворка, но я к таким не хочу.

>>43307
Я слышал, что вебформы — это лютый устаревший пиздец какой-то. Зачем страдать, если можно не? Есть же всякие Блейзоры например, тот же MVC.
519 2443326
>>43317

> Активно ли компании будут перекатываться


Нет. Но их не нужно спрашивать
520 2443327
>>43250

> 2) Я смог написать условный двачик


Ну ты загнул. В первую очередь тебе надо знать архитектуру. И принципы кеширования
aspnetcore-developer-roadmap[1].png315 Кб, 2160x6283
521 2443370
522 2443375
>>42912

>они её и подкинули


Они на момент съёмки туда даже не входили, а снимал украинец.

>Я не твоя батя-членодевка.


Разумеется мой батя не говно и не членодевка, а вот ты - несомненно.
523 2443385
>>43262
В нашем продукте, например, есть простенький интерфейс для админов на MVC, остальные общаются по апишке
изображение.png75 Кб, 686x562
524 2443390
Есть тут хорошо знающие wpf? Как мне привязать CaptionHead к высоте первого ряда грида?
525 2443391
>>43390
через code-behind
526 2443394
>>43391
Не хотелось бы нарушать принцип mvvm
527 2443396
>>43394
не нарушаешь же
528 2443400
>>43396
Разве? Да и если честно не особо понимаю, как это реализовать в коде. На пике же стиль.
529 2443406
>>43400

>Разве?


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

а код-бихайнд это вид и там он может творить что угодно с собой.
530 2443589
>>43370
По этой мапе нихуя толком не выучишь и не поймешь. Отдельные куски не имеют смысла без понимания, как оно все вместе работает и зачем.
1661256881590.mp4164 Кб, mp4,
640x360, 0:03
531 2443732
>>43589
Мы вам перезвоним.
532 2443760
Там в ньюсаче пишут, что джетбрейнс ушёл из России.
Что будет с райдером?
Кто юзал?
Дискасс.
533 2443795
>>43760
Будет как и всегда
534 2443810
>>43760
Купить подписку было невозможно еще после ухода визы и мк, так что все эти официальные уходы ничего не меняют. Можно сбрасывать триал с помощью новых ящиков, можно купить трехмесячный триал на все продукты, можно попросить купить работодателя.
535 2443812
Пацаны. Создаю новый проект. Хочу использовать Git flow. Но тут вопрос, первой веткой должна быть ветка main или develop? Если первой должна быть main, тогда в какой момент создать develop? Допустим, в первом коммите будет только .gitignore. В следующем коммите создам вижуал студио проект. Второй коммит уже должен в develop попасть?
536 2443815
>>43812
Ты сам в скрипте настраиваешь ветку. Можно вообще не указывать, тогда скрипт будет для всех выполняться.
537 2443820
>>43812

> Допустим, в первом коммите будет только .gitignore. В следующем коммите создам вижуал студио проект. Второй коммит уже должен в develop попасть?


Да.
>>43815
Какой ещё скрипт? Он про процесс разработки Git flow спрашивает, а не про девопс.
image.png253 Кб, 566x715
538 2443832
Господа, можете посоветовать что-то похожее на пикрил? Тут ее неоднократно хвалили и говорили, что после ее полного прочтения можно смело идти в джуны. Но к сожалению, мне не хватает английского, чтобы свободно ее читать и это весьма сомнительное удовольствие по полчаса переводить каждую страницу, тем более после начала ООП.
539 2443935
>>43812
Первой должна быть master. Не используй main, куколдом станешь.
540 2443945
>>43935
Двачаю этому.
541 2443950
>>43935
trunk
542 2443973
>>43375

>Они на момент съёмки туда даже не входили, а снимал украинец.


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

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


Нет, ты.

Лучше не пизди а мультикаст ебучий мне давай, фикси. Мультикаст сам себя не зафиксит, его надо фиксить.
543 2443976
Посмотрел я значит вот это видео: https://www.youtube.com/watch?v=oKYcv2Xr9zY&t=1046s Вроде бы понятно, что к чему, но вроде бы нихуя непонятно. А нихуя непонятно, потому что нужен пример с рабочим кодом. Собственно, что можете посоветовать почитать/посмотреть по поводу трёхзвенной архитектуры? Желательно с рабочим примером.
544 2443980
>>43976
На, смотри про паттерны вот тут. https://www.youtube.com/watch?v=92k-3UItBoU&ab_channel=AndreyShyrokoriadov
545 2443981
>>43980

>про паттерны


Солид хотел сказать. Но и про паттерны тоже
546 2443985
>>43981
Спасибо, солид я вроде более-менее понимаю
547 2443988
>>43985
Не будь так уверен.
548 2443997
>>43832

>говорили, что после ее полного прочтения можно смело идти в джуны


Пиздят. Я недавно полностью ее прошел и до джуна еще как до пекина. Надо учить фреймворк (в моем случае асп), базы данных, паттерны, алгоритмы и структуры данных, подтягивать множество отдельных пробелов и недопонятых вещей. На русском аналогов не видел и их скорее всего нет. Но вроде как четвертое издание есть переведенное, попробуй поискать. Книжка в целом хорошая, задания прикольные, но местами объяснения хромают. Я например нихуя не понял про делегаты, эвенты и асинхронку, хотя перечитывал эти темы несколько раз.
549 2444001
Анон, зачем многие компании используют SQL Server? Он же винда-онли, а это автоматически означает, что оно дырявое как решето и о какой-либо безопасности данных в данной бд даже речи идти не может. К тому же, майки отсюда валят.
550 2444002
>>44001
Красноглазище...
551 2444006
>>44001

> Он же винда-онли


Ты уверен в этом?

> К тому же, майки отсюда валят.


Оракл ещё раньше свалил и забрал лучшую СУБД всех времён и народов. Остался только постгрес и всякие ноунеймы типа nosql.
552 2444042
>>44006

>Ты уверен в этом?


Так написано на сайте майков и в гугле. Так прямым текстом и написано: "Windows-only".

>Остался только постгрес


Он вроде как годный и довольно шустрый. И точно дает хоть какую-то безопасность.
553 2444048
>>44001
Юзай фаербёрд. Будь чедом, блеать.
554 2444050
>>44048
Такая себе гитарка, своеобразная, мне не очень заходит. А к SQL Server это как относится?
.png930 Кб, 1920x1080
555 2444058
556 2444066
>>44050

> гитарка


Хуярка.
Пять секунд в нугете https://www.nuget.org/packages/EntityFramework.Firebird
Дальше сам.
Идиотина патлатая, блять.
557 2444107
>>44066
Идиотина здесь ты, потому что при чем тут я, когда субд выбирается компаниями?

>>44058
Так, вижу. Странно, что есть поддержка бубунты, но нет очевидного дебиана. Или оно и на дебе работать будет? Но самый главный вопрос: эта поебота настолько же дырявая как винда или тут они смогли?
558 2444111
>>44107

> Странно, что есть поддержка бубунты, но нет очевидного дебиана


Можно и на дебиан. Да кому это всё нужно, если есть поддержка докера, который хоть на Gentoo ставь.
559 2444243
>>44048
внезапно хорошая база, просто в рекламу не умеют
560 2444246
На 2-ом пике ГарбажеКоллектор соберёт а1 и б1, если не отписываться от ивента?
561 2444252
>>44246
не усложняй.
если не остается внешних ссылок (и оно не в исполнении) - то кандидат на сбор. Циклические ссылки значения не имеют.
562 2444263
>>42809
Там какая-то хуйня с 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) - на другом порту,
и отдельным методом мультикаст-запросы отправлять на него.

Но это не точно.
563 2444297
>>43832

>удовольствие по полчаса переводить каждую страницу


Как раз выучишь англ
мимо так и сделал
564 2444353
>>43997

>Я например нихуя не понял про делегаты, эвенты и асинхронку, хотя перечитывал эти темы несколько раз



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

>>43832

>можно смело идти в джуны


Нет, вот этот все верно говорит >>43997
А еще шарписты как правило фуллстеки, так что и js возможно придется учить.
565 2444368
>>41254

>это просто маркетинговая заглушка, мол, у нас есть типа машинное обучение


this

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

Сишарп, джава, го, раст для этих целей никак не используются.
image42 Кб, 1245x203
566 2444433
Вы используете двустрочную форму записи IF или всегда ставите { }? А для циклов? Каким правилам следуете? На пике правила разработчиков дотнета.
567 2444474
Очень тупой вопрос, но я чет не могу понять. Куда устанавливаются нугет пакеты? В проект, в иде, в ось?
568 2444475
>>44111
Я верно понимаю, что докер - это такая микро-виртуалка с установленной осью и всеми нужными зависимостями, которая может крутиться хоть в любой оси, хоть на хую?
569 2444485
>>44474
В профиле пользователя есть папочка
И еще одна в програм файлес
570 2444498
>>44475
Не совсем виртуалка, но смысл такой.
571 2444513
борщ, шарпач, хочу захардкодить 200 объектов типа string.
они никогда не будут меняться, но я буду потом их использовать на других коллекциях через что-то вроде .Except(200string).
как лучше поступить?
все string в один массив?
можно ли как-то хешировать это?
572 2444574
>>44433

> всегда ставите { }


да

> для циклов?


Тоже да. Без вариантов. Нотация без скобок вообще должна быть запрещена
573 2444581
>>44475
Доккер это система виртуальных контейнеров, где контейнер запускается из коллекции изображений, настаканных друг на друга как блины. Каждое изображение является расширением какого-то другого (кроме самого базового). В изображении хранятся файлы, скопированные в него единожды при сборке изображения. А также настройки какую программу и как стартовать в контейнере.
Ты можешь взять любое изображение и расширить его, добавляя новый блин поверх этого. Вот как выглядит типовой скрипт сборки (Dockerfile) от Майкрософт
https://docs.microsoft.com/en-us/dotnet/core/docker/build-container?tabs=windows#create-the-dockerfile
574 2444592
>>44513

HashSet<string> если уникальные значения, они хэшируются и дохера методов для сравнения по значению и с другими коллекциями.
Хз, впрочем, на экспертизу не претендую - сам вкатываюсь из джавы.
Capture.JPG6 Кб, 798x63
575 2444611
>>44592
о!
спасибо. нашел, сделал вот так.
576 2444618
>>44611
я бы лучше как ICollection<string> обозначил. У тебя уже готовая коллекция в памяти, а не просто поток из айтемов
577 2444633
>>44513
Юзай static класс с const. Это нормальная практика когда у тебя супер дохуя стринговых констант в приложении.
578 2444648
Что почитать на тему взаимодействия ч винапи?
579 2444711
>>44485
Что за профиль пользователя? Олсо, какой програм файлес, если я на линуксе? Я просто хотел понять, вот открою я свой проект на другом компе - мне надо будет снова ставить все нюгеты для него?
580 2444712
>>44711

>Олсо, какой програм файлес, если я на линуксе?


у меня тот же вопрос - нахера делать эту вторую папку если есть уже в профиле.

ну а так - придется конечно. А вот ты клонишь проекты с гитхаба, там же никаких либ нет, только код, а студия сама все ставит.
Так и тут будет
581 2444721
>>41456
У меня в бейсике нижний прочерк иногда игнорируется, типа
MySpanWrapper и _MySpanWrapper может посчитать одним и тем же, хотя нет никаких правил, чтобы так считать.

А в шарпе распознает Async. В общем, студия читает все твои названия, и чем выше версия, тем больше студия сует туда нос. Особенно я это заметил как раз в шарпе.
582 2444729
>>44513
Двачую этого >>44633
Даже сами майки в том же кестрелле так же делают, для сообщений логов
583 2444751
>>44633
>>44729
а как это сделать? у меня он ругается если константой пытаюсь сделать
584 2444755
Я правильно понимаю, что для того чтобы делать какие-то сайтики на ASP.NET, мне нужно знать ещё и CSS, HTML и JS?
585 2444770
>>44755
ЖС можно не знать.
А вот ЦСС И ХТМЛ тебе конечно надо знать. Чтобы делать сайты на любом языке тебе нужны ХТМЛ и ЦСС
586 2444834
>>44770
Вот в жабе есть никому не нужные Vaadin и GWT, там аебхуйня пишется полностью на жабе, потом из этого генерируются HTML/CSS/JS (хотя на них тоже можно писать в дополнение к жабе). Разве блазор не умеет так?
587 2444840
Посоны, чёт я запутался.
Поясните за DateTime и DateTimeOffset (и NodaTime) в контексте Npgsql 6 и постгресовских timestamp и timestampz.
Как сделать чтобы заебись было и писалось/забиралось то время которое пришло?
588 2444847
>>44834

> потом из этого генерируются HTML


Какой же там оверхед...
589 2444860
>>44711
При автоматическом билде всегда производится рестор - дотнет скачивает все пакеты и находит локальные зависимости.
Можно при желании делать рестор ручками - dotnet restore
590 2444879
>>44721
Ну в VBA нижнее подчеркивание перед переменными, классами, функциями нельзя писать.
А ещё он не различает большие и маленькие буквы.
591 2444894
>>44711

> какой програм файлес, если я на линуксе?


~/.dotnet или ~/.nuget поищи
592 2444896
Какой VBA? Вы зачем на VBA пишете? Вы макросы для Ворда пишете? Зачем? Вы наркоманы? Какой Бейсик? Его полностью вытеснил Шарп из всех областей кроме макросов, которые не нужны, потому что офис не нужен, потому что гугл доки
593 2444898
>>44896
Чо гугл доки, шиз? Если надо часто заменять в указанной таблице в документе 50 фраз на 50 других фраз, в гугл доках ты будешь это проделывать вручную, а в офисе можешь за полчаса высрать макрос и забыть. Любая Зина из бухгалтерии тебя нахуй пошлёт за попытку впарить ей ущербнве гугл доки, к которым даже нет доступа из внутренней корпоративной сети, где нет интернета.
594 2444903
Аноны, а для чего нужны гетеры и сетеры? Как я понял, у них практически такой же функционал как и у конструкторов. Вызываешь в мейне, в качестве аргументов впихиваешь нужные данные. Получаешь нужные значения в полях. В чем их смысл-то?
595 2444925
>>44903
У них вообще разные назначения. Конструктор вызывается при создании объекта. Свойства нужны для чтения или записи значения поля. При этом, в свойствах можно разместить дополнительную логику.
1.png14 Кб, 550x193
596 2444934
597 2444963
Какой фреймворк используют майки для интерфейса одиннадцатой винды? Или на винапи всё пишут?
598 2444988
>>44903

Это философия ООП, гугли "инкапсуляция".
Впрочем, я уже почти 2 года как вкатываюсь и до сих пор до конца не понимаю нахуя она нужна.
599 2445002
>>44711

> Что за профиль пользователя?


> я на линуксе


Линуксоиды, которых мы заслужили.
изображение.png2 Кб, 516x38
600 2445076
Что они имею в виду? Wpf фреймворк, и asp net тоже фреймворк.
601 2445097
>>45076
Дотнет - это сам себе фреймворк. И от тебя хотят либо знание древнего проприетарного дотнета 4.8, либо современного дотнет кора или 5/6.
602 2445102
>>45097
Разве между ними такая большая разница?
603 2445108
>>45076
Ну назови их "стандартная библиотека". Суть не изменится.

>>45102
4.8 застрял на старой версии шарпа и в нем есть компоненты, которые в кор просто выброшены были. Но если ты его знаешь, значит легко перейдешь на кор
604 2445113
>>45097
>>45108
Спасибо за ответы. А что могут спрашивать у джуна на собесе именно по дотнету?
image.png25 Кб, 794x379
605 2445117
>>44894
>>44711
В .dotnet
606 2445120
>>44988

> Это философия ООП, гугли "инкапсуляция".


Вообще мимо

> для чего нужны гетеры и сетеры?


Несколько назначений:
1. Для пре- и пост-обработки данных, которые ты втыкаешь в филды
2. Для создания виртуальных полей с авто-калькулируемыми данными. Например, у тебя есть сущность пользак, у него есть реальный филд "дата рождения", а в своём филде public int Age {get;} ты можешь калькулировать автоматом его возраст. Это реально удобно

only setter properties кстати не нужны, пишите методы.
607 2445123
Свойство ведь по сути синтаксический сахар, заменяющий методы GetValue() и SetValue() в каких нибудь крестах.
608 2445143
>>45123
90% современного шарпа есть синтаксический сахар. Начиная от switch и заканчивая async
609 2445172
>>45120

>Несколько назначений



Тут как в анекдоте — объяснить я и сам могу... ;)
610 2445174
Аноны, меня мучает вопрос - как правильно тестировать CRUD операции (в EF Core например). Везде инфа только про то, что можно использовать для тестов - т.е моки, InMemory Database, и тд. Ну либо я тупой и не нашёл, хотя гуглил уже даже на русском.
А меня интересует как должны выглядеть именно хорошо написанные тесты круд операций, к примеру что метод Create должен создать только 1 запись в бд и не затронуть другие и тд. Помогите, дайте каких-нибудь ссылок.
изображение.png24 Кб, 825x191
611 2445199
Почему так? Операция "==" отвечает же за сравнение ссылок, а метод Equals() за сравнение значений. Как так? Ссылки-то разные.
612 2445215
>>45172
Польза геттеров сеттеров очевиднее чем 2*2=4
613 2445220
>>45199

Не знаю как в шарпе, но скорее всего это реализовано примерно так же как в джаве.
В джаве в памяти есть стринг пул, и если в переменных хранится одинаковая не сильно длинная строка, то он указатели обоих переменных на нее выставляет.
614 2445225
>>45199

>Операция "==" отвечает же за сравнение ссылок


Кто сказал этот бред?
616 2445236
>>45229
Ты невнимательный
изображение.png24 Кб, 811x194
617 2445242
>>45236
Окей c object оно работает. Но почему не работает со строкой?
618 2445244
>>45242
потому что у строки перегружен оператор == который сравнивает по значению

а видео бредовое. == не сравнивает по ссылке. это у object реализация такая сравнения.
а в конкретном типе он может быть перегружен как душе угодно
619 2445245
>>45244
воооо, теперь-то всё встало на места. Спасибо
620 2445257
>>45245
интересно как автор видео пояснит это
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

621 2445288
>>45257
Я чёт совсем забыл, что модно переопределять операторы сложения/вычитания/сравнения
622 2445296
>>45288
>>2428235 →
Еще вот такой прикол есть, с неявным переопределением оператора присваивания
0Male-hands-hold-measuring-tape-to-crotch.jpg80 Кб, 1200x675
623 2445495
Давайте попроектируем абстрактно.
Допустим, будем придумывать облачную систему менеджмента ресурсов.
Под ресурсами понимаем - любую хуйню, которую можно как-то измерить.

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

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

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

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

Вот так я это вижу.
А как бы вы такое спроектировали, шарпаны?
0Male-hands-hold-measuring-tape-to-crotch.jpg80 Кб, 1200x675
623 2445495
Давайте попроектируем абстрактно.
Допустим, будем придумывать облачную систему менеджмента ресурсов.
Под ресурсами понимаем - любую хуйню, которую можно как-то измерить.

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

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

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

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

Вот так я это вижу.
А как бы вы такое спроектировали, шарпаны?
624 2445561
>>44111
А тут случаем никто не знает, как на Дебиан поставить? Я попробовал по инструкции с сайта майков на Убунту, но оно пишет, что нету у них пакетов для дебиана. Докер пока не, мне бы просто экспресс пока поставить для тренировок sql и ef, с докером тут наверное сложности возникнут.
625 2445562
>>45561
Где-то были инструкции от индусов, как ставить именно на дебиан.
626 2445619
ПЕРЕКАТ >>2443253 (OP) (OP)
ПЕРЕКАТ >>2443253 (OP) (OP)
ПЕРЕКАТ >>2443253 (OP) (OP)
ПЕРЕКАТ >>2443253 (OP) (OP)

Ебаная моча, ты хули тред не закрепишь?
sage 627 2445623
>>45619
Репорт.
628 2445639
>>44574

>Нотация без скобок вообще должна быть запрещена


Почему?
629 2445650
>>45639
потому что становится возможной неправильная интерпретация кода
630 2445654
>>45650
ну разве что слепошарому. скобки раздувают код, что меньше влазит на экран.
Плохо читается if () ... на одной строке если это не проверка предусловий, а в остальном если это один уровень вложенности и нет кучи условий, то скобки нахер не нужны.
631 2445655
>>45619

>ПЕРЕКАТ >>2443253 (OP) (OP) (OP)


да. зови их НЕСЧАСТНЫХ сюда.
632 2445744
Я когда лабы на джаве писал, мне было неприятно из-за бойлерплейта и отвратительной системы пакетов и сборки. А тут всё по кайфу ежже
sage 633 2445753
634 2446720
Есть ли будущее у шарпа сейчас в нашей стране? Почему не стоит бежать сейчас на котлин?
635 2446807
>>46720
Все есть, но в основном только в продуктовых компаниях кмк.
636 2447371
>>46807

>кмк


Кабельные металлические конструкции
Казанский медицинский колледж
Крымский многопрофильный колледж
тупое зумерье детектед
637 2447850
>>47371
Как мне кажется блять
Можно ещё имхо писать, только это пендосская тема
дед, пей таблетки
638 2448908
>>47371

> зумерье


> детектед


Душнила, ты либо сам не юзай сленг, либо не выёбывайся.
639 2448965
>>48908
Слово не становится сленгом, если его стали использовать 1,5 зумера.
Тред утонул или удален.
Это копия, сохраненная 27 октября 2022 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски