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

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

Ответить в тред Ответить в тред
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 1146 104 197
C# тред #41 (Second Edition) csharp /csharp/ Аноним 17/11/22 Чтв 14:19:50 2515951 1
Aishiteruze Bab[...].jpg 80Кб, 960x720
960x720
Тред лучшего языка на планете.

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)
Аноним 17/11/22 Чтв 14:21:54 2515954 2
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 не стоит.
— Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
— Структуры данных — связанные списки, деревья (бинарные, красно-чёрные), хеш-таблицы, графы.
— Системы контроля версий — обычно гита достаточно.
Аноним 17/11/22 Чтв 18:22:09 2516147 3
Подписался на тред. Ожидаем удаления.
Аноним 17/11/22 Чтв 19:26:04 2516212 4
А где книги?
Аноним 17/11/22 Чтв 19:28:19 2516213 5
>>2516212
Metanit лучше всяческих книг!
Аноним 17/11/22 Чтв 19:37:37 2516219 6
Сениор, который собеседует челиков - в треде. Спрашивайте что ли как пройти собеседования и как 300к в секунду зарабатывать. Хотя я больше сервисами занимаюсь, а у вас судя по прошлому треду сплошное WPF и прочее говно.
Аноним 17/11/22 Чтв 19:48:16 2516222 7
>>2516219
Нужно ли весь сахар учить?
Аноним 17/11/22 Чтв 19:49:41 2516224 8
>>2516219
За солид ебешь? Лайвкодить заставляешь?
Аноним 17/11/22 Чтв 19:50:37 2516225 9
>>2516222
Нет. Using выучи и во что он разворачивается.
Аноним 17/11/22 Чтв 20:21:06 2516242 10
>>2516219
А правда, что не нужно писать самому код для работы с БД, а он сам генерируется командой в консоли?
Аноним 17/11/22 Чтв 21:11:15 2516281 11
>>2516219
Можно ASP.NET не учить?
Аноним 17/11/22 Чтв 21:17:28 2516284 12
Аноним 17/11/22 Чтв 23:57:20 2516358 13
Capture.JPG 64Кб, 1117x798
1117x798
шарпач, какие могут быть подводные камни?
у меня есть класс в котором имеется лист из ConcreteNode
я отдаю его другому классу через интерфейс, а он дергает интерфейс на ConcreteNode и вызывает метод
метод Tick() на этом классе вызывается +- 90-120 раз в секунду, когда и сколько раз конкретно заранее неизвестно
если лист который я отдаю из Repository изменится(ConcreteNode будут добавляться-убираться по индексу через эвенты на который там подписано), хватит ли проверки на null перед ProcessNode() или нужно как-то хитрее идти?
Аноним 18/11/22 Птн 02:28:54 2516394 14
>>2516358
ох ты и понаписал
да какая разница сколько в секунду.
у тебя многопоток что ли? есть состояние гонки?
если да, то от этого и пляши. тебе же ВИДНЕЕ

Из твоего скрина и описания вообще хер понять.
>ConcreteNode будут добавляться-убираться по индекс
на скрине оно вообще закоменчено и не используется.

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

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

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

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

хз что вообще делают null в списке. ЗАЧЕМ ВООБЩЕ ДОБАВЛЯТЬ
null в список???
Аноним 18/11/22 Птн 03:00:05 2516408 15
>>2516358
Ну а также не забывай про channel/blockingcollection
Чем бегать проверять "а нет ли чего" лучше использовать очереди с уведомлением
Аноним 18/11/22 Птн 03:26:46 2516411 16
>>2516394
я реально не шарю нихуя. у меня не многопоток, тут может быть состояние гонки?
например вот у меня итерируется одна версия листа
а в это время приходит эвент который активирует метод, который сносит одну из ConcreteNode из листа. лист итерируется на старых данных, а затем на новых?
>на скрине оно вообще закоменчено и не используется.
так закоменченое сидит в другом классе который этот интерфейс использует, я его для наглядности приложил
Аноним 18/11/22 Птн 03:54:55 2516413 17
>>2516411
А нужно шарить. кто из нас телепат? ответ: никто

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

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

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

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

Ни одна нода не будет потеряна, не будет лагов на событии и вообще это просто стандартно и удобно
Аноним 18/11/22 Птн 06:28:30 2516423 18
>>2516411
>а в это время приходит эвент который активирует метод, который сносит одну из ConcreteNode из листа. лист итерируется на старых данных, а затем на новых?
Итератор выкинет эксепшон - коллекцияю нельзя менять во время итераций.

Самый простой способ обойти это - делоешь копию коллеции по которой надо итерироваться и ей уже не грозит краш, если прилетят или удялятся ноды. Потом надо будет отдельно как-то обработать новые ноды, но ты сам думай как это сделать.
Аноним 18/11/22 Птн 10:33:52 2516487 19
>>2516222
Про юзинг правильно написали, это очень любят спрашивать. А так смотря что ты называешь сахаром.

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

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

И насколько хорошо вообще шарписту надо знать JS? Я то вроде в ангуляре могу компоненты накидать, но нравится не сильно. А если будет react\vue и без TS то вообще боль :(
Аноним 18/11/22 Птн 12:51:24 2516571 21
>>2516530
а ты не иди туда, где с тебя еще и фронт просят. Вот просто не иди - спрашиваю больше, а оно тебе надо?!
Аноним 18/11/22 Птн 13:24:28 2516590 22
>>2516487
>В EF действительно всё под капотом.
Хм. В EF точно так же можно чистым sql-м хуярить при надобности. Ну а то, что под капотом, вполне спокойно в отладчике смотрится во что оно преобразуется.
Аноним 18/11/22 Птн 13:28:55 2516594 23
>>2516530
>но насколько легко залететь с 0 опыта на aspnet core онли бэк (без js)?
С нуля практически малореально. Вот где-то через год-полтора работы недофулстеком вполне уже можно.
Просто по опыту сейчас на рынке очень мало контор в коотрых одновременно было бы и толковое разделение на фронт/бэк и чтобы им требовались безопытные джуны.
Вполне реально влезть в контору где ты будешь у тебя разделение обязанностей бэк/фронт будет где-то 70/30. А оттуда уже потихоньку двигаться в сторону чистого бэка.
Аноним 18/11/22 Птн 13:30:55 2516595 24
>>2516530
>И насколько хорошо вообще шарписту надо знать JS?
В принципе достаточно знать как запрос с фронта на бэк и обратно ходит. Плюс уметь пользоваться отладочной консолью браузера.
Аноним 18/11/22 Птн 13:36:09 2516598 25
>>2516530
>Не совсем по собесам, но насколько легко залететь с 0 опыта на aspnet core онли бэк (без js)?
Сейчас скорее оче сложно. После пиздеца много рабочей силы появилось. Половина челиков которых собеседую говорят, что их проект закрыли/сократили/убрали премии. И это не джуны.
>И насколько хорошо вообще шарписту надо знать JS?
Хз. Я онли бэк пишу, на JS писать могу, но знаю очень поверхностно, собес по нему точно не пройду. Чо тебе кстати реакт не нравится? По мне так скорее ангуляр это неудобная хрень.

>>2516590
Всё так. Я бы правда чистого SQL в EF пытался избегать насколько можно.
Аноним 18/11/22 Птн 14:31:43 2516631 26
>>2516598
>Всё так. Я бы правда чистого SQL в EF пытался избегать насколько можно.
Я бы чистого SQL в любой ORM избегал бы до самого последнего.
Вся суть ORM как раз в том, чтобы как можно меньше касаться SQL напрямую.
Аноним 18/11/22 Птн 15:13:01 2516658 27
У меня такой тупой вопрос, что вы охуеете.

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

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

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

Еще вспоминаю опыт в геймдеве - никакой СУБД-поебистикой для данных не занимались. Хранили все данные в зип-архивах с логической структурой подходящей проекту. Довольно гибко и удобно.
Аноним 18/11/22 Птн 15:36:51 2516695 28
Аноним 18/11/22 Птн 15:41:04 2516700 29
>>2516658
Закинь в какой-нибудь каталог пару миллионов текстовых файлов и сделай по ним полнотекстовый поиск, потом снова приходи.
Аноним 18/11/22 Птн 15:59:02 2516709 30
>>2516700
а он такой скажет - я сделаю индекс. вот тот же поиск виндовый он ведь файлы индексирует, но файлы остаются файлами.
Аноним 18/11/22 Птн 16:23:16 2516734 31
>>2516413
>>2516423
спасибо. мало что понятно, но я попытаюсь разобраться.
Аноним 18/11/22 Птн 17:41:28 2516818 32
Помогите с ef core. Хочу сделать миграцию, но диспетчер говорит, что не может определить отношения между таблицами. У меня два класса - книга и автор. В каждом есть коллекция объектов другого класса.(public ICollection<Book> BookAuthors {get; set;} в классе Author и public ICollection<Author> AuthorBooks {get; set;} в классе Book соответственно.
Аноним 18/11/22 Птн 18:15:41 2516873 33
>>2516818
Назови попробуй их Books и Authors просто, кмк еф хочет создать для твоего м2м промежуточную таблицу, которая как раз называется либо BookAuthors либо AuthorBooks и сосёт. Переименуй кароч проперти
Аноним 18/11/22 Птн 18:27:24 2516892 34
>>2516818
Разобрался, проблема была в том, что помимо списка авторов у меня было поле "Руководитель проекта" также типа Author. Убрал поле - всё заработало. Но оно то всё равно мне нужно.
Аноним 18/11/22 Птн 21:28:56 2517039 35
Дороу. Есть у меня одна папка в которой 10к файлов, и есть вторая папка в которой те же самые 10к файлов, только некоторые из которых изменены. Какой самый нормальный способ их синхронизировать и заменить все изменённые файлы в одной из папок? Перебирать что ли все 10к?
Аноним 18/11/22 Птн 21:32:49 2517043 36
Аноним 18/11/22 Птн 21:42:45 2517047 37
>>2517039
Если тебе пофиг на историю изменений просто скопируй один каталог поверх другого, измененные файлы заменятся, те которые не изменялись - останутся теми же.
Аноним 19/11/22 Суб 00:16:49 2517135 38
А зачем вообще нужны ORM? Мне кажется, они только захламляют код. В современных джава-проектах уже не используют Hibernate или JPA.
Аноним 19/11/22 Суб 08:24:58 2517269 39
>>2517135
А что там используют? JDBC?
Аноним 19/11/22 Суб 08:45:19 2517276 40
>>2516487
>А так смотря что ты называешь сахаром.
Дак в том и вопрос, что не понятно что учить, а что нет. Та же джава хороша тем, что легко учится, т.к. содержит мало конструкций. А в шарп их надобавляли дофига. Некоторые на мой взгляд просто избыточны и лишь ухудшают чтение кода. А вот код на джаве, хоть и многословный, но всегда легко читается.
Аноним 19/11/22 Суб 09:39:42 2517289 41
Аноним 19/11/22 Суб 09:42:27 2517291 42
>>2517276
А какие именно конструкции по твоему избыточны?
Аноним 19/11/22 Суб 13:03:47 2517372 43
>>2517291
ConfigureAwait так и не засахарили
using тупо не может сделать 2 var disposable в одном выражении. нужно 2 using. возможность опустить скобки не является решением.
if не является выражением. Тернарный оператор здорово, но не для сложных конструкций
new
Аноним 19/11/22 Суб 15:16:37 2517468 44
Помогите с entity framework. Есть класс в котором есть две переменные одного типа (компания заказчик и компания исполнитель), как запретить присваивать им одинаковые значения?
Аноним 19/11/22 Суб 15:19:25 2517470 45
>>2517291
Делегаты и евенты слишком сахарные. Я конечно разобрался, что там в основе те же функциональные интерфейсы как в джаве, но всё равно в голове сложно укладывается.
Аноним 19/11/22 Суб 15:34:14 2517486 46
>>2517470

А костыльные интерфейсы, в которых ДОЛЖЕН БЫТЬ ТОЛЬКО ОДИН МЕТОД - не тяжело?
Аноним 19/11/22 Суб 17:46:16 2517563 47
изображение.png 32Кб, 781x200
781x200
Как инициализировать базу данных в режиме разработки? Код с пика выдает ошибку, мол нельзя scoped сервис в корне вызывать.
Аноним 19/11/22 Суб 18:05:02 2517579 48
>>2517269
Jooq, либо jdbc, да. Это если от хуйбирнейта отказаться.
Аноним 19/11/22 Суб 18:05:26 2517581 49
>>2517486
Нормально. Они наглядные, прямо в коде видно их, а в сишарпе всё по десятью слоями абстракции.
Аноним 19/11/22 Суб 18:44:42 2517619 50
>>2517581

Да какие асбтракции-то. Делегат - это обычный типизированный коллбек, безопасный аналог указателя на функцию из плюсов. Совершенно ясный и понятный. А нагромождение костылей в жабе - этот как раз обход недостатка дизайна языка, где это изначально не было продумано.
Аноним 19/11/22 Суб 18:48:06 2517623 51
>>2517135

Это для маленьких кривеньких проектиков, долгая жизнь которых не предусмотрена. Т.к. естественная жизнь многих проектов в это не укладывается, создателям orm-ов пришлось придумать микросервисную архитектуру.
Аноним 19/11/22 Суб 20:24:50 2517699 52
>>2517563
Юзай HostedService. В нем и инициализируй.
Аноним 20/11/22 Вск 00:32:23 2517887 53
Анончики, хочу вкатиться в c# разработку, какую-то базу учил в универе, сейчас уже плохо помню, сколько в среднем займет времени, чтобы я смог выполнять какие-то простенькие заказы?
Аноним 20/11/22 Вск 05:35:00 2517998 54
>>2517619
А в шарпе типа пипец продумано лол.
Вот прямо щас
Я могу
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), ведь у нас тут не жава, а шарп.

Так что костыль это или фича - крайне спорно. Лично я считаю что это фича и я бы хотел видеть такую и в шарпе.
Аноним 20/11/22 Вск 05:45:09 2517999 55
Аноним 20/11/22 Вск 06:29:25 2518008 56
>>2517999
ну то есть костыль ага

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

И после этого они над функциональными интерфейсами смеются ха ха.
Аноним 20/11/22 Вск 06:37:53 2518015 57
>>2517999
ты только зацени уровень портяночности
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));

У меня от первого варианта глаз дергается. Ширина пипец. Про читабельность вообще молчу
Аноним 20/11/22 Вск 06:49:57 2518020 58
>>2518008
Ты мог бы доебаться до дизайна Array.BinarySearch, не умеющего в делегаты, но за каким-то хуем доебался до самих делегатов.
Функциональные интерфейсы - это тупо костыль, чтобы не добавлять в жабу делегаты, которые так сложно добавить из-за говнокода в JVM и политики оракла тормозить развитие жабы.
Аноним 20/11/22 Вск 06:58:01 2518025 59
>>2518020
до делегатов доебался не я.
я просто мимо проходил и показал что НЕ СТОИТ высмеивать фичи из других языков которые неплохо бы и в шарпе видеть.

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

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

И вообще фича удобная, ведь тупо пришлось бы делать меньше перегрузок метода и такой херни как с BinarySearch просто не было бы.
Аноним 20/11/22 Вск 07:04:20 2518027 60
>>2518020
>которые так сложно добавить из-за говнокода в JVM
это оффтоп конечно, но я без понятия о чем ты. Я не знаю жаву, я юзаю котлин и там совместо сосуществуют и всякие там (Int)->Long (аналог Func<int, long>), так и эти функциональные интерфейсы. И JVM как то не мешает. Да и вообще как она может мешать, если это на уровне компилятора решается - компилятор просто может переписать лямбду в интерфейс и сам и на бинарном уровне будет одинаково.
Аноним 20/11/22 Вск 08:07:18 2518032 61
>>2518015
А джуну надо понимать такие портянки?
Аноним 20/11/22 Вск 08:11:32 2518033 62
>>2518032
Нет, только сеньорам, джунам достаточно уметь выводить хеллоуаорлд в консольку. Милдлы уже могут объявлять свои переменные и даже писать свои методы.
Аноним 20/11/22 Вск 08:51:35 2518040 63
Полдня ебался с нерабочими инклюдами, в итоге оказалось, что вместо efcore у меня импортировался ef6
Аноним 20/11/22 Вск 09:13:34 2518043 64
Image 1.png 6Кб, 564x201
564x201
>>2518032
джун должен понимать и уметь писать базовый код. вот как пример на скрине. Иначе это не джун, а дворник
Аноним 20/11/22 Вск 09:37:01 2518046 65
>>2518040
Я раньше путал ASP.NET MVC 5 и ASP.NET Core для .NET 5. Почему у Микрософт такие дебильные названия?
Аноним 20/11/22 Вск 09:54:42 2518050 66
>>2518046
ну а как бы ты назвал?
ASP.NET vNext что ли )))
Аноним 20/11/22 Вск 10:30:37 2518056 67
>>2518050
ASP.NET Core надо было по-новому назвать. К примеру, Autumn. Были бы разные модули типа: Autumn MVC, Autumn Data (вместо EF), Autumn Cloud для микросервисов всяких.
Аноним 20/11/22 Вск 10:33:34 2518057 68
>>2518056
Вот только плаьформа с которой он родился называется core
А не dotnet autumn
Аноним 20/11/22 Вск 11:11:40 2518071 69
Че, пацаны.
Кто Either и прочую манду протаскивал в проекты?
Как объяснить тем кто с сей начинал, что пиздато же выходит с мандами?
Аноним 20/11/22 Вск 11:46:54 2518097 70
>>2518071
Никак. Ведь ничего пи... удобного нет.
В шарпе это костыли
Аноним 20/11/22 Вск 11:54:35 2518108 71
>>2518097
Так красивше же:

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);
Аноним 20/11/22 Вск 12:05:53 2518123 72
>>2518108
Глянул и покрылся холодным потом от ужаса
Аноним 20/11/22 Вск 12:10:02 2518132 73
>>2518108

мм.. а если исключением?
Аноним 20/11/22 Вск 12:12:38 2518140 74
>>2518123
А какой выход ты видишь лучше, кроме как делать уродство в виде:

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

>>2518132
Так это проблемы по перформансу. А не прошедшее валидацию сущности - не являются исключительной ситуацией. Исключение нужно бросать, внезапно, в исключительных ситуациях, например - база недоступна, тут действительно надо кинуть исключение, чтобы на самом высоком уровне- перехватить его и прекратить обработку.
Если на каждый чих кидать исключение то оно уебищно выглядит + сразу большие проблемы с производительностью.
Аноним 20/11/22 Вск 12:25:59 2518160 75
>>2518140
>А не прошедшее валидацию сущности - не являются исключительной ситуацией

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

Приведи другой тогда пример, где нужен этот either на твой взгляд.
Аноним 20/11/22 Вск 12:34:48 2518177 76
>>2518015
>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'е.
Аноним 20/11/22 Вск 12:38:27 2518182 77
>>2518177
В ide тип указывается рядом с объявлением переменной, писать самому его нет смысла.
Аноним 20/11/22 Вск 12:44:47 2518191 78
>>2518182

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

А ещё можешь почитать для чего ms вообще высрал этот var, и это совсем не для того, чтобы совать его везде при каждом удобном случаче.
Аноним 20/11/22 Вск 12:50:05 2518196 79
>>2517887
>выполнять какие-то простенькие заказы
Какие заказы? На шарпе фриланс мертв. Это ентерпрайз решение для штатных сотрудников, как и джава. Мелкие задачи в одно рыло на нем не решают.
В лучшем случае будешь на фреймворке 4.6.1 пилить для пиндоса надстройку к аутлуку или екселю.
Учи пхп, если хочешь с заказов кормиться.
Аноним 20/11/22 Вск 12:57:39 2518206 80
image 126Кб, 1789x654
1789x654
image 63Кб, 1276x432
1276x432
>>2517291
>какие именно конструкции по твоему избыточны?
Пикрилы уебищны и уродливы.
Зачем такие вырвиглазние брайнфак-лайк решения наспех впихивать в язык мне не понятно.
Некоторая экономия строк кода за счёт убийства читабельности и интуитивности понимания и тем более написания таких конструкций.
Аноним 20/11/22 Вск 13:03:55 2518210 81
>>2518177
>Делегат и компарер должны быть предварительно объявлены отдельными переменными с понятными названиями и комментариями при необходимости.
Кому должны? с хера ли? ты и в LINQ вместо каждой лямбды обьявляешь?
Аноним 20/11/22 Вск 13:21:46 2518225 82
>>2518210
Чел, ты можешь в своих петпроектах срать как тебе вздумается.
Просто когда твой код будут читать другие люди, не нужно делать так, чтобы они тебя ненавидели, и считали необученным и безграмотным идиотом.
Если в твоём коде появляется конструкция типа ))) - три и более скобки подряд, то это например один из верных маркеров того, что это сложно будет читать и понимать, читателю придется останавливаться и разбираться что во что вложено, а может быть даже копировать из браузера код в текстовый редактор и там разбивать на блоки, чтобы прочитать.
Поэтому очевидным решением будет выносить отдельные вложенные сущности в самостоятельные переменные.
Линк при грамотном написании не имеет таких проблем и там это не требуется, как правило.
Аноним 20/11/22 Вск 13:27:15 2518236 83
Где хранить классы, определяющие формат входных данных для webapi? В asp.net в действии советуют создавать их внутри контроллера, но я хз насколько это правильно.
Аноним 20/11/22 Вск 13:44:48 2518264 84
>>2518225
>Если в твоём коде появляется конструкция типа ))) - три и более скобки подряд
ну так поэтому я и хейтю что нет функциональных интерфейсов, а эти костыли
и когда тебя ВЫНУЖДАЮТ мудрить с именаи, то это говно язык
Аноним 20/11/22 Вск 14:10:11 2518299 85
>>2518264
>нет функциональных интерфейсов
Где их нет? В стандартной либе? Так там дохуя чего нет, даже не смотря на то, что стандартная либа шапра из коропки даёт столько всего, что другим языкам и не снилось, и в которые в отличие от шарпа в каждый проект приходится тянуть зависимости от дикого зоопарка разномастных либ.
Зато можно допилить самому или сделать обертку или сделать аналог или скачать нугет пакет, если кто-то уже озаботился проблемой.
Сам по себе язык сишарп поддерживает функциональные интерфейсы, типа IComparer. Можно даже запилить какой-то свой обобщённый класс с имплисит кастованием его интанса из делегата.
Так что я не очень понимаю, на что ты жалуешься. На отсутствие вожделенных перегрузок в стандартной либе грех жаловаться.
Аноним 20/11/22 Вск 14:21:50 2518310 86
>>2518299
>Сам по себе язык сишарп поддерживает функциональные интерфейсы, типа IComparer
их нет в шарпе. он не скастит сам (x, y)=> в IComparer
поэтому и приходится использовать портяночную фабрику вместо "компилятор за меня это сам переписал"

>На отсутствие вожделенных перегрузок в стандартной либе грех жаловаться.
ну так то да. всего то пара десятков лет прошло с момента рождения класса Array и делегатов
И можно было бы сказать, что не знал автор класса по делегаты, но в Array.Sort он есть.
Аноним 20/11/22 Вск 14:23:15 2518315 87
>>2518196
Каждый раз как вижу пхп у меня начинается какая то огрессия, и зубы скрипят.
Аноним 20/11/22 Вск 14:24:26 2518316 88
>>2518196
А вообще, разве шарписты не нужны тем же юнитистам? Модуль какой нибудь захуярить им время о твремени разве не требуется?
Аноним 20/11/22 Вск 14:27:01 2518320 89
>>2518043
Понимаю что на скрине, могу уже кидать резюме на hh?
Аноним 20/11/22 Вск 15:02:06 2518351 90
>>2518320
так любой джун понимает. учись еще
Аноним 20/11/22 Вск 15:20:25 2518382 91
>>2518196
>Какие заказы? На шарпе фриланс мертв.
Не совсем так. Он не мертв, он скорее в тени. Вполне возможно найти какую-нибудь подработку, вроде написания пары-тройки микросервисов для какой-нибудь мелкой (относительно энтрепрайза) конторы за более-менее нормальный прайс. Но только по знакомству. С улицы в такие проекты никого не берут.
>>2518316
>А вообще, разве шарписты не нужны тем же юнитистам? Модуль какой нибудь захуярить им время о твремени разве не требуется?
Нет, там своя атмосфера. В геймдеве (особенно на юнити) кодерских задач как таковых не особо много, все что нужно вполне решается силами пары-тройки штатных макак.
Аноним 20/11/22 Вск 15:36:26 2518415 92
>>2518046
>Почему у Микрософт такие дебильные названия?
Просто у них в отделе нейминга продуктов какой-то рептилоид сидит (наверное брат того который названия в IKEA придумывает)
У них абсолютно всегда и во всех продуктах была хуйня с неймингом. Что в досе, что в винде, что с МС офисом, что с консолями. Смирись.
Аноним 20/11/22 Вск 16:48:16 2518533 93
>>2518415
Нет. Просто исторически сложилось
Аноним 20/11/22 Вск 17:16:19 2518561 94
Entity framework из меня уже все соки выпил. Я пытался сделать миграцию, но при обновлении бд постоянно вылезала ошибка, причину которой я понять был не в состоянии. что-то про каскадное удаление и рекурсию Помогло в итоге только удаление бд, всех миграций и создание бд начисто.
Аноним 20/11/22 Вск 17:25:36 2518573 95
>>2518533
Что нет?
То что это исторически сложилось, никак не отменяет ебанутости нейминга во всех линейках продуктов Майкрософта.
Аноним 20/11/22 Вск 17:27:54 2518579 96
>>2518561
>Помогло в итоге только удаление бд, всех миграций и создание бд начисто.
Ну, на этапе разработки ситуация "да заебало бля, короче я дропаю БД и все миграции и делаю единую" - очень часто встречается. Так что норм.
Аноним 20/11/22 Вск 18:03:33 2518658 97
>>2518573
Но конкретно этот случай не относится к чудищу из икеи который клонировал мелкософт
Аноним 21/11/22 Пнд 10:03:22 2519169 98
>>2518206
Тоже с этого жопа горит. Какие-то хипстерки тащат парашный стрелочный синтаксис из функциональных языков. До дебилов не доходит, что уже есть православый switch, а более сложные случаи ПАТТЕРН МАТЧИНГА должны быть спрятаны в полиморфные вызовы методов объектов.
Аноним 21/11/22 Пнд 10:33:42 2519181 99
>>2519169
>есть православый switch,
а он тут причем?
>а более сложные случаи ПАТТЕРН МАТЧИНГА
и он тот же тут причем?

паттерн-матчинг - сокращают цепочку развесистых if
Аноним 21/11/22 Пнд 11:17:06 2519203 100
>>2519181
>а он тут причем?
Да все при том же. Весь синтаксический сахар стрелочек компиляется в свичи/ифы.

>паттерн-матчинг - сокращают цепочку развесистых if
В тру объектном дизайне развесистых ифов не должно быть.

Какбы плохая практика патерн матчинга - пытаться проверить сразу много данных на месте, вместо упаковки их инвариантов и проверки их одним семантическим методом. Это наследие из тех времен когда были списки, но не было объектов с поведением. В списки могли засунуть всякую херень. Нужен был гибкий способ их фильтровать на предмет ошибок и дальнейшей обработки. В ОО-языке наличие патерн матчинга это шаг назад, разрабы натурально лезут обратно на дерево функций с которого только недавно слезли.
Аноним 21/11/22 Пнд 11:56:43 2519221 101
>>2519203
>Весь синтаксический сахар стрелочек компиляется в свичи/ифы.
ммм. в этом наверное и есть суть сахара как сахара )
Предлагать взамен то, от чего сахар должен спасти - ну такое себе

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

Считать, что в коде не должно быть развесистых иф - ты там формошлепаешь что ли? да любой алгоритмический код или работающий с рефлексией и кодогеном, да всякие сериализаторы кастомные просто перенасыщены разными ифами.
Аноним 21/11/22 Пнд 12:05:43 2519231 102
Аноним 21/11/22 Пнд 12:31:20 2519251 103
Если я в Xaml подписываюсь на событие, то после удаления контрола, там все подчищается автоматически?
Аноним 21/11/22 Пнд 12:31:28 2519252 104
>>2519231
Хрена себе. А ведь только летом по net 5 выпустили.
Аноним 21/11/22 Пнд 12:32:54 2519253 105
Аноним 21/11/22 Пнд 12:36:42 2519258 106
я обожаю C#, обожаю его синтаксис, люблю писать на нём что-то (WPF, хочу учить asp.net), но блять, по сравнению с другими языками (python, java, js) количество ресурсов по изучению C# и его технологий равно нулю. Я говорю про ресуры на русском (да, я не знаю английского, вот такой хуесос). Дрочить метанит уже заебало (мне не нравится статьи там, особенно бесит дохуя опечаток и ошибок); мне не нравится профессор веб; я не хочу изучать язык или технологию по документации, потому что для любого нормального языка есть сайты по изучению/курсы/книги; я не хочу читать устаревшие книги фримана или шилдта, потому что новые ещё не перевели. Я писал на C# для себя 1.5-2 года и сейчас просто выгорел от того, что последние полгода я не прогрессирую от слова совсем, нет желания что-то учить и программировать вообще, просто потому что уже тошно видеть одни и те же ублюдские ресурсы с отвратительными статьями. Ну почему так нахуй, один из самых популярных языков, а происходит такое говно. (и да, может с английскими ресурсами такая же хуйня, хз)
Аноним 21/11/22 Пнд 12:37:40 2519259 107
>>2519251
при подписке на кого-то этот кто-то удерживает тебя пока сам жив и не дает тебя скушать.
А значит если контрол удалился, то его ссылка на тебя не препятствует тебя сожрать.
Аноним 21/11/22 Пнд 12:39:11 2519261 108
>>2519253
Блин. Я перепутал версию языка и дотнета. Сорян, тупанул.
Аноним 21/11/22 Пнд 12:46:40 2519265 109
>>2519258
— Ко-ко-ко я топчусь на месте
— Как тебе цель: изучить английский?
— В смысле? Я хочу, чтобы вы сами сдвинули меня с места

Прости, что пришлось расписать банальные вещи.
Аноним 21/11/22 Пнд 12:49:16 2519266 110
>>2519251
Ну а в обычных событиях контрола где в code-behind этого же контрола хендлер - там контрол ссылается сам на себя, то есть такое GC выглядит как циклическая ссылка, что не мешает собрать мусор.

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

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

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

Исключение - не OneTime биндинг к свойствам без INPC - то есть если биндинг к чему то, что не поддерживает INPC, например ты биндишься к IList то без OneTime у тебя будет утечка.
Аноним 21/11/22 Пнд 12:51:26 2519268 111
>>2519265
Какие книги почитать на английском?
Аноним 21/11/22 Пнд 12:53:05 2519274 112
>>2519259
>то его ссылка на тебя не препятствует тебя сожрать
Сборщиком мусора?

Но когда я вручную подписывался внутри контрола, то было очень много случаев, когда контрол продолжал существовать, даже когда я удалял на него ссылку.
Аноним 21/11/22 Пнд 12:55:19 2519276 113
>>2519268
Чел писал про книги, которые не переведены. Ну наверно их.
Аноним 21/11/22 Пнд 12:58:05 2519280 114
>>2519274
Если объект держит на тебя ссылку, но сам объект был скушан GC, то и ссылка на тебя исчезла.
При обычной подписке ссылку на тебя удерживают через делегат, что просто немного косвенности, но смысл не меняет.

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

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

Если ты не плодишь код, где в коде рождаешь контролы или захватываешь ссылки на контролы и этот сам код не прилепляешь к чему то долгоживущему, то проблем нет
Аноним 21/11/22 Пнд 13:30:52 2519299 115
>>2519265
типичный двачер, я ему говорю про то, что для других языков дохуища курсов/книг/сайтов для изучения, он мне говорит выучить англ. язык. Если что, выученный мной английский не увеличит количество ресурсов на русском и не улучшит их качество, чини логику.

И да, я не говорил, что не учу англ./не собираюсь учить англ, я говорю про то, что нет ресурсов, какое "сами сдвинули меня с места", ты чет ваще дебил какой-то...
Аноним 21/11/22 Пнд 13:48:33 2519312 116
Аноним 21/11/22 Пнд 14:00:46 2519318 117
>>2519312
целый час? да ну нахер.
хватает БРЕДОВОГО комента от @generalchannel6740 под видео чтобы понять что смотреть не стоит.
Аноним 21/11/22 Пнд 14:24:24 2519327 118
>>2519312
Вообще дикий комент там

>Во первых в шарпах куча сахара. Он не всем так уж и нужен, по мне, это ничтожный аргумент.
Верно. Он не нужен упоротым, поросшим мхом, жавистам, любящим писать длиннннно и много.
>Во вторых 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 чувствуешь себя программистом, а не девелопером.
ась?
на питоне кстати реально кульно в плане "думаешь о задаче. а не о том как". Потом идет шарп. потом жава, потом го

ладно бы он про котлин, но он про жаву
Аноним 21/11/22 Пнд 14:33:05 2519334 119
>>2519299
>для других языков дохуища курсов/книг/сайтов для изучения
Каких? Русскоязычный материал — всякая основа, уровня информации из метанита или "курсы для прокрастинаторов". Специализированные вещи никто никогда не переводит.

На C# количественно туторов меньше просто потому, что всяких хуесосов-разводил меньше, но тематически все на том же уровне.
Не знаю в какой ты реальности живешь, но в моей реальности найти годную информацию по питону и джаваскрипту гораздо сложнее — без вот этой хуни, где на середине статьи тебе начинают впаривать масло для бороды.
Аноним 21/11/22 Пнд 14:37:24 2519336 120
>>2519327
Очень шикарно развёрнутый ответ,вы круты
Аноним 21/11/22 Пнд 14:37:35 2519337 121
>>2519327
>"думаешь о задаче. а не о том как"
В любом языке можно так делать, просто потом получается говнокод. И в одних языках это осуждается (поэтому приходится "думать как"), а в других это норма.
Аноним 21/11/22 Пнд 14:38:26 2519339 122
>>2519299
то просто ты ленивый
да одного хабра хватает чтобы знать разные этакие штуки глубоко
в мсдн неплохо описана работа с их продуктами - тот же EF внезапно хорошо описан
Книги никогда не читал.
Аноним 21/11/22 Пнд 14:38:47 2519340 123
>>2519318

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

>Во первых в шарпах куча сахара. Он не всем так уж и нужен, по мне, это ничтожный аргумент. Во вторых 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 чувствуешь себя программистом, а не девелопером. Я понимаю что некоторым хочется верить что они давно сделали правильный выбор, и оба спикера сделали правильный выбор. Каждому инженеру важно иметь хороший инструмент. Заказчику хочется быстрее, дешевле, и что бы все могли. Оба языка отлично справляются. Но мало заказчиков знают сколько ночей потребовалось что бы внедрить хорошие решения используя тот или иной язык.
Аноним 21/11/22 Пнд 15:27:42 2519370 124
>>2519312
Чел, который представлял джаву, не сказал, что в джаве есть полная обратная совместимость и код 1995 года работает и сейчас. А в сишарпе каждый год всё ломают. Даже в этом треде все сидят и ждут новых книг по дотнету 7, потому что на старом дотнете уже ничего не запускается.
Аноним 21/11/22 Пнд 15:38:49 2519377 125
>>2519370

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

Кстати, "полная обратная совместимость" спринга - отдельный вид изощрённого удовольствия.
Аноним 21/11/22 Пнд 16:00:57 2519415 126
>>2519370
>и код 1995 года работает и сейчас.
Хватит распространять этот миф
Аноним 21/11/22 Пнд 16:22:37 2519454 127
>>2519415
Я начинал учить джаву по старой книжке и все примеры работали на jdk 17

>>2519377
Компилируется и работает.
Аноним 21/11/22 Пнд 16:25:12 2519459 128
>>2519454
>Компилируется и работает.

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

Или недоволен, что на .net6 не можешь создать приложение Виндоус Формс?
Аноним 21/11/22 Пнд 16:28:24 2519463 129
>>2519459
> А C#-код, написанный на первой версии языка, у тебя не компилируется и не работает что ли? Чего пиздишь?
Не все стандартные либы нет фреймворк перенесены на неткор.
Аноним 21/11/22 Пнд 16:30:06 2519465 130
>>2519459
А ты в курсе вообще, что в 8 версии они ввели null-значимые типы и теперь все ссылочным типам надо приписывать ?, чтобы присвоить null.
В 10 версии они изменили Main и он теперь как отдельный файл без класса и функции.
Про переделки фреймворков я вообще молчу. Там вообще ничего не осталось от первой версии.
Аноним 21/11/22 Пнд 16:31:30 2519467 131
>>2519463
>Не все стандартные либы нет фреймворк перенесены на неткор.

