Двач.hk не отвечает.
Вы видите копию треда, сохраненную 2 февраля 2023 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Aishiteruze Baby - Asp.Net In Action.jpg80 Кб, 960x720
C# тред #41 (Second Edition) csharp /csharp/ 2515951 В конец треда | Веб
Тред лучшего языка на планете.

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

6. Годные ютуб-каналы
https://www.youtube.com/c/CODEBLOG
https://www.youtube.com/c/AndreyShyrokoriadov
https://www.youtube.com/c/DevJungles
https://www.youtube.com/user/Shmachilin

Шапка: https://pastebin.com/HT7Hi6FD
Прошлый тред: >>2484368 (OP)
2 2515954
7. Какую 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

8. Что нужно знать, чтобы взяли работать?
— Общие навыки — TPL, Linq, DI, интеграционные тесты. Преимущество перед такими же вкатунами даст парочка интересных пет-проектов где вы делаете всё максимально правильно и точно следуя архитектуре.
— Архитектура — DDD, микросервисная архитектура. Так же необходимо ознакомиться с паттернами проектирования. Обязательны к изучению: MVVM, MVC.
— Базы данных — PostgreSQL/MSSQL + Mongo/Redis. Из ORM: EFCore обычно достаточно, но есть более быстрый, но менее удобный Dapper. Тратить время на ADO.NET не стоит.
— Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
— Структуры данных — связанные списки, деревья (бинарные, красно-чёрные), хеш-таблицы, графы.
— Системы контроля версий — обычно гита достаточно.
3 2516147
Подписался на тред. Ожидаем удаления.
4 2516212
А где книги?
5 2516213
>>16212
Metanit лучше всяческих книг!
6 2516219
Сениор, который собеседует челиков - в треде. Спрашивайте что ли как пройти собеседования и как 300к в секунду зарабатывать. Хотя я больше сервисами занимаюсь, а у вас судя по прошлому треду сплошное WPF и прочее говно.
7 2516222
>>16219
Нужно ли весь сахар учить?
8 2516224
>>16219
За солид ебешь? Лайвкодить заставляешь?
9 2516225
>>16222
Нет. Using выучи и во что он разворачивается.
10 2516242
>>16219
А правда, что не нужно писать самому код для работы с БД, а он сам генерируется командой в консоли?
11 2516281
>>16219
Можно ASP.NET не учить?
12 2516284
>>15951 (OP)
Даун, ты тег проебал
Capture.JPG64 Кб, 1117x798
13 2516358
шарпач, какие могут быть подводные камни?
у меня есть класс в котором имеется лист из ConcreteNode
я отдаю его другому классу через интерфейс, а он дергает интерфейс на ConcreteNode и вызывает метод
метод Tick() на этом классе вызывается +- 90-120 раз в секунду, когда и сколько раз конкретно заранее неизвестно
если лист который я отдаю из Repository изменится(ConcreteNode будут добавляться-убираться по индексу через эвенты на который там подписано), хватит ли проверки на null перед ProcessNode() или нужно как-то хитрее идти?
14 2516394
>>16358
ох ты и понаписал
да какая разница сколько в секунду.
у тебя многопоток что ли? есть состояние гонки?
если да, то от этого и пляши. тебе же ВИДНЕЕ

Из твоего скрина и описания вообще хер понять.

>ConcreteNode будут добавляться-убираться по индекс


на скрине оно вообще закоменчено и не используется.

Если все же многопоток, то всегда думай с точки зрения "а если изменится"

например ты проверяешь на нулл на хер знает какой строк (тебе лень было номера строк захватить что ли) и далее берешь итератор от этого. Есть ли шанс что за это время не нулл снова станет нулл?

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

Ок. изменится не содержимое списка, а сам список. Должен ли обход это учесть и прерваться ради нового списка или дойти до конца? А если дойти до конца, то есть ли вероятность что список еще раз сменится и один из списков будет просто потерян.

хз что вообще делают null в списке. ЗАЧЕМ ВООБЩЕ ДОБАВЛЯТЬ
null в список???
15 2516408
>>16358
Ну а также не забывай про channel/blockingcollection
Чем бегать проверять "а нет ли чего" лучше использовать очереди с уведомлением
16 2516411
>>16394
я реально не шарю нихуя. у меня не многопоток, тут может быть состояние гонки?
например вот у меня итерируется одна версия листа
а в это время приходит эвент который активирует метод, который сносит одну из ConcreteNode из листа. лист итерируется на старых данных, а затем на новых?

>на скрине оно вообще закоменчено и не используется.


так закоменченое сидит в другом классе который этот интерфейс использует, я его для наглядности приложил
17 2516413
>>16411
А нужно шарить. кто из нас телепат? ответ: никто

В одном потоке не может работать сразу 2 разных кода.
Если у тебя везде 1 поток, значит код, который выкидывает событие, не сможет работать пока идет вот эта итерация.
А значит список никогда не будет изменен, да и нуллабле его делать нет смысла - лучше присвоить дефолтное Array.Empty<> и проверка на нулл станет не нужна.

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

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

То есть реализация стандартного Producer-Consumer
1 есть общая очередь канал или блокколлекция
2 сервис1 может генерить событие или может знать по очередь прямо (пофиг) - суть в том, что на событие он просто кладет ноду в очередь и идет дальше заниматься своим делом
3 в то же время сервис2 выгребает эти ноды и что-то с ними делает

Ни одна нода не будет потеряна, не будет лагов на событии и вообще это просто стандартно и удобно
18 2516423
>>16411

>а в это время приходит эвент который активирует метод, который сносит одну из ConcreteNode из листа. лист итерируется на старых данных, а затем на новых?


Итератор выкинет эксепшон - коллекцияю нельзя менять во время итераций.

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

>>16224

>За солид ебешь?


Не ебу, но иногда спрашиваю. Желательно всё же понимать что там за принципы, к тому же они не особо сложные, 2 минуты на вики буквально дадут понимание.

>Лайвкодить заставляешь?


Не, я не делаю то, что ненавидел сам. У нас есть идея давать кандидатам код, чтобы они делали лайв код ревью - вот эта штука кажется мне гораздо более показательной и не такой напрягающей.
>>16242
В Dapper например пишут прямо sql код для работы с БД, и иногда это оправдано. В EF действительно всё под капотом. В остальном хз о чём ты, может не работал с такими технологиями.

>>16281
Если ты сидишь на десктопе тебе виднее какой там рынок. Нормально специализироваться на чём-то одном, я вот ничего кроме asp.net core считай и не делаю.
20 2516530
>>16219
Не совсем по собесам, но насколько легко залететь с 0 опыта на aspnet core онли бэк (без js)? А то на большинстве вакансий trainee\junior просят ангуляр\реакт.

И насколько хорошо вообще шарписту надо знать JS? Я то вроде в ангуляре могу компоненты накидать, но нравится не сильно. А если будет react\vue и без TS то вообще боль :(
21 2516571
>>16530
а ты не иди туда, где с тебя еще и фронт просят. Вот просто не иди - спрашиваю больше, а оно тебе надо?!
22 2516590
>>16487

>В EF действительно всё под капотом.


Хм. В EF точно так же можно чистым sql-м хуярить при надобности. Ну а то, что под капотом, вполне спокойно в отладчике смотрится во что оно преобразуется.
23 2516594
>>16530

>но насколько легко залететь с 0 опыта на aspnet core онли бэк (без js)?


С нуля практически малореально. Вот где-то через год-полтора работы недофулстеком вполне уже можно.
Просто по опыту сейчас на рынке очень мало контор в коотрых одновременно было бы и толковое разделение на фронт/бэк и чтобы им требовались безопытные джуны.
Вполне реально влезть в контору где ты будешь у тебя разделение обязанностей бэк/фронт будет где-то 70/30. А оттуда уже потихоньку двигаться в сторону чистого бэка.
24 2516595
>>16530

>И насколько хорошо вообще шарписту надо знать JS?


В принципе достаточно знать как запрос с фронта на бэк и обратно ходит. Плюс уметь пользоваться отладочной консолью браузера.
25 2516598
>>16530

>Не совсем по собесам, но насколько легко залететь с 0 опыта на aspnet core онли бэк (без js)?


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

>И насколько хорошо вообще шарписту надо знать JS?


Хз. Я онли бэк пишу, на JS писать могу, но знаю очень поверхностно, собес по нему точно не пройду. Чо тебе кстати реакт не нравится? По мне так скорее ангуляр это неудобная хрень.

>>16590
Всё так. Я бы правда чистого SQL в EF пытался избегать насколько можно.
26 2516631
>>16598

>Всё так. Я бы правда чистого SQL в EF пытался избегать насколько можно.


Я бы чистого SQL в любой ORM избегал бы до самого последнего.
Вся суть ORM как раз в том, чтобы как можно меньше касаться SQL напрямую.
27 2516658
У меня такой тупой вопрос, что вы охуеете.

Зачем вообще нужен sql и ебанина с СУБД? Какой от них профит по сравнению с обычной файловой системой в качестве бд? Там кроме индексов и транзакций что-то полезное еще есть?

Меня не отпускает крамольная мысль, что БД это какой-то оверинжиниринг со своим языком, форматом файла, и подходом к проектированию базы. Реалиционна хуйня не всегда удачно ложится на бизнес-логику и приходится страдать.

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

Еще вспоминаю опыт в геймдеве - никакой СУБД-поебистикой для данных не занимались. Хранили все данные в зип-архивах с логической структурой подходящей проекту. Довольно гибко и удобно.
28 2516695
>>16658
Я же в соседнем треде рассказывал:
https://2ch.hk/pr/res/2424142.html#2475553 (М)
29 2516700
>>16658
Закинь в какой-нибудь каталог пару миллионов текстовых файлов и сделай по ним полнотекстовый поиск, потом снова приходи.
30 2516709
>>16700
а он такой скажет - я сделаю индекс. вот тот же поиск виндовый он ведь файлы индексирует, но файлы остаются файлами.
31 2516734
>>16413
>>16423
спасибо. мало что понятно, но я попытаюсь разобраться.
32 2516818
Помогите с ef core. Хочу сделать миграцию, но диспетчер говорит, что не может определить отношения между таблицами. У меня два класса - книга и автор. В каждом есть коллекция объектов другого класса.(public ICollection<Book> BookAuthors {get; set;} в классе Author и public ICollection<Author> AuthorBooks {get; set;} в классе Book соответственно.
33 2516873
>>16818
Назови попробуй их Books и Authors просто, кмк еф хочет создать для твоего м2м промежуточную таблицу, которая как раз называется либо BookAuthors либо AuthorBooks и сосёт. Переименуй кароч проперти
34 2516892
>>16818
Разобрался, проблема была в том, что помимо списка авторов у меня было поле "Руководитель проекта" также типа Author. Убрал поле - всё заработало. Но оно то всё равно мне нужно.
35 2517039
Дороу. Есть у меня одна папка в которой 10к файлов, и есть вторая папка в которой те же самые 10к файлов, только некоторые из которых изменены. Какой самый нормальный способ их синхронизировать и заменить все изменённые файлы в одной из папок? Перебирать что ли все 10к?
36 2517043
37 2517047
>>17039
Если тебе пофиг на историю изменений просто скопируй один каталог поверх другого, измененные файлы заменятся, те которые не изменялись - останутся теми же.
38 2517135
А зачем вообще нужны ORM? Мне кажется, они только захламляют код. В современных джава-проектах уже не используют Hibernate или JPA.
39 2517269
>>17135
А что там используют? JDBC?
40 2517276
>>16487

>А так смотря что ты называешь сахаром.


Дак в том и вопрос, что не понятно что учить, а что нет. Та же джава хороша тем, что легко учится, т.к. содержит мало конструкций. А в шарп их надобавляли дофига. Некоторые на мой взгляд просто избыточны и лишь ухудшают чтение кода. А вот код на джаве, хоть и многословный, но всегда легко читается.
41 2517289
>>17276
Всё учи
42 2517291
>>17276
А какие именно конструкции по твоему избыточны?
43 2517372
>>17291
ConfigureAwait так и не засахарили
using тупо не может сделать 2 var disposable в одном выражении. нужно 2 using. возможность опустить скобки не является решением.
if не является выражением. Тернарный оператор здорово, но не для сложных конструкций
new
44 2517468
Помогите с entity framework. Есть класс в котором есть две переменные одного типа (компания заказчик и компания исполнитель), как запретить присваивать им одинаковые значения?
45 2517470
>>17291
Делегаты и евенты слишком сахарные. Я конечно разобрался, что там в основе те же функциональные интерфейсы как в джаве, но всё равно в голове сложно укладывается.
46 2517486
>>17470

А костыльные интерфейсы, в которых ДОЛЖЕН БЫТЬ ТОЛЬКО ОДИН МЕТОД - не тяжело?
изображение.png32 Кб, 781x200
47 2517563
Как инициализировать базу данных в режиме разработки? Код с пика выдает ошибку, мол нельзя scoped сервис в корне вызывать.
48 2517579
>>17269
Jooq, либо jdbc, да. Это если от хуйбирнейта отказаться.
49 2517581
>>17486
Нормально. Они наглядные, прямо в коде видно их, а в сишарпе всё по десятью слоями абстракции.
50 2517619
>>17581

Да какие асбтракции-то. Делегат - это обычный типизированный коллбек, безопасный аналог указателя на функцию из плюсов. Совершенно ясный и понятный. А нагромождение костылей в жабе - этот как раз обход недостатка дизайна языка, где это изначально не было продумано.
51 2517623
>>17135

Это для маленьких кривеньких проектиков, долгая жизнь которых не предусмотрена. Т.к. естественная жизнь многих проектов в это не укладывается, создателям orm-ов пришлось придумать микросервисную архитектуру.
52 2517699
>>17563
Юзай HostedService. В нем и инициализируй.
53 2517887
Анончики, хочу вкатиться в c# разработку, какую-то базу учил в универе, сейчас уже плохо помню, сколько в среднем займет времени, чтобы я смог выполнять какие-то простенькие заказы?
54 2517998
>>17619
А в шарпе типа пипец продумано лол.
Вот прямо щас
Я могу
Array.Sort(_values, (x, y)=> x.CompareTo(y));
но не могу
Array.BinarySearch(_values, keyTuple, (x, y) => x.CompareTo(y));

потому что для Sort есть перегрузка с делегатом, а для BinarySearch нету, ему IComparer подавай, который как раз тот самый функциональный интерфейс с одним методом и он НЕ ПРЕОБРАЗУЕТСЯ из (x, y)=> x.CompareTo(y), ведь у нас тут не жава, а шарп.

Так что костыль это или фича - крайне спорно. Лично я считаю что это фича и я бы хотел видеть такую и в шарпе.
55 2517999
>>17998
Comparer<>.Create()
56 2518008
>>17999
ну то есть костыль ага

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

И после этого они над функциональными интерфейсами смеются ха ха.
57 2518015
>>17999
ты только зацени уровень портяночности
var index = Array.BinarySearch(_values, key, Comparer<KeyValuePair<TKey, object>>.Create((x, y) => x.Key.CompareTo(y.Key)));

и

Array.Sort(_values, (x, y) => x.Key.CompareTo(y.Key));

У меня от первого варианта глаз дергается. Ширина пипец. Про читабельность вообще молчу
58 2518020
>>18008
Ты мог бы доебаться до дизайна Array.BinarySearch, не умеющего в делегаты, но за каким-то хуем доебался до самих делегатов.
Функциональные интерфейсы - это тупо костыль, чтобы не добавлять в жабу делегаты, которые так сложно добавить из-за говнокода в JVM и политики оракла тормозить развитие жабы.
59 2518025
>>18020
до делегатов доебался не я.
я просто мимо проходил и показал что НЕ СТОИТ высмеивать фичи из других языков которые неплохо бы и в шарпе видеть.

>это тупо костыль


А вот лично для меня костыль - как раз Comparer<>.Create()

ведь хули один из БАЗОВЫХ классов шарпа даже в последней версии дотнета не принимает делегат (которые существуют аж с версии дотнета 1.1)

И вообще фича удобная, ведь тупо пришлось бы делать меньше перегрузок метода и такой херни как с BinarySearch просто не было бы.
60 2518027
>>18020

>которые так сложно добавить из-за говнокода в JVM


это оффтоп конечно, но я без понятия о чем ты. Я не знаю жаву, я юзаю котлин и там совместо сосуществуют и всякие там (Int)->Long (аналог Func<int, long>), так и эти функциональные интерфейсы. И JVM как то не мешает. Да и вообще как она может мешать, если это на уровне компилятора решается - компилятор просто может переписать лямбду в интерфейс и сам и на бинарном уровне будет одинаково.
61 2518032
>>18015
А джуну надо понимать такие портянки?
62 2518033
>>18032
Нет, только сеньорам, джунам достаточно уметь выводить хеллоуаорлд в консольку. Милдлы уже могут объявлять свои переменные и даже писать свои методы.
63 2518040
Полдня ебался с нерабочими инклюдами, в итоге оказалось, что вместо efcore у меня импортировался ef6
Image 1.png6 Кб, 564x201
64 2518043
>>18032
джун должен понимать и уметь писать базовый код. вот как пример на скрине. Иначе это не джун, а дворник
65 2518046
>>18040
Я раньше путал ASP.NET MVC 5 и ASP.NET Core для .NET 5. Почему у Микрософт такие дебильные названия?
66 2518050
>>18046
ну а как бы ты назвал?
ASP.NET vNext что ли )))
67 2518056
>>18050
ASP.NET Core надо было по-новому назвать. К примеру, Autumn. Были бы разные модули типа: Autumn MVC, Autumn Data (вместо EF), Autumn Cloud для микросервисов всяких.
68 2518057
>>18056
Вот только плаьформа с которой он родился называется core
А не dotnet autumn
69 2518071
Че, пацаны.
Кто Either и прочую манду протаскивал в проекты?
Как объяснить тем кто с сей начинал, что пиздато же выходит с мандами?
70 2518097
>>18071
Никак. Ведь ничего пи... удобного нет.
В шарпе это костыли
71 2518108
>>18097
Так красивше же:

async Task<Either<Result, Error>> Foo()
{
...
if(!valid)
return new ValidationError();
return new Result();
}

а наверху:

(var res, var error) = await Foo();
if(error is not null)
{
_logger.LogError(error);
return;
}
Process(res);
72 2518123
>>18108
Глянул и покрылся холодным потом от ужаса
73 2518132
>>18108

мм.. а если исключением?
74 2518140
>>18123
А какой выход ты видишь лучше, кроме как делать уродство в виде:

abstract ActionResult<T>
ErrorResult<T> : ActionResult<T>
OkResult<T> : ActionResult<T>
?
Вот это как раз уродливо в конечном варианте выглядит.
Или по твоему - все методы - всегда возвращают однозначный результат? Или может - нужно на каждый чих - кидать исключения?
Как по мне - с мандами - красивше выходит и удобнее.

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

>А не прошедшее валидацию сущности - не являются исключительной ситуацией



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

Приведи другой тогда пример, где нужен этот either на твой взгляд.
76 2518177
>>18015

>var index = Array.BinarySearch(_values, key, Comparer<KeyValuePair<TKey, object>>.Create((x, y) => x.Key.CompareTo(y.Key)));


Ты написал говнокод.
Я бы тебе за такое на ревью лося бы пробил сапогом.
1. Делегат и компарер должны быть предварительно объявлены отдельными переменными с понятными названиями и комментариями при необходимости.
2. var index? Кто JS-петуха пустил в мою решоточку? Почему был не написать int вместо var? Длина такая же. Ясности больше. var указывается только там, где тип очевиден. Например var sb = new StringBuilder(). Но и это уже не актуально в новых шарпах. Поэтому по сути хорошим тоном является везде явно указывать тип, а var писать может быть только в Linq'е.
77 2518182
>>18177
В ide тип указывается рядом с объявлением переменной, писать самому его нет смысла.
78 2518191
>>18182

Это когда либо он всплывает через несколько секунд по наведению пойнтера (охуенно удобно), либо дублируется var, а серенькими букофками ещё добавляется тип. Просто заебись. Правда, при ревью пулл реквеста в браузере, например, нихуя ни всплывает, как и при просмотре истории, но ничего.

А ещё можешь почитать для чего ms вообще высрал этот var, и это совсем не для того, чтобы совать его везде при каждом удобном случаче.
79 2518196
>>17887

>выполнять какие-то простенькие заказы


Какие заказы? На шарпе фриланс мертв. Это ентерпрайз решение для штатных сотрудников, как и джава. Мелкие задачи в одно рыло на нем не решают.
В лучшем случае будешь на фреймворке 4.6.1 пилить для пиндоса надстройку к аутлуку или екселю.
Учи пхп, если хочешь с заказов кормиться.
80 2518206
>>17291

>какие именно конструкции по твоему избыточны?


Пикрилы уебищны и уродливы.
Зачем такие вырвиглазние брайнфак-лайк решения наспех впихивать в язык мне не понятно.
Некоторая экономия строк кода за счёт убийства читабельности и интуитивности понимания и тем более написания таких конструкций.
81 2518210
>>18177

>Делегат и компарер должны быть предварительно объявлены отдельными переменными с понятными названиями и комментариями при необходимости.


Кому должны? с хера ли? ты и в LINQ вместо каждой лямбды обьявляешь?
82 2518225
>>18210
Чел, ты можешь в своих петпроектах срать как тебе вздумается.
Просто когда твой код будут читать другие люди, не нужно делать так, чтобы они тебя ненавидели, и считали необученным и безграмотным идиотом.
Если в твоём коде появляется конструкция типа ))) - три и более скобки подряд, то это например один из верных маркеров того, что это сложно будет читать и понимать, читателю придется останавливаться и разбираться что во что вложено, а может быть даже копировать из браузера код в текстовый редактор и там разбивать на блоки, чтобы прочитать.
Поэтому очевидным решением будет выносить отдельные вложенные сущности в самостоятельные переменные.
Линк при грамотном написании не имеет таких проблем и там это не требуется, как правило.
83 2518236
Где хранить классы, определяющие формат входных данных для webapi? В asp.net в действии советуют создавать их внутри контроллера, но я хз насколько это правильно.
84 2518264
>>18225

>Если в твоём коде появляется конструкция типа ))) - три и более скобки подряд


ну так поэтому я и хейтю что нет функциональных интерфейсов, а эти костыли
и когда тебя ВЫНУЖДАЮТ мудрить с именаи, то это говно язык
85 2518299
>>18264

>нет функциональных интерфейсов


Где их нет? В стандартной либе? Так там дохуя чего нет, даже не смотря на то, что стандартная либа шапра из коропки даёт столько всего, что другим языкам и не снилось, и в которые в отличие от шарпа в каждый проект приходится тянуть зависимости от дикого зоопарка разномастных либ.
Зато можно допилить самому или сделать обертку или сделать аналог или скачать нугет пакет, если кто-то уже озаботился проблемой.
Сам по себе язык сишарп поддерживает функциональные интерфейсы, типа IComparer. Можно даже запилить какой-то свой обобщённый класс с имплисит кастованием его интанса из делегата.
Так что я не очень понимаю, на что ты жалуешься. На отсутствие вожделенных перегрузок в стандартной либе грех жаловаться.
86 2518310
>>18299

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


их нет в шарпе. он не скастит сам (x, y)=> в IComparer
поэтому и приходится использовать портяночную фабрику вместо "компилятор за меня это сам переписал"

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


ну так то да. всего то пара десятков лет прошло с момента рождения класса Array и делегатов
И можно было бы сказать, что не знал автор класса по делегаты, но в Array.Sort он есть.
87 2518315
>>18196
Каждый раз как вижу пхп у меня начинается какая то огрессия, и зубы скрипят.
88 2518316
>>18196
А вообще, разве шарписты не нужны тем же юнитистам? Модуль какой нибудь захуярить им время о твремени разве не требуется?
89 2518320
>>18043
Понимаю что на скрине, могу уже кидать резюме на hh?
90 2518351
>>18320
так любой джун понимает. учись еще
91 2518382
>>18196

>Какие заказы? На шарпе фриланс мертв.


Не совсем так. Он не мертв, он скорее в тени. Вполне возможно найти какую-нибудь подработку, вроде написания пары-тройки микросервисов для какой-нибудь мелкой (относительно энтрепрайза) конторы за более-менее нормальный прайс. Но только по знакомству. С улицы в такие проекты никого не берут.
>>18316

>А вообще, разве шарписты не нужны тем же юнитистам? Модуль какой нибудь захуярить им время о твремени разве не требуется?


Нет, там своя атмосфера. В геймдеве (особенно на юнити) кодерских задач как таковых не особо много, все что нужно вполне решается силами пары-тройки штатных макак.
92 2518415
>>18046

>Почему у Микрософт такие дебильные названия?


Просто у них в отделе нейминга продуктов какой-то рептилоид сидит (наверное брат того который названия в IKEA придумывает)
У них абсолютно всегда и во всех продуктах была хуйня с неймингом. Что в досе, что в винде, что с МС офисом, что с консолями. Смирись.
93 2518533
>>18415
Нет. Просто исторически сложилось
94 2518561
Entity framework из меня уже все соки выпил. Я пытался сделать миграцию, но при обновлении бд постоянно вылезала ошибка, причину которой я понять был не в состоянии. что-то про каскадное удаление и рекурсию Помогло в итоге только удаление бд, всех миграций и создание бд начисто.
95 2518573
>>18533
Что нет?
То что это исторически сложилось, никак не отменяет ебанутости нейминга во всех линейках продуктов Майкрософта.
96 2518579
>>18561

>Помогло в итоге только удаление бд, всех миграций и создание бд начисто.


Ну, на этапе разработки ситуация "да заебало бля, короче я дропаю БД и все миграции и делаю единую" - очень часто встречается. Так что норм.
97 2518658
>>18573
Но конкретно этот случай не относится к чудищу из икеи который клонировал мелкософт
98 2519169
>>18206
Тоже с этого жопа горит. Какие-то хипстерки тащат парашный стрелочный синтаксис из функциональных языков. До дебилов не доходит, что уже есть православый switch, а более сложные случаи ПАТТЕРН МАТЧИНГА должны быть спрятаны в полиморфные вызовы методов объектов.
99 2519181
>>19169

>есть православый switch,


а он тут причем?

>а более сложные случаи ПАТТЕРН МАТЧИНГА


и он тот же тут причем?

паттерн-матчинг - сокращают цепочку развесистых if
100 2519203
>>19181

>а он тут причем?


Да все при том же. Весь синтаксический сахар стрелочек компиляется в свичи/ифы.

>паттерн-матчинг - сокращают цепочку развесистых if


В тру объектном дизайне развесистых ифов не должно быть.

Какбы плохая практика патерн матчинга - пытаться проверить сразу много данных на месте, вместо упаковки их инвариантов и проверки их одним семантическим методом. Это наследие из тех времен когда были списки, но не было объектов с поведением. В списки могли засунуть всякую херень. Нужен был гибкий способ их фильтровать на предмет ошибок и дальнейшей обработки. В ОО-языке наличие патерн матчинга это шаг назад, разрабы натурально лезут обратно на дерево функций с которого только недавно слезли.
101 2519221
>>19203

>Весь синтаксический сахар стрелочек компиляется в свичи/ифы.


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

>В тру объектном дизайне развесистых ифов не должно быть.


>ОО-языке наличие патерн матчинга


внезапно люди пишут НЕ ТОЛЬКО крайне высокоуровневый код. И этим все сказано.
Каждой задаче - СВОЙ ИНСТРУМЕНТ.

Считать, что в коде не должно быть развесистых иф - ты там формошлепаешь что ли? да любой алгоритмический код или работающий с рефлексией и кодогеном, да всякие сериализаторы кастомные просто перенасыщены разными ифами.
103 2519251
Если я в Xaml подписываюсь на событие, то после удаления контрола, там все подчищается автоматически?
104 2519252
>>19231
Хрена себе. А ведь только летом по net 5 выпустили.
105 2519253
>>19231
Сука, наебал.
106 2519258
я обожаю C#, обожаю его синтаксис, люблю писать на нём что-то (WPF, хочу учить asp.net), но блять, по сравнению с другими языками (python, java, js) количество ресурсов по изучению C# и его технологий равно нулю. Я говорю про ресуры на русском (да, я не знаю английского, вот такой хуесос). Дрочить метанит уже заебало (мне не нравится статьи там, особенно бесит дохуя опечаток и ошибок); мне не нравится профессор веб; я не хочу изучать язык или технологию по документации, потому что для любого нормального языка есть сайты по изучению/курсы/книги; я не хочу читать устаревшие книги фримана или шилдта, потому что новые ещё не перевели. Я писал на C# для себя 1.5-2 года и сейчас просто выгорел от того, что последние полгода я не прогрессирую от слова совсем, нет желания что-то учить и программировать вообще, просто потому что уже тошно видеть одни и те же ублюдские ресурсы с отвратительными статьями. Ну почему так нахуй, один из самых популярных языков, а происходит такое говно. (и да, может с английскими ресурсами такая же хуйня, хз)
107 2519259
>>19251
при подписке на кого-то этот кто-то удерживает тебя пока сам жив и не дает тебя скушать.
А значит если контрол удалился, то его ссылка на тебя не препятствует тебя сожрать.
108 2519261
>>19253
Блин. Я перепутал версию языка и дотнета. Сорян, тупанул.
109 2519265
>>19258
— Ко-ко-ко я топчусь на месте
— Как тебе цель: изучить английский?
— В смысле? Я хочу, чтобы вы сами сдвинули меня с места

Прости, что пришлось расписать банальные вещи.
110 2519266
>>19251
Ну а в обычных событиях контрола где в code-behind этого же контрола хендлер - там контрол ссылается сам на себя, то есть такое GC выглядит как циклическая ссылка, что не мешает собрать мусор.

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

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

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

Исключение - не OneTime биндинг к свойствам без INPC - то есть если биндинг к чему то, что не поддерживает INPC, например ты биндишься к IList то без OneTime у тебя будет утечка.
111 2519268
>>19265
Какие книги почитать на английском?
112 2519274
>>19259

>то его ссылка на тебя не препятствует тебя сожрать


Сборщиком мусора?

Но когда я вручную подписывался внутри контрола, то было очень много случаев, когда контрол продолжал существовать, даже когда я удалял на него ссылку.
113 2519276
>>19268
Чел писал про книги, которые не переведены. Ну наверно их.
114 2519280
>>19274
Если объект держит на тебя ссылку, но сам объект был скушан GC, то и ссылка на тебя исчезла.
При обычной подписке ссылку на тебя удерживают через делегат, что просто немного косвенности, но смысл не меняет.

>даже когда я удалял на него ссылку.
ссылку откуда?

Подписки контрола обычно в его же code-behind - умирают вместе с ним
всякие атачед пропертис если они приатачены к контролу и нигде ты не закрепил их - тоже умрут вместе с контролом.

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

И да, я не говорил, что не учу англ./не собираюсь учить англ, я говорю про то, что нет ресурсов, какое "сами сдвинули меня с места", ты чет ваще дебил какой-то...
116 2519312
C# vs Java - кто круче?

https://youtu.be/fG290-1sljc
117 2519318
>>19312
целый час? да ну нахер.
хватает БРЕДОВОГО комента от @generalchannel6740 под видео чтобы понять что смотреть не стоит.
118 2519327
>>19312
Вообще дикий комент там

>Во первых в шарпах куча сахара. Он не всем так уж и нужен, по мне, это ничтожный аргумент.


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

>Во вторых java опенсорс, линуха


Ну тут как бы можно и не читать дальше ибо и так все понятно

> В третьих у шарпов есть куча нюансов в CLR в отличие от уже отшлифованной JVM.


А тут в прошлых тредах жаловались именно на необходимость тюнинга JVM.
про type erasure будем вспоминать? нет, ну и ладно

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


структуры были изначально. Далее Span/ref, дотнет 7 вообще вышел под лозунгом "не нужны нам новые фичи, даешь оптимизацию"

>и безопастностью которая у шарпов слабее


хз о чем это он. особенно после нашумевшей истории с log4net

>Видим nхибернейт стартовал на java, стиздили на шарпы.


ммм и чо? для жавистом же - им же проще переходить. А так кто юзает хибернейт? стандарт это EF

>elasticsearch - java, Jira - java, Jenkins - java, Kafka - java


а гитлаб внезапно руби. И чет НИКТО не переписывает на жаву, на такую замечательную жаву.

>То что крупные компании используют java тк раньше не было выбора - смешно.


мда. ой дурак.

>async await? Может стоит осторожнее с многопоточным работать?


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

>В java хорошая многопоточность в отличии от шарпов


дооааа доааа ))

>Почему в на CS50 Harvard, java изучается как нормальный язык


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

>но программируя на python, go, java чувствуешь себя программистом, а не девелопером.


ась?
на питоне кстати реально кульно в плане "думаешь о задаче. а не о том как". Потом идет шарп. потом жава, потом го

ладно бы он про котлин, но он про жаву
118 2519327
>>19312
Вообще дикий комент там

>Во первых в шарпах куча сахара. Он не всем так уж и нужен, по мне, это ничтожный аргумент.


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

>Во вторых java опенсорс, линуха


Ну тут как бы можно и не читать дальше ибо и так все понятно

> В третьих у шарпов есть куча нюансов в CLR в отличие от уже отшлифованной JVM.


А тут в прошлых тредах жаловались именно на необходимость тюнинга JVM.
про type erasure будем вспоминать? нет, ну и ладно

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


структуры были изначально. Далее Span/ref, дотнет 7 вообще вышел под лозунгом "не нужны нам новые фичи, даешь оптимизацию"

>и безопастностью которая у шарпов слабее


хз о чем это он. особенно после нашумевшей истории с log4net

>Видим nхибернейт стартовал на java, стиздили на шарпы.


ммм и чо? для жавистом же - им же проще переходить. А так кто юзает хибернейт? стандарт это EF

>elasticsearch - java, Jira - java, Jenkins - java, Kafka - java


а гитлаб внезапно руби. И чет НИКТО не переписывает на жаву, на такую замечательную жаву.

>То что крупные компании используют java тк раньше не было выбора - смешно.


мда. ой дурак.

>async await? Может стоит осторожнее с многопоточным работать?


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

>В java хорошая многопоточность в отличии от шарпов


дооааа доааа ))

>Почему в на CS50 Harvard, java изучается как нормальный язык


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

>но программируя на python, go, java чувствуешь себя программистом, а не девелопером.


ась?
на питоне кстати реально кульно в плане "думаешь о задаче. а не о том как". Потом идет шарп. потом жава, потом го

ладно бы он про котлин, но он про жаву
119 2519334
>>19299

>для других языков дохуища курсов/книг/сайтов для изучения


Каких? Русскоязычный материал — всякая основа, уровня информации из метанита или "курсы для прокрастинаторов". Специализированные вещи никто никогда не переводит.

На C# количественно туторов меньше просто потому, что всяких хуесосов-разводил меньше, но тематически все на том же уровне.
Не знаю в какой ты реальности живешь, но в моей реальности найти годную информацию по питону и джаваскрипту гораздо сложнее — без вот этой хуни, где на середине статьи тебе начинают впаривать масло для бороды.
120 2519336
>>19327
Очень шикарно развёрнутый ответ,вы круты
121 2519337
>>19327

>"думаешь о задаче. а не о том как"


В любом языке можно так делать, просто потом получается говнокод. И в одних языках это осуждается (поэтому приходится "думать как"), а в других это норма.
122 2519339
>>19299
то просто ты ленивый
да одного хабра хватает чтобы знать разные этакие штуки глубоко
в мсдн неплохо описана работа с их продуктами - тот же EF внезапно хорошо описан
Книги никогда не читал.
123 2519340
>>19318

Как это вообще можно прочитать?.

>Во первых в шарпах куча сахара. Он не всем так уж и нужен, по мне, это ничтожный аргумент. Во вторых java опенсорс, линуха и тп, а это власть и кастом перед любым заказчиком, не говоря уже про разные APS, JVM, JDK, GC. И как сказали что заказчику нужно быстрее и хорошо - тогда java так же очень хорошо подходит(подключаем бут и не паримся, все работает из коробки). В третьих у шарпов есть куча нюансов в CLR в отличие от уже отшлифованной JVM. Мелкомягкие просто тупо продают язык как продукт и не заморачиваться над более узкими оптимизациями и безопастностью которая у шарпов слабее. Винда сущее говно на которое подсадили СНГ в 2000х. Мы в компании используем linux и поем, мак тут дело вкуса, по мне, лучше взять нормальный ноут и пихнуть туда linux. В четверых, открываем вакансии по шарпам. Видим Например касандру, она на java. Видим nхибернейт стартовал на java, стиздили на шарпы. Далее, elasticsearch - java, Jira - java, Jenkins - java, Kafka - java. То что крупные компании используют java тк раньше не было выбора - смешно. Почему они тогда до сих пор пишут новые сервисы и опенсорc на java? Да java по синтаксису проигрывает, шарпы надувают из года в год, а java забросили на 10 лет. Но даже при таком раскладе, можно писать все что угодно(практически) и не париться. Если вам нужно куча сахара, то шарпы. Зато когда будете работать над крупными проектами в USA, ОАЭ ,China, то слезы не показывайте. async await? Может стоит осторожнее с многопоточным работать? В java хорошая многопоточность в отличии от шарпов. Деплой на azure? Серьезно? 90% девопсов писают кипятком от AWS или на худой GCP, мб стоит выбросить все сертификаты. Почему в на CS50 Harvard, java изучается как нормальный язык, а шарпы мелькают только на курсе Game Development. Почему в Stanford CS java это самый большой курс из всех, а шарпы изучаются в кратком обзоре современных языков. Язык это инструмент, но программируя на python, go, java чувствуешь себя программистом, а не девелопером. Я понимаю что некоторым хочется верить что они давно сделали правильный выбор, и оба спикера сделали правильный выбор. Каждому инженеру важно иметь хороший инструмент. Заказчику хочется быстрее, дешевле, и что бы все могли. Оба языка отлично справляются. Но мало заказчиков знают сколько ночей потребовалось что бы внедрить хорошие решения используя тот или иной язык.

123 2519340
>>19318

Как это вообще можно прочитать?.

>Во первых в шарпах куча сахара. Он не всем так уж и нужен, по мне, это ничтожный аргумент. Во вторых java опенсорс, линуха и тп, а это власть и кастом перед любым заказчиком, не говоря уже про разные APS, JVM, JDK, GC. И как сказали что заказчику нужно быстрее и хорошо - тогда java так же очень хорошо подходит(подключаем бут и не паримся, все работает из коробки). В третьих у шарпов есть куча нюансов в CLR в отличие от уже отшлифованной JVM. Мелкомягкие просто тупо продают язык как продукт и не заморачиваться над более узкими оптимизациями и безопастностью которая у шарпов слабее. Винда сущее говно на которое подсадили СНГ в 2000х. Мы в компании используем linux и поем, мак тут дело вкуса, по мне, лучше взять нормальный ноут и пихнуть туда linux. В четверых, открываем вакансии по шарпам. Видим Например касандру, она на java. Видим nхибернейт стартовал на java, стиздили на шарпы. Далее, elasticsearch - java, Jira - java, Jenkins - java, Kafka - java. То что крупные компании используют java тк раньше не было выбора - смешно. Почему они тогда до сих пор пишут новые сервисы и опенсорc на java? Да java по синтаксису проигрывает, шарпы надувают из года в год, а java забросили на 10 лет. Но даже при таком раскладе, можно писать все что угодно(практически) и не париться. Если вам нужно куча сахара, то шарпы. Зато когда будете работать над крупными проектами в USA, ОАЭ ,China, то слезы не показывайте. async await? Может стоит осторожнее с многопоточным работать? В java хорошая многопоточность в отличии от шарпов. Деплой на azure? Серьезно? 90% девопсов писают кипятком от AWS или на худой GCP, мб стоит выбросить все сертификаты. Почему в на CS50 Harvard, java изучается как нормальный язык, а шарпы мелькают только на курсе Game Development. Почему в Stanford CS java это самый большой курс из всех, а шарпы изучаются в кратком обзоре современных языков. Язык это инструмент, но программируя на python, go, java чувствуешь себя программистом, а не девелопером. Я понимаю что некоторым хочется верить что они давно сделали правильный выбор, и оба спикера сделали правильный выбор. Каждому инженеру важно иметь хороший инструмент. Заказчику хочется быстрее, дешевле, и что бы все могли. Оба языка отлично справляются. Но мало заказчиков знают сколько ночей потребовалось что бы внедрить хорошие решения используя тот или иной язык.

124 2519370
>>19312
Чел, который представлял джаву, не сказал, что в джаве есть полная обратная совместимость и код 1995 года работает и сейчас. А в сишарпе каждый год всё ломают. Даже в этом треде все сидят и ждут новых книг по дотнету 7, потому что на старом дотнете уже ничего не запускается.
125 2519377
>>19370

Что имеешь в виду под "полной обратной совместимостью"?..

Кстати, "полная обратная совместимость" спринга - отдельный вид изощрённого удовольствия.
126 2519415
>>19370

>и код 1995 года работает и сейчас.


Хватит распространять этот миф
127 2519454
>>19415
Я начинал учить джаву по старой книжке и все примеры работали на jdk 17

>>19377
Компилируется и работает.
128 2519459
>>19454

>Компилируется и работает.



А C#-код, написанный на первой версии языка, у тебя не компилируется и не работает что ли? Чего пиздишь?

Или недоволен, что на .net6 не можешь создать приложение Виндоус Формс?
129 2519463
>>19459

> А C#-код, написанный на первой версии языка, у тебя не компилируется и не работает что ли? Чего пиздишь?


Не все стандартные либы нет фреймворк перенесены на неткор.
130 2519465
>>19459
А ты в курсе вообще, что в 8 версии они ввели null-значимые типы и теперь все ссылочным типам надо приписывать ?, чтобы присвоить null.
В 10 версии они изменили Main и он теперь как отдельный файл без класса и функции.
Про переделки фреймворков я вообще молчу. Там вообще ничего не осталось от первой версии.
131 2519467
>>19463

>Не все стандартные либы нет фреймворк перенесены на неткор.



Стандартные либы - какие? Сравним с "стандартными либами" в джаве...
132 2519468
>>19465

>А ты в курсе вообще, что в 8 версии они ввели null-значимые типы и теперь все ссылочным типам надо приписывать ?, чтобы присвоить null.


>В 10 версии они изменили Main и он теперь как отдельный файл без класса и функции.



Хочешь, научу чтобы не надо было, и чтобы Main был с классом и функцией?

>Про переделки фреймворков я вообще молчу. Там вообще ничего не осталось от первой версии.



А ты не молчи. Сравним с джавой...
133 2519469
>>19467
В джаве даже стандартные либы сохраняют обратную совместимость. Есть даже неудачные решения, которые не удаляют, чтобы старый код работал.
134 2519471
>>19468

>Хочешь, научу чтобы не надо было, и чтобы Main был с классом и функцией?


Давай!

Я пробовал писать код из книжки Фримана по дотнет кор 2.0 и ничего не работало. Сидел как дурак и гуглил каждый кусок кода, а там писали, что в дотнет 6 всё по-другому. Даже не просто заменить А на Б, а совершенно иной подход. Надо целые модули переписывать.
135 2519474
>>19469

Ну вот можно конкретный пример "стандартной либы"?

>>19471

То же самое, нужен конкретный пример. А то я тоже из гайда спринга (прям текущего на сайте с оф докой) пишу хеллоу ворлд, и он не работает. Т.к. они опять что-то поменяли. Но я-то понимаю, что спринг - это нихуя не "стандартная библиотека".
136 2519478
>>19474
java.util.*

>>19474
В Спринге хеллоу ворлд не менялся. Даже в Спринг буте всё тоже самое. Можно взять любую книга за любой год и все примеры выполняться как родные.
137 2519502
>>19478

>java.util.*



Я про .net, к нему ж претензии. Могу также ответить - System.Collections

>В Спринге хеллоу ворлд не менялся.



В windows forms тоже.
138 2519540
>>19299

>я ему говорю про то, что для других языков дохуища курсов/книг/сайтов для изучения


Для шарпа есть МСДН, который покрывает где-то 85...90% информации которую нужно знать.
139 2519548
>>19540

>msdn


Дядь, как там в 2008?
140 2519552
Зумерский МСДН.
141 2519553
>>19548
мсдн-ом он называет оф доку от мелкософт
то что ее перенесли на новый адрес сути не меняет.
в народе она по прежнему зовется "мсдн" и все понимают о чем речь.
142 2519555
>>19471

>>Хочешь, научу чтобы не надо было, и чтобы Main был с классом и функцией?


>Давай!


При создании солюшена ставишь галку "Do not use ttop level statements" и у тебя будет нормальная структура с Main'ом
Затем в свойствах проекта устанавливаешь
ImplicitUsings и Nullable в disable
И у тебя будут нормальные юзинги и отсутствие дроча с nullable
143 2519556
>>19553
Хз, я начинал вкатываться в шарп еще в 2015, уже никто так не называл. Я чисто по аббревиатуре догадался что он имеет ввиду.
144 2519558
>>19555
кстати студия научилась запоминать эту галку
А вот нулабле трогать не нужно.

>>19556
так до сих пор даже называют. а молодежь нынче необразованная - вон книжки им подавай
145 2519559
>>19548
Я хуй знает, но и сейчас любой поисковик по тегу "мсдн" тебя на сайт с доками майкрософта по дефолту выкинет. Так что похуй как он там сейчас называется, суть одна и та же, только пользоваться удобнее стало.
146 2519560
>>19556
Я вообще с 2018-го вкатился, но до этого с C++ начинал, поэтому так и помню.
147 2519565
>>19560
>>19558
>>19559
Ну вот мы и сошлись во мнении, что в первую очередь так говорят олды, переадресацию сделали для неофитов, которые услышат от них такую аббревиатуру.
148 2519619
>>19565
а как говорят неофиты?
официальная документация?
фууу быть такими
149 2519622
>>19619
Ну все, пристыдил, как жить то теперь, блядь.
150 2519645
>>19340

>программируя на python, go, java чувствуешь себя программистом, а не девелопером


Проиграл с этого ментального самоподдува

мимо go-господин, в прошлом писал на жабе
151 2519646
152 2519653
>>19645
А программируя на c++ чувствуешь себя Computer Engineer, а не каким-то программистом или девелопером.
153 2519659
>>19327

>>В java хорошая многопоточность в отличии от шарпов


>дооааа доааа ))


Там видимо подразумевались фишки виртуальных тредов.

>>19327

>А так кто юзает хибернейт?


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

>>19327

>асинк/авайт это киллер вещь для работы с корутинщиной и асинхронщиной


Обсуждаемо. Делить мир на синхронные и асинхронные функции тоже не есть хорошо. Из всех языков конкарренси для среднего обывателя лучше всего реализован в Go.
154 2519661
>>19502
Если я возьму старющую книгу по шарпу, то там откомпилируется хоть один пример?
155 2519662
>>19619

>а как говорят неофиты?


А никак они требуют книжек на русском и плачутся об отсутствии материалов по шарпу.
156 2519664
>>19661
Конечно. Тут же не просто так советую Рихтера, а это 2012 год.
157 2519665
>>19664
Почему Рихтер не может поставить жену на место и написать новую книгу?
158 2519671
>>19665
которую через год переписывать потому что неофиты бестолковые и "у нас не компилируется, мы не понимаем, а в гугле забанили".
159 2519677
>>19671
Ну а как бы ты поступил, если у тебя не компилировалось бы?
160 2519687
>>19327
>>19312
А какая разница какой язык круче? Я в свое время писал и на С++, и на шарпе, и на джаве, и на питухоне. В итоге сейчас на проектах с говнолангом сижу.
В первую очередь выбирайте проекты, чтобы там были выстроены адекватные процессы и разрабы были нормальными, а не пассажирами с заводов, вкатившиеся по айти курсам. Язык и тулинг это уже сугубо вторично.
161 2519690
>>19677
Гуглил про миграцию с версии языка в книге на новее. Там описана разница

>>19687
А я прошел через 10ок языков и сижу на 3 основных ибо в каждом своя радость
162 2519692
>>19687
Вдруг придётся вручную прикручивать к проекту Tomcat или выучишь дотнет 7, а на работе скажут, а мы пишем на дотнет 8, а ты там нифига не понимаешь, потому что снова всё перелопатили?
Вдруг у тебя сломается комп и надо будет писать на слабом ноуте, на котором 10-ку не поставить и вижлу не запустить?
Вдруг надо будет написать веб-приложение, а идея у тебя бесплатная и нельзя создать проект на спринге?
Вдруг придётся писать под отечественный линупс, а там дотнет не ставится?
163 2519693
>>19690
По своему опыту скажу, придётся гуглить каждую вторую строчку.
164 2519694
>>19693
Так читай мсдн. Там актуально
165 2519696
>>19694
Мне нужен учебник, а не справочник
166 2519712
Почему Шилдт перестал писать по шарпу, а по джаве продолжает писать?
167 2519718
>>19712
Очевидно, решил, что шарп всё. Через пару лет и по жабе писать перестанет.
168 2519722
>>19692
Это такой местный троллинг тупостью?
169 2519725
>>19722
Это реальные проблемы, с которыми можешь столкнуться, если не правильно выбрал язык.
170 2519727
>>19677

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


Раньше в книгах по программированию так и писали: "Чел, извини у нас тут дохуя ошибок в листингах программ, но ты разберешься - мы в тебя верим"
Capture.JPG24 Кб, 890x213
171 2519728
как получить делегаты на геттер и сеттер, если на входе объект и его PropertyInfo?
с дженериком вместо "????" работает, но я к сожалению не могу использовать дженерик
172 2519730
>>19725
>>19692

>Вдруг придётся вручную прикручивать к проекту Tomcat


Берешь и прикручиваешь, это делается просто, достаточно парочку гайдов от индусов прочесть.

>>19692

>выучишь дотнет 7, а на работе скажут, а мы пишем на дотнет 8, а ты там нифига не понимаешь, потому что снова всё перелопатили?


Значит берешь и начинаешь понимать, что там они перелопатили.

>>19692

>Вдруг у тебя сломается комп


Тогда я прошу компанию выдать мне новый.

>>19692

>на котором 10-ку не поставить и вижлу не запустить


Ставлю легковесный дистр линукса + vs code.

>>19692

>а идея у тебя бесплатная и нельзя создать проект на спринге


Прошу компанию выдать мне идею ультимейт.

>>19692

>Вдруг придётся писать под отечественный линупс


Попросту не работай в подобных конторах.

Видишь, какие простые решения у всех проблем?
173 2519731
>>19728

>"????"


Это новый сахар? Сколько можно-то...
174 2519732
>>19728
Испоьзовать кодогенерацию
Или одну из кучи готовых либ генерящиъ геттеры сеттеры
175 2519733
>>19730
Ну тогда получается, что выгоднее учить джаву, а у сишарпа больше минусов.
176 2519737
>>19692

>Вдруг придётся вручную прикручивать к проекту Tomcat или выучишь дотнет 7, а на работе скажут, а мы пишем на дотнет 8, а ты там нифига не понимаешь, потому что снова всё перелопатили?


А может ты просто даун который не способен осилить несколько страниц текста с описанием изменений.

>Вдруг у тебя сломается комп и надо будет писать на слабом ноуте, на котором 10-ку не поставить и вижлу не запустить?


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

>Вдруг надо будет написать веб-приложение, а идея у тебя бесплатная и нельзя создать проект на спринге?


Чиво бля?

>Вдруг придётся писать под отечественный линупс, а там дотнет не ставится?


Ты из какой дыры выполз? Ты сейчас заебешься придумывать линукс на котором нет .net'а.
Capture.JPG39 Кб, 1208x231
177 2519741
>>19731
нет это я тупой и не могу понять что туда пихать чтобы заработало
вот это работает отлично, одна проблема только - дженерики использовать нельзя
>>19732
а можно где-то примеры посмотреть? кодогенерация всмысле Reflection.Emit?
178 2519742
>>19737
У меня рабочий ноут, на который нельзя поставить 10-ку. Зато там работает линупс легковесный.
179 2519745
В нет6 добавили тип DateOnly, уже релизнули нет 7, а маппинг для sql date так и не завезли.
180 2519747
>>19733
Все так. Хотя если хочется игрульники на юнити делать, то шарп норм выбор.
181 2519754
>>19737
А мне кажется, что ты сам не разбираешься в теме и резок на суждения.
Старых ноутов дофига и они работают. Это новые ломаются через год, потому что их делают фигово. А старые ещё 50 лет прослужат, а может и больше.
Отечественные линупсы не поддерживают дотнет, но зато из коробки есть джава 8 либерика и опенждк. Для примера можешь любой взять, хоть Астру, хоть РедОС.
182 2519759
>>19754

>Вдруг надо будет написать веб-приложение, а идея у тебя бесплатная и нельзя создать проект на спринге?



Это ты написал же? После этого ни к чему, что ты пишешь, уже серьезно относиться не получается...
183 2519765
>>19759
Ну иди создай в бесплатной идее. Они забанили все плагины, через которые можно было это делать раньше.
184 2519768
>>19765
Ну бери тогда эклипс, нетбинс или vs code.
185 2519771
>>19765

Чел.. ладно. Все мы были в этом месте наверное
187 2519781
>>19768
Эклипс крутой. Спору нет. Есть даже сборки под Спринг бут. Но сам редактор морально устарел
Нетбинс вообще не рабочий из коробки. Замаешься его настраивать. VS Code прикольный, но плагин на Спринг не удобный, там тебе выдают последовательно поля ввода, которые надо безошибочно заполнить.

>>19771
Да я знаю, что ты скажешь. Типа есть веб-форма, где можно заполнить поля и скачать архив с заготовкой проекта. Но это очень не удобно и требует подключение к интернету. А если интернет отключили, а срочно надо что-то сделать!?
188 2519783
>>19781

>А если интернет отключили, а срочно надо что-то сделать!?



Ты решил окончательно себя потопить что-ли? ) Все мы были вкатунами, все чего-то не знали и были наивными. Ничего страшного.
189 2519834
Какие есть платформы, и есть ли вообще, для бесплатного хостинга неткор приложеинй? Раньше использовал хероку для ноды и пыхыпы, но сейчас хероку прикрывают на днях.
Читаю списки альтернатив хероку и чтот там нету поддержки С# райнтаймов. Куда энтузиасту загружать приложухи для портфолио?
190 2519848
>>19834
Заливай через докер вместо дотнет рантайма
191 2519849
>>19834
Локалхост.
192 2519931
>>19848
Докер хуйня, у меня памяти нет для этого чудища.
193 2519949
>>19931
Тогда ищи где рантайм есть (бтв сделай виртуалку под линупсом на гиг рама и тебе хватит запаковать в докер твое говно)
194 2519970
а пpоясните за аттрибуты
новый инстанс создается каждый раз когда к нему обращаются? может ли их быть несколько одновременно?
195 2519974
>>19970

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

Думаю, это ответ на твой вопрос.
196 2519978
>>19974
я не пони
это статические классы получается?
допустим вот я сделал атрибут пикрелейтед и повесил на несколько проперти
а потом на пике 2 их еще в коллекцию положу
куда это все ссылается?
197 2519979
>>19978
только теперь заметил что проебался в конструкторе
198 2519981
>>19978
Это другое.

Сорян, засыпаю. Но в целом инстансы создаёт clr в условной куче, а атрибуты существовуют как метаданных в il
199 2519985
>>19981
теперь я еще больше запутался.
я хочу так вот сделать в теории: атрибут будет самостоятельно описывать свой проперти: сделает делегаты на геттер-сеттер, имя для INotify, имя для GUI, какие-то ограничения для элементов GUI и т.д. короче говоря хочу что-то вроде карточки над проперти которая по большей части будет автоматически будет заполняться, а что не будет то прямо над проперти в коде будет висеть - удобно же
а затем я хочу вытянуть все эти атрибуты с класса в рантайме и уже через них цепляться.
имеет ли смысл морочиться?
200 2519995
А правда, что когда юзаешь модальное окно (ShowDialog), нужно обязательно диспозить его?

Ну допусутим я реализую интерфейс IDisposable, а что там писать? Пустым оставлять? Лично в моем коде нет ничего, что нужно освобождать.
201 2520066
>>19985

>имеет ли смысл морочиться?


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

>>19995

>А правда, что когда юзаешь модальное окно (ShowDialog), нужно обязательно диспозить его?


Ты про ВинФормы?

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

Cекция using(var shit = new SomeShit()) нужна чтобы формошлепы не забыли гарантировано освободить ресы и занулится.

>Ну допусутим я реализую интерфейс IDisposable, а что там писать?


Его надо писать только если у тебя в классе есть неуправляемые ресурсы, во всех остальных случаях - нет.
202 2520087
>>20066

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


Ну вот например в контроллере есть контекст бд, но в шаблоне по умолчанию idispose не реализуется. Почему так?
203 2520097
>>20087
Потому что каждый запрос это createScope у контейнера
И в конце каждого запроса scope диспознет все что родил и что имеет lifetime scoped
204 2520141
Какими проектами занимаются сишарп-программисты?
изображение.png66 Кб, 653x301
205 2520146
Аноны, на пике сильно говнокод? Как написать нормально?
206 2520161
>>20141
Программируют мышкой винформы и WTF. И пишут сайтики для госконтор на древнем проприетарном дотнет фреймворке.
207 2520166
>>20161
Wpf на дотнет 7
А те кому лень перекатить техгологии - их выбор
208 2520185
>>20146
Ставлю на сектор "говнокод".

В конце ты делаешь ToList() и ВНИМАНИЕ у листа есть родной метод реверса. Если тебе нужен иногда обратный порядок группировки можно просто вызвать этот метод конечному результату после линкодрисни.
209 2520193
>>20146
А еще у тебя сраная стрелочка вместо нормальныйх скобок. Выкинь эту каку из своей жизни.
210 2520199
>>20146
Говнокод из-за повторов
211 2520202
>>20161
Получается нет смысла ждать новых книг и можно учиться по старым?
212 2520205
>>20202
Всегда есть смысл ждать новых
А когда они выйдут лучше все же новее подождать
Ведь они точно лучше

А до тех пор работать на заводе
213 2520210
>>20205
Проще тогда учить джаву, потому что там все книги актуальные
214 2520211
>>20210
Лучше уж синклер бейсик. Там язык гарантировано стабилен
Проверено десятилетиями
215 2520212
>>20211
На синклер бейсике никто не пишет серьёзных программ, а пишут сразу на ассемблере Z80A. Это раньше было сложно достать инфу, а сейчас благодаря интернету можно найти всю инфу по архитектуре Спектрумов.
216 2520215
>>20212
Зачем писать.
Главное - учить то что не устареет пока учишь

Ведь людям сложно выучить по любой инфе а потом прочитать несколько статей из раздела "что нового"
217 2520228
>>20215
Дак ладно там бы добавляли новое из разряда: новая функция в библиотеке или новая закорючка в языке. Дак они переделывают полностью язык. Сишарп 1.0 и Сишарп 11 - это два разных языка, как джава и котлин наверно. Я уж молчу про фреймворки, там вообще всё новое в каждой версии. Если взять даже старые книги по ним, то авторы это неоднократно отмечают, что пришлось переписать большую часть книги.
218 2520231
>>20228
И что с того
Весь мир так учил
Или ты думаешь что на каждую новую версию снова книгу читать

Просто читается "что нового" и миграция
И немного статей по новым фичам если оно не простое
219 2520236
>>20231
Меня ещё смущает, что надо консольной командой генерировать миграции. Не могу смириться с этим фактом.
220 2520238
>>20236
я не про те миграции
а про миграции с одной версии либы/фреймворка на другую
где очередной гений из мелких решил переделать Startup класс
221 2520302
>>20212

>На синклер бейсике никто не пишет серьёзных программ


Воу-воу, палехче. Пишут. И игры даже норм делают. Правда все больше на компилируемом варианте, но пишут.
222 2520325
>>20228

>Сишарп 1.0 и Сишарп 11 - это два разных языка, как джава и котлин наверно.


Угу. И у большинства джавистов одна и та же проблема, всем хотелось бы работать на няшном котлине, но приходится работать на 8-й версии джавы (которая почти 10 лет назад вышла).
В то же время на шарпе сейчас найти проекты на версиях ниже 7-й (а сейчас уже наверное ниже 8-й) - постараться нужно.
223 2520351
>>20325

Да это чисто вкатунская боль, он из книги 2006го года перепечатал в студию, а оно не компилируется, т.к. класса Bitmap нет в .NET6, и начинаются рякания.

Для норм разработки всё это не имеет никакого значения (другое - да, но не это).
224 2520358
>>20325

>приходится работать на 8-й версии джавы (которая почти 10 лет назад вышла)


А в чем проблема, собственно? Да, некоторых удобных фишек в 8 джаве нет, но все основное, включая лямбды и стримы, вполне себе присутствуют. Все последующие версии по факту минорные, может только 21 LTS версия будет популярной, так как туда лум уже могут завезти
225 2520361
>>20146
Нечитаемая параша
226 2520376
>>20325

>приходится работать на 8-й версии джавы


Я бы с удовольствием пошёл работать на 5 версию джавы. Хоть многолетние сеньоры кичатся знаниями, но тогда было легче всё осваивать, чем сейчас. Без лямбд и прочих стримов собес не пройти, а это как бы функциональное программирование, которое требует иного мышления, а не просто ещё одна библиотека.
227 2520386
>>20376

Вот sql-запросы (реляционная алгебра) требуют иного мышления, а лямбды это так... хотя тоже отчасти верно.
228 2520418
>>20386
Всю эту инопланетную хуйню надо сжечь с огнем и оставить только ОО-подход везде.
229 2520429
>>20418
И веб тоже. Декларативный недосинтаксис хтмл с полной зависимостью от браузера давно по факту вытеснил убеищных JS. Т.е. весь веб исполняемый, а не декаративный как задумывалось изначально. Можно все заменить объектами на любом языке и гонять их по сети на клиент. Мелкомягкие пытались родить что-то похожее в виде сильверлайта, но как обычно не довели до конца и обосрались. Их поражение - наше пролжающеся говноедство ублюдочной функциональной парадигмы JS торчащей из каждого умного утюга.
230 2520433
>>20429

>сильверлайт


Дак это попытка создать сишарп-апплеты, когда джава-апплеты умерли.
231 2520448
>>20429
Так уже есть wasm
232 2520453
>>20448
Да ну. То есть теперь можно сесть и разработать не сервелат, который проприетарный модуль и браузеры ему противились (как и вообще доп плагинам), а сделать можно на wasm и будет счастье?

Но стоп, вот же сделали blazor, а чет не видно массового бега с жс
233 2520454
>>15951 (OP)
Спасибо что перекатили. Следующий перекачу я, был очень занят.
мимо бывший ОП
234 2520467
>>20302
Дак он наверно на больших ЭВМ компилируется, а на Спектрум заливается образ в машинных кодах. Насколько помню такие компиляторы и раньше были, но ими никто не пользовался, потому что они съедали половину ОЗУ и на программу ничего не оставалось.
235 2520497
>>20433
Да. И в этих аплетах можно было реализовать приложение без браузерной прослойки хтмл-цсс-жс, плюс нормальное апи для бека. Неудобство только в том, что пользователям надо ставить фреймворк и аддон на браузер, зато с точки зрения разработки каеф - пишешь почти нормальный десктоп, за исключением данных прилетающих по сети.

Алсо, я как-то давно забредал на сайт посвященный алгоритмам поиска путей, определения видимости, разбиения полигонов и прочими такими задачками для игор/графики. На нем все примеры были сделны в аплетах на жаве. Можно было алгоритм из статьи сразу пощупать в живую - поменять данные, мышкой подергать обстаклы и все такое. Был удивлен как все удобно и без тормозов, просто космические технологии древних.
236 2520510
>>20453

>blazor


Он же вроде компилируется в жс на фронте? Это другое.

Идея в том чтобы вообще выкинуть каличный браузерный стек оставив одну запускалку объектов полученых из сети, а дальше они пусть сами ебутся с логикой и отрисовкой всего что нужно.
237 2520522
>>20510

>Он же вроде компилируется в жс на фронте? Это другое.


нет. ты путаешь с тайпскриптом.
238 2520543
Нужно ли создавать отдельную сущность для парсинга строки запроса в webapi?
239 2520560
>>20543
строку запроса парсит сам движок и биндит тебе на параметры, только называй их правильно и аттрибуты вешай если нужно
а сущность нужно если ты хочешь распарсить post или гет запрос сразу в объект вместо параметров к action
240 2520573
>>20066

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


ага, весь код мой. я хочу свои собственные классы динамически подцеплять.
я хочу. биндингов там где я макакирую юнити нет, поэтому мне приходится велосипедить, суть такова:
есть мои сущности, к проперти которых я хочу подцеплять свой UI, двухсторонним манером 1 проперти к коллекции UI элементов.
сущности я потом планирую дополнять, возможно менять по мере разработки и хотел бы сделать биндинг этот максимально приятным и открытым для себя же в будущем чтобы потом таскать его в другие проекты.
я хочу сделать что-то вроде репозитория где ключом будет тип, а данными - класс-коллекция открытых делегатов на все геттеры/сеттеры декорированных атрибутом проперти и вытянутые из атрибута данные(имя для UI, ограничения т.д.)
если попадается класс, которому нужно рисовать UI, то сначала смотрится репозиторий, если там ничего, то создается с рефлексией и фильтром по декорированным проперти и отдается.
а если и там нет и атрибутов нет, то орать на весь поезд и требовать остановки потому что классы без атрибута не имеют права в этот обработчик вообще попадать и я где-то проебся.
в итоге по идее должна получиться система, где хардкодиться будет только имя проперти для UI и прочие вещи которые я хочу в конструктор атрибута передавать, но т.к. это будет висеть прямо над проперти, то там все сразу будет наглядно видно
а всю дичь с рефлексией можно и под капот и она будет крутиться только один раз для каждого декорированного типа, а потом просто раздавать кешированные данные классу отвечающему за создание UI
единственное что я пока не допер как делать каким образом правильно запилить открытый делегат
буду благодарен если мне укажут где я дурак и как сделать правильнее
241 2520575
>>20560
Проблема в том, что я могу забиндить параметры только к строкам, так как например min и max у меня могут быть разных типов, в зависимости от выбранного свойства для фильтрации. В итоге мне приходится писать большую портянку из switch case. Я и спрашиваю, уместно ли эту портянку оставлять в обработчике, или лучше вынести в отдельный класс.
242 2520597
>>20575
Хотя я только что подумал, что можно просто создать отдельные параметры для каждого типа и не ебаться со свитчами и tryparse
243 2520602
>>20575
получением запроса занимается контроллер
и значит его дело разобраться "что там пришло и что с ним делать"

тебе же либо вот так разбираться самому
либо убрать совпадение имен
либо написать свой биндинг
244 2520603
>>20573

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


Вот это непонятно. Что за открытый делегат? Ты хочешь атрибут который указывает метод-обработчик события?
245 2520614
>>20603
это я у джона скита увидел и сразу понял что ХОТЕТ
https://codeblog.jonskeet.uk/2008/08/09/making-reflection-fly-and-exploring-delegates/
https://github.com/jskeet/protobuf-csharp-port/blob/master/src/ProtocolBuffers/FieldAccess/ReflectionUtil.cs
там в общем один и тот же делегат дергает метод любого инстанса если ему нужный инстанс передать
246 2520623
>>19949
У меня не в раме проблема, а в жд, у меня памяти нет от слова совсем. 10 гигов на такую хуету это жырно ппц, придется искать
247 2520660
>>20614
Понятно. Смотри там передоз от магии не схвати.
248 2520680
>>20573
какой еще открытый делегат. геттеры сеттеры тебе делегаты не помогут. Ты просто не сможешь скастить к Func<T> ведь у тебя нет этого самого T
Ты достаешь PropertyInfo и далее генеришь геттеры/сеттеры через expressions или emit и складываешь в словарик и используешь. Конечно ты не сможешь избежать боксинга ведь в этот словарик нужно положить геттер сигнатурно одинаковый, а значит Func<T, object>

Другое дело если ты используешь методы маппинга сразу чтобы не было лишнего object (но это не твой случай, ты же не маппер пишешь)
249 2520737
Вопрос от нюфани: почему во всех примера на шарпе я вижу, что сперва создают объект класса, а только в самом конце программы непосредственно сам класс. Разве программа не выполняется последовательно, сверху вниз? И экземпляр еще не может быть создан до инициализации класса.
250 2520755
>>20737
Это не питон и не руби. Тут опреление сигнатур порядка не имеет, лишь бы оно где то было чтобы компилятор смог найти
251 2520756
>>20737
Последовательно выполняются инструкции внутри функции. А все определения классов, перечислений и тд, заносятся в метаданные во время компиляции.
252 2520777
>>20755
>>20756
Понял, спасибо.
253 2521112
>>18236
Храню отдельныии классами в папочке моделс.
изображение.png59 Кб, 1306x285
254 2521168
Как пофиксить неоднозначность?
255 2521220
>>21168
Как нам догадаться в чем неоднозначность
256 2521222
>>21220
В этом и неоднозначность 😂😂😂
257 2521226
>>21168
Перестать выебываться, не?
258 2521235
>>21168
очевидно же дропнуть первый метод и нормально переписать второй
а еще бросить шарп и уйти работать в пятерочку, а то там вечно на кассе не хватает людей.
259 2521318
>>19834
А 3.5 доллара за впску амазона - никак не осилишь? Там же и впн развернуть можно заодно.
260 2521467
>>21318
Где же он доллары возьмет ))
261 2521471
>>19834
https://vds.selectel.ru/ru/pricing.html
Берешь самую дешёвую vds-ку и грузишь.
262 2521612
>>18236
Для дтошек использую Requests/Responses
И опять же к каждой дто добавляю постфикс Request/Response чтобы быстро понять что это.
Когда их много можно группировать по фичам/версиям апи(иногда все вместе).
Вообще иногда есть смысл для контрактов завести отдельный проект, где у тебя сообщения для шины и запросы/ответы шарятся между проектами.
263 2521648
Какой уебан посоветовал переходить на NET6 и выше?

>Xaml не поддерживает кириллицу даже в свойствах Text