Стандартные либы - какие? Сравним с "стандартными либами" в джаве...
Аноним 21/11/22 Пнд 16:32:28 2519468 132
>>2519465
>А ты в курсе вообще, что в 8 версии они ввели null-значимые типы и теперь все ссылочным типам надо приписывать ?, чтобы присвоить null.
>В 10 версии они изменили Main и он теперь как отдельный файл без класса и функции.

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

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

А ты не молчи. Сравним с джавой...
Аноним 21/11/22 Пнд 16:32:57 2519469 133
>>2519467
В джаве даже стандартные либы сохраняют обратную совместимость. Есть даже неудачные решения, которые не удаляют, чтобы старый код работал.
Аноним 21/11/22 Пнд 16:35:33 2519471 134
>>2519468
>Хочешь, научу чтобы не надо было, и чтобы Main был с классом и функцией?
Давай!

Я пробовал писать код из книжки Фримана по дотнет кор 2.0 и ничего не работало. Сидел как дурак и гуглил каждый кусок кода, а там писали, что в дотнет 6 всё по-другому. Даже не просто заменить А на Б, а совершенно иной подход. Надо целые модули переписывать.
Аноним 21/11/22 Пнд 16:37:59 2519474 135
>>2519469

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

>>2519471

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

>>2519474
В Спринге хеллоу ворлд не менялся. Даже в Спринг буте всё тоже самое. Можно взять любую книга за любой год и все примеры выполняться как родные.
Аноним 21/11/22 Пнд 16:52:47 2519502 137
>>2519478
>java.util.*

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

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

В windows forms тоже.
Аноним 21/11/22 Пнд 17:08:51 2519540 138
>>2519299
>я ему говорю про то, что для других языков дохуища курсов/книг/сайтов для изучения
Для шарпа есть МСДН, который покрывает где-то 85...90% информации которую нужно знать.
Аноним 21/11/22 Пнд 17:11:16 2519548 139
>>2519540
>msdn
Дядь, как там в 2008?
Аноним 21/11/22 Пнд 17:13:46 2519552 140
Зумерский МСДН.
Аноним 21/11/22 Пнд 17:14:01 2519553 141
>>2519548
мсдн-ом он называет оф доку от мелкософт
то что ее перенесли на новый адрес сути не меняет.
в народе она по прежнему зовется "мсдн" и все понимают о чем речь.
Аноним 21/11/22 Пнд 17:14:58 2519555 142
>>2519471
>>Хочешь, научу чтобы не надо было, и чтобы Main был с классом и функцией?
>Давай!
При создании солюшена ставишь галку "Do not use ttop level statements" и у тебя будет нормальная структура с Main'ом
Затем в свойствах проекта устанавливаешь
ImplicitUsings и Nullable в disable
И у тебя будут нормальные юзинги и отсутствие дроча с nullable
Аноним 21/11/22 Пнд 17:15:42 2519556 143
>>2519553
Хз, я начинал вкатываться в шарп еще в 2015, уже никто так не называл. Я чисто по аббревиатуре догадался что он имеет ввиду.
Аноним 21/11/22 Пнд 17:17:32 2519558 144
>>2519555
кстати студия научилась запоминать эту галку
А вот нулабле трогать не нужно.

>>2519556
так до сих пор даже называют. а молодежь нынче необразованная - вон книжки им подавай
Аноним 21/11/22 Пнд 17:18:07 2519559 145
>>2519548
Я хуй знает, но и сейчас любой поисковик по тегу "мсдн" тебя на сайт с доками майкрософта по дефолту выкинет. Так что похуй как он там сейчас называется, суть одна и та же, только пользоваться удобнее стало.
Аноним 21/11/22 Пнд 17:19:17 2519560 146
>>2519556
Я вообще с 2018-го вкатился, но до этого с C++ начинал, поэтому так и помню.
Аноним 21/11/22 Пнд 17:25:55 2519565 147
>>2519560
>>2519558
>>2519559
Ну вот мы и сошлись во мнении, что в первую очередь так говорят олды, переадресацию сделали для неофитов, которые услышат от них такую аббревиатуру.
Аноним 21/11/22 Пнд 18:17:06 2519619 148
>>2519565
а как говорят неофиты?
официальная документация?
фууу быть такими
Аноним 21/11/22 Пнд 18:21:06 2519622 149
>>2519619
Ну все, пристыдил, как жить то теперь, блядь.
Аноним 21/11/22 Пнд 18:36:48 2519645 150
>>2519340
>программируя на python, go, java чувствуешь себя программистом, а не девелопером
Проиграл с этого ментального самоподдува

мимо go-господин, в прошлом писал на жабе
Аноним 21/11/22 Пнд 18:38:40 2519646 151
Аноним 21/11/22 Пнд 18:46:29 2519653 152
>>2519645
А программируя на c++ чувствуешь себя Computer Engineer, а не каким-то программистом или девелопером.
Аноним 21/11/22 Пнд 18:52:43 2519659 153
>>2519327
>>В java хорошая многопоточность в отличии от шарпов
>дооааа доааа ))
Там видимо подразумевались фишки виртуальных тредов.

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

>>2519327
>асинк/авайт это киллер вещь для работы с корутинщиной и асинхронщиной
Обсуждаемо. Делить мир на синхронные и асинхронные функции тоже не есть хорошо. Из всех языков конкарренси для среднего обывателя лучше всего реализован в Go.
Аноним 21/11/22 Пнд 18:57:32 2519661 154
>>2519502
Если я возьму старющую книгу по шарпу, то там откомпилируется хоть один пример?
Аноним 21/11/22 Пнд 18:57:42 2519662 155
>>2519619
>а как говорят неофиты?
А никак они требуют книжек на русском и плачутся об отсутствии материалов по шарпу.
Аноним 21/11/22 Пнд 19:00:14 2519664 156
>>2519661
Конечно. Тут же не просто так советую Рихтера, а это 2012 год.
Аноним 21/11/22 Пнд 19:02:00 2519665 157
>>2519664
Почему Рихтер не может поставить жену на место и написать новую книгу?
Аноним 21/11/22 Пнд 19:06:29 2519671 158
>>2519665
которую через год переписывать потому что неофиты бестолковые и "у нас не компилируется, мы не понимаем, а в гугле забанили".
Аноним 21/11/22 Пнд 19:13:07 2519677 159
>>2519671
Ну а как бы ты поступил, если у тебя не компилировалось бы?
Аноним 21/11/22 Пнд 19:26:06 2519687 160
>>2519327
>>2519312
А какая разница какой язык круче? Я в свое время писал и на С++, и на шарпе, и на джаве, и на питухоне. В итоге сейчас на проектах с говнолангом сижу.
В первую очередь выбирайте проекты, чтобы там были выстроены адекватные процессы и разрабы были нормальными, а не пассажирами с заводов, вкатившиеся по айти курсам. Язык и тулинг это уже сугубо вторично.
Аноним 21/11/22 Пнд 19:32:08 2519690 161
>>2519677
Гуглил про миграцию с версии языка в книге на новее. Там описана разница

>>2519687
А я прошел через 10ок языков и сижу на 3 основных ибо в каждом своя радость
Аноним 21/11/22 Пнд 19:32:19 2519692 162
>>2519687
Вдруг придётся вручную прикручивать к проекту Tomcat или выучишь дотнет 7, а на работе скажут, а мы пишем на дотнет 8, а ты там нифига не понимаешь, потому что снова всё перелопатили?
Вдруг у тебя сломается комп и надо будет писать на слабом ноуте, на котором 10-ку не поставить и вижлу не запустить?
Вдруг надо будет написать веб-приложение, а идея у тебя бесплатная и нельзя создать проект на спринге?
Вдруг придётся писать под отечественный линупс, а там дотнет не ставится?
Аноним 21/11/22 Пнд 19:33:19 2519693 163
>>2519690
По своему опыту скажу, придётся гуглить каждую вторую строчку.
Аноним 21/11/22 Пнд 19:34:38 2519694 164
>>2519693
Так читай мсдн. Там актуально
Аноним 21/11/22 Пнд 19:35:20 2519696 165
>>2519694
Мне нужен учебник, а не справочник
Аноним 21/11/22 Пнд 19:45:31 2519712 166
Почему Шилдт перестал писать по шарпу, а по джаве продолжает писать?
Аноним 21/11/22 Пнд 19:48:35 2519718 167
>>2519712
Очевидно, решил, что шарп всё. Через пару лет и по жабе писать перестанет.
Аноним 21/11/22 Пнд 19:49:31 2519722 168
>>2519692
Это такой местный троллинг тупостью?
Аноним 21/11/22 Пнд 19:51:56 2519725 169
>>2519722
Это реальные проблемы, с которыми можешь столкнуться, если не правильно выбрал язык.
Аноним 21/11/22 Пнд 19:54:00 2519727 170
>>2519677
>Ну а как бы ты поступил, если у тебя не компилировалось бы?
Раньше в книгах по программированию так и писали: "Чел, извини у нас тут дохуя ошибок в листингах программ, но ты разберешься - мы в тебя верим"
Аноним 21/11/22 Пнд 19:54:57 2519728 171
Capture.JPG 24Кб, 890x213
890x213
как получить делегаты на геттер и сеттер, если на входе объект и его PropertyInfo?
с дженериком вместо "????" работает, но я к сожалению не могу использовать дженерик
Аноним 21/11/22 Пнд 19:56:26 2519730 172
>>2519725
>>2519692
>Вдруг придётся вручную прикручивать к проекту Tomcat
Берешь и прикручиваешь, это делается просто, достаточно парочку гайдов от индусов прочесть.

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

>>2519692
>Вдруг у тебя сломается комп
Тогда я прошу компанию выдать мне новый.

>>2519692
>на котором 10-ку не поставить и вижлу не запустить
Ставлю легковесный дистр линукса + vs code.

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

>>2519692
>Вдруг придётся писать под отечественный линупс
Попросту не работай в подобных конторах.

Видишь, какие простые решения у всех проблем?
Аноним 21/11/22 Пнд 19:56:27 2519731 173
>>2519728
>"????"
Это новый сахар? Сколько можно-то...
Аноним 21/11/22 Пнд 19:57:22 2519732 174
>>2519728
Испоьзовать кодогенерацию
Или одну из кучи готовых либ генерящиъ геттеры сеттеры
Аноним 21/11/22 Пнд 19:59:20 2519733 175
>>2519730
Ну тогда получается, что выгоднее учить джаву, а у сишарпа больше минусов.
Аноним 21/11/22 Пнд 20:01:59 2519737 176
>>2519692
>Вдруг придётся вручную прикручивать к проекту Tomcat или выучишь дотнет 7, а на работе скажут, а мы пишем на дотнет 8, а ты там нифига не понимаешь, потому что снова всё перелопатили?
А может ты просто даун который не способен осилить несколько страниц текста с описанием изменений.
>Вдруг у тебя сломается комп и надо будет писать на слабом ноуте, на котором 10-ку не поставить и вижлу не запустить?
Во первых. Ноутов на которых невозможно десятку и студию запустить ты сейчас не найдешь уже в рабочем состоянии, так что не надо пиздеть.
Во вторых. Сейчас даже под андроид IDE есть, с автоподстановкой, нюгетами и даже компиляцией на теле. Так что даже в жопе мира можно кодить (как-то так и делал зависнув на неделю без компа в ебенях)
>Вдруг надо будет написать веб-приложение, а идея у тебя бесплатная и нельзя создать проект на спринге?
Чиво бля?
>Вдруг придётся писать под отечественный линупс, а там дотнет не ставится?
Ты из какой дыры выполз? Ты сейчас заебешься придумывать линукс на котором нет .net'а.
Аноним 21/11/22 Пнд 20:03:57 2519741 177
Capture.JPG 39Кб, 1208x231
1208x231
>>2519731
нет это я тупой и не могу понять что туда пихать чтобы заработало
вот это работает отлично, одна проблема только - дженерики использовать нельзя
>>2519732
а можно где-то примеры посмотреть? кодогенерация всмысле Reflection.Emit?
Аноним 21/11/22 Пнд 20:04:46 2519742 178
>>2519737
У меня рабочий ноут, на который нельзя поставить 10-ку. Зато там работает линупс легковесный.
Аноним 21/11/22 Пнд 20:08:04 2519745 179
В нет6 добавили тип DateOnly, уже релизнули нет 7, а маппинг для sql date так и не завезли.
Аноним 21/11/22 Пнд 20:09:26 2519747 180
>>2519733
Все так. Хотя если хочется игрульники на юнити делать, то шарп норм выбор.
Аноним 21/11/22 Пнд 20:18:45 2519754 181
>>2519737
А мне кажется, что ты сам не разбираешься в теме и резок на суждения.
Старых ноутов дофига и они работают. Это новые ломаются через год, потому что их делают фигово. А старые ещё 50 лет прослужат, а может и больше.
Отечественные линупсы не поддерживают дотнет, но зато из коробки есть джава 8 либерика и опенждк. Для примера можешь любой взять, хоть Астру, хоть РедОС.
Аноним 21/11/22 Пнд 20:21:44 2519759 182
>>2519754
>Вдруг надо будет написать веб-приложение, а идея у тебя бесплатная и нельзя создать проект на спринге?

Это ты написал же? После этого ни к чему, что ты пишешь, уже серьезно относиться не получается...
Аноним 21/11/22 Пнд 20:25:22 2519765 183
>>2519759
Ну иди создай в бесплатной идее. Они забанили все плагины, через которые можно было это делать раньше.
Аноним 21/11/22 Пнд 20:26:30 2519768 184
>>2519765
Ну бери тогда эклипс, нетбинс или vs code.
Аноним 21/11/22 Пнд 20:27:57 2519771 185
>>2519765

Чел.. ладно. Все мы были в этом месте наверное
Аноним 21/11/22 Пнд 20:32:17 2519777 186
Аноним 21/11/22 Пнд 20:37:35 2519781 187
>>2519768
Эклипс крутой. Спору нет. Есть даже сборки под Спринг бут. Но сам редактор морально устарел
Нетбинс вообще не рабочий из коробки. Замаешься его настраивать. VS Code прикольный, но плагин на Спринг не удобный, там тебе выдают последовательно поля ввода, которые надо безошибочно заполнить.

>>2519771
Да я знаю, что ты скажешь. Типа есть веб-форма, где можно заполнить поля и скачать архив с заготовкой проекта. Но это очень не удобно и требует подключение к интернету. А если интернет отключили, а срочно надо что-то сделать!?
Аноним 21/11/22 Пнд 20:41:39 2519783 188
>>2519781
>А если интернет отключили, а срочно надо что-то сделать!?

Ты решил окончательно себя потопить что-ли? ) Все мы были вкатунами, все чего-то не знали и были наивными. Ничего страшного.
Аноним 21/11/22 Пнд 21:44:30 2519834 189
Какие есть платформы, и есть ли вообще, для бесплатного хостинга неткор приложеинй? Раньше использовал хероку для ноды и пыхыпы, но сейчас хероку прикрывают на днях.
Читаю списки альтернатив хероку и чтот там нету поддержки С# райнтаймов. Куда энтузиасту загружать приложухи для портфолио?
Аноним 21/11/22 Пнд 21:56:31 2519848 190
>>2519834
Заливай через докер вместо дотнет рантайма
Аноним 21/11/22 Пнд 21:57:14 2519849 191
Аноним 21/11/22 Пнд 23:58:51 2519931 192
>>2519848
Докер хуйня, у меня памяти нет для этого чудища.
Аноним 22/11/22 Втр 00:36:27 2519949 193
>>2519931
Тогда ищи где рантайм есть (бтв сделай виртуалку под линупсом на гиг рама и тебе хватит запаковать в докер твое говно)
Аноним 22/11/22 Втр 01:29:33 2519970 194
а пpоясните за аттрибуты
новый инстанс создается каждый раз когда к нему обращаются? может ли их быть несколько одновременно?
Аноним 22/11/22 Втр 01:42:09 2519974 195
>>2519970

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

Думаю, это ответ на твой вопрос.
Аноним 22/11/22 Втр 01:55:24 2519978 196
Capture.JPG 41Кб, 692x501
692x501
Capture2.JPG 9Кб, 533x114
533x114
>>2519974
я не пони
это статические классы получается?
допустим вот я сделал атрибут пикрелейтед и повесил на несколько проперти
а потом на пике 2 их еще в коллекцию положу
куда это все ссылается?
Аноним 22/11/22 Втр 01:56:40 2519979 197
>>2519978
только теперь заметил что проебался в конструкторе
Аноним 22/11/22 Втр 02:01:42 2519981 198
>>2519978
Это другое.

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

Ну допусутим я реализую интерфейс IDisposable, а что там писать? Пустым оставлять? Лично в моем коде нет ничего, что нужно освобождать.
Аноним 22/11/22 Втр 09:06:44 2520066 201
>>2519985
>имеет ли смысл морочиться?
Имеет, если ты собираешься динамически подцеплять внешние плагины с чужим кодом. Если весь код твои и никакой поддержки расширений не ожидается, то проще эти самые карточки сделать обычными классами без привлечения рефлексии на атрибутах.

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

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

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

>Ну допусутим я реализую интерфейс IDisposable, а что там писать?
Его надо писать только если у тебя в классе есть неуправляемые ресурсы, во всех остальных случаях - нет.
Аноним 22/11/22 Втр 09:44:23 2520087 202
>>2520066
> Его надо писать только если у тебя в классе есть неуправляемые ресурсы, во всех остальных случаях - нет.
Ну вот например в контроллере есть контекст бд, но в шаблоне по умолчанию idispose не реализуется. Почему так?
Аноним 22/11/22 Втр 10:16:00 2520097 203
>>2520087
Потому что каждый запрос это createScope у контейнера
И в конце каждого запроса scope диспознет все что родил и что имеет lifetime scoped
Аноним 22/11/22 Втр 11:07:28 2520141 204
Какими проектами занимаются сишарп-программисты?
Аноним 22/11/22 Втр 11:12:24 2520146 205
изображение.png 66Кб, 653x301
653x301
Аноны, на пике сильно говнокод? Как написать нормально?
Аноним 22/11/22 Втр 11:40:16 2520161 206
>>2520141
Программируют мышкой винформы и WTF. И пишут сайтики для госконтор на древнем проприетарном дотнет фреймворке.
Аноним 22/11/22 Втр 11:44:37 2520166 207
>>2520161
Wpf на дотнет 7
А те кому лень перекатить техгологии - их выбор
Аноним 22/11/22 Втр 12:05:29 2520185 208
>>2520146
Ставлю на сектор "говнокод".

В конце ты делаешь ToList() и ВНИМАНИЕ у листа есть родной метод реверса. Если тебе нужен иногда обратный порядок группировки можно просто вызвать этот метод конечному результату после линкодрисни.
Аноним 22/11/22 Втр 12:12:07 2520193 209
>>2520146
А еще у тебя сраная стрелочка вместо нормальныйх скобок. Выкинь эту каку из своей жизни.
Аноним 22/11/22 Втр 12:27:56 2520199 210
>>2520146
Говнокод из-за повторов
Аноним 22/11/22 Втр 12:33:33 2520202 211
>>2520161
Получается нет смысла ждать новых книг и можно учиться по старым?
Аноним 22/11/22 Втр 12:39:49 2520205 212
>>2520202
Всегда есть смысл ждать новых
А когда они выйдут лучше все же новее подождать
Ведь они точно лучше

А до тех пор работать на заводе
Аноним 22/11/22 Втр 12:48:54 2520210 213
>>2520205
Проще тогда учить джаву, потому что там все книги актуальные
Аноним 22/11/22 Втр 12:50:40 2520211 214
>>2520210
Лучше уж синклер бейсик. Там язык гарантировано стабилен
Проверено десятилетиями
Аноним 22/11/22 Втр 12:54:20 2520212 215
>>2520211
На синклер бейсике никто не пишет серьёзных программ, а пишут сразу на ассемблере Z80A. Это раньше было сложно достать инфу, а сейчас благодаря интернету можно найти всю инфу по архитектуре Спектрумов.
Аноним 22/11/22 Втр 13:02:47 2520215 216
>>2520212
Зачем писать.
Главное - учить то что не устареет пока учишь

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

Просто читается "что нового" и миграция
И немного статей по новым фичам если оно не простое
Аноним 22/11/22 Втр 13:20:23 2520236 219
>>2520231
Меня ещё смущает, что надо консольной командой генерировать миграции. Не могу смириться с этим фактом.
Аноним 22/11/22 Втр 13:23:00 2520238 220
>>2520236
я не про те миграции
а про миграции с одной версии либы/фреймворка на другую
где очередной гений из мелких решил переделать Startup класс
Аноним 22/11/22 Втр 14:34:03 2520302 221
>>2520212
>На синклер бейсике никто не пишет серьёзных программ
Воу-воу, палехче. Пишут. И игры даже норм делают. Правда все больше на компилируемом варианте, но пишут.
Аноним 22/11/22 Втр 14:48:56 2520325 222
>>2520228
>Сишарп 1.0 и Сишарп 11 - это два разных языка, как джава и котлин наверно.
Угу. И у большинства джавистов одна и та же проблема, всем хотелось бы работать на няшном котлине, но приходится работать на 8-й версии джавы (которая почти 10 лет назад вышла).
В то же время на шарпе сейчас найти проекты на версиях ниже 7-й (а сейчас уже наверное ниже 8-й) - постараться нужно.
Аноним 22/11/22 Втр 15:12:27 2520351 223
>>2520325

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

Для норм разработки всё это не имеет никакого значения (другое - да, но не это).
Аноним 22/11/22 Втр 15:17:31 2520358 224
>>2520325
>приходится работать на 8-й версии джавы (которая почти 10 лет назад вышла)
А в чем проблема, собственно? Да, некоторых удобных фишек в 8 джаве нет, но все основное, включая лямбды и стримы, вполне себе присутствуют. Все последующие версии по факту минорные, может только 21 LTS версия будет популярной, так как туда лум уже могут завезти
Аноним 22/11/22 Втр 15:19:10 2520361 225
Аноним 22/11/22 Втр 15:33:19 2520376 226
>>2520325
>приходится работать на 8-й версии джавы
Я бы с удовольствием пошёл работать на 5 версию джавы. Хоть многолетние сеньоры кичатся знаниями, но тогда было легче всё осваивать, чем сейчас. Без лямбд и прочих стримов собес не пройти, а это как бы функциональное программирование, которое требует иного мышления, а не просто ещё одна библиотека.
Аноним 22/11/22 Втр 15:40:32 2520386 227
>>2520376

Вот sql-запросы (реляционная алгебра) требуют иного мышления, а лямбды это так... хотя тоже отчасти верно.
Аноним 22/11/22 Втр 16:07:33 2520418 228
>>2520386
Всю эту инопланетную хуйню надо сжечь с огнем и оставить только ОО-подход везде.
Аноним 22/11/22 Втр 16:23:59 2520429 229
>>2520418
И веб тоже. Декларативный недосинтаксис хтмл с полной зависимостью от браузера давно по факту вытеснил убеищных JS. Т.е. весь веб исполняемый, а не декаративный как задумывалось изначально. Можно все заменить объектами на любом языке и гонять их по сети на клиент. Мелкомягкие пытались родить что-то похожее в виде сильверлайта, но как обычно не довели до конца и обосрались. Их поражение - наше пролжающеся говноедство ублюдочной функциональной парадигмы JS торчащей из каждого умного утюга.
Аноним 22/11/22 Втр 16:29:53 2520433 230
>>2520429
>сильверлайт
Дак это попытка создать сишарп-апплеты, когда джава-апплеты умерли.
Аноним 22/11/22 Втр 16:38:22 2520448 231
Аноним 22/11/22 Втр 16:42:20 2520453 232
>>2520448
Да ну. То есть теперь можно сесть и разработать не сервелат, который проприетарный модуль и браузеры ему противились (как и вообще доп плагинам), а сделать можно на wasm и будет счастье?

Но стоп, вот же сделали blazor, а чет не видно массового бега с жс
Аноним 22/11/22 Втр 16:42:23 2520454 233
>>2515951 (OP)
Спасибо что перекатили. Следующий перекачу я, был очень занят.
мимо бывший ОП
Аноним 22/11/22 Втр 16:48:50 2520467 234
>>2520302
Дак он наверно на больших ЭВМ компилируется, а на Спектрум заливается образ в машинных кодах. Насколько помню такие компиляторы и раньше были, но ими никто не пользовался, потому что они съедали половину ОЗУ и на программу ничего не оставалось.
Аноним 22/11/22 Втр 17:02:26 2520497 235
>>2520433
Да. И в этих аплетах можно было реализовать приложение без браузерной прослойки хтмл-цсс-жс, плюс нормальное апи для бека. Неудобство только в том, что пользователям надо ставить фреймворк и аддон на браузер, зато с точки зрения разработки каеф - пишешь почти нормальный десктоп, за исключением данных прилетающих по сети.

Алсо, я как-то давно забредал на сайт посвященный алгоритмам поиска путей, определения видимости, разбиения полигонов и прочими такими задачками для игор/графики. На нем все примеры были сделны в аплетах на жаве. Можно было алгоритм из статьи сразу пощупать в живую - поменять данные, мышкой подергать обстаклы и все такое. Был удивлен как все удобно и без тормозов, просто космические технологии древних.
Аноним 22/11/22 Втр 17:08:47 2520510 236
>>2520453
>blazor
Он же вроде компилируется в жс на фронте? Это другое.

Идея в том чтобы вообще выкинуть каличный браузерный стек оставив одну запускалку объектов полученых из сети, а дальше они пусть сами ебутся с логикой и отрисовкой всего что нужно.
Аноним 22/11/22 Втр 17:14:32 2520522 237
>>2520510
>Он же вроде компилируется в жс на фронте? Это другое.
нет. ты путаешь с тайпскриптом.
Аноним 22/11/22 Втр 17:30:17 2520543 238
Нужно ли создавать отдельную сущность для парсинга строки запроса в webapi?
Аноним 22/11/22 Втр 17:42:23 2520560 239
>>2520543
строку запроса парсит сам движок и биндит тебе на параметры, только называй их правильно и аттрибуты вешай если нужно
а сущность нужно если ты хочешь распарсить post или гет запрос сразу в объект вместо параметров к action
Аноним 22/11/22 Втр 17:48:44 2520573 240
>>2520066
>Если весь код твои и никакой поддержки расширений не ожидается
ага, весь код мой. я хочу свои собственные классы динамически подцеплять.
я хочу. биндингов там где я макакирую юнити нет, поэтому мне приходится велосипедить, суть такова:
есть мои сущности, к проперти которых я хочу подцеплять свой UI, двухсторонним манером 1 проперти к коллекции UI элементов.
сущности я потом планирую дополнять, возможно менять по мере разработки и хотел бы сделать биндинг этот максимально приятным и открытым для себя же в будущем чтобы потом таскать его в другие проекты.
я хочу сделать что-то вроде репозитория где ключом будет тип, а данными - класс-коллекция открытых делегатов на все геттеры/сеттеры декорированных атрибутом проперти и вытянутые из атрибута данные(имя для UI, ограничения т.д.)
если попадается класс, которому нужно рисовать UI, то сначала смотрится репозиторий, если там ничего, то создается с рефлексией и фильтром по декорированным проперти и отдается.
а если и там нет и атрибутов нет, то орать на весь поезд и требовать остановки потому что классы без атрибута не имеют права в этот обработчик вообще попадать и я где-то проебся.
в итоге по идее должна получиться система, где хардкодиться будет только имя проперти для UI и прочие вещи которые я хочу в конструктор атрибута передавать, но т.к. это будет висеть прямо над проперти, то там все сразу будет наглядно видно
а всю дичь с рефлексией можно и под капот и она будет крутиться только один раз для каждого декорированного типа, а потом просто раздавать кешированные данные классу отвечающему за создание UI
единственное что я пока не допер как делать каким образом правильно запилить открытый делегат
буду благодарен если мне укажут где я дурак и как сделать правильнее
Аноним 22/11/22 Втр 17:50:36 2520575 241
>>2520560
Проблема в том, что я могу забиндить параметры только к строкам, так как например min и max у меня могут быть разных типов, в зависимости от выбранного свойства для фильтрации. В итоге мне приходится писать большую портянку из switch case. Я и спрашиваю, уместно ли эту портянку оставлять в обработчике, или лучше вынести в отдельный класс.
Аноним 22/11/22 Втр 18:00:36 2520597 242
>>2520575
Хотя я только что подумал, что можно просто создать отдельные параметры для каждого типа и не ебаться со свитчами и tryparse
Аноним 22/11/22 Втр 18:04:14 2520602 243
>>2520575
получением запроса занимается контроллер
и значит его дело разобраться "что там пришло и что с ним делать"

тебе же либо вот так разбираться самому
либо убрать совпадение имен
либо написать свой биндинг
Аноним 22/11/22 Втр 18:04:21 2520603 244
>>2520573
>единственное что я пока не допер как делать каким образом правильно запилить открытый делегат
Вот это непонятно. Что за открытый делегат? Ты хочешь атрибут который указывает метод-обработчик события?
Аноним 22/11/22 Втр 18:11:43 2520614 245
Аноним 22/11/22 Втр 18:19:05 2520623 246
>>2519949
У меня не в раме проблема, а в жд, у меня памяти нет от слова совсем. 10 гигов на такую хуету это жырно ппц, придется искать
Аноним 22/11/22 Втр 18:31:56 2520660 247
>>2520614
Понятно. Смотри там передоз от магии не схвати.
Аноним 22/11/22 Втр 18:38:26 2520680 248
>>2520573
какой еще открытый делегат. геттеры сеттеры тебе делегаты не помогут. Ты просто не сможешь скастить к Func<T> ведь у тебя нет этого самого T
Ты достаешь PropertyInfo и далее генеришь геттеры/сеттеры через expressions или emit и складываешь в словарик и используешь. Конечно ты не сможешь избежать боксинга ведь в этот словарик нужно положить геттер сигнатурно одинаковый, а значит Func<T, object>

Другое дело если ты используешь методы маппинга сразу чтобы не было лишнего object (но это не твой случай, ты же не маппер пишешь)
Аноним 22/11/22 Втр 19:21:08 2520737 249
Вопрос от нюфани: почему во всех примера на шарпе я вижу, что сперва создают объект класса, а только в самом конце программы непосредственно сам класс. Разве программа не выполняется последовательно, сверху вниз? И экземпляр еще не может быть создан до инициализации класса.
Аноним 22/11/22 Втр 19:27:11 2520755 250
>>2520737
Это не питон и не руби. Тут опреление сигнатур порядка не имеет, лишь бы оно где то было чтобы компилятор смог найти
Аноним 22/11/22 Втр 19:27:23 2520756 251
>>2520737
Последовательно выполняются инструкции внутри функции. А все определения классов, перечислений и тд, заносятся в метаданные во время компиляции.
Аноним 22/11/22 Втр 19:39:35 2520777 252
Аноним 23/11/22 Срд 02:06:53 2521112 253
>>2518236
Храню отдельныии классами в папочке моделс.
Аноним 23/11/22 Срд 06:20:17 2521168 254
изображение.png 59Кб, 1306x285
1306x285
Как пофиксить неоднозначность?
Аноним 23/11/22 Срд 09:16:00 2521220 255
>>2521168
Как нам догадаться в чем неоднозначность
Аноним 23/11/22 Срд 09:17:09 2521222 256
>>2521220
В этом и неоднозначность 😂😂😂
Аноним 23/11/22 Срд 09:22:53 2521226 257
>>2521168
Перестать выебываться, не?
Аноним 23/11/22 Срд 09:41:22 2521235 258
>>2521168
очевидно же дропнуть первый метод и нормально переписать второй
а еще бросить шарп и уйти работать в пятерочку, а то там вечно на кассе не хватает людей.
Аноним 23/11/22 Срд 12:46:29 2521318 259
>>2519834
А 3.5 доллара за впску амазона - никак не осилишь? Там же и впн развернуть можно заодно.
Аноним 23/11/22 Срд 15:28:15 2521467 260
>>2521318
Где же он доллары возьмет ))
Аноним 23/11/22 Срд 15:37:28 2521471 261
Аноним 23/11/22 Срд 19:04:00 2521612 262
>>2518236
Для дтошек использую Requests/Responses
И опять же к каждой дто добавляю постфикс Request/Response чтобы быстро понять что это.
Когда их много можно группировать по фичам/версиям апи(иногда все вместе).
Вообще иногда есть смысл для контрактов завести отдельный проект, где у тебя сообщения для шины и запросы/ответы шарятся между проектами.
Аноним 23/11/22 Срд 19:41:55 2521648 263
Какой уебан посоветовал переходить на NET6 и выше?
>Xaml не поддерживает кириллицу даже в свойствах Text

Вы ебанутые?
Аноним 23/11/22 Срд 19:55:06 2521655 264
Нужно создать веб-сервис, который будет разворачиваться в IIS, отправляющий запросы в определённый интервал времени. Что почитать по этой теме?
Аноним 23/11/22 Срд 19:57:13 2521660 265
Аноним 23/11/22 Срд 19:58:19 2521662 266
>>2521655
куда отправляющий? причем тут вообще IIS?
Аноним 23/11/22 Срд 20:01:09 2521667 267
>>2521648
Братиш, .net Framework 3.5 - 4.6 наше все. Остальные индусоаподелия под этой торговой маркой идут нахуй.
Аноним 23/11/22 Срд 20:05:30 2521674 268
>>2521662
>куда отправляющий
разве важно куда? там get запрос на получение данных из одной системы (типа 1с предприятие) и post запрос во внутреннюю систему компании. Иными словами, тупо перекидывание данных. нужно сделать так, чтобы это происходило каждые 15 минут.
>причем тут вообще IIS
приложение должно быть на asp.net, такие приложение разворачиваются в IIS
Аноним 23/11/22 Срд 20:14:17 2521686 269
>>2521674
Конечно важно
Потому что суть веб-сервиса ПРИНИМАТЬ запросы

Иначе это просто сервис который тупо цикл с периожом в нужное время
Аноним 23/11/22 Срд 20:19:15 2521691 270
>>2521660
>ты о чем вообще?
О том, что в NetFramework WPF-проекте я вообще не парился, если в xaml-разметке присутствовала кириллица. Я даже порой иконки тащил прямо из символа юникода, если надо какую стрелку вставить.

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

Щас почитал SO, все предлагают вставлять коды символов. Вы, блять, больные?
22й год на дворе, вернулись в каменный век. Я себе типа жизнь облегчить хотел, а не решать новые пробелмы.
Аноним 23/11/22 Срд 20:24:33 2521694 271
>>2521691
хз о чем ты.
у самого такой проект еще со времен 2 нета доросший до 4.8
спокойно переехал на 6 когда он вышел
и вот недавно на 7

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

Но в новых проектах предпочитаю строки из ресурсов.
Аноним 23/11/22 Срд 20:24:40 2521695 272
>>2521686
там будут управляющие запросы. (задание параметров)
Аноним 23/11/22 Срд 20:27:17 2521698 273
>>2521694
Да я вроде тоже как-то переводил проект и вроде ошибок не было, а щас создал новый и какая-то херь.
Аноним 23/11/22 Срд 20:28:13 2521700 274
>>2521695
Ну так и делай что задумал. Ну а что еще делать то
делай asp.net проект, пусть принимает запросы. IIS ему особо не нужен, но если хочется, то...да твое дело.
И в нем сервис IHostedService/BackgroundService где
while(!ct.IsCancellationRequested){
делаем работу
await Task.Delay(Timeout.FromMinutes(15))
}

Ну а при внешних запросах меняй в нем что хочешь - это ж singleton (только придется правильно в DI регать)
Аноним 23/11/22 Срд 20:30:27 2521702 275
Image 1.png 5Кб, 319x170
319x170
Аноним 23/11/22 Срд 20:32:04 2521704 276
>>2521702
Я вот щас в ресурсах кириллицу оставил и норм, но как только оставляю ее в Window — ошибка.
Аноним 23/11/22 Срд 20:33:41 2521705 277
>>2521655
>Нужно создать веб-сервис, который будет разворачиваться в IIS
ASp.Net, только ему необязательно в IIS разворачиваться.
>отправляющий запросы в определённый интервал времени. Что почитать по этой теме?
Quartz.net
Аноним 23/11/22 Срд 20:37:29 2521709 278
>>2521704
Ну разве что у меня англ студия но это не имеет значения ибо файлы юникод
Аноним 23/11/22 Срд 20:41:58 2521712 279
>>2521709
Короче это был какой-то глюк студии. Щас создал новое окно и все хорошо. Я не знаю что это и почему.
Аноним 23/11/22 Срд 20:53:16 2521720 280
шарпаны, есть два разных интерфейса, наследовать один от другого или от общего базового не хочу
можно ли сделать так, чтобы если в классе определен один интерфейс компилятор ОБЯЗЫВАЛ меня определять второй там же?
Аноним 23/11/22 Срд 20:57:52 2521722 281
>>2521720
С чего ему тебе приказывать