Вы ебанутые?
264 2521655
Нужно создать веб-сервис, который будет разворачиваться в IIS, отправляющий запросы в определённый интервал времени. Что почитать по этой теме?
265 2521660
>>21648
ты о чем вообще?
266 2521662
>>21655
куда отправляющий? причем тут вообще IIS?
267 2521667
>>21648
Братиш, .net Framework 3.5 - 4.6 наше все. Остальные индусоаподелия под этой торговой маркой идут нахуй.
268 2521674
>>21662

>куда отправляющий


разве важно куда? там get запрос на получение данных из одной системы (типа 1с предприятие) и post запрос во внутреннюю систему компании. Иными словами, тупо перекидывание данных. нужно сделать так, чтобы это происходило каждые 15 минут.

>причем тут вообще IIS


приложение должно быть на asp.net, такие приложение разворачиваются в IIS
269 2521686
>>21674
Конечно важно
Потому что суть веб-сервиса ПРИНИМАТЬ запросы

Иначе это просто сервис который тупо цикл с периожом в нужное время
270 2521691
>>21660

>ты о чем вообще?


О том, что в NetFramework WPF-проекте я вообще не парился, если в xaml-разметке присутствовала кириллица. Я даже порой иконки тащил прямо из символа юникода, если надо какую стрелку вставить.

Щас сделал проект на NET6 и компилятор ругается, что присутствуют недопустимые знаки. Даже если это Text="ываывыва" в TextBlock, даже если это комментарий (тебя ебет, компилятор?). Специфическая универсальность по версии майкрософта, это не когда ты "можешь и там и здесь", а когда ты "не можешь ни здесь, ни там".

Щас почитал SO, все предлагают вставлять коды символов. Вы, блять, больные?
22й год на дворе, вернулись в каменный век. Я себе типа жизнь облегчить хотел, а не решать новые пробелмы.
271 2521694
>>21691
хз о чем ты.
у самого такой проект еще со времен 2 нета доросший до 4.8
спокойно переехал на 6 когда он вышел
и вот недавно на 7

никаких проблем с кириллицей. А он такой весь.

Но в новых проектах предпочитаю строки из ресурсов.
272 2521695
>>21686
там будут управляющие запросы. (задание параметров)
273 2521698
>>21694
Да я вроде тоже как-то переводил проект и вроде ошибок не было, а щас создал новый и какая-то херь.
274 2521700
>>21695
Ну так и делай что задумал. Ну а что еще делать то
делай asp.net проект, пусть принимает запросы. IIS ему особо не нужен, но если хочется, то...да твое дело.
И в нем сервис IHostedService/BackgroundService где
while(!ct.IsCancellationRequested){
делаем работу
await Task.Delay(Timeout.FromMinutes(15))
}

Ну а при внешних запросах меняй в нем что хочешь - это ж singleton (только придется правильно в DI регать)
Image 1.png5 Кб, 319x170
275 2521702
>>21698
никаких проблем
276 2521704
>>21702
Я вот щас в ресурсах кириллицу оставил и норм, но как только оставляю ее в Window — ошибка.
277 2521705
>>21655

>Нужно создать веб-сервис, который будет разворачиваться в IIS


ASp.Net, только ему необязательно в IIS разворачиваться.

>отправляющий запросы в определённый интервал времени. Что почитать по этой теме?


Quartz.net
278 2521709
>>21704
Ну разве что у меня англ студия но это не имеет значения ибо файлы юникод
279 2521712
>>21709
Короче это был какой-то глюк студии. Щас создал новое окно и все хорошо. Я не знаю что это и почему.
280 2521720
шарпаны, есть два разных интерфейса, наследовать один от другого или от общего базового не хочу
можно ли сделать так, чтобы если в классе определен один интерфейс компилятор ОБЯЗЫВАЛ меня определять второй там же?
281 2521722
>>21720
С чего ему тебе приказывать

Это ты можешь запилить агализатор
или проверить на старте в рантайме для дебаг версии.
изображение.png12 Кб, 2338x100
282 2521723
Почему запрос выделен красным?
283 2521724
>>21723
Видимо раскрасил увидев слово failed
284 2521728
>>21724
А почему failed? Я ведь ничего не трогал, делал чисто по руководству.
285 2521729
>>21728
Ну так ты свойство в классе назвал
А у тебя вывод видимо ищет маркеры в выводе для раскраски
286 2521731
>>21729
А, вот ты о чем. Я сперва подумал, что рядом с запросом failed было, а плагин его скрыл, заменив цветом.
Миксеры2.mp49,1 Мб, mp4,
320x240, 2:01
287 2521769
>>21720
Нет, ты уж прям хочешь какого-то совсем необычного поведения на уровне вангования. Это же ведь суть интерфейсов — быть смиксованными и уже потом реализоваться. Это же буквально шаблон из трех слов. Уходит традиция, тонкая традиция, когда ты берешь спокойно IКартофель, IМорковь берешь, IБаклажаны берешь, или еще берешь, например, это ... и IМорковки берется например, берется и забираются IДети и IСтарыеЛюди, собираются где-то на Кухне.cs, или если угодно вам ... или если угодно вам в КухонномПритворе.csproj, собираются интерфейсы и спокойно делается руками всё. От этого миксера пошла и микс-культура. Микс-культура нарезается в подпольных фабриках...
288 2521782
Граждане, шарполголики, такой вопрос. Есть некое ASP MVC веб приложение на древнем netframeworke. И у этого приложения при попытке паблишинга где-то лапками прописанно к бэку еще и одновременно паблишить и фронт и складывать его в wwwroot и студия пытается подавать команды node и на них и сыпется. Меня интересуют небольшие правки на беке, мне в хуй не уперлось паблишить одновременно с ним виснущий фронт. Как в древнем netframeworke потререть дополнительные, прописанные лапками, команды при паблишинге. В коре это, кажется делается в csproj. А тут де?
289 2521810
>>21769
Проорал люто с КухонногоПритвора.csproj
290 2521856
>>21769

>Микс-культура нарезается в подпольных фабриках...


На абстрактных подпольных фабриках.
291 2522032
>>21782
Сделай exclude на папке с фронтом.
292 2522060
>>21782
>>22032
Сам нашел уже. Было насрано в пропертис проекта -> билд ивэнтс -> пост билд команд лайн
293 2522303
Есть TermBaseRegister и есть TermStorageRegister : TermBaseRegister

TermStorageRegister уже есть в БД (кодфёрст еф6 все дела).
Теперь хочу добавить в БД TermBaseRegister, но при миграции ЕФ норовит просто переименовать TermStorageRegister в TermBaseRegister. А мне надо чтоб это две разные таблички были

Подскажите плиз как ЕФ заставить создать вторую табличку, а не переименовывать старую
Capture.JPG18 Кб, 545x371
294 2522630
хочу разделить коммуникацию некоторых классов вот этой штукой
имеет ли смысл?
295 2522693
>>22630
Говно.

Шину событий лучше напиши и прокиджывай ее как сервис везде где нужно непрямое взаимодействие объектов.
296 2522741
>>22693
а как ее сделать?
и как сервис прокидывать, это же что-то из впф?
297 2522769
>>22741
как хочешь.
тут все фломастеры
некоторые любят шину за косвенность
другие хейтят шину за косвенность
кто то делает синглтон
кто то таскает с зависимостями
кто то просто строки как имена событий и отдельно объект данных
кто то юзает целые объекты как события
кто то делает получателем метод подходящей сигнатуры
а кто то делает интерфейсы типа IReceiver
298 2522775
>>22741
А еще кто то просто шлет сообщения ака события типа "всех уведомляем"
другие же делают Domain Events - тут уже и события ДО самого события даже можно послать.
А то и вообще пытаются сшивать части чтобы они друг о друге не знали, а чисто кидались С ОТВЕТАМИ друг в друга, возможно даже инстанцируясь при этом (mediatr)

ты знал куда шел (с)
299 2522803
>>22303
Конфигурации пропиши
300 2522808
>>22803
Я нашел, что по дефолту в ЕФе TPH, а я хочу TPC - https://www.entityframeworktutorial.net/code-first/inheritance-strategy-in-code-first.aspx и https://www.entityframeworktutorial.net/code-first/inheritance-strategy-in-code-first.aspx

Только вот я столкнулся с проблемой такой вот - https://stackoverflow.com/questions/31315158/tpc-inheritance-error?noredirect=1&lq=1

Т.е. меня в базовом классе есть ссылки на другие классы
а ля
TermBaseRegister
{
...
public User Agent {get; set;}
...
}
И при попытке миграции я получаю ошибку
The association 'TermBaseRegister_Agent' between entity types 'TermBaseRegister' and 'User' is invalid. In a TPC hierarchy independent associations are only allowed on the most derived types.
Т.е. вот эти ссылки должны быть у наследников только (Я так понимаю в TPC базовый класс чуть ли не абстрактным хотят видеть)
Можно конечно в TPT попробовать, но это же кал говна ебаный, от которого только головняк при сборе данных будет кмк
301 2522809
Eb.png16 Кб, 834x518
302 2522824
>>22741

>а как ее сделать?


Например как на пике.

Шина событий - это просто класс который споставляет TEvent => список обработчиков.

Любой объект может подписаться на нужное ему событие:
Bus.Subscribe<MouseClick>(this.MouseClickHandler);

Любой объект может отправить событие в шину:
Bus.Send<MouseClick>(new MouseClick(X, Y));

Все кто на него подписан, получают объект класса события и что-то с ним делают.

>и как сервис прокидывать


Просто в конструкторе передаешь инстанцию шины. Или еще проще - делаешь шину синглетоном, но это не тру.

Небольшое замечание: на пикче использованы слабые события, чтобы не было нужды явно отписываться от шины, когда класс получатель становится не нужен. Если использовать обычные делегаты, то нужно отписывааться явно, чтобы не получить утечку память. Слабые события создают меньше головняка с правильным удалением объектов, но внутри у них уличная магия.
303 2522832
>>22824

>когда класс получатель становится не нужен


Вот только отписка так будет только когда GC придет
А до этого так и будет получать уведомления и реагировать, хотя уже не нужно

>Слабые события создают меньше головняка с правильным удалением объектов


самый лучший подход это сильная (ну то есть не слабая) подписка с lifetime-ом
304 2522836
>>22832

>Вот только отписка так будет только когда GC придет


Ноуп. В моей реализации дохлый класс отпишется когда произойдет любое событие на которое он потписан.

Порядок действий примерно такой:
1. На объект теряются все ссылки.
2. Отрабтавает GC.
3. Становятся невалидными все ссылки в слабых событиях на него.
4. Проходит много-много времени...
5. Происходит событие на которое был подписан уже несуществующий объект - все дохлые ссылки на него чистятся. Вызываются обработчики только у живых объектов.

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

>самый лучший подход это сильная (ну то есть не слабая) подписка с lifetime-ом


Можно и так.
305 2522850
>>22836
у тебя вера в то, что пункт 2 произойдет быстро. На деле твой объект лежит во втором поколении и неизвестно когда GC почистит второе поколение.
306 2522853
>>22850
Вспомнил лузный флаг IsDisposed и его проверку в каждом публичноv методе. Не вижу проблем добавить еще один флаг IsDead чтобы запретить прием нежелательных событий после кончины объекта. Один флаг всяк проще чем отписка от 100500 событий в шине.

>пункт 2 произойдет быстро


Алсо у меня такой проблемы не было. Высокоуровневые события происходят оче редко, между ними всегда успевает встрять GC.
307 2522910
>>22853

>Один флаг всяк проще чем отписка от 100500 событий в шине.


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

Нужна агитация за использования лайфтаймов, чтобы народ перестал страдать фигней и сразу делал правильно.
308 2522912
>>22910

>Нужна агитация за использования лайфтаймов


Дай годную статью, а то нихуя не понятно.
309 2522923
>>15951 (OP)
Есть уважаемый аноном современный курс или книга по асп нету, кроме доки? Английский знаю
310 2522931
>>22912
статью не могу. могу дать годный доклад
https://www.youtube.com/watch?v=Sq_h5bVWJ0k

Про dispose все знают - понятно, но это не более чем информация "меня очищать нужно так то".

Но не более.
когда очищать? как вызвать? очищать ли вложенные IDisposable?

Кто то же должен отвечать за вызов Dispose (мы не говорим конечно про примитивные вещи которым хватит using)

А значит кому то доверяется знание про время жизни.
Те же scope в DI могут диспознуть рожденные ими зависимости если они были добавлены как scoped.
Неплохо работает в асп.нет где есть явнопонятный scope "запрос" или в простом коде где можно выделить scope, но если что то сложное, долгоживущее, многопоточное, то неудобно.

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

В общем то если даже у нас не супер сложный код, то все равно можно использовать эту явность. Просто это непривычно "я не пишу сложные штуки зачем оно мне..."
Удобно же что списки принимают лайфтайм, события принимают лайфтайм - отписка пройдет автоматом и не разделена "подписались в конструкторе и отписались в диспозе который хер знает где внизу портянки и вообще если не забыли отписаться" (с лайфтаймом забыть отписаться невозможно.
311 2522936
Слухайте, а если я забыл задиспосить то, что следовало бы. Когда оно исчезнет и перестанет мешаться? После остановки приложение? После перезагрузки компа? Никогда?
312 2522938
>>22936
обычно для этого пишут финализатор, который GC (если до него дошло, то есть ссылок больше нет) дернет и оно задиспозит забытое

Но это не тру - финализатор вызывается в отдельном потоке, неизвестно когда.
Это костыль (плохой) для решения проблемы "забыть диспознуть"
313 2522943
>>22936
Ресурсы не обязательно управляются сборщиком мусора или операционной системой. Это может быть, к примеру, временный файл, который надо явным действием удалить, или завершение сессии пользователя на сервере, для чего надо отправить туда запрос. И всё это придётся делать в Dispose.
314 2522950
>>22912
Если очень просто, то это как
CancellationTokenSource и CancellationToken, где CancellationToken

LifetimeDefintion и Lifetime - выглядят похожие на пару выше как братья. принцип использования и работы идентичен.
У обоих есть и флаг состояния и методы вида с семантикой подписки Register
И можно создавать дочерние

Просто у Lifetime семантика другая - не "отмена", а "компонент умер". Ну и разные плюхи чтобы диспозилось в обратном порядке.

Семантика это важно. Вон мелкие используют CancellationToken как события appllication в асп.нет, что вызывает недоумение - ну да, там есть Register но как бы от CancellationToken ожидается отмена, а для событий есть...ну event
315 2522963
У меня в таблице есть два поля: дата начала и дата завершения. Можно как-то с помощью атрибутов или fluent api задать условие, согласно которому первая должна быть меньше второй?
317 2523017
>>23007
Там есть

"Вообще-то, самая соль там в топовых комментариях (перевод которых стоило бы добавить в начало статьи), где автору справедливо указывают на то, что это не очень ок - предъявлять претензии MS за участия неполноценных фреймворков в бенчах, и тут же сравнивать полноценный фреймворк (full mvc) который занял "лишь 109 строчку", с никем не используемыми реализациями на других языках, о которых никто не знает, которыми никто не пользуется, и которые делались исключительно для бенчмарков.

Хочешь сравнить с php - бери laravel, Yii (374 строчка), а не mixphp. Хочешь сравнивать c Java - тогда где Spring? А, на 351ой.."

Лично я с этим согласен
318 2523021
>>23007
Ну наебали с результатами значит наебали, чего бухтеть? Жаль конечно нашего techempower-шизика, он с этой таблицей носился по всей борде больше года, а тут такое вскрылось...
image.png18 Кб, 755x262
319 2523026
>>22963
Да, можешь сделать кастомный аттрибут, наследованный от ValidationAttribute и надписать метод IsValid как тебе удобно.

Или можно как на пикрил, но надо следить, чтобы у MaxValue всегда было значение.
320 2523037
>>23007
А что там? Снова мухлюют с бенчмарками? Вот это новость (нет).

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

К сожалению мы живем во времена пыли в глаза и впечатлительных людей, иначе пройдут мимо.
321 2523062
>>22769
>>22775
>>22824
сложно пиздос и это получается надо эту шину зависимостью всех кому надо общаться держать?
322 2523087
>>23062
ну шину легко сделать или взять готовую
а вот выбирать как с ней работать - тут сложно
можешь держать, передавая через конструктор
может статик (те же Domain Events если будешь гуглить то сплошные статики)
а можешь как медиатр - посылатель через конструктор, а вот получатель только реализует интерфейс и сам не подписывается. (но вот лично мне такое не нравится - если подписчик не инстанцирован, значит нечего его будить)
323 2523094
>>23087
если шину передавать через конструктор то это получается во всех объектах которые создают объекты, которым нужна шина, ее надо держать в референсах т.е. к прочим параметрам при создании надо еще и шину добавлять
если у меня например создание:
MyObject o = new myObject(arg1, arg2, arg3);
то с шиной будет
MyObject o = new myObject(arg1, arg2, arg3, bus);
или можно как-то иначе?
324 2523107
>>23094
ну да, зависимостей много
но как бы их создает DI

но это как и с логгером. кто то принимает Ilogger<>, другие считают что логинк это вообще "cross cutting concerns" и делают статиком (я статиком)

так что тут выбор из "что меньше бесит и мешает тестированию"
1 статик
2 параметр
3 ambient context, что делают с логгированием, но с мессенджером как то смысла нет, ведь это тот же пункт 1

Можно ведь хотеть разные месседжеры, а можно один статик, но сделать в нем "каналы"(или токен слать с сообщением как доп метка)

В общем кинь монетку

Я как то заморочился и у меня
1 во вьюмоделях мессенджер имеет события с текстовыми именами, вызывает методы и имеет токен. Неудобство - только в рантайме узнаешь, что тип объекта данных не подходит
2 а вот подобие домаиневентс - там классы определяют событие. Целевой класс может иметь несколько хендлеров. Удобно подписывать, неудобно отписывать (обычно и не нужно)
3 я не люблю медиатр с его DI - да ну нечего будить компоненты, да и вообще такая тотальная косвенность приводит к тому что непонятно где что кого. Поэтому у меня подписки явные. Отписки - lifetime отпишет
325 2523118
>>23026
Спасибо за ответ, воспользуюсь атрибутами. Только тогда возникает еще один вопрос, вот у меня есть класс представляющий таблицу, например book, и класс bookdto, который я использую для получения жсонов, мне получается нужно будет дублировать атрибуты, это не считается плохой практикой?
326 2523124
>>23118
А вообще, где можно найти пример эталонного web api приложения, чтобы знать к чему стремиться?
327 2523142
>>23124
Мечтаю вкатиься шарпы, но работа не дает. Два тимлида заставляют сидеть на их технологиях: питухонеры и паскалисты. Это какие-то два микроада. Как хитростью незаметно перевести их на рельсы шарпа?
328 2523145
>>23142
да прям таки
питончик тоже норм
ну который с типизацией и если не нужна сильная многопоточность.
329 2523194
>>23142
Расскажи про паскаль
330 2523196
>>23142

>паскалисты


Делфи в 2023 году?
331 2523199
>>23142

>и паскалисты


Ебать тебе повезло, аж завидую малость. Хоть нормальный ЯП попробуешь перед тем как твои мозги будут безвозвратно съедены питоном, шарпом или жабаскриптом.
332 2523201
>>23199
Ты не фан Столярова?
333 2523205
>>19745
Блин, они еще и сериализацию/десериализацию для него не завезли, ну как так можно.
334 2523215
>>23201
Нет. Столяров швабодошизик, который боится исполнять чужие покакуньуки на своем калькуляторе. Я свободный от этих предрассудков человек и готов получить и выполнить вирос-шифровальщик хоть по почте.

Паскаль я уважаю, из системных языков он топовый. Самое лучшее отношение граблей к полезному результату. Там где на сишечке будешь охуевать от УБ при выделении памяти и ловить сегфолты работая со строками через указатели, в паскале все делается легко и непринужденно без подводных камней.
335 2523217
>>23215
С таким же успехом можно го использовать
336 2523220
>>23217
Нельзя же. Конпелятор go держит программиста за тупое быдло и постоянно его унижает. Чего стоит хотя бы форс стиля скобок, бесконечные ублюдочные проверки err там где надо и ненадо. Не нужно использовать языки которые умнее тебя в плохом смысле этого слова.
337 2523229
>>23220
На Расте тогда можно
338 2523231
>>23229

>я научю вас чисто срать



Спасибо, доктор!
339 2523235
>>23231
Ладно, тогда на Паскале
340 2523238
>>15951 (OP)
Можно ли использовать razor вне asp.net?
Допустим, считываю строки с файла и передаю их и модель/анонимный тип в соответствующий метод, который возвращает строку.
341 2523243
>>23238
Да.
5lqJ81dbIY.jpg83 Кб, 888x495
342 2523337
Хочу расставить все точки над "и" по поводу словарей ресурсов. Я уже задавал вопрос, но его смыло и, в общем, обсуждение перетекло в другое русло. Платформа NET6.

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

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

У меня вопрос, это студией как-то фильтруется? Как-то она чистит вилкой? Потому что, если все оставить как есть, то это будет пугающе для производительности.
2022-11-2522-27-29.png44 Кб, 543x402
343 2523349
>>23337
П.И.З.Д.Е.Ц.
Ну я подозревал, что мудоебство синтаксиса xaml не может быть адекватным и под капотом, но чтоб такое ...

Вы понимаете, что ваше байтоебство и попытки отловить миллисекунды, просто уничтожаются одной кнопкой на WPF?
344 2523422
>>23349
хз о чем он пишет
если он про что то что в словаре - ну конечно создается, а как иначе (ну для решения этого вроде есть x:Shared). А "ссылается на словарь" - непонятно что это
345 2523480
>>23107
нашел вот такую, статическая шина, не знаю пока буду ли делать обычной, но мне оче понравился т.к. я могу тупо интерфейсы свои унаследовать и они сразу заработают как надо:
https://github.com/velik97/EventBus
я допилил в него свое понимание lifetime(выделил на пиках)
enum из двух записей: once, repeating
внутри листа подписчиков(пик 1) сделал словарь подписчик - enum и метод возвращающий enum подписчика
при подписке по дефолту передаю repeating
в конце каждой инвокации(пик 2) проверяю, если enum once, то удаляю из листа подписчиков отписываю и удаляю kvp из словаря
единственное что на каждый лист подписчиков должен быть свой словарь и наверное надо будет еще и проверять что ключ такой вообще есть прежде чем возвращать через GetLifetime, хотя если подписчик есть в листе он должен быть и в словаре и наверное проверка просто избыточна...
346 2523519
>>23199
Фактически использую питон с html фреймфорком и дельфи с sql. Крч фуллстак фокусник на зарплате
16666151525360.mp43,2 Мб, mp4,
576x1024, 0:11
347 2523520
Научите программировать, пожалуста.
348 2523521
>>23194
>>23196
Остался огромный легаси проект по взаимодействию с БД Firebird, в котором храняся данные о товарах и клиентах кабанчиков. Это БД говно, которое нельзя дропнуть, но работает во всяких лазарусах из под коробки.

Для каждого отдела свой ГУИ, который вызывает окно, в котором окно, в котором еще окно. Собственно в каждом окне новая таблица из джойнов или селектов. Вложенность уровня на 3 минимум. Фич так дохуя, что проще доку на 50 страниц ебануть либо каждому пользователю тет-а-тек показывать как работает. Кабанчики охуевают и не могут рабобраться в меню программы лол. Сложно слишком

Проект просто тысячи тысяч строк ибо там штук 5 отделов. У каждого штук 7 таблиц, которые вместе составляются джойнами в другие таблицы (минимум 30 таблиц). Ну и постоянно идет добавление сранных полей. Кабанчики это любят пиздец. Я не работаю с этим, а мой коллега создавший этого огромного монстра. Там можно и документ создать, и в печать отправить, и картинки посмотреть, и чего только нет чем пользуются раз в 100 лет. Оверинжиниринг во все поля.

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

Думаю со временем мне поручат сделать более упрощенные аналоги с такими характеристиками:
- сделать много маленьких программ вместо одной большой на отдел для разных задач с максимум 2 уровенями вложенности вместо 3-4 чтобы даже секретутки могли без жопной боли пользоваться
- написать простенький мануал
- использовать свежие исходники (лазарус)
- использовать рукописный код (местами быстрее дефолтных компонентов) от текущего проекта
14912140016040.jpg39 Кб, 600x600
349 2523532
>>23480
В резюме потом напиши ачивку "Архитектурный астронавт 3-го класса".
350 2523560
>>23422

>ну для решения этого вроде есть x:Shared


Это что такое? Читал про SharedResourceDictionary, но это какие-то самопальные классы.
351 2523588
>>23560
Ясно, это атрибут Shared в словаре ресурсов. По умолчанию true и значит элементы работают с одним и тем же экземпляром.

В общем, сложно понять было т.к. выдранный мною текст на скрине датируется чуть ли не десятилетием назад.
352 2523644
В чем суть xaml?
Почему форму предлагают набирать текстом вместо того чтобы ее удобно нарисовать в десингере?
Рыться в атрибутах хмла по памяти vs щелкать удобные кнопочки в инспекторе свойств - почему выбирают первое?
353 2523681
>>23644
А ты попробуй. И когда надоест выискивать нужный контрол в тулзах и нужное свойство в свойствах, да надоест пытаться попасть в нужное место на дизайнере, да design-data впиливать чтобы визуал был, да постоянно править хамл за дизайнером, а стили так вообще дизайнером никак, то вот придешь и напишешь ответ челу что спрашивает "почему предлагают набирать текстом"
354 2523692
>>23644
Пжди, в дизайнере тоже рисуется на xaml.
У меня даже стили как таковые основаны на UserControls, чтобы в риалтайме видеть превью, а сам стиль — чисто привязка данных к общей теме или комбинация вариаций UserControls.
Но таки да согласен, что синтаксис ксамл — мегауебанская вещь, но лучше, чем ничего.

>вместо того чтобы ее удобно нарисовать в десингере?


Как нарисовать с зависимостями и привязками? Это надо что-то уровня шаблонов CAD делать (впрочем, я не против), но наступит момент, который кроме как кодом не выразить никак — появится очередная сепарация, что запутает еще сильнее.

А так, я все сложное и так рисую в векторных редакторах, а потом экспортирую как SVG. В целом, получился такой многоступенчатый процесс от общего к частному и количество xaml-разметки сведено к минимуму — служит тупо для ввода параметров.
355 2523711
>>23644
1. Окно свойств полноценно не доступно для стилей, а без них будет двойная работа.
2. У меня оно находится на втором мониторе, да и панель элементов свернута. Т.е. речь идет о скорости доступа.
И порой ме-е-е-е-дленное выдвижение панели элементов с анимацией настолько бесит, что легче начать писать <But и автозаполнение само все напишет быстрее, чем если бы ты вел курсор к панели элементов, искал в списке Button, а потом эта кнопка естественно помещается не в тот контейнер — ты снова лезешь в xaml и вырезаешь и вставляешь в нужное место, потом тебе нужно в эту кнопку что-то вставить, и тебе нужно менять укороченный вариант тэга на расширенный (в то время как при печати тебе достаточно напечатать "/" чтобы получить короткую версию и ">" чтобы получить расширенную)

А так кто как хочет, то так дрочит. Результат один и тот же. Сам использую и то и другое, особенно использую окно свойств, когда забываю как назывался параметр.
356 2523712
>>23480
я не понимаю твое понимание lifetime и что ты вообще под этим понимаешь

lifetime token идентичен CancellationToken. Вот как ты получаешь CancellationToken и по нему можешь узнать что тебе нужно остановиться, и передаешь его дальше.

Так и lifetime токен ты получаешь извне и он означает время твоей жизни. И ты сам следишь за этим токеном и диспозишься когда токен всё, а также передаешь его другим с семантикой "вот мой токен, когда он протухнет, значит я умер, отпишите/удалите меня у себя"

допустим у меня MVVM. У меня есть окно/workspace и он держит у себя LifetimeDefinition (аналог CancellationTokenSource) и всем раздает токены lifetime. Когда окно закроется, то lifetime протухнет и всё зависящее схлопнется.
Моя вьюмодель зависит от времени жизни окна (она должна умереть с закрытием окна) и получает токен lifetime в конструктор. Теперь она может подписаться на смерть окна, а также передать этот токен дальше чтобы все кооперативно узнали, что компонент сдох и больше не живет.

В случае с шинами это берем любую реализацию у которой есть подписка отписка вида (допустим шина с интерфейсами хендлерами может выглядеть так
bus.Subscribe(obj)
bus.Unsubscribe(obj)

и пишу метод расширение
static void Subscribe<T>(this Bus bus, Lifetime lifetime, ISubsciber<THanler> subscriber){
lifetime.Bracket(
()=>bus.Subscribe(subscriber),
()=>bus.Unubscribe(subscriber),
)
}

и использую во вьюмодели

bus.Subcribe(lifetime, this)

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

по факту расширение адаптирует любую стороннюю шину но неудобно ибо легко забыть взять перегрузку с lifetime
поэтому я обычно делаю форк шины где удаляю обычные методы подписки

также и с обычными событиями (гадость)

lifetime.Bracket(
()=>bus.SomeEvent+=Handler,
()=>bus.SomeEvent-=Handler,
)
356 2523712
>>23480
я не понимаю твое понимание lifetime и что ты вообще под этим понимаешь

lifetime token идентичен CancellationToken. Вот как ты получаешь CancellationToken и по нему можешь узнать что тебе нужно остановиться, и передаешь его дальше.

Так и lifetime токен ты получаешь извне и он означает время твоей жизни. И ты сам следишь за этим токеном и диспозишься когда токен всё, а также передаешь его другим с семантикой "вот мой токен, когда он протухнет, значит я умер, отпишите/удалите меня у себя"

допустим у меня MVVM. У меня есть окно/workspace и он держит у себя LifetimeDefinition (аналог CancellationTokenSource) и всем раздает токены lifetime. Когда окно закроется, то lifetime протухнет и всё зависящее схлопнется.
Моя вьюмодель зависит от времени жизни окна (она должна умереть с закрытием окна) и получает токен lifetime в конструктор. Теперь она может подписаться на смерть окна, а также передать этот токен дальше чтобы все кооперативно узнали, что компонент сдох и больше не живет.

В случае с шинами это берем любую реализацию у которой есть подписка отписка вида (допустим шина с интерфейсами хендлерами может выглядеть так
bus.Subscribe(obj)
bus.Unsubscribe(obj)

и пишу метод расширение
static void Subscribe<T>(this Bus bus, Lifetime lifetime, ISubsciber<THanler> subscriber){
lifetime.Bracket(
()=>bus.Subscribe(subscriber),
()=>bus.Unubscribe(subscriber),
)
}

и использую во вьюмодели

bus.Subcribe(lifetime, this)

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

по факту расширение адаптирует любую стороннюю шину но неудобно ибо легко забыть взять перегрузку с lifetime
поэтому я обычно делаю форк шины где удаляю обычные методы подписки

также и с обычными событиями (гадость)

lifetime.Bracket(
()=>bus.SomeEvent+=Handler,
()=>bus.SomeEvent-=Handler,
)
357 2523882
сап, пришло время таки укатиться с js в какой нить другой язык,
выбрал сисярп
начал писать свою обертку над апи телеги
карочи
см пик 1
жсон результат запроса - ок выводится
см пик 2
хули
GetMeResponse? requestResponse = JsonSerializer.Deserialize<GetMeResponse>(result);
null возвращает?

алсо вопрос по пик2
см пик 3
мне тут райдер подсвечивает шо поля должны называться с заглавной буквы, хотя в апи телеги ключи в жсон с маленькой, как это обойти?
358 2523896
>>23882
на пик2-3 подсвечивает потому, что твои поля нигде не используются.
359 2523901
>>23896
а блин, рили, в глаза долбанулся и не прочел что пишет, слишком часто это сообщение видел о том что с заглавной поля должны быть
пиздос наркоманство кстати
360 2523913
>>23901
Не знаю как в шарпах, но в бейсике с заглавной нужно писать публичные свойства, а не поля. А вот приватные поля в шарпе точно пишутся с малой буквы.
Насчет публичных полей — вопрос, вроде как не делают так.

Но опять же это просто замечание к общим стандартам форматирования, а не ошибка.
361 2523927
>>23712
так я тоже не понимаю. я хз что такое CancellationToken
можно где-то посмотрет на то что делает lifetime.Bracket(sub, unsub) у тебя?
Unsaved Image 1.jpg118 Кб, 1781x887
362 2523934
та какого!?!?
363 2523944
>>23927

Bracket принимает 2 лямбды в первой подписывает если лайфтайм еще жив, вторая будет вызвана когда лайфтайм умрет

Посмотри же доклад на ютубе. Там все это есть и поясняют зачем

Но если ты не знаешь про CancellationToken то значит ты на знаешь основные элементы дотнета и тут уж увы
364 2523946
>>23944
посмотрю конечно
я же юнитихолоп, ни разу не видел этих токенов
365 2523950
>>23946
Тоже раньше не понимал про какие токены говорят.
Они юзаются, чтобы завершить всякую асинхронную порашу.
На самом деле там три строки всего.

Я так делал аналог модального окна на асинках. Пока флаг не поменяю, не будет возврата с асинхронной функции.
366 2523953
>>23946
они появились в 4 дотнете

но вообще это очень простая вещь
CancellationTokenSource + CancellationToken
TaskCompletionSource + Task
LifetimeDefinition + Lifetime

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

Lifetime токен имеет implicit cast в CancellationToken

Если вдруг в юнити нет CancellationToken то как же вы отменяете операцию что перестала быть актуально?
367 2523964
>>23950

>CancellationTokenSource + CancellationToken


>TaskCompletionSource + Task



Ах да, для своего псевдомодального окна >>23950 я использовал TaskCompletionSource. Создаешь CancellationTokenSource в функции Show и функция уходит в ожидание, пока ты делаешь в окне свои дела, а потом в событии Close меняешь флаг CancellationToken и функция Show возвращает результат.
И все работает без всяких бесконечных циклов.

А CancellationTokenSource использовал в асинхронных функциях с бесконечными циклами, чтобы прервать их работу. Например когда пытаешься подключиться к серверу, а он долго не отвечает. Тогда ты меняешь флаг в токене и асихронная функция это детектит и прекращает свои попытки подключиться к серверу.
368 2523965
369 2523966
>>23882
разборался, я не указал что ok и result имеют геттер/сеттер

схуя ли оно молча False и null подставило((
370 2523968
>>23966
А что у вас в жабаскрипте по умолчанию true?

По поводу Null, не все приняли однозначно нововведение, это вроде можно отключить в настройках. У меня в бейсике булевые переменные по умолчанию false возвращают.
371 2523973
>>23968
ну я ожидал что если сеттера нету, рантайм ошибку выстрелит
372 2523974
>>23964

>А CancellationTokenSource использовал в асинхронных функциях с бесконечными циклами, чтобы прервать их работу.


ну вот лайфтайм то же самое, просто семантика "вы еще живы"
при отмене CancellationToken ты прекращаешь операцию, при терминации лайфтайма ты выполняешь отписку/очистку и те же отмены операций если что то выполняется (lifetime передается туда где принимается CancellationToken)

Ничего этакого в идее нет. суть в реализации - жетбраинсы поясняют проблему порядка терминации, многоступенчатой терминации, выполнение тасков (которые пока выполняются запрещают смерть лайфтайма чтобы гарантированно жил ресурс) и так далее.
373 2523978
>>23973

>ну я ожидал что если сеттера нету, рантайм ошибку выстрелит


так у тебя же на скрине в свойствах есть и геттер и сеттер.
374 2523981
>>23978
у GetMeResponse нету
375 2524000
>>23981
Так GetMeResponse это класс, кек. При чем здесь геттер и сеттер?
У тебя там в поле щас пусто — Nothing (Null в этом вашем шарпе). Никто туда не поместил новых экземпляров, вот и пусто.
А если поместят, то вернет экземпляр этого класса (че ты там хотел выводить в консоль? Как ты это себе представляешь?)

bool ok — это ваще структура, а структуры имеют дефолтные значения. у int это 0, у bool это false. В новых версиях шарпа и структуры можно заставить возвращать Null, но это другая история.

Почитай про различия классов от структур.
376 2524001
>>24000

>отличия классов от структур*

Screenshot from 2022-11-26 18-58-45.png93 Кб, 1781x887
377 2524009
>>24000

> да, и у него есть поля ok и result



у полей ok/result нету геттера и сеттера
соответственно
JsonSerializer.Deserialize<GetMeResult>(result);
просто не смог туда ничего сложить
насколько я понял
378 2524022
>>24009
Смог но не захотел
Потому что они не свойства
А сериализатор ищет свойства
А поля.... В зависимости от сериализатора и настроек можно
379 2524025
>>24009
Используй нормальные имена свойств
А не эту дичь
Это не жс
2022-11-2618-10-25.png13 Кб, 358x301
380 2524031
>>24009
Ах вот ты про что. Ну про причуды шарпа я не знаком.
В бейсике есть укороченное свойство как у тебя написано без геттера и сеттера, а есть расширенная — с ними.

Поля вообще так не используют, они больше используются внутри классов. Для "внешнего мира" используют свойства.
381 2524035
>>24022
>>24031
понял, спасибо
>>24025
потом порефачу™
382 2524038
>>24031
да то же самое же. нет никаких отличий
есть поля, есть свойства. Все пишут get/set на автомате забыв различия

>>24035
сериализатор жсон работает со свойствами просто "ну все используют свойства"
кто хочет чтобы сериализатор видел поля нужно использовать опцию
JsonSerializerOptions.IncludeFields

А имена дай нормальный и используй [JsonPropertyName9"aaa")]
383 2524051
>>24038

>Все пишут get/set на автомате забыв различия


Я только сейчас задумался как вы вообще отличаете поля от свойств.

У нас это ключевое слово Property, а у вас это наличие get/set, видимо.
384 2524278
>>24051

>Я только сейчас задумался как вы вообще отличаете поля от свойств.


Свойство - это по сути сахар над полями, позволяющий их инкапсулировать.
Конвенционально - в шарпе не принято делать публичные поля. Т.е. все что ты делаешь публичным должно иметь геттер и/или сеттер/инициализатор (развернутые или пустые - не важно)
private int _myVar; - поле
public int MyVar {get; init; } - свойство
public myvar; - говнокод
Это все, естественно, если ты кодишь в ООП стиле. Если что-то другое, то можешь не заморачиваться.
385 2524279
>>24051

>а у вас это наличие get/set, видимо


Да.
386 2524292
А есть какой-то способ выгружать ресурсы у TreeView? А то чем больше открываю вкладок, тем больше оперативы жрет. При этом скрытие оперативу не снижает.

Выстраивал по MVVM паттерну. У меня же все сбиндено ко вьюмодели. Я же не могу просто удалять итемы — иначе удалятся ноды из базы.
387 2524342
Шарпач, покритикуй решение задачки.

В общем, вот мое https://pastebin.com/gMmfyPbi

Задачка - https://www.codewars.com/kata/52742f58faf5485cae000b9a
388 2524343
>>24342
Блин. Скопипастил из редактора, там в конструкторе - > на >= надо заменить для минут.
389 2524365
Шарпач, подскажи. Есть пакет microsoft.extensions.dependencyinjection
Регистрируем сервис:
interface IService {}
class Service : IService
{
public Service() {}
}

services.AddTransient<IService, Service>();

А как зарегистрировать сервис c параметром в конструкторе?

class Service : IService
{
public Service(string yoba) {}
}
.png30 Кб, 857x214
390 2524376
>>24365
Например как-то так?
391 2524394
>>24292
Гугли виртуализация

А потом страдай.
392 2524564
>>24342
23 кого-то посмотрели пасту, а в тредике никто не ответил(((
Вот что за дела?
393 2524631
>>24564
Это заговор, чтобы заставить тебя страдать!!!
или нет
это просто показывает твою ничтожность, что никто не хочет уделять тебе внимания!!! - вот

или все гораздо проще - первой ссылкой открывается код, который ни о чем без задачи
А потом открывается сама задача и там "чет страшное на буржуйском, влом разбираться"
394 2524634
>>24631

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


Кхм. Я думал все кодеры как минимум читать умеют на буржуйском(((
изображение.png689 Кб, 1920x1080
395 2524650
Как тут сделать цикл while?
396 2524654
>>24650
int j=0;
while j<h {
. . .
j++;
}
image.png131 Кб, 899x566
397 2524723
>>24342

>Шарпач, покритикуй решение задачки.



- Простыня из if-ов
- Магические цифры (имею в виду индексы массивов), через день ты заебешься вспоминать за какой период у тебя отвечает _data[2]
- Использование массивов в логике.
- Если придется добавлять какой-либо период (например недели), то это будет ебанина.
398 2524737
>>24342
>>24723
согласен с этим

смотри, тут принцип простой, когда встречаешь код как на пик1 можешь начинать думать над рефактором, сейчас ты копипастишь вайл циклы, завтра копипастишь функционал в 3х разных местах

пик2
та же трабла с копипастой
тебе точно в каждом ифе нужно проверять _timeItmes?

ну и _data[n] как анон сказал никуда не годится, хэшмапу штоли юзай или словарик я с доступом по ключу

и нейминг, да, что вообще за _data? Ты бы смог в моем коде, если бы встретил data[4] понять что получишь на выходе не смотря в место где происходит инициализация понять что вообще за _data и что я получу на выходе?

мимо жаваскриптер
399 2524742
>>24723
>>24737
Спасибо. Со всем согласен. Нужно наверное было после того как прошлись тесты - посмотреть свежим взглядом и избавиться от простыни ифов и циклов.

>>24723
А вот к тебе еще и вопрос. Ты сразу сел и придумал такое решение? Просто как? Я вот не понимаю. Я - написал тестики по примеру задачки. Начал писать реализацию. Сделал. Тестики прошлись - залил на кодварс. А как придумать сразу чтобы красивенько было - хз...
400 2524746
Зачем для приватных полей добавляют префикс "_"? Он же только захламляет код и ухудшает читаемость.
401 2524752
>>24746
так исторически сложилось
умные дяди в 60х на с++ так писали и ты пиши сука
402 2524754
>>24746
Чтобы не писать this. Чтобы все приватные поля сразу были видны в подсказке, если в редакторе _ клацнул.
403 2524777
Кто нибудь встечался с такой штукой в WPF TreeView, когда выделяешь итем, скрол автоматически прокручивается. Как это говно убрать?

Событие ScrollChanged происходит уже после скроллинга.
404 2524868
>>24746

>Он же только захламляет код и ухудшает читаемость.


Тогда у тебя будет куча this. что еще больше захламляет код и ухудшает читаемость.
405 2524878
>>24868
this можно писать только при коллизиях, а ебучий андеркейс засоряет весь код как раковая опухель

плюнул в ебало дебилам которые протащили андеркейс в стайл гайд от майков
406 2524883
>>24878
Двачую. С парой полей еще ничего, но от большого количества в коде начинает рябить в глазах.
407 2524886
>>24868

>Тогда у тебя будет куча this


Можно просто юзать имя без подчеркивания, но с малой буквы.
image.png47 Кб, 432x232
408 2524910
>>24742

>Ты сразу сел и придумал такое решение?


>Просто как?


Знания и опыт.
1) Изучай инструменты которыми пользуешься. Во первых специфические (напирмер сам C# и его библиотеки, фреймворки), во вторых общие (саму теорию программирования, математика, логика, комбинаторика и т.д.)
Вот тебе пример. Если посмотреть на пример из твоего же кода на пике. Ты берешь общее значение секунд и вычитаешь из него значение года в цикле, чтобы определить количество лет помещающихся в нем и остаток на другие периоды. Тогда как знай ты математику знал бы, что это решается всего двумя действиями. Первое результат целочисленного деления years = second / year и второе результат остатка от деления nextPeriod = second % year
Ты не используешь этого нигде. Почему? Потому что когда ты изучал базу, ты в раздел возможные операторы максимум один раз заглянул и перешел дальше. Ты не прорешал базу, например не разобрал как работают разные типы деления в языке. Это как в школе пытаться решать квадратные уравнения не изучив при этом таблицу умножения и вообще его принципы. Так же и в программировании.
2) Возьми себе за основу, что если ты пишешь код в котором есть повторяющиеся куски, то это плохой код. Если ты написал два одинаковых цикла, отличающиеся только парой переменных, то это нужно переписывать. Понятно, что из этого правила есть куча исключений, но в большинстве случаев это работает так. Увидел повторяющийся код, хотя бы попробуй переписать так чтобы его не было. Например в моем примере тоже есть место которое можно улучшить, цепочка одинаковых вызовов GetTimePart, которые можно было бы засунуть в цикл, если немного помудрить с константами и засунуть их в словарь.
3) Практика и задрачивание. Вот если ты набрал код с моего скрина >>24723 , погонял его в отладчике, понял как он работает. Попытался его доработать и улучшить по своему, вот тогда тебе это пошло на пользу. Почитай еще что-нибудь по теме. Например если ты почитаешь инфу по типам TimeSpan, DateTime, а так же форматированию при их конвертации через ToString, то поймешь, что вообще в C# эту задачу можно в несколько строк решить.
image.png47 Кб, 432x232
408 2524910
>>24742

>Ты сразу сел и придумал такое решение?


>Просто как?


Знания и опыт.
1) Изучай инструменты которыми пользуешься. Во первых специфические (напирмер сам C# и его библиотеки, фреймворки), во вторых общие (саму теорию программирования, математика, логика, комбинаторика и т.д.)
Вот тебе пример. Если посмотреть на пример из твоего же кода на пике. Ты берешь общее значение секунд и вычитаешь из него значение года в цикле, чтобы определить количество лет помещающихся в нем и остаток на другие периоды. Тогда как знай ты математику знал бы, что это решается всего двумя действиями. Первое результат целочисленного деления years = second / year и второе результат остатка от деления nextPeriod = second % year
Ты не используешь этого нигде. Почему? Потому что когда ты изучал базу, ты в раздел возможные операторы максимум один раз заглянул и перешел дальше. Ты не прорешал базу, например не разобрал как работают разные типы деления в языке. Это как в школе пытаться решать квадратные уравнения не изучив при этом таблицу умножения и вообще его принципы. Так же и в программировании.
2) Возьми себе за основу, что если ты пишешь код в котором есть повторяющиеся куски, то это плохой код. Если ты написал два одинаковых цикла, отличающиеся только парой переменных, то это нужно переписывать. Понятно, что из этого правила есть куча исключений, но в большинстве случаев это работает так. Увидел повторяющийся код, хотя бы попробуй переписать так чтобы его не было. Например в моем примере тоже есть место которое можно улучшить, цепочка одинаковых вызовов GetTimePart, которые можно было бы засунуть в цикл, если немного помудрить с константами и засунуть их в словарь.
3) Практика и задрачивание. Вот если ты набрал код с моего скрина >>24723 , погонял его в отладчике, понял как он работает. Попытался его доработать и улучшить по своему, вот тогда тебе это пошло на пользу. Почитай еще что-нибудь по теме. Например если ты почитаешь инфу по типам TimeSpan, DateTime, а так же форматированию при их конвертации через ToString, то поймешь, что вообще в C# эту задачу можно в несколько строк решить.
изображение.png9 Кб, 607x82
409 2524956
Как писать такое, дайте ссылку в гугле забанили
410 2524959
>>24365
Лучше так не делать. Всё-таки прелесть DI-конструкторов в соблюдение принципа DIP.

>>24910

>1) Изучай инструменты которыми пользуешься. Во первых специфические (напирмер сам C# и его библиотеки, фреймворки), во вторых общие (саму теорию программирования, математика, логика, комбинаторика и т.д.)



Например изучить TimeSpan, который по умолчанию конвертирует секунды в минуты, часы и дни.
411 2524963
>>24959
Не туда ответил >>24910
412 2524975
>>24959

>Например изучить TimeSpan, который по умолчанию конвертирует секунды в минуты, часы и дни.


В конце ответа про это есть.
собаку в каждый метод.JPG8 Кб, 306x149
413 2524988
>>24868
а я вот так делаю
и никаких зысов и ебучих черточек дидовских не надо
414 2524992
>>24376
Я не совсем точно описал. Чтобы можно было сделать вызов типа GetRequiredService<IService>("YobaValue");
415 2525007
>>24988
Твое говно еще хуже.
416 2525011
>>24988
Кек. Ты заставляешь страдать юзера, который будет пользоваться твоей функцией. В подсказках у него будет @example. За что ты так с ним? Ты бы еще такое имя дал: ADF4-367T-DE7R
417 2525014
>>24992
Делаешь фабрику нужную тебе.
Регистрируешь ее как сервис.
Потом
var service = GetRequiredService<IServiceFactory>().Create("YobaValue");
418 2525055
>>25007
>>25011
ну замените собаку на что угодно например newX или _х если так не нравится собака, суть-то не поменяется, я предлагаю всю эту хуйню в аргументы вынести и оставить поля в покое
моя логика простая, чем меньше писать тем лучше
this.x = x надо писать больше собаки
_x = x и каждое поле так - надо писать больше собаки и смотрится уебищно, никакие аргументы меня не убедят, на дворе 2022, даже vscode умеет выделять приватные поля
419 2525060
>>25055
И пусть выделяет. А kdiff выделит?
420 2525068
>>25055

>ну замените собаку на что угодно


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

Все равно что на кнопках твоей микроволновки будет вот такая вот ебатория $::Start:: вместо Start. Класс это такой же законченный продукт и он должен выглядеть прилично.
421 2525080
В дотнетике сошли с ума.
https://github.com/dotnet/runtime/issues/75933
Предлагают писать уродливый код вместо оптимизации во время компиляции.
https://steven-giesel.com/blogPost/34e0fd95-0b3f-40f2-ba2a-36d1d4eb5601
Добавляют ещё кучу "замороженных" коллекций.
https://www.youtube.com/watch?v=cwBrWn4m9y8
У комьюнити появилась какая-то нездоровая дрочь на низкоуровневые оптимизации.
422 2525095
>>25080

>У комьюнити появилась какая-то нездоровая дрочь на низкоуровневые оптимизации.


Которые убьются xaml-стилями.
423 2525097
>>25014
Спасибо
424 2525150
>>25011

>В подсказках у него будет @example.


Самое смешное, что в подсказке у него не будет варианта с @, будет просто exapmle (по крайней мере в студии). Поэтому его говно и хуже.
425 2525154
Анончик, у меня такой вопрос. Есть ли в студии возможность шаблонизации для проекта? Встроенная или в виде расширения?

Поясню. Например у меня есть солюшен со структурой как на 1-м пике. Допустим я хочу добавить сущность Document и соответствующую обвязку к ней в виде репозиториев, сервисов, контроллера, интерфейсов и ДТО (как на пике 2)
Хочу чтобы студия по команде сама создавала мне нужную структуру во всех проектах (каталоги, файлы) с именами соответствующими сущности и с шаблонами кода для каждого файла.

Примечание 1: Как создать шаблон для солюшена для создания с нуля с нужной структурой и кодом - я знаю. Тут речь о вставке шаблонов в уже готовый проект.

Примечание 2: Сниппеты не подходят, т.к. это на уровне "вставить кусок кода в текущий файл", нужен более широкий функционал.
426 2525162
>>25154
Тут речь о вставке шаблонов в уже готовый проект.
Ну так пиши расширения для студии, там больше возможностей, чем у чмоппетов.
427 2525171
>>25162

>Тут речь о вставке шаблонов в уже готовый проект.


Да именно оно.

>Ну так пиши расширения для студии


Ну так я этого и хотел избежать, думал, что готовое уже что-то есть.
428 2525274
>>25162

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


Анонч, а какие способы кодогенерации есть в C#? Чтобы программно создать какой-либо класс из шаблона, сделать автозамену нужных параметров и закинуть его на диск? Почитал про Т4, но такое ощущение, что это не то.
429 2525295
>>25274

>Чтобы программно создать какой-либо класс из шаблона, сделать автозамену нужных параметров и закинуть его на диск?


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

По установке деталей не помню, там устанавливаешь нужные компоненты (из меню средства и компоненты) и дальше у тебя появляется шаблон для создания плагинов на C#. Есть видео основ
https://youtu.be/Pk7jdsvEhfc

У тебя там тесть триггеры которые запускают твои команды плагина (типа при старте программы, или при запуске решения и т.д. их там дохера), ну или добавляешь кнопку запуска в меню студии.
Далее есть функция, которая позволяет получить инфу из твоего решения. Самое примитивное — получить текст с текущего документа или выделенный фрагмент текста.
Насчет структуры решения — хз, там надо покопаться и определить что есть, а чего нет.

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

В остальном обычное решение с проектами, функциями, окнами — что хочешь, то и воротишь. Разница только в начальном шаблоне.

>Почитал про Т4


Хз что это. Просто гугли Visual Studio Extensions.
430 2525302
>>25295

>По установке деталей не помню, там устанавливаешь нужные компоненты


С этим уже разобрался.

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


С этим тоже.

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


С потоками тоже понятно.

>В остальном обычное решение с проектами, функциями, окнами — что хочешь, то и воротишь. Разница только в начальном шаблоне.


Ну это да. Но вот я смог получить инфу по солюшену и по проектам. Могу создать нужные каталоги и даже файлы с простой самодельной кодо-генерацией. Но вот как прокинуть их в сами проекты пока не разобрался.
431 2525304
>>25302

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


На крайняк создавать файлики в решении, а потом как-то их аттачить командой. Как аттачить — это надо искать.
432 2525473
>>25080

>вместо оптимизации во время компиляции.


ась? как компилятор узнает что нужно оптимизировать

А так да - аж через 20 лет они поняли что нужны фрозен коллекции. Это те, что в котлине и питоне изначально.
433 2525757
Как при запросе на обновление сущности в asp net отличить запрос на обнуление от отсутствия изменений?
434 2525765
>>25757
Чиииииивоо?
435 2525774
>>25765
Что тебе не ясно? Вот есть класс
BookDto {
public string Name {get; set;}
public int PageCount {get;set;}
public string AuthorName {get;set;} }
Мне на контроллер приходит запрос на изменение, где Name="ZalupaKonya", PageCount = 666, а AuthorName = null, вопрос собственно в том, как понять, хотел сделавший запрос обнулить имя автора или же просто не хотел его менять.
436 2525781
>>25774
такое просто не пройдет валидацию же. а там как сделаешь - может вернешь анпроцессаблеентити или еще как.

а если нулл это штатно то как ты собираешься отличать? ты же не влезешь в мозг пользователя. ну можешь на клиенте переспросить и добавить бул поле, мол это ТАКОЕ
437 2525795
>>25781

>такое просто не пройдет валидацию же. а там как сделаешь - может вернешь анпроцессаблеентити или еще как.


Если свойство указано как nullable то всё спокойно пройдёт. Вообще я решил проблему заведя словарь. При обновлении свойства в нём соответствующему ключу присваивается true
438 2525804
>>25774

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


Валидатор прикручиваешь и натравливаешь его на Dto
439 2525808
>>25795

>Вообще я решил проблему заведя словарь. При обновлении свойства в нём соответствующему ключу присваивается true


Хуйню ты сделал.
440 2525815
>>25808
Почему?
>>25804

>Валидатор прикручиваешь и натравливаешь его на Dto


И как это поможет?
441 2525878
>>25815

>И как это поможет?


Оно будет валидировать
442 2525910
>>25815

>И как это поможет?


Ты в валидаторе можешь прописать любые правила для любого поля/набора полей. Прописываешь, что данное поле не должно быть null и тип ошибки который должен выкинуться. А дальше уже строишь логику от этого, либо даешь отлуп, либо продолжаешь но по другой ветке алгоритма.
443 2525916
>>25815

>И как это поможет?


RuleFor(x => x.AuthorName ).NotNull().WithErrorDescription(DirectionErrors.AuthorNameIsNull);
444 2525987
А существует ридонли, который доступен для перезаписи внутри класса, но снаружи возможно только чтение?
445 2525988
>>25987
{get; private set;}
446 2525991
>>25988
Ах, ну да. Спасибо.
447 2526118
>>25910
Так в том то и дело, что я хочу, чтобы поле могло быть null
image.png361 Кб, 733x1000
448 2526155
Может кто-нибудь поделиться книгой? Весь интернет перерыл, нигде не нашёл в свободном доступе.
449 2526211
В чём прикол удалять посты про книги по шарпу. Дехенераты.
450 2526221
>>26211
Возможно шутка про жаву была лишней. У самого было чувство, что перегнул палку, так что, выражаю модерации свои глубочайшие извинения, и тем, чьи посты попали под удар.
image.png20 Кб, 859x337
451 2526320
Бля сеньеры помидоры помогите
Вот делаю я ебучию OAuth 2.0
В инструкции пишут

>code_challenge=<base64url(SHA-256(code verifier))>


>To create a code challenge your application will first need to create a one time use code verifier. A simple way to do this is to generate 32 random bytes and base64url encode them. Store this code verifier as you’ll need it in a later step. To create a corresponding code challenge, SHA-256 hash the code verifier, and then base64url encode the raw hash output. The base64url encoding is defined in RFC 4648 and should not contain padding. If you’d like to see an example of creating a code challenge in Python you can find that here. Feel free to contribute examples in other languages to this repository to help others.



Создаю массив рандомных байтов

Random rnd = new Random();
byte[] b = new byte[32];
rnd.NextBytes(b);
return b;

Далее делаю из него SHA-256 далее делаю из него бейс64 через https://github.com/neosmart/UrlBase64 что бы было url-safe генерирую ссылку и отправляю
На сайте авторизуюсь и получаю код на калбек.
Далее по инструкции

>Now that your application has the authorization code, it needs to send a POST request to https://login.eveonline.com/v2/oauth/token with a payload containing the returned authorization code, the client ID of your application, and the original URL safe Base 64 encoded 32 byte string that was randomly created for the code challenge in step 3.


Мне нужно отправить оригинальный код в бейс64 пост запросом что я и делаю в пикриле и получаю ответ что не верный код сука.
Я у себя сравниваю эти коды, тот который я отправил первый раз и тот который во второй, я его из бейс64 в массив байтов, потом в SHA-256 потом в бейс64 и получается такой же как и первый.

Я что то не то отправляю? Или там как то по другому они проверяют коды? Пздц блять нахуй
image.png22 Кб, 863x340
452 2526341
>>26320
Так хуярь его в авторизацию, а не в боди.
453 2526377
>>26211
Погоняло у тебя дегенерат. Почитай шапку, а именно открой вторую ссылку.
454 2526584
>>26155
Вот она на английском: https://libgen.is/book/index.php?md5=20E870EB08B33873A7039EE837D422A2

И ничего никочает. Один торрент с нулем пиров, сбоку есть ссылка на 28гб добра, но пиров тоже негусто. Швабода файлообмена пиздец просто. Все через жопу у анальников!
455 2526681
>>15951 (OP)
.net и .net framework отличаются только кроссплатформой?
asp.net внутри .net сильно отличается от asp.net в .net framework?
вопрос к вопросу выше, правильно ли я написал или название asp.net и asp.net core две абсолютно разные вещи?
nuget пакеты доступны внутри .net framework?
Зачем сделали asp.net mvc, если это просто паттерн или это тоже фреймворк внутри фреймворка?
Как разобраться в этой архитектуре?
Что-то сильно наворотили майки, еще переименовали .net core
просто .net
456 2526692
>>26681

>.net и .net framework отличаются только кроссплатформой?


нет не только. они хотели сделать новое и чистое и с нуля
то есть "переписать нахрен выбросив легаси"
В итоге выбросили концепцию AppDomain, Thread.Abort, WCF, DataTable и не помню еще чего - из за чего даже тот же Slqite либа не могла переехать и они запилили свою
Потом из этого часть таки портировали для совместимости в коре 2.
457 2526700
>>26692
.net framework можно получается не трогать, если не собираюсь в банках говно мамонта ковырять? Можно сразу идти в изучение .net (.net core), т.к это современная реализация включающая в себя asp.net или asp.net реализация в .net framework отличается от современного внутри .net (.net core)?
458 2526701
Шарпочане, вопрос по автосвойствам - обращение к свойству внутри типа компилятор поменяет на обращение к полю, которое им же и было создано или как даунич вставит вызов сгенерированного метода set_propertyName?
459 2526703
>>26701
Ыыыы перформанс метод вызывать дорого аааа
460 2526704
>>26700

>если не собираюсь в банках говно мамонта ковырять?


Чел, я сейчас в банке сижу и переписываю сервисы с Core2.1 на .NET6. Хуй ты сейчас найдешь где-нибудь .Net Framework, кроме заводов и совсем отсталых гос.контор.
>>26700

>Можно сразу идти в изучение .net (.net core),


Да учи сразу .NET6, ну или на крайний случай .NET Core3.1 (не ниже)
Ну и еще .NET Standart 2.0 тоже нужен бывает.
461 2526712
>>26703
Да дорого. Получается компилятор даунич и вставляет вызов?
462 2526715
>>26712
Да какая разница, в рантайме всё jit оптимизирует
463 2526716
>>26704

>Хуй ты сейчас найдешь где-нибудь .Net Framework


Зависит от задач. Мне например надо было декомпилирвоать в IL-код, редактировать и снова упаковывать в dll. А для Core у майков нет тулзы для этого — только для dll на нетфреймворке.

Ну и раз уж такая тема, то вопрошаю есть ли какие-то варианты как на этапе конпиляции студии как-то пошурудить IL-код?
464 2526719
465 2526720
>>26681

>.net и .net framework отличаются только кроссплатформой?


Не знаю как asp.net, там какая-то осбенноая платформа и вечно жалуются, что пирмеры из книг к прошлым версиям не запускаются, но в WPF я даже не заморачиваясь просто копипащу из .net framework в .net

Ну разве что с нюгетами надо быть аккуратнее т.к. либы там бывают в двух версиях, но вроде как проект .net поддерживает обратную совместимость с либами на .net framework.
466 2526744
>>26704

>Хуй ты сейчас найдешь где-нибудь .Net Framework


Santander, mBank (Commerzbank), XTB, Uniqa. Это клиенты с .net Framework за последние 2 года и только некоторые планируют переходить на .net core. И у всех из них большая часть ключевого функционала висит на framework.
Факт, что сейчас намного выгоднее работать с кором, на перспективу развития, да и интереснее, но из-за этого растут ставки на EF ещё потому что это наверняка легаси, а это никто не любит
467 2526760
>>26744
Только вот не очень важно того что кто-то сидит на говне мамонта - если всё равно там не работать
468 2526838
А есть какой-нить годный курсик по многопоточке в шарпе? От ITVDN курс С# асинхронное программирование понравился (только по асинк авэйт посмотрел), но на торрентах нашел онли 5 серий, а их больше.
469 2526860
>>26155
>>26584
https://t.me/physics_lib
Здесь есть, поиском пройдись
470 2526866
>>26838
А, нашел полный на рутрекере
471 2526952
>>26860
Там тоже на английском.
16682730458880.gif1 Мб, 640x590
472 2526972
>>15951 (OP)
Некроёб на связи. Как поставить .net 4 sdk на шинду 10? Сам пакет стоит по дефолту но вот sdk не ставится. В интернете нашел пока установщик для вин 7, но он вываливается с ошибкой. Алсо, у меня на работе есть пк с 10 виндой и этой sdk, её можно как-то оттуда перенести?
473 2526973
*.net framework 4.0 само собой.
>>26972
474 2527169
Поясните за команды в WPF, зачем они нужны? Они могут принять только один аргумент, а в 98% случаев это шляпа даже по сравнению с EventArgs.

У меня ощущение, что я добровольно лезу в трясину, которая делает мне хуже.
475 2527190
>>26704

>переписываю сервисы с Core2.1 на .NET6


Зачем? Чтобы что? Не понимаю логику таких переписоывателей. Потом будешь переписывать .NET6 на .NET8 чтобы вкатуны-сузихлебы не терялись от дидовского синтаксиса трехлетней давности? ИБД натуральное.
476 2527192
>>27190
чтобы не поддерживать легаси.
это новая версия языка
это скорость рантайма
это больше разных фич которых не было.
а еще ему за это платят

>>27169
это такая фича что позволяет вызвать метод вьюмодели с параметром
и при этом подключены через биндинг
477 2527297
Накидайте список годных книжек для вкатунов
478 2527300
>>27297
Рихтер
479 2527327
как достичь согласованности с чужим кодом?
вот есть приложение, к нему подключается длл, подписывается на эвент передающий объект и проводит над ним операции.
к этому же приложению подключается мой длл, подписывается на этот же эвент и делает почти тоже самое но иначе.
первый длл сыпет эксепшонами после моих манипуляций если ему не дать отработать перед моим.
менять чужой код я не могу.
что делать посоны? как гарантировать порядок выполнения?
весь код синхронный.
480 2527359
>>27327
Мьютексы (mutex).
481 2527362
>>27359
Но должны быть в обоих DLL.
482 2527364
>>27359
>>27362
засада... я не могу чужой длл модифицировать
483 2527367
>>27364
Пишите автору DLL, семидесятипятирублируйте.
484 2527385
>>27327
так пусть отрабатывает перед твоим.
485 2527388
>>27367
так я уже. он сказал ебись сам конем УМВР ничего не знаю лол кек.
>>27385
как? мы подписываемся на старте приложения. я не знаю как гарантировать что его хуйня подпишется раньше моей.
486 2527390
>>27388
твое приложение же - гарантируй очередность загрузки и инициализации плагинов. приоритеты или что то такое.
487 2527393
>>27390
так приложение тоже не мое блядь.
488 2527397
>>27393
делай так же
пусть юзеры жалуются автору длл что их длл крашится
489 2527399
>>27397
так он скажет это из-за длл того мудака(меня), удоляйте.
короче какой-то клин.
приложение вообще никаких очередностей не поддерживает.
автор другого длл пидор и собака на сене.
я дебил и не могу придумать обходной путь.
490 2527400
>>27399
а ты скажи что так то норма ожидать что объект придется не девственно чистый. Скажи что твой супер длл обрабатывает эту ситуацию, а его длл нихера проверок не делает и вообще он рукожоп

так что в споре ты прав. и в общем то так и должно решаться.
491 2527401
>>27399
Sleep(10000);
492 2527403
>>27401
это не решение. за это время уже могут начать лететь события.
493 2527406
Как наладить коммуникацию между двумя проектами?

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

И та и другая библиотека может обратиться дург к другу в любой момент. Я не могу в каждую добавить зависимости дург дурга — получается зацикленность.

Делать проект-мост и тупо ретранслировать команды? А если в одном преокте 50 команд, и в другом 50 команд, то мне придется делать лишнюю работу и создавать 100 команд. А если в одном проекте добавятся команды? Хуйня какая-то.

Как этот ваш принцип солида поддерживать?
494 2527407
а вот подумал
может сделать как-то:
1. если в ассембли есть его длл
2. каким-то образом подцепиться к ЕГО обработчику в рантайме через рефлексию и когда он закончит, жахнуть мой эвент
3. получится что-то типа гетто цепочки вызовов и все довольны
495 2527409
>>27406
ну если не хочется сообщениями то просто делай отдельный(е) проекты с контрактами. В рантайме ты можешь гарантировать что будет их реализация. Вот на эти проекты и ссылайся

Посмотри на тот же DI от мелких - у них есть отдельная сборка .Abstractions где собственно сами интерфейсы, на которые все и ссылаются.
496 2527410
>>27407
Короче, семеро гномов решили трахнуть Белоснежку.
Один гном в бегает к ней в спальню, другие стоят за дверью.
Первый гном кончил, второй гном кончил, третий гном кончил, четвёртый гном кончил, пятый гном кончил, шестой гном кончил, седьмой гном кончил, первый гном слез с Белоснежки.
497 2527411
>>27410
а белоснежка-то что? эксепшонами сыпет или ей норм? взлетит?
498 2527412
>>27407
не выйдет. просто не выйдет.
все упрется в "каким то образом"

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

влезать в самое начало на старте приложения, подменять метод как тут в одном из прошлых тредов говорилось - явный перебор.
499 2527416
>>27412
Ну тогда ничего не остаётся кроме как в цикле сканировать глобальную переменную, чтобы убедиться, что первый гном кончил.
500 2527417
>>27412
ну я думаю как-то ждать пока не подпишется?
может таску завести и пусть ждет пока не подпишется? а когда подпишется то я сразу его обработчик и подпишу
501 2527426
>>27417
это все ненадежные костыли
ты можешь в цикле да
но при этом ты должен допускать что за время пока ты фигней страдаешь он уже подписался и пошло событие
502 2527429
>>27426
так событие юзеринпут
о а кстати может его как раз и авайтить? первый инпут попер = тот чел уже 100% подписался, можно пристраивать гномью многоножку к белоснежке. мне не в падлу подождать если это будет гарантировать что его обработчик уже есть и работает, а юзер скорее всего заметит только маленькую задержку при первом инпуте а дальше все будет работать нормально
503 2527626
>>20146
Объясните ньюфагу, что здесь происходит в коде?
504 2527645
>>27626
просто построение LINQ и материализация спрятаны в метод с именем и параметрами.

Это то же самое что ты сделаешь метод GetItems где будешь собирать SQL (ну и выборку сделаешь) в зависимости от параметров.
505 2527903
>>27626
Линкопетушение происходит. Никогда так не пиши! Даже за деньги так не пиши! Даже за очень большие деньги!

Если по сути кода. Есть коллекция _items сначала ее прогоняют через фильтер filter(секция where), потом результат сортируют по возрастанию или убыванию с ключем который вернет функция orderBy, затем в конце получившемуся хрючеву вызывают ToList() т.е. превращают результат из итераторов на итераторы в обычный лист.

Все вышеназваное можно написать на обычном форе более понятно, но почему сейчас так не модно. Как хорошо что в геймдеве у серьезных проектов линк не в почете. Там до сих пор живут духом молодости и ультрахардкора, пока глупые вкатуны копипастят дурной код прямо из доки микрософта.
506 2527916
>>27903
Как ты на форах обращение к бд напишешь?
507 2527919
>>27916
АDO.net же. Делаешь сначала запрос со своим SQL, потом в цикле перебираешь DataTable с результатом, опционально делаешь с ним что-то осмысленное. Забытые технологии древних.
508 2527929
>>27919
С такими советами можешь говна поесть.
509 2527961
>>27903

>Линкопетушение происходит. Никогда так не пиши! Даже за деньги так не пиши! Даже за очень большие деньги!


аргументируешь?

>Все вышеназваное можно написать на обычном форе более понятно


мс: смотрите, чтобы не писать форы мы вам принесли новую технологию LINQ - то же самое, но декларативно - короче, читабельнее, понятнее
анон: на обычном форе более понятно
510 2527983
Есть какая-то принципиальная разница в том, как gc обрабатывает жирный Array или List? Содержимое - рекорды. Такое ощущение, что с листом меньше памяти жрёт.
511 2527988
>>27983
List - обертка над Array, при этом размер пустого списка неизвестен и удваивается при заполнении
то есть array по дизайну меньше кушает

содержимое значения не имет - память будет занята на моменте образования пустого array (или его же внутри List)
512 2527997
>>27961

>анон: на обычном форе более понятно


Это факт.

У того нюфани который спросил ворос не возникло бы проблем с пониманием базового синтакса фора и пары вызовов в нем объектов переданых в качестве параметров. Просто знаешь базовый синтаксис => все понимаешь. Низкий порог входа означает, что код чистый и написан идиоматическим для языка способом.

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

Для меня загадка почему все так подсели на это дерьмо.
513 2528000
>>27997

> Это факт.


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

> У того нюфани который спросил ворос не возникло бы проблем с пониманием базового синтакса фора и пары вызовов в нем объектов переданых в качестве параметров. Просто знаешь базовый синтаксис => все понимаешь. Низкий порог входа означает, что код чистый и написан идиоматическим для языка способом.


А ещё у нюфани не возникло бы проблем с обычным вызовом функций с передачей им аргументов, повод ли это отказывать от внедрения зависимостей?
514 2528006
>>27997

>Это факт.


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

>с пониманием базового синтакса фор


а у него и так не возникло проблем с пониманием синтаксиса. Он спросил нормально ли такое мудрить.

>- повышает порог входа


итить. это нужно быть реально дауном чтобы не понимать LINQ
это базовая интуитивная концепция

>- просирает производительность на ровном месте


угу, но не везде она нужна.

>-- тащит функциональную парашу в красивый и могучий ОО-язык(


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

>провоцируя их писать дрист вместо объектов-хелперов с своим местом в домене приложения


тут я не понял ничего, но если что, то это я тоже обосрал

>Для меня загадка почему все так подсели на это дерьмо.


вещь примитивная и базовая. и немного удобная.
а перфоманс нужен не везде.
лично я LINQ юзаю мало.
515 2528010
>>28000

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


Тут надо подумать логически. Если обычный вызов функций с параметрами может заменить контейнер с зависимостями, то почему нет? Делать как можно проще не скатываясь в копипасту - это добродетель.
516 2528147
Юзаем linq в хайлоаде, мать жива.
517 2528149
>>27988
Про это я в курсе. Покопался в теме - linq.ToArray и linq.ToList имеют разные механизмы, и лист получается быстрее и меньше в итоге.
518 2528161
>>28149
тебе так кажется. если даже на основе IEnumerable то в обоих случаях используется одинаковая оптимизация.
519 2528244
>>28147

>мать жива.


Но это не точно. По данным статистики только 5% программистов пользутся программами своего авторства. Они не видят все их убогой глючности, тормознутости и встратости и наивно думают что с ними все Ок.
520 2528596
Кто тут пользуется райдером? Как вы живёте без автокомплита? Мне самому приходится каждый get set прописывать, и все поля при копировании объекта.
521 2528621
Я вчера общался с опытным дотнетчиком и он сказал, что не генерирует миграции в консольке, а пишет сам ручками.
522 2528637
>>28621
Лол, а их что, можно генерировать?
523 2528638
>>28637
Конечно
$dotnet ef migrations add Initial
524 2528643
>>28621
>>28637
>>28638
Это тонкий троллинг?
525 2528644
>>28643
Нет, просто не всем нравится использовать авто-сгенерированный код. Получается, что не ты сам пишешь программу. Лично меня это загоняет в депрессию.
526 2528648
>>15951 (OP)
Спустя полдня ковыряния реестра и разных установщиков с ошибками я разобрался - просто смонтировал образ проводником и внутри в папке Setup поставил руками все установки (хотя там скорее всего нужно только .net framework sdk). Дефолтный autorun (setup) и SDKSetup вываливаются с ошибками.
Вот пост: https://stackoverflow.com/questions/35733040/how-to-install-net-4-framework-in-windows-10
Первый ответ, линк Microsoft windows sdk for Windows 7 and .NET framework 4.
Мб добавьте в шапку для будущих некроёбов.
>>26972
>>26973
527 2528650
>>28648
А вот Java SDK можно поставить любую версию на любую ОС. Мало того и на новых версиях можно спокойно выполнять программы, написанные для Java 1.0.
528 2528658
>>28650
Его раньше тоже можно было спокойно ставить, просто сейчас он считается устаревшим, но это последняя версия фреймворка которую поддерживает XP.
Политика мастдая, щито поделать, десу.
529 2528746
>>28161
Тыскозал? Попробуй погуглить по теме, бенчмарки посмотреть/погонять
530 2528749
>>28746
да. тупо посмотри исходники, а не бенчи гоняй
531 2528831
ToList и ToArray работают с абсолютно идентичной скоростью, если не верите - смотрите исходный код дотнета, source.dot.net. Однако, я не утверждаю, что это одинаково вообще всегда, возможно некоторые специфические коллекции в реализации ToList отличаются, но дефолтные Enumerable имеют одинаковую реализацию в виде new List(size), list.add(item). А для ToArray new array[size], array = item. И там и там одна хуйня. Однако, это мы говорим про скорость, а не про память.

мимо шарю за кишочки дотнета
532 2528850
Еще кстати иногда можно передавать в метод List, а не IEnumerable, т.к при енумерации IEnumerable будут вызываться boxing/unboxing, а при енумерации листа - нет, поскольку Enumerator у List является структурой, а у других классов енумератор является классом (в т.ч у массивов)
533 2528897
>>28621
Мудак он, а не опытный. Это из той же оперы, что и "Нафиг мне ваш гит, я лучше папочки буду архивировать по датам".
534 2528898
>>28644

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


Долбоеб ты. Депрессию иди к психиатру лечи и не распространяй свои загоны на код.
535 2528902
>>28898
не все используют EF
и не все юзают гит )
536 2528907
>>28850

>при енумерации IEnumerable будут вызываться boxing/unboxing


Не будет, альтернатива List<T> - это IEnumerable<T>, а не IEnumerable.
537 2528918
Хотя да, посмотрел, будет boxing, но только ведь enumerator'a, так что это не сильно перфоманс затронет.

>>28907
538 2528925
>>28897
Я чётко знаю что и в какой папочке лежит, а с гитом постоянно какая-то дроч. Можно вообще всё сломать и лишится кода, а когда ковыряешь папочку, то всегда знаешь, что у тебя есть резервная.
539 2528954
>>28925

>Можно вообще всё сломать и лишится кода


Как?
540 2528955
>>28954
Гит же
541 2528958
>>28955
Да падажи, как ты гитом там что себе сломаешь не пойму?
r2329045c5v7p.jpg104 Кб, 661x956
542 2528971
>>28958
ну и вопросы у тебя
543 2529040
>>28831

>мимо шарю за кишочки дотнета


а расскажи почему итерация коллекции через Span<T>.Length вместо обычных count/length выходит быстрее
544 2529046
>>29040
ох уж ты экономист на спичках.
как минимум компилятор/jit может доказать, что Length этой реф структуры не изменится и оптимизировать сей момент

мимокрок
545 2529122
Как можно скопировать байтовый массив в структуру без unsafe?
546 2529129
>>29122
Есть класс Unsafe. У него методы
547 2529140
>>29122
ну или MemoryMarshal
548 2529213
Анонче, понимаю что вопрос немного мимо темы, но есть вот такой скрипт

https://pastebin.com/haXzXVRQ

и такое ТЗ:
скрипт должен находить все случаи логина пользователей в домене АD c 12:00 до 00:00 часов

Сам я в PS не але, шарящий анон подскажи - верен ли он и сможет ли найти ВСЕ случаи или только по последнему логону работает? НУ и если второе - то в какую сторону исправлять.
549 2529278
>>29046
ээ ну ты без оскорблений плс я в основном форычей или линками гоняю где могу
просто мне ютуб подкинул видос где мужик распинался как распиздато этот Span обгоняет for и я тут такой ну нихуя себе я вообще не знал даже что так можно
550 2529402
Почему вы решили изучать сишарп, а не джаву?
551 2529428
В целом, в C# всё нормально, у него есть полная кросс-платформенность и быстрый деплой и компиляция. По моему мнение, в сравнении с С/С++/Ёж, это идеальный язык для кроссплатформенного написления приложений. Плюс он переходит под крыло OpenSource.
552 2529429
>>29428
Ещё про С# - очень хорошая и быстрая реализация GC и очень хорошая реализация бинарных интерфейсов. Не так хорошо как, например, в фейдже, но тоже очень хорошо. У C# очень хороший и отлаженный драйвер С/С++. Весь его компилятор написан именно на С/С++.
553 2529430
С# это божий язык, который в вебе, в чатиках, в десктопе и в мобилке. Он не боится флепов и кроссплатформенности, он просто над ними нешучно ржал еще 10 лет назад!
554 2529431
>>29402
Я учу сишарп для того, чтобы делать крутые приложения в экосистеме майков. Это даёт мне кайф - я не люблю разрабатывать на других платформах. Я не учу сишарп для того, чтобы устроится на работу, так как работа - это не для меня.
555 2529432
>>29122
Создать структуру, заполнить её данными и отдать в метод Struct.Copy();
556 2529433
>>29122
Я знаю только один вариант, а именно: инициализировать структуру-цель и после этого скопировать его в нее при помощи System.Buffer.BlockCopy. А так я не люблю не-уфсейновые варианты, потому что они не безопасны и очень медленные.
557 2529435
>>28621
Я сам ручками пишу миграции. На этот счёт у меня есть своё мнение. Я считаю, что миграции надо писать ручками, потому что миграции от мейкера - это однозначно миграции, которые в любом случае надо будет дорабатывать. Проще просто по старинке писать миграции руками, чем дорабатывать мейкерские миграции, чтобы они были не тухлыми.
558 2529437
ПЕРЕКАТ >>2529436 (OP)
ПЕРЕКАТ >>2529436 (OP)
ПЕРЕКАТ >>2529436 (OP)
ПЕРЕКАТ >>2529436 (OP)
559 2529528
>>29437
Не легитимный перекат! Остаёмся в этом треде
560 2529695
>>29433
Потому и придумали
MemoryMarshal.TryRead()
который под капотом использует ref и класс Unsafe, который под капотом использует хз че там за реализация.
561 2529767
Оказывается операторы верхнего уровня добавили ещё в 9 шарпе, а в дотнет 6, который шёл вместе с 10 шарпом, только изменили стартовый шаблоны!
562 2529773
>>29767
Смутно припоминаю, что ещё год назад были такие шаблоны.
563 2529776
>>29773
Они настолько быстро всё меняют, что люди не успевают за этими изменениями. Книги отстали уже лет на 10. Тот же Шилдт и Рихтер так и не выпустили новых версий своих книг. А микрософты продолжают клепать новые версии с новым сахаром. Разве они не понимают, что язык засахарится и никто не будет понимать его? Лучше брать пример с джавы и сделать язык более стабильным.
564 2529791
>>29776
Сахар учится легко, к тому же в MSDN всё описано понятным языком. Хуйня по сравнению с C++, где количество синтаксических фич делает язык сложнее всех популярных языков вместе взятых.
565 2529802
>>29791
Мне удалось запомнить только стандартный синтаксис. Пишу примерно как на джаве. А все модные сахарные фичи не могу запомнить, а когда вижу в чужом коде, то не понимаю о чём там.
566 2529835
>>16213

>Metanit лучше всяческих книг!


Нет.
567 2529837
>>29791

>MSDN


Как там поживается в 2010-х?
568 2529840
>>29837
О. Еще один школьник
569 2529842
>>29837
Как сказать MSDN по-зумерски?
570 2529843
>>29835
Пидора ответ.
571 2529853
>>29840
>>29842
MSDN-а не существует уже несколько лет.

>>29843
Metanit не плох, но это справочник и книги не заменяет.
572 2529855
>>29853

>MSDN-а не существует уже несколько лет.


А кого это (цензура)
для олдов что мсдн что мсдоки - те же яйца, только в профиль. Ну может заметил что домен изменился - и все.
мсдн это устойчивый термин для офдоки среди тех кто не зумер.
573 2529856
Т.е. MSDN по-зумерски - это мсдоки.
574 2529926
>>29435

>это однозначно миграции, которые в любом случае надо будет дорабатывать.


Только если код на основе которого они генерятся говно, то тогда конечно надо будет дорабатывать.
575 2529936
>>29776

>люди не успевают за этими изменениями.


Вкатыши ты хотел сказать. У нормальных людей с пониманием проблем нет.
576 2529946
Можно ли на C# сделать нативную библиотеку, функции которой можно будет вызывать из внешних программ или линковать к коду на нативных языках типа С/С++? Ну то есть надо, чтобы в dll-ке, написанной на шарпе, был стандартный виндовый ентрипоинт, и чтобы её функции можно было бы дергать через _stdcall?

Т.е. написать на шарпе либу, содержащую например, вот такую C++ функцию:
double _stdcall square(double &x) { return x * x; }
И чтобы это могло подключить к себе и скушать всё, что работает с аналогичными сишными либами? 1C, VBA, notepad++, всякие локальные самописные параши и т.п.

Для нет.фреймворка был нугет пакет DllExport, который судя по описанию, позволял это делать. Но для седьмого дотнета реализовать это не получилось, нихрена не работает. А вот на С++ всё работает прекрасно, только я его нихуя не знаю, я не учил его, т.к. верил, что дотнет всемогущ, и на нем можно написать всё что угодно, а оказалось, что нихуя подобного, меня обманули.
577 2529998
>>29946
Сишарп работает на виртуальной машине, а не компилируется в машинный код, поэтому ограничен в своих возможностях. Серьёзных программ на нём не напишешь.
578 2530009
>>29946
В пятом дотнете работало, наверное, не обновили пока.
Ещё можно изъёбнуться с декомпиляцией в MSIL и ручным добавлением атрибута экспорта: https://www.codeproject.com/Articles/37675/Simple-Method-of-DLL-Export-without-C-CLI
>>29998
А ты можешь нахуй сходить вместе со своей шлюхой-мамашей.
579 2530016
>>29998

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


https://learn.microsoft.com/ru-ru/windows/uwp/dotnet-native/
580 2530136
Есть readonly struct.
Все её методы и свойства можно также пометить как readonly. А можно и не помечать. Что это дает?
581 2530247
>>30009
Ты Рихтера читал вообще, тупень? Сишарп компилируется в IL-код, который затем выполняется на виртуальной машине CLR. Если на машине нет дотнета, то ты ни одну программу на сишарпе даже не запустишь.
582 2530349
>>30247

>Если на машине нет дотнета, то ты ни одну программу на сишарпе даже не запустишь.


А вот и нет, тупень.

Приложения .NET можно публиковать в двух разных режимах. Режим влияет на то, как пользователь запускает приложение.

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


https://learn.microsoft.com/ru-ru/dotnet/core/deploying/

>>29946
https://learn.microsoft.com/ru-ru/cpp/dotnet/native-and-dotnet-interoperability?view=msvc-170
583 2530375
>>30349

>С++/CLI


Будучи голой дотнет макакой, без знания крестов, системщины, ОС, внутренней структуры бинарников, хер ты что-то сделаешь.
584 2530376
>>30349
И сколько гигов такой монстр будет весить?
585 2530383
>>30376
Консольное приложение без всяких GUI и EF будет весить 10-15 Мб.
586 2530407
>>30375
Чиво блять?

>>30376
Руки есть? Вот и проверь.
587 2530427
Вот уж чего чего, а этого я в книге о многопоточном программировании встретить не ожидал

> Прежде всего хочу выразить благодарность своему Господу и Спасителю Иисусу Христу. Принятие христианства стало самым важным решением в моей жизни! Если вам понадобится дополнительная информация по этой теме, вы можете связаться со мной на моем сайте http://stephencleary.com/.

588 2530609
>>30427
Протестанты, сер. Единственные искренно верующие веруны остались.
589 2530681
Устал пилить унылые веб апи, хочу делать настоящие сайты. Посоветуйте годных книг по жсу, желательно где в примерах взаимодействуют с асп нет.
590 2531184
>>30247

>выполняется на виртуальной машине CLR


>виртуальная машина


Жабамакака, съеби в страхе из треда.
591 2531224
>>29946
Да, используй AOT компиляцию которую полностью доделали в 7 дотнете. Собираешь код в нативную dll без зависимостей от рантайма, ну а дальше дергаешь.
592 2531236
>>30136
Это и даёт. Что всё ридонли будет.
593 2531245
>>29946

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


Хаха! Смейтесь над ним!
594 2531250
>>31184

>Исполняющая среда для байт-кода - это другое


Верим-верим!
595 2531283
>>31184
В дотнете есть виртуальная машина. Проблемы?
596 2531356
Есть дженерик класс, наследуемый от сетки (пикрил 1).
Почему XAML отказывается видеть такой класс? (пикрил 2)
Если дженерик составляющую убрать, то норм (пикрилы 3, 4)

Как вообще люди используют x:TypeArguments, если класса даже не видно?
597 2531368
В чем сакральный смысл использования var? Почему мы настолько доверяем машине, что позволяем ей самой определять какой тип у нас используется.
598 2531370
>>30136

>Все её методы и свойства можно также пометить как readonly. Что это дает?


<петросян>2х баф к защите от записи</петросян>

Ну вот есть папка. Можно ее скрыть, а можно скрыть каждый из находящихся внутри файлов. Что это дает? Удобство.

Если у тебя 100% ридонли, то проще структуру пометить. А если 1-9 из 10 ридонли, то помечаешь каждый компонент индивидуально.
599 2531384
>>31368
var допустимо использовать только если получаемый тип очевиден и служит только лишь для экономии сил, чтобы не писать вот эту срань
myVerySuperLongClass Value = new myVerySuperLongClass Value;
зачем дважды писать одно и тоже, когда правая часть совершенно конкретна? Тут нет никакого "доверия машине", тут всесовершенно четко и очевидно и не нарушает законы строгой типизации.

Другое дело, когда метод возвращает object и хер пойми что там на самом деле внутри. В этом случае присваивать результат var как минимум тупо.
2022-12-0513-43-16.png9 Кб, 736x247
600 2531413
>>31356
Ясненько ...
Дженерики напрямую нельзя пихать в XAML — нужно создать класс, который наследует дженерик-класс. Тогда совершенно не ясно предназначение пикриелйтед-хуеты.
601 2531424
>>31368
Так иде показывает итоговый тип. А самому его прописывать, когда он может быть весьма длинным, смысла никакого нет, особенно если речь идёт о linq
602 2531579
>>31384

>Другое дело, когда метод возвращает object и хер пойми что там на самом деле внутри. В этом случае присваивать результат var как минимум тупо.


Ну вот напишешь ты например PenisType вместо var или object, а у тебя в объекте прилетит VaginaType что делать будешь?
603 2531589
>>31368
Бывают ситуации когда похуй на тип в конкретном месте. Например из метода возвращается какой-нибудь IEnumerable и что в нем будет лежать тебе похуй. Тебе нужно будет его просто перебрать и отправить дальше.
604 2531595
>>31368
Если не нравится, то можешь делать наоборот.
Вместо:
var instance = new MyClass();
можно использовать:
MyClass instance = new();

Работает то ли с 9-го, то ли с 10-го шарпа.
605 2531596
>>31413
все потому что оно все заброшено
есть спека хамл 2009 но ее нельзя использовать в хамл что компилируется в Baml
а без этого x:TypeArguments имеет жесткие ограничения и неюзабелен

в общем старое оно все, увы.

>>31384

>В этом случае присваивать результат var как минимум тупо.


Это верно для редких случаев вида foreach(var item in древняяколлекция) и тому подобных случаев.
И проблема станет видна сразу же ибо просто дальше код не будет работать

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

Короч юзать var или наш Dim в контексте необязательной типизации аля джава скрипт, на которую намекает анон — это надо постараться. Это надо быть отборным говноделом и обосраться на всех уровнях.
607 2531611
>>31599
да нет в шарпе никакой магии. var это "меньше буков" там где компилятор может вывести тип. А если это не древный код со всякими arraylist, то выводит всегда. (ну разве что в Regex еще эта древность есть)

А потому писать везде var - все живы никто не умирает. Ну да, проблема читать не в IDE, но не настолько серьезная - очень много читаю код в браузере и
а) проблема var не пойму что там - 0.1% (по факту у меня не было такого, но допускаю возможность)
б) проблема "блин а в каком неймспейсе этот тип чтобы пойти глянуть его исходник" и начинаешь тупо обыскивать файлы пытаясь по имени угадать - 120%

>быть отборным говноделом и обосраться на всех уровнях.


Если проблемы нет, то ее можно придумать
Стикер319 Кб, 512x512
608 2531704
Как же я задолбался удалять .vs в проектах WPF Core

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

Я не помню, чтобы такое было на NetFramework. Либо студию косоебит от множества проектов в решении, чего я раньше не делал.
изображение.png35 Кб, 666x664
609 2531818
Читаю ef core в действии. В примере к 4 главе, посвященной взаимодействию бизнес логики с бд он вместо одного простого сервиса и репозитория какого-нибудь нагородил кучу классов (пик) и я в итоге не могу во всём этом разобраться. Неужели в реальных проектах все так сложно?
610 2531858
>>31818
Если хочешь масштабируемости, то приходится городить даже в малых проектах.
611 2531942
Почему не могут ломануть Rider? Там слишком крутая защита стоит?
612 2531951
>>31942
Всё давно взломано.
613 2532002
>>31951
Ничего там не взломано. Работает пару дней, а потом снова требует активацию. Ждёшь, когда новый кряк выкатят.
614 2532032
>>32002
использую визуал студию. она лучше
615 2532033
>>32032
Там надо самому файлы сохранять и ещё райдер красивше.
616 2532376
>>32033

>Там надо самому файлы сохранять


так это фича
617 2532395
>>32002
Ничего он не требует. Спокойно взломал и пользуюсь уже месяц.
618 2532397
>>32395
в этом и суть. ты всё взломал и ему ничего не досталось.
619 2532458
>>32395
Скорей всего у тебя старая версия, которая не поддерживает дотнет 7.
620 2532467
>>32458
Я подожду 10 дотнета, обновлюсь сразу до него.
621 2532476
>>32467
Дак замаешься учить нововведения. Различий будет столько, что считай как по новой придётся учить.
622 2532499
>>32476
Братиш, я не зумер с клиповым мышлением. Мне не составит труда изучить новый фреймворк с нуля.
623 2532501
>>32499
С возрастом тяжелее изучать новое. Я вот тоже раньше за пару дней осваивал новые языки, а сейчас сижу как тупка.
624 2532507
>>32501
Ну так встань. Пробздись. В том числе ментально.
625 2532906
Что я ненавижу в .NET
https://youtu.be/UWMfDSDffi0

Мне кажется Фленов изобрёл Thymeleaf из Java
C# хэш сумма 626 2532912
Здравствуйте, подскажите, пожалуйста как реализовать проверку, при нажатии на кнопку, хэш суммы SHA-1 у файла, заранее зная правильную сумму SHA-1 string hashsumfile = "12345" ?
Capture.JPG22 Кб, 561x489
627 2532918
шарпаны, допустимо ли использовать интерфейсы как в пикрелейтед чисто для разграничения доступа если за этими интерфейсами только один реальный класс стоит и других больше не будет?
628 2532952
>>32906
Попробуй сделать SPA на Thymeleaf не получится и сравни с возможности Blazor.
629 2532953
>>32918
буква I в SOLID
630 2533005
>>32906
Нах нужны razor pages?
631 2533043
Что делает ключевое слово await?
632 2533058
>>33043
Возвращает управление вызывающей функции до тех пор пока ожидаемая функция не завершит работу.
633 2533062
>>33058
Ты путаешь с yield
634 2533077
>>33062
Нет.
635 2533079
>>33077
Да. Await творит другую магию
636 2533094
>>32953
т.е. норм?
637 2533110
>>33079
Какую?
638 2533142
>>33110
является сахаром
указывает компилятору где разбивать метод на продолжения.
1
await
2
await
3
Логически эквивалентно цепочке тасков
1.ContinueWith(2).ContinueWith(3)
где, как известно, каждое продолжение планируется на выполнение после окончания предыдущего

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

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

Никакого "Возвращает управление вызывающей функции" не происходит, а происходит "планирование продолжения (обычно в тредпуле)" тем самым освобождая текущий поток и если вызывающему методу плевать на ожидание (у него нет await или GetAwaiter().GetResult()), то это воспринимается как "вернул управление"
639 2533158
>>30427
А ты попробуй писать многопоток без веры
Чокнешься
640 2533163
>>32918
Да.
sage 641 2533165
>>33158
Конечно чокнешься, писать на петушарпе.
642 2533168
Жабадебилы обезумели, сумеешь ли ты совладать с ними? >>33165
sage 643 2533169
>>33168
Мгновенный подрыв жопы петушарпера.
644 2533170
>>32906
Я уже давно, для себя (внутре), все то, что в .net относится к фронтовой части, не считаю частью .net-а. Вся вот эта хуета типа xaml-а в wpf-е, вьюхи в MVC и т.д. и прочее вот это все.
Благословен будь Core который позволил полностью отдать все эти головняки фронтендерам и забыть про них. Я уже давно не вылезал за пределы api и мне охуеть как комфортно. Чего и вам советую.
.png144 Кб, 600x225
645 2533171
sage 646 2533173
>>33171
Петушарпер совсем отупел и кидает хуйню вообще невпопад. К чему ты это высрал?
647 2533202
Выбираю книгу по asp.net core для новичка, на русском. Какую из этих двух посоветовали бы? Первая вроде более профессиональная, а вторая скорее для новичков.
648 2533472
>>33202
Первой нет в свободном доступе, а так она получше будет.
649 2533517
>>30427
Программирование подобно сотворению миров. Неудивительно, что после того, как ты создашь десяток таких, ты сложишь 2+2 и уверуешь в Аллаха.
2022-12-0711-26-04.png20 Кб, 512x362
650 2533586
Как сделать депенденси проперти для кастомного элемента так, чтобы он принимал множество элементов через XAML? К примеру как свойство Children у грида или стакпанели.

Пробовал поставить тип UIElementColelction, но депенденси проперти регистрирует уж точно не коллекцию.
651 2533944
я правильно понимаю что если попытаться сериализировать джсоном byte[] то это очень сильно увеличит размеры и ухудшит производительность?
652 2534056
>>33944
текстовый формат всегда проигрывает бинарному хотя бы тем что требует быть текстовым, то есть ограничен диапазоном символов.
653 2534204
>>33944
"сериализировать джсоном byte[]"
Двести.
654 2534278
Оказывается, микрософт предложили способ разработки под линукс в виде образа виртуальной машины с шин11 и вижлой на борту:
https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/
655 2534290
>>34278
Какой костыль. А хуле им ещё делать, если у них 100500 гуёвых либ для крестов и шарпа, но ни одна из них не поддерживает линупс?
656 2534437
Подскажите пожалуйста, я хочу сделать небольшую программу для винды. Какую технологию для графического интерфейса взять?
Windows forms - устаревшее, не модное, не поддерживает крутые ускорения
Wpf - сложное, требует большого усилия для вката, обязательно нужны какие-то библиотеке mvvm хуеввм по губе
Браузер, электрон подобная хуйня - 100 мб в лучшем случае, пиздец

Что делать, как быть?
657 2534442
Мля как сложно, хуле так много всего? Как это вообще в башке удержать!?

мимо php
658 2534447
>>34437
Если хочешь, чтобы это пригодилось тебе в будущем, то делай ап на .net core + простой фронт в том же ангуляре.
Если делаешь прост для себя лишь бы работало - хуярь в консоли.
Wpf и формсы это говно мамонта, не стоит на это тратить своё время.
659 2534460
>>34447

>.net core + простой фронт в том же ангуляре.


На нем можно делать небо и аллаха? Или это будет работать онли через браузер?
660 2534463
>>33586
Бамп вопросом
гп1.mp42,9 Мб, mp4,
480x854, 0:46
661 2534490
>>15951 (OP)
Кто-нибудь пробовал разворачивать asp.net приложения в portainer ?
Есть ли у кого-то гайд развернуть хотя бы стандартное web api приложение в контейнере ? Я пробовал делать по гайду https://www.youtube.com/watch?v=tBl422FiEBY&t=882s&ab_channel=DevMentors, но у меня порты не пробрасывались и я не могу в локалхосту обратиться к своим методам.
Короч полная ерунда, есть ли нормальный гайд ?
662 2534522
>>34437
Бери винформы. Фундаментальная технология, проверенная временем.
663 2534539
>>34522
Если нужно тупо вывести органы управления, то да. ВПФ будут только отвлекать, хотя если не юзать мввм всякие, то особо отличий нет.
664 2534544
>>34539
Самое то для "небольшой программы для винды", раз других требований нет.
665 2534547
>>34437
Формсам ускорения и не нужно. Оно и так быстрее.
Ты хотел сказал про DPI
Ну и в формсах тяжело делать "эээх ляпота"

Впф тяжелее в работе, не совсем нативно выглядит
Но твори что хочу
MVVM это не тяжесть, а спасение от винформсого подхода
Он не усложняет, а облегчает жизнь

Всякие WINUI еще тормознее и в общем то там сразу лучше к мауи

Или на завод
666 2534561
>>34544
Я десигнер и для меня винформы слишком пососные, но с другой стороны для меня код как для вас винформы — работает да и хрен с ним.

>Но твори что хочу


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

И везде есть какие-то нюансы, какие-то исключения из правил, которые ну просто бьют тебе молотком по пальцам.

>Он не усложняет, а облегчает жизнь


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

Иллюзия свободы.
668 2534564
LinForms
LPF
ULP
LinUI
MAUI
669 2534568
>>34564
Ты бы не перечислял названия, а называл преимущества. Чет мне подсказывает, что это просто набор стилей для UI.
670 2534570
>>34563
Ну сколько пишу на впф а ни разу не нужны были дженерики, обжектдаьапровойдеры, routedcommand и бог знает что еще
671 2534599
>>34570
Ну у меня есть подозрение, что в момент, когда у меня получается жопа, я делаю что-то не так.

Но все же, представь, что есть куча контролов, у каждого есть своя вьюмодель, которая имеет свой собственный уникальный тип, потмоу чт оу каждой вьюмодели всой набор свойств, методов и команд. Мне эту вьюмодель надо как-то получить из контрола. Просто DataContext контрола возвращает Object — это хуйня, я не могу тыкать пальцем в небо и гадать какого же типа там вьюмодель.

Вот, и я решил создать интерфейс со свойством вьюмодели дженерик типа. И вот все эти контролы реализуют данный интерфейс. А теперь представь, что они же являются частью другого контрола и вот тут появляется жопа, потому что объявляются они через xaml.

Как сделать так, чтобы у всех контролов было свойство ViewModel но своего собственного типа, я хз.
672 2534630
>>34599
у меня такой проблемы не возникает потому что это нужно в code-behind, а там обычно пусто или же в атачед, что тоже редкость.

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

Свои контролы где даже DataContext не юзается тоже мимо.

Юзерконтролы общего назначения тоже не живут в вакууме. Тут возможна пара вариантов
1 принимает что то неведомое, то есть контрол типа PropertyGrid, и включает рефлексию вовсю
2 выдает интерфейс, который обязан реализовать поступающий объект DataContext/Item и тому подобное и делается банальный каст

А тотальный MVVM или его части просто лишают необходимости что то там типы объявлять в хамл.
673 2534649
посоны, а во что заворачивали лист на старых дотнетах если нужно было вызывающему дать доступ по индексу но запретить всякую грязь вроде add clear removeat и т.д.?
674 2534652
>>34649
Можно тупо юзать Func<int, T>.
675 2534655
>>34652
так я и форычить по нему хочу еще... идея прикольная надо попробовать
676 2534657
>>34655

> так я и форычить по нему хочу еще...


Пили тогда новый интерфейс.
677 2534663
>>34657
не хотет
вот чего нашел
ReadOnlyCollection<T>
и возвращаю
list.AsReadonly();
678 2534666
>>34663
ну это все знают. мы думали ты хотел нечто этакое чтобы ууух
679 2534667
>>34666
так я не знал, а теперь знаю. я стал сильнее
680 2534668
>>34667
А толку. Чере рефлексию пробьются к твоему списку и нагадят.
681 2534671
>>34668
так я же сам себе запрещаю, а не какому-то челу левому.
682 2534695
Зачем нужен automapper если можно просто написать расширение?
683 2534717
>>34447

> на .net core + простой фронт в том же ангуляре.


А как это работать и выглядеть будет, и сложно ли выучить? Просто как страница в браузере, не имеющая ничего общего с интерфейсом системы?
684 2534725
>>34695
Чтобы заебаться.
685 2534735
>>34717

> А как это работать и выглядеть будет,


Медленно и уродливо. Чтобы было медленно и красиво, надо очень долго ебаться.

> и сложно ли выучить?


Очень сложно. Примерно как с нуля учить шарп, дотнет и WPF.

> Просто как страница в браузере, не имеющая ничего общего с интерфейсом системы?


Да.
win11dev.jpg250 Кб, 1280x960
686 2534769
>>34290
Поставилась! Только написано, что лицензия на 90 дней. А дальше что? Я должен купить винду?
Но тем не менее это самый лучший вариант для линупс-юзеров.
687 2534788
>>34769

> А дальше что?


Виртуалбокс с его офсайта. Винда с торрентов. И получаешь бесплатно и навсегда. Но я например вполне разрабатываю свои петы на вс-коде под линуксом. Единственное неудобство - никто до сих пор не сделал (бесплатно) визуальный редактор форм с предпросмотром. Приходится вслепую хуярить хамл, а результат смотреть после dotnet run
688 2534790
>>34788
Ах да, стек таков: вс-коде + авалония + плагин авалонии + плагины-автодополняторы хамла.
689 2534803
>>15954

>8. Что нужно знать, чтобы взяли работать?


Реально всё перечисленное освоить с нуля за полгода-год до уровня, когда будешь готов к работе джуном в десктоп-разработке?
690 2534813
>>34803
Через год надо будет учить новую версию сишарпа и дотнета.
691 2534817
https://youtu.be/OCFn7f4mBxc

Получается надо было учить джаву, а не сишарп
692 2534820
>>34817
Мне нравится дотнет, но жабу учил тупо ради работы.
693 2534826
>>34820
А мне нравится джава, но учу сишарп тупо ради работы.
694 2534834
>>34813
Бля, ну его нахуй тогда... Пойду двигать кнопочки на JS.

>>34817
Очевидно же, что зависит от направления, в котором собираешься работать.
Хочешь попердывать над древним кодом и писать тонны доков в каком-нибудь финтехе за огромную ЗП - учишь джаву. Хочешь делать то же самое, но с привкусом спермы и запахом свежести - учишь дотнет. Хочешь в десктоп - учишь дотнет. Хочешь в игры - учишь дотнет/плюсы. Хочешь мобилки - учишь джаву+котлин или свифт. Хочешь в бэк для стартапов - учишь питон или джс. Хочешь во фронт - учишь джс. Хочешь заработать геморрой и шизу к 30 годам - учишь с++/раст. Хочешь пердолиться в жопу - учишь голанг.
695 2534864
Решил потрогать вашу авалонию, а она какая-то тормознутая. При растягивании окна контент не успевает за ним, и видно черную полосу. В впф такого нет.
696 2534875
>>34864
Ну так и линукса в впф нет.
image.png635 Кб, 640x735
697 2534890
>>34813
Там изменений немного никогда. Добавляются новые фичи в основном. Хватает почитать что нового learn.microsoft и почти наверняка не воспользоваться этим. Если совсем задрот, то можно покупать себе C# in a Nutshell каждый год.
698 2535144
>>34790

>авалония


Она кстати живая?
699 2535152
>>35144
Живее WTF и MAUI вместе взятых
700 2535168
>>35144
Жидбрейнсы на нее некоторые продукты перевели
701 2535213
>>35144
живая. и будь у нее нормальные шрифты (сглаживание) - уже перешел бы
image.png208 Кб, 1413x550
702 2535345
>>15951 (OP)
Сапыч, столкнулся с ошибкой при миграции, почему-то ругается что в моем mssql сертификаты паленые, хотя в другом проекте все ок работает и мигрируется, на старом использовал версии EF 6.10 на новом EF 7.0 .Net6, в чем мой косяк
Начал гуглить вопрос, нашел, что фиксить можно только путем отключения шифрования Encrypt, может кто сталкивался с проблемой и есть другие варианты
703 2535641
Сап, задали лабу. Надо посчитать y для заданного x и сумму прогрессии для n=3 и e=0.001 . Что можно сделать с double, чтобы цикл работал нормально?
704 2535715
>>35641
пик 1 - чет страшное
пик 2 - добавим страха в чтении используя однобуквенные названия переменных.
пик 3 - хз, наверное тоже страшна раз представлен

итого

>Что можно сделать с double, чтобы цикл работал нормально?


для начала бы понять что тебе не нравится.
вообще про точность чисел с плавающей точкой все знают, но раз тебе нужен именно double, то хоть бы в общих чертах понять о чем ты толкуешь.
705 2535718
>>35715
пременная x double в цикле for увеличивается на 0,07 с каждой итерацией от 0,1 до 0,8. из-за точности double на 3 итерации ломается цикл т.к. итоговое число будет >0.8. Как это обойти.
706 2535720
>>35718
увеличивать диапазон до 0,81 уже пробывал, работает. Но есть ли нормальное решение этой проблемы?
707 2535729
>>35718
Ну всегда можно округлить до нужной точности
А decimal никак нельзя?
708 2535742
>>35715
Спасибо. Буду округлять. Может, decimal попробую.
image.png33 Кб, 714x38
709 2535749
>>35718
for (double x = 0; x <= b; x = x + a <= b ? x + a : b)

Но вообще лучше такой инкремент выносить в отдельную функцию или экстеншен.
И называй переменные нормально, нехуй байтики экономить.
710 2535752
>>35749
У вас за лишнюю собку бьют что ли? Даже если она увеличивает читаемость
изображение.png4 Кб, 361x109
711 2535757
>>35749
Это оформление лабы пиздец, а говорили что вышка помогает програмистам
712 2535761
>>35757
....Помогает писать нечитаемый код
713 2535857
>>35757
пиздос
изображение.png30 Кб, 701x256
714 2535966
Почему майки забили на wpf, про продолжают обновлять винформы?
715 2536004
>>35966
Потому что поняли, что нормальные люди не хотят программировать на XML.
716 2536019
>>35213
Они у неё есть. Просто правильно настрой стили для масштабирования. Я читал статью об этом у них в доках, но адрес сейчас могу не нейти.
717 2536022
>>35213
Вот ишью из гугла, но это не то что я видел ранее, и возможно не так проблема с размазыванием шрифтов https://stackoverflow.com/questions/63448372/avalonia-ui-scaling-issues
Но почитай, вдруг оно.
И еще это решение похоже на костыль.
718 2536025
>>36004
Юзай Eto.Forms!
Там можно закодить форму на шарпе, да декларативненько (через инициализаторы), да с кодбехайндом на шарпе же (через partial)!
719 2536048
>>36025
Я сейчас так пишу пет-проекты на винформах с инициализаторами, дизайнером не пользуюсь. Eto.Forms тыкал, нормальная тема, но чуток не хватает документации.
720 2536052
>>36048

> на винформах с инициализаторами, дизайнером не пользуюсь


И как там? Много костылей приходится преодолевать, чтобы сделать грамотно-адаптивный интерфейс? Или ты не паришься и блокируешь изменение размера окон? А если размер окон заблокирован и интерфейс статичный, то что за доёб к ресайзу авалонии выше?
Ах да, это ж разные аноны. Ну-ну.
721 2536058
>>36052

> И как там? Много костылей приходится преодолевать, чтобы сделать грамотно-адаптивный интерфейс?


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

> Или ты не паришься и блокируешь изменение размера окон? А если размер окон заблокирован и интерфейс статичный, то что за доёб к ресайзу авалонии выше?


Хуй знает, что там в авалонии, никогда её не видел. Если там есть проблемы, видимо, есть на то какие-то причины типа кроссплатформенности.
image.png21 Кб, 483x457
722 2536271
База от Голованга
723 2536293
>>36271
Значит, goвноеды надеятся, что шарписты умрут от кринжовых шуток.
724 2536338
>>35966
Илита использует винФормсы на стероидах - Телерик. Быдло не знает.

Ссу на блейзор/wpf/xaml и другую петушню. За .NET разработчиков, замеченных в использовании данных инструментов, не считаю, это прокаженные.
725 2536353
Зашёл в тред и охуел. 2к22 на дворе, какие нахуй вебформсы, какой нахуй впф, что за пиздец?! Последний раз формсы видел в 2013 на учёбе и в 2015 был легаси проект на девекспресе, с того момента только вариации джавы на фронте, никаких окон, кроме окна браузера. Если вы только вкатываетесь в шарп, то не трожьте десктопные приложения - они мертвы, а если вы почему-то с ними работаете, то срочно уёбывайте оттуда.
726 2536356
>>36353
Ну не сказал бы, некоторые бизнес-хуйни автоматизировать можно только через десктоп, обычно эта хуйня правда на заводе.
727 2536358
>>36353
Будем и дальше писать фронт на винформах итт. И что ты сделаешь?
728 2536359
>>36353

>никаких окон, кроме окна браузера.


Как ты заебал вонять. Тебе сколько раз хуем по голове стучали? Ебаный дегрод.

Ты кроме магазинчиков и порнсайтов поди ничего в жизни не видел. Мервы у него десктопные приложения, охуеть. Любой профессиональный софт на десктопе. ЛЮБОЙ.
729 2536362
>>36353

>а если вы почему-то с ними работаете


У нас в конторе недавно обновление завезли - переехали все на 4.8 довольные.

Сейчас времена не те, период не тот, чтобы куда-то переходить. А у нас можно пересидеть тяжелые времена. Наш легаси-продукт нужно будет поддерживать и разрабатывать даже в случае ядерной войны. Если что, я не из бСССР.
730 2536377
>>36338
Держи в курсе
Image 5.png50 Кб, 642x330
731 2536425
>>36019
нет нету. они рисуют на скиашарпе и на выхлопе жопа. смотри пик - там последний это нативный размер текста без указания размера. он такой огромный и проблема видна меньше, но все равно видна.

А так - сравни с заголовком окна.

>>36353

>десктопные приложения - они мертвы


ну вот и проходи мимо в свои ангулары и не мешай зарабатывать денежку.
732 2536434
>>36362

>переехали все на 4.8 довольные.


что мешает переехать на 7?
у нас не переезжали на дотнет5 из за wpf некоторых тонкостей пдфных, но на 6 изи.
733 2536455
Почему в сишарпе выбрали такую уродскую конвенцию с PascalCase?
734 2536460
>>36455
Посмотри историю появления шарпа и поймёшь. Это не просто совпадение.
735 2536479
>>36455
Что в ней уродского? Наоборот красиво.
736 2536483
Вот типа недавно комит на тему фикса клиртайпа
https://github.com/AvaloniaUI/Avalonia/commit/5e128bc73149c7370640cf7831d227794a0710f9

ну будем посмотреть. ничего ж не компилится даже для посмотреть
но оперативность решения в виде ГОДЫ ЖДАТЬ не радует
1534900497175818404.jpg323 Кб, 1600x900
737 2536509
1. Как заставить ссаную студию вставлять код в нужное место? Речь идет о случаях авто-реализации интерфейсов или подписок на события, когда студия пытается вставить часть кода в уже написанный код.
Заебала пидорасить код и вставлять не в том месте.

2. Как дать по щам студии, чтобы она не двигала мои вкладки? Дело даже не в том: слева или справа создавать новую вкладку. Речь идет о шурудении уже открытых вкладок. Кто давал ей право это делать? Прочему пятая по счету вкладка перемещается на позицию второй? Проделки домового?
738 2536510
>>36479
Выглядит громоздко. Кроме того надо прожимать shift постоянно.
739 2536527
Ещё мне не нравится { get; set }. Их прямо везде пихают. Вот только начали писать что-то и сразу get-set. И ладно бы это как-то по уму было сделано, но оно максимально дебильно. Свойство, к которому приписано эти get-set, надо ещё писать приватную переменную, т.е. получается двойной расход памяти: одно на переменную, второй на свойство.
В джаве же всё сделано просто и со вкусом: объявил переменную прописал нужные тебе методы: getName(), setName(), где Name - имя переменной. Многие ИДЕ сами их генерируют, так что много кода писать не потребуется. Само собой и нет двойного расхода памяти, потому что методы его не тратят.
740 2536535
>>36527

>Многие ИДЕ сами их генерируют, так что много кода писать не потребуется


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

>объявил переменную прописал нужные тебе методы: getName(), setName(), где Name - имя переменной.


ровно ТАКОЕ ЖЕ сгенерит тебе компилятор вместо { get; set }

>т.е. получается двойной расход памяти: одно на переменную, второй на свойство.


нет не получается. тут с жавой 1 в 1 - разница лишь в том КТО генерит методы getName(), setName() - редактор или компилятор (на то он и сахар)
741 2536537
>>36527
С автосвойствами дополнительные приватные переменные нахуй не нужны. Они нужны только пидорам, пишущих в свойствах логику
742 2536542
А модификаторы доступа? Если в джаве есть 4 простых модификатора, которые укладываются в простую табличку и ты всегда чётко понимаешь уровень доступа каждого поля или класса.
А что в сишарпе? Просто какой-то зоопарк модификаторов доступа. И такие и сякие. И голову можно сломать, чтобы понять где доступен этот класс, а где нет. И наверняка в будущем они ещё навалят модификаторов побольше, чтобы язык окончательно привратился в помойку. Уже даже опытные программисты, которые начинали с ранних версий, с ужасом смотрят на захламление синтаксиса.

Мне это почему-то напоминает права доступа к файлам в юниксах/линуксах и винде. Если у первых простой битовый массив, то в винде это какой-то ад: всякие изменить, но не удалить, изменить, но удалить, запустить, но не читать и прочий бред.
743 2536543
>>36537

>Они нужны только пидорам, пишущих в свойствах логику


без логики в свойствах само понятие свойство нахер никому и не нужно было бы. Сам функционал "свойство" и рожден именно для написания логики

Ваш КЭП
744 2536545
>>36542

>Если в джаве есть 4 простых модификатора


а в линуксе есть права доступа вида rwx, которые

>в простую табличку и ты всегда чётко понимаешь



беда только в том, что если бы их хватало, то не родились бы сверху всякие ACL и другие средства

И лучше иметь больше средств контроля доступа, чем меньше
Image 6.png17 Кб, 504x459
745 2536568
>>36527
вот чтобы ты понял
doubleInt.jpg13 Кб, 291x191
746 2536645
>>36568
А я говорю, что под класс Foo будет выделяться не 4 байта, а 8 байт памяти из-за свойства. Потому, что микрософты не предусмотрели возможность манипулирования скрытой переменной Bar и приходится заводить новую _bar.
747 2536649
>>36645
А ты представь, что скрытой переменной нет.
748 2536681
Ещё мне не нравится, что они сделали ссылочные типы, не допускающие null. Теперь надо везде писать этот уродский ? рядом с каждым типом, чтобы можно было присваивать null. Вот с какой целью эта дичь была сделана?Сама идея ссылки и была в том, что у неё либо null, либо конкретное значение, полученное через new.
И ведь микрософтам ещё хватает наглости писать об этом с гордостью, что они сделали какой-то полезный вклад в развитие языка.
Рихтер наверно после этого, если и собирался писать новую книгу, то теперь точно не напишет, потому что шарп свернул не туда.
Да и вообще после 5 версии шарпа язык пошёл под откос. Его и дальше будут накачивать бредовыми изменениями. Скоро он превратится в Perl с его обилием сложночитаемых закорючек.
749 2536728
>>36645
а я говорю что разницы между java с ее сеттерами на уровне кода и шарпом с его сеттерами на уровне скомпиленного кода - просто нет

и твой пик НИЧЕМ не отличается от моего ни по памяти ни по реализации. Это ОДНО И ТО ЖЕ.

>>36681
выключи фичу и всего делов. это ж не котлин где это на уровне компилятора. тут это просто предупреждения

> потому что шарп свернул не туда.


шарп свернул как раз туда. разве что поздно это начал. гугли "Ошибка на миллиард долларов"
.
750 2536737
>>36681
не туда он свернул во многом при рождении
- нулл безопасность
- нет замороженных типов нормальных
- нет val
- неудачная реализация событий
- похерили контрактное программирование
- жирный обосрамс с IReadOnlyList
- new new new
- имя конструктора должно иметь имя класса
- ConfigureAwait(true).
- нет инлайн методов
и другое "бррр аж трисет"
751 2536783
>>36509
Бамп
752 2536797
>>36783
Мы, решарписты, не знаем о чем твоя первая проблема
И вторая тоже хз о чем ты
753 2536880
>>36356

>бизнес


>на заводе


Сам то понял, что сказал? Твоим главным бизнес-заказчиком на заводе будет тётя Срака, которой нужно вести учет чушек на складе.
754 2536882
>>36359

>Любой профессиональный софт на десктопе


Для разработки профессионального софта нужно обладать нужными знаниями. Вкатунам туда вход закрыт.
755 2536885
>>36510

>Кроме того надо прожимать shift постоянно.


Да ну, а в snake_case типа не надо?
image.png17 Кб, 478x141
756 2536894
>>36509
1. А с каких хренов она должна знать в каком месте этот метод стоять должен. Да и не похуй ли по большому счету.

2. Вкладки можно фиксировать.
На пике.
Первая - зафиксирована, всегда будет открыта и находится по отношению к другим зафиксированным вкладкам там где она размещена.
Вторая открыта и не зафиксирована, всегда будет находится после зафиксированных вкладок и может менять позицию туда-сюда.
Третья временно открытая. Пока ты с ней работаешь, но студия закроет ее при первой возможности (например при добавлении новых вкладок)
image.png8 Кб, 706x256
757 2536897
>>36542

>Просто какой-то зоопарк модификаторов доступа.


Ужас какой, целых 6 штук. И то базовых всего 4 (как в джаве, сюрприз), а остальные их комбинации. Это ж пиздец как сложно запомнить-то. Может программирование это не твое, если у тебя с памятью такие проблемы.
Вот тебе простая шпаргалка, может поможет.
758 2536913
>>36894

>1. А с каких хренов она должна знать в каком месте этот метод стоять должен. Да и не похуй ли по большому счету.


Немного бесит. Вообще непонятен алгоритм вставки.

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

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

2. Вкладки можно фиксировать.
Это да, но задолбаешься их фиксировать и откреплять. Тут я тоже не понимаю логики зачем вкладки вообще перемещать нужно.
759 2536915
>>36913

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


это не студия издевается над тобой, это ты издеваешсья над студией.
760 2537044
>>36913

>Тут я тоже не понимаю логики зачем вкладки вообще перемещать нужно.


Иногда бывает когда над слишком говнокодистым проектом работаешь приходится открывать пучок вкладок и туда сюда их тасовать, чтобы хоть как-то это в голове уместить.
А вообще советую для студии экстеншен Workspace Manager, позволяет сохранять наборы вкладок и потом быстро их загружать. Очень спасает на работе, когда приходится переключаться между разными тасками туда-сюда.
761 2537045
>>36885
Самый оптимальный стиль в джаве. Примитивные (значимые) типы с маленькой буквы, а все ссылочные - с большой. Методы с маленькой.
762 2537046
>>36913

>Я прост любитель все разбивать на регионы


Я тоже раньше любил кучу регионов плодить. Сейчас отвык от этого. Наверное научился писать код так, чтобы он был сразу понятен. Максимум, что сейчас делаю, блок конструкторов (если их несколько) или приватных методов в регион оборачиваю.
763 2537047
>>37045
Те же яйца только в профиль. Тот же CamelCase, только кое-где местами upper с lower поменяли.
А вот скобки в джаве по уебански расставляются.
764 2537049
>>37047
Вот в джаве смотришь на тип String и сразу понимаешь, что это ссылочный тип. А какой тип string в сишарпе?
765 2537071
>>37049
Ссылочный, но со своими особенностями.
766 2537098
>>36897
А потом ещё надо выучить кучу модификаторов для аргументов методов. Всякие out, ref, in, params. Многие даже опытные сишарперы их не знают, потому что в каждой новой версии накидывают ещё. И ладно бы был от них какой-то прок, дак это просто сахар ради сахара. Они абсолютно бесполезны. К тому же, касательно in ещё и сами имена подобраны тупо. Гораздо логичнее было бы использовать const, что отражало бы смысл модификатора, но нет, будет in.
767 2537124
>>37098

>out, ref, in,


Безопасная работа с памятью

> params.


Передача неопределенного количества аргументов без создания массива.
768 2537132
>>37124
А вот в джаве вместо params используется более изящное решение - троеточие. Оно не занимает лишние ключевое слово и выглядит лучше в коде.

Вообще, джава очень экономно относится к ключевым словам и повторно используется многие из них в разных контекстах: final, for, try. В шарпе же постоянно вводят новые ключевые слова и авторам этих изменений наплевать, что программисты уже могли использовать их для написания программ в ранних версиях. Об обратной совместимости они не задумываются.

К тому же названия в шарпе выбираются крайне неудачно. Чего стоит Enumerator, который больше ассоциируется с перечислениями Enum, а не с итераторами.
769 2537157
Может я чего-то не понимаю, но какого хуя у меня gethashcode() выдаёт у файла и копии разный хэш, более того у ОДНОГО И ТОГО ЖЕ файла разный выдаёт. Я чего-то не понимаю? Для чего это хуйня нужна тогда?
770 2537206
>>37157
Потому что gethashcode не имеет отношения к хэшу самого файла.
771 2537207
>>37044
Хорошая тема, правда глючная слегка. Надо удалять .vs, чтобы завелось.

И сбивает с толку загрузка воркспейса. Сначала подумал, что опять не работает т.к. предполагал, что переключение будет автоматически по выбору итема в выпадающем списке. А кнопку LoadWorkspace я посчитал за выбор файла с пресетами.

С другой стороны, можно отредактировать пресет не переключаясь на него — панель компактнее.
772 2537226
>>37124
Ладно, ладно. Мы уже поняли, что для джавистов разобраться в четырех терминах непосильная задача.
773 2537232
>>37226
Простота джавы - это преимущество, а не недостаток
774 2537236
>>37207

>Хорошая тема, правда глючная слегка. Надо удалять .vs, чтобы завелось


Я х.з. у меня без этого работает. Там просто в каталоге с солюшеном создается файл в котором пресеты закладок хранятся и все. Его можно по желанию в .gitignore занести, на сам проект он никак не влияет.
775 2537244
>>37045

>Самый оптимальный стиль в джаве.


Знаете почему вы будете спорить бесконечно над тем, что оптимальнее? Потому что ваша хуйня решает только 5% проблем.
Есть ворох сущностей, которые тоже надо бы как-то обозначить, но у вас есть только UpCase да нижний прочерк.

Раньше читал про правило, что массивы нужно обозначать с большой буквы, а все остальные с малой. Потом узнал, что надо все, что объявляется локально в методе, писать с малой, а все что снаружи — с большой. Потом узнал, что все что приватное в классе с малой, а все что публичное - с большой.

А щас наблюдаю еще один шизопостулат, который (будем объективны) не решает ничего — все равно что пердежом двигать Эверест. Эти обзначения играли роль во времена, когда твой редактор кода был скудным по функционалу. Тогда и функции ПИСАЛИ_КАПСОМ, чтобы хоть как-то отличить. Сейчас студия тебе и всё раскрасит, и подпишет, и даже иконку подставит. Не занимайтесь хуйней.

Единственное, что хуево в шарпе, это визуально одинаковая реализация интерфейса и наследование от класса. Даже конвертер с C# в VB косоебит на этом моменте. А вот наоборот конвертируется замечательно, потому что реализация интерфейсов помечаются как Implements, а наследование как Inherits.

Да и вообще C# очень хуев для автоматической конвертации (что примечательно). Например конвертер не может отличить подписку на событие от простого инкремента, в то время как в бейсике для событий есть ключевые слова AddHandler и RemoveHandler.
В C# одно сочетание символов может содержать миллион контекстов.
776 2537245
>>36425
че по сотыгам на десктопе? Думаю, переходить ли в веб или не
777 2537263
>>37236
Что как бы намекает, что микрописечка не такая уж и микро и за каким-то хером лезет в другие части проекта. Вот аналогичная проблема
https://developercommunity.visualstudio.com/t/workspace-is-not-saved-anymore/251422

Вот поэтому я не доверяю всем этим плагинам в свободном доступе.
778 2537267
>>37263
Особенно проиграл, что это не посчитали проблемой, если пользователь ее устранил.
779 2537272
>>37263
>>37267
Видимо какая-то херня для синхронизации, чтобы не бекапить один и тот же файл многократно.
780 2537276
>>37132

>программисты уже могли использовать их для написания программ в ранних версиях


И студия автоматически добавит к ним символ @, чтобы отличить их от ключевого слова.
Озвученной проблемы нет.
781 2537279
>>31818
Я делаю примерно так же.
Сеньеры-помидоры - рофлят с меня, делают 1 класс 5к строк и идут смотреть ютуб, пока я как дебил - хуйней страдаю, еще и пишу тесты.

Вот с тестов - горит. Единственный хуй что пишу их((( Типа блядь. Повторяю умные слова про тесты, тестировщики говорят - вот, этот джун дело говорит, заебало нас ваши программулины отлаживать, тестирование всего кроме моего говна - длится по полгода в том числе из-за отсутствия тестов. Нет, сеньеры-помидоры говорят: идите нахуй, не будем тесты писать, а тестировщики за то деньги и получают, хули мы будем тесты писать, пусть они баги ищут.
Короче. Да. Из-за этого хреновая картина: Я по полгода сижу - и жду пока код сеньеров оттестируют, потому что тестов нет, нужно все проверить руками, даже мелочи. А я - хуйней страдаю. А я - кодить хочу, а не хуйней страдать(((
782 2537288
>>37279
Надо просто на деньги сеньоров набрать еще тестировщиков, раз работа простаивает. Тебе надо применить паттерн Krysa
783 2537300
>>37288
У нас тестировщики получают так же как сеньеры. Т.е. заменяем одного сеньера - тестировщиком.
Кто разрабатывать будет?

Надо тесты внедрять. Я реально ж вижу, что меньше проблем потом в ходе тестирования. По сути все сводится к тому, чтобы проверить, что то что реализовал - это действительно то что просили.
784 2537334
>>37272
Вполне возможно. Я просто никогда не сохраняю .vs под контроль версий. Во вторых я никогда не юзаю контроль версий через студию, только непосредственно через сам git. Наверное поэтому и не сталкивался.
2022-12-1015-51-07.png48 Кб, 768x466
785 2537365
Глядите, я UserControl переименовал в Grid и у меня теперь доступен xaml дизайнер.

Это действительно класс Grid, или какая-то ересь? Как оно связывается с дизайнером и в каком месте?
786 2537427
>>37232
и поэтому на мобилах (то есть где нет кровавого энтерпрайза) котлин (с его перегруженностью сложностью, что даже шарп на его фоне бледно выглядит) вовсю вытесняет жаву
787 2537436
>>37427
Его гугл насильно внедряет, а где свободный выбор языка, там выбирают джаву.
788 2537440
>>37436
насильно?
а в чем насильность то проявляется?
789 2537469
>>37365
это наследник класса Grid
реальное имя класса в x:Class

и это xaml, а дизайнер умеет в xaml отображать.
790 2537518
>>37440
На конференции для разработчиков I/O 2019 Google объявила, что язык программирования Kotlin теперь является предпочтительным языком для разработчиков приложений под Android — новые API и библиотеки Jetpack будут публиковаться сначала на Kotlin.

https://vc.ru/dev/66728-google-obyavila-kotlin-prioritetnym-yazykom-programmirovaniya-dlya-razrabotki-android-prilozheniy
791 2537535
>>37469
А где происходит эта связка? В проекте тупо лежат два файла, единственная связь которых — одинаковое название класса. Что будет если удалить один из файлов?

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

>будут публиковаться сначала на Kotlin.


ну так то да. из котлина можно вызывать жава код, а вот из УБОГОЙ жавы вызывать котлин хз как.

Впрочем я все равно останусь при своем мнении что выбирающие котлин выбирают его за его фичи, а не потому что гугл решил. Потому как сам выбрал по причинам "жава говно убогое (особенно на андроид там вообще жопашный), а котлин ня"
Image 7.png29 Кб, 619x453
793 2537598
>>37535
ну вот ты создаешь юзер контрол MyUserControl в студии
и у тебя 2 файла - MyUserControl.xaml и MyUserControl.xaml.cs

То, что они связываются в дереве файлов проекта - просто фича студии по конвенции (и даже какие то расширения есть)

Посмотри на сами файлы. По факту эти 2 файла описывают один partial класс разным языком. (смотри пик)

xaml не является чистым языком разметки как хтмл.
Он описывает код декларативно.
Он описывает тот же класс просто другими средствами
(правда это компилится не в шарп код(IL), а в baml не потому что не может, а по другим причинам)
Но если бы компилился в код, то было бы примерно то, что генерит винформс дизайнер.

Если ты в хамле UserControl поменяешь на Grid то получишь ошибку
Error (active)CS0263 Partial declarations of 'MyUserControl' must not specify different base classes

Если ты удалишь один из файлов, то будет тот же эффект что с обычным partial файлом - если в нем осталось что-то из удаленной части, то не скомпилит. Например если ты удалишь хамл файл, то в xaml.cs будет ругаться на недоступный InitializeComponent();, который был как раз в хамловой части описания класса.
794 2537611
>>37598

>xaml не является чистым языком разметки как хтмл.


>Он описывает код декларативно.


Я понял.

>Если ты в хамле UserControl поменяешь на Grid то получишь ошибку


>Error (active)CS0263 Partial declarations of 'MyUserControl' must not specify different base classes


А, ну у меня бейсик, и у меня по дефолту не показывает partial и базовый класс. Это наверно из-за настроек, как автоскрытие неймспейсов. Соответственно, при смене класса автоматом видать меняется базовый класс во втором файле. У меня ошибки не возникает.
795 2537635
>>37436
Я правильно понимаю, что гугл насильно заставил 63% разработчиков на котлине любить его? - https://survey.stackoverflow.co/2022/#section-most-loved-dreaded-and-wanted-programming-scripting-and-markup-languages
Джава там вообще внизу списка
796 2537638
>>37635
В 2к22м все еще находятся долбоебы, верящие в тесты производительности и опросы.
797 2537648
>>37638
А зачем SO подкручивать опросы?
798 2537650
>>37638
хотя да. это co
799 2537727
>>37436

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


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

>пик


Ох как же меня бесят неймспейсы в xaml, я наверное в основном из-за этой хуйни и бросил когда-то пытаться нормально его освоить.
801 2537742
>>37729
Не знаю как раньше, а сейчас они дописываются автоматом, я даже сходу сам не импортирую ни одного неймспейса.
Намного хуже работа со стилями.
802 2537761
>>37729
решарпер с этим делом помогает.
без него жить сложно
803 2537883
Как рисовать и выводить звук в сишарпе?
804 2537891
>>37883
В каком смысле рисовать звук?
Если ты про графику, то она имеет несколько категорий: растровая и векторная. С векторной проще всего в WPF — проще, чем в винформсах и можно даже рисовать по прозрачному окну и без проблем применять трансформации масштабирования, поворота, смещения. Canvas для этого идеально подходит.

В винформсах была ебатория с тем, что если тебе надо изменить фигуру, то нужно сперва ее стереть, чтобы нарисовать новую. В WPF все на автомате.
Собсно сабж: https://metanit.com/sharp/wpf/17.3.php
Для общего ознакомления возможностей WPF https://learn.microsoft.com/en-us/dotnet/desktop/wpf/graphics-multimedia/?view=netframeworkdesktop-4.8

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

Выводить звук без запуска проигрывателя тоже можно из коробки, но нужен формат WAV, никаких mp3 и прочей ебулды. Мб с доп либами можно и что-то еще. Гугли System.Media.SoundPlayer
805 2537897
>>37891
Ну в общем, есть книжка "Седжвик Р., Уэйн К. - Computer Science. Основы программирования на Java, ООП, алгоритмы и структуры данных (Классика computer science)", но там все примеры на джаве. Хотелось бы их применить на сишарпе, но там очень много задач на рисование и даже на вывод звука посредством колебаний с определенной частотой. Буквально читают wav-файлы и генерируют звук средствами джава.
806 2537904
>>37897
Ну тогда, братишка, тебе нужно разбираться самому и гуглить конкретные шаги из книги. Ну есть там вские генерации меандра (ака Square Wave), типа пищалки, которые записываются в WAV, а потом воспроизводятся.
https://stackoverflow.com/questions/203890/creating-sine-or-square-wave-in-c-sharp

Хер знает что тебе нужно и что ты там задумал. Если какое нибудь MIDI, то это уже отдельный вопрос, но думаю тоже есть либы.
807 2537910
>>37904
Получается даже здесь джава превосходит сишарп.
808 2537919
>>37910
Получается, что мать твоя — шлюха. Я догадывался по размытой формулировке вопроса, что это тупой наброс.

Из-за таких мудаков, как ты, другие страдают, потому что вместо ответа на вопрос их сходу кроют хуями.
809 2537940
>>37919
Сишарп не умеет рисовать и генерировать музыку, а виноват оказался почему-то я.
810 2537943
>>37940
Ты виноват в том, что пытаешься набросить говно на вентилятор, а я виноват в том, что продолжаю кормить.
811 2537949
>>37943
Когда я сталкиваюсь с тем, что джава снова оказывается лучше сишарпа, то испытываю тоже бурю эмоций. Сразу вспоминаю флешбеки тех моментов, когда решил начать изучение сишарпа. Иногда хочется вернуться в прошлое и сказать самому себе: постой, лучше учи джаву!
Не удивительно, что многие сталкиваются с теми же проблемами при изучении сишарпа и лишние напоминание об этом вызывает у них гнев в виде оскорбительных сообщений.
Стикер380 Кб, 512x512
812 2537966
>>37949

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


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

Даже человек, который ни разу не сталкивался с задачей генерации звуков, люто проиграет с тебя, ну и сделает соответствующие выводы о качестве поданной информации в книге Седжвика Р.

Бля, хочешь затроллить меня? Ну возьми и исследуй тему создания музыки на шарпе, сравни это с методами создания на джаве. Покажи пруфы, что сделать можно, что нельзя. Я с удовольствием почитаю.

А пока что ты для меня кажешься каким-то некомпетентным клоуном-ретардом. Только вдумайся: ты отсутствие желания анона вывалить тебе готовый код, хочешь преподнести как отсутствие функционала в шарпе. И кто ты после этого?
Pony.webm3,6 Мб, webm,
640x640, 0:17
813 2537974
>>37966

>И кто ты после этого?


Это тупо байт, чтобы ты в порыве чувств защиты чести и достоинства шарпа, метнулся искать необходимую информацию и выложил всё готовое. Понятно, что хуесос привыкший к готовой подборочке задач из книги неспособен на поиск необходимой информации. Я больше чем уверен, что и генерация звуков ему как таковая не нужна, а просто она была в книге.
javadraw.jpg61 Кб, 709x895
814 2537976
>>37966
Ты видимо и читать не умеешь. Я писал: рисовать и выводить звук. Это два разных действия. Ты что ли не рисовал никогда в пеинте? Не пользовался музыкальными проигрывателями?

Тем не менее в джаве это всё легко делается. Даже искать ничего не надо. Написал пару строчек и работает.

Как это в шарпе - не знаю. Скорей всего шарп так не умеет. Либо это какая-нибудь хитромудрая коyфигурация в xaml, что имеет мало общего с простотой рисования в джаве.
815 2537979
>>37976
Я не вижу на твоем скрине рисования звука.

Я вижу нарисованный кружочек и полосочку, о чем было рассказано в этом посте >>37891
Раз ты этот пост прочитал жопой и проигнорировал написанное, то не удивляся потом, что анон посчитал, что ты имеешь ввиду рисование музыки.
816 2537983
>>37976

>Скорей всего шарп так не умеет.


Ты больной. Зачем ты с такими предубеждениями лезешь в шарп? Ты посчитал, что желаемое невозможно до того, как вообще поискал инфу.
Даже после того, как тебе дали ссылку на референсы, ты это проигнорировал и начал поливать говном.
2022-12-1113-42-52.png2 Кб, 272x95
817 2537994
>>37976
А где на скрине задается закругление концов?
В WPF можно зать форму окончания контура. Типа CapStart и CapEnd, там можно выбрать закругление, прямой конец и прямой конец с прибавлением на толщину контура.

И второй вопрос, а это хуйня работает как отдельный объект? Или оно просто рисует пиксели? Можно точку и линию повернуть на 45 градусов и отмасштабировать в 0,5 раз относительно центра точки?
818 2538028
>>37976
В джаве нихуя так не делается. В стандартной библиотеке нет класса StdDraw, ты его взял хуй пойим где и подключил к своему проекту. Напиши саои пару строчек без сторонних библиотек и попробуй тогда выебнуться.
819 2538103
>>38028
Это библиотека для книги, но в основе у неё AWT и Swing. Её можно одинаково применять на любой ОС, потому что они полностью кроссплатформенны, в отличии от фейковой кроссплатформенности дотнет кора.
820 2538114
>>38103
Прикладывай пример без этой библиотеки или слит.
javadrawawtswing.jpg86 Кб, 755x885
821 2538192
>>38114
Всё работает. Можно даже сделать jar-ник и запустить в линуксе и макоси и всё будет работать без перекомпиляции.
822 2538211
>>38192
Что, уже не пара строчек? А теперь напиши то же самое на винформах, получится примерно столько же. Вскукарек про кроссплатформенность хуй знает к чему тут вообще, в изначальной постановке вопроса про него ничего не было, так что не надо тут переобуваться. Кому нужна кроссплатформа - тот возьмёт eto.forms или авалонию.
823 2538220
>>38211
Я не умею на винформах. По ним нет нормальной книги.
2022-12-1117-04-52.png20 Кб, 351x348
824 2538316
>>38211

>А теперь напиши то же самое на винформах, получится примерно столько же.


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

Разница лишь в том, что в WPF нарисованная кривая это редактируемый объект с доступом к толщине, заливке, координатам точек. Можно к кривой применить матрицу трансформаций, ну и прочие радости жизни, типа антиалиазинга, чтобы не было пораши по типу пикрил, или наоборот SnapToPixels, чтобы не было "мыльных" контуров.

>>38220

>Я не умею на винформах


И не надо. Там графику рисовать тупо. Единственное, что там годное — это возможность нарисовать сглаженную кривую по точкам. Т.е. речь идет не о кривых безье, когда указывается 4 точки (это есть и там и там), а когда указывается только две и между ними идет усредненный переход. Так называемые Catmull-Rom кривые.
https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Catmull.E2.80.93Rom_spline
Возможно в WPF есть и такое, но я не нашел.
825 2538321
>>37883
Для работы со звуком есть NAudio. https://github.com/naudio/NAudio

Как по мне, так это настоящая Silver bullet для работы со звуком. Позволяет не ебаться с различными API.
826 2538322
>>37949

>Иногда хочется вернуться в прошлое и сказать самому себе: постой, лучше учи джаву!


Так, а что тебе мешает сейчас свичнуться на джаву и съебать нахуй из треда ?
827 2538323
>>37949

>Иногда хочется вернуться в прошлое и сказать самому себе: постой, лучше учи джаву!


Так, а что тебе мешает сейчас свичнуться на джаву и съебать нахуй из треда ?
828 2538331
>>38322
>>38323
Джава учится дольше, чем сишарп. Само собой речь не про язык, а про фреймворки. А мне надо по-быстрому выучить что-то и вкатиться. Если заработаю себе на 2 года гэпчика, то смогу переучиться на джаву. А сейчас уже поздно, деньги почти закончились.
829 2538370
>>37611
кстати вот пример для понимания. что хамл - язык описания кода в декларативном виде, а не описание разметки. Там и хамл и эквивалентный код.
https://learn.microsoft.com/en-us/dotnet/desktop/wpf/graphics-multimedia/how-to-create-a-composite-shape
830 2538382
>>38370
Ну да, просто по первой как-то не осознаешь это, особенно когда переходишь с винформсов.
831 2538440
>>38331

>Джава учится дольше, чем сишарп.


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

>Само собой речь не про язык, а про фреймворки.


Гнилой аргумент. Если ты нормально знаешь язык, то вопрос вката в любой фреймворк дело максимум месяца, а часто вообще неделя-две.
832 2538447
>>38331
Но как же ты собрался выучить быстро сишарп если каждый год злые майкрософт меняют стек до неузнаваемости? У тебя же учебные примеры не скомпилируются!
833 2538462
>>38440
Фреймворки в джаве отстойные. Там всякие xml-конфигурация, тонны аннотаций. В итоге пишешь не на джаве, а на всё сподряд. Есть даже специальный язык Спринга SpEL.

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

>>38447
Я нашёл актуальный курс на торрентах по текущей версии. Надеюсь успеть до дотнета 8.
834 2538623
>>38462

>Скорей наоборот, язык учишь за месяц,


До-о-о. Чел, ты даже модификаторы доступа запомнить не в состоянии. Какое тебе там "язык за месяц".
835 2538669
в шарпе нельзя интерфейс для статик класса - НЕУДОБНААА
836 2538675
>>38669
Удивительно, если хоть в обном языке такое есть. Интерфейсы придумали для ООП, а статик классы - костыль для добавления процедурщины в язык, чтобы не добавлять глобальные функции. Видел интерфейсы в сишке? Вот то-то и оно, нет интерфейсов в процедурщине и быть не может.
837 2538681
>>38675
в котлине есть ибо там статик это синглтон объект приатаченный к классу и это реально удобно - можно и интерфейс и расширение сделать не только для инстансов, а еще действуют скоупы видимости этих расширений.

Всего этого в шарпе нельзя и приходится извращаться.
Нет - код то писать можно рабочий, но вот сделать нормально - увы
838 2538685
>>38681
Чел, ну как бы статик и синглтон это слегка разные вещи, каждая со своими целями. Ты пытаешься логику одного прицепить на логику другого, а когда не получается выдаешь "плохо сделано, тупо".
839 2538689
>>38681

> там статик это синглтон объект приатаченный к классу


То есть никакой это не статик, а тупо синглтон, обычный объект со всеми вытекающими. Под капотом для JVM создаётся обычный класс, и, понятное дело, можно реализовывать какие угодно интерфейсы. Там и функции есть, которые тоже сделаны через неявные классы. Кому-то не нравится, что в шарпе нет подобного сахара, а кому-то не нравится наличие такой возможности в петухотлине, в котором делали всё лишь бы не как в жабе.
840 2538691
>>38685
>>38689
снаружи выглядит одинаково

MyClass.MyMethod()

и потому подобные вещи я называю "статические методы" то есть "методы которые можно вызвать у класса, а не у экземпляра"

И реально пофиг что там под капотом. Сахар для того и придуман чтобы выглядело просто, а под капотом хоть новую вселенную создавай.
841 2538700
>>38691

> и потому подобные вещи я называю "статические методы"


> И реально пофиг что там под капотом


Тебе с таким мышлением дорога в 1С и PHP. Хочешь возиться с котлином или шарпом - используй общепринятую терминологию, иначе хуй кто тебя поймёт.
842 2538704
>>38700
на статики шарпа я сказал статики.
А статики котлина - вот пусть котлинисты в меня тапками и кидают, но я в шарпотреде сижу.

>Тебе с таким мышлением дорога в 1С и PHP.


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

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

это просто факт. это может не нравится шарпистам, но это факт.
843 2538705
Шарпочане, хватит кормить залетного джавадебила.
844 2538707
>>38705
не каждый шарпохейтер суть жавист.
Я хейтю шарп, но не потому что я его плохо знаю, а как раз наоборот.
845 2538712
>>38705
А чё ещё делать, TreeView обсуждать?
846 2538744
>>38705
почему сюда вообще залетают джавакараси
что мы им сделали такого
847 2538749
>>38744
ну ну. я хейтю из за синтаксиса шарпа, хоть и пишу на нем с его рождения.
Все познается в сравнении. Я считал синтаксис шарпа богатым, но волею судеб изучив котлин понял что шарп очень жадный на выразительность.
И жалкие крохи выразительности вводятся со скрипом.
848 2538773
>>38744

>что мы им сделали такого


Загляни в джава-тред и поймёшь
849 2538776
Предстоит собес. Подкиньте реальных вопросов на веб-девелопера с годом опыта.

Жутко стремаюсь из-за ощущения что самозванец, хотя в то же время такой же как и я челик с ютуба просто порешав литкодовские задачки в гугл устроился.
Что подучить? Что в гитхаб закинуть (инб4: его не чекают; литкод задачки) ? Может вам давали полайвкодить, что были за задачи?
3513684312.jpeg37 Кб, 720x350
850 2538778
Ваше мнение?

Я, собственно, так в шарп и вкатился.
851 2538781
>>38623
В джаве это таблица 4 на 4 и легко учится. Это в сишарпе миллион модификаторов и каждый год новых насыпают. Джава учится за месяц, а сахар сишарпа не учится вообще за какой-либо вменяемый срок.
Понятно, что на собесе может попасться душнила, который завалит сахаром. Поэтому придётся искать вакансии без таких душнил, а с нормальными челиками.
852 2538790
>>38781

>сахар сишарпа не учится вообще за какой-либо вменяемый срок.


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

>В джаве это таблица 4 на 4 и легко учится.


А в шарпе это табличка 6 на 5, которая тоже легко учится. Выше в треде ее уже кидали.
Так и запишем, что это предел познаваемости джава-дебила.

>каждый год новых насыпают.


Ну пиздеть, то не надо. Набор этих модификаторов уже 5 лет не меняется. Единственный модификатор который добавили в C#11 - это file, но про него можно тупо забыть, т.к. он для кодогенераторов предназначен.

>а сахар сишарпа не учится вообще за какой-либо вменяемый срок.


Весь сахар си-шарпа спокойно умещается в книжке на 250 страниц карманного формата.

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


Это вообще редкость. Спрашивают только за какой-нибудь фундаментальный сахар вроде using-ов или async/await.
854 2538819
Если в языке много сахара, то он сладенький!
мимосладкоежка
855 2538837
Называть сахаром хайлевельные абстракции языка, взятые из многолетних достижений задротов computer science, это признак животного ебанного лоускилльного, уровень джавистов и пхпшников.
856 2538843
>>38819
Есть программисты-диабетики
857 2538845
>>38843
Это их проблема, не остальных. Не можешь себе позволить сахар - не ной на остальных, что они сахаром пользуются.
858 2538967
Я создаю отдельную бд для каждого юнит теста, с названием вида {DateTime.Now}.db, как мне просмотреть эту базу данных в райдере? В студии вот есть список всех баз данных, а тут я так понимаю нужно отдельно каждую бд подключать.
859 2538981
>>38776
Спрашиваю на собесе (всё по тайпскрипту):
1. Difference between let, const and var at TS
2. What is anonymous function
3. Ways to implement lazy loading
С вопросов выше можно понять знает ли кандидат основы (вопрос 1), а может шарит глубже (вопрос 2), можно понять как мыслит кандидат, вариантов имплементации lazy loading сотни, интересно какой выберет (почему именно этот, чем он лучше/хуже).
И к этому тестовое задание на 1-2 часа работы (72 часа чтобы его выслать), чтобы кандидат спокойно в своём темпе его сделал. Задание:
- есть готовый шаблон проекта, созданы пустые компоненты, написаны css
- есть готовое rest api (get, delete, put)
- get возвращает >10000 объектов, которые нужно поместить в таблицу, которую нужно фильтровать и сортировать на фронте (в get есть параметр paging, но я об этом не говорю, вся инфа в сваггере)
- нужен поиск по каждому полю объекта (id, name, amount, price)
- каждый из объектов можно удалить, таблица должна обновиться после удаления
- можно добавить новый объект, таблица должна обновиться после добавления

Это собес для 3+ года опыта работы, ставка 25$ + VAT
860 2539010
>>38967

>Я создаю отдельную бд для каждого юнит теста


Ахуеть... in-memory-database еще не проходили на курсах??
861 2539011
Представляю как у тебя при CI/CD долго эти тесты выполняться будут, просто пиздец.
862 2539012
>>38981
Это точно на 3+ лет опыта? У меня 1.5 года опыта на дотнете, я и то могу эту парашу сделать, лол.
863 2539015
>>39012
К слову опыта с js нет почти, но это не отрицает факта того, что задача слишком простая.
864 2539020
>>39012
>>39015
Да. Тут 3+, потому что примерно за это время работы в команде у человека образуются норм софт скилы. Бывают просто отличные программисты, с которыми нету никакой возможности работать (чсв, токсики, просто мутные типы), тогда я охотнее возьму менее опытного, но более предсказуемого кандидата.

Интересно, что только 1 из 5 делает тестовое задание адекватно, без странных конструкций, хардкода, знают что такое eslint. В этом задании не главное, чтобы работало идеально, а как оно сделано и тут уже встречаются пиздецы.
865 2539034
>>39010
Ms sql не поддерживает размещение дб в памяти, а в sqlite не поддерживается некоторые типы данных из ms sql
866 2539043
>>39015
>>39020
Я ожидаю отдельного сервиса для get, delete, put. Хорошо сделаный paging (для этого нужно понимать сваггер). Отдельный environments. Использование pascalCase (или любой другой). Адекватное название методов (не find() или send()). В конце всё это должно быть запушенно с нормальным названием коммита. И ещё много вещей, на которые я обращаю внимания.
Обо всём выше я кандидату не говорю, он сам должен это знать. Я думаю, что ты бы смог решить поставленную задачу, но не сделал бы это на том уровне о котором я пишу. Знать язык программирования это в лучшем случае полдела, а умение им грамотно пользоваться это уже другой уровень.
867 2539047
>>38981
Зачем сортировать на фронте?
868 2539051
>>39047
Чтобы проверить как кандидат это сделает, каким путём пойдёт. При собеседовании на фуллстака сортировка и филтрование доллжны быть на бэке.
869 2539155
>>39043

>Использование pascalCase


А если всё сделать в джава-стиле?
870 2539599
Поговаривают, что в дотнет 8 снова кардинально переделают ASP.NET и он будет больше похож на Spring. Вместо папок с контроллерами, мы будем просто развешивать аннотации по коду, где нам надо что-то обработать.
871 2539603
>>39599
Но ведь и сейчас так работает. Аннотации называются атрибутами, и усё.
872 2539612
>>39599
Какой-то фейковый прогресс, если честно, судя по описанию. Я ещё в прошлом году это говорил, когда тут сороки-белобоки носились с 5 а потом 6 дотнетом.
873 2539618
>>39612
Дак проблема, что они опять собираются всё переделать. Как потом это всё учить? Книги-то выходят редко и на написание и перевод требуется 2-3 года.
874 2539620
>>39618
Просто возьми книги 20-30-ти летней давности и окажется, что их новое - это тщательно затёртое старое.
875 2539642
>>39620
20-30 лет назад все писали классненькие десктопные приложения, а не всякие веб-сервисы. Микрософты даже первый фреймворк для веба сделали как аналог винформам.

А вообще в том же Спринге есть просто класс конфигураций, где создаются всякие контексты, бины и прочая шляпа. А всё остальное можно писать как хочется, только аннотации развешивай. Полная свобода творчества.
А вот в АСП.НЕТ всё прибито гвоздями к полу. Вот тебе одна папка и туда пихай все контроллеры. Пофиг, что тебе надо 100500 таких контроллеров написать, всё равно пихай в одну папку. Про вьюхи и модели я вообще молчу, там полная помойка получается.
876 2539663
>>39642

> десктопные приложения, а не всякие веб-сервисы


Платформа не важна. Важны паттерны. Поняв паттерны, ты будешь их реализовывать на любой платформе в средах любой степени разнородности, ваще на изичах, не испытывая серьёзных проблем, а мелкие проблемы решая мимоходом. То есть, иначе говоря, зная, твёрдо зная, какими паттернами ты реализуешь свой проект, ты не испытывая неудобств, легко переведешь его с десктопа на веб, с веба на десктоп, с моносервера на кластер, и т.д. и т.п. и др.
877 2539680
>>39663
Почему тогда Спринг легко учится, хоть там и всякая параша с кофигурацией бинов в xml, а такой весь модный современный ASP.NET Core вообще не учится. На тебя вываливают какую-то словесную мешанину: веббилдер, хостбилдер, кофигуре - не кофигуре, билд - не билд. Да откуда я должен знать, что они там имеют ввиду!?
В теории рассуждают про какое-то промежуточное ПО, а где в коде слова middleware? Их просто нет. У них даже в наименовании ничего не клеится.
878 2539685
>>15951 (OP)
В ссылках упоминается пик-1 книга. Стоит ли начинать с неё? Смущает тот факт, что там очень старая версия шарпа. Или лучше сразу начать с пик-2?
879 2539688
>>39685
Пик-2 тоже устарела. Сейчас уже C# 11 и .NET 7.
880 2539739
https://spb.hh.ru/vacancy/73736562

>Полный рабочий день на территории работодателя


>Офис недалеко от метро


>(17 минут)


>можно добраться на трамвае


>До нас 3 остановки


>35 000 руб. на руки



аххаха блядь
как сосется, шарпомухи?
881 2539741
>>39618
Я за последние полтора года вообще ни одной книги не прочитал и как-то умудрился перейти с Core2.1 на .Net6
882 2539743
>>39642

>Пофиг, что тебе надо 100500 таких контроллеров написать, всё равно пихай в одну папку


Что за хуйню ты несешь? Какую еще одну папку?
883 2539745
>>39739
Это вкатунская вакансия. Можно считать это оплачиваемой стажировкой с которой через полгода спокойно можно на сотыгу свалить и дальше развиваться. Для вкатунцов самое то. На джаве на подобную вакансию человек 200 налетает в первые часы, а тут человек 15...20 наберется.
884 2539759
>>39743
Controllers
885 2539761
>>39741
А изначально учился по книжке Фримана?
886 2539762
>>39745

>вкатунская вакансия.


>Можно считать это оплачиваемой стажировкой



Опыт программирования с использованием языка С# не менее 0,5 лет;
887 2539765
>>39745
Если открыть хх, то увидишь, что резюме на шарп столько же, сколько и на джаву. А вот вакансий на шарп раза в 2 меньше.
Причём шарп лезут в основном всякие птушники, потому что там модно преподавать шарп, а на джаве как правило выпускники универов.
888 2539858
Как вы учили промежуточное ПО?
889 2539868
>>39762
Так это от первой строчки кода отсчёт. Опыт проганья, а не ком. разработки, так что вкатунская вакуха, потерпеть можно. Особенно если каждый день ездить на трамвае чижик.
890 2539869
>>39858
Зубрил по книжкам на 1000 страниц.
891 2539873
>>39868
У меня тогда 20 лет опыта программирования
892 2539902
Я правильно понимаю, что в идеале апи контроллер должен состоять из одной строчки
return Ok(await _service.DoSomething(request)); ?
893 2539917
>>39902

> апи контроллер должен


Метод апи контроллера, фикс
894 2539920
>>39902
Да.
895 2540205
>>39761
Нет. По справочнику Албахари и МСДН.
896 2540206
>>39762
В нормальных вакансиях обычно указывают не "опыт программирования", а "опыт коммерческой разработки", а это дохуя разные вещи.
897 2540209
>>39759
А я тебя еще раз спрошу - что за хуйню ты несешь?
Ты можешь спокойно создавать контроллеры где ты захочешь, хоть в корне проекта, хоть в каталоге Services. То что класс является контроллером определяется в первую очередь не тем где он лежит в проекте, а тем от чего он наследуется и какой у него внутри функционал.
Каталог Controllers, не более чем конвенция. Т.к. залезая в незнакомый проект, я ожидаю что контроллеры будут все-таки собраны в одном месте, а не размазаны по всему дереву проекта. Т.к. по факту это точка входа в него.
Хотя очень хорошей практикой все-таки будет хоть как-то группировать их по своим каталогам в пределах того же Controllers.
898 2540219
>>39765
Не буду спорить, т.к. без реальных цифр это тупое дело. Но вроде в МВП треде был чел, который собирал помесячную статистику, там цифры были как раз наоборот.
Скажу только, что количество выходцев из училищ/универов величина более-менее постоянная. А вот за счет "выпускников" говнокурсов, java по количеству явно перевешивает, т.к. во первых всяких курсов по jave намного больше и они популярнее. Во вторых большинство курсов по шарпу ориентированы на геймдев, а их выпускники в принципе бесполезны где-нибудь за пределами разработки игр.

Если совсем грубо обобщить (прямо вот совсем грубо) на уровне вакансий не уровня выше мидл-минус.
Если на Java будет 100 и 200 резюме, то все эти кандидаты будут конкурировать друг с другом за все эти вакансии. В шарпе же в это время будет 50 вакансий и 100 резюме. Но из них будет вакансий 10 геймдева и на них будет 40 кандидатов, еще вакансий 20 легаси и на него будет еще 30 кандидатов зависнувших на .netFramework и на оставшиеся 20 вакансий энтерпрайза, останется 30 человек, что уже не настолько безнадежно как в Java.
899 2540224
>>39902

>что в идеале апи


Скорее в норме.
>>39902

>return Ok(await _service.DoSomething(request)); ?


Это если у тебя "always return 200", если же по классике, то что-нибудь вроде:
return CreateResponse(await _service.DoSomething(request));
где CreateResponse, простой базовый метод возвращающий Ок или Fail, в зависимости от бизнес логики.
900 2540239
>>40219
мда. разучились люди сами учиться. курсы им подавай, книги им подавай

>в принципе бесполезны где-нибудь за пределами разработки игр.


специалисты по левой ноздре (с)
901 2540275
>>40239

>специалисты по левой ноздре (с)


Ну, на самом деле, геймдев на любом языке будет сильно отличаться от другой деятельности.
902 2540281
>>40224

>Это если у тебя "always return 200", если же по классике, то что-нибудь вроде:


>return CreateResponse(await _service.DoSomething(request));


>где CreateResponse, простой базовый метод возвращающий Ок или Fail, в зависимости от бизнес логики.


Так для этого же есть промежуточное по, которое будет перехватывать эксепшоны и формировать нужный ответ.
903 2540307
>>40281

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


Мидлварь предназначен для обработки технических или общих фейлов. Ты же не будешь для каждого бизнес процесса свой отдельный мидлварь писать.
904 2540315
>>40239
Как ты сам выучишь без курсов и книг?
Некоторые, кто давно вкатился, ещё находятся при ошибочном мнении, что они сами всему научились, хотя раньше на работу брали по факту окончания универа или технаря, а там их уже натаскивали опытные коллеги.
У меня однокурсник именно так и вкатился в 2008, хотя языка даже не знал. Тогда было модно С++ учить, а на всякие джавы и сишарпы мы смотрели свысока.
905 2540331
>>40315
Насчёт курсов не знаю, но книги точно нужны. Я благодаря книгам в сосничестве освоил C++. Потом опять же по книгам освоил C#, WPF, ASP.net
image.png16 Кб, 643x139
906 2540340
Анончик, у меня перфекционизм зашкаливает - как убрать эти предупреждения?

У меня ProgramData.UserConfig 100% валиден - там много выше это проверяется сто раз.
907 2540341
>>40331

>но книги точно нужны


не нужны. metanit, а еще лучше документация от microsoft хорошо описаны. Ну это если про шарп
908 2540352
>>40340
Удалить круглые скобки и добавить 101-ю проверку.
909 2540355
>>40341
Метанит пишет один чел. У него нет даже напарника, который бы правил опечатки и косяки. А любая книга проходит рецензирование и этим занимаются как правило серьёзные челы уровня профессоров в области компьютерных наук. Касательно сишарпа, авторы книг как правило имеют сертификаты от микрософт, что они реально специалисты в этой области.
Кроме всего прочего, книга у тебя будет всегда на руках, а метанит может в любой момент закрыться и твой вкат накроется медным тазом.
910 2540359
>>40224

> где CreateResponse, простой базовый метод возвращающий Ок или Fail, в зависимости от бизнес логики.


Можно поподробнее? У меня например бизнес логика просто кидает исключение при неверных вводных данных или ещё каких-либо проблемах. Как мне это исключение обрабатывать?
911 2540382
>>40340

ProgramData.UserConfig!.UserRole == UserRole.admin
912 2540385
Анонимусы, есть ли в HttpClient какой-то вариант реализовать курловский --resolve? Очень надо...
913 2540529
А где в студии отключить компактный режим или как он там называется, когда прячутся неймспейсы?
914 2540607
>>40359

>У меня например бизнес логика просто кидает исключение при неверных вводных данных или ещё каких-либо проблемах. Как мне это исключение обрабатывать?


Странный вопрос. Ты когда исключение выбрасываешь, ты же не в воздух это делаешь. Ты должен всегда подразумевать где оно у тебя отлавливается и обрабатывается. Либо там же где ты его выкинул, либо из того слоя который у тебя дергает бизнес логику. Ну либо через мидлварь, но это уже изврат.
915 2540615
А если у пользователя выскочила ошибка, то что она мне даст? У меня нет всей цепочки действий — нужно логирование, но я же не могу им засрать всю программу и постоянно собирать логи.

Какие для этого есть инструкции?
916 2540617
>>40607

> Ты должен всегда подразумевать где оно у тебя отлавливается и обрабатывается.


Ну так я планировал его обрабатывать внутри контроллера, но это вроде как плохая практика, контроллер же должен быть пустым.
917 2540639
>>40617
Вот к слову пример удаления. Нормально реализовано?
918 2540643
>>40639
Как тебе удалось ломануть райдер?
919 2540644
>>40643
Ну рутрекере в комментариях под раздачей есть инструкция.
920 2540649
>>40644
Там на старую версию, которая не поддерживает дотнет 7
921 2540789
>>40639

>Нормально реализовано?


Нет. Как минимум, потому ты пробрасываешь конретный эксепшен, а ловишь общий.
Алсо, всегда ставь скобки в If-ах, не будь мудаком.
изображение.png50 Кб, 844x511
922 2540834
>>40789

> Нет. Как минимум, потому ты пробрасываешь конретный эксепшен, а ловишь общий.


Так лучше?
924 2541262
>>40834
Во первых - when используется не так. В том смысле, что тут он вообще не нужен и достаточно простого Catch(ArgumentOutOfrangeException ex). То что ты написал работать будет, но выглядит максимально по индусски.
Во вторых попробуй напиши в одном контроллере несколько похожих методов и ты сразу увидишь, что в каждом из них у тебя будет повторяющийся код из одинаковых цепочек catch-ей. И куда-то в одно место ты их не вынесешь, что сильно ломает DRY принцип.
Если бы ты возвращал стандартизированный ResultObject, тогда тебе всю его обработку и распил на IActionResult, можно было бы вынести в отдельный экстеншен единый для всех контроллеров. И тогда все методы в них действительно состояли бы из одной строки.
925 2541263
>>40834
400 выдаст валидатор входных данных и метод контроллера будет пуст от этого
500 выдаст мидлваря если до нее долетит какое то исключение - чего так то быть не должно.
как и 404 вообще роутинг выдаст
926 2541269
>>40943
Вот очень хорошее видео. Чел очень хорошо рассказывает, то что я пытался криво в своих ответах рассказать. Подробно объясняет как и почему не нужно кидать исключения и как от этого уйти. И даже небольшой бенчмарк показывает.

Особенно понравилась мысль, что использование мидлвари для отлова эксепшенов в целях реализации контракта - подход сродни использованию goto в своем коде.

Вкатунцам на заметку, если сможете разобраться, реализовать подобное в сових петах, которые прикладываете к резюме и объяснить на собесах почему и зачем так сделали, то на место джуна влетите со свистом.
927 2541280
>>39739

>>35 000 руб. на руки


Ты долбоеб?
Там

>>•Оклад на постоянной основе 35.000-40.000 рублей


>>Оклад



Это значит что зп - 70к-80к.
928 2541283
>>41280
Зп = оклад. Остальное держится на честном слове и срезается до нуля при любых колебаниях экономики.
929 2541291
>>41283
двачую этого реалиста
либо срезают под поводами, либо "ну мы же тебе платим, значит больше можем требовать"
930 2541338
>>41283

> и срезается


Или не срезается. При колебаниях тебе и оклад могут порезать.

Да, сама схема оклад+премия бесящая (особенно когда ею оперируют в ростатах нарисовывая несуществующие средние зарплаты).
Но тем не менее это не значит что там платят только 30к.
Ну а то что это галера где за любой чих ползарплаты отбирают... Так а что еще ждет начинающего масленка? Галера и ждет, а дальше он сам должен выбиваться в сеньоры.

Плюс там может быть не только премия, а еще и надбавки к окладу - вот их уже не могут срезать. Например у меня в зп 30% от оклада - северные и стаж.
931 2541385
>>41338

>Да, сама схема оклад+премия бесящая (особенно когда ею оперируют в ростатах нарисовывая несуществующие средние зарплаты).


За один месяц выдали 100.000 рублей (50 премия + 50 оклад), во второй только оклад 50 тысяч, средняя зарплата за два месяца -75 тысяч. А по твоей логике должна быть 50?
932 2541648
>>40943
Если классические исключения настолько ресурснозатратны, то почему голованг ругают за их реализацию в сущности как в данном видео?
933 2541736
>>41648
Я х.з. гоферы вроде тащатся от реализации.
Сам я не го пробовал, но из того, что об этом читал могу назвать такие недостатки (конечно это исключительно мое личное мнение):
1) Выглядит несколько прибитым гвоздями. В шарпе ты можешь пользоваться исключениями, можешь не пользоваться, можешь смешать все вместе. Тут же создатели языка включили вахтеров и установили единый способ.
2) Такое ощущение, что там весь стектрейс и контекст к проебывается к херам по дефолту. Думаю лет через 5...10 те кто будет разгребать, то что нынешние говнокодеры наклепают, будут крайне опечалены и разозлены этим фактом.
934 2541894
>>41736
Просто голанг разрабатывали люди, которым нравится старый сишный стиль программирования. Тебе не надо изучать тонны фреймворков и библиотек, а ты сам выстраиваешь логику программы как хочешь.
Я бы вот лучше голанг пошёл изучать, чем долбиться в этот асп.нет. Но туда не берут вкатунов, а только опытных челов.
935 2542407
>>41894

>Просто голанг разрабатывали люди, которым нравится старый сишный стиль программирования.


Ну т.е. любителями велосипедов.

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


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

Ну и так, к сведению, C# тоже не хуем с горы создавался.

Андерс Хейлсберг (род. 2 декабря 1960) — датский инженер-программист, создатель Turbo Pascal, Delphi, C# и TypeScript.
Т.е. чел как бы шарящий за все эти вещи.

Ну и при желании ты на шарпе также можешь навелосипедить что угодно. От высочайших ООП абстракций, до адской БДСМ байтоебли. Его плюс как раз в оптимальном соотношении удобство/возможности

>>41894

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


Вкатунов сейчас никуда не берут. Это сродни выйгрышу в лотерею. А год...два назад и в гоферы можно было спокойно с улицы залететь.
937 2542480
Как скопировать один List<object> в другой чтобы это была именно копия, а не список ссылок на одно и тоже?
938 2542493
>>42439
Вот такие смузихлебы-вкатунщики сейчас и визжат что айти умирае... И я очень рад что это айти-гнилье наконец-то начали гнать из фанга (а значит скоро мода дойдет и до остальных)

Видите-ли он не хочет работать со старым говном. А нахуя он тогда нужен?

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

Я например так работал - переделывал софт с vb на шарп - сначала накидал фронтэнд и связал код со старым кодом (были красивые вызовы vb кода из шарпа) - чтобы оно сразу все работало. Теперь постепенно убираю эти связи переписывая бэкэнд в критичных местах. При этом оно все работает прямо сейчас в промышленности. Начальнику не нужно ждать десять лет - когда там новый софт заработает, он уже видит новенький красивый гуи и его хотелки появляются сразу.
Понятно что если в этот момент понадобится новый программист - но будет требоваться знание и vb и шарпа. Но это на время переходного периода, в конце все связи с vb должны быть уничтожены.
939 2542511
>>42480
Гугли ICloneable, Поверхностное копирование, Глубокое копирование. Реализуешь то, что подходит под твою ситуацию.
Перебираешь список, делаешь полный клон каждого объекта и помещаешь его в новый список.
Придется как минимум разобраться в вопросе копирования содержимого объекта в другой объект. Простого и готового способа тут нет.
940 2542523
>>42407

>создатель Turbo Pascal, Delphi


Вот теперь и приходится использовать этот уродливый PascalCase, вместо няшного camelCase.
941 2542568
Как создать приложение на дотнет 5, если сейчас доступны только 3.1, 6 и 7?
942 2542585
>>42523
Челик, ты же в курсе, что PascalCase, это и есть CamelCase, да? А то, на что ты так неистово дрочишь, это его разновидность - loweCamelCase.
И в шарпе, так же как в Java, Go и VB, используются они оба.
vs-export.gif111 Кб, 878x571
943 2542590
>>42568
Вот так.
944 2542593
>>40943
Только подобный подход очень неудобен при обмазывании linq.
945 2542599
Вчера читал про ссылочные типы не допускающие null и офигевал с того, какого говна навернули микрософты. Ладно бы они как-то решили проблему, но нет, они добавили тонны кала, но ссылочные типы не допускающие null по-прежнему могут содержать null и программа может вылететь с NullReferenceException.
Почему в Java спокойно используют ссылочные типы допускающие null, а вот микрософтам этот null чем-то мешает?
946 2542600
>>42593
Почему? Тащем-та линк это просто про перебор коллекций с данными, какое отношение это имеет к прокидыванию результата между слоями?
Ну и даже если у тебя это как-то завязано, то linq это по большому счету расширения, на которые ты можешь накинуть свою обертку и точно так же их использовать, это будет даже еще удобнее.
947 2542601
>>42600

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


Потому что внутри селекта нельзя просто написать return Result, нужно в любом случае перебрать все значения, затем ещё раз их перебрать чтобы проверить была ли ошибка, и только тогда вернуть result из метода.
948 2542602
>>42601
Ну и да, исключение же можно спокойно кинуть хоть из десятка вложенных селектов, за что собственно и любимы.
949 2542659
>>42601
Пример приведи. Чет я плохо понимаю, какие у тебя могут быть ошибки в селекте, который по факту просто проекция данных из одной модели в модель.
950 2542685
>>42659
У меня массив id, в селекте я получаю соответствующие сущности из бд.
951 2542723
>>42585

> loweCamelCase


Как будто у печатающего залипает шифт.
мимо
952 2542731
>>42685
Еще раз. Select это проекция уже выбранных значений.
953 2542939
Петушарп гораздо хуже, чем жаба.
955 2543217
посоны я тут короче немного пошуршал и рассортировал проект по папкам шоб аккуратно было и красиво, но неймспейсы старые остались и там чад кутежа во мгле ада
есть ли способ в студии быстро привести их в соответствие со структурой во всем проекте?
956 2543411
>>42599

>Почему в Java спокойно используют ссылочные типы допускающие null


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

>а вот микрософтам этот null чем-то мешает?


гугли "ошибка на миллиард долларов" - там пояснят

С нуллабле можно писать и без NRE конечно, просто это сложнее био нужно самому следить. вот для этого и делается "пусть компилятор где может сам следит". Так что языки где СРАЗУ есть четкое разделение на нулл типы и нет - просто больше защищают от ошибок вида "не уследил"

И не нужно говорить про "следи лучше".
Если код пишешь не ты один, то нужны жесткие контракты, а это выливается в итоге в использование всяких NullGuard и анализаторы, что по факту то же самое
957 2543412
>>43217
есть
958 2543426
>>42939
жава это кофе
шарп это кофе с сахаром

какой кофе лучше? ну ты понял.
959 2543438
>>43412
как?
960 2543450
>>43438
resharper - пкм на нужном пункте в дереве проекта и Refactor - Adjust Namespaces
студия 22 - пкм там же - Sync Namespaces

что там раньше не знаю. я всегда жил на решарпере.
.png353 Кб, 600x343
961 2543453
>>43426
Лучше лавандовый раф с корицей на миндальном молоке.
962 2543454
>>43426
А если я пью чаёк без сахара?
963 2543456
>>43453
Ты про Nemerle? увы это для реальных ценителей и сложно найти

>>43454
значит ты пьешь чаек без сахара. а значит к кофе тебя вообще допускать нельзя - ты его в глаз зальешь с такой внимательностью.
964 2543457
>>43450
блин у меня 19 студия..
965 2543459
>>43456

> Nemerle


Или Elixir.
966 2543467
>>43456
Если бы на джаве была бесплатная полнофункциональная ИДЕ, то все бы учили только джаву. Сишарп держится только за счёт бесплатной вижлы.
967 2543472
>>43467
На шарпе легко писать код хоть в блокноте, не надо запоминать громоздкие пакеты и всякие LocalContainerEntityManagerFactoryBean. Это в жабе без иде хуй что напишешь.
968 2543474
>>43467
а куда IDE делись? я не жавист но помню там была eclipse, NetBeans, та же андроид студия фри, хоть писать на ней не под андроид геморнее.
969 2543480
>>43474
Сейчас джавист - это IDEA-разработчик. Все курсы и книги пишут для идеи, если у тебя нет идеи, то ничему не научишься.
970 2543486
>>43480
ох уж эти "специалисты по левой ноздре". (с)
если чел не может научиться без книг и особой IDE - он говно, а не программист.
971 2543490
>>43486
Значит, все джависты - говно, а не программисты.
972 2543502
>>43490
Но джава как язык лучше сишарпа
973 2543506
>>43502
Как экосистема - лучше. Как язык - намного хуже.
974 2543509
>>43506
Наоборот, язык - простой, легкий в обучении, а экосистема - сложная и неудобная.
975 2543518
>>43509

> простой, легкий в обучении


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

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

И тут у жавый полная жопень. Например, вместо удобной async/await, что ЛОЛ будет уже небось и в синклер бейские даже, но не в жаве - в жаве нужно городить огородище.
976 2543519
>>43509

> простой, легкий в обучении


То есть примитивный. Понятное дело, что язык легко выучить, если в нём нихуя нет и всё делается через библиотечные костыли.
977 2543523
>>43502
слух, жавист, если бы ты сюда с котлином пришел, то у тебя были бы аргументы
но с жавой....это болезнь.
978 2543670
>>43519

>ряяяяяяяяяяяяяя!!!!

979 2543672
>>43426
Жаба - коже, петушарп - кофе с говном.

Какой выберешь ты?
980 2543676
>>43672
Я выберу послать жависта с его найтупейшим сравнением в его родной тред и там нести бред.
981 2543703
>>43518
Но как раз в джаве удобно писать и ещё удобней читать код. Не нужно держать в голове тонны сахарных конструкций. Все прописано явно.
Синклер Бейсик же не был даже структурированным языком. Простой цикл типа while там надо было расписывать в виде IF-GOTO. Многочисленные переходы превращали всё в спагетти-код.
Помню как-то в журнале "Наука и жизнь" в конце 1980-х публиковали программы на Бейсике, но с ходу разобрать код было невозможно. Приходилось расписывать эти макаронины на отдельной бумажке в виде блок-схем.
В сишарпе тоже самое, приходится весь сахар выписывать на бумажку и смотреть во что разворачивается та или иная закорючка. И боюсь, что в ноябре микрософты ещё накинут нам сахарку, что все офигеют. Какую-нибудь конструкцию языка сломают так, что придётся по новой переучиваться.
982 2543708
>>43519
Джава - это чистый ООП язык. Если ты соблюдаешь ООП-стиль, то проблем не возникает. Проблемы как раз в сишарпе, который пытается добавлять сахарок, чтобы продолжали писать в процедурном стиле. Сишарп позволяет много вольностей в плане размещения классов по файлам, самих файлов по папкам, и порой малоопытный программист клепает лютый говнокод. В джаве же изначально приняты стандарты, которые заставляют писать упорядоченный код.
983 2543728
>>43703

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


Чувак мы поняли уже, что джависты тупые и без бумажки код разобрать не могут. Съеби уже.
Сарказм, если что. Не считаю джавистов тупыми, кроме конкретно вот этого.
984 2543748
>>43728
Легкость и простота джавы не говорит о том, что на ней пишут тупые. Напротив умный человек будет стремиться к простым и элегантным решениям.
Разве можно назвать код на сишарпе таким? Нет, там в одной строчке может быть с десяток всяких знаком вопросов, восклицательных знаков и прочих закорючек. Такой код сложно читать и воспринимать. Код на джаве же порой читается также легко как текст на английском (для тех, кто понимает английский).
985 2543792
>>43703

>Но как раз в джаве удобно писать и ещё удобней читать код


ага ага. правда вместо 2 строк получается текста на 3 страницы, но то такое.
>>43748

>Код на джаве же порой читается также легко как текст на английском


только читать приходится много. И ничего хорошего в этом нет. Аж вообще ничего. А в случае с многопотоком еще и держать большой контекст в голове, ведь сложное выраженное убогими словами как бы добавляет сложности.
986 2543820
>>43792
Ты как программист всё равно должен вникать во все тонкости. Разница лишь в том, что на джаве ты сам выстраиваешь логику приложения, а сишарпе вынужден подстраиваться под микрософт. Если они завтра выкатят какое-нибудь говнецо, то придётся им пользоваться, потому что выбора нет. При этом ещё и вникать в кишочки этого говнеца, полностью в нём вымазавшись.
987 2543860
>>43820
Почему ты ещё не программируешь на ассемблере с такой логикой?
988 2543862
>>43860
Программирую, но программисты на ассемблере не нужны.
989 2543942
Сейчас работаю на десктопе, через ~год (если айти до конца не здохнет) хочу перекатиться в веб. Как лучше сделать, чтобы увеличить шансы на вкат + чтобы было по-сытнее? Рассматриваю 2 пути - ASP.NET + js + react (не хотел бы связываться с динамикодрисней, можно ts учить без js? нужен ли хтмл и css? какой-то другой фрейм для фронта мб?) - фуллстак вариант, или же ASP.NET + Go - чисто бэкенд варик, с мб полностью переходом на го - платят вроде больше. Что посоветуйте, аноны?
990 2543960
>>43942
Java + Spring
991 2543971
>>43942
Лучше смотри в сторону .NET с модными молодежными микросервисами, без ГОвна только. Я сам декстоп винФормс + чистый бэкенд, но монолиты. Перекатиться с миддла почти 4 лвл на миддл/+ на чистого бэкендера с стейт-оф-арт стеком пока не получается.
992 2543976
>>43960
Пошёл нахуй.
993 2544002
>>43960
Фу, я учился на это. Не хочу обратно.
994 2544008
>>43971
Ну в сторону модных молодежных сервисов и смотрю, только как в них с десктопа залететь - вопрос. В вебе я сделаю выпуки на уровне вкатунцов курсовых.
995 2544029
>>43820
Какой забористый бред ты несешь. Жавист, уходи. Ну просто траллишь же, что допустимо, но хоть бы не делал это так уныло.

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


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

> то придётся им пользоваться


да прям таки. неудачные концепции отмирают. примитивная концепция new Thread()/BeginXXX в шарпе давно заменилась на удачную концепцию TPL/async+await и первое используют имхо только в школах школьники.
996 2544826
Если я хочу добавить для веб апи веб интерфейс, как лучше это сделать? Добавить страницу разор непосредственно в проект, или создать отдельный проект и вызывать апи из него?
image.png10 Кб, 394x298
997 2544919
Анон, почему Biba не реализует Abob'у?
998 2544937
>>44919
Наведи мышкой и узнаешь.
999 2544947
>>44937
Объясни мне, анон, без троллинга, почему Foo(IAboba aboba) не равно Foo(T aboba) если вместо T вызывающая сторона может поместить только IAboba?
1000 2544953
>>44919
Потому что сишарп не поддерживает ковариантность и контравариантность
1001 2545064
>>44947
Потому что интерфейс требует реализации конкретной функции, и ему похуй на твои ограничения.
1002 2545139
>>45064
Ну так и скажите что пацаны не вывезли в таблице вызовов поэтому НИНУЖНО (ну или это я шиз и такого кейса никогда не было)

Если у какой-то функции в компайлтайме с применением ограничений сигнатура соответствует функции интерфейса - это одна и таже функция, и интерфейс должен считаться реализованным, хули нет то?

Если proposal на гитхабе накидать, индусы сделают или обоссут?
14869921455072.jpg319 Кб, 1266x1280
1003 2545141
Есть исходный лист, мне нужно запретить вмешиваться в него. Сто делает метод .AsReadOnly? Он делает дубликат коллекции или обходится малой кровью, выставляя какой нибудь флаг?

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

С одной стороны неизвестно кто и каким образом будет обращаться с твоим списком и логично делать копию на стадии формирования списка. С другой стороны метод обрабатывающий список как бы становится небезопасным т.к. шатает список, а пользователь может этого и не просил. Если будут двое копировать список, то дюже затратно.
1004 2545150
>>45141
А, нашел. Это типа оболочка поверх существующего листа.
.png9 Кб, 349x161
1005 2545348
А вы знали, что в щарпе уже 7 модификаторов доступа, а не 6?
1006 2545397
>>45139
ну ты создаешь open generic. Чтобы этой твой класс смог реализовывать интерфейс, компилятор должен сразу создать closed generic версию класса. И очевидно это не было сделано потому что "хз зачем это нужно"
1007 2545399
>>45348
пока не поддерживается решарпером - считай что такого нету
1008 2545441
>>45348
И? Опять заведешь шарманку, что "сложна - низапомнить"?
1009 2545442
>>45441
Ты меня с кем-то путаешь. Я не вижу ничего сложного в модификаторах доступа.
1010 2545448
>>45442
С модификаторами доступа есть проблема - их маловато
1011 2545455
>>45448
Как же хочется кастомные модификаторы доступа...
1012 2545457
>>45455
а еще методы без классов... и много другого
но увы шарп это жаваклон со всеми его детскими болячками.
1013 2545458
>>45442
Сорян, просто чуть выше был тип который жаловался на неимоверную сложность запоминания модификаторов в шарпе.
1014 2545523
>>45348
И нафига он нужен? Почему в джаве прекрасно живут в 4 модификаторами доступа, а в сишарпе их всегда мало?
1015 2545546
>>45523
некоторые и с одной ногой нормально живут.
1016 2545547
>>45546
А некоторые себе третью пришивают
1017 2545579
>>45547
Ну, не знаю, как насчет ноги, но от третьей руки я бы не отказался.
1018 2545580
>>45523

>И нафига он нужен?


В основном, для кодогенераторов.
1019 2545734
>>45523
В крестах вообще 3 и всем хватает!
1020 2545737
>>43676
Че так рвонкьнул то?
изображение.png13 Кб, 543x158
1021 2545748
Почему тру?
1022 2545763
>>45748
Потому что петушарп.
1023 2545784
>>45748
Оптимизация компилятора
1024 2545816
>>45523
потому что интернирование строк
1025 2545889
Почему говорят о модели в рамках MVC как об одной сущности? Но ведь по факту там их две: POJO-объекты, которые определяют тип модели, и репозиторий, который определяет где это всё хранится. Почему тогда не выделить в MVC четвертый компонент R, чтобы было понятно всем?
1026 2545905
>>45889
Репозиторий ты моделью не считаешь?
1027 2545938
>>45905
Нет, это хранилище
1028 2545951
>>45938
Хранилище это база данных. Репозиторий - это слой доступа к данным. Его в принципе может и не быть.
1029 2545968
>>45951
Вы как хотите, а я буду использовать паттерн MVCR
1030 2545979
>>45968
А чо ты только M развернул и то не полностью? Разворачивай V и C тоже, получишь аббревиатуру из 20 букв.
1031 2545998
Итт есть блейзеро-зумеры? В каком же я ахуе какой я долбаёб и повелся на новомодные технологии какое майки выслали говно - на данный момент у меня полностью пизданулась отладка проекта. Суть: зашёл в свой блейзоро проект спустя несколько месяцев (допиливал на .net framework легаси говно) попутно обновляя студию. Сейчас у меня 17.4.3 студия - блейзоропроект при запуске висит в вечном лоад стейте (да, веб проект в дебаг среде просто перестал загружаться) и выдает какую-то одну из ебанутых ошибок в консоли браузера, сейчас например "WebSocket connection to 'wss://localhost:port/projectname/' failed. Error in connection establishment: net::ERR_CERT_DATE_INVALID. То есть сейчас у меня по сути только последний паблиш релиз живой.
У меня и раньше отапливался websocket со студией, но по крайней мере с ним отапливался только хот релоад и отладка на стороне клиента (что тоже конечно хуево), а сейчас совсем нихуя не запускается. Гугление навскидку пока нихуя не дало.
1032 2546025
>>45998
Потому что микрософты в каждой новой версии всё ломают. Я про это постоянно говорю, но мне никто не верит.
1033 2546050
Завтра первый собес, стек .Net Core, EF, WCF, Azure, Docker.
Вообще не ебу какие вопросы будут и что подучить чтобы не полностью обосраться.
1034 2546058
>>46050
Выучить модификаторы доступа. Их любят спрашивать, потому что на них легко завалить.
1035 2546060
>>46050
На вскидку:
- отличие doble, int, decimal
- что возвращает метод async
- отличие абстрактного класса от интерфейса
- объясни модификаторы доступа в c#
- отличие unit тестирования от integration
Можешь посмотреть ещё c# design patterns, бывает, что спрашивают.
1036 2546205
>>46050
Могут ещё на знание сахарка пример подлый подсунуть, чтобы проверить не с джавы ли ты свичнулся.
string checkNull(string? maybeNull)
{
return maybeNull == null ? null : "";
}
1037 2546250
>>46205
и в чем прикол?
1038 2546263
А возможно сделать дупликат экземпляра класса?
1039 2546290
>>46250
А то, что вся эта мишура с защитой ссылочных типов от null не работает.
1040 2546296
>>46290
А, типа возвращаемое значение string а не string? и все равно вернет null метод если тру?
1041 2546300
>>46263
Есть такой интерфейс ICloneable

И какой толк от него, если кго функция Clone требует возврата Object, а не нужного мне класса?
1042 2546323
А какую книгу читать по Entity Framework?
1043 2546526
А что это за чудо такое KeyStates? Оно, к примеру, есть в эвенте DragDrop.
Если нажать несколько клавиш и вывести KeyStates в консоль, то пишутся состояния через запятую, типа:
LeftMouseButton, ShiftKey

Перечисления ведь передаются в единственном числе.
1044 2546529
>>46526
Они складываются, а вывод в консоль это как-то детектит.
LeftMouseButton = 1
ShiftKey = 4
На выходе будет 5
1045 2546681
>>45889
хотят и говорят. это логическое деление
V - вид отображающий
M - вся логика которая что то делает
C - отвечает за связь остальных букв и интерактив

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

Ну кроме тех, которые "постойте постойте, кака така модель? я вот моделями называю классы, что репа с ними работает, а тут модель что то не то, вы что угораете?"
1046 2546767
>>34803
Бамп вопросу.
1047 2546771
эвенты или теребоньканье интерфейсов?
1048 2546789
>>46771
котики и велосипеды
1049 2546791
>>46789
Да.
1050 2546794
>>46767
С нуля не реально. Нужно знать какой-нибудь язык типа джавы, тогда за полгода-год реально осилить. Но имей ввиду, что за это время микрософты выпустят новые версии сишарпа и дотнета и придётся снова переучиваться. Следующая версия как раз LTS, а они любят под неё все переворачивать с ног на голову.
1051 2546833
>>46794
То есть на шарп лучше свитчиться, а не входить с нуля?
1052 2546836
>>46833
давно известно что первый язык (программирования или разговорный) выучить сложнее всего. Остальные идут намного легче. И чем больше базового познаешь - тем легче очередной язык.

так что нет понятия "лучше", есть "легче", но шарп тут не причем. Это касается вообще любого языка схожего по парадигме.
1053 2546863
>>46833
Можешь выучиться старый сишарп, а потом свичнутся на новые версии
1054 2546882
>>46833
Он троллит. Речь идет о нюансах, к которым новичку как до Китая раком. Никто основы основ не переворачивает.

Я как новичок, максимум с чем сталкивался — затупом найти нужный шаблон на старте.
1055 2547138
>>46794
С жабы на шарп перешел за 2 недели тестового.
1056 2547150
>>47138
А где взял книги по актуальной версии? Как учил модификатора доступа?
1057 2547461
>>43703
Петушарп в принципе включает многое из жабы, на нём в теории можно писать понятный код. В теории. На практике майки себе в обезьянки заделали тех, кого легче всего заделать - самых тупых кодомакак. И теперь мы имеем, что имеем - живое представление того, как из двух почти идентичных языков можно сделать абсолютно разные экосистемы.
1058 2547665
>>46050
И как?
1059 2547699
>>47150
Не спрашивали всю эту хуйню. Дали тестовое - я его норм сделал не без огрехов и взяли. В процессу всю эту залупу можно выучить. И то, по необходимости.
1060 2547712
>>47699
В чём преимущества и недостатки сишарпа по сравнению с джавой? Что выбрать новичку: джаву или сишарп?
1061 2547824
>>47712
Те не похуй? Нормальные оба языка, мне сисярп больше нравится - приятно на нем писать.
1062 2547828
>>47712
Если сомневаешься, то точно в джаву.
1063 2547829
>>47712
По задачам.
1064 2547894
>>47712
Петушарп позорно использовать. Если по существу - огромное количество говнокода, вечные попытки догнать жабу, уебищная экосистема.
1065 2547896
>>47894
Как там в 2005?
1066 2547898
>>47896
Отлично, петушарп-нахрюка ещё нет.
1067 2547900
>>47898
Как там в 1999?
1068 2547902
>>47900
Отлично, даже самого петушарпа ещё нет.
1069 2547908
>>47902
Зато есть проприетарная жаба, оракл и WebSphere. Эх, были времена...
Capture.JPG33 Кб, 924x425
1070 2548017
хочу найти объект по словарю в иерархии снизу вверх
есть в такой рекурсии подводные камни?
flenov.jpg135 Кб, 1280x720
1071 2548024
>>47894

>Петушарп позорно использовать


Я такое уже неоднократно слышал, но не понимаю почему. Это из-за микрософта?

>уебищная экосистема


Тут ты не прав. Наоборот в дотнете всё доступно из коробки. А вот в джаве наоборот надо выискивать от сторонних разработчиков и применять разной кривости решения.
Сравнить тот же Thymeleaf и Razor. В первом нельзя делать даже вложенные шаблоны, а второй позволяет чуть ли не писать код вперемешку с разметкой, полная свобода.
1072 2548112
Как перейти с ASP.NET Core 5 на ASP.NET Core 6?
1074 2548438
>>48024

>Это из-за микрософта?


Убогий клон жабы с кучей бесполезного говносахара, кучей говнокода в экосистеме от школьников, кучей школьников в комьюнити, кучей анальных палок всем системам, кроме шинды, куча пиздежа, в том числе про кроссплатформенность.
1075 2548479
>>48438
Что ты предлагаешь? Учить джаву?
1076 2548536
>>48479
Че там учить? Синтаксис осознаётся за сутки.
1077 2548557
>>48536
А дальше? Спринг там, кафки всякие?
1078 2548566
>>48557
Не нужно.
1079 2548612
>>48438

>жабы с кучей бесполезного говносахара,


жабист не палится. совсем не палится. привык к МНОГОСЛОВНЫМ, монструозным, многостраничным описаниям ПРОСТЫХ вещей и считает что его говно не пахнет )
1080 2548746
>>48612

>)


Чё так рвонькнул-то?

Пока жабисты ставят @AllArgsConstructor и @Getter, петушарперы пишут убогое {get, set}.
1081 2548796
>>48746
А мне нравится явно писать геттеры-сеттеры. Код как-то красивее выглядит с ними. А сишарпные { get; set } к тому же не гибкие, к ним надо костылить дополнительное поле, которое жрёт ещё память.
1082 2548821
>>48746
Магические атрибуты - убивают жаву, няша.
Это очень плохая хуйня. Негодная.
Чем больше магии, тем хуже. Банально, ты не можешь даже перейти к куску кода, который эту магию делает.
Вот майки - это поняли и потому - из фреймворка потихоньку выпиливаются атрибуты магические. И это - хорошо.
1083 2548843
>>48796
Это такой троллинг тупостью? Шарповые геттеры и сеттеры это просто сахарок для методов huinya getHuinya() и void setHuinya(huinya value). Они настолько же гибкие, как и явные геттеры и сеттеры. Или ты каким-то чудесным образом придумал как хранить состояние объекта, не заводя под них поля внутри класса, которые в эти геттерах и сеттерах вертишь? С производительностью и потреблением памяти там все одинаково. Единственная разница, что со свойствами компилятор за тебя генерирует часть бойлерплейтного кода.

Вот, на покури, как это все в CIL выглядит:
https://sharplab.io/#v2:C4LglgNgPgAgTARgLAChUwMwAJ5YOID2AbgHYFYDeqWNO2YJwWAgpVgOYCmwA3FgM7c+AX1Si0KTDjhYAsgQDGACwCGlarQAOAJzBEVwTlgZMA+ip4aaVuscYssNio5S03HblgC8APnN8bN0EmXyxzbyx9CABXTgDXWnFxdGxcWRUIFQAzAE81KgSaHT0DIxMwixsbKXK8bmYACgBKFzdnQNoYAHYKy0KscTdq1IAWLABleobyqNiWp1b3GnCvSIzY+LckoA

Как можешь заметить, для свойств сгенерировались методы-геттеры (get_A) и методы-сеттеры (set_A). И тела у них такие же, как у написанных ручками.
1084 2548854
хватит кормить жабу уже...
1085 2548863
>>48821

>ряяяяяяяяя!!!!


А по делу есть чё сказать? Например там пруфы что это магические атрибуты и что я должен ручками, как истинный петушарпер, делать конструкторы?
1086 2548866
КРИВОРУКОЕ ШКОЛОКОМЬЮНИТИ ПЕТУШАРПЕРОВ НЕ ЗАВЕЗЛО ЛОМБОК
@
РЯЯЯЯ НИНУЖНА!!! И ЭТА ВАЩЕ МАГИЯ!!!
@
С ЛИЦОМ АНАЛЬНИКА ДУБЛИРУЕШЬ ВСЕ ПОЛЯ В КОНСТРУКТОР
@
@
@
ДОБАВЛЯЕШЬ МАГИЧЕСКОЕ {get, set} К ПОЛЯМ
1087 2548868
>>48863
Ну. Дык это буквально магические атрибуты.
Если ты взглянешь на них, без знания, что это за магия - ты не поймешь как они работают. Ты не можешь перейти и посмотреть что за код выполняется, как и где. Конструкторы - имеют 0 ссылок на вызов. Приватные поля - магическим образом получают геттер-сеттер.
Это магия в чистом виде.
А любая магия в программировании - плохо.
И да. В шарпе - такую же магию ты можешь запилить сам буквально за 10 минут. Просто тебя ссаными тряпками закидают, и именно потому что это магия, которая не решает никаких проблем, но усложняет понимание твоего кода.
1088 2548869
>>48868

>ЯСКОЗАЛ ЭТО МАГИЯ А 100500 БЕСПОЛЕЗНЫХ КОНСТРУКЦИЙ ЯЗЫКА НЕ МАГИЯ ПОНЯЛИ ДА?

1089 2548871
>>48868

>РЯЯЯЯЯЯЯЯЯ ЯСКОЗАЛ ЛУЧШЕ РУЧКАМИ КОНСТРУКТОРЫ ПИСАТЬ ПОТОМУ ЧТО КРИВОРУКОЕ ШКОЛОКОМЬЮНИТИ НЕ СМОГЛО В ЛОМБОК, ЯСКОЗАЛ НЕУДОБНО @ALLARGSCONTRUCTOR ПИСАТЬ, ПОТОМУ ЧТО РЯЯЯЯЯЯЯЯЯЯЯ

1090 2548903
РЯЯЯ АРЯЯЯЯ
1091 2548914
>>48746
вы только посмотрите. мне тут ранее хвалились что IDE сама генерит getVar()/setVar() и это был повод для гордости.

это ж как издеваются над жавистами что заставляют их плодить бойлерплейт код, хотя компилятор мог бы генерить
2022-12-2123-43-00.png13 Кб, 682x138
1092 2548950
Что такое RoutedEvent и откуда его высрать?

Хотел создать событие SelectionChanged для собственного класса, и под это дело решил заюзать дефолтный SelectionChangedEventArgs. Но эта параша требует id класса RoutedEvent (первый параметр).

Простите за французский бейсик, но думаю все ясно.
1093 2548954
Бля, не был 3 дня, а тут какой-то срач с джавистом. Походу няша, который тут отвечал по делу, давно съебался.
1094 2548956
>>48954
Я - отвечаю по делу, если ответ знаю и вопрос нормальный.
1095 2549081
Есть две книжки Фримана по ASP.NET и Entity версии 2.1. Но как потом перейти на 7 версию? Сильно ли это сложно?
1096 2549107
>>49081

>Но как потом перейти на 7 версию?


Учишь по книжкам, делаешь проекты. Когда будешь готов, открываешь официальное руководство от майков по переходу с 2.1 на 7.0 и переводишь свои проекты. В процессе научишься.

>Сильно ли это сложно?


Если учишься по принципу: "скопировал пример из книжки, если собралось/запустилось - то значит я научился, идем дальше", то да. Если же вдумчиво перебираешь кишочки и понимаешь зачем и что нужно, то нет.
1097 2549228
Почему в Visual Studio 2022 надо генерировать миграции через консоль, а не через кнопочки в самой среде? Почему они это не встроили?
1098 2549253
>>49228
Потому что так диды делали и ты будешь.
А если серьезно, потому что dotnet-ef не часть студии.
Если же тебе прямо совсем нужно, то там вроде были расширения для консолефобов, позволяющие мэнеджить миграции из студии.
1099 2549262
>>49253
Дак проще тогда всё делать в VS Code. Там и консоль удобнее и файлы сами сохраняются, да и выглядит модно-молодёжно.
1100 2549413
Авторизация считается бизнес логикой? Или ее можно всю в контроллерах реализовывать?
1101 2549415
>>49228
Можно делать через диспетчер пакетов. Кнопочкой выбираешь нужный проект в решении, вводишь add-migration initial и наслаждаешься.
1102 2549435
>>49262
Делай, я разрешаю.
1103 2549456
>>49228
В райдере встроено
1104 2549478
>>49456
Если бы я был богатый, то купил бы платную идею и учил джаву.
1106 2549554
Суп, подскажите, что сделать с этим?
Пик 1 - проблема
Пик 2 - то, что я установил
Пробовал и в VS 19, результат один
Раньше как-то получалось.
Сейчас: в дизайнере форма есть, но при сборке проекта ошибка
Да, на Шарпе это всё проще, но мне надо на крестах, но не собирается

Извиняюсь, что сру уже в третий тред этим, просто испытываю довольно жёсткий баттхёрт с этого. Помогите, пожалуйста...
Из треда плюсов послали к вам
1107 2549585
В джаве есть восьмеричные литералы, а в сишарпе их нет
1108 2549592
>>49489
Спасибо, я видел эту простыню и она меня сукгнула. Хотя щас еще раз пересмотрел и по факту нужна только часть EventManager.RegisterRoutedEvent.
1109 2549596
>>49585

>а в сишарпе их нет


Пидора ответ, а еще в названии сишарпа нет слова java.
Не пиши сюда.
1110 2549599
>>49585
Ни разу не юзал восьмеричные литералы, даже не знал, что они есть.

мимо джавист
1111 2549600
>>49554
Я не понимаю о чем речь идет. Когда-то открывал исходники на C++ и тоже была муть с версиями VS. В 2015 открывается, а в 2019 и выше — нет.
1112 2549607
>>49600

>Я не понимаю о чем речь идет.


Мне винформу нужно создать, при запуске получается пикрил
Не понимаю, может, установил что-то ненужное и происходит конфликт?
1113 2549610
>>49607
Винформа на C++?
1114 2549614
>>49610
Да. CLR Empty Project (.NET) -> Project -> Add new item - > UI -> Windows Form
1115 2549628
>>49607
Ну я с тапким точно не имел дела. А ты пробовал искать по всему проекту конфликтующие строки?
1116 2549658
>>49554
У тебя там где-то затисались 2 версии одной библиотеки.
Разрули руками какую использовать. Чревато тем, что половина всего отвалится.
1117 2550438
>>49596

>Не пиши сюда


А вы не будете скучать?
1118 2550619
Есть список условных кнопок Buttons
Есть переменная так называемой активной кнопки ActiveButton, где лежит ссылка на одну из кнопок списка Buttons.

Как мне сделать так, чтобы событие нажатия кнопки срабатывало только от ActiveButton?
Есть какое-то лаконичное решение без подписки на всю сотню кнопок списка Buttons? Может через какой-то биндинг.

Вот я видел, что в DataTemplate (xaml) можно привязать событие к каждому итему в списке. Он что, рили подписывается на каждый итем из списка?
1119 2550832
>>50619
Через ling Where (x=>x.ActiveButton == true):
1120 2550926
Дак правда что ли, что в Entity надо генерировать миграции через консоль? Я ни как не могу принять этот факт.
1121 2550947
>>50926
Да, а что такого? Удобный способ.
1122 2550969
>>50947
Не знаю. Мне как-то не комфортно от этого.
1123 2550974
>>50969
dotnet ef migrations add PizdaBilyat
dotnet ef database update
Что не так? Тряска? Неуверенность? Пройдет с опытом.
1124 2551075
Посоны, какой версии asp.net core сейчас стоит изучать? На метаните уже лежит 8 версия, но полно хороших гайдов под .net core 2.2, у того же kudvenkat 120 видосов по нему.
1125 2551080
>>51075
Ниже 3.1 не имеет смысла.
1126 2551082
>>51075
7 версия*
>>51080
Окей, спасибо. Есть годный мануал с примерами, могу и ютуб и серию статей или метанита хватит?
1127 2551103
1128 2551112
>>51080
А разве 3.1 уже не поддерживается? Или оно в основном сейчас всеми все еще юзается?
1129 2551148
>>51112
После 3.1 не было существенных изменений.
1130 2551153
>>51148
Как это не было? Они в 6 убрали Startup.cs и теперь не понятно куда писать код.
1131 2551248
>>51112
На 3.1 успели написать достаточно много и монолитов и микросервисов (которые как раз стало удобно делать начиная с 3.1). Поэтому вероятность даже в следующем году попасть на проект с 3.1 где тебе предстоит что-то доделывать или писать новое - достаточно высока. Плюс никто не даст джуну писать, что-то новое сразу на .net6 или .net7, такие игрушки дяди сеньоры оставляют для себя. Ну а идти работать без опыта куда-то где есть что-то ниже чем 3.1 смысла нет.
1132 2551442
>>51248
Спасибо, что пояснил. Посоветуешь хорошей литературы по этой версии? Кроме 3 часового видоса на ютубе и книжки на 130 страниц мало гуглится
1133 2551445
>>51442
А, еще 10 часовой видос, но это по mvc, хз, юзают ли его до сих пор, мне чет кажется, что сейчас все на webapi + жаваскрипте, еще в некоторых вакансиях даже видел блейзор
1134 2551513
>>51445
mvc от webapi отличается только чем ты пукаешь в ответ на запрос - технология то одна и та же. Бля... Мне видимо самоу придется учить жопаскрипт хэтэмээль и сисисэс... Не хотю...
1135 2551518
>>51513
и как данные на фронт идут - формируются динамически и отправляются в случае разора и прочей обмазанной жабаскрипто дрисни, или же пукаешь жсончиком на развернутый в браузере фронт.
1136 2551589
ПЕРЕКОТ НАХОЙ!!!
>>2551587 (OP)
>>2551587 (OP)
>>2551587 (OP)
1137 2551598
>>51442

>Посоветуешь хорошей литературы по этой версии?


Хуй знает, я за 5 лет в профессии ничего кроме Рихтера и краткого справочника Албахари не читал. Все остальное по офф. докам от майкрософта изучал, там инфа по всем версиям есть.
1138 2551609
>>51513
Я тоже не хотю учить жаваскрипт и хэтэмээль, я только закончил 150 уроков по sql от kudvenkat, думал я до этого SQL знал, а оказывается нихуя и у того же метанита наверное всего 20% контента, которое он описывает.
>>51598
Хуясе ты чад, я Рихтера тоже читал, но давно, хотя многое до сих пор помню.
1139 2553013
>>51609
Хз у меня на работе десктоп, есть webapi небольшое. Поковыряю асп.нет, поковыряю всякие медиаторы cqrs немного тестов и прочую дрисню крутану еще годик попыта и влечу куда-нибудь надеюсь посытнее. План такой. Насчет фронтодрисни хз, если честно. Пока молодой все интересно, все хочется потыкать, но энивей времени есть где-нибудь полгода - нужно как-то концентрированно зазадротить. С жабаскриптохуйней вроде шансов повыше залететь, но платят фулстакам все равно меньше чем ГО-внерам, хотя хз.
1140 2553798
>>53013
Хех, я только что отсмотрел 150 видосов от kudvenkat по sql, дальше у майкрософтов прочту про asp.net core 5, позадрачиваю некоторые задачки на литкоде, попробую парочку проектов на гитхаб аплоднуть, выучить git и docker, повторить энтити фреймворк и пойти уже собеседоваться.
Думаю за месяца 2 управлюсь, я до этого уже имел опыт и с asp.net core и энтити фреймворков и sql, но вот html, javascript и css у меня соснулые.
1141 2554034
>>50619

> событие нажатия кнопки срабатывало только от ActiveButton?


Чагоблять?
У тебя все кнопки видны? Их все можно нажать? Но одна из них будет работать? Ты сам то не чувствуешь проёб в дизайне своём?
1142 2556579
Что полезно изучить за сутки к собеседованию на позицию джуна c#? (а точнее даже стажера)
Перекатываюсь из 1с, тестовое задание сделал как-то по наитию
1143 2557100
>>56579
На ютубе есть полно курсов по шарпу, типа многочасовых видео.
Смотришь 10 часов шарпа, потом 4 часа EF, 4 часа форм, 6 часов ASP. Как раз укладываешься.
Помощь новичку в освоении Новенький 1144 2560931
Доброго времени суток всем работягам! Начинаю, в это нелегкое время, свой тернистый путь C# разработчика. Меня интересует преимущественно бэкенд. Хотелось бы в этом треде найти единомышленников или людей с опытом работы в этой индустрии. Изучаю шарп уже полгода, но всё равно чувствую, что во многих местах присутствуют пробелы в знаниях (как минимум на тестовых заданиях и интервью при трудоустройстве). Я понимаю, что есть огромное количество учебных материалов и ресурсов, но откровенно говоря, в них можно просто утонуть, затянув при этом свое обучение на долгие, долгие годы. Поэтому хотелось бы найти человека, который поможет сориентироваться на месте и подсказать несостоявшемуся джуну как оно всё устроено на самом деле. Надеюсь на Ваше понимание)
1145 2561151
>>60931
то есть ты хочешь бесплатно
получить себе наставника?
1146 2561700
>>61151
Если отвечать прямо на этот вопрос, то да.
Меня больше интересуют идейные люди, чьи интересы не ограничиваются работой "от" и "до".
Это всё на добровольной основе и никак не регламентировано. Я буду благодарен любой помощи, даже если это будет 10 минутная переписка с наставлениями и рекомендациями.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 2 февраля 2023 года.

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

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