Это ты можешь запилить агализатор
или проверить на старте в рантайме для дебаг версии.
Аноним 23/11/22 Срд 20:58:51 2521723 282
изображение.png 12Кб, 2338x100
2338x100
Почему запрос выделен красным?
Аноним 23/11/22 Срд 21:00:14 2521724 283
>>2521723
Видимо раскрасил увидев слово failed
Аноним 23/11/22 Срд 21:04:55 2521728 284
>>2521724
А почему failed? Я ведь ничего не трогал, делал чисто по руководству.
Аноним 23/11/22 Срд 21:07:35 2521729 285
>>2521728
Ну так ты свойство в классе назвал
А у тебя вывод видимо ищет маркеры в выводе для раскраски
Аноним 23/11/22 Срд 21:10:48 2521731 286
>>2521729
А, вот ты о чем. Я сперва подумал, что рядом с запросом failed было, а плагин его скрыл, заменив цветом.
Аноним 23/11/22 Срд 23:15:06 2521769 287
Миксеры2.mp4 9336Кб, 320x240, 00:02:01
320x240
>>2521720
Нет, ты уж прям хочешь какого-то совсем необычного поведения на уровне вангования. Это же ведь суть интерфейсов — быть смиксованными и уже потом реализоваться. Это же буквально шаблон из трех слов. Уходит традиция, тонкая традиция, когда ты берешь спокойно IКартофель, IМорковь берешь, IБаклажаны берешь, или еще берешь, например, это ... и IМорковки берется например, берется и забираются IДети и IСтарыеЛюди, собираются где-то на Кухне.cs, или если угодно вам ... или если угодно вам в КухонномПритворе.csproj, собираются интерфейсы и спокойно делается руками всё. От этого миксера пошла и микс-культура. Микс-культура нарезается в подпольных фабриках...
Аноним 23/11/22 Срд 23:59:07 2521782 288
Граждане, шарполголики, такой вопрос. Есть некое ASP MVC веб приложение на древнем netframeworke. И у этого приложения при попытке паблишинга где-то лапками прописанно к бэку еще и одновременно паблишить и фронт и складывать его в wwwroot и студия пытается подавать команды node и на них и сыпется. Меня интересуют небольшие правки на беке, мне в хуй не уперлось паблишить одновременно с ним виснущий фронт. Как в древнем netframeworke потререть дополнительные, прописанные лапками, команды при паблишинге. В коре это, кажется делается в csproj. А тут де?
Аноним 24/11/22 Чтв 01:33:02 2521810 289
>>2521769
Проорал люто с КухонногоПритвора.csproj
Аноним 24/11/22 Чтв 07:38:24 2521856 290
>>2521769
>Микс-культура нарезается в подпольных фабриках...
На абстрактных подпольных фабриках.
Аноним 24/11/22 Чтв 12:10:43 2522032 291
>>2521782
Сделай exclude на папке с фронтом.
Аноним 24/11/22 Чтв 12:40:21 2522060 292
>>2521782
>>2522032
Сам нашел уже. Было насрано в пропертис проекта -> билд ивэнтс -> пост билд команд лайн
Аноним 24/11/22 Чтв 17:39:55 2522303 293
Есть TermBaseRegister и есть TermStorageRegister : TermBaseRegister

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

Подскажите плиз как ЕФ заставить создать вторую табличку, а не переименовывать старую
Аноним 25/11/22 Птн 02:14:42 2522630 294
Capture.JPG 18Кб, 545x371
545x371
хочу разделить коммуникацию некоторых классов вот этой штукой
имеет ли смысл?
Аноним 25/11/22 Птн 07:52:29 2522693 295
>>2522630
Говно.

Шину событий лучше напиши и прокиджывай ее как сервис везде где нужно непрямое взаимодействие объектов.
Аноним 25/11/22 Птн 09:08:58 2522741 296
>>2522693
а как ее сделать?
и как сервис прокидывать, это же что-то из впф?
Аноним 25/11/22 Птн 10:04:12 2522769 297
>>2522741
как хочешь.
тут все фломастеры
некоторые любят шину за косвенность
другие хейтят шину за косвенность
кто то делает синглтон
кто то таскает с зависимостями
кто то просто строки как имена событий и отдельно объект данных
кто то юзает целые объекты как события
кто то делает получателем метод подходящей сигнатуры
а кто то делает интерфейсы типа IReceiver
Аноним 25/11/22 Птн 10:14:43 2522775 298
>>2522741
А еще кто то просто шлет сообщения ака события типа "всех уведомляем"
другие же делают Domain Events - тут уже и события ДО самого события даже можно послать.
А то и вообще пытаются сшивать части чтобы они друг о друге не знали, а чисто кидались С ОТВЕТАМИ друг в друга, возможно даже инстанцируясь при этом (mediatr)

ты знал куда шел (с)
Аноним 25/11/22 Птн 11:10:52 2522803 299
>>2522303
Конфигурации пропиши
Аноним 25/11/22 Птн 11:20:20 2522808 300
>>2522803
Я нашел, что по дефолту в ЕФе 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 попробовать, но это же кал говна ебаный, от которого только головняк при сборе данных будет кмк
Аноним 25/11/22 Птн 11:21:21 2522809 301
Аноним 25/11/22 Птн 11:35:17 2522824 302
Eb.png 16Кб, 834x518
834x518
>>2522741
>а как ее сделать?
Например как на пике.

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

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

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

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

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

Небольшое замечание: на пикче использованы слабые события, чтобы не было нужды явно отписываться от шины, когда класс получатель становится не нужен. Если использовать обычные делегаты, то нужно отписывааться явно, чтобы не получить утечку память. Слабые события создают меньше головняка с правильным удалением объектов, но внутри у них уличная магия.
Аноним 25/11/22 Птн 11:46:11 2522832 303
>>2522824
>когда класс получатель становится не нужен
Вот только отписка так будет только когда GC придет
А до этого так и будет получать уведомления и реагировать, хотя уже не нужно

>Слабые события создают меньше головняка с правильным удалением объектов
самый лучший подход это сильная (ну то есть не слабая) подписка с lifetime-ом
Аноним 25/11/22 Птн 11:53:52 2522836 304
>>2522832
>Вот только отписка так будет только когда GC придет
Ноуп. В моей реализации дохлый класс отпишется когда произойдет любое событие на которое он потписан.

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

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

>самый лучший подход это сильная (ну то есть не слабая) подписка с lifetime-ом
Можно и так.
Аноним 25/11/22 Птн 12:04:53 2522850 305
>>2522836
у тебя вера в то, что пункт 2 произойдет быстро. На деле твой объект лежит во втором поколении и неизвестно когда GC почистит второе поколение.
Аноним 25/11/22 Птн 12:13:11 2522853 306
>>2522850
Вспомнил лузный флаг IsDisposed и его проверку в каждом публичноv методе. Не вижу проблем добавить еще один флаг IsDead чтобы запретить прием нежелательных событий после кончины объекта. Один флаг всяк проще чем отписка от 100500 событий в шине.

>пункт 2 произойдет быстро
Алсо у меня такой проблемы не было. Высокоуровневые события происходят оче редко, между ними всегда успевает встрять GC.
Аноним 25/11/22 Птн 13:39:21 2522910 307
>>2522853
>Один флаг всяк проще чем отписка от 100500 событий в шине.
отписка всегда лучше.
Ведь сам компонент может продолжать жить, просто не нужные ему события. А значит без механизма явной отписки никуда.

Нужна агитация за использования лайфтаймов, чтобы народ перестал страдать фигней и сразу делал правильно.
Аноним 25/11/22 Птн 13:42:31 2522912 308
>>2522910
>Нужна агитация за использования лайфтаймов
Дай годную статью, а то нихуя не понятно.
Аноним 25/11/22 Птн 14:00:29 2522923 309
>>2515951 (OP)
Есть уважаемый аноном современный курс или книга по асп нету, кроме доки? Английский знаю
Аноним 25/11/22 Птн 14:09:24 2522931 310
>>2522912
статью не могу. могу дать годный доклад
https://www.youtube.com/watch?v=Sq_h5bVWJ0k

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

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

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

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

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

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

Но это не тру - финализатор вызывается в отдельном потоке, неизвестно когда.
Это костыль (плохой) для решения проблемы "забыть диспознуть"
Аноним 25/11/22 Птн 14:33:51 2522943 313
>>2522936
Ресурсы не обязательно управляются сборщиком мусора или операционной системой. Это может быть, к примеру, временный файл, который надо явным действием удалить, или завершение сессии пользователя на сервере, для чего надо отправить туда запрос. И всё это придётся делать в Dispose.
Аноним 25/11/22 Птн 14:40:59 2522950 314
>>2522912
Если очень просто, то это как
CancellationTokenSource и CancellationToken, где CancellationToken

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

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

Семантика это важно. Вон мелкие используют CancellationToken как события appllication в асп.нет, что вызывает недоумение - ну да, там есть Register но как бы от CancellationToken ожидается отмена, а для событий есть...ну event
Аноним 25/11/22 Птн 15:09:16 2522963 315
У меня в таблице есть два поля: дата начала и дата завершения. Можно как-то с помощью атрибутов или fluent api задать условие, согласно которому первая должна быть меньше второй?
Аноним 25/11/22 Птн 16:02:06 2523007 316
Аноним 25/11/22 Птн 16:11:28 2523017 317
>>2523007
Там есть

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

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

Лично я с этим согласен
Аноним 25/11/22 Птн 16:15:57 2523021 318
>>2523007
Ну наебали с результатами значит наебали, чего бухтеть? Жаль конечно нашего techempower-шизика, он с этой таблицей носился по всей борде больше года, а тут такое вскрылось...
Аноним 25/11/22 Птн 16:22:52 2523026 319
image.png 18Кб, 755x262
755x262
>>2522963
Да, можешь сделать кастомный аттрибут, наследованный от ValidationAttribute и надписать метод IsValid как тебе удобно.

Или можно как на пикрил, но надо следить, чтобы у MaxValue всегда было значение.
Аноним 25/11/22 Птн 16:29:40 2523037 320
>>2523007
А что там? Снова мухлюют с бенчмарками? Вот это новость (нет).

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

К сожалению мы живем во времена пыли в глаза и впечатлительных людей, иначе пройдут мимо.
Аноним 25/11/22 Птн 16:57:52 2523062 321
>>2522769
>>2522775
>>2522824
сложно пиздос и это получается надо эту шину зависимостью всех кому надо общаться держать?
Аноним 25/11/22 Птн 17:17:45 2523087 322
>>2523062
ну шину легко сделать или взять готовую
а вот выбирать как с ней работать - тут сложно
можешь держать, передавая через конструктор
может статик (те же Domain Events если будешь гуглить то сплошные статики)
а можешь как медиатр - посылатель через конструктор, а вот получатель только реализует интерфейс и сам не подписывается. (но вот лично мне такое не нравится - если подписчик не инстанцирован, значит нечего его будить)
Аноним 25/11/22 Птн 17:24:00 2523094 323
>>2523087
если шину передавать через конструктор то это получается во всех объектах которые создают объекты, которым нужна шина, ее надо держать в референсах т.е. к прочим параметрам при создании надо еще и шину добавлять
если у меня например создание:
MyObject o = new myObject(arg1, arg2, arg3);
то с шиной будет
MyObject o = new myObject(arg1, arg2, arg3, bus);
или можно как-то иначе?
Аноним 25/11/22 Птн 17:36:20 2523107 324
>>2523094
ну да, зависимостей много
но как бы их создает DI

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

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

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

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

Я как то заморочился и у меня
1 во вьюмоделях мессенджер имеет события с текстовыми именами, вызывает методы и имеет токен. Неудобство - только в рантайме узнаешь, что тип объекта данных не подходит
2 а вот подобие домаиневентс - там классы определяют событие. Целевой класс может иметь несколько хендлеров. Удобно подписывать, неудобно отписывать (обычно и не нужно)
3 я не люблю медиатр с его DI - да ну нечего будить компоненты, да и вообще такая тотальная косвенность приводит к тому что непонятно где что кого. Поэтому у меня подписки явные. Отписки - lifetime отпишет
Аноним 25/11/22 Птн 17:49:33 2523118 325
>>2523026
Спасибо за ответ, воспользуюсь атрибутами. Только тогда возникает еще один вопрос, вот у меня есть класс представляющий таблицу, например book, и класс bookdto, который я использую для получения жсонов, мне получается нужно будет дублировать атрибуты, это не считается плохой практикой?
Аноним 25/11/22 Птн 17:56:07 2523124 326
>>2523118
А вообще, где можно найти пример эталонного web api приложения, чтобы знать к чему стремиться?
Аноним 25/11/22 Птн 18:10:52 2523142 327
>>2523124
Мечтаю вкатиься шарпы, но работа не дает. Два тимлида заставляют сидеть на их технологиях: питухонеры и паскалисты. Это какие-то два микроада. Как хитростью незаметно перевести их на рельсы шарпа?
Аноним 25/11/22 Птн 18:13:16 2523145 328
>>2523142
да прям таки
питончик тоже норм
ну который с типизацией и если не нужна сильная многопоточность.
Аноним 25/11/22 Птн 19:01:01 2523194 329
>>2523142
Расскажи про паскаль
Аноним 25/11/22 Птн 19:01:47 2523196 330
>>2523142
>паскалисты
Делфи в 2023 году?
Аноним 25/11/22 Птн 19:04:53 2523199 331
>>2523142
>и паскалисты
Ебать тебе повезло, аж завидую малость. Хоть нормальный ЯП попробуешь перед тем как твои мозги будут безвозвратно съедены питоном, шарпом или жабаскриптом.
Аноним 25/11/22 Птн 19:07:15 2523201 332
>>2523199
Ты не фан Столярова?
Аноним 25/11/22 Птн 19:08:10 2523205 333
>>2519745
Блин, они еще и сериализацию/десериализацию для него не завезли, ну как так можно.
Аноним 25/11/22 Птн 19:15:54 2523215 334
>>2523201
Нет. Столяров швабодошизик, который боится исполнять чужие покакуньуки на своем калькуляторе. Я свободный от этих предрассудков человек и готов получить и выполнить вирос-шифровальщик хоть по почте.

Паскаль я уважаю, из системных языков он топовый. Самое лучшее отношение граблей к полезному результату. Там где на сишечке будешь охуевать от УБ при выделении памяти и ловить сегфолты работая со строками через указатели, в паскале все делается легко и непринужденно без подводных камней.
Аноним 25/11/22 Птн 19:18:17 2523217 335
>>2523215
С таким же успехом можно го использовать
Аноним 25/11/22 Птн 19:25:04 2523220 336
>>2523217
Нельзя же. Конпелятор go держит программиста за тупое быдло и постоянно его унижает. Чего стоит хотя бы форс стиля скобок, бесконечные ублюдочные проверки err там где надо и ненадо. Не нужно использовать языки которые умнее тебя в плохом смысле этого слова.
Аноним 25/11/22 Птн 19:34:53 2523229 337
>>2523220
На Расте тогда можно
Аноним 25/11/22 Птн 19:36:13 2523231 338
>>2523229
>я научю вас чисто срать

Спасибо, доктор!
Аноним 25/11/22 Птн 19:40:28 2523235 339
>>2523231
Ладно, тогда на Паскале
Аноним 25/11/22 Птн 19:47:43 2523238 340
>>2515951 (OP)
Можно ли использовать razor вне asp.net?
Допустим, считываю строки с файла и передаю их и модель/анонимный тип в соответствующий метод, который возвращает строку.
Аноним 25/11/22 Птн 20:04:10 2523243 341
Аноним 25/11/22 Птн 22:23:23 2523337 342
5lqJ81dbIY.jpg 83Кб, 888x495
888x495
Хочу расставить все точки над "и" по поводу словарей ресурсов. Я уже задавал вопрос, но его смыло и, в общем, обсуждение перетекло в другое русло. Платформа NET6.

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

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

У меня вопрос, это студией как-то фильтруется? Как-то она чистит вилкой? Потому что, если все оставить как есть, то это будет пугающе для производительности.
Аноним 25/11/22 Птн 22:30:32 2523349 343
2022-11-2522-27[...].png 44Кб, 543x402
543x402
>>2523337
П.И.З.Д.Е.Ц.
Ну я подозревал, что мудоебство синтаксиса xaml не может быть адекватным и под капотом, но чтоб такое ...

Вы понимаете, что ваше байтоебство и попытки отловить миллисекунды, просто уничтожаются одной кнопкой на WPF?
Аноним 26/11/22 Суб 00:18:38 2523422 344
>>2523349
хз о чем он пишет
если он про что то что в словаре - ну конечно создается, а как иначе (ну для решения этого вроде есть x:Shared). А "ссылается на словарь" - непонятно что это
Аноним 26/11/22 Суб 02:05:41 2523480 345
1.JPG 54Кб, 1008x628
1008x628
2.JPG 55Кб, 970x590
970x590
>>2523107
нашел вот такую, статическая шина, не знаю пока буду ли делать обычной, но мне оче понравился т.к. я могу тупо интерфейсы свои унаследовать и они сразу заработают как надо:
https://github.com/velik97/EventBus
я допилил в него свое понимание lifetime(выделил на пиках)
enum из двух записей: once, repeating
внутри листа подписчиков(пик 1) сделал словарь подписчик - enum и метод возвращающий enum подписчика
при подписке по дефолту передаю repeating
в конце каждой инвокации(пик 2) проверяю, если enum once, то удаляю из листа подписчиков отписываю и удаляю kvp из словаря
единственное что на каждый лист подписчиков должен быть свой словарь и наверное надо будет еще и проверять что ключ такой вообще есть прежде чем возвращать через GetLifetime, хотя если подписчик есть в листе он должен быть и в словаре и наверное проверка просто избыточна...
Аноним 26/11/22 Суб 07:54:32 2523519 346
>>2523199
Фактически использую питон с html фреймфорком и дельфи с sql. Крч фуллстак фокусник на зарплате
Аноним 26/11/22 Суб 07:58:14 2523520 347
16666151525360.mp4 3259Кб, 576x1024, 00:00:11
576x1024
Научите программировать, пожалуста.
Аноним 26/11/22 Суб 08:15:20 2523521 348
>>2523194
>>2523196
Остался огромный легаси проект по взаимодействию с БД Firebird, в котором храняся данные о товарах и клиентах кабанчиков. Это БД говно, которое нельзя дропнуть, но работает во всяких лазарусах из под коробки.

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

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

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

Думаю со временем мне поручат сделать более упрощенные аналоги с такими характеристиками:
- сделать много маленьких программ вместо одной большой на отдел для разных задач с максимум 2 уровенями вложенности вместо 3-4 чтобы даже секретутки могли без жопной боли пользоваться
- написать простенький мануал
- использовать свежие исходники (лазарус)
- использовать рукописный код (местами быстрее дефолтных компонентов) от текущего проекта
Аноним 26/11/22 Суб 08:37:08 2523532 349
14912140016040.jpg 39Кб, 600x600
600x600
>>2523480
В резюме потом напиши ачивку "Архитектурный астронавт 3-го класса".
Аноним 26/11/22 Суб 10:03:21 2523560 350
>>2523422
>ну для решения этого вроде есть x:Shared
Это что такое? Читал про SharedResourceDictionary, но это какие-то самопальные классы.
Аноним 26/11/22 Суб 10:47:21 2523588 351
>>2523560
Ясно, это атрибут Shared в словаре ресурсов. По умолчанию true и значит элементы работают с одним и тем же экземпляром.

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

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

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

А так кто как хочет, то так дрочит. Результат один и тот же. Сам использую и то и другое, особенно использую окно свойств, когда забываю как назывался параметр.
Аноним 26/11/22 Суб 12:26:02 2523712 356
>>2523480
я не понимаю твое понимание 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,
)
Аноним 26/11/22 Суб 16:24:24 2523882 357
Screenshot from[...].png 139Кб, 1781x1041
1781x1041
Screenshot from[...].png 122Кб, 1781x1041
1781x1041
Screenshot from[...].png 110Кб, 1781x1041
1781x1041
сап, пришло время таки укатиться с js в какой нить другой язык,
выбрал сисярп
начал писать свою обертку над апи телеги
карочи
см пик 1
жсон результат запроса - ок выводится
см пик 2
хули
GetMeResponse? requestResponse = JsonSerializer.Deserialize<GetMeResponse>(result);
null возвращает?

алсо вопрос по пик2
см пик 3
мне тут райдер подсвечивает шо поля должны называться с заглавной буквы, хотя в апи телеги ключи в жсон с маленькой, как это обойти?
Аноним 26/11/22 Суб 16:29:51 2523896 358
>>2523882
на пик2-3 подсвечивает потому, что твои поля нигде не используются.
Аноним 26/11/22 Суб 16:31:57 2523901 359
>>2523896
а блин, рили, в глаза долбанулся и не прочел что пишет, слишком часто это сообщение видел о том что с заглавной поля должны быть
пиздос наркоманство кстати
Аноним 26/11/22 Суб 16:37:11 2523913 360
>>2523901
Не знаю как в шарпах, но в бейсике с заглавной нужно писать публичные свойства, а не поля. А вот приватные поля в шарпе точно пишутся с малой буквы.
Насчет публичных полей — вопрос, вроде как не делают так.

Но опять же это просто замечание к общим стандартам форматирования, а не ошибка.
Аноним 26/11/22 Суб 16:52:56 2523927 361
>>2523712
так я тоже не понимаю. я хз что такое CancellationToken
можно где-то посмотрет на то что делает lifetime.Bracket(sub, unsub) у тебя?
Аноним 26/11/22 Суб 16:57:00 2523934 362
Unsaved Image 1.jpg 118Кб, 1781x887
1781x887
та какого!?!?
Аноним 26/11/22 Суб 17:05:19 2523944 363
>>2523927

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

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

Но если ты не знаешь про CancellationToken то значит ты на знаешь основные элементы дотнета и тут уж увы
Аноним 26/11/22 Суб 17:07:04 2523946 364
>>2523944
посмотрю конечно
я же юнитихолоп, ни разу не видел этих токенов
Аноним 26/11/22 Суб 17:13:15 2523950 365
>>2523946
Тоже раньше не понимал про какие токены говорят.
Они юзаются, чтобы завершить всякую асинхронную порашу.
На самом деле там три строки всего.

Я так делал аналог модального окна на асинках. Пока флаг не поменяю, не будет возврата с асинхронной функции.
Аноним 26/11/22 Суб 17:13:55 2523953 366
>>2523946
они появились в 4 дотнете

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

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

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

Если вдруг в юнити нет CancellationToken то как же вы отменяете операцию что перестала быть актуально?
Аноним 26/11/22 Суб 17:23:50 2523964 367
>>2523950
>CancellationTokenSource + CancellationToken
>TaskCompletionSource + Task

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

А CancellationTokenSource использовал в асинхронных функциях с бесконечными циклами, чтобы прервать их работу. Например когда пытаешься подключиться к серверу, а он долго не отвечает. Тогда ты меняешь флаг в токене и асихронная функция это детектит и прекращает свои попытки подключиться к серверу.
Аноним 26/11/22 Суб 17:24:42 2523965 368
Аноним 26/11/22 Суб 17:27:08 2523966 369
>>2523882
разборался, я не указал что ok и result имеют геттер/сеттер

схуя ли оно молча False и null подставило((
Аноним 26/11/22 Суб 17:30:39 2523968 370
>>2523966
А что у вас в жабаскрипте по умолчанию true?

По поводу Null, не все приняли однозначно нововведение, это вроде можно отключить в настройках. У меня в бейсике булевые переменные по умолчанию false возвращают.
Аноним 26/11/22 Суб 17:33:06 2523973 371
>>2523968
ну я ожидал что если сеттера нету, рантайм ошибку выстрелит
Аноним 26/11/22 Суб 17:33:31 2523974 372
>>2523964
>А CancellationTokenSource использовал в асинхронных функциях с бесконечными циклами, чтобы прервать их работу.
ну вот лайфтайм то же самое, просто семантика "вы еще живы"
при отмене CancellationToken ты прекращаешь операцию, при терминации лайфтайма ты выполняешь отписку/очистку и те же отмены операций если что то выполняется (lifetime передается туда где принимается CancellationToken)

Ничего этакого в идее нет. суть в реализации - жетбраинсы поясняют проблему порядка терминации, многоступенчатой терминации, выполнение тасков (которые пока выполняются запрещают смерть лайфтайма чтобы гарантированно жил ресурс) и так далее.
Аноним 26/11/22 Суб 17:38:01 2523978 373
>>2523973
>ну я ожидал что если сеттера нету, рантайм ошибку выстрелит
так у тебя же на скрине в свойствах есть и геттер и сеттер.
Аноним 26/11/22 Суб 17:40:22 2523981 374
Аноним 26/11/22 Суб 17:55:38 2524000 375
>>2523981
Так GetMeResponse это класс, кек. При чем здесь геттер и сеттер?
У тебя там в поле щас пусто — Nothing (Null в этом вашем шарпе). Никто туда не поместил новых экземпляров, вот и пусто.
А если поместят, то вернет экземпляр этого класса (че ты там хотел выводить в консоль? Как ты это себе представляешь?)

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

Почитай про различия классов от структур.
Аноним 26/11/22 Суб 17:56:46 2524001 376
>>2524000
>отличия классов от структур*
Аноним 26/11/22 Суб 18:01:43 2524009 377
Screenshot from[...].png 93Кб, 1781x887
1781x887
>>2524000
> да, и у него есть поля ok и result

у полей ok/result нету геттера и сеттера
соответственно
JsonSerializer.Deserialize<GetMeResult>(result);
просто не смог туда ничего сложить
насколько я понял
Аноним 26/11/22 Суб 18:07:47 2524022 378
>>2524009
Смог но не захотел
Потому что они не свойства
А сериализатор ищет свойства
А поля.... В зависимости от сериализатора и настроек можно
Аноним 26/11/22 Суб 18:08:51 2524025 379
>>2524009
Используй нормальные имена свойств
А не эту дичь
Это не жс
Аноним 26/11/22 Суб 18:12:50 2524031 380
2022-11-2618-10[...].png 13Кб, 358x301
358x301
>>2524009
Ах вот ты про что. Ну про причуды шарпа я не знаком.
В бейсике есть укороченное свойство как у тебя написано без геттера и сеттера, а есть расширенная — с ними.

Поля вообще так не используют, они больше используются внутри классов. Для "внешнего мира" используют свойства.
Аноним 26/11/22 Суб 18:16:50 2524035 381
Аноним 26/11/22 Суб 18:20:10 2524038 382
>>2524031
да то же самое же. нет никаких отличий
есть поля, есть свойства. Все пишут get/set на автомате забыв различия

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

А имена дай нормальный и используй [JsonPropertyName9"aaa")]
Аноним 26/11/22 Суб 18:24:08 2524051 383
>>2524038
>Все пишут get/set на автомате забыв различия
Я только сейчас задумался как вы вообще отличаете поля от свойств.

У нас это ключевое слово Property, а у вас это наличие get/set, видимо.
Аноним 26/11/22 Суб 22:00:37 2524278 384
>>2524051
>Я только сейчас задумался как вы вообще отличаете поля от свойств.
Свойство - это по сути сахар над полями, позволяющий их инкапсулировать.
Конвенционально - в шарпе не принято делать публичные поля. Т.е. все что ты делаешь публичным должно иметь геттер и/или сеттер/инициализатор (развернутые или пустые - не важно)
private int _myVar; - поле
public int MyVar {get; init; } - свойство
public myvar; - говнокод
Это все, естественно, если ты кодишь в ООП стиле. Если что-то другое, то можешь не заморачиваться.
Аноним 26/11/22 Суб 22:01:42 2524279 385
>>2524051
>а у вас это наличие get/set, видимо
Да.
Аноним 26/11/22 Суб 22:15:33 2524292 386
А есть какой-то способ выгружать ресурсы у TreeView? А то чем больше открываю вкладок, тем больше оперативы жрет. При этом скрытие оперативу не снижает.

Выстраивал по MVVM паттерну. У меня же все сбиндено ко вьюмодели. Я же не могу просто удалять итемы — иначе удалятся ноды из базы.
Аноним 26/11/22 Суб 23:53:34 2524342 387
Аноним 26/11/22 Суб 23:55:00 2524343 388
>>2524342
Блин. Скопипастил из редактора, там в конструкторе - > на >= надо заменить для минут.
Аноним 27/11/22 Вск 00:53:48 2524365 389
Шарпач, подскажи. Есть пакет microsoft.extensions.dependencyinjection
Регистрируем сервис:
interface IService {}
class Service : IService
{
public Service() {}
}

services.AddTransient<IService, Service>();

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

class Service : IService
{
public Service(string yoba) {}
}
Аноним 27/11/22 Вск 01:13:42 2524376 390
.png 30Кб, 857x214
857x214
>>2524365
Например как-то так?
Аноним 27/11/22 Вск 01:48:21 2524394 391
>>2524292
Гугли виртуализация

А потом страдай.
Аноним 27/11/22 Вск 08:32:56 2524564 392
>>2524342
23 кого-то посмотрели пасту, а в тредике никто не ответил(((
Вот что за дела?
Аноним 27/11/22 Вск 11:01:07 2524631 393
>>2524564
Это заговор, чтобы заставить тебя страдать!!!
или нет
это просто показывает твою ничтожность, что никто не хочет уделять тебе внимания!!! - вот

или все гораздо проще - первой ссылкой открывается код, который ни о чем без задачи
А потом открывается сама задача и там "чет страшное на буржуйском, влом разбираться"
Аноним 27/11/22 Вск 11:04:49 2524634 394
>>2524631
> чет страшное на буржуйском, влом разбираться
Кхм. Я думал все кодеры как минимум читать умеют на буржуйском(((
Аноним 27/11/22 Вск 11:58:52 2524650 395
изображение.png 689Кб, 1920x1080
1920x1080
Как тут сделать цикл while?
Аноним 27/11/22 Вск 12:13:34 2524654 396
Аноним 27/11/22 Вск 13:23:37 2524723 397
image.png 131Кб, 899x566
899x566
>>2524342
>Шарпач, покритикуй решение задачки.

- Простыня из if-ов
- Магические цифры (имею в виду индексы массивов), через день ты заебешься вспоминать за какой период у тебя отвечает _data[2]
- Использование массивов в логике.
- Если придется добавлять какой-либо период (например недели), то это будет ебанина.
Аноним 27/11/22 Вск 13:43:16 2524737 398
image.png 341Кб, 1276x1164
1276x1164
image.png 962Кб, 2580x1412
2580x1412
image.png 525Кб, 1512x1242
1512x1242
>>2524342
>>2524723
согласен с этим

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

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

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

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

мимо жаваскриптер
Аноним 27/11/22 Вск 13:52:58 2524742 399
>>2524723
>>2524737
Спасибо. Со всем согласен. Нужно наверное было после того как прошлись тесты - посмотреть свежим взглядом и избавиться от простыни ифов и циклов.

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

Событие ScrollChanged происходит уже после скроллинга.
Аноним 27/11/22 Вск 16:23:37 2524868 404
>>2524746
>Он же только захламляет код и ухудшает читаемость.
Тогда у тебя будет куча this. что еще больше захламляет код и ухудшает читаемость.
Аноним 27/11/22 Вск 16:31:45 2524878 405
>>2524868
this можно писать только при коллизиях, а ебучий андеркейс засоряет весь код как раковая опухель

плюнул в ебало дебилам которые протащили андеркейс в стайл гайд от майков
Аноним 27/11/22 Вск 16:35:11 2524883 406
>>2524878
Двачую. С парой полей еще ничего, но от большого количества в коде начинает рябить в глазах.
Аноним 27/11/22 Вск 16:36:47 2524886 407
>>2524868
>Тогда у тебя будет куча this
Можно просто юзать имя без подчеркивания, но с малой буквы.
Аноним 27/11/22 Вск 16:55:37 2524910 408
image.png 47Кб, 432x232
432x232
>>2524742
>Ты сразу сел и придумал такое решение?
>Просто как?
Знания и опыт.
1) Изучай инструменты которыми пользуешься. Во первых специфические (напирмер сам C# и его библиотеки, фреймворки), во вторых общие (саму теорию программирования, математика, логика, комбинаторика и т.д.)
Вот тебе пример. Если посмотреть на пример из твоего же кода на пике. Ты берешь общее значение секунд и вычитаешь из него значение года в цикле, чтобы определить количество лет помещающихся в нем и остаток на другие периоды. Тогда как знай ты математику знал бы, что это решается всего двумя действиями. Первое результат целочисленного деления years = second / year и второе результат остатка от деления nextPeriod = second % year
Ты не используешь этого нигде. Почему? Потому что когда ты изучал базу, ты в раздел возможные операторы максимум один раз заглянул и перешел дальше. Ты не прорешал базу, например не разобрал как работают разные типы деления в языке. Это как в школе пытаться решать квадратные уравнения не изучив при этом таблицу умножения и вообще его принципы. Так же и в программировании.
2) Возьми себе за основу, что если ты пишешь код в котором есть повторяющиеся куски, то это плохой код. Если ты написал два одинаковых цикла, отличающиеся только парой переменных, то это нужно переписывать. Понятно, что из этого правила есть куча исключений, но в большинстве случаев это работает так. Увидел повторяющийся код, хотя бы попробуй переписать так чтобы его не было. Например в моем примере тоже есть место которое можно улучшить, цепочка одинаковых вызовов GetTimePart, которые можно было бы засунуть в цикл, если немного помудрить с константами и засунуть их в словарь.
3) Практика и задрачивание. Вот если ты набрал код с моего скрина >>2524723 , погонял его в отладчике, понял как он работает. Попытался его доработать и улучшить по своему, вот тогда тебе это пошло на пользу. Почитай еще что-нибудь по теме. Например если ты почитаешь инфу по типам TimeSpan, DateTime, а так же форматированию при их конвертации через ToString, то поймешь, что вообще в C# эту задачу можно в несколько строк решить.
Аноним 27/11/22 Вск 17:30:52 2524956 409
изображение.png 9Кб, 607x82
607x82
Как писать такое, дайте ссылку в гугле забанили
Аноним 27/11/22 Вск 17:32:49 2524959 410
>>2524365
Лучше так не делать. Всё-таки прелесть DI-конструкторов в соблюдение принципа DIP.


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


Например изучить TimeSpan, который по умолчанию конвертирует секунды в минуты, часы и дни.
Аноним 27/11/22 Вск 17:33:42 2524963 411
Аноним 27/11/22 Вск 17:43:36 2524975 412
>>2524959
>Например изучить TimeSpan, который по умолчанию конвертирует секунды в минуты, часы и дни.
В конце ответа про это есть.
Аноним 27/11/22 Вск 17:59:55 2524988 413
собаку в каждый[...].JPG 8Кб, 306x149
306x149
>>2524868
а я вот так делаю
и никаких зысов и ебучих черточек дидовских не надо
Аноним 27/11/22 Вск 18:01:17 2524992 414
>>2524376
Я не совсем точно описал. Чтобы можно было сделать вызов типа GetRequiredService<IService>("YobaValue");
Аноним 27/11/22 Вск 18:23:13 2525007 415
>>2524988
Твое говно еще хуже.
Аноним 27/11/22 Вск 18:27:15 2525011 416
>>2524988
Кек. Ты заставляешь страдать юзера, который будет пользоваться твоей функцией. В подсказках у него будет @example. За что ты так с ним? Ты бы еще такое имя дал: ADF4-367T-DE7R
Аноним 27/11/22 Вск 18:29:49 2525014 417
>>2524992
Делаешь фабрику нужную тебе.
Регистрируешь ее как сервис.
Потом
var service = GetRequiredService<IServiceFactory>().Create("YobaValue");
Аноним 27/11/22 Вск 19:10:52 2525055 418
>>2525007
>>2525011
ну замените собаку на что угодно например newX или _х если так не нравится собака, суть-то не поменяется, я предлагаю всю эту хуйню в аргументы вынести и оставить поля в покое
моя логика простая, чем меньше писать тем лучше
this.x = x надо писать больше собаки
_x = x и каждое поле так - надо писать больше собаки и смотрится уебищно, никакие аргументы меня не убедят, на дворе 2022, даже vscode умеет выделять приватные поля
Аноним 27/11/22 Вск 19:17:08 2525060 419
>>2525055
И пусть выделяет. А kdiff выделит?
Аноним 27/11/22 Вск 19:27:40 2525068 420
>>2525055
>ну замените собаку на что угодно
Ничего вообще не должно быть. Имена аргументов и публичных свойств должны быть максимально ясны — это первостепенное правило, а уж внутри класса ты изъебывайся как хочешь. Вне зависимости от яп.

Все равно что на кнопках твоей микроволновки будет вот такая вот ебатория $::Start:: вместо Start. Класс это такой же законченный продукт и он должен выглядеть прилично.
Аноним 27/11/22 Вск 19:53:32 2525080 421
В дотнетике сошли с ума.
https://github.com/dotnet/runtime/issues/75933
Предлагают писать уродливый код вместо оптимизации во время компиляции.
https://steven-giesel.com/blogPost/34e0fd95-0b3f-40f2-ba2a-36d1d4eb5601
Добавляют ещё кучу "замороженных" коллекций.
https://www.youtube.com/watch?v=cwBrWn4m9y8
У комьюнити появилась какая-то нездоровая дрочь на низкоуровневые оптимизации.
Аноним 27/11/22 Вск 20:02:13 2525095 422
>>2525080
>У комьюнити появилась какая-то нездоровая дрочь на низкоуровневые оптимизации.
Которые убьются xaml-стилями.
Аноним 27/11/22 Вск 20:02:56 2525097 423
Аноним 27/11/22 Вск 20:48:31 2525150 424
>>2525011
>В подсказках у него будет @example.
Самое смешное, что в подсказке у него не будет варианта с @, будет просто exapmle (по крайней мере в студии). Поэтому его говно и хуже.
Аноним 27/11/22 Вск 20:57:25 2525154 425
image.png 15Кб, 299x384
299x384
image.png 22Кб, 297x688
297x688
Анончик, у меня такой вопрос. Есть ли в студии возможность шаблонизации для проекта? Встроенная или в виде расширения?

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

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

Примечание 2: Сниппеты не подходят, т.к. это на уровне "вставить кусок кода в текущий файл", нужен более широкий функционал.
Аноним 27/11/22 Вск 21:04:53 2525162 426
>>2525154
Тут речь о вставке шаблонов в уже готовый проект.
Ну так пиши расширения для студии, там больше возможностей, чем у чмоппетов.
Аноним 27/11/22 Вск 21:16:19 2525171 427
>>2525162
>Тут речь о вставке шаблонов в уже готовый проект.
Да именно оно.
>Ну так пиши расширения для студии
Ну так я этого и хотел избежать, думал, что готовое уже что-то есть.
Аноним 28/11/22 Пнд 00:59:22 2525274 428
>>2525162
>Ну так пиши расширения для студии, там больше возможностей, чем у чмоппетов.
Анонч, а какие способы кодогенерации есть в C#? Чтобы программно создать какой-либо класс из шаблона, сделать автозамену нужных параметров и закинуть его на диск? Почитал про Т4, но такое ощущение, что это не то.
Аноним 28/11/22 Пнд 01:47:20 2525295 429
>>2525274
>Чтобы программно создать какой-либо класс из шаблона, сделать автозамену нужных параметров и закинуть его на диск?
Ну вот мне пришлось для подобных задач вкатиться в плагины. Там ничего сложного даже с моими, так сказать, способностями, даже при том, что я писал на бейсике, а плагины можно делать только на шарпе.
Единственное, что нужно время на написание всего — это очевидно.

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

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

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

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

>Почитал про Т4
Хз что это. Просто гугли Visual Studio Extensions.
Аноним 28/11/22 Пнд 01:55:28 2525302 430
>>2525295
>По установке деталей не помню, там устанавливаешь нужные компоненты
С этим уже разобрался.
>У тебя там тесть триггеры которые запускают твои команды плагина
С этим тоже.
>Например у меня были проблемы с выводом в окно интерпретации, потому что плагин работает отдельным потоком и для него твой экземпляр студии — пустое место.
С потоками тоже понятно.

>В остальном обычное решение с проектами, функциями, окнами — что хочешь, то и воротишь. Разница только в начальном шаблоне.
Ну это да. Но вот я смог получить инфу по солюшену и по проектам. Могу создать нужные каталоги и даже файлы с простой самодельной кодо-генерацией. Но вот как прокинуть их в сами проекты пока не разобрался.
Аноним 28/11/22 Пнд 01:59:17 2525304 431
>>2525302
>Ну это да. Но вот я смог получить инфу по солюшену и по проектам. Могу создать нужные каталоги и даже файлы с простой самодельной кодо-генерацией. Но вот как прокинуть их в сами проекты пока не разобрался.
На крайняк создавать файлики в решении, а потом как-то их аттачить командой. Как аттачить — это надо искать.
Аноним 28/11/22 Пнд 12:08:23 2525473 432
>>2525080
>вместо оптимизации во время компиляции.
ась? как компилятор узнает что нужно оптимизировать

А так да - аж через 20 лет они поняли что нужны фрозен коллекции. Это те, что в котлине и питоне изначально.
Аноним 28/11/22 Пнд 16:46:34 2525757 433
Как при запросе на обновление сущности в asp net отличить запрос на обнуление от отсутствия изменений?
Аноним 28/11/22 Пнд 16:57:47 2525765 434
Аноним 28/11/22 Пнд 17:06:20 2525774 435
>>2525765
Что тебе не ясно? Вот есть класс
BookDto {
public string Name {get; set;}
public int PageCount {get;set;}
public string AuthorName {get;set;} }
Мне на контроллер приходит запрос на изменение, где Name="ZalupaKonya", PageCount = 666, а AuthorName = null, вопрос собственно в том, как понять, хотел сделавший запрос обнулить имя автора или же просто не хотел его менять.
Аноним 28/11/22 Пнд 17:09:08 2525781 436
>>2525774
такое просто не пройдет валидацию же. а там как сделаешь - может вернешь анпроцессаблеентити или еще как.

а если нулл это штатно то как ты собираешься отличать? ты же не влезешь в мозг пользователя. ну можешь на клиенте переспросить и добавить бул поле, мол это ТАКОЕ
Аноним 28/11/22 Пнд 17:33:49 2525795 437
>>2525781
>такое просто не пройдет валидацию же. а там как сделаешь - может вернешь анпроцессаблеентити или еще как.
Если свойство указано как nullable то всё спокойно пройдёт. Вообще я решил проблему заведя словарь. При обновлении свойства в нём соответствующему ключу присваивается true
Аноним 28/11/22 Пнд 17:45:41 2525804 438
>>2525774
>как понять, хотел сделавший запрос обнулить имя автора или же просто не хотел его менять.
Валидатор прикручиваешь и натравливаешь его на Dto
Аноним 28/11/22 Пнд 17:47:18 2525808 439
>>2525795
>Вообще я решил проблему заведя словарь. При обновлении свойства в нём соответствующему ключу присваивается true
Хуйню ты сделал.
Аноним 28/11/22 Пнд 17:51:27 2525815 440
>>2525808
Почему?
>>2525804
>Валидатор прикручиваешь и натравливаешь его на Dto
И как это поможет?
Аноним 28/11/22 Пнд 18:58:54 2525878 441
>>2525815
>И как это поможет?
Оно будет валидировать
Аноним 28/11/22 Пнд 19:46:25 2525910 442
>>2525815
>И как это поможет?
Ты в валидаторе можешь прописать любые правила для любого поля/набора полей. Прописываешь, что данное поле не должно быть null и тип ошибки который должен выкинуться. А дальше уже строишь логику от этого, либо даешь отлуп, либо продолжаешь но по другой ветке алгоритма.
Аноним 28/11/22 Пнд 19:49:23 2525916 443
>>2525815
>И как это поможет?
RuleFor(x => x.AuthorName ).NotNull().WithErrorDescription(DirectionErrors.AuthorNameIsNull);
Аноним 28/11/22 Пнд 21:18:41 2525987 444
А существует ридонли, который доступен для перезаписи внутри класса, но снаружи возможно только чтение?
Аноним 28/11/22 Пнд 21:19:15 2525988 445
Аноним 28/11/22 Пнд 21:22:10 2525991 446
Аноним 29/11/22 Втр 03:15:40 2526118 447
>>2525910
Так в том то и дело, что я хочу, чтобы поле могло быть null
Аноним 29/11/22 Втр 07:13:33 2526155 448
image.png 361Кб, 733x1000
733x1000
Может кто-нибудь поделиться книгой? Весь интернет перерыл, нигде не нашёл в свободном доступе.
Аноним 29/11/22 Втр 09:53:28 2526211 449
В чём прикол удалять посты про книги по шарпу. Дехенераты.
Аноним 29/11/22 Втр 10:21:16 2526221 450
>>2526211
Возможно шутка про жаву была лишней. У самого было чувство, что перегнул палку, так что, выражаю модерации свои глубочайшие извинения, и тем, чьи посты попали под удар.
Аноним 29/11/22 Втр 12:42:46 2526320 451
image.png 20Кб, 859x337
859x337
Бля сеньеры помидоры помогите
Вот делаю я ебучию 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 и получается такой же как и первый.

Я что то не то отправляю? Или там как то по другому они проверяют коды? Пздц блять нахуй
Аноним 29/11/22 Втр 13:14:57 2526341 452
image.png 22Кб, 863x340
863x340
>>2526320
Так хуярь его в авторизацию, а не в боди.
Аноним 29/11/22 Втр 13:57:11 2526377 453
>>2526211
Погоняло у тебя дегенерат. Почитай шапку, а именно открой вторую ссылку.
Аноним 29/11/22 Втр 16:35:04 2526584 454
>>2526155
Вот она на английском: https://libgen.is/book/index.php?md5=20E870EB08B33873A7039EE837D422A2

И ничего никочает. Один торрент с нулем пиров, сбоку есть ссылка на 28гб добра, но пиров тоже негусто. Швабода файлообмена пиздец просто. Все через жопу у анальников!
Аноним 29/11/22 Втр 18:25:20 2526681 455
chromeYwDwTF0ZeV.png 127Кб, 1364x1187
1364x1187
0000.jpg 25Кб, 600x450
600x450
>>2515951 (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
Аноним 29/11/22 Втр 18:32:14 2526692 456
>>2526681
>.net и .net framework отличаются только кроссплатформой?
нет не только. они хотели сделать новое и чистое и с нуля
то есть "переписать нахрен выбросив легаси"
В итоге выбросили концепцию AppDomain, Thread.Abort, WCF, DataTable и не помню еще чего - из за чего даже тот же Slqite либа не могла переехать и они запилили свою
Потом из этого часть таки портировали для совместимости в коре 2.
Аноним 29/11/22 Втр 18:41:15 2526700 457
>>2526692
.net framework можно получается не трогать, если не собираюсь в банках говно мамонта ковырять? Можно сразу идти в изучение .net (.net core), т.к это современная реализация включающая в себя asp.net или asp.net реализация в .net framework отличается от современного внутри .net (.net core)?
Аноним 29/11/22 Втр 18:43:58 2526701 458
Шарпочане, вопрос по автосвойствам - обращение к свойству внутри типа компилятор поменяет на обращение к полю, которое им же и было создано или как даунич вставит вызов сгенерированного метода set_propertyName?
Аноним 29/11/22 Втр 18:47:43 2526703 459
>>2526701
Ыыыы перформанс метод вызывать дорого аааа
Аноним 29/11/22 Втр 18:50:59 2526704 460
>>2526700
>если не собираюсь в банках говно мамонта ковырять?
Чел, я сейчас в банке сижу и переписываю сервисы с Core2.1 на .NET6. Хуй ты сейчас найдешь где-нибудь .Net Framework, кроме заводов и совсем отсталых гос.контор.
>>2526700
>Можно сразу идти в изучение .net (.net core),
Да учи сразу .NET6, ну или на крайний случай .NET Core3.1 (не ниже)
Ну и еще .NET Standart 2.0 тоже нужен бывает.
Аноним 29/11/22 Втр 19:02:42 2526712 461
>>2526703
Да дорого. Получается компилятор даунич и вставляет вызов?
Аноним 29/11/22 Втр 19:05:17 2526715 462
>>2526712
Да какая разница, в рантайме всё jit оптимизирует
Аноним 29/11/22 Втр 19:07:18 2526716 463
>>2526704
>Хуй ты сейчас найдешь где-нибудь .Net Framework
Зависит от задач. Мне например надо было декомпилирвоать в IL-код, редактировать и снова упаковывать в dll. А для Core у майков нет тулзы для этого — только для dll на нетфреймворке.

Ну и раз уж такая тема, то вопрошаю есть ли какие-то варианты как на этапе конпиляции студии как-то пошурудить IL-код?
Аноним 29/11/22 Втр 19:09:35 2526719 464
Аноним 29/11/22 Втр 19:12:57 2526720 465
>>2526681
>.net и .net framework отличаются только кроссплатформой?
Не знаю как asp.net, там какая-то осбенноая платформа и вечно жалуются, что пирмеры из книг к прошлым версиям не запускаются, но в WPF я даже не заморачиваясь просто копипащу из .net framework в .net

Ну разве что с нюгетами надо быть аккуратнее т.к. либы там бывают в двух версиях, но вроде как проект .net поддерживает обратную совместимость с либами на .net framework.
Аноним 29/11/22 Втр 19:37:14 2526744 466
>>2526704
>Хуй ты сейчас найдешь где-нибудь .Net Framework
Santander, mBank (Commerzbank), XTB, Uniqa. Это клиенты с .net Framework за последние 2 года и только некоторые планируют переходить на .net core. И у всех из них большая часть ключевого функционала висит на framework.
Факт, что сейчас намного выгоднее работать с кором, на перспективу развития, да и интереснее, но из-за этого растут ставки на EF ещё потому что это наверняка легаси, а это никто не любит
Аноним 29/11/22 Втр 19:49:26 2526760 467
>>2526744
Только вот не очень важно того что кто-то сидит на говне мамонта - если всё равно там не работать
Аноним 29/11/22 Втр 22:03:35 2526838 468
А есть какой-нить годный курсик по многопоточке в шарпе? От ITVDN курс С# асинхронное программирование понравился (только по асинк авэйт посмотрел), но на торрентах нашел онли 5 серий, а их больше.
Аноним 29/11/22 Втр 22:43:09 2526860 469
Аноним 29/11/22 Втр 22:58:21 2526866 470
>>2526838
А, нашел полный на рутрекере
Аноним 30/11/22 Срд 05:54:48 2526952 471
>>2526860
Там тоже на английском.
Аноним 30/11/22 Срд 07:23:54 2526972 472
16682730458880.gif 1029Кб, 640x590
640x590
>>2515951 (OP)
Некроёб на связи. Как поставить .net 4 sdk на шинду 10? Сам пакет стоит по дефолту но вот sdk не ставится. В интернете нашел пока установщик для вин 7, но он вываливается с ошибкой. Алсо, у меня на работе есть пк с 10 виндой и этой sdk, её можно как-то оттуда перенести?
Аноним 30/11/22 Срд 07:25:23 2526973 473
*.net framework 4.0 само собой.
>>2526972
Аноним 30/11/22 Срд 13:06:53 2527169 474
Поясните за команды в WPF, зачем они нужны? Они могут принять только один аргумент, а в 98% случаев это шляпа даже по сравнению с EventArgs.

У меня ощущение, что я добровольно лезу в трясину, которая делает мне хуже.
Аноним 30/11/22 Срд 13:37:13 2527190 475
>>2526704
>переписываю сервисы с Core2.1 на .NET6
Зачем? Чтобы что? Не понимаю логику таких переписоывателей. Потом будешь переписывать .NET6 на .NET8 чтобы вкатуны-сузихлебы не терялись от дидовского синтаксиса трехлетней давности? ИБД натуральное.
Аноним 30/11/22 Срд 13:40:21 2527192 476
>>2527190
чтобы не поддерживать легаси.
это новая версия языка
это скорость рантайма
это больше разных фич которых не было.
а еще ему за это платят

>>2527169
это такая фича что позволяет вызвать метод вьюмодели с параметром
и при этом подключены через биндинг
Аноним 30/11/22 Срд 15:49:54 2527297 477
Накидайте список годных книжек для вкатунов
Аноним 30/11/22 Срд 15:51:45 2527300 478
Аноним 30/11/22 Срд 16:45:09 2527327 479
как достичь согласованности с чужим кодом?
вот есть приложение, к нему подключается длл, подписывается на эвент передающий объект и проводит над ним операции.
к этому же приложению подключается мой длл, подписывается на этот же эвент и делает почти тоже самое но иначе.
первый длл сыпет эксепшонами после моих манипуляций если ему не дать отработать перед моим.
менять чужой код я не могу.
что делать посоны? как гарантировать порядок выполнения?
весь код синхронный.
Аноним 30/11/22 Срд 17:25:43 2527359 480
Аноним 30/11/22 Срд 17:26:25 2527362 481
>>2527359
Но должны быть в обоих DLL.
Аноним 30/11/22 Срд 17:27:56 2527364 482
>>2527359
>>2527362
засада... я не могу чужой длл модифицировать
Аноним 30/11/22 Срд 17:36:06 2527367 483
>>2527364
Пишите автору DLL, семидесятипятирублируйте.
Аноним 30/11/22 Срд 17:58:34 2527385 484
>>2527327
так пусть отрабатывает перед твоим.
Аноним 30/11/22 Срд 18:02:12 2527388 485
>>2527367
так я уже. он сказал ебись сам конем УМВР ничего не знаю лол кек.
>>2527385
как? мы подписываемся на старте приложения. я не знаю как гарантировать что его хуйня подпишется раньше моей.
Аноним 30/11/22 Срд 18:04:45 2527390 486
>>2527388
твое приложение же - гарантируй очередность загрузки и инициализации плагинов. приоритеты или что то такое.
Аноним 30/11/22 Срд 18:08:38 2527393 487
>>2527390
так приложение тоже не мое блядь.
Аноним 30/11/22 Срд 18:18:43 2527397 488
>>2527393
делай так же
пусть юзеры жалуются автору длл что их длл крашится
Аноним 30/11/22 Срд 18:22:05 2527399 489
>>2527397
так он скажет это из-за длл того мудака(меня), удоляйте.
короче какой-то клин.
приложение вообще никаких очередностей не поддерживает.
автор другого длл пидор и собака на сене.
я дебил и не могу придумать обходной путь.
Аноним 30/11/22 Срд 18:25:22 2527400 490
>>2527399
а ты скажи что так то норма ожидать что объект придется не девственно чистый. Скажи что твой супер длл обрабатывает эту ситуацию, а его длл нихера проверок не делает и вообще он рукожоп

так что в споре ты прав. и в общем то так и должно решаться.
Аноним 30/11/22 Срд 18:26:31 2527401 491
Аноним 30/11/22 Срд 18:27:42 2527403 492
>>2527401
это не решение. за это время уже могут начать лететь события.
Аноним 30/11/22 Срд 18:33:38 2527406 493
Как наладить коммуникацию между двумя проектами?

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

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

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

Как этот ваш принцип солида поддерживать?
Аноним 30/11/22 Срд 18:34:32 2527407 494
а вот подумал
может сделать как-то:
1. если в ассембли есть его длл
2. каким-то образом подцепиться к ЕГО обработчику в рантайме через рефлексию и когда он закончит, жахнуть мой эвент
3. получится что-то типа гетто цепочки вызовов и все довольны
Аноним 30/11/22 Срд 18:38:35 2527409 495
>>2527406
ну если не хочется сообщениями то просто делай отдельный(е) проекты с контрактами. В рантайме ты можешь гарантировать что будет их реализация. Вот на эти проекты и ссылайся

Посмотри на тот же DI от мелких - у них есть отдельная сборка .Abstractions где собственно сами интерфейсы, на которые все и ссылаются.
Аноним 30/11/22 Срд 18:41:14 2527410 496
>>2527407
Короче, семеро гномов решили трахнуть Белоснежку.
Один гном в бегает к ней в спальню, другие стоят за дверью.
Первый гном кончил, второй гном кончил, третий гном кончил, четвёртый гном кончил, пятый гном кончил, шестой гном кончил, седьмой гном кончил, первый гном слез с Белоснежки.
Аноним 30/11/22 Срд 18:43:41 2527411 497
>>2527410
а белоснежка-то что? эксепшонами сыпет или ей норм? взлетит?
Аноним 30/11/22 Срд 18:44:13 2527412 498
>>2527407
не выйдет. просто не выйдет.
все упрется в "каким то образом"

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

влезать в самое начало на старте приложения, подменять метод как тут в одном из прошлых тредов говорилось - явный перебор.
Аноним 30/11/22 Срд 18:47:49 2527416 499
>>2527412
Ну тогда ничего не остаётся кроме как в цикле сканировать глобальную переменную, чтобы убедиться, что первый гном кончил.
Аноним 30/11/22 Срд 18:50:48 2527417 500
>>2527412
ну я думаю как-то ждать пока не подпишется?
может таску завести и пусть ждет пока не подпишется? а когда подпишется то я сразу его обработчик и подпишу
Аноним 30/11/22 Срд 19:10:08 2527426 501
>>2527417
это все ненадежные костыли
ты можешь в цикле да
но при этом ты должен допускать что за время пока ты фигней страдаешь он уже подписался и пошло событие
Аноним 30/11/22 Срд 19:20:32 2527429 502
>>2527426
так событие юзеринпут
о а кстати может его как раз и авайтить? первый инпут попер = тот чел уже 100% подписался, можно пристраивать гномью многоножку к белоснежке. мне не в падлу подождать если это будет гарантировать что его обработчик уже есть и работает, а юзер скорее всего заметит только маленькую задержку при первом инпуте а дальше все будет работать нормально
Аноним 01/12/22 Чтв 02:55:38 2527626 503
>>2520146
Объясните ньюфагу, что здесь происходит в коде?
Аноним 01/12/22 Чтв 04:40:46 2527645 504
>>2527626
просто построение LINQ и материализация спрятаны в метод с именем и параметрами.

Это то же самое что ты сделаешь метод GetItems где будешь собирать SQL (ну и выборку сделаешь) в зависимости от параметров.
Аноним 01/12/22 Чтв 14:33:14 2527903 505
>>2527626
Линкопетушение происходит. Никогда так не пиши! Даже за деньги так не пиши! Даже за очень большие деньги!

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

Все вышеназваное можно написать на обычном форе более понятно, но почему сейчас так не модно. Как хорошо что в геймдеве у серьезных проектов линк не в почете. Там до сих пор живут духом молодости и ультрахардкора, пока глупые вкатуны копипастят дурной код прямо из доки микрософта.
Аноним 01/12/22 Чтв 14:42:57 2527916 506
>>2527903
Как ты на форах обращение к бд напишешь?
Аноним 01/12/22 Чтв 14:45:37 2527919 507
>>2527916
АDO.net же. Делаешь сначала запрос со своим SQL, потом в цикле перебираешь DataTable с результатом, опционально делаешь с ним что-то осмысленное. Забытые технологии древних.
Аноним 01/12/22 Чтв 14:51:18 2527929 508
>>2527919
С такими советами можешь говна поесть.
Аноним 01/12/22 Чтв 15:13:47 2527961 509
>>2527903
>Линкопетушение происходит. Никогда так не пиши! Даже за деньги так не пиши! Даже за очень большие деньги!
аргументируешь?

>Все вышеназваное можно написать на обычном форе более понятно
мс: смотрите, чтобы не писать форы мы вам принесли новую технологию LINQ - то же самое, но декларативно - короче, читабельнее, понятнее
анон: на обычном форе более понятно
Аноним 01/12/22 Чтв 15:31:59 2527983 510
Есть какая-то принципиальная разница в том, как gc обрабатывает жирный Array или List? Содержимое - рекорды. Такое ощущение, что с листом меньше памяти жрёт.
Аноним 01/12/22 Чтв 15:35:09 2527988 511
>>2527983
List - обертка над Array, при этом размер пустого списка неизвестен и удваивается при заполнении
то есть array по дизайну меньше кушает

содержимое значения не имет - память будет занята на моменте образования пустого array (или его же внутри List)
Аноним 01/12/22 Чтв 15:40:49 2527997 512
>>2527961
>анон: на обычном форе более понятно
Это факт.

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

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

Для меня загадка почему все так подсели на это дерьмо.
Аноним 01/12/22 Чтв 15:43:57 2528000 513
>>2527997
> Это факт.
Нет, это чушь. Фор более понятен для тех, кто не знаком с линком, кто глянул его синтаксис никаких трудностей испытывать не будет.
> У того нюфани который спросил ворос не возникло бы проблем с пониманием базового синтакса фора и пары вызовов в нем объектов переданых в качестве параметров. Просто знаешь базовый синтаксис => все понимаешь. Низкий порог входа означает, что код чистый и написан идиоматическим для языка способом.
А ещё у нюфани не возникло бы проблем с обычным вызовом функций с передачей им аргументов, повод ли это отказывать от внедрения зависимостей?
Аноним 01/12/22 Чтв 15:51:40 2528006 514
>>2527997
>Это факт.
хз для кого факт.
сам я не люблю LINQ из за оверхеда
но не могу отрицать что декларативный код читабельнее императивного кода

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

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

>Для меня загадка почему все так подсели на это дерьмо.
вещь примитивная и базовая. и немного удобная.
а перфоманс нужен не везде.
лично я LINQ юзаю мало.
Аноним 01/12/22 Чтв 15:53:57 2528010 515
>>2528000
>А ещё у нюфани не возникло бы проблем с обычным вызовом функций с передачей им аргументов, повод ли это отказывать от внедрения зависимостей?
Тут надо подумать логически. Если обычный вызов функций с параметрами может заменить контейнер с зависимостями, то почему нет? Делать как можно проще не скатываясь в копипасту - это добродетель.
Аноним 01/12/22 Чтв 17:29:22 2528147 516
Юзаем linq в хайлоаде, мать жива.
Аноним 01/12/22 Чтв 17:31:11 2528149 517
>>2527988
Про это я в курсе. Покопался в теме - linq.ToArray и linq.ToList имеют разные механизмы, и лист получается быстрее и меньше в итоге.
Аноним 01/12/22 Чтв 17:54:35 2528161 518
>>2528149
тебе так кажется. если даже на основе IEnumerable то в обоих случаях используется одинаковая оптимизация.
Аноним 01/12/22 Чтв 18:38:25 2528244 519
>>2528147
>мать жива.
Но это не точно. По данным статистики только 5% программистов пользутся программами своего авторства. Они не видят все их убогой глючности, тормознутости и встратости и наивно думают что с ними все Ок.
Аноним 02/12/22 Птн 07:35:41 2528596 520
Кто тут пользуется райдером? Как вы живёте без автокомплита? Мне самому приходится каждый get set прописывать, и все поля при копировании объекта.
Аноним 02/12/22 Птн 08:59:42 2528621 521
Я вчера общался с опытным дотнетчиком и он сказал, что не генерирует миграции в консольке, а пишет сам ручками.
Аноним 02/12/22 Птн 09:41:37 2528637 522
>>2528621
Лол, а их что, можно генерировать?
Аноним 02/12/22 Птн 09:49:31 2528638 523
>>2528637
Конечно
$dotnet ef migrations add Initial
Аноним 02/12/22 Птн 10:01:53 2528643 524
Аноним 02/12/22 Птн 10:03:44 2528644 525
>>2528643
Нет, просто не всем нравится использовать авто-сгенерированный код. Получается, что не ты сам пишешь программу. Лично меня это загоняет в депрессию.
Аноним 02/12/22 Птн 10:11:19 2528648 526
>>2515951 (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.
Мб добавьте в шапку для будущих некроёбов.
>>2526972
>>2526973
Аноним 02/12/22 Птн 10:21:27 2528650 527
>>2528648
А вот Java SDK можно поставить любую версию на любую ОС. Мало того и на новых версиях можно спокойно выполнять программы, написанные для Java 1.0.
Аноним 02/12/22 Птн 10:37:23 2528658 528
>>2528650
Его раньше тоже можно было спокойно ставить, просто сейчас он считается устаревшим, но это последняя версия фреймворка которую поддерживает XP.
Политика мастдая, щито поделать, десу.
Аноним 02/12/22 Птн 12:11:21 2528746 529
>>2528161
Тыскозал? Попробуй погуглить по теме, бенчмарки посмотреть/погонять
Аноним 02/12/22 Птн 12:12:18 2528749 530
>>2528746
да. тупо посмотри исходники, а не бенчи гоняй
Аноним 02/12/22 Птн 14:22:00 2528831 531
ToList и ToArray работают с абсолютно идентичной скоростью, если не верите - смотрите исходный код дотнета, source.dot.net. Однако, я не утверждаю, что это одинаково вообще всегда, возможно некоторые специфические коллекции в реализации ToList отличаются, но дефолтные Enumerable имеют одинаковую реализацию в виде new List(size), list.add(item). А для ToArray new array[size], array = item. И там и там одна хуйня. Однако, это мы говорим про скорость, а не про память.

мимо шарю за кишочки дотнета
Аноним 02/12/22 Птн 14:38:07 2528850 532
Еще кстати иногда можно передавать в метод List, а не IEnumerable, т.к при енумерации IEnumerable будут вызываться boxing/unboxing, а при енумерации листа - нет, поскольку Enumerator у List является структурой, а у других классов енумератор является классом (в т.ч у массивов)
Аноним 02/12/22 Птн 15:37:24 2528897 533
>>2528621
Мудак он, а не опытный. Это из той же оперы, что и "Нафиг мне ваш гит, я лучше папочки буду архивировать по датам".
Аноним 02/12/22 Птн 15:38:56 2528898 534
>>2528644
>Нет, просто не всем нравится использовать авто-сгенерированный код. Получается, что не ты сам пишешь программу. Лично меня это загоняет в депрессию.
Долбоеб ты. Депрессию иди к психиатру лечи и не распространяй свои загоны на код.
Аноним 02/12/22 Птн 15:42:36 2528902 535
>>2528898
не все используют EF
и не все юзают гит )
Аноним 02/12/22 Птн 15:52:25 2528907 536
>>2528850
>при енумерации IEnumerable будут вызываться boxing/unboxing
Не будет, альтернатива List<T> - это IEnumerable<T>, а не IEnumerable.
Аноним 02/12/22 Птн 16:05:07 2528918 537
Хотя да, посмотрел, будет boxing, но только ведь enumerator'a, так что это не сильно перфоманс затронет.

>>2528907
Аноним 02/12/22 Птн 16:09:22 2528925 538
>>2528897
Я чётко знаю что и в какой папочке лежит, а с гитом постоянно какая-то дроч. Можно вообще всё сломать и лишится кода, а когда ковыряешь папочку, то всегда знаешь, что у тебя есть резервная.
Аноним 02/12/22 Птн 16:31:52 2528954 539
>>2528925
>Можно вообще всё сломать и лишится кода
Как?
Аноним 02/12/22 Птн 16:32:39 2528955 540
Аноним 02/12/22 Птн 16:34:13 2528958 541
>>2528955
Да падажи, как ты гитом там что себе сломаешь не пойму?
Аноним 02/12/22 Птн 16:46:49 2528971 542
r2329045c5v7p.jpg 104Кб, 661x956
661x956
>>2528958
ну и вопросы у тебя
Аноним 02/12/22 Птн 17:55:14 2529040 543
>>2528831
>мимо шарю за кишочки дотнета
а расскажи почему итерация коллекции через Span<T>.Length вместо обычных count/length выходит быстрее
Аноним 02/12/22 Птн 18:02:36 2529046 544
>>2529040
ох уж ты экономист на спичках.
как минимум компилятор/jit может доказать, что Length этой реф структуры не изменится и оптимизировать сей момент

мимокрок
Аноним 02/12/22 Птн 19:54:55 2529122 545
Как можно скопировать байтовый массив в структуру без unsafe?
Аноним 02/12/22 Птн 20:06:58 2529129 546
>>2529122
Есть класс Unsafe. У него методы
Аноним 02/12/22 Птн 20:19:20 2529140 547
Аноним 02/12/22 Птн 21:20:07 2529213 548
Анонче, понимаю что вопрос немного мимо темы, но есть вот такой скрипт

https://pastebin.com/haXzXVRQ

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

Сам я в PS не але, шарящий анон подскажи - верен ли он и сможет ли найти ВСЕ случаи или только по последнему логону работает? НУ и если второе - то в какую сторону исправлять.
Аноним 02/12/22 Птн 23:02:24 2529278 549
>>2529046
ээ ну ты без оскорблений плс я в основном форычей или линками гоняю где могу
просто мне ютуб подкинул видос где мужик распинался как распиздато этот Span обгоняет for и я тут такой ну нихуя себе я вообще не знал даже что так можно
Аноним 03/12/22 Суб 08:10:33 2529402 550
Почему вы решили изучать сишарп, а не джаву?
Аноним 03/12/22 Суб 09:35:59 2529428 551
В целом, в C# всё нормально, у него есть полная кросс-платформенность и быстрый деплой и компиляция. По моему мнение, в сравнении с С/С++/Ёж, это идеальный язык для кроссплатформенного написления приложений. Плюс он переходит под крыло OpenSource.
Аноним 03/12/22 Суб 09:36:28 2529429 552
>>2529428
Ещё про С# - очень хорошая и быстрая реализация GC и очень хорошая реализация бинарных интерфейсов. Не так хорошо как, например, в фейдже, но тоже очень хорошо. У C# очень хороший и отлаженный драйвер С/С++. Весь его компилятор написан именно на С/С++.
Аноним 03/12/22 Суб 09:36:39 2529430 553
С# это божий язык, который в вебе, в чатиках, в десктопе и в мобилке. Он не боится флепов и кроссплатформенности, он просто над ними нешучно ржал еще 10 лет назад!
Аноним 03/12/22 Суб 09:37:14 2529431 554
>>2529402
Я учу сишарп для того, чтобы делать крутые приложения в экосистеме майков. Это даёт мне кайф - я не люблю разрабатывать на других платформах. Я не учу сишарп для того, чтобы устроится на работу, так как работа - это не для меня.
Аноним 03/12/22 Суб 09:37:52 2529432 555
>>2529122
Создать структуру, заполнить её данными и отдать в метод Struct.Copy();
Аноним 03/12/22 Суб 09:38:16 2529433 556
>>2529122
Я знаю только один вариант, а именно: инициализировать структуру-цель и после этого скопировать его в нее при помощи System.Buffer.BlockCopy. А так я не люблю не-уфсейновые варианты, потому что они не безопасны и очень медленные.
Аноним 03/12/22 Суб 09:39:49 2529435 557
>>2528621
Я сам ручками пишу миграции. На этот счёт у меня есть своё мнение. Я считаю, что миграции надо писать ручками, потому что миграции от мейкера - это однозначно миграции, которые в любом случае надо будет дорабатывать. Проще просто по старинке писать миграции руками, чем дорабатывать мейкерские миграции, чтобы они были не тухлыми.
Аноним 03/12/22 Суб 09:46:37 2529437 558
Аноним 03/12/22 Суб 11:53:29 2529528 559
>>2529437
Не легитимный перекат! Остаёмся в этом треде
Аноним 03/12/22 Суб 14:12:19 2529695 560
>>2529433
Потому и придумали
MemoryMarshal.TryRead()
который под капотом использует ref и класс Unsafe, который под капотом использует хз че там за реализация.
Аноним 03/12/22 Суб 15:42:42 2529767 561
Оказывается операторы верхнего уровня добавили ещё в 9 шарпе, а в дотнет 6, который шёл вместе с 10 шарпом, только изменили стартовый шаблоны!
Аноним 03/12/22 Суб 15:45:11 2529773 562
>>2529767
Смутно припоминаю, что ещё год назад были такие шаблоны.
Аноним 03/12/22 Суб 15:48:17 2529776 563
>>2529773
Они настолько быстро всё меняют, что люди не успевают за этими изменениями. Книги отстали уже лет на 10. Тот же Шилдт и Рихтер так и не выпустили новых версий своих книг. А микрософты продолжают клепать новые версии с новым сахаром. Разве они не понимают, что язык засахарится и никто не будет понимать его? Лучше брать пример с джавы и сделать язык более стабильным.
Аноним 03/12/22 Суб 16:09:25 2529791 564
>>2529776
Сахар учится легко, к тому же в MSDN всё описано понятным языком. Хуйня по сравнению с C++, где количество синтаксических фич делает язык сложнее всех популярных языков вместе взятых.
Аноним 03/12/22 Суб 16:18:01 2529802 565
>>2529791
Мне удалось запомнить только стандартный синтаксис. Пишу примерно как на джаве. А все модные сахарные фичи не могу запомнить, а когда вижу в чужом коде, то не понимаю о чём там.
Аноним 03/12/22 Суб 17:15:45 2529835 566
>>2516213
>Metanit лучше всяческих книг!
Нет.
Аноним 03/12/22 Суб 17:17:36 2529837 567
>>2529791
>MSDN
Как там поживается в 2010-х?
Аноним 03/12/22 Суб 17:19:41 2529840 568
>>2529837
О. Еще один школьник
Аноним 03/12/22 Суб 17:22:12 2529842 569
>>2529837
Как сказать MSDN по-зумерски?
Аноним 03/12/22 Суб 17:22:38 2529843 570
Аноним 03/12/22 Суб 17:39:54 2529853 571
>>2529840
>>2529842
MSDN-а не существует уже несколько лет.

>>2529843
Metanit не плох, но это справочник и книги не заменяет.
Аноним 03/12/22 Суб 17:42:23 2529855 572
>>2529853
>MSDN-а не существует уже несколько лет.
А кого это (цензура)
для олдов что мсдн что мсдоки - те же яйца, только в профиль. Ну может заметил что домен изменился - и все.
мсдн это устойчивый термин для офдоки среди тех кто не зумер.
Аноним 03/12/22 Суб 17:45:41 2529856 573
Т.е. MSDN по-зумерски - это мсдоки.
Аноним 03/12/22 Суб 19:28:32 2529926 574
>>2529435
>это однозначно миграции, которые в любом случае надо будет дорабатывать.
Только если код на основе которого они генерятся говно, то тогда конечно надо будет дорабатывать.
Аноним 03/12/22 Суб 19:37:26 2529936 575
>>2529776
>люди не успевают за этими изменениями.
Вкатыши ты хотел сказать. У нормальных людей с пониманием проблем нет.
Аноним 03/12/22 Суб 19:49:12 2529946 576
Можно ли на C# сделать нативную библиотеку, функции которой можно будет вызывать из внешних программ или линковать к коду на нативных языках типа С/С++? Ну то есть надо, чтобы в dll-ке, написанной на шарпе, был стандартный виндовый ентрипоинт, и чтобы её функции можно было бы дергать через _stdcall?

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

Для нет.фреймворка был нугет пакет DllExport, который судя по описанию, позволял это делать. Но для седьмого дотнета реализовать это не получилось, нихрена не работает. А вот на С++ всё работает прекрасно, только я его нихуя не знаю, я не учил его, т.к. верил, что дотнет всемогущ, и на нем можно написать всё что угодно, а оказалось, что нихуя подобного, меня обманули.
Аноним 03/12/22 Суб 20:46:55 2529998 577
>>2529946
Сишарп работает на виртуальной машине, а не компилируется в машинный код, поэтому ограничен в своих возможностях. Серьёзных программ на нём не напишешь.
Аноним 03/12/22 Суб 21:05:30 2530009 578
Аноним 03/12/22 Суб 21:14:31 2530016 579
Аноним 04/12/22 Вск 01:04:28 2530136 580
Есть readonly struct.
Все её методы и свойства можно также пометить как readonly. А можно и не помечать. Что это дает?
Аноним 04/12/22 Вск 07:47:15 2530247 581
>>2530009
Ты Рихтера читал вообще, тупень? Сишарп компилируется в IL-код, который затем выполняется на виртуальной машине CLR. Если на машине нет дотнета, то ты ни одну программу на сишарпе даже не запустишь.
Аноним 04/12/22 Вск 11:31:25 2530349 582
>>2530247
>Если на машине нет дотнета, то ты ни одну программу на сишарпе даже не запустишь.
А вот и нет, тупень.

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

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


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

>>2529946
https://learn.microsoft.com/ru-ru/cpp/dotnet/native-and-dotnet-interoperability?view=msvc-170
Аноним 04/12/22 Вск 12:17:23 2530375 583
>>2530349
>С++/CLI
Будучи голой дотнет макакой, без знания крестов, системщины, ОС, внутренней структуры бинарников, хер ты что-то сделаешь.
Аноним 04/12/22 Вск 12:17:25 2530376 584
>>2530349
И сколько гигов такой монстр будет весить?
Аноним 04/12/22 Вск 12:25:04 2530383 585
>>2530376
Консольное приложение без всяких GUI и EF будет весить 10-15 Мб.
Аноним 04/12/22 Вск 12:40:56 2530407 586
Аноним 04/12/22 Вск 12:50:36 2530427 587
Вот уж чего чего, а этого я в книге о многопоточном программировании встретить не ожидал
> Прежде всего хочу выразить благодарность своему Господу и Спасителю Иисусу Христу. Принятие христианства стало самым важным решением в моей жизни! Если вам понадобится дополнительная информация по этой теме, вы можете связаться со мной на моем сайте http://stephencleary.com/.
Аноним 04/12/22 Вск 16:11:42 2530609 588
>>2530427
Протестанты, сер. Единственные искренно верующие веруны остались.
Аноним 04/12/22 Вск 17:09:42 2530681 589
Устал пилить унылые веб апи, хочу делать настоящие сайты. Посоветуйте годных книг по жсу, желательно где в примерах взаимодействуют с асп нет.
Аноним 05/12/22 Пнд 08:37:38 2531184 590
>>2530247
>выполняется на виртуальной машине CLR
>виртуальная машина
Жабамакака, съеби в страхе из треда.
Аноним 05/12/22 Пнд 10:21:01 2531224 591
>>2529946
Да, используй AOT компиляцию которую полностью доделали в 7 дотнете. Собираешь код в нативную dll без зависимостей от рантайма, ну а дальше дергаешь.
Аноним 05/12/22 Пнд 11:02:01 2531236 592
>>2530136
Это и даёт. Что всё ридонли будет.
Аноним 05/12/22 Пнд 11:34:11 2531245 593
>>2529946
> верил, что дотнет всемогущ, и на нем можно написать всё что угодно, а оказалось, что нихуя подобного, меня обманули
Хаха! Смейтесь над ним!
Аноним 05/12/22 Пнд 11:43:09 2531250 594
>>2531184
>Исполняющая среда для байт-кода - это другое
Верим-верим!
Аноним 05/12/22 Пнд 12:06:22 2531283 595
>>2531184
В дотнете есть виртуальная машина. Проблемы?
Аноним 05/12/22 Пнд 13:02:55 2531356 596
2022-12-0512-57[...].png 7Кб, 411x197
411x197
2022-12-0512-57[...].png 46Кб, 1060x686
1060x686
2022-12-0513-01[...].png 7Кб, 428x169
428x169
2022-12-0513-01[...].png 40Кб, 793x354
793x354
Есть дженерик класс, наследуемый от сетки (пикрил 1).
Почему XAML отказывается видеть такой класс? (пикрил 2)
Если дженерик составляющую убрать, то норм (пикрилы 3, 4)

Как вообще люди используют x:TypeArguments, если класса даже не видно?
Аноним 05/12/22 Пнд 13:10:33 2531368 597
В чем сакральный смысл использования var? Почему мы настолько доверяем машине, что позволяем ей самой определять какой тип у нас используется.
Аноним 05/12/22 Пнд 13:10:57 2531370 598
>>2530136
>Все её методы и свойства можно также пометить как readonly. Что это дает?
<петросян>2х баф к защите от записи</петросян>

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

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

Другое дело, когда метод возвращает object и хер пойми что там на самом деле внутри. В этом случае присваивать результат var как минимум тупо.
Аноним 05/12/22 Пнд 13:44:12 2531413 600
2022-12-0513-43[...].png 9Кб, 736x247
736x247
>>2531356
Ясненько ...
Дженерики напрямую нельзя пихать в XAML — нужно создать класс, который наследует дженерик-класс. Тогда совершенно не ясно предназначение пикриелйтед-хуеты.
Аноним 05/12/22 Пнд 13:50:26 2531424 601
>>2531368
Так иде показывает итоговый тип. А самому его прописывать, когда он может быть весьма длинным, смысла никакого нет, особенно если речь идёт о linq
Аноним 05/12/22 Пнд 15:29:21 2531579 602
>>2531384
>Другое дело, когда метод возвращает object и хер пойми что там на самом деле внутри. В этом случае присваивать результат var как минимум тупо.
Ну вот напишешь ты например PenisType вместо var или object, а у тебя в объекте прилетит VaginaType что делать будешь?
Аноним 05/12/22 Пнд 15:33:34 2531589 603
>>2531368
Бывают ситуации когда похуй на тип в конкретном месте. Например из метода возвращается какой-нибудь IEnumerable и что в нем будет лежать тебе похуй. Тебе нужно будет его просто перебрать и отправить дальше.
Аноним 05/12/22 Пнд 15:38:13 2531595 604
>>2531368
Если не нравится, то можешь делать наоборот.
Вместо:
var instance = new MyClass();
можно использовать:
MyClass instance = new();

Работает то ли с 9-го, то ли с 10-го шарпа.
Аноним 05/12/22 Пнд 15:40:35 2531596 605
>>2531413
все потому что оно все заброшено
есть спека хамл 2009 но ее нельзя использовать в хамл что компилируется в Baml
а без этого x:TypeArguments имеет жесткие ограничения и неюзабелен

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

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

типоопасности никакой. просто проблема чтения - кому то это хорошо ибо сокращает буквы, а кто то не может запомнить или понять что там - что особенно видно если читаешь код на гитхабе и хз че реально на выходе у чего то этакого
Аноним 05/12/22 Пнд 15:44:41 2531599 606
>>2531579
хз как у вас в шарпе, а у нас в бейсике TryCast для таких целей. Переменная в любом случае будет нужного типа, просто там будет Nothing(Null).

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

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

>быть отборным говноделом и обосраться на всех уровнях.
Если проблемы нет, то ее можно придумать
Аноним 05/12/22 Пнд 17:09:47 2531704 608
Стикер 319Кб, 512x512
512x512
Как же я задолбался удалять .vs в проектах WPF Core

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

Я не помню, чтобы такое было на NetFramework. Либо студию косоебит от множества проектов в решении, чего я раньше не делал.
Аноним 05/12/22 Пнд 18:23:41 2531818 609
изображение.png 35Кб, 666x664
666x664
Читаю ef core в действии. В примере к 4 главе, посвященной взаимодействию бизнес логики с бд он вместо одного простого сервиса и репозитория какого-нибудь нагородил кучу классов (пик) и я в итоге не могу во всём этом разобраться. Неужели в реальных проектах все так сложно?
Аноним 05/12/22 Пнд 18:44:49 2531858 610
>>2531818
Если хочешь масштабируемости, то приходится городить даже в малых проектах.
Аноним 05/12/22 Пнд 19:35:44 2531942 611
Почему не могут ломануть Rider? Там слишком крутая защита стоит?
Аноним 05/12/22 Пнд 19:40:23 2531951 612
>>2531942
Всё давно взломано.
Аноним 05/12/22 Пнд 20:29:35 2532002 613
>>2531951
Ничего там не взломано. Работает пару дней, а потом снова требует активацию. Ждёшь, когда новый кряк выкатят.
Аноним 05/12/22 Пнд 20:54:00 2532032 614
>>2532002
использую визуал студию. она лучше
Аноним 05/12/22 Пнд 20:59:21 2532033 615
>>2532032
Там надо самому файлы сохранять и ещё райдер красивше.
Аноним 06/12/22 Втр 02:47:34 2532376 616
>>2532033
>Там надо самому файлы сохранять
так это фича
Аноним 06/12/22 Втр 04:03:59 2532395 617
>>2532002
Ничего он не требует. Спокойно взломал и пользуюсь уже месяц.
Аноним 06/12/22 Втр 04:21:53 2532397 618
>>2532395
в этом и суть. ты всё взломал и ему ничего не досталось.
Аноним 06/12/22 Втр 08:39:40 2532458 619
>>2532395
Скорей всего у тебя старая версия, которая не поддерживает дотнет 7.
Аноним 06/12/22 Втр 09:05:12 2532467 620
>>2532458
Я подожду 10 дотнета, обновлюсь сразу до него.
Аноним 06/12/22 Втр 09:24:36 2532476 621
>>2532467
Дак замаешься учить нововведения. Различий будет столько, что считай как по новой придётся учить.
Аноним 06/12/22 Втр 10:16:46 2532499 622
>>2532476
Братиш, я не зумер с клиповым мышлением. Мне не составит труда изучить новый фреймворк с нуля.
Аноним 06/12/22 Втр 10:22:41 2532501 623
>>2532499
С возрастом тяжелее изучать новое. Я вот тоже раньше за пару дней осваивал новые языки, а сейчас сижу как тупка.
Аноним 06/12/22 Втр 10:44:09 2532507 624
>>2532501
Ну так встань. Пробздись. В том числе ментально.
Аноним 06/12/22 Втр 17:27:54 2532906 625
C# хэш сумма Аноним 06/12/22 Втр 17:31:10 2532912 626
Здравствуйте, подскажите, пожалуйста как реализовать проверку, при нажатии на кнопку, хэш суммы SHA-1 у файла, заранее зная правильную сумму SHA-1 string hashsumfile = "12345" ?
Аноним 06/12/22 Втр 17:34:49 2532918 627
Capture.JPG 22Кб, 561x489
561x489
шарпаны, допустимо ли использовать интерфейсы как в пикрелейтед чисто для разграничения доступа если за этими интерфейсами только один реальный класс стоит и других больше не будет?
Аноним 06/12/22 Втр 17:54:03 2532952 628
>>2532906
Попробуй сделать SPA на Thymeleaf не получится и сравни с возможности Blazor.
Аноним 06/12/22 Втр 17:54:06 2532953 629
Аноним 06/12/22 Втр 18:27:30 2533005 630
Аноним 06/12/22 Втр 18:57:05 2533043 631
Что делает ключевое слово await?
Аноним 06/12/22 Втр 19:10:40 2533058 632
>>2533043
Возвращает управление вызывающей функции до тех пор пока ожидаемая функция не завершит работу.
Аноним 06/12/22 Втр 19:11:51 2533062 633
Аноним 06/12/22 Втр 19:22:32 2533077 634
Аноним 06/12/22 Втр 19:24:50 2533079 635
>>2533077
Да. Await творит другую магию
Аноним 06/12/22 Втр 19:33:40 2533094 636
Аноним 06/12/22 Втр 19:46:14 2533110 637
Аноним 06/12/22 Втр 20:24:20 2533142 638
>>2533110
является сахаром
указывает компилятору где разбивать метод на продолжения.
1
await
2
await
3
Логически эквивалентно цепочке тасков
1.ContinueWith(2).ContinueWith(3)
где, как известно, каждое продолжение планируется на выполнение после окончания предыдущего

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

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

Никакого "Возвращает управление вызывающей функции" не происходит, а происходит "планирование продолжения (обычно в тредпуле)" тем самым освобождая текущий поток и если вызывающему методу плевать на ожидание (у него нет await или GetAwaiter().GetResult()), то это воспринимается как "вернул управление"
Аноним 06/12/22 Втр 20:47:52 2533158 639
>>2530427
А ты попробуй писать многопоток без веры
Чокнешься
Аноним 06/12/22 Втр 21:11:09 2533163 640
06/12/22 Втр 21:14:19 2533165 641
>>2533158
Конечно чокнешься, писать на петушарпе.
Аноним 06/12/22 Втр 21:17:24 2533168 642
Жабадебилы обезумели, сумеешь ли ты совладать с ними? >>2533165
06/12/22 Втр 21:18:22 2533169 643
>>2533168
Мгновенный подрыв жопы петушарпера.
Аноним 06/12/22 Втр 21:19:07 2533170 644
>>2532906
Я уже давно, для себя (внутре), все то, что в .net относится к фронтовой части, не считаю частью .net-а. Вся вот эта хуета типа xaml-а в wpf-е, вьюхи в MVC и т.д. и прочее вот это все.
Благословен будь Core который позволил полностью отдать все эти головняки фронтендерам и забыть про них. Я уже давно не вылезал за пределы api и мне охуеть как комфортно. Чего и вам советую.
Аноним 06/12/22 Втр 21:20:00 2533171 645
.png 144Кб, 600x225
600x225
06/12/22 Втр 21:20:52 2533173 646
>>2533171
Петушарпер совсем отупел и кидает хуйню вообще невпопад. К чему ты это высрал?
Аноним 06/12/22 Втр 21:55:39 2533202 647
image 361Кб, 733x1000
733x1000
image 196Кб, 439x600
439x600
Выбираю книгу по asp.net core для новичка, на русском. Какую из этих двух посоветовали бы? Первая вроде более профессиональная, а вторая скорее для новичков.
Аноним 07/12/22 Срд 08:03:33 2533472 648
>>2533202
Первой нет в свободном доступе, а так она получше будет.
Аноним 07/12/22 Срд 10:06:02 2533517 649
>>2530427
Программирование подобно сотворению миров. Неудивительно, что после того, как ты создашь десяток таких, ты сложишь 2+2 и уверуешь в Аллаха.
Аноним 07/12/22 Срд 11:27:44 2533586 650
2022-12-0711-26[...].png 20Кб, 512x362
512x362
Как сделать депенденси проперти для кастомного элемента так, чтобы он принимал множество элементов через XAML? К примеру как свойство Children у грида или стакпанели.

Пробовал поставить тип UIElementColelction, но депенденси проперти регистрирует уж точно не коллекцию.
Аноним 07/12/22 Срд 16:41:26 2533944 651
я правильно понимаю что если попытаться сериализировать джсоном byte[] то это очень сильно увеличит размеры и ухудшит производительность?
Аноним 07/12/22 Срд 17:50:47 2534056 652
>>2533944
текстовый формат всегда проигрывает бинарному хотя бы тем что требует быть текстовым, то есть ограничен диапазоном символов.
Аноним 07/12/22 Срд 18:56:27 2534204 653
>>2533944
"сериализировать джсоном byte[]"
Двести.
Аноним 07/12/22 Срд 19:39:18 2534278 654
Аноним 07/12/22 Срд 19:47:09 2534290 655
>>2534278
Какой костыль. А хуле им ещё делать, если у них 100500 гуёвых либ для крестов и шарпа, но ни одна из них не поддерживает линупс?
Аноним 07/12/22 Срд 21:53:17 2534437 656
Подскажите пожалуйста, я хочу сделать небольшую программу для винды. Какую технологию для графического интерфейса взять?
Windows forms - устаревшее, не модное, не поддерживает крутые ускорения
Wpf - сложное, требует большого усилия для вката, обязательно нужны какие-то библиотеке mvvm хуеввм по губе
Браузер, электрон подобная хуйня - 100 мб в лучшем случае, пиздец

Что делать, как быть?
Аноним 07/12/22 Срд 21:59:59 2534442 657
Мля как сложно, хуле так много всего? Как это вообще в башке удержать!?

мимо php
Аноним 07/12/22 Срд 22:06:11 2534447 658
>>2534437
Если хочешь, чтобы это пригодилось тебе в будущем, то делай ап на .net core + простой фронт в том же ангуляре.
Если делаешь прост для себя лишь бы работало - хуярь в консоли.
Wpf и формсы это говно мамонта, не стоит на это тратить своё время.
Аноним 07/12/22 Срд 22:24:35 2534460 659
>>2534447
>.net core + простой фронт в том же ангуляре.
На нем можно делать небо и аллаха? Или это будет работать онли через браузер?
Аноним 07/12/22 Срд 22:25:37 2534463 660
Аноним 07/12/22 Срд 23:02:32 2534490 661
гп1.mp4 3015Кб, 480x854, 00:00:46
480x854
>>2515951 (OP)
Кто-нибудь пробовал разворачивать asp.net приложения в portainer ?
Есть ли у кого-то гайд развернуть хотя бы стандартное web api приложение в контейнере ? Я пробовал делать по гайду https://www.youtube.com/watch?v=tBl422FiEBY&t=882s&ab_channel=DevMentors, но у меня порты не пробрасывались и я не могу в локалхосту обратиться к своим методам.
Короч полная ерунда, есть ли нормальный гайд ?
Аноним 07/12/22 Срд 23:42:28 2534522 662
>>2534437
Бери винформы. Фундаментальная технология, проверенная временем.
Аноним 08/12/22 Чтв 00:01:25 2534539 663
>>2534522
Если нужно тупо вывести органы управления, то да. ВПФ будут только отвлекать, хотя если не юзать мввм всякие, то особо отличий нет.
Аноним 08/12/22 Чтв 00:12:18 2534544 664
>>2534539
Самое то для "небольшой программы для винды", раз других требований нет.
Аноним 08/12/22 Чтв 00:13:21 2534547 665
>>2534437
Формсам ускорения и не нужно. Оно и так быстрее.
Ты хотел сказал про DPI
Ну и в формсах тяжело делать "эээх ляпота"

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

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

Или на завод
Аноним 08/12/22 Чтв 00:30:52 2534561 666
>>2534544
Я десигнер и для меня винформы слишком пососные, но с другой стороны для меня код как для вас винформы — работает да и хрен с ним.

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

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


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

Иллюзия свободы.
Аноним 08/12/22 Чтв 00:31:14 2534563 667
Аноним 08/12/22 Чтв 00:31:57 2534564 668
LinForms
LPF
ULP
LinUI
MAUI
Аноним 08/12/22 Чтв 00:33:40 2534568 669
>>2534564
Ты бы не перечислял названия, а называл преимущества. Чет мне подсказывает, что это просто набор стилей для UI.
Аноним 08/12/22 Чтв 00:37:10 2534570 670
>>2534563
Ну сколько пишу на впф а ни разу не нужны были дженерики, обжектдаьапровойдеры, routedcommand и бог знает что еще
Аноним 08/12/22 Чтв 01:04:17 2534599 671
>>2534570
Ну у меня есть подозрение, что в момент, когда у меня получается жопа, я делаю что-то не так.

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

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

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




Аноним 08/12/22 Чтв 01:24:00 2534630 672
>>2534599
у меня такой проблемы не возникает потому что это нужно в code-behind, а там обычно пусто или же в атачед, что тоже редкость.

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

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

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

А тотальный MVVM или его части просто лишают необходимости что то там типы объявлять в хамл.
Аноним 08/12/22 Чтв 02:38:35 2534649 673
посоны, а во что заворачивали лист на старых дотнетах если нужно было вызывающему дать доступ по индексу но запретить всякую грязь вроде add clear removeat и т.д.?
Аноним 08/12/22 Чтв 02:42:31 2534652 674
>>2534649
Можно тупо юзать Func<int, T>.
Аноним 08/12/22 Чтв 02:47:46 2534655 675
>>2534652
так я и форычить по нему хочу еще... идея прикольная надо попробовать
Аноним 08/12/22 Чтв 02:52:20 2534657 676
>>2534655
> так я и форычить по нему хочу еще...
Пили тогда новый интерфейс.
Аноним 08/12/22 Чтв 03:15:52 2534663 677
>>2534657
не хотет
вот чего нашел
ReadOnlyCollection<T>
и возвращаю
list.AsReadonly();
Аноним 08/12/22 Чтв 03:24:48 2534666 678
>>2534663
ну это все знают. мы думали ты хотел нечто этакое чтобы ууух
Аноним 08/12/22 Чтв 03:28:33 2534667 679
>>2534666
так я не знал, а теперь знаю. я стал сильнее
Аноним 08/12/22 Чтв 03:33:07 2534668 680
>>2534667
А толку. Чере рефлексию пробьются к твоему списку и нагадят.
Аноним 08/12/22 Чтв 03:48:21 2534671 681
>>2534668
так я же сам себе запрещаю, а не какому-то челу левому.
Аноним 08/12/22 Чтв 06:04:44 2534695 682
Зачем нужен automapper если можно просто написать расширение?
Аноним 08/12/22 Чтв 07:24:08 2534717 683
>>2534447
> на .net core + простой фронт в том же ангуляре.
А как это работать и выглядеть будет, и сложно ли выучить? Просто как страница в браузере, не имеющая ничего общего с интерфейсом системы?
Аноним 08/12/22 Чтв 08:17:14 2534725 684
Аноним 08/12/22 Чтв 09:03:15 2534735 685
>>2534717
> А как это работать и выглядеть будет,
Медленно и уродливо. Чтобы было медленно и красиво, надо очень долго ебаться.
> и сложно ли выучить?
Очень сложно. Примерно как с нуля учить шарп, дотнет и WPF.
> Просто как страница в браузере, не имеющая ничего общего с интерфейсом системы?
Да.
Аноним 08/12/22 Чтв 09:56:03 2534769 686
win11dev.jpg 250Кб, 1280x960
1280x960
>>2534290
Поставилась! Только написано, что лицензия на 90 дней. А дальше что? Я должен купить винду?
Но тем не менее это самый лучший вариант для линупс-юзеров.
Аноним 08/12/22 Чтв 10:27:52 2534788 687
>>2534769
> А дальше что?
Виртуалбокс с его офсайта. Винда с торрентов. И получаешь бесплатно и навсегда. Но я например вполне разрабатываю свои петы на вс-коде под линуксом. Единственное неудобство - никто до сих пор не сделал (бесплатно) визуальный редактор форм с предпросмотром. Приходится вслепую хуярить хамл, а результат смотреть после dotnet run
Аноним 08/12/22 Чтв 10:29:29 2534790 688
>>2534788
Ах да, стек таков: вс-коде + авалония + плагин авалонии + плагины-автодополняторы хамла.
Аноним 08/12/22 Чтв 11:04:25 2534803 689
>>2515954
>8. Что нужно знать, чтобы взяли работать?
Реально всё перечисленное освоить с нуля за полгода-год до уровня, когда будешь готов к работе джуном в десктоп-разработке?
Аноним 08/12/22 Чтв 11:12:51 2534813 690
>>2534803
Через год надо будет учить новую версию сишарпа и дотнета.
Аноним 08/12/22 Чтв 11:14:03 2534817 691
Аноним 08/12/22 Чтв 11:17:11 2534820 692
>>2534817
Мне нравится дотнет, но жабу учил тупо ради работы.
Аноним 08/12/22 Чтв 11:22:49 2534826 693
>>2534820
А мне нравится джава, но учу сишарп тупо ради работы.
Аноним 08/12/22 Чтв 11:26:18 2534834 694
>>2534813
Бля, ну его нахуй тогда... Пойду двигать кнопочки на JS.

>>2534817
Очевидно же, что зависит от направления, в котором собираешься работать.
Хочешь попердывать над древним кодом и писать тонны доков в каком-нибудь финтехе за огромную ЗП - учишь джаву. Хочешь делать то же самое, но с привкусом спермы и запахом свежести - учишь дотнет. Хочешь в десктоп - учишь дотнет. Хочешь в игры - учишь дотнет/плюсы. Хочешь мобилки - учишь джаву+котлин или свифт. Хочешь в бэк для стартапов - учишь питон или джс. Хочешь во фронт - учишь джс. Хочешь заработать геморрой и шизу к 30 годам - учишь с++/раст. Хочешь пердолиться в жопу - учишь голанг.
Аноним 08/12/22 Чтв 11:41:44 2534864 695
Решил потрогать вашу авалонию, а она какая-то тормознутая. При растягивании окна контент не успевает за ним, и видно черную полосу. В впф такого нет.
Аноним 08/12/22 Чтв 11:46:59 2534875 696
>>2534864
Ну так и линукса в впф нет.
Аноним 08/12/22 Чтв 11:56:40 2534890 697
image.png 635Кб, 640x735
640x735
>>2534813
Там изменений немного никогда. Добавляются новые фичи в основном. Хватает почитать что нового learn.microsoft и почти наверняка не воспользоваться этим. Если совсем задрот, то можно покупать себе C# in a Nutshell каждый год.
Аноним 08/12/22 Чтв 14:53:10 2535144 698
>>2534790
>авалония
Она кстати живая?
Аноним 08/12/22 Чтв 14:56:06 2535152 699
>>2535144
Живее WTF и MAUI вместе взятых
Аноним 08/12/22 Чтв 15:04:47 2535168 700
>>2535144
Жидбрейнсы на нее некоторые продукты перевели
Аноним 08/12/22 Чтв 15:37:53 2535213 701
>>2535144
живая. и будь у нее нормальные шрифты (сглаживание) - уже перешел бы
Аноним 08/12/22 Чтв 17:51:29 2535345 702
image.png 208Кб, 1413x550
1413x550
>>2515951 (OP)
Сапыч, столкнулся с ошибкой при миграции, почему-то ругается что в моем mssql сертификаты паленые, хотя в другом проекте все ок работает и мигрируется, на старом использовал версии EF 6.10 на новом EF 7.0 .Net6, в чем мой косяк
Начал гуглить вопрос, нашел, что фиксить можно только путем отключения шифрования Encrypt, может кто сталкивался с проблемой и есть другие варианты
Аноним 08/12/22 Чтв 21:00:08 2535641 703
изображение.png 5Кб, 601x90
601x90
изображение.png 37Кб, 606x444
606x444
изображение.png 24Кб, 802x171
802x171
Сап, задали лабу. Надо посчитать y для заданного x и сумму прогрессии для n=3 и e=0.001 . Что можно сделать с double, чтобы цикл работал нормально?
Аноним 08/12/22 Чтв 22:14:29 2535715 704
>>2535641
пик 1 - чет страшное
пик 2 - добавим страха в чтении используя однобуквенные названия переменных.
пик 3 - хз, наверное тоже страшна раз представлен

итого
>Что можно сделать с double, чтобы цикл работал нормально?
для начала бы понять что тебе не нравится.
вообще про точность чисел с плавающей точкой все знают, но раз тебе нужен именно double, то хоть бы в общих чертах понять о чем ты толкуешь.
Аноним 08/12/22 Чтв 22:20:19 2535718 705
>>2535715
пременная x double в цикле for увеличивается на 0,07 с каждой итерацией от 0,1 до 0,8. из-за точности double на 3 итерации ломается цикл т.к. итоговое число будет >0.8. Как это обойти.
Аноним 08/12/22 Чтв 22:22:02 2535720 706
>>2535718
увеличивать диапазон до 0,81 уже пробывал, работает. Но есть ли нормальное решение этой проблемы?
Аноним 08/12/22 Чтв 22:28:35 2535729 707
>>2535718
Ну всегда можно округлить до нужной точности
А decimal никак нельзя?
Аноним 08/12/22 Чтв 22:35:36 2535742 708
>>2535715
Спасибо. Буду округлять. Может, decimal попробую.
Аноним 08/12/22 Чтв 22:39:45 2535749 709
image.png 33Кб, 714x38
714x38
>>2535718
for (double x = 0; x <= b; x = x + a <= b ? x + a : b)

Но вообще лучше такой инкремент выносить в отдельную функцию или экстеншен.
И называй переменные нормально, нехуй байтики экономить.
Аноним 08/12/22 Чтв 22:45:05 2535752 710
>>2535749
У вас за лишнюю собку бьют что ли? Даже если она увеличивает читаемость
Аноним 08/12/22 Чтв 22:48:54 2535757 711
изображение.png 4Кб, 361x109
361x109
>>2535749
Это оформление лабы пиздец, а говорили что вышка помогает програмистам
Аноним 08/12/22 Чтв 22:54:06 2535761 712
>>2535757
....Помогает писать нечитаемый код
Аноним 09/12/22 Птн 01:00:40 2535857 713
Аноним 09/12/22 Птн 07:37:13 2535966 714
изображение.png 30Кб, 701x256
701x256
Почему майки забили на wpf, про продолжают обновлять винформы?
Аноним 09/12/22 Птн 08:54:25 2536004 715
>>2535966
Потому что поняли, что нормальные люди не хотят программировать на XML.
Аноним 09/12/22 Птн 09:39:27 2536019 716
>>2535213
Они у неё есть. Просто правильно настрой стили для масштабирования. Я читал статью об этом у них в доках, но адрес сейчас могу не нейти.
Аноним 09/12/22 Птн 09:47:02 2536022 717
Аноним 09/12/22 Птн 09:49:15 2536025 718
>>2536004
Юзай Eto.Forms!
Там можно закодить форму на шарпе, да декларативненько (через инициализаторы), да с кодбехайндом на шарпе же (через partial)!
Аноним 09/12/22 Птн 10:11:32 2536048 719
>>2536025
Я сейчас так пишу пет-проекты на винформах с инициализаторами, дизайнером не пользуюсь. Eto.Forms тыкал, нормальная тема, но чуток не хватает документации.
Аноним 09/12/22 Птн 10:15:44 2536052 720
>>2536048
> на винформах с инициализаторами, дизайнером не пользуюсь
И как там? Много костылей приходится преодолевать, чтобы сделать грамотно-адаптивный интерфейс? Или ты не паришься и блокируешь изменение размера окон? А если размер окон заблокирован и интерфейс статичный, то что за доёб к ресайзу авалонии выше?
Ах да, это ж разные аноны. Ну-ну.
Аноним 09/12/22 Птн 10:24:56 2536058 721
>>2536052
> И как там? Много костылей приходится преодолевать, чтобы сделать грамотно-адаптивный интерфейс?
Не много, я один раз написал обёртки с нужными параметрами и везде их использую.
> Или ты не паришься и блокируешь изменение размера окон? А если размер окон заблокирован и интерфейс статичный, то что за доёб к ресайзу авалонии выше?
Хуй знает, что там в авалонии, никогда её не видел. Если там есть проблемы, видимо, есть на то какие-то причины типа кроссплатформенности.
Аноним 09/12/22 Птн 15:02:33 2536271 722
image.png 21Кб, 483x457
483x457
База от Голованга
Аноним 09/12/22 Птн 15:22:06 2536293 723
>>2536271
Значит, goвноеды надеятся, что шарписты умрут от кринжовых шуток.
Аноним 09/12/22 Птн 15:58:03 2536338 724
>>2535966
Илита использует винФормсы на стероидах - Телерик. Быдло не знает.

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

Ты кроме магазинчиков и порнсайтов поди ничего в жизни не видел. Мервы у него десктопные приложения, охуеть. Любой профессиональный софт на десктопе. ЛЮБОЙ.
Аноним 09/12/22 Птн 16:35:48 2536362 729
>>2536353
>а если вы почему-то с ними работаете
У нас в конторе недавно обновление завезли - переехали все на 4.8 довольные.

Сейчас времена не те, период не тот, чтобы куда-то переходить. А у нас можно пересидеть тяжелые времена. Наш легаси-продукт нужно будет поддерживать и разрабатывать даже в случае ядерной войны. Если что, я не из бСССР.
Аноним 09/12/22 Птн 16:46:19 2536377 730
Аноним 09/12/22 Птн 17:19:25 2536425 731
Image 5.png 50Кб, 642x330
642x330
>>2536019
нет нету. они рисуют на скиашарпе и на выхлопе жопа. смотри пик - там последний это нативный размер текста без указания размера. он такой огромный и проблема видна меньше, но все равно видна.

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

>>2536353
>десктопные приложения - они мертвы
ну вот и проходи мимо в свои ангулары и не мешай зарабатывать денежку.
Аноним 09/12/22 Птн 17:23:44 2536434 732
>>2536362
>переехали все на 4.8 довольные.
что мешает переехать на 7?
у нас не переезжали на дотнет5 из за wpf некоторых тонкостей пдфных, но на 6 изи.
Аноним 09/12/22 Птн 17:50:37 2536455 733
Почему в сишарпе выбрали такую уродскую конвенцию с PascalCase?
Аноним 09/12/22 Птн 17:53:53 2536460 734
>>2536455
Посмотри историю появления шарпа и поймёшь. Это не просто совпадение.
Аноним 09/12/22 Птн 18:06:39 2536479 735
>>2536455
Что в ней уродского? Наоборот красиво.
Аноним 09/12/22 Птн 18:09:59 2536483 736
Аноним 09/12/22 Птн 18:23:06 2536509 737
153490049717581[...].jpg 323Кб, 1600x900
1600x900
1. Как заставить ссаную студию вставлять код в нужное место? Речь идет о случаях авто-реализации интерфейсов или подписок на события, когда студия пытается вставить часть кода в уже написанный код.
Заебала пидорасить код и вставлять не в том месте.

2. Как дать по щам студии, чтобы она не двигала мои вкладки? Дело даже не в том: слева или справа создавать новую вкладку. Речь идет о шурудении уже открытых вкладок. Кто давал ей право это делать? Прочему пятая по счету вкладка перемещается на позицию второй? Проделки домового?
Аноним 09/12/22 Птн 18:24:09 2536510 738
>>2536479
Выглядит громоздко. Кроме того надо прожимать shift постоянно.
Аноним 09/12/22 Птн 18:39:12 2536527 739
Ещё мне не нравится { get; set }. Их прямо везде пихают. Вот только начали писать что-то и сразу get-set. И ладно бы это как-то по уму было сделано, но оно максимально дебильно. Свойство, к которому приписано эти get-set, надо ещё писать приватную переменную, т.е. получается двойной расход памяти: одно на переменную, второй на свойство.
В джаве же всё сделано просто и со вкусом: объявил переменную прописал нужные тебе методы: getName(), setName(), где Name - имя переменной. Многие ИДЕ сами их генерируют, так что много кода писать не потребуется. Само собой и нет двойного расхода памяти, потому что методы его не тратят.
Аноним 09/12/22 Птн 18:45:39 2536535 740
>>2536527
>Многие ИДЕ сами их генерируют, так что много кода писать не потребуется
но на выходе все равно получается много кода, а разница...
>объявил переменную прописал нужные тебе методы: getName(), setName(), где Name - имя переменной.
ровно ТАКОЕ ЖЕ сгенерит тебе компилятор вместо { get; set }
>т.е. получается двойной расход памяти: одно на переменную, второй на свойство.
нет не получается. тут с жавой 1 в 1 - разница лишь в том КТО генерит методы getName(), setName() - редактор или компилятор (на то он и сахар)
Аноним 09/12/22 Птн 18:46:09 2536537 741
>>2536527
С автосвойствами дополнительные приватные переменные нахуй не нужны. Они нужны только пидорам, пишущих в свойствах логику
Аноним 09/12/22 Птн 18:48:32 2536542 742
А модификаторы доступа? Если в джаве есть 4 простых модификатора, которые укладываются в простую табличку и ты всегда чётко понимаешь уровень доступа каждого поля или класса.
А что в сишарпе? Просто какой-то зоопарк модификаторов доступа. И такие и сякие. И голову можно сломать, чтобы понять где доступен этот класс, а где нет. И наверняка в будущем они ещё навалят модификаторов побольше, чтобы язык окончательно привратился в помойку. Уже даже опытные программисты, которые начинали с ранних версий, с ужасом смотрят на захламление синтаксиса.

Мне это почему-то напоминает права доступа к файлам в юниксах/линуксах и винде. Если у первых простой битовый массив, то в винде это какой-то ад: всякие изменить, но не удалить, изменить, но удалить, запустить, но не читать и прочий бред.
Аноним 09/12/22 Птн 18:49:11 2536543 743
>>2536537
>Они нужны только пидорам, пишущих в свойствах логику
без логики в свойствах само понятие свойство нахер никому и не нужно было бы. Сам функционал "свойство" и рожден именно для написания логики

Ваш КЭП
Аноним 09/12/22 Птн 18:50:48 2536545 744
>>2536542
>Если в джаве есть 4 простых модификатора
а в линуксе есть права доступа вида rwx, которые
>в простую табличку и ты всегда чётко понимаешь

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

И лучше иметь больше средств контроля доступа, чем меньше
Аноним 09/12/22 Птн 19:01:17 2536568 745
Image 6.png 17Кб, 504x459
504x459
Аноним 09/12/22 Птн 19:49:03 2536645 746
doubleInt.jpg 13Кб, 291x191
291x191
>>2536568
А я говорю, что под класс Foo будет выделяться не 4 байта, а 8 байт памяти из-за свойства. Потому, что микрософты не предусмотрели возможность манипулирования скрытой переменной Bar и приходится заводить новую _bar.
Аноним 09/12/22 Птн 19:54:01 2536649 747
>>2536645
А ты представь, что скрытой переменной нет.
Аноним 09/12/22 Птн 20:22:44 2536681 748
Ещё мне не нравится, что они сделали ссылочные типы, не допускающие null. Теперь надо везде писать этот уродский ? рядом с каждым типом, чтобы можно было присваивать null. Вот с какой целью эта дичь была сделана?Сама идея ссылки и была в том, что у неё либо null, либо конкретное значение, полученное через new.
И ведь микрософтам ещё хватает наглости писать об этом с гордостью, что они сделали какой-то полезный вклад в развитие языка.
Рихтер наверно после этого, если и собирался писать новую книгу, то теперь точно не напишет, потому что шарп свернул не туда.
Да и вообще после 5 версии шарпа язык пошёл под откос. Его и дальше будут накачивать бредовыми изменениями. Скоро он превратится в Perl с его обилием сложночитаемых закорючек.
Аноним 09/12/22 Птн 21:07:00 2536728 749
>>2536645
а я говорю что разницы между java с ее сеттерами на уровне кода и шарпом с его сеттерами на уровне скомпиленного кода - просто нет

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

>>2536681
выключи фичу и всего делов. это ж не котлин где это на уровне компилятора. тут это просто предупреждения
> потому что шарп свернул не туда.
шарп свернул как раз туда. разве что поздно это начал. гугли "Ошибка на миллиард долларов"
.
Аноним 09/12/22 Птн 21:12:49 2536737 750
>>2536681
не туда он свернул во многом при рождении
- нулл безопасность
- нет замороженных типов нормальных
- нет val
- неудачная реализация событий
- похерили контрактное программирование
- жирный обосрамс с IReadOnlyList
- new new new
- имя конструктора должно иметь имя класса
- ConfigureAwait(true).
- нет инлайн методов
и другое "бррр аж трисет"
Аноним 09/12/22 Птн 21:38:06 2536783 751
Аноним 09/12/22 Птн 21:49:34 2536797 752
>>2536783
Мы, решарписты, не знаем о чем твоя первая проблема
И вторая тоже хз о чем ты
Аноним 09/12/22 Птн 23:01:02 2536880 753
>>2536356
>бизнес
>на заводе
Сам то понял, что сказал? Твоим главным бизнес-заказчиком на заводе будет тётя Срака, которой нужно вести учет чушек на складе.
Аноним 09/12/22 Птн 23:02:55 2536882 754
>>2536359
>Любой профессиональный софт на десктопе
Для разработки профессионального софта нужно обладать нужными знаниями. Вкатунам туда вход закрыт.
Аноним 09/12/22 Птн 23:05:42 2536885 755
>>2536510
>Кроме того надо прожимать shift постоянно.
Да ну, а в snake_case типа не надо?
Аноним 09/12/22 Птн 23:15:21 2536894 756
image.png 17Кб, 478x141
478x141
>>2536509
1. А с каких хренов она должна знать в каком месте этот метод стоять должен. Да и не похуй ли по большому счету.

2. Вкладки можно фиксировать.
На пике.
Первая - зафиксирована, всегда будет открыта и находится по отношению к другим зафиксированным вкладкам там где она размещена.
Вторая открыта и не зафиксирована, всегда будет находится после зафиксированных вкладок и может менять позицию туда-сюда.
Третья временно открытая. Пока ты с ней работаешь, но студия закроет ее при первой возможности (например при добавлении новых вкладок)
Аноним 09/12/22 Птн 23:21:27 2536897 757
image.png 8Кб, 706x256
706x256
>>2536542
>Просто какой-то зоопарк модификаторов доступа.
Ужас какой, целых 6 штук. И то базовых всего 4 (как в джаве, сюрприз), а остальные их комбинации. Это ж пиздец как сложно запомнить-то. Может программирование это не твое, если у тебя с памятью такие проблемы.
Вот тебе простая шпаргалка, может поможет.
Аноним 09/12/22 Птн 23:56:21 2536913 758
>>2536894
>1. А с каких хренов она должна знать в каком месте этот метод стоять должен. Да и не похуй ли по большому счету.
Немного бесит. Вообще непонятен алгоритм вставки.

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

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

2. Вкладки можно фиксировать.
Это да, но задолбаешься их фиксировать и откреплять. Тут я тоже не понимаю логики зачем вкладки вообще перемещать нужно.
Аноним 09/12/22 Птн 23:59:34 2536915 759
>>2536913
>Я прост любитель все разбивать на регионы, и у меня нет такого, что сначала идет список приватных свойств, потом публичных, потом методов, потом событий.
это не студия издевается над тобой, это ты издеваешсья над студией.
Аноним 10/12/22 Суб 08:40:58 2537044 760
>>2536913
>Тут я тоже не понимаю логики зачем вкладки вообще перемещать нужно.
Иногда бывает когда над слишком говнокодистым проектом работаешь приходится открывать пучок вкладок и туда сюда их тасовать, чтобы хоть как-то это в голове уместить.
А вообще советую для студии экстеншен Workspace Manager, позволяет сохранять наборы вкладок и потом быстро их загружать. Очень спасает на работе, когда приходится переключаться между разными тасками туда-сюда.
Аноним 10/12/22 Суб 08:41:06 2537045 761
>>2536885
Самый оптимальный стиль в джаве. Примитивные (значимые) типы с маленькой буквы, а все ссылочные - с большой. Методы с маленькой.
Аноним 10/12/22 Суб 08:45:33 2537046 762
>>2536913
>Я прост любитель все разбивать на регионы
Я тоже раньше любил кучу регионов плодить. Сейчас отвык от этого. Наверное научился писать код так, чтобы он был сразу понятен. Максимум, что сейчас делаю, блок конструкторов (если их несколько) или приватных методов в регион оборачиваю.
Аноним 10/12/22 Суб 08:49:01 2537047 763
>>2537045
Те же яйца только в профиль. Тот же CamelCase, только кое-где местами upper с lower поменяли.
А вот скобки в джаве по уебански расставляются.
Аноним 10/12/22 Суб 08:53:58 2537049 764
>>2537047
Вот в джаве смотришь на тип String и сразу понимаешь, что это ссылочный тип. А какой тип string в сишарпе?
Аноним 10/12/22 Суб 09:31:32 2537071 765
>>2537049
Ссылочный, но со своими особенностями.
Аноним 10/12/22 Суб 10:29:17 2537098 766
>>2536897
А потом ещё надо выучить кучу модификаторов для аргументов методов. Всякие out, ref, in, params. Многие даже опытные сишарперы их не знают, потому что в каждой новой версии накидывают ещё. И ладно бы был от них какой-то прок, дак это просто сахар ради сахара. Они абсолютно бесполезны. К тому же, касательно in ещё и сами имена подобраны тупо. Гораздо логичнее было бы использовать const, что отражало бы смысл модификатора, но нет, будет in.
Аноним 10/12/22 Суб 11:05:37 2537124 767
>>2537098
>out, ref, in,
Безопасная работа с памятью


> params.
Передача неопределенного количества аргументов без создания массива.
Аноним 10/12/22 Суб 11:22:17 2537132 768
>>2537124
А вот в джаве вместо params используется более изящное решение - троеточие. Оно не занимает лишние ключевое слово и выглядит лучше в коде.

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

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

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

С другой стороны, можно отредактировать пресет не переключаясь на него — панель компактнее.
Аноним 10/12/22 Суб 13:31:27 2537226 772
>>2537124
Ладно, ладно. Мы уже поняли, что для джавистов разобраться в четырех терминах непосильная задача.
Аноним 10/12/22 Суб 13:34:08 2537232 773
>>2537226
Простота джавы - это преимущество, а не недостаток
Аноним 10/12/22 Суб 13:35:16 2537236 774
>>2537207
>Хорошая тема, правда глючная слегка. Надо удалять .vs, чтобы завелось
Я х.з. у меня без этого работает. Там просто в каталоге с солюшеном создается файл в котором пресеты закладок хранятся и все. Его можно по желанию в .gitignore занести, на сам проект он никак не влияет.
Аноним 10/12/22 Суб 13:40:36 2537244 775
>>2537045
>Самый оптимальный стиль в джаве.
Знаете почему вы будете спорить бесконечно над тем, что оптимальнее? Потому что ваша хуйня решает только 5% проблем.
Есть ворох сущностей, которые тоже надо бы как-то обозначить, но у вас есть только UpCase да нижний прочерк.

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

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

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

Да и вообще C# очень хуев для автоматической конвертации (что примечательно). Например конвертер не может отличить подписку на событие от простого инкремента, в то время как в бейсике для событий есть ключевые слова AddHandler и RemoveHandler.
В C# одно сочетание символов может содержать миллион контекстов.
Аноним 10/12/22 Суб 13:41:34 2537245 776
>>2536425
че по сотыгам на десктопе? Думаю, переходить ли в веб или не
Аноним 10/12/22 Суб 14:01:08 2537263 777
Аноним 10/12/22 Суб 14:03:50 2537267 778
>>2537263
Особенно проиграл, что это не посчитали проблемой, если пользователь ее устранил.
Аноним 10/12/22 Суб 14:10:22 2537272 779
>>2537263
>>2537267
Видимо какая-то херня для синхронизации, чтобы не бекапить один и тот же файл многократно.
Аноним 10/12/22 Суб 14:18:29 2537276 780
>>2537132
>программисты уже могли использовать их для написания программ в ранних версиях
И студия автоматически добавит к ним символ @, чтобы отличить их от ключевого слова.
Озвученной проблемы нет.
Аноним 10/12/22 Суб 14:22:31 2537279 781
>>2531818
Я делаю примерно так же.
Сеньеры-помидоры - рофлят с меня, делают 1 класс 5к строк и идут смотреть ютуб, пока я как дебил - хуйней страдаю, еще и пишу тесты.

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

Надо тесты внедрять. Я реально ж вижу, что меньше проблем потом в ходе тестирования. По сути все сводится к тому, чтобы проверить, что то что реализовал - это действительно то что просили.
Аноним 10/12/22 Суб 15:19:11 2537334 784
>>2537272
Вполне возможно. Я просто никогда не сохраняю .vs под контроль версий. Во вторых я никогда не юзаю контроль версий через студию, только непосредственно через сам git. Наверное поэтому и не сталкивался.
Аноним 10/12/22 Суб 15:54:22 2537365 785
2022-12-1015-51[...].png 48Кб, 768x466
768x466
Глядите, я UserControl переименовал в Grid и у меня теперь доступен xaml дизайнер.

Это действительно класс Grid, или какая-то ересь? Как оно связывается с дизайнером и в каком месте?
Аноним 10/12/22 Суб 16:43:04 2537427 786
>>2537232
и поэтому на мобилах (то есть где нет кровавого энтерпрайза) котлин (с его перегруженностью сложностью, что даже шарп на его фоне бледно выглядит) вовсю вытесняет жаву
Аноним 10/12/22 Суб 16:58:00 2537436 787
>>2537427
Его гугл насильно внедряет, а где свободный выбор языка, там выбирают джаву.
Аноним 10/12/22 Суб 17:01:54 2537440 788
>>2537436
насильно?
а в чем насильность то проявляется?
Аноним 10/12/22 Суб 17:31:21 2537469 789
>>2537365
это наследник класса Grid
реальное имя класса в x:Class

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

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

Помню, что в винформс был какой-то связующий третий файл.
Аноним 10/12/22 Суб 19:05:34 2537572 792
>>2537518
ок. принимается. упоротый жавист, который привык ковыряться в говне (по твоей ссылке там пример сравнения), может считать попытки остального мира свалить с говна как насилие на бедным жавистом.

>будут публиковаться сначала на Kotlin.
ну так то да. из котлина можно вызывать жава код, а вот из УБОГОЙ жавы вызывать котлин хз как.

Впрочем я все равно останусь при своем мнении что выбирающие котлин выбирают его за его фичи, а не потому что гугл решил. Потому как сам выбрал по причинам "жава говно убогое (особенно на андроид там вообще жопашный), а котлин ня"
Аноним 10/12/22 Суб 19:24:54 2537598 793
Image 7.png 29Кб, 619x453
619x453
>>2537535
ну вот ты создаешь юзер контрол 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();, который был как раз в хамловой части описания класса.
Аноним 10/12/22 Суб 19:42:36 2537611 794
>>2537598
>xaml не является чистым языком разметки как хтмл.
>Он описывает код декларативно.
Я понял.

>Если ты в хамле UserControl поменяешь на Grid то получишь ошибку
>Error (active)CS0263 Partial declarations of 'MyUserControl' must not specify different base classes
А, ну у меня бейсик, и у меня по дефолту не показывает partial и базовый класс. Это наверно из-за настроек, как автоскрытие неймспейсов. Соответственно, при смене класса автоматом видать меняется базовый класс во втором файле. У меня ошибки не возникает.
Аноним 10/12/22 Суб 20:33:14 2537635 795
Аноним 10/12/22 Суб 20:35:53 2537638 796
>>2537635
В 2к22м все еще находятся долбоебы, верящие в тесты производительности и опросы.
Аноним 10/12/22 Суб 20:59:17 2537648 797
>>2537638
А зачем SO подкручивать опросы?
Аноним 10/12/22 Суб 21:00:50 2537650 798
Аноним 10/12/22 Суб 23:38:06 2537727 799
>>2537436
>Его гугл насильно внедряет, а где свободный выбор языка, там выбирают джаву.
Вот сколько не видел джавистов, подавляющее большинство прямо высказывает, что выбрало бы котлин, но приходится жрать джаву, которая их достала.
Аноним 10/12/22 Суб 23:40:18 2537729 800
>>2537598
>пик
Ох как же меня бесят неймспейсы в xaml, я наверное в основном из-за этой хуйни и бросил когда-то пытаться нормально его освоить.
Аноним 11/12/22 Вск 00:18:56 2537742 801
>>2537729
Не знаю как раньше, а сейчас они дописываются автоматом, я даже сходу сам не импортирую ни одного неймспейса.
Намного хуже работа со стилями.
Аноним 11/12/22 Вск 01:17:04 2537761 802
>>2537729
решарпер с этим делом помогает.
без него жить сложно
Аноним 11/12/22 Вск 10:17:55 2537883 803
Как рисовать и выводить звук в сишарпе?
Аноним 11/12/22 Вск 10:38:10 2537891 804
>>2537883
В каком смысле рисовать звук?
Если ты про графику, то она имеет несколько категорий: растровая и векторная. С векторной проще всего в 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
Аноним 11/12/22 Вск 10:43:08 2537897 805
>>2537891
Ну в общем, есть книжка "Седжвик Р., Уэйн К. - Computer Science. Основы программирования на Java, ООП, алгоритмы и структуры данных (Классика computer science)", но там все примеры на джаве. Хотелось бы их применить на сишарпе, но там очень много задач на рисование и даже на вывод звука посредством колебаний с определенной частотой. Буквально читают wav-файлы и генерируют звук средствами джава.
Аноним 11/12/22 Вск 10:58:59 2537904 806
>>2537897
Ну тогда, братишка, тебе нужно разбираться самому и гуглить конкретные шаги из книги. Ну есть там вские генерации меандра (ака Square Wave), типа пищалки, которые записываются в WAV, а потом воспроизводятся.
https://stackoverflow.com/questions/203890/creating-sine-or-square-wave-in-c-sharp

Хер знает что тебе нужно и что ты там задумал. Если какое нибудь MIDI, то это уже отдельный вопрос, но думаю тоже есть либы.
Аноним 11/12/22 Вск 11:15:55 2537910 807
>>2537904
Получается даже здесь джава превосходит сишарп.
Аноним 11/12/22 Вск 11:35:06 2537919 808
>>2537910
Получается, что мать твоя — шлюха. Я догадывался по размытой формулировке вопроса, что это тупой наброс.

Из-за таких мудаков, как ты, другие страдают, потому что вместо ответа на вопрос их сходу кроют хуями.
Аноним 11/12/22 Вск 12:23:42 2537940 809
>>2537919
Сишарп не умеет рисовать и генерировать музыку, а виноват оказался почему-то я.
Аноним 11/12/22 Вск 12:35:41 2537943 810
>>2537940
Ты виноват в том, что пытаешься набросить говно на вентилятор, а я виноват в том, что продолжаю кормить.
Аноним 11/12/22 Вск 12:43:26 2537949 811
>>2537943
Когда я сталкиваюсь с тем, что джава снова оказывается лучше сишарпа, то испытываю тоже бурю эмоций. Сразу вспоминаю флешбеки тех моментов, когда решил начать изучение сишарпа. Иногда хочется вернуться в прошлое и сказать самому себе: постой, лучше учи джаву!
Не удивительно, что многие сталкиваются с теми же проблемами при изучении сишарпа и лишние напоминание об этом вызывает у них гнев в виде оскорбительных сообщений.
Аноним 11/12/22 Вск 13:07:51 2537966 812
Стикер 380Кб, 512x512
512x512
>>2537949
>Когда я сталкиваюсь с тем, что джава снова оказывается лучше сишарпа
Я больше поверю в то, что ты прикидываешься глупым джавистом, чтобы дискредитировать Джаву. Просто я не могу поверить, что есть настолько глупые люди. Я даже не могу поверить в жирный троллинг от джависта, ибо данный подход подразумевает некий репутационный демадж Джавы как языка, пользователи которого используют фразу "рисовать музыку".

Даже человек, который ни разу не сталкивался с задачей генерации звуков, люто проиграет с тебя, ну и сделает соответствующие выводы о качестве поданной информации в книге Седжвика Р.

Бля, хочешь затроллить меня? Ну возьми и исследуй тему создания музыки на шарпе, сравни это с методами создания на джаве. Покажи пруфы, что сделать можно, что нельзя. Я с удовольствием почитаю.

А пока что ты для меня кажешься каким-то некомпетентным клоуном-ретардом. Только вдумайся: ты отсутствие желания анона вывалить тебе готовый код, хочешь преподнести как отсутствие функционала в шарпе. И кто ты после этого?
Аноним 11/12/22 Вск 13:22:49 2537974 813
Pony.webm 3662Кб, 640x640, 00:00:17
640x640
>>2537966
>И кто ты после этого?
Это тупо байт, чтобы ты в порыве чувств защиты чести и достоинства шарпа, метнулся искать необходимую информацию и выложил всё готовое. Понятно, что хуесос привыкший к готовой подборочке задач из книги неспособен на поиск необходимой информации. Я больше чем уверен, что и генерация звуков ему как таковая не нужна, а просто она была в книге.
Аноним 11/12/22 Вск 13:24:24 2537976 814
javadraw.jpg 61Кб, 709x895
709x895
>>2537966
Ты видимо и читать не умеешь. Я писал: рисовать и выводить звук. Это два разных действия. Ты что ли не рисовал никогда в пеинте? Не пользовался музыкальными проигрывателями?

Тем не менее в джаве это всё легко делается. Даже искать ничего не надо. Написал пару строчек и работает.

Как это в шарпе - не знаю. Скорей всего шарп так не умеет. Либо это какая-нибудь хитромудрая коyфигурация в xaml, что имеет мало общего с простотой рисования в джаве.
Аноним 11/12/22 Вск 13:28:00 2537979 815
>>2537976
Я не вижу на твоем скрине рисования звука.

Я вижу нарисованный кружочек и полосочку, о чем было рассказано в этом посте >>2537891
Раз ты этот пост прочитал жопой и проигнорировал написанное, то не удивляся потом, что анон посчитал, что ты имеешь ввиду рисование музыки.
Аноним 11/12/22 Вск 13:35:19 2537983 816
>>2537976
>Скорей всего шарп так не умеет.
Ты больной. Зачем ты с такими предубеждениями лезешь в шарп? Ты посчитал, что желаемое невозможно до того, как вообще поискал инфу.
Даже после того, как тебе дали ссылку на референсы, ты это проигнорировал и начал поливать говном.
Аноним 11/12/22 Вск 13:48:00 2537994 817
2022-12-1113-42[...].png 2Кб, 272x95
272x95
>>2537976
А где на скрине задается закругление концов?
В WPF можно зать форму окончания контура. Типа CapStart и CapEnd, там можно выбрать закругление, прямой конец и прямой конец с прибавлением на толщину контура.

И второй вопрос, а это хуйня работает как отдельный объект? Или оно просто рисует пиксели? Можно точку и линию повернуть на 45 градусов и отмасштабировать в 0,5 раз относительно центра точки?
Аноним 11/12/22 Вск 14:17:17 2538028 818
>>2537976
В джаве нихуя так не делается. В стандартной библиотеке нет класса StdDraw, ты его взял хуй пойим где и подключил к своему проекту. Напиши саои пару строчек без сторонних библиотек и попробуй тогда выебнуться.
Аноним 11/12/22 Вск 15:00:26 2538103 819
>>2538028
Это библиотека для книги, но в основе у неё AWT и Swing. Её можно одинаково применять на любой ОС, потому что они полностью кроссплатформенны, в отличии от фейковой кроссплатформенности дотнет кора.
Аноним 11/12/22 Вск 15:04:26 2538114 820
>>2538103
Прикладывай пример без этой библиотеки или слит.
Аноним 11/12/22 Вск 15:55:07 2538192 821
javadrawawtswing.jpg 86Кб, 755x885
755x885
>>2538114
Всё работает. Можно даже сделать jar-ник и запустить в линуксе и макоси и всё будет работать без перекомпиляции.
Аноним 11/12/22 Вск 16:06:10 2538211 822
>>2538192
Что, уже не пара строчек? А теперь напиши то же самое на винформах, получится примерно столько же. Вскукарек про кроссплатформенность хуй знает к чему тут вообще, в изначальной постановке вопроса про него ничего не было, так что не надо тут переобуваться. Кому нужна кроссплатформа - тот возьмёт eto.forms или авалонию.
Аноним 11/12/22 Вск 16:08:20 2538220 823
>>2538211
Я не умею на винформах. По ним нет нормальной книги.
Аноним 11/12/22 Вск 17:22:08 2538316 824
2022-12-1117-04[...].png 20Кб, 351x348
351x348
>>2538211
>А теперь напиши то же самое на винформах, получится примерно столько же.
Что на формсах, что на WPF получается ровно столько же (т.е. первый варинат анона с библиотекой). Ну может на формсах чуточку длиннее, но в WPF гарантирую ровно столько же кода.

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

>>2538220
>Я не умею на винформах
И не надо. Там графику рисовать тупо. Единственное, что там годное — это возможность нарисовать сглаженную кривую по точкам. Т.е. речь идет не о кривых безье, когда указывается 4 точки (это есть и там и там), а когда указывается только две и между ними идет усредненный переход. Так называемые Catmull-Rom кривые.
https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Catmull.E2.80.93Rom_spline
Возможно в WPF есть и такое, но я не нашел.
Аноним 11/12/22 Вск 17:30:29 2538321 825
>>2537883
Для работы со звуком есть NAudio. https://github.com/naudio/NAudio

Как по мне, так это настоящая Silver bullet для работы со звуком. Позволяет не ебаться с различными API.
Аноним 11/12/22 Вск 17:30:37 2538322 826
>>2537949
>Иногда хочется вернуться в прошлое и сказать самому себе: постой, лучше учи джаву!
Так, а что тебе мешает сейчас свичнуться на джаву и съебать нахуй из треда ?
Аноним 11/12/22 Вск 17:30:54 2538323 827
>>2537949
>Иногда хочется вернуться в прошлое и сказать самому себе: постой, лучше учи джаву!
Так, а что тебе мешает сейчас свичнуться на джаву и съебать нахуй из треда ?
Аноним 11/12/22 Вск 17:38:47 2538331 828
>>2538322
>>2538323
Джава учится дольше, чем сишарп. Само собой речь не про язык, а про фреймворки. А мне надо по-быстрому выучить что-то и вкатиться. Если заработаю себе на 2 года гэпчика, то смогу переучиться на джаву. А сейчас уже поздно, деньги почти закончились.
Аноним 11/12/22 Вск 18:08:40 2538370 829
Аноним 11/12/22 Вск 18:21:25 2538382 830
>>2538370
Ну да, просто по первой как-то не осознаешь это, особенно когда переходишь с винформсов.
Аноним 11/12/22 Вск 19:20:42 2538440 831
>>2538331
>Джава учится дольше, чем сишарп.
Воу-воу. Притормози. Ты тут всю дорогу внушаешь, что джава лучше и там все проще. Что не надо запоминать кучу модификаторов и т.д. И тут хуяк и все наоборот?
К чему тогда твои стенания на тему того какая джава пиздатая если ты ее даже осилить не можешь?

>Само собой речь не про язык, а про фреймворки.
Гнилой аргумент. Если ты нормально знаешь язык, то вопрос вката в любой фреймворк дело максимум месяца, а часто вообще неделя-две.
Аноним 11/12/22 Вск 19:24:20 2538447 832
>>2538331
Но как же ты собрался выучить быстро сишарп если каждый год злые майкрософт меняют стек до неузнаваемости? У тебя же учебные примеры не скомпилируются!
Аноним 11/12/22 Вск 19:33:17 2538462 833
>>2538440
Фреймворки в джаве отстойные. Там всякие xml-конфигурация, тонны аннотаций. В итоге пишешь не на джаве, а на всё сподряд. Есть даже специальный язык Спринга SpEL.

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

>>2538447
Я нашёл актуальный курс на торрентах по текущей версии. Надеюсь успеть до дотнета 8.
Аноним 11/12/22 Вск 22:15:38 2538623 834
>>2538462
>Скорей наоборот, язык учишь за месяц,
До-о-о. Чел, ты даже модификаторы доступа запомнить не в состоянии. Какое тебе там "язык за месяц".
Аноним 12/12/22 Пнд 00:01:03 2538669 835
в шарпе нельзя интерфейс для статик класса - НЕУДОБНААА
Аноним 12/12/22 Пнд 00:08:09 2538675 836
>>2538669
Удивительно, если хоть в обном языке такое есть. Интерфейсы придумали для ООП, а статик классы - костыль для добавления процедурщины в язык, чтобы не добавлять глобальные функции. Видел интерфейсы в сишке? Вот то-то и оно, нет интерфейсов в процедурщине и быть не может.
Аноним 12/12/22 Пнд 00:20:07 2538681 837
>>2538675
в котлине есть ибо там статик это синглтон объект приатаченный к классу и это реально удобно - можно и интерфейс и расширение сделать не только для инстансов, а еще действуют скоупы видимости этих расширений.

Всего этого в шарпе нельзя и приходится извращаться.
Нет - код то писать можно рабочий, но вот сделать нормально - увы
Аноним 12/12/22 Пнд 00:36:38 2538685 838
>>2538681
Чел, ну как бы статик и синглтон это слегка разные вещи, каждая со своими целями. Ты пытаешься логику одного прицепить на логику другого, а когда не получается выдаешь "плохо сделано, тупо".
Аноним 12/12/22 Пнд 00:40:25 2538689 839
>>2538681
> там статик это синглтон объект приатаченный к классу
То есть никакой это не статик, а тупо синглтон, обычный объект со всеми вытекающими. Под капотом для JVM создаётся обычный класс, и, понятное дело, можно реализовывать какие угодно интерфейсы. Там и функции есть, которые тоже сделаны через неявные классы. Кому-то не нравится, что в шарпе нет подобного сахара, а кому-то не нравится наличие такой возможности в петухотлине, в котором делали всё лишь бы не как в жабе.
Аноним 12/12/22 Пнд 00:44:18 2538691 840
>>2538685
>>2538689
снаружи выглядит одинаково

MyClass.MyMethod()

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

И реально пофиг что там под капотом. Сахар для того и придуман чтобы выглядело просто, а под капотом хоть новую вселенную создавай.
Аноним 12/12/22 Пнд 01:29:01 2538700 841
>>2538691
> и потому подобные вещи я называю "статические методы"
> И реально пофиг что там под капотом
Тебе с таким мышлением дорога в 1С и PHP. Хочешь возиться с котлином или шарпом - используй общепринятую терминологию, иначе хуй кто тебя поймёт.
Аноним 12/12/22 Пнд 01:39:03 2538704 842
>>2538700
на статики шарпа я сказал статики.
А статики котлина - вот пусть котлинисты в меня тапками и кидают, но я в шарпотреде сижу.

>Тебе с таким мышлением дорога в 1С и PHP.
с чего вдруг мне прикасаться к этому дерьму. Тут нет логики.
Ведь сахар и DSL средствами языка и нужны для того чтобы скрыть реализацию или сложность заменив ее на удобство

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

это просто факт. это может не нравится шарпистам, но это факт.
Аноним 12/12/22 Пнд 01:44:06 2538705 843
Шарпочане, хватит кормить залетного джавадебила.
Аноним 12/12/22 Пнд 01:53:29 2538707 844
>>2538705
не каждый шарпохейтер суть жавист.
Я хейтю шарп, но не потому что я его плохо знаю, а как раз наоборот.
Аноним 12/12/22 Пнд 02:19:40 2538712 845
>>2538705
А чё ещё делать, TreeView обсуждать?
Аноним 12/12/22 Пнд 05:53:26 2538744 846
>>2538705
почему сюда вообще залетают джавакараси
что мы им сделали такого
Аноним 12/12/22 Пнд 06:08:50 2538749 847
>>2538744
ну ну. я хейтю из за синтаксиса шарпа, хоть и пишу на нем с его рождения.
Все познается в сравнении. Я считал синтаксис шарпа богатым, но волею судеб изучив котлин понял что шарп очень жадный на выразительность.
И жалкие крохи выразительности вводятся со скрипом.
Аноним 12/12/22 Пнд 08:03:25 2538773 848
>>2538744
>что мы им сделали такого
Загляни в джава-тред и поймёшь
Аноним 12/12/22 Пнд 08:16:03 2538776 849
Предстоит собес. Подкиньте реальных вопросов на веб-девелопера с годом опыта.

Жутко стремаюсь из-за ощущения что самозванец, хотя в то же время такой же как и я челик с ютуба просто порешав литкодовские задачки в гугл устроился.
Что подучить? Что в гитхаб закинуть (инб4: его не чекают; литкод задачки) ? Может вам давали полайвкодить, что были за задачи?
Аноним 12/12/22 Пнд 08:19:48 2538778 850
3513684312.jpeg 37Кб, 720x350
720x350
Ваше мнение?

Я, собственно, так в шарп и вкатился.
Аноним 12/12/22 Пнд 08:23:53 2538781 851
>>2538623
В джаве это таблица 4 на 4 и легко учится. Это в сишарпе миллион модификаторов и каждый год новых насыпают. Джава учится за месяц, а сахар сишарпа не учится вообще за какой-либо вменяемый срок.
Понятно, что на собесе может попасться душнила, который завалит сахаром. Поэтому придётся искать вакансии без таких душнил, а с нормальными челиками.
Аноним 12/12/22 Пнд 08:41:18 2538790 852
>>2538781
>сахар сишарпа не учится вообще за какой-либо вменяемый срок.
Вот и ответ почему жависты из ентерпрайза не переходят на котлин.
Мозг у жавистов мааааленький, в буфер все не помещается
Аноним 12/12/22 Пнд 09:20:58 2538801 853
>>2538781
>В джаве это таблица 4 на 4 и легко учится.
А в шарпе это табличка 6 на 5, которая тоже легко учится. Выше в треде ее уже кидали.
Так и запишем, что это предел познаваемости джава-дебила.
>каждый год новых насыпают.
Ну пиздеть, то не надо. Набор этих модификаторов уже 5 лет не меняется. Единственный модификатор который добавили в C#11 - это file, но про него можно тупо забыть, т.к. он для кодогенераторов предназначен.
>а сахар сишарпа не учится вообще за какой-либо вменяемый срок.
Весь сахар си-шарпа спокойно умещается в книжке на 250 страниц карманного формата.
>Понятно, что на собесе может попасться душнила, который завалит сахаром.
Это вообще редкость. Спрашивают только за какой-нибудь фундаментальный сахар вроде using-ов или async/await.
Аноним 12/12/22 Пнд 09:42:31 2538819 854
Если в языке много сахара, то он сладенький!
мимосладкоежка
Аноним 12/12/22 Пнд 10:00:36 2538837 855
Называть сахаром хайлевельные абстракции языка, взятые из многолетних достижений задротов computer science, это признак животного ебанного лоускилльного, уровень джавистов и пхпшников.
Аноним 12/12/22 Пнд 10:11:44 2538843 856
>>2538819
Есть программисты-диабетики
Аноним 12/12/22 Пнд 10:23:07 2538845 857
>>2538843
Это их проблема, не остальных. Не можешь себе позволить сахар - не ной на остальных, что они сахаром пользуются.
Аноним 12/12/22 Пнд 13:38:18 2538967 858
Я создаю отдельную бд для каждого юнит теста, с названием вида {DateTime.Now}.db, как мне просмотреть эту базу данных в райдере? В студии вот есть список всех баз данных, а тут я так понимаю нужно отдельно каждую бд подключать.
Аноним 12/12/22 Пнд 14:00:29 2538981 859
>>2538776
Спрашиваю на собесе (всё по тайпскрипту):
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
Аноним 12/12/22 Пнд 14:30:22 2539010 860
>>2538967
>Я создаю отдельную бд для каждого юнит теста
Ахуеть... in-memory-database еще не проходили на курсах??
Аноним 12/12/22 Пнд 14:30:47 2539011 861
Представляю как у тебя при CI/CD долго эти тесты выполняться будут, просто пиздец.
Аноним 12/12/22 Пнд 14:32:15 2539012 862
>>2538981
Это точно на 3+ лет опыта? У меня 1.5 года опыта на дотнете, я и то могу эту парашу сделать, лол.
Аноним 12/12/22 Пнд 14:36:45 2539015 863
>>2539012
К слову опыта с js нет почти, но это не отрицает факта того, что задача слишком простая.
Аноним 12/12/22 Пнд 14:40:36 2539020 864
>>2539012
>>2539015
Да. Тут 3+, потому что примерно за это время работы в команде у человека образуются норм софт скилы. Бывают просто отличные программисты, с которыми нету никакой возможности работать (чсв, токсики, просто мутные типы), тогда я охотнее возьму менее опытного, но более предсказуемого кандидата.

Интересно, что только 1 из 5 делает тестовое задание адекватно, без странных конструкций, хардкода, знают что такое eslint. В этом задании не главное, чтобы работало идеально, а как оно сделано и тут уже встречаются пиздецы.
Аноним 12/12/22 Пнд 14:51:16 2539034 865
>>2539010
Ms sql не поддерживает размещение дб в памяти, а в sqlite не поддерживается некоторые типы данных из ms sql
Аноним 12/12/22 Пнд 15:01:07 2539043 866
>>2539015
>>2539020
Я ожидаю отдельного сервиса для get, delete, put. Хорошо сделаный paging (для этого нужно понимать сваггер). Отдельный environments. Использование pascalCase (или любой другой). Адекватное название методов (не find() или send()). В конце всё это должно быть запушенно с нормальным названием коммита. И ещё много вещей, на которые я обращаю внимания.
Обо всём выше я кандидату не говорю, он сам должен это знать. Я думаю, что ты бы смог решить поставленную задачу, но не сделал бы это на том уровне о котором я пишу. Знать язык программирования это в лучшем случае полдела, а умение им грамотно пользоваться это уже другой уровень.
Аноним 12/12/22 Пнд 15:04:55 2539047 867
>>2538981
Зачем сортировать на фронте?
Аноним 12/12/22 Пнд 15:10:01 2539051 868
>>2539047
Чтобы проверить как кандидат это сделает, каким путём пойдёт. При собеседовании на фуллстака сортировка и филтрование доллжны быть на бэке.
Аноним 12/12/22 Пнд 16:56:38 2539155 869
>>2539043
>Использование pascalCase
А если всё сделать в джава-стиле?
Аноним 13/12/22 Втр 09:54:41 2539599 870
Поговаривают, что в дотнет 8 снова кардинально переделают ASP.NET и он будет больше похож на Spring. Вместо папок с контроллерами, мы будем просто развешивать аннотации по коду, где нам надо что-то обработать.
Аноним 13/12/22 Втр 10:07:33 2539603 871
>>2539599
Но ведь и сейчас так работает. Аннотации называются атрибутами, и усё.
Аноним 13/12/22 Втр 10:19:39 2539612 872
>>2539599
Какой-то фейковый прогресс, если честно, судя по описанию. Я ещё в прошлом году это говорил, когда тут сороки-белобоки носились с 5 а потом 6 дотнетом.
Аноним 13/12/22 Втр 10:41:09 2539618 873
>>2539612
Дак проблема, что они опять собираются всё переделать. Как потом это всё учить? Книги-то выходят редко и на написание и перевод требуется 2-3 года.
Аноним 13/12/22 Втр 10:43:45 2539620 874
>>2539618
Просто возьми книги 20-30-ти летней давности и окажется, что их новое - это тщательно затёртое старое.
Аноним 13/12/22 Втр 11:30:06 2539642 875
>>2539620
20-30 лет назад все писали классненькие десктопные приложения, а не всякие веб-сервисы. Микрософты даже первый фреймворк для веба сделали как аналог винформам.

А вообще в том же Спринге есть просто класс конфигураций, где создаются всякие контексты, бины и прочая шляпа. А всё остальное можно писать как хочется, только аннотации развешивай. Полная свобода творчества.
А вот в АСП.НЕТ всё прибито гвоздями к полу. Вот тебе одна папка и туда пихай все контроллеры. Пофиг, что тебе надо 100500 таких контроллеров написать, всё равно пихай в одну папку. Про вьюхи и модели я вообще молчу, там полная помойка получается.
Аноним 13/12/22 Втр 11:52:41 2539663 876
>>2539642
> десктопные приложения, а не всякие веб-сервисы
Платформа не важна. Важны паттерны. Поняв паттерны, ты будешь их реализовывать на любой платформе в средах любой степени разнородности, ваще на изичах, не испытывая серьёзных проблем, а мелкие проблемы решая мимоходом. То есть, иначе говоря, зная, твёрдо зная, какими паттернами ты реализуешь свой проект, ты не испытывая неудобств, легко переведешь его с десктопа на веб, с веба на десктоп, с моносервера на кластер, и т.д. и т.п. и др.
Аноним 13/12/22 Втр 12:04:14 2539680 877
>>2539663
Почему тогда Спринг легко учится, хоть там и всякая параша с кофигурацией бинов в xml, а такой весь модный современный ASP.NET Core вообще не учится. На тебя вываливают какую-то словесную мешанину: веббилдер, хостбилдер, кофигуре - не кофигуре, билд - не билд. Да откуда я должен знать, что они там имеют ввиду!?
В теории рассуждают про какое-то промежуточное ПО, а где в коде слова middleware? Их просто нет. У них даже в наименовании ничего не клеится.
Аноним 13/12/22 Втр 12:06:52 2539685 878
image 369Кб, 496x700
496x700
image 623Кб, 700x940
700x940
>>2515951 (OP)
В ссылках упоминается пик-1 книга. Стоит ли начинать с неё? Смущает тот факт, что там очень старая версия шарпа. Или лучше сразу начать с пик-2?
Аноним 13/12/22 Втр 12:08:57 2539688 879
>>2539685
Пик-2 тоже устарела. Сейчас уже C# 11 и .NET 7.
Аноним 13/12/22 Втр 12:52:52 2539739 880
https://spb.hh.ru/vacancy/73736562
>Полный рабочий день на территории работодателя
>Офис недалеко от метро
>(17 минут)
>можно добраться на трамвае
>До нас 3 остановки
>35 000 руб. на руки

аххаха блядь
как сосется, шарпомухи?
Аноним 13/12/22 Втр 12:53:23 2539741 881
>>2539618
Я за последние полтора года вообще ни одной книги не прочитал и как-то умудрился перейти с Core2.1 на .Net6
Аноним 13/12/22 Втр 12:54:53 2539743 882
>>2539642
>Пофиг, что тебе надо 100500 таких контроллеров написать, всё равно пихай в одну папку
Что за хуйню ты несешь? Какую еще одну папку?
Аноним 13/12/22 Втр 13:01:09 2539745 883
>>2539739
Это вкатунская вакансия. Можно считать это оплачиваемой стажировкой с которой через полгода спокойно можно на сотыгу свалить и дальше развиваться. Для вкатунцов самое то. На джаве на подобную вакансию человек 200 налетает в первые часы, а тут человек 15...20 наберется.
Аноним 13/12/22 Втр 13:15:41 2539759 884
Аноним 13/12/22 Втр 13:16:55 2539761 885
>>2539741
А изначально учился по книжке Фримана?
Аноним 13/12/22 Втр 13:18:02 2539762 886
>>2539745
>вкатунская вакансия.
>Можно считать это оплачиваемой стажировкой

Опыт программирования с использованием языка С# не менее 0,5 лет;
Аноним 13/12/22 Втр 13:26:22 2539765 887
>>2539745
Если открыть хх, то увидишь, что резюме на шарп столько же, сколько и на джаву. А вот вакансий на шарп раза в 2 меньше.
Причём шарп лезут в основном всякие птушники, потому что там модно преподавать шарп, а на джаве как правило выпускники универов.
Аноним 13/12/22 Втр 15:18:30 2539858 888
Как вы учили промежуточное ПО?
Аноним 13/12/22 Втр 15:35:40 2539868 889
>>2539762
Так это от первой строчки кода отсчёт. Опыт проганья, а не ком. разработки, так что вкатунская вакуха, потерпеть можно. Особенно если каждый день ездить на трамвае чижик.
Аноним 13/12/22 Втр 15:35:43 2539869 890
>>2539858
Зубрил по книжкам на 1000 страниц.
Аноним 13/12/22 Втр 15:40:10 2539873 891
>>2539868
У меня тогда 20 лет опыта программирования
Аноним 13/12/22 Втр 16:37:24 2539902 892
Я правильно понимаю, что в идеале апи контроллер должен состоять из одной строчки
return Ok(await _service.DoSomething(request)); ?
Аноним 13/12/22 Втр 16:54:54 2539917 893
>>2539902
> апи контроллер должен
Метод апи контроллера, фикс
Аноним 13/12/22 Втр 16:56:04 2539920 894
Аноним 13/12/22 Втр 22:56:30 2540205 895
>>2539761
Нет. По справочнику Албахари и МСДН.
Аноним 13/12/22 Втр 22:57:34 2540206 896
>>2539762
В нормальных вакансиях обычно указывают не "опыт программирования", а "опыт коммерческой разработки", а это дохуя разные вещи.
Аноним 13/12/22 Втр 23:04:44 2540209 897
>>2539759
А я тебя еще раз спрошу - что за хуйню ты несешь?
Ты можешь спокойно создавать контроллеры где ты захочешь, хоть в корне проекта, хоть в каталоге Services. То что класс является контроллером определяется в первую очередь не тем где он лежит в проекте, а тем от чего он наследуется и какой у него внутри функционал.
Каталог Controllers, не более чем конвенция. Т.к. залезая в незнакомый проект, я ожидаю что контроллеры будут все-таки собраны в одном месте, а не размазаны по всему дереву проекта. Т.к. по факту это точка входа в него.
Хотя очень хорошей практикой все-таки будет хоть как-то группировать их по своим каталогам в пределах того же Controllers.
Аноним 13/12/22 Втр 23:27:20 2540219 898
>>2539765
Не буду спорить, т.к. без реальных цифр это тупое дело. Но вроде в МВП треде был чел, который собирал помесячную статистику, там цифры были как раз наоборот.
Скажу только, что количество выходцев из училищ/универов величина более-менее постоянная. А вот за счет "выпускников" говнокурсов, java по количеству явно перевешивает, т.к. во первых всяких курсов по jave намного больше и они популярнее. Во вторых большинство курсов по шарпу ориентированы на геймдев, а их выпускники в принципе бесполезны где-нибудь за пределами разработки игр.

Если совсем грубо обобщить (прямо вот совсем грубо) на уровне вакансий не уровня выше мидл-минус.
Если на Java будет 100 и 200 резюме, то все эти кандидаты будут конкурировать друг с другом за все эти вакансии. В шарпе же в это время будет 50 вакансий и 100 резюме. Но из них будет вакансий 10 геймдева и на них будет 40 кандидатов, еще вакансий 20 легаси и на него будет еще 30 кандидатов зависнувших на .netFramework и на оставшиеся 20 вакансий энтерпрайза, останется 30 человек, что уже не настолько безнадежно как в Java.
Аноним 13/12/22 Втр 23:32:49 2540224 899
>>2539902
>что в идеале апи
Скорее в норме.
>>2539902
>return Ok(await _service.DoSomething(request)); ?
Это если у тебя "always return 200", если же по классике, то что-нибудь вроде:
return CreateResponse(await _service.DoSomething(request));
где CreateResponse, простой базовый метод возвращающий Ок или Fail, в зависимости от бизнес логики.
Аноним 14/12/22 Срд 00:10:01 2540239 900
>>2540219
мда. разучились люди сами учиться. курсы им подавай, книги им подавай

>в принципе бесполезны где-нибудь за пределами разработки игр.
специалисты по левой ноздре (с)
Аноним 14/12/22 Срд 04:42:33 2540275 901
>>2540239
>специалисты по левой ноздре (с)
Ну, на самом деле, геймдев на любом языке будет сильно отличаться от другой деятельности.
Аноним 14/12/22 Срд 06:23:31 2540281 902
>>2540224
>Это если у тебя "always return 200", если же по классике, то что-нибудь вроде:
>return CreateResponse(await _service.DoSomething(request));
>где CreateResponse, простой базовый метод возвращающий Ок или Fail, в зависимости от бизнес логики.
Так для этого же есть промежуточное по, которое будет перехватывать эксепшоны и формировать нужный ответ.
Аноним 14/12/22 Срд 08:09:18 2540307 903
>>2540281
>Так для этого же есть промежуточное по, которое будет перехватывать эксепшоны и формировать нужный ответ.
Мидлварь предназначен для обработки технических или общих фейлов. Ты же не будешь для каждого бизнес процесса свой отдельный мидлварь писать.
Аноним 14/12/22 Срд 08:32:11 2540315 904
>>2540239
Как ты сам выучишь без курсов и книг?
Некоторые, кто давно вкатился, ещё находятся при ошибочном мнении, что они сами всему научились, хотя раньше на работу брали по факту окончания универа или технаря, а там их уже натаскивали опытные коллеги.
У меня однокурсник именно так и вкатился в 2008, хотя языка даже не знал. Тогда было модно С++ учить, а на всякие джавы и сишарпы мы смотрели свысока.
Аноним 14/12/22 Срд 09:26:32 2540331 905
>>2540315
Насчёт курсов не знаю, но книги точно нужны. Я благодаря книгам в сосничестве освоил C++. Потом опять же по книгам освоил C#, WPF, ASP.net
Аноним 14/12/22 Срд 09:52:08 2540340 906
image.png 16Кб, 643x139
643x139
Анончик, у меня перфекционизм зашкаливает - как убрать эти предупреждения?

У меня ProgramData.UserConfig 100% валиден - там много выше это проверяется сто раз.
Аноним 14/12/22 Срд 09:53:16 2540341 907
>>2540331
>но книги точно нужны
не нужны. metanit, а еще лучше документация от microsoft хорошо описаны. Ну это если про шарп
Аноним 14/12/22 Срд 10:09:56 2540352 908
>>2540340
Удалить круглые скобки и добавить 101-ю проверку.
Аноним 14/12/22 Срд 10:16:45 2540355 909
>>2540341
Метанит пишет один чел. У него нет даже напарника, который бы правил опечатки и косяки. А любая книга проходит рецензирование и этим занимаются как правило серьёзные челы уровня профессоров в области компьютерных наук. Касательно сишарпа, авторы книг как правило имеют сертификаты от микрософт, что они реально специалисты в этой области.
Кроме всего прочего, книга у тебя будет всегда на руках, а метанит может в любой момент закрыться и твой вкат накроется медным тазом.
Аноним 14/12/22 Срд 10:19:28 2540359 910
>>2540224
> где CreateResponse, простой базовый метод возвращающий Ок или Fail, в зависимости от бизнес логики.
Можно поподробнее? У меня например бизнес логика просто кидает исключение при неверных вводных данных или ещё каких-либо проблемах. Как мне это исключение обрабатывать?
Аноним 14/12/22 Срд 11:09:27 2540382 911
>>2540340

ProgramData.UserConfig!.UserRole == UserRole.admin
Аноним 14/12/22 Срд 11:11:52 2540385 912
Анонимусы, есть ли в HttpClient какой-то вариант реализовать курловский --resolve? Очень надо...
Аноним 14/12/22 Срд 13:29:54 2540529 913
А где в студии отключить компактный режим или как он там называется, когда прячутся неймспейсы?
Аноним 14/12/22 Срд 14:37:59 2540607 914
>>2540359
>У меня например бизнес логика просто кидает исключение при неверных вводных данных или ещё каких-либо проблемах. Как мне это исключение обрабатывать?
Странный вопрос. Ты когда исключение выбрасываешь, ты же не в воздух это делаешь. Ты должен всегда подразумевать где оно у тебя отлавливается и обрабатывается. Либо там же где ты его выкинул, либо из того слоя который у тебя дергает бизнес логику. Ну либо через мидлварь, но это уже изврат.
Аноним 14/12/22 Срд 14:45:06 2540615 915
А если у пользователя выскочила ошибка, то что она мне даст? У меня нет всей цепочки действий — нужно логирование, но я же не могу им засрать всю программу и постоянно собирать логи.

Какие для этого есть инструкции?
Аноним 14/12/22 Срд 14:48:40 2540617 916
>>2540607
> Ты должен всегда подразумевать где оно у тебя отлавливается и обрабатывается.
Ну так я планировал его обрабатывать внутри контроллера, но это вроде как плохая практика, контроллер же должен быть пустым.
Аноним 14/12/22 Срд 15:13:16 2540639 917
изображение.png 35Кб, 852x396
852x396
изображение.png 23Кб, 1045x176
1045x176
изображение.png 28Кб, 825x260
825x260
>>2540617
Вот к слову пример удаления. Нормально реализовано?
Аноним 14/12/22 Срд 15:16:41 2540643 918
>>2540639
Как тебе удалось ломануть райдер?
Аноним 14/12/22 Срд 15:17:29 2540644 919
>>2540643
Ну рутрекере в комментариях под раздачей есть инструкция.
Аноним 14/12/22 Срд 15:20:53 2540649 920
>>2540644
Там на старую версию, которая не поддерживает дотнет 7
Аноним 14/12/22 Срд 16:51:08 2540789 921
>>2540639
>Нормально реализовано?
Нет. Как минимум, потому ты пробрасываешь конретный эксепшен, а ловишь общий.
Алсо, всегда ставь скобки в If-ах, не будь мудаком.
Аноним 14/12/22 Срд 17:15:31 2540834 922
изображение.png 50Кб, 844x511
844x511
>>2540789
> Нет. Как минимум, потому ты пробрасываешь конретный эксепшен, а ловишь общий.
Так лучше?
Аноним 14/12/22 Срд 19:20:15 2540943 923
Аноним 15/12/22 Чтв 00:15:59 2541262 924
>>2540834
Во первых - when используется не так. В том смысле, что тут он вообще не нужен и достаточно простого Catch(ArgumentOutOfrangeException ex). То что ты написал работать будет, но выглядит максимально по индусски.
Во вторых попробуй напиши в одном контроллере несколько похожих методов и ты сразу увидишь, что в каждом из них у тебя будет повторяющийся код из одинаковых цепочек catch-ей. И куда-то в одно место ты их не вынесешь, что сильно ломает DRY принцип.
Если бы ты возвращал стандартизированный ResultObject, тогда тебе всю его обработку и распил на IActionResult, можно было бы вынести в отдельный экстеншен единый для всех контроллеров. И тогда все методы в них действительно состояли бы из одной строки.
Аноним 15/12/22 Чтв 00:22:06 2541263 925
>>2540834
400 выдаст валидатор входных данных и метод контроллера будет пуст от этого
500 выдаст мидлваря если до нее долетит какое то исключение - чего так то быть не должно.
как и 404 вообще роутинг выдаст
Аноним 15/12/22 Чтв 00:37:03 2541269 926
>>2540943
Вот очень хорошее видео. Чел очень хорошо рассказывает, то что я пытался криво в своих ответах рассказать. Подробно объясняет как и почему не нужно кидать исключения и как от этого уйти. И даже небольшой бенчмарк показывает.

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

Вкатунцам на заметку, если сможете разобраться, реализовать подобное в сових петах, которые прикладываете к резюме и объяснить на собесах почему и зачем так сделали, то на место джуна влетите со свистом.
Аноним 15/12/22 Чтв 00:59:25 2541280 927
>>2539739
>>35 000 руб. на руки
Ты долбоеб?
Там
>>•Оклад на постоянной основе 35.000-40.000 рублей
>>Оклад

Это значит что зп - 70к-80к.
Аноним 15/12/22 Чтв 01:03:47 2541283 928
>>2541280
Зп = оклад. Остальное держится на честном слове и срезается до нуля при любых колебаниях экономики.
Аноним 15/12/22 Чтв 01:12:40 2541291 929
>>2541283
двачую этого реалиста
либо срезают под поводами, либо "ну мы же тебе платим, значит больше можем требовать"
Аноним 15/12/22 Чтв 04:24:51 2541338 930
>>2541283
> и срезается
Или не срезается. При колебаниях тебе и оклад могут порезать.

Да, сама схема оклад+премия бесящая (особенно когда ею оперируют в ростатах нарисовывая несуществующие средние зарплаты).
Но тем не менее это не значит что там платят только 30к.
Ну а то что это галера где за любой чих ползарплаты отбирают... Так а что еще ждет начинающего масленка? Галера и ждет, а дальше он сам должен выбиваться в сеньоры.

Плюс там может быть не только премия, а еще и надбавки к окладу - вот их уже не могут срезать. Например у меня в зп 30% от оклада - северные и стаж.
Аноним 15/12/22 Чтв 08:23:43 2541385 931
>>2541338
>Да, сама схема оклад+премия бесящая (особенно когда ею оперируют в ростатах нарисовывая несуществующие средние зарплаты).
За один месяц выдали 100.000 рублей (50 премия + 50 оклад), во второй только оклад 50 тысяч, средняя зарплата за два месяца -75 тысяч. А по твоей логике должна быть 50?
Аноним 15/12/22 Чтв 13:07:02 2541648 932
>>2540943
Если классические исключения настолько ресурснозатратны, то почему голованг ругают за их реализацию в сущности как в данном видео?
Аноним 15/12/22 Чтв 14:40:25 2541736 933
>>2541648
Я х.з. гоферы вроде тащатся от реализации.
Сам я не го пробовал, но из того, что об этом читал могу назвать такие недостатки (конечно это исключительно мое личное мнение):
1) Выглядит несколько прибитым гвоздями. В шарпе ты можешь пользоваться исключениями, можешь не пользоваться, можешь смешать все вместе. Тут же создатели языка включили вахтеров и установили единый способ.
2) Такое ощущение, что там весь стектрейс и контекст к проебывается к херам по дефолту. Думаю лет через 5...10 те кто будет разгребать, то что нынешние говнокодеры наклепают, будут крайне опечалены и разозлены этим фактом.
Аноним 15/12/22 Чтв 16:55:16 2541894 934
>>2541736
Просто голанг разрабатывали люди, которым нравится старый сишный стиль программирования. Тебе не надо изучать тонны фреймворков и библиотек, а ты сам выстраиваешь логику программы как хочешь.
Я бы вот лучше голанг пошёл изучать, чем долбиться в этот асп.нет. Но туда не берут вкатунов, а только опытных челов.
Аноним 16/12/22 Птн 00:42:54 2542407 935
>>2541894
>Просто голанг разрабатывали люди, которым нравится старый сишный стиль программирования.
Ну т.е. любителями велосипедов.
>Тебе не надо изучать тонны фреймворков и библиотек, а ты сам выстраиваешь логику программы как хочешь.
Угу, тут будет старая шутка про то что каждый разраб на С начинает с придумывания своей библиотеки для работы со string-ами.

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

Андерс Хейлсберг (род. 2 декабря 1960) — датский инженер-программист, создатель Turbo Pascal, Delphi, C# и TypeScript.
Т.е. чел как бы шарящий за все эти вещи.

Ну и при желании ты на шарпе также можешь навелосипедить что угодно. От высочайших ООП абстракций, до адской БДСМ байтоебли. Его плюс как раз в оптимальном соотношении удобство/возможности

>>2541894
>Я бы вот лучше голанг пошёл изучать, чем долбиться в этот асп.нет. Но туда не берут вкатунов, а только опытных челов.
Вкатунов сейчас никуда не берут. Это сродни выйгрышу в лотерею. А год...два назад и в гоферы можно было спокойно с улицы залететь.
Аноним 16/12/22 Птн 01:36:35 2542439 936
Аноним 16/12/22 Птн 03:48:44 2542480 937
Как скопировать один List<object> в другой чтобы это была именно копия, а не список ссылок на одно и тоже?
Аноним 16/12/22 Птн 06:29:48 2542493 938
>>2542439
Вот такие смузихлебы-вкатунщики сейчас и визжат что айти умирае... И я очень рад что это айти-гнилье наконец-то начали гнать из фанга (а значит скоро мода дойдет и до остальных)

Видите-ли он не хочет работать со старым говном. А нахуя он тогда нужен?

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

Я например так работал - переделывал софт с vb на шарп - сначала накидал фронтэнд и связал код со старым кодом (были красивые вызовы vb кода из шарпа) - чтобы оно сразу все работало. Теперь постепенно убираю эти связи переписывая бэкэнд в критичных местах. При этом оно все работает прямо сейчас в промышленности. Начальнику не нужно ждать десять лет - когда там новый софт заработает, он уже видит новенький красивый гуи и его хотелки появляются сразу.
Понятно что если в этот момент понадобится новый программист - но будет требоваться знание и vb и шарпа. Но это на время переходного периода, в конце все связи с vb должны быть уничтожены.
Аноним 16/12/22 Птн 07:56:07 2542511 939
>>2542480
Гугли ICloneable, Поверхностное копирование, Глубокое копирование. Реализуешь то, что подходит под твою ситуацию.
Перебираешь список, делаешь полный клон каждого объекта и помещаешь его в новый список.
Придется как минимум разобраться в вопросе копирования содержимого объекта в другой объект. Простого и готового способа тут нет.
Аноним 16/12/22 Птн 08:34:57 2542523 940
>>2542407
>создатель Turbo Pascal, Delphi
Вот теперь и приходится использовать этот уродливый PascalCase, вместо няшного camelCase.
Аноним 16/12/22 Птн 08:57:44 2542568 941
Как создать приложение на дотнет 5, если сейчас доступны только 3.1, 6 и 7?
Аноним 16/12/22 Птн 09:22:13 2542585 942
>>2542523
Челик, ты же в курсе, что PascalCase, это и есть CamelCase, да? А то, на что ты так неистово дрочишь, это его разновидность - loweCamelCase.
И в шарпе, так же как в Java, Go и VB, используются они оба.
Аноним 16/12/22 Птн 09:31:06 2542590 943
vs-export.gif 111Кб, 878x571
878x571
Аноним 16/12/22 Птн 09:33:09 2542593 944
>>2540943
Только подобный подход очень неудобен при обмазывании linq.
Аноним 16/12/22 Птн 09:56:06 2542599 945
Вчера читал про ссылочные типы не допускающие null и офигевал с того, какого говна навернули микрософты. Ладно бы они как-то решили проблему, но нет, они добавили тонны кала, но ссылочные типы не допускающие null по-прежнему могут содержать null и программа может вылететь с NullReferenceException.
Почему в Java спокойно используют ссылочные типы допускающие null, а вот микрософтам этот null чем-то мешает?
Аноним 16/12/22 Птн 09:58:13 2542600 946
>>2542593
Почему? Тащем-та линк это просто про перебор коллекций с данными, какое отношение это имеет к прокидыванию результата между слоями?
Ну и даже если у тебя это как-то завязано, то linq это по большому счету расширения, на которые ты можешь накинуть свою обертку и точно так же их использовать, это будет даже еще удобнее.
Аноним 16/12/22 Птн 09:59:55 2542601 947
>>2542600
> Почему? Тащем-та линк это просто про перебор коллекций с данными, какое отношение это имеет к прокидыванию результата между слоями?
Потому что внутри селекта нельзя просто написать return Result, нужно в любом случае перебрать все значения, затем ещё раз их перебрать чтобы проверить была ли ошибка, и только тогда вернуть result из метода.
Аноним 16/12/22 Птн 10:00:45 2542602 948
>>2542601
Ну и да, исключение же можно спокойно кинуть хоть из десятка вложенных селектов, за что собственно и любимы.
Аноним 16/12/22 Птн 11:16:04 2542659 949
>>2542601
Пример приведи. Чет я плохо понимаю, какие у тебя могут быть ошибки в селекте, который по факту просто проекция данных из одной модели в модель.
Аноним 16/12/22 Птн 11:33:33 2542685 950
>>2542659
У меня массив id, в селекте я получаю соответствующие сущности из бд.
Аноним 16/12/22 Птн 11:54:39 2542723 951
>>2542585
> loweCamelCase
Как будто у печатающего залипает шифт.
мимо
Аноним 16/12/22 Птн 11:57:24 2542731 952
>>2542685
Еще раз. Select это проекция уже выбранных значений.
Аноним 16/12/22 Птн 13:52:19 2542939 953
Петушарп гораздо хуже, чем жаба.
Аноним 16/12/22 Птн 14:02:42 2542949 954
Аноним 16/12/22 Птн 17:26:37 2543217 955
посоны я тут короче немного пошуршал и рассортировал проект по папкам шоб аккуратно было и красиво, но неймспейсы старые остались и там чад кутежа во мгле ада
есть ли способ в студии быстро привести их в соответствие со структурой во всем проекте?
Аноним 16/12/22 Птн 19:55:33 2543411 956
>>2542599
>Почему в Java спокойно используют ссылочные типы допускающие null
где спокойно? NRE на NRE и NRE погоняет. Забавно видеть в каком нибудь еклипс или пишарме иногда NRE в его тулзах.

>а вот микрософтам этот null чем-то мешает?
гугли "ошибка на миллиард долларов" - там пояснят

С нуллабле можно писать и без NRE конечно, просто это сложнее био нужно самому следить. вот для этого и делается "пусть компилятор где может сам следит". Так что языки где СРАЗУ есть четкое разделение на нулл типы и нет - просто больше защищают от ошибок вида "не уследил"

И не нужно говорить про "следи лучше".
Если код пишешь не ты один, то нужны жесткие контракты, а это выливается в итоге в использование всяких NullGuard и анализаторы, что по факту то же самое
Аноним 16/12/22 Птн 19:55:51 2543412 957
Аноним 16/12/22 Птн 20:05:00 2543426 958
>>2542939
жава это кофе
шарп это кофе с сахаром

какой кофе лучше? ну ты понял.
Аноним 16/12/22 Птн 20:12:57 2543438 959
Аноним 16/12/22 Птн 20:21:35 2543450 960
>>2543438
resharper - пкм на нужном пункте в дереве проекта и Refactor - Adjust Namespaces
студия 22 - пкм там же - Sync Namespaces

что там раньше не знаю. я всегда жил на решарпере.
Аноним 16/12/22 Птн 20:22:35 2543453 961
.png 353Кб, 600x343
600x343
>>2543426
Лучше лавандовый раф с корицей на миндальном молоке.
Аноним 16/12/22 Птн 20:23:05 2543454 962
>>2543426
А если я пью чаёк без сахара?
Аноним 16/12/22 Птн 20:24:44 2543456 963
>>2543453
Ты про Nemerle? увы это для реальных ценителей и сложно найти

>>2543454
значит ты пьешь чаек без сахара. а значит к кофе тебя вообще допускать нельзя - ты его в глаз зальешь с такой внимательностью.
Аноним 16/12/22 Птн 20:25:41 2543457 964
>>2543450
блин у меня 19 студия..
Аноним 16/12/22 Птн 20:26:59 2543459 965
Аноним 16/12/22 Птн 20:36:16 2543467 966
>>2543456
Если бы на джаве была бесплатная полнофункциональная ИДЕ, то все бы учили только джаву. Сишарп держится только за счёт бесплатной вижлы.
Аноним 16/12/22 Птн 20:41:00 2543472 967
>>2543467
На шарпе легко писать код хоть в блокноте, не надо запоминать громоздкие пакеты и всякие LocalContainerEntityManagerFactoryBean. Это в жабе без иде хуй что напишешь.
Аноним 16/12/22 Птн 20:41:43 2543474 968
>>2543467
а куда IDE делись? я не жавист но помню там была eclipse, NetBeans, та же андроид студия фри, хоть писать на ней не под андроид геморнее.
Аноним 16/12/22 Птн 20:45:03 2543480 969
>>2543474
Сейчас джавист - это IDEA-разработчик. Все курсы и книги пишут для идеи, если у тебя нет идеи, то ничему не научишься.
Аноним 16/12/22 Птн 20:46:47 2543486 970
>>2543480
ох уж эти "специалисты по левой ноздре". (с)
если чел не может научиться без книг и особой IDE - он говно, а не программист.
Аноним 16/12/22 Птн 20:47:50 2543490 971
>>2543486
Значит, все джависты - говно, а не программисты.
Аноним 16/12/22 Птн 20:54:14 2543502 972
>>2543490
Но джава как язык лучше сишарпа
Аноним 16/12/22 Птн 20:58:29 2543506 973
>>2543502
Как экосистема - лучше. Как язык - намного хуже.
Аноним 16/12/22 Птн 20:59:40 2543509 974
>>2543506
Наоборот, язык - простой, легкий в обучении, а экосистема - сложная и неудобная.
Аноним 16/12/22 Птн 21:05:06 2543518 975
>>2543509
> простой, легкий в обучении
синклер бейсик еще проще в обучении, но как то ценится удобство писать код, а не учить язык.

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

И тут у жавый полная жопень. Например, вместо удобной async/await, что ЛОЛ будет уже небось и в синклер бейские даже, но не в жаве - в жаве нужно городить огородище.
Аноним 16/12/22 Птн 21:05:21 2543519 976
>>2543509
> простой, легкий в обучении
То есть примитивный. Понятное дело, что язык легко выучить, если в нём нихуя нет и всё делается через библиотечные костыли.
Аноним 16/12/22 Птн 21:09:39 2543523 977
>>2543502
слух, жавист, если бы ты сюда с котлином пришел, то у тебя были бы аргументы
но с жавой....это болезнь.
Аноним 17/12/22 Суб 03:16:14 2543670 978
>>2543519
>ряяяяяяяяяяяяяя!!!!
Аноним 17/12/22 Суб 03:17:15 2543672 979
>>2543426
Жаба - коже, петушарп - кофе с говном.

Какой выберешь ты?
Аноним 17/12/22 Суб 04:23:21 2543676 980
>>2543672
Я выберу послать жависта с его найтупейшим сравнением в его родной тред и там нести бред.
Аноним 17/12/22 Суб 08:09:34 2543703 981
>>2543518
Но как раз в джаве удобно писать и ещё удобней читать код. Не нужно держать в голове тонны сахарных конструкций. Все прописано явно.
Синклер Бейсик же не был даже структурированным языком. Простой цикл типа while там надо было расписывать в виде IF-GOTO. Многочисленные переходы превращали всё в спагетти-код.
Помню как-то в журнале "Наука и жизнь" в конце 1980-х публиковали программы на Бейсике, но с ходу разобрать код было невозможно. Приходилось расписывать эти макаронины на отдельной бумажке в виде блок-схем.
В сишарпе тоже самое, приходится весь сахар выписывать на бумажку и смотреть во что разворачивается та или иная закорючка. И боюсь, что в ноябре микрософты ещё накинут нам сахарку, что все офигеют. Какую-нибудь конструкцию языка сломают так, что придётся по новой переучиваться.
Аноним 17/12/22 Суб 08:13:28 2543708 982
>>2543519
Джава - это чистый ООП язык. Если ты соблюдаешь ООП-стиль, то проблем не возникает. Проблемы как раз в сишарпе, который пытается добавлять сахарок, чтобы продолжали писать в процедурном стиле. Сишарп позволяет много вольностей в плане размещения классов по файлам, самих файлов по папкам, и порой малоопытный программист клепает лютый говнокод. В джаве же изначально приняты стандарты, которые заставляют писать упорядоченный код.
Аноним 17/12/22 Суб 09:16:00 2543728 983
>>2543703
>В сишарпе тоже самое, приходится весь сахар выписывать на бумажку и смотреть во что разворачивается та или иная закорючка.
Чувак мы поняли уже, что джависты тупые и без бумажки код разобрать не могут. Съеби уже.
Сарказм, если что. Не считаю джавистов тупыми, кроме конкретно вот этого.
Аноним 17/12/22 Суб 09:49:11 2543748 984
>>2543728
Легкость и простота джавы не говорит о том, что на ней пишут тупые. Напротив умный человек будет стремиться к простым и элегантным решениям.
Разве можно назвать код на сишарпе таким? Нет, там в одной строчке может быть с десяток всяких знаком вопросов, восклицательных знаков и прочих закорючек. Такой код сложно читать и воспринимать. Код на джаве же порой читается также легко как текст на английском (для тех, кто понимает английский).
Аноним 17/12/22 Суб 11:00:56 2543792 985
>>2543703
>Но как раз в джаве удобно писать и ещё удобней читать код
ага ага. правда вместо 2 строк получается текста на 3 страницы, но то такое.
>>2543748
>Код на джаве же порой читается также легко как текст на английском
только читать приходится много. И ничего хорошего в этом нет. Аж вообще ничего. А в случае с многопотоком еще и держать большой контекст в голове, ведь сложное выраженное убогими словами как бы добавляет сложности.
Аноним 17/12/22 Суб 12:18:00 2543820 986
>>2543792
Ты как программист всё равно должен вникать во все тонкости. Разница лишь в том, что на джаве ты сам выстраиваешь логику приложения, а сишарпе вынужден подстраиваться под микрософт. Если они завтра выкатят какое-нибудь говнецо, то придётся им пользоваться, потому что выбора нет. При этом ещё и вникать в кишочки этого говнеца, полностью в нём вымазавшись.
Аноним 17/12/22 Суб 13:42:00 2543860 987
>>2543820
Почему ты ещё не программируешь на ассемблере с такой логикой?
Аноним 17/12/22 Суб 13:45:59 2543862 988
>>2543860
Программирую, но программисты на ассемблере не нужны.
Аноним 17/12/22 Суб 16:22:39 2543942 989
Сейчас работаю на десктопе, через ~год (если айти до конца не здохнет) хочу перекатиться в веб. Как лучше сделать, чтобы увеличить шансы на вкат + чтобы было по-сытнее? Рассматриваю 2 пути - ASP.NET + js + react (не хотел бы связываться с динамикодрисней, можно ts учить без js? нужен ли хтмл и css? какой-то другой фрейм для фронта мб?) - фуллстак вариант, или же ASP.NET + Go - чисто бэкенд варик, с мб полностью переходом на го - платят вроде больше. Что посоветуйте, аноны?
Аноним 17/12/22 Суб 17:00:30 2543960 990
Аноним 17/12/22 Суб 17:15:14 2543971 991
>>2543942
Лучше смотри в сторону .NET с модными молодежными микросервисами, без ГОвна только. Я сам декстоп винФормс + чистый бэкенд, но монолиты. Перекатиться с миддла почти 4 лвл на миддл/+ на чистого бэкендера с стейт-оф-арт стеком пока не получается.
Аноним 17/12/22 Суб 17:19:20 2543976 992
Аноним 17/12/22 Суб 17:33:20 2544002 993
>>2543960
Фу, я учился на это. Не хочу обратно.
Аноним 17/12/22 Суб 17:38:19 2544008 994
>>2543971
Ну в сторону модных молодежных сервисов и смотрю, только как в них с десктопа залететь - вопрос. В вебе я сделаю выпуки на уровне вкатунцов курсовых.
Аноним 17/12/22 Суб 18:13:48 2544029 995
>>2543820
Какой забористый бред ты несешь. Жавист, уходи. Ну просто траллишь же, что допустимо, но хоть бы не делал это так уныло.

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

> то придётся им пользоваться
да прям таки. неудачные концепции отмирают. примитивная концепция new Thread()/BeginXXX в шарпе давно заменилась на удачную концепцию TPL/async+await и первое используют имхо только в школах школьники.
Аноним 18/12/22 Вск 16:43:18 2544826 996
Если я хочу добавить для веб апи веб интерфейс, как лучше это сделать? Добавить страницу разор непосредственно в проект, или создать отдельный проект и вызывать апи из него?
Аноним 18/12/22 Вск 18:07:20 2544919 997
image.png 10Кб, 394x298
394x298
Анон, почему Biba не реализует Abob'у?
Аноним 18/12/22 Вск 18:27:44 2544937 998
>>2544919
Наведи мышкой и узнаешь.
Аноним 18/12/22 Вск 18:33:48 2544947 999
>>2544937
Объясни мне, анон, без троллинга, почему Foo(IAboba aboba) не равно Foo(T aboba) если вместо T вызывающая сторона может поместить только IAboba?
Аноним 18/12/22 Вск 18:38:48 2544953 1000
>>2544919
Потому что сишарп не поддерживает ковариантность и контравариантность
Аноним 18/12/22 Вск 19:47:10 2545064 1001
>>2544947
Потому что интерфейс требует реализации конкретной функции, и ему похуй на твои ограничения.
Аноним 18/12/22 Вск 20:35:38 2545139 1002
>>2545064
Ну так и скажите что пацаны не вывезли в таблице вызовов поэтому НИНУЖНО (ну или это я шиз и такого кейса никогда не было)

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

Если proposal на гитхабе накидать, индусы сделают или обоссут?
Аноним 18/12/22 Вск 20:35:57 2545141 1003
14869921455072.jpg 319Кб, 1266x1280
1266x1280
Есть исходный лист, мне нужно запретить вмешиваться в него. Сто делает метод .AsReadOnly? Он делает дубликат коллекции или обходится малой кровью, выставляя какой нибудь флаг?

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

С одной стороны неизвестно кто и каким образом будет обращаться с твоим списком и логично делать копию на стадии формирования списка. С другой стороны метод обрабатывающий список как бы становится небезопасным т.к. шатает список, а пользователь может этого и не просил. Если будут двое копировать список, то дюже затратно.
Аноним 18/12/22 Вск 20:40:27 2545150 1004
>>2545141
А, нашел. Это типа оболочка поверх существующего листа.
Аноним 19/12/22 Пнд 00:18:50 2545348 1005
.png 9Кб, 349x161
349x161
А вы знали, что в щарпе уже 7 модификаторов доступа, а не 6?
Аноним 19/12/22 Пнд 01:33:40 2545397 1006
>>2545139
ну ты создаешь open generic. Чтобы этой твой класс смог реализовывать интерфейс, компилятор должен сразу создать closed generic версию класса. И очевидно это не было сделано потому что "хз зачем это нужно"
Аноним 19/12/22 Пнд 01:36:01 2545399 1007
>>2545348
пока не поддерживается решарпером - считай что такого нету
Аноним 19/12/22 Пнд 03:12:04 2545441 1008
>>2545348
И? Опять заведешь шарманку, что "сложна - низапомнить"?
Аноним 19/12/22 Пнд 03:14:18 2545442 1009
>>2545441
Ты меня с кем-то путаешь. Я не вижу ничего сложного в модификаторах доступа.
Аноним 19/12/22 Пнд 03:35:57 2545448 1010
>>2545442
С модификаторами доступа есть проблема - их маловато
Аноним 19/12/22 Пнд 04:01:37 2545455 1011
>>2545448
Как же хочется кастомные модификаторы доступа...
Аноним 19/12/22 Пнд 04:04:46 2545457 1012
>>2545455
а еще методы без классов... и много другого
но увы шарп это жаваклон со всеми его детскими болячками.
Аноним 19/12/22 Пнд 04:09:06 2545458 1013
>>2545442
Сорян, просто чуть выше был тип который жаловался на неимоверную сложность запоминания модификаторов в шарпе.
Аноним 19/12/22 Пнд 08:19:54 2545523 1014
>>2545348
И нафига он нужен? Почему в джаве прекрасно живут в 4 модификаторами доступа, а в сишарпе их всегда мало?
Аноним 19/12/22 Пнд 08:49:26 2545546 1015
>>2545523
некоторые и с одной ногой нормально живут.
Аноним 19/12/22 Пнд 08:53:40 2545547 1016
>>2545546
А некоторые себе третью пришивают
Аноним 19/12/22 Пнд 09:47:23 2545579 1017
>>2545547
Ну, не знаю, как насчет ноги, но от третьей руки я бы не отказался.
Аноним 19/12/22 Пнд 09:48:12 2545580 1018
>>2545523
>И нафига он нужен?
В основном, для кодогенераторов.
Аноним 19/12/22 Пнд 12:04:54 2545734 1019
>>2545523
В крестах вообще 3 и всем хватает!
Аноним 19/12/22 Пнд 12:07:15 2545737 1020
>>2543676
Че так рвонкьнул то?
Аноним 19/12/22 Пнд 12:10:54 2545748 1021
изображение.png 13Кб, 543x158
543x158
Почему тру?
Аноним 19/12/22 Пнд 12:14:36 2545763 1022
>>2545748
Потому что петушарп.
Аноним 19/12/22 Пнд 12:25:25 2545784 1023
>>2545748
Оптимизация компилятора
Аноним 19/12/22 Пнд 12:43:11 2545816 1024
>>2545523
потому что интернирование строк
Аноним 19/12/22 Пнд 13:37:09 2545889 1025
Почему говорят о модели в рамках MVC как об одной сущности? Но ведь по факту там их две: POJO-объекты, которые определяют тип модели, и репозиторий, который определяет где это всё хранится. Почему тогда не выделить в MVC четвертый компонент R, чтобы было понятно всем?
Аноним 19/12/22 Пнд 13:45:50 2545905 1026
>>2545889
Репозиторий ты моделью не считаешь?
Аноним 19/12/22 Пнд 14:23:09 2545938 1027
Аноним 19/12/22 Пнд 14:37:33 2545951 1028
>>2545938
Хранилище это база данных. Репозиторий - это слой доступа к данным. Его в принципе может и не быть.
Аноним 19/12/22 Пнд 15:03:13 2545968 1029
>>2545951
Вы как хотите, а я буду использовать паттерн MVCR
Аноним 19/12/22 Пнд 15:14:09 2545979 1030
>>2545968
А чо ты только M развернул и то не полностью? Разворачивай V и C тоже, получишь аббревиатуру из 20 букв.
Аноним 19/12/22 Пнд 15:39:49 2545998 1031
Итт есть блейзеро-зумеры? В каком же я ахуе какой я долбаёб и повелся на новомодные технологии какое майки выслали говно - на данный момент у меня полностью пизданулась отладка проекта. Суть: зашёл в свой блейзоро проект спустя несколько месяцев (допиливал на .net framework легаси говно) попутно обновляя студию. Сейчас у меня 17.4.3 студия - блейзоропроект при запуске висит в вечном лоад стейте (да, веб проект в дебаг среде просто перестал загружаться) и выдает какую-то одну из ебанутых ошибок в консоли браузера, сейчас например "WebSocket connection to 'wss://localhost:port/projectname/' failed. Error in connection establishment: net::ERR_CERT_DATE_INVALID. То есть сейчас у меня по сути только последний паблиш релиз живой.
У меня и раньше отапливался websocket со студией, но по крайней мере с ним отапливался только хот релоад и отладка на стороне клиента (что тоже конечно хуево), а сейчас совсем нихуя не запускается. Гугление навскидку пока нихуя не дало.
Аноним 19/12/22 Пнд 15:55:19 2546025 1032
>>2545998
Потому что микрософты в каждой новой версии всё ломают. Я про это постоянно говорю, но мне никто не верит.
Аноним 19/12/22 Пнд 16:26:01 2546050 1033
Завтра первый собес, стек .Net Core, EF, WCF, Azure, Docker.
Вообще не ебу какие вопросы будут и что подучить чтобы не полностью обосраться.
Аноним 19/12/22 Пнд 16:36:29 2546058 1034
>>2546050
Выучить модификаторы доступа. Их любят спрашивать, потому что на них легко завалить.
Аноним 19/12/22 Пнд 16:42:22 2546060 1035
>>2546050
На вскидку:
- отличие doble, int, decimal
- что возвращает метод async
- отличие абстрактного класса от интерфейса
- объясни модификаторы доступа в c#
- отличие unit тестирования от integration
Можешь посмотреть ещё c# design patterns, бывает, что спрашивают.
Аноним 19/12/22 Пнд 17:56:36 2546205 1036
>>2546050
Могут ещё на знание сахарка пример подлый подсунуть, чтобы проверить не с джавы ли ты свичнулся.
string checkNull(string? maybeNull)
{
return maybeNull == null ? null : "";
}
Аноним 19/12/22 Пнд 18:39:56 2546250 1037
Аноним 19/12/22 Пнд 18:50:15 2546263 1038
А возможно сделать дупликат экземпляра класса?
Аноним 19/12/22 Пнд 19:14:25 2546290 1039
>>2546250
А то, что вся эта мишура с защитой ссылочных типов от null не работает.
Аноним 19/12/22 Пнд 19:23:19 2546296 1040
>>2546290
А, типа возвращаемое значение string а не string? и все равно вернет null метод если тру?
Аноним 19/12/22 Пнд 19:25:10 2546300 1041
>>2546263
Есть такой интерфейс ICloneable

И какой толк от него, если кго функция Clone требует возврата Object, а не нужного мне класса?
Аноним 19/12/22 Пнд 19:48:28 2546323 1042
А какую книгу читать по Entity Framework?
Аноним 19/12/22 Пнд 21:46:37 2546526 1043
А что это за чудо такое KeyStates? Оно, к примеру, есть в эвенте DragDrop.
Если нажать несколько клавиш и вывести KeyStates в консоль, то пишутся состояния через запятую, типа:
LeftMouseButton, ShiftKey

Перечисления ведь передаются в единственном числе.
Аноним 19/12/22 Пнд 21:49:47 2546529 1044
>>2546526
Они складываются, а вывод в консоль это как-то детектит.
LeftMouseButton = 1
ShiftKey = 4
На выходе будет 5
Аноним 19/12/22 Пнд 23:29:12 2546681 1045
>>2545889
хотят и говорят. это логическое деление
V - вид отображающий
M - вся логика которая что то делает
C - отвечает за связь остальных букв и интерактив

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

Ну кроме тех, которые "постойте постойте, кака така модель? я вот моделями называю классы, что репа с ними работает, а тут модель что то не то, вы что угораете?"
Аноним 20/12/22 Втр 05:11:03 2546767 1046
Аноним 20/12/22 Втр 05:26:12 2546771 1047
эвенты или теребоньканье интерфейсов?
Аноним 20/12/22 Втр 07:14:55 2546789 1048
>>2546771
котики и велосипеды
Аноним 20/12/22 Втр 07:47:25 2546791 1049
Аноним 20/12/22 Втр 08:06:03 2546794 1050
>>2546767
С нуля не реально. Нужно знать какой-нибудь язык типа джавы, тогда за полгода-год реально осилить. Но имей ввиду, что за это время микрософты выпустят новые версии сишарпа и дотнета и придётся снова переучиваться. Следующая версия как раз LTS, а они любят под неё все переворачивать с ног на голову.
Аноним 20/12/22 Втр 09:44:02 2546833 1051
>>2546794
То есть на шарп лучше свитчиться, а не входить с нуля?
Аноним 20/12/22 Втр 09:48:22 2546836 1052
>>2546833
давно известно что первый язык (программирования или разговорный) выучить сложнее всего. Остальные идут намного легче. И чем больше базового познаешь - тем легче очередной язык.

так что нет понятия "лучше", есть "легче", но шарп тут не причем. Это касается вообще любого языка схожего по парадигме.
Аноним 20/12/22 Втр 10:15:57 2546863 1053
>>2546833
Можешь выучиться старый сишарп, а потом свичнутся на новые версии
Аноним 20/12/22 Втр 10:40:32 2546882 1054
>>2546833
Он троллит. Речь идет о нюансах, к которым новичку как до Китая раком. Никто основы основ не переворачивает.

Я как новичок, максимум с чем сталкивался — затупом найти нужный шаблон на старте.
Аноним 20/12/22 Втр 13:29:52 2547138 1055
>>2546794
С жабы на шарп перешел за 2 недели тестового.
Аноним 20/12/22 Втр 13:34:20 2547150 1056
>>2547138
А где взял книги по актуальной версии? Как учил модификатора доступа?
Аноним 20/12/22 Втр 17:11:41 2547461 1057
>>2543703
Петушарп в принципе включает многое из жабы, на нём в теории можно писать понятный код. В теории. На практике майки себе в обезьянки заделали тех, кого легче всего заделать - самых тупых кодомакак. И теперь мы имеем, что имеем - живое представление того, как из двух почти идентичных языков можно сделать абсолютно разные экосистемы.
Аноним 20/12/22 Втр 19:42:22 2547665 1058
Аноним 20/12/22 Втр 20:29:53 2547699 1059
>>2547150
Не спрашивали всю эту хуйню. Дали тестовое - я его норм сделал не без огрехов и взяли. В процессу всю эту залупу можно выучить. И то, по необходимости.
Аноним 20/12/22 Втр 20:39:50 2547712 1060
>>2547699
В чём преимущества и недостатки сишарпа по сравнению с джавой? Что выбрать новичку: джаву или сишарп?
Аноним 20/12/22 Втр 22:34:52 2547824 1061
>>2547712
Те не похуй? Нормальные оба языка, мне сисярп больше нравится - приятно на нем писать.
Аноним 20/12/22 Втр 22:40:06 2547828 1062
>>2547712
Если сомневаешься, то точно в джаву.
Аноним 20/12/22 Втр 22:41:17 2547829 1063
Аноним 21/12/22 Срд 00:18:52 2547894 1064
>>2547712
Петушарп позорно использовать. Если по существу - огромное количество говнокода, вечные попытки догнать жабу, уебищная экосистема.
Аноним 21/12/22 Срд 00:20:37 2547896 1065
Аноним 21/12/22 Срд 00:21:48 2547898 1066
>>2547896
Отлично, петушарп-нахрюка ещё нет.
Аноним 21/12/22 Срд 00:24:30 2547900 1067
Аноним 21/12/22 Срд 00:27:19 2547902 1068
>>2547900
Отлично, даже самого петушарпа ещё нет.
Аноним 21/12/22 Срд 00:33:36 2547908 1069
>>2547902
Зато есть проприетарная жаба, оракл и WebSphere. Эх, были времена...
Аноним 21/12/22 Срд 07:47:20 2548017 1070
Capture.JPG 33Кб, 924x425
924x425
хочу найти объект по словарю в иерархии снизу вверх
есть в такой рекурсии подводные камни?
Аноним 21/12/22 Срд 08:24:04 2548024 1071
flenov.jpg 135Кб, 1280x720
1280x720
>>2547894
>Петушарп позорно использовать
Я такое уже неоднократно слышал, но не понимаю почему. Это из-за микрософта?

>уебищная экосистема
Тут ты не прав. Наоборот в дотнете всё доступно из коробки. А вот в джаве наоборот надо выискивать от сторонних разработчиков и применять разной кривости решения.
Сравнить тот же Thymeleaf и Razor. В первом нельзя делать даже вложенные шаблоны, а второй позволяет чуть ли не писать код вперемешку с разметкой, полная свобода.
Аноним 21/12/22 Срд 10:45:28 2548112 1072
Как перейти с ASP.NET Core 5 на ASP.NET Core 6?
Аноним 21/12/22 Срд 11:26:12 2548133 1073
Аноним 21/12/22 Срд 16:27:30 2548438 1074
>>2548024
>Это из-за микрософта?
Убогий клон жабы с кучей бесполезного говносахара, кучей говнокода в экосистеме от школьников, кучей школьников в комьюнити, кучей анальных палок всем системам, кроме шинды, куча пиздежа, в том числе про кроссплатформенность.
Аноним 21/12/22 Срд 17:01:38 2548479 1075
>>2548438
Что ты предлагаешь? Учить джаву?
Аноним 21/12/22 Срд 17:30:42 2548536 1076
>>2548479
Че там учить? Синтаксис осознаётся за сутки.
Аноним 21/12/22 Срд 17:41:41 2548557 1077
>>2548536
А дальше? Спринг там, кафки всякие?
Аноним 21/12/22 Срд 17:46:01 2548566 1078
Аноним 21/12/22 Срд 18:41:38 2548612 1079
>>2548438
>жабы с кучей бесполезного говносахара,
жабист не палится. совсем не палится. привык к МНОГОСЛОВНЫМ, монструозным, многостраничным описаниям ПРОСТЫХ вещей и считает что его говно не пахнет )
Аноним 21/12/22 Срд 20:07:38 2548746 1080
>>2548612
>)
Чё так рвонькнул-то?

Пока жабисты ставят @AllArgsConstructor и @Getter, петушарперы пишут убогое {get, set}.
Аноним 21/12/22 Срд 20:51:41 2548796 1081
>>2548746
А мне нравится явно писать геттеры-сеттеры. Код как-то красивее выглядит с ними. А сишарпные { get; set } к тому же не гибкие, к ним надо костылить дополнительное поле, которое жрёт ещё память.
Аноним 21/12/22 Срд 21:18:58 2548821 1082
>>2548746
Магические атрибуты - убивают жаву, няша.
Это очень плохая хуйня. Негодная.
Чем больше магии, тем хуже. Банально, ты не можешь даже перейти к куску кода, который эту магию делает.
Вот майки - это поняли и потому - из фреймворка потихоньку выпиливаются атрибуты магические. И это - хорошо.
Аноним 21/12/22 Срд 21:40:22 2548843 1083
>>2548796
Это такой троллинг тупостью? Шарповые геттеры и сеттеры это просто сахарок для методов huinya getHuinya() и void setHuinya(huinya value). Они настолько же гибкие, как и явные геттеры и сеттеры. Или ты каким-то чудесным образом придумал как хранить состояние объекта, не заводя под них поля внутри класса, которые в эти геттерах и сеттерах вертишь? С производительностью и потреблением памяти там все одинаково. Единственная разница, что со свойствами компилятор за тебя генерирует часть бойлерплейтного кода.

Вот, на покури, как это все в CIL выглядит:
https://sharplab.io/#v2:C4LglgNgPgAgTARgLAChUwMwAJ5YOID2AbgHYFYDeqWNO2YJwWAgpVgOYCmwA3FgM7c+AX1Si0KTDjhYAsgQDGACwCGlarQAOAJzBEVwTlgZMA+ip4aaVuscYssNio5S03HblgC8APnN8bN0EmXyxzbyx9CABXTgDXWnFxdGxcWRUIFQAzAE81KgSaHT0DIxMwixsbKXK8bmYACgBKFzdnQNoYAHYKy0KscTdq1IAWLABleobyqNiWp1b3GnCvSIzY+LckoA

Как можешь заметить, для свойств сгенерировались методы-геттеры (get_A) и методы-сеттеры (set_A). И тела у них такие же, как у написанных ручками.
Аноним 21/12/22 Срд 21:53:42 2548854 1084
хватит кормить жабу уже...
Аноним 21/12/22 Срд 22:00:53 2548863 1085
>>2548821
>ряяяяяяяяя!!!!
А по делу есть чё сказать? Например там пруфы что это магические атрибуты и что я должен ручками, как истинный петушарпер, делать конструкторы?
Аноним 21/12/22 Срд 22:02:28 2548866 1086
КРИВОРУКОЕ ШКОЛОКОМЬЮНИТИ ПЕТУШАРПЕРОВ НЕ ЗАВЕЗЛО ЛОМБОК
@
РЯЯЯЯ НИНУЖНА!!! И ЭТА ВАЩЕ МАГИЯ!!!
@
С ЛИЦОМ АНАЛЬНИКА ДУБЛИРУЕШЬ ВСЕ ПОЛЯ В КОНСТРУКТОР
@
@
@
ДОБАВЛЯЕШЬ МАГИЧЕСКОЕ {get, set} К ПОЛЯМ
Аноним 21/12/22 Срд 22:04:54 2548868 1087
>>2548863
Ну. Дык это буквально магические атрибуты.
Если ты взглянешь на них, без знания, что это за магия - ты не поймешь как они работают. Ты не можешь перейти и посмотреть что за код выполняется, как и где. Конструкторы - имеют 0 ссылок на вызов. Приватные поля - магическим образом получают геттер-сеттер.
Это магия в чистом виде.
А любая магия в программировании - плохо.
И да. В шарпе - такую же магию ты можешь запилить сам буквально за 10 минут. Просто тебя ссаными тряпками закидают, и именно потому что это магия, которая не решает никаких проблем, но усложняет понимание твоего кода.
Аноним 21/12/22 Срд 22:06:01 2548869 1088
>>2548868
>ЯСКОЗАЛ ЭТО МАГИЯ А 100500 БЕСПОЛЕЗНЫХ КОНСТРУКЦИЙ ЯЗЫКА НЕ МАГИЯ ПОНЯЛИ ДА?
Аноним 21/12/22 Срд 22:07:40 2548871 1089
>>2548868
>РЯЯЯЯЯЯЯЯЯ ЯСКОЗАЛ ЛУЧШЕ РУЧКАМИ КОНСТРУКТОРЫ ПИСАТЬ ПОТОМУ ЧТО КРИВОРУКОЕ ШКОЛОКОМЬЮНИТИ НЕ СМОГЛО В ЛОМБОК, ЯСКОЗАЛ НЕУДОБНО @ALLARGSCONTRUCTOR ПИСАТЬ, ПОТОМУ ЧТО РЯЯЯЯЯЯЯЯЯЯЯ
Аноним 21/12/22 Срд 22:44:26 2548903 1090
РЯЯЯ АРЯЯЯЯ
Аноним 21/12/22 Срд 22:56:17 2548914 1091
>>2548746
вы только посмотрите. мне тут ранее хвалились что IDE сама генерит getVar()/setVar() и это был повод для гордости.

это ж как издеваются над жавистами что заставляют их плодить бойлерплейт код, хотя компилятор мог бы генерить
Аноним 21/12/22 Срд 23:49:04 2548950 1092
2022-12-2123-43[...].png 13Кб, 682x138
682x138
Что такое RoutedEvent и откуда его высрать?

Хотел создать событие SelectionChanged для собственного класса, и под это дело решил заюзать дефолтный SelectionChangedEventArgs. Но эта параша требует id класса RoutedEvent (первый параметр).

Простите за французский бейсик, но думаю все ясно.
Аноним 21/12/22 Срд 23:51:54 2548954 1093
Бля, не был 3 дня, а тут какой-то срач с джавистом. Походу няша, который тут отвечал по делу, давно съебался.
Аноним 21/12/22 Срд 23:53:15 2548956 1094
>>2548954
Я - отвечаю по делу, если ответ знаю и вопрос нормальный.
Аноним 22/12/22 Чтв 08:17:02 2549081 1095
Есть две книжки Фримана по ASP.NET и Entity версии 2.1. Но как потом перейти на 7 версию? Сильно ли это сложно?
Аноним 22/12/22 Чтв 09:18:27 2549107 1096
>>2549081
>Но как потом перейти на 7 версию?
Учишь по книжкам, делаешь проекты. Когда будешь готов, открываешь официальное руководство от майков по переходу с 2.1 на 7.0 и переводишь свои проекты. В процессе научишься.

>Сильно ли это сложно?
Если учишься по принципу: "скопировал пример из книжки, если собралось/запустилось - то значит я научился, идем дальше", то да. Если же вдумчиво перебираешь кишочки и понимаешь зачем и что нужно, то нет.
Аноним 22/12/22 Чтв 12:22:54 2549228 1097
Почему в Visual Studio 2022 надо генерировать миграции через консоль, а не через кнопочки в самой среде? Почему они это не встроили?
Аноним 22/12/22 Чтв 12:37:03 2549253 1098
>>2549228
Потому что так диды делали и ты будешь.
А если серьезно, потому что dotnet-ef не часть студии.
Если же тебе прямо совсем нужно, то там вроде были расширения для консолефобов, позволяющие мэнеджить миграции из студии.
Аноним 22/12/22 Чтв 12:42:21 2549262 1099
>>2549253
Дак проще тогда всё делать в VS Code. Там и консоль удобнее и файлы сами сохраняются, да и выглядит модно-молодёжно.
Аноним 22/12/22 Чтв 14:01:03 2549413 1100
Авторизация считается бизнес логикой? Или ее можно всю в контроллерах реализовывать?
Аноним 22/12/22 Чтв 14:02:26 2549415 1101
>>2549228
Можно делать через диспетчер пакетов. Кнопочкой выбираешь нужный проект в решении, вводишь add-migration initial и наслаждаешься.
Аноним 22/12/22 Чтв 14:17:28 2549435 1102
Аноним 22/12/22 Чтв 14:33:35 2549456 1103
>>2549228
В райдере встроено
Аноним 22/12/22 Чтв 15:05:02 2549478 1104
>>2549456
Если бы я был богатый, то купил бы платную идею и учил джаву.
Аноним 22/12/22 Чтв 15:10:01 2549489 1105
Аноним 22/12/22 Чтв 16:18:46 2549554 1106
234569714526879[...].png 26Кб, 792x203
792x203
24253.png 21Кб, 391x297
391x297
Суп, подскажите, что сделать с этим?
Пик 1 - проблема
Пик 2 - то, что я установил
Пробовал и в VS 19, результат один
Раньше как-то получалось.
Сейчас: в дизайнере форма есть, но при сборке проекта ошибка
Да, на Шарпе это всё проще, но мне надо на крестах, но не собирается

Извиняюсь, что сру уже в третий тред этим, просто испытываю довольно жёсткий баттхёрт с этого. Помогите, пожалуйста...
Из треда плюсов послали к вам
Аноним 22/12/22 Чтв 16:41:19 2549585 1107
В джаве есть восьмеричные литералы, а в сишарпе их нет
Аноним 22/12/22 Чтв 16:44:29 2549592 1108
>>2549489
Спасибо, я видел эту простыню и она меня сукгнула. Хотя щас еще раз пересмотрел и по факту нужна только часть EventManager.RegisterRoutedEvent.
Аноним 22/12/22 Чтв 16:48:27 2549596 1109
>>2549585
>а в сишарпе их нет
Пидора ответ, а еще в названии сишарпа нет слова java.
Не пиши сюда.
Аноним 22/12/22 Чтв 16:50:17 2549599 1110
>>2549585
Ни разу не юзал восьмеричные литералы, даже не знал, что они есть.

мимо джавист
Аноним 22/12/22 Чтв 16:50:18 2549600 1111
>>2549554
Я не понимаю о чем речь идет. Когда-то открывал исходники на C++ и тоже была муть с версиями VS. В 2015 открывается, а в 2019 и выше — нет.
Аноним 22/12/22 Чтв 16:55:48 2549607 1112
>>2549600
>Я не понимаю о чем речь идет.
Мне винформу нужно создать, при запуске получается пикрил
Не понимаю, может, установил что-то ненужное и происходит конфликт?
Аноним 22/12/22 Чтв 16:56:36 2549610 1113
Аноним 22/12/22 Чтв 16:58:39 2549614 1114
>>2549610
Да. CLR Empty Project (.NET) -> Project -> Add new item - > UI -> Windows Form
Аноним 22/12/22 Чтв 17:04:22 2549628 1115
>>2549607
Ну я с тапким точно не имел дела. А ты пробовал искать по всему проекту конфликтующие строки?
Аноним 22/12/22 Чтв 17:18:30 2549658 1116
>>2549554
У тебя там где-то затисались 2 версии одной библиотеки.
Разрули руками какую использовать. Чревато тем, что половина всего отвалится.
Аноним 23/12/22 Птн 09:03:07 2550438 1117
>>2549596
>Не пиши сюда
А вы не будете скучать?
Аноним 23/12/22 Птн 12:21:30 2550619 1118
Есть список условных кнопок Buttons
Есть переменная так называемой активной кнопки ActiveButton, где лежит ссылка на одну из кнопок списка Buttons.

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

Вот я видел, что в DataTemplate (xaml) можно привязать событие к каждому итему в списке. Он что, рили подписывается на каждый итем из списка?
Аноним 23/12/22 Птн 15:34:40 2550832 1119
>>2550619
Через ling Where (x=>x.ActiveButton == true):
Аноним 23/12/22 Птн 16:26:03 2550926 1120
Дак правда что ли, что в Entity надо генерировать миграции через консоль? Я ни как не могу принять этот факт.
Аноним 23/12/22 Птн 16:42:17 2550947 1121
>>2550926
Да, а что такого? Удобный способ.
Аноним 23/12/22 Птн 16:56:27 2550969 1122
>>2550947
Не знаю. Мне как-то не комфортно от этого.
Аноним 23/12/22 Птн 16:57:40 2550974 1123
>>2550969
dotnet ef migrations add PizdaBilyat
dotnet ef database update
Что не так? Тряска? Неуверенность? Пройдет с опытом.
Аноним 23/12/22 Птн 18:03:34 2551075 1124
Посоны, какой версии asp.net core сейчас стоит изучать? На метаните уже лежит 8 версия, но полно хороших гайдов под .net core 2.2, у того же kudvenkat 120 видосов по нему.
Аноним 23/12/22 Птн 18:05:28 2551080 1125
>>2551075
Ниже 3.1 не имеет смысла.
Аноним 23/12/22 Птн 18:06:55 2551082 1126
>>2551075
7 версия*
>>2551080
Окей, спасибо. Есть годный мануал с примерами, могу и ютуб и серию статей или метанита хватит?
Аноним 23/12/22 Птн 18:15:14 2551103 1127
Аноним 23/12/22 Птн 18:17:44 2551112 1128
>>2551080
А разве 3.1 уже не поддерживается? Или оно в основном сейчас всеми все еще юзается?
Аноним 23/12/22 Птн 18:36:35 2551148 1129
>>2551112
После 3.1 не было существенных изменений.
Аноним 23/12/22 Птн 18:39:16 2551153 1130
>>2551148
Как это не было? Они в 6 убрали Startup.cs и теперь не понятно куда писать код.
Аноним 23/12/22 Птн 19:31:50 2551248 1131
>>2551112
На 3.1 успели написать достаточно много и монолитов и микросервисов (которые как раз стало удобно делать начиная с 3.1). Поэтому вероятность даже в следующем году попасть на проект с 3.1 где тебе предстоит что-то доделывать или писать новое - достаточно высока. Плюс никто не даст джуну писать, что-то новое сразу на .net6 или .net7, такие игрушки дяди сеньоры оставляют для себя. Ну а идти работать без опыта куда-то где есть что-то ниже чем 3.1 смысла нет.
Аноним 23/12/22 Птн 22:23:32 2551442 1132
>>2551248
Спасибо, что пояснил. Посоветуешь хорошей литературы по этой версии? Кроме 3 часового видоса на ютубе и книжки на 130 страниц мало гуглится
Аноним 23/12/22 Птн 22:25:05 2551445 1133
>>2551442
А, еще 10 часовой видос, но это по mvc, хз, юзают ли его до сих пор, мне чет кажется, что сейчас все на webapi + жаваскрипте, еще в некоторых вакансиях даже видел блейзор
Аноним 23/12/22 Птн 23:13:23 2551513 1134
>>2551445
mvc от webapi отличается только чем ты пукаешь в ответ на запрос - технология то одна и та же. Бля... Мне видимо самоу придется учить жопаскрипт хэтэмээль и сисисэс... Не хотю...
Аноним 23/12/22 Птн 23:15:11 2551518 1135
>>2551513
и как данные на фронт идут - формируются динамически и отправляются в случае разора и прочей обмазанной жабаскрипто дрисни, или же пукаешь жсончиком на развернутый в браузере фронт.
Аноним 24/12/22 Суб 00:16:13 2551589 1136
Аноним 24/12/22 Суб 00:32:18 2551598 1137
>>2551442
>Посоветуешь хорошей литературы по этой версии?
Хуй знает, я за 5 лет в профессии ничего кроме Рихтера и краткого справочника Албахари не читал. Все остальное по офф. докам от майкрософта изучал, там инфа по всем версиям есть.
Аноним 24/12/22 Суб 00:56:36 2551609 1138
>>2551513
Я тоже не хотю учить жаваскрипт и хэтэмээль, я только закончил 150 уроков по sql от kudvenkat, думал я до этого SQL знал, а оказывается нихуя и у того же метанита наверное всего 20% контента, которое он описывает.
>>2551598
Хуясе ты чад, я Рихтера тоже читал, но давно, хотя многое до сих пор помню.
Аноним 25/12/22 Вск 10:31:04 2553013 1139
>>2551609
Хз у меня на работе десктоп, есть webapi небольшое. Поковыряю асп.нет, поковыряю всякие медиаторы cqrs немного тестов и прочую дрисню крутану еще годик попыта и влечу куда-нибудь надеюсь посытнее. План такой. Насчет фронтодрисни хз, если честно. Пока молодой все интересно, все хочется потыкать, но энивей времени есть где-нибудь полгода - нужно как-то концентрированно зазадротить. С жабаскриптохуйней вроде шансов повыше залететь, но платят фулстакам все равно меньше чем ГО-внерам, хотя хз.
Аноним 25/12/22 Вск 23:21:08 2553798 1140
>>2553013
Хех, я только что отсмотрел 150 видосов от kudvenkat по sql, дальше у майкрософтов прочту про asp.net core 5, позадрачиваю некоторые задачки на литкоде, попробую парочку проектов на гитхаб аплоднуть, выучить git и docker, повторить энтити фреймворк и пойти уже собеседоваться.
Думаю за месяца 2 управлюсь, я до этого уже имел опыт и с asp.net core и энтити фреймворков и sql, но вот html, javascript и css у меня соснулые.
Аноним 26/12/22 Пнд 10:17:02 2554034 1141
>>2550619
> событие нажатия кнопки срабатывало только от ActiveButton?
Чагоблять?
У тебя все кнопки видны? Их все можно нажать? Но одна из них будет работать? Ты сам то не чувствуешь проёб в дизайне своём?
Аноним 28/12/22 Срд 19:05:00 2556579 1142
Что полезно изучить за сутки к собеседованию на позицию джуна c#? (а точнее даже стажера)
Перекатываюсь из 1с, тестовое задание сделал как-то по наитию
Аноним 29/12/22 Чтв 11:46:07 2557100 1143
>>2556579
На ютубе есть полно курсов по шарпу, типа многочасовых видео.
Смотришь 10 часов шарпа, потом 4 часа EF, 4 часа форм, 6 часов ASP. Как раз укладываешься.
Помощь новичку в освоении Новенький 02/01/23 Пнд 16:04:58 2560931 1144
Доброго времени суток всем работягам! Начинаю, в это нелегкое время, свой тернистый путь C# разработчика. Меня интересует преимущественно бэкенд. Хотелось бы в этом треде найти единомышленников или людей с опытом работы в этой индустрии. Изучаю шарп уже полгода, но всё равно чувствую, что во многих местах присутствуют пробелы в знаниях (как минимум на тестовых заданиях и интервью при трудоустройстве). Я понимаю, что есть огромное количество учебных материалов и ресурсов, но откровенно говоря, в них можно просто утонуть, затянув при этом свое обучение на долгие, долгие годы. Поэтому хотелось бы найти человека, который поможет сориентироваться на месте и подсказать несостоявшемуся джуну как оно всё устроено на самом деле. Надеюсь на Ваше понимание)
Аноним 02/01/23 Пнд 20:02:10 2561151 1145
>>2560931
то есть ты хочешь бесплатно
получить себе наставника?
Аноним 03/01/23 Втр 14:28:12 2561700 1146
>>2561151
Если отвечать прямо на этот вопрос, то да.
Меня больше интересуют идейные люди, чьи интересы не ограничиваются работой "от" и "до".
Это всё на добровольной основе и никак не регламентировано. Я буду благодарен любой помощи, даже если это будет 10 минутная переписка с наставлениями и рекомендациями.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов