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

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 599 83 153
Тред лучшего языка на планете Ждем лета... 1. Ресурсы: — https://dotnet.microsoft.com/learn — http /csharp/ С ! 13/05/23 Суб 20:35:05 2697488 1
.jpg 135Кб, 750x422
750x422
.jpg 254Кб, 960x720
960x720
.jpg 203Кб, 700x1114
700x1114
.png 27Кб, 800x550
800x550
Тред лучшего языка на планете

Ждем лета...

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# для десктопа
https://docs.microsoft.com/ru-ru/dotnet/desktop

4. С# для игр
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
Прошлый тред: >>2649578 (OP)
Аноним 13/05/23 Суб 20:44:01 2697494 2
Вопрос задам друзья.
Поначалу пытался вкатиться во фронт с тайпскриптом. Учил долго его но по итогу понял что не мое. Паралельно с фронтом зачастую ковырял бэк на node.js и это мне нравилось больше. Решил все же оставить фронт и попробовать бэк. Выбрал сначала golang но ничерта в нем не понял и забросил его. Решил попробовать на сишарпе. В итоге язык мне очень сильно вкатил. Подучил синтаксис его и с большим удовольствием запилил пару примитивных тудушек на нем. Теперь стоит вопрос целесобразности углубления в изучение экосистемы шарпа. Стоит ли это делать? Реально ли подучить стек на уровне джуна не потратив больше полугода на это? Очень вкатывает этот процесс мне, буквально по 6 часов в день минимум это делаю но времени у меня не очень много, деньги заканчиваются.
Аноним 13/05/23 Суб 20:46:49 2697495 3
Аноним 13/05/23 Суб 20:48:16 2697496 4
>>2697494
Если заниматься интенсивно, то вполне можно. В веб-разработке довольно хорошие позиции имеет. Только это, анон, готовься к тому, что платформы под шарп будут жрать оперативку компа, как ебанутые.
Аноним 13/05/23 Суб 20:57:44 2697505 5
>>2697494
Я подушню.

Зависит от первоначальной базы. И куда ты там вкатываться собрался.

Типа мое мнение, как человека, который сначала пришел на завод, писал на си, и только спустя пару лет перекатился в шарпы - знания того, кто по метаниту условному - изучил минимально необходимый уровень для работы - говно полное. Типа да, можно взять такого, если команда сильно загружена и на него тупую работу скинуть, по деланью ручен и все такое. Но как только возникает какая-то специфичная хуйня, все, пизда.
Ну. Типа вот ты изучил шарп. Ок. Да. Инструментарий. Асп эти. Возникает задача - настройки подключения к БД - менять "на лету". Т.е. админ должен иметь возможность просто взять и изменить строку подключения для всего приложения. Вроде элементарная задача, но многих приучили - вот есть файлик appsettings.json, я всю жизнь так подключался к БД, ваша задача - нереализуема на шарпе, извините. Утрирую конечно и задача обычно не такая дебильная. Просто про сам майндсет говорю.

К чему. К тому, что по хорошему - надо покодить разное годик. Желательно читая умные книжки, решая задачки. Сделать свой веб-сервер простейший, который может статику отдавать и апишки предоставлять. Вот когда это - да, можно не тратить время, чтобы набить шишек - а уже начинать учить ASP, потому что общее понимание и все это вот есть, тебе просто нужен интструмент.

Но. Если цель просто найти работу и чтобы денежку платили, а тебе в принципе похуй, что ты будешь унылой рутиной заниматься, которую более шаристые делать просто не хотят - то да, за полгода освоить чтобы вкатиться на 40-60к можно.
Аноним 13/05/23 Суб 21:16:14 2697526 6
>>2697496
Это фигово. У меня ноут не шибко мощный, 16 гигов оперативы есть но все же. Видимо линь поставлю не слишком требовательный.

>>2697505
Услышал тебя, благодарю. К сожалению у меня нет времени чтобы досконально разбираться в том что ты описал. Не из-за лени, мне действительно очень вкатывает процесс обучения и написания кода на шарпе, даже если это рутинная хуйня. Просто очень уж надо поскорее начать денежку получать поскольку я сейчас без работы а через несколько месяцев деньги закончатся. Да могу экономно пожить где-то пол года но все же. Но если есть советы как выстроить обучение чтобы научиться этому то с радостью выслушаю и приступлю к ним как только базовые знания экосистемы шарпа и баз данных получу.
Аноним 13/05/23 Суб 22:06:53 2697590 7
>>2697526
16 Гб терпимо, помниться я на 6 ГБ диплом писал, хотя изругался пиздец как.
В шарпе пиздатый синтаксис, и очень близок к канонiчному ООП.
Старые ролики с ютуб-канала ExteremeCode в свое время помогли освежить память относительно ООП.
А по работе все равное первое время будешь нубачить, вкатываясь в особенности работы, дважды подтверждено лично.
Аноним 14/05/23 Вск 00:06:13 2697782 8
>>2697526
Если нужно прямо срочно - бери метанит и начнись по урокам проходиться. Если базы совсем нет - берешь и пробуешь что-нибудь с изученным сделать по быстрому.

Из того что надо чтобы джуном взяли в что-то с вебом связанное:

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

Дальше - уже тут будет решаться, берут тебя или нет на грязную работу:
Веб -
Клиент-серверные приложения, че такое клиент, че такое сервер. К чему относится тот код, который ты будешь писать.
HTTP - че зачем и почему, какой уровень модели OSI вся эта духота. Структура HTTP-запроса, какие методы, че такое заголовки, почему всегда 200 - не оч хорошо
REST - ну, основные моменты
EF/EFCore - че зачем почему
Identity - че зачем почему
Авторизация, политики и вся эта вот духота
DI - че зачем почему, обязательно надо сказать, что это охуенно и вообще.
Асинхронщина - на базовом уровне, че зачем и почему.
Минимальное понимание что такое юнит-тесты, как их писать, какие фреймворки для шарпа используются.
Если не повезет - MVC, Blazor и вот эта духота.

Десктоп -
Потоки - че такое основной поток приложения, че в шарпе делает volatile, синхронизация доступа, блокировки, гоники-хуенки
Асинхронщина - на базовом уровне, что зачем и почему
MVC - че каждая буква значит и пояснить зачем оно надо
MVVM - че каждая буква значит и пояснить зачем оно надо
EF/EFCore - че зачем и почему
Работа с ресурсами приложения
Локализация
Стилизация

Вот это вот - минимально необходимый набор, чтобы в большинство контор на трейни-джуна попасть и за миску супа начать работать. Дальше - по результатам будет.
Аноним 14/05/23 Вск 00:08:11 2697785 9
>>2697782
Да. Если веб - скорее всего еще докер, на уровне - можешь объяснить че это такое, написать простейший Dockerfile для сборки и запуска в докере и умение отлаживать инструментами студии приложение в докере крутящееся.
Аноним 14/05/23 Вск 04:48:52 2697867 10
>>2697782
>почему всегда 200 - не оч хорошо
очень спорное заявление. кодировать ошибки логики в хттп ответы - вот что есть дичь.
А разделение ошибок транспорта и ошибок логики - как раз очень даже хорошо.
Аноним 14/05/23 Вск 11:35:51 2697969 11
>>2697782
Не слушайте толстого, вкатуны. Не каждый "мидл" по его списку пройдется и без ошибок со знанием пояснит. А от джуна подавно ни один адекватный лид такого объема знаний не ждет. Чтобы крудошлепить имплементации бизнесовых методов вам эти знания не нужны. Умейте кодить и знайте гит. Фреймворкам на работе научитесь. На собесе косите под молодого Торвальдса. Если судить по молодежи с моей работы, навыку "говорить о чем угодно со знанием дела, нихуя при этом не понимая" сейчас в универах хорошо учат. Это основное умение чтобы собес пройти.
Аноним 14/05/23 Вск 11:46:23 2697980 12
>>2697867
Двухсотка-додик заказывает пиццу.txt
Аноним 14/05/23 Вск 11:53:43 2697985 13
>>2697980
бла бла. бла бла бла. ресты хуесты
а как берешь апи какого нибудь крупняка типа клауды или гугл - и внезапно они шлют 200. Может они чего то не знают....или наоборот - ЗНАЮТ )
Аноним 14/05/23 Вск 12:34:46 2698015 14
>>2697969
Без ошибок - надо только первую часть.
Вторая часть - должна показать, что ты хотя бы слова такие знаешь и слышал про них. Я не говрил нигде, что нужно это наизусть знать вплоть до кишочков. Но если ты банально не знаешь что такое HTTP и как сделать свой эндпоинт для обработки запроса - тебя брать в команду на работу - нет смысла.
И я таки напомню. АйТи компания и конекретная команда - не вуз и не курсы, которые тебя обучить и "вырастить" хотят. Тебя нанимают, потому что у текущей команды не хватает рук, чтобы всю работу выполнять. Либо потому что открылось новое направление и люди нужны, которые будут его развивать. Чел, который сидит-вдупляет 4 месяца, как ему из XML достать данные и запихнуть в базу, а потом говорит, что вы такие мудаки, не дали ему сниппет чтобы он копипастнул - нахуй не нужен в команде.
Ну блин. Это просто так и есть. Вот давайте для вас, умников, на понятные аналогии. Вот вы решили в турике по кс поиграть, хотите призовые получить. Нужен 5й чел в команду. Будете вы брать чела, который в каждой катке: "А как мне купить патроны?" спрашивает? "А где бомбу закладывать?" Еще и ливает если его ноускопом ебнули. Нахуй такой в тиме не нужен. И такой кадр в тиме - будет всех остальных на дно тянуть.
И самое главное - 99% контор, которые готовы предложить тебе работу - нихуя не гугл, в которых настолько всего, что ты можешь год нихуя не делая просидеть, и никто даже не заметит. В среднем, ты либо будешь у интеграторов работать, либо в продуктовой фирме. В обоих вариантах - это не очень богатые работадатели и они на тебе зарабатывают деньги, а не на махинациях с ценными бумагами и продажей воздуха. Потому хоть что-то, но стоить ты должен, при этом тебя они еще и дороже чем ты есть будут перепродавать. А как, блядь, продать дороже чела, который слыша слова про JWT - падает в обморок, слыша про потоки - нервно хихикает, на вопрос про докер - говорит, что да, это такая фигня, чтобы доки хранить.
Короче. Я минимум, чтобы в норальную контору за нормальную ЗП дал. Альтернатива - идти на завод работать АВТОМАТИЗАТОРОМ ПРОИЗВОДСТВА и на формах клепать очередную хуйню, которая будет деду инженеру - по нужным папочкам раскидывать документы и сохранять в какое-нибудь местное файловое хранилище в фоне. За 25к.
Аноним 14/05/23 Вск 12:45:07 2698034 15
>>2697985
Майки забили на LSP, делая стримы - давайте тоже забьем и в своем коде!
Майки забили на SRP, делая сокеты - давайте тоже забьем и в своем коде!
Майки сначала советуют везде указывать имя параметра, потом говорят, что это говно практика.
В гайдлайне последнем - майки пишут, что надо с _ приватные поля обзывать, а если по коду смотреть - m_ - в половине их классов используется.

Там тоже работают люди. И у этих людей есть свои взгляды на некоторые вещи. Сверху - у гугла миллионы бачей вбуханы в инфраструктуру и тех специалистов, которые могут это все заставить работать. В большинстве случаев - у тебя нихуя не гугл и не амазон. Копирование их подходов, в случае если ты не понимаешь, зачем они это делают и какие проблемы решают они - это просто карго культ ебучий. Они - могут, блядь, платить инженерам по 200к в год, чтобы те все поддерживали, у тебя - будет 1 чел, который быстро погуглил как настроить nginx - и на проде с всегда 200 - у тебя начнется хуета с кешами-хуешами и прочей залупистикой.
Когда дорастете до гугла, прийдут дядьки из гугла вам в тиму - тогда и можете гугловские и прочие приколы брать. А пока я вижу, как яндекс - так же обезьянничает, а модбас ебучий к IoT своему - прикрутить нормально не в состоянии.
Аноним 14/05/23 Вск 13:14:46 2698080 16
>>2698015
Ты советуешь челам идти самообучаться на протяжении вечности. А кушать им что? А мотивацию где брать чтобы изучать бессмысленные в отрыве от реализаций в реальных проектах фреймворки и подходы? И самое смешное, что если чел реально такой молодец и все это знает, то он сам будет на собесах себе фирму искать, а не наоборот.

Айти наводнено вкатунами потому что, чтобы начать работать, условие "все знать" у нас не обязательное. Миска риса это - умеешь кодить, можешь писать код согласованно с другими разрабами - то бишь пушить так, чтобы ничего не ломать остальным. Что писать челу скажут, понимать ничего не нужно - стреляй туда, грубо говоря. Ах да отладкой пользоваться хорошо бы сразу уметь, а не начинать учиться этому после того как челу 10 раз ответили "я не знаю почему у тебя не работает, посмотри в отладке".
Аноним 14/05/23 Вск 13:23:00 2698091 17
>>2698034
>В большинстве случаев - у тебя нихуя не гугл и не амазон.
и что с того? рестопоклонники никак не могут оправдать натягивание ошибок логики на хттп статусы кроме "а вот там где то написали что так надо".

>nginx - и на проде с всегда 200 - у тебя начнется хуета с кешами-притянуто за уши. и как только раньше жили то? а нормально. потому что вернуть 200 GET запросу и POST/PUT запросу - 2 большие разницы.
Аноним 14/05/23 Вск 13:44:55 2698117 18
>>2698080
Та что из того что я написал - на протяжении вечности-то учится?
Это все можно узнать за время курсоча уровня: Автоматизация библиотеки с использованием ASP.Net Core.

>>2698091
> натягивание ошибок логики на хттп статусы
Это просто удобно как в плане сопровождения, так и для клиента. Какие еще нужны оправдания?
Давай так. Сколько транспортных протоколов, за время разработки - сменилось, у тебя? И насколько часто это происходило? А давай дальше вопрос. Почему мы должны в JSON'е передавать, если мы тогда можем TLV какой-нибудь использовать, раз уж отходим от HTTP, то чего бы не отойти и от текста с JSON/XML, чтобы уж точно наше приложение не зависило от каких-то непонятных технологий и форматов передачи данных. А то, знаешь ли, прибили гвоздями свои жсоны, завтра образуется какой-нибудь JSON Foundation, закроет формат и будет денежку просить. Давайте не будем и на JSON'е как формате передачи базироваться, все равно же говно какое-то а не протокол, TLV'шными мы можем экономить охуеть сколько места. А можно и дальше - пропиеретарный бинарный протокол, который только наши клиенты понимают, и плагин для браузера. Путь настоящих гигашлеп, которые не хотят ни от кого зависеть.
Аноним 14/05/23 Вск 13:46:59 2698119 19
>>2698117
> говно какое-то а не протокол
говно какое-то а не формат
> экономить охуеть сколько места
экономить охуеть сколько трафика

Спать больше надо
Аноним 14/05/23 Вск 13:51:05 2698122 20
>>2698117
>Это просто удобно как в плане сопровождения, так и для клиента. Какие еще нужны оправдания?
пытаться натянуть 100500 ответов логики на небольшой набор хттп ответов
"удобно" лол

>раз уж отходим от HTTP, то чего бы не отойти и от текста с JSON/XML,
мы не отходим от хттп. мы НЕ приходим. хттп изначально был транспортом. и на этот транспорт решили натянуть ответы логики. И как раз тут встает вопрос - а мы потом перейдем на вебсокеты и где будут ваши хттп ответы?
Аноним 14/05/23 Вск 14:09:21 2698140 21
>>2698122
> а мы потом перейдем на вебсокеты и где будут ваши хттп ответы
Когда перейдем - тогда думать и будем, няша. Придумать свой протокол, поддерживать его и развивать - это нифига не простая задача.
> пытаться натянуть 100500 ответов логики на небольшой набор хттп ответов
Тебе и не нужно 100500 ответов логики натягивать. Еще раз - не строй из своей конторы с числом кодеров - 20 человек гугл. Вы просто надорветесь, ну, либо если вы аутсорс - ты говно сделаешь, а другим потом поддерживать это говно.
Аноним 14/05/23 Вск 14:40:03 2698171 22
>>2698140
> Когда перейдем - тогда думать и будем, няша
нет. вы уже сейчас должны думать "а как нам логику на транспорт переложить". и я как клиентописатель не раз материл аписоздателей потому что каждый видит эту задачу по своему.

>Тебе и не нужно 100500 ответов логики натягивать
и не натягиваем. и размер и сложность апи не зависит от размера конторы. Даже в одно рыло можно запилить к продукту огромный и валидный апи. Типа конторы только бложики пишут ))
Аноним 14/05/23 Вск 14:53:46 2698191 23
>>2697488 (OP)
Когда сделают уже вс для линупсов? Для мака есть для шиндошса есть, а где для линупса?
Аноним 14/05/23 Вск 14:58:57 2698201 24
>>2698191
Для мака тоже нет, там переименованный Xamarin, не имеющий к студии никакого отношения. Можно так же переименовать на линуксе MonoDevelop.
Аноним 14/05/23 Вск 15:15:21 2698227 25
>>2698201
Ну то есть всем кто не сидит на шиндошс - бежать покупать(сбрасывать триал) в райдере?
Аноним 14/05/23 Вск 15:17:19 2698232 26
>>2698227
Ну или ебаться с убогим вскодом.
Аноним 14/05/23 Вск 16:13:37 2698301 27
>>2698227
вот придет новый дизайн визуал студии
и придется переходить на райдер
Аноним 14/05/23 Вск 17:29:22 2698384 28
>>2698171
> вы уже сейчас должны думать
Давай вычтем из твоей ЗП ту часть, которая будет уходить человеку, который будет разрабатывать и поддерживать апи, которое должно быть агностично к транспорту.
Ну или сам иди и делай как тебе нужно, раз ты клиентописатель.
> и размер и сложность апи не зависит от размера конторы
Зависит. Если у вас на всю контору - 20 человек программистов, а вы тратите ресурсы, чтобы придумать апи, на случай, который может никогда не произойти - вы как минимум ебанаты, как максимум - с такими растратами - вы по миру пойдете. Если ты предлагаешь пилить свой, специфичный для вашего приложения протокол - опять же, давай идти дальше и делать свою, специфичную для вашего приложения ОРМ, а то вдруг завтра вы решите переходить на носкуль, или шарить в памяти чет, или из файлика читать. Аргументы - будут ровно те же, что ты приводишь для отказа от реста и статускодов. Рацоинальность этой хуйни - околонулевая при этом, если вы не способны этот велосипед потом развивать и поддерживать.
> Даже в одно рыло можно запилить к продукту огромный и валидный
Та в одно рыло и ОС реального времени написать можно. Хули бы не пилить ОС реального времени на каждом проекте, под ваше приложение? Аргумент просто 11/10.
Аноним 14/05/23 Вск 17:43:01 2698392 29
Даже здесь смогли устроить распонс-срач, лол.
Аноним 14/05/23 Вск 17:45:46 2698396 30
>>2698384
>который будет разрабатывать и поддерживать апи, которое должно быть агностично к транспорту.
ммм. а в чем проблема? наоборот, нужно мудрить с тем чтобы оно было завязано на хттп.

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

>а вы тратите ресурсы, чтобы придумать апи
ты вообще о чем дядя??? - апи выглядят одинаково. Никто другие принципы рест не отменяет. что ты заладил. Просто тебе придется делать ДОПОЛНИТЕЛЬНЫЙ шаг вида "тааак вот у нас логика дает ошибку и нужно смапить ее на хттп код, пошли выбирать код".
Это тебе нужно прилагать ДОПОЛНИТЕЛЬНЫЕ усилия по сравнению с агностикхттп вариантом.

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

{ "success": ..., "data": ..., "error":...}
вот и вся разница.
Аноним 14/05/23 Вск 18:02:39 2698412 31
>>2698396
> { "success": ..., "data": ..., "error":...}
Так это не агностичный к транспорту протокол. Это rpc-like. Если мы возьмем в качестве транспорта голый UDP - оно посыпится нафиг без кадрирования. Хреновый протокол придумал. Давай следующий.
Аноним 14/05/23 Вск 18:07:34 2698414 32
Ох ребятки, запутали вы меня легоньца. Ладно, попробую пока без фреймворков парочку тудушных апи запилить с http и sql базой. Там дальше видно будет.
Аноним 14/05/23 Вск 18:14:51 2698421 33
>>2698414
> без фреймворков
> http
Будешь парсер HTTP писать и гонять его поверх сокетов? Или будешь ебаться с HttpListener?
Аноним 14/05/23 Вск 18:17:02 2698424 34
>>2698414
Не нужно без фреймворка, если у тебя есть база какая-то. Задолбаешься, если будешь прям по хардкору.
Лучше наоборот - возьми свой ТуДу и придумай ему более-менее законченный вид:
Есть пользователь, он может добавлять, изменять, удалять задачи.
У каждого пользователя - свой список задач.
Чтобы получить свой список - нужно авторизоваться на сервере.
У задач - можно выставлять приоритет, дедлайн, прогресс, затраченное время.
К задачкам - можно прикрепить файлики.
В качестве киллерфичи - ранжирование задач по приоритету+дедлайну. Т.е. в самом верху - самые приоритетные задачи которые ближе всего к текущей дате.
В качестве клиента - достаточно постмана/свагера.

Потом к этому - добавляешь возможность группировать задачи в иерархию(родительская задача-дочерние задачи) и проекты.
Как задача максимум - делишь пользователей на менеджеров-исполнителей. Исполнителям задачи просто назначаются. Менеджер - может создавать задачи, устанавливать сроки, смотреть прогресс.
Собственно - вот ты и сделал простенькую систему управления проектами и можешь гордо ее показывать на собесах.
Аноним 14/05/23 Вск 18:29:37 2698433 35
Аноним 14/05/23 Вск 18:35:44 2698435 36
.png 110Кб, 740x402
740x402
>>2698424
Вкатунский тудулист медленно, но верно превращается в написание клона джиры. Осталось только ролевую модель доступа прикрутить и всякие дашборды.
Аноним 14/05/23 Вск 20:01:55 2698527 37
Бля. Транспорто-протоколо-додики, кто вас из загона своего выпустил?
Нахуя вы воздух сотрясаете? Один хрен в реальности все ваши аргументы будут упираться в "у нас вот так принято" и никто не даст вам хоть что-то менять. Поэтому будете делать так как кабан скажет, засунув свое очень важное мнение в жопу.
Аноним 14/05/23 Вск 20:22:03 2698548 38
>>2698412
>Это rpc-like
в каком месте? только потому форма ответа похожа? и на этом сходство заканчивается. Если ты в свой рест добавишь обертку где будешь передавать метаданные какие то - он не станет json-rpc

>голый UDP - оно посыпится нафиг без кадрирования.
а схера ты http приравниваешь к tcp. Проблема доставки пакетов находится уровнем ниже и не твоя проблема. так что взять я могу вебсокеты, пайпы и любое другое - и это будет его проблемы доставки, а не мое.
Аноним 14/05/23 Вск 20:27:16 2698554 39
>>2698527
Лучше уж эти, чем замлдебилы со своими брашами и листбоксами...
Аноним 14/05/23 Вск 20:35:32 2698563 40
>>2698548
> а схера ты http приравниваешь к tcp.
Потому что ты по какой-то причине - HTTP приравнял к транспорту. Потому и говорим в контексте транспортного уровня модели OSI. Ну так вот. Если твой протокол - агностичен к транспорту - он должен реализовывать проверку целостности пакета, кадрирование и прочие вещи. Либо сообщение должно умещаться в 256 байт. Твой ЖСОН - в общес случае - не уместится.
> json-rpc
Я про json-rpc и не говорил, няш. Я говорил об общем rpc-подходе. И почти любой rpc - не агностичен к транспорту. Он изначально должен выбрать стул, на котором будет сидеть.
Аноним 14/05/23 Вск 21:06:35 2698601 41
>>2698563
>HTTP приравнял к транспорту
потому что http и есть транспорт. он и возит твои данные. с чего вдруг ты ниже полез...ты админ что ли? Это админ будет грузить херню про уровни OSI. Но тут тред про программирование.

>он должен реализовывать проверку целостности пакета, кадрирование и прочие вещи...Либо сообщение должно умещаться в 256 байт
нет не должен. это ты снова глубоко копаешь. этим пусть занимается протокол передачи данных. как тот же хттп протокол, вебсокеты, пайпы или даже самопал поверх tcp. С какого перепугу я должен писать все сам, а не взять готовое - ума не приложу.

>И почти любой rpc - не агностичен к транспорту
как раз rpc более агностичен, чем твой подход (или мой). посмотри тот же JSON-RPC - он изначально заточен чтобы слать сообщения один за другим и асихронно получать ответы с другой стороны.
Ты можешь разместить его поверх хттп, вебсокетов, просто взять любую реализацию транспорта и оно будет работать одинаково.

но повторюсь - rpc подход тут вообще не причем. аж нигде и никак. тут 200 против "придумываем коды для логики" и rpc там и рядом не лежало.
Аноним 14/05/23 Вск 21:25:32 2698617 42
>>2698601
> с чего вдруг ты ниже полез
Потому что я проработал в телекоме и на заводе кодером, который реализовывал протоколы на всех уровнях вплоть до физического и потому - я немного представляю, сколько работы предстоит, если реально делать агностичный к транспорту протокол прикладного уровня, по типу всяких DLMS'ов, IEC'овских всяких и прочего добра.

> С какого перепугу я должен писать все сам, а не взять готовое - ума не приложу
Потому что если твой протокол предполагает, что транспорт может смениться - он должен это делать, иначе - какая еще независимость от протокола?
UDP - такой же транспорт. Твой прикладной протокол - уже не сможет по UDP гоняться. А у нас не только TCP-UDP есть, там целый зоопарк сбоку стоит, и ты так же не можешь гарантировать что завтра тебе не придется их поддержать в своем приложении.

> Ты можешь разместить его поверх хттп, вебсокетов, просто взять любую реализацию транспорта и оно будет работать одинаково.
Он все еще завязывается на некоторые гарантии доставки, которые не каждый транспорт может предоставить. Так что если реально в противовес ресту ставить что завтра транспорт поменяется - надо идти до конца и делать протокол таким, чтобы независимо от транспорта. Иначе аргумент - просто невалиден.
Аноним 14/05/23 Вск 21:26:56 2698621 43
>>2698617
> независимость от протокола
Независимость от транспорта

Уже спать пора. Не могу нормально мысли формулировать.
Аноним 15/05/23 Пнд 08:53:56 2698982 44
>>2698617
возьмем допустим json-rpc

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

его дело извлечь и распарсить json сообщение(я) и сформировать ответ. Проблемами доставки занимается нижележащий протокол.

json-rpc не обязан уметь работать с железками до канального уровня. Но есть сама возможность заменить транспорт и ничего не сломается. У нас UDP? пишем или берем что-то что будет решать проблему гарантий доставки, сверху все это накрываем Stream, делаем MyRpcServer.Attach(Stream ...). На клиенте делаем то же самое. Мы просто заменили способ доставки и ничего не сломалось. json-rpc готов к этому - поскольку он не завязан на транспорт, то не знает ни про какие хттп статусы, урлы и прочее.

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

НО...
мы вообще о чем говорим? Я уже потерял нить разговора. Проблема "200 или не 200" это не только проблема "щас было хттп, будет вебсокеты"(мой косяк что об этом упомянул, а тебя как понесло)
Тут проблемы "проблема 404" (хотя тут можно сказать "у норм админа все норм"), "проблемы с батч операциями", ну и конечно главное - "коды хттп хорошо натягиваются на проблемы транспорта, валидации, и другого общего, но решили коды слать в хидере и теперь вынуждены все туда пихать, а как то не очень коды хттп мапятся. да и у каждого свое мнение на какой код мапить" - да и тело ответа нужно бы послать в случае той или иной ошибки на радость клиенту, который пишет на языке со стат типизацией (и тут голову ломаешь "как это парсить без JObject.Parse то" )
Аноним 15/05/23 Пнд 10:55:41 2699091 45
image.png 32Кб, 798x304
798x304
Есть один солюшен.
В проекте WPFApp есть ошибки, но он не используется (подглядываю туда, пока переписываю), основной - WPFApp4.
Можно как-то заигнорить WPFApp? Сейчас приходится выгружать для дебага, а потом перезагружать проект.
Аноним 15/05/23 Пнд 20:52:26 2699904 46
>>2698982
> и проверит. на своем уровне проверит что это валидный жсон валидного формата
Так. А какой это уровень-то? Это уровень приложения разви, проверять, что это валидный жисон валидного формата? До приложения, так-то должны только валидные запросы доходить, а все остальное - еще на промежуточном слое - отфильтроваться.

Ну и да. Тебе вот прям кто-то мешает вернуть в ресте 404, а в теле: {"error":"not found", "errorCode":228} ? Это как-то прям противоречит ресту? Да нет, у реста никаких таких ограничений.
Еще раз - это удобно. Это просто настраивается и поддерживается. На клиенте - тебе не нужно думать, а через прокси я там общаюсь, чи напрямую с сервером, а какой сервер это мне отдал и прочее. И поддержка всего этого дела - проще, если вы не сами себе архитекторы, а заранее садитесь и декларируете - какие коды что значат.

Ладно. Мне не хочется дальше рестосрач развивать. Решение про всегда 200 - не лучшее. Всегда посты - тоже не лучшее. Поддерживать это сложнее, а со временем - апи превращается в кашу, потому что каждый себе придумает кодов, придумает как ему что отдавать, а потом - надо это становится стандартизовать, чтобы на сторону передать. И вы страдаете какой-то херней, вместо работы.
Аноним 16/05/23 Втр 08:02:45 2700217 47
>>2699904
>Так. А какой это уровень-то?
прикладной конечно
>Это уровень приложения разви, проверять, что это валидный жисон валидного формата?
ох ты достал с уровнями. Есть SRP и каждый делает свое дело. тот же кестрел проверяет что к нему пришел валидный хттп (ну парсит тупо), а json-rpc сервер (что аналог того же кестрел) почему то должна заниматься чем то другим? да она парсит жсон сообщение и тем самым валидирует.

>то-то мешает вернуть в ресте 404, а в теле: {"error":"not found", "errorCode":228} ?
вот тут то собака и порылась. МНЕ, МНЕ!!! не мешает. А вот другим почему то мешают. И они так не делают - они используют статус хттп. ДЛЯ ВСЕГО. И в ответ идет голое тело без этой стандартизированной оболочки. И приходится разбираться "ааа у нас такой код значит парсим мы жсон так, а если так то вот этак". Вместо единого и простого парсера ветки error целая пляска с бубном. Потому что "каждый видит по своему", да и вообще думает что на клиенте питоны или что то такое где тупо можно сделать json.loads

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

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

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

>И вы страдаете какой-то херней, вместо работы.
я еще раз повторюсь - пытаться мапить на хттп коды = дополнительная работа. оно никак не влияет на продуманность апи. вон у клауды замечательная апи и без всяких кодов. просто продумана потому что.
Аноним 16/05/23 Втр 14:01:29 2700634 48
show.png 5Кб, 270x120
270x120
>>2697488 (OP)
>Тред лучшего языка на планете Ждем лета...
Скажите, зачем этот аниме-чудо ждет лета? Будет какое-то событие или додо просто лета ждет?
Аноним 16/05/23 Втр 15:23:52 2700743 49
>>2700634
Летом будет очередной перекат
Аноним 16/05/23 Втр 16:01:14 2700780 50
Ребзя, лучший учебник сишарпа - обычная дока майкрософта? Я хотел бы по роадмапе идти и в конце сделать проект какой нить энтрилевельный. На каком сайте есть чето подобное? фрикодкемп, в3скулс, удеми? Есть знания фронта и реакта, поэтому хотел бы что-то не совсем энтрилевельное.
Аноним 16/05/23 Втр 16:24:57 2700820 51
>>2700780
Ты эти роадмапы с настороженностью смотри. Какой только хуйни туда не пихают. Для начала синтаксис подучи а то там много чего незнакомого после жс и тс
Аноним 16/05/23 Втр 16:54:43 2700858 52
>>2700820
Так роадмап я и не знаю никаких...
Даже во фронте их не было толком, грили ну учи вот это это и все.
0 имплемента в реал ворлд, 0 кодинга чего-то осязаемого. Я просто выучил милиард концепций и все. Пришлось смотреть курс на ютубе где чел пишет магазин пиццы, там хоть можн обыло посмотреть финальный резалт того, что учу. Вот я не хочу чтобы и с сишарпом была такая же хуйня - я учил прсото ради учебы.
Аноним 16/05/23 Втр 20:33:56 2701220 53
.jpg 1091Кб, 2120x3000
2120x3000
.jpg 66Кб, 565x604
565x604
Аноним 16/05/23 Втр 20:53:09 2701239 54
Почему implicit operator не дружит с ref return? Это же по факту обычный метод, почему я не могу по ссылке вернуть значение?
Аноним 16/05/23 Втр 22:49:53 2701356 55
>>2700858
Честно скажу - с роудмапами не знаком, учился в ентих ваших политехах 6.5 годиков, из которых 4 годика ОЧно.
Заряжал курсачи, бывало, помогало в дальнейшем понять некоторые особенности структур типа DateTime.
Многое чего познается непосредственно в работе.
Не-мимо работяга с тремя годами стажа
Аноним 16/05/23 Втр 22:51:00 2701357 56
>>2700780
Часто заглядываю в доку МС, чуть реже в метанит.
Что-то пытался черпать из Шилдта (но 4 версия СиСярпа уже дохуя устаревшая)
Аноним 17/05/23 Срд 07:32:28 2701570 57
>>2701239
если ты про каст, то это не обычный метод
на их основе генерится метод с именем op_Implicit и каст знает про этот метод и ожидает его правильным без всяких лишних параметров

а вот Convert.ChangeType не знает, он тупенький.
Аноним 17/05/23 Срд 08:06:58 2701581 58
>>2701570
Так я в курсе, что генерится. Я потому и спрашиваю, чому нельзя бахнуть ref, чтобы кастить к ref переменным.

Представь что у меня есть много class Biba, которые холдят struct Boba, которая репрезентирует Bib'у где-то на стороне (вызовы GAPI например). И есть куча методов которые принимают struct Boba по ссылке. При вызове этих методов происходит каст от Biba к Boba. И на этом этапе структура копируется. Можно было бы этого избежать, если была бы возможность написать каст ref возвратом. Компилятор же потом может понять какой метод вызвать в месте каста.
Аноним 17/05/23 Срд 08:23:58 2701590 59
>>2701581
ну вообще майки больше думали про доп вариант такого типа MemoryMarshal а не вот так как ты
Да они много где не подумали.
Аноним 17/05/23 Срд 10:24:44 2701682 60
Сап, работяги, подскажите какие версии C# .NET наиболее распространены в веб-тырпрайзе и насколько легко перекатываться на новые версии?
Аноним 17/05/23 Срд 11:36:43 2701745 61
Аноним 17/05/23 Срд 13:27:08 2701862 62
image.png 27Кб, 1405x104
1405x104
Написал такой запрос и почему то массив Bookings всегда пустой прилетает. Без where заполняет , с ним пусто. И дело не в том что по данному сравнению нет результатов в таблице , они есть. Если сначала вытянуть без where и сортануть в коде уже то массив тоже пуст не будет. В чем может быть дела ?
Аноним 17/05/23 Срд 13:35:50 2701874 63
>>2701862
я уже ослеп походу. Я не ту дату вбивал
Аноним 17/05/23 Срд 17:15:39 2702161 64
>>2701874
>я уже ослеп походу
Неудивительно с такой кашей. Ты бы инлайны поотключал и учился читать чистые выражения.
Для справки. Alt+F1 покажет тебе то же самое, пока ты держишь их нажатыми, намного удобнее чем постоянно такую парашу на экране наблюдать.
Аноним 17/05/23 Срд 20:12:28 2702375 65
Блок try catch обязательно должен завершаться?
Что если я посреди этого блока вставлю Return?
Аноним 17/05/23 Срд 20:33:12 2702403 66
>>2702375
Если эксепшена нет, остальное похуй, хоть goto делай.
Аноним 17/05/23 Срд 22:14:04 2702573 67
Сап аноны. Подскажите пожалуйста материалов для изучения ASP.Net с практическими задачками. Читаю сейчас "ASP.Net Core в действии". Страниц 100 прочёл, вроде понятно всё пока. Однако там практики почти нет. Из-за этого не чувствую что знания усваиваются.

И вообще приму советы по изучению asp.net.
Аноним 18/05/23 Чтв 00:08:04 2702687 68
>>2702573
Так бэк везде примерно одинаковый, тебе просто надо понять что на нем делают: поиграйся с rest, soap, попробуй что такое grpc, попробуй чего такое крон джобы, что такое очереди и консьюмеры. Ну вот и поймешь что язык твой дело десятое, да и к тому же может вообще не на своем дотнете писать будешь, не то что он плохой, но на рынке труда щас чет хз, специфичный
Аноним 18/05/23 Чтв 04:06:20 2702774 69
>>2702687
>но на рынке труда щас чет хз, специфичный
Чем специфичный?
Аноним 20/05/23 Суб 04:40:49 2705163 70
>>2701682
Но новые версии перекатываться изи, но можно охуеть от количества сахара при чтении чужого кода. Уже даже стрелочные функции добавили ради экономии двух переносов строк. В целом, мне не очень нравится куда движется развитие C#. Залупа в том, что менять особо не на что.
Аноним 20/05/23 Суб 09:08:53 2705217 71
.png 4Кб, 303x216
303x216
Хочу разобраться как правильно готовить микросервисы.
Собственно. Прикрутил аутентификацию по JWT. Решил использовать шифрованные, типа а почему нет.
И вот тута вопрос. Я хочу чтобы сервис FileStorage - тоже мог из токена получить ин-ю о пользователе(id, пермишины)
Одно решение что я могу придумать - выставить перед ним сервис типа Gateway, который расшифрует токен и положит в заголовки нужную ин-ю.
И мне это кажется какой-то парашей а не решением.
Второе - пихать токен в какое-то общее хранилище вида токен-расшифровка разрешений и инф-ии о пользователи, и при запросе к сервису - FileStorage достанет из этого хранилища инф-ю
Это решение тоже кажется говном.

Кто шарит. Поясните. Как правильно делать это вот?
Не думаю просто что какая-то специфичная хуйня.
Аноним 20/05/23 Суб 09:49:47 2705244 72
>>2705163
>экономии двух переносов строк
коих в рамках класса набирается сотня. А зачем? а прост.
туда же и дебильные
if()
{
a=1
}
else
{
b=1
}
Аноним 20/05/23 Суб 15:33:44 2705573 73
Реально вижуал студио заставить выглядить ни как выкидыш нулевых?

Нужна конкретно она, но как же она убого выглядит.
Аноним 20/05/23 Суб 15:41:39 2705577 74
20/05/23 Суб 15:42:47 2705579 75
>>2705573
Достаточно перестать сидеть на студии 2005 года.
Аноним 20/05/23 Суб 15:47:24 2705583 76
изображение.png 196Кб, 1920x1019
1920x1019
>>2705577
Ясно. Через пару лет выйдет.

>>2705579
На пике 2022, не вижу никаких отличий от 2005.
Аноним 20/05/23 Суб 15:51:07 2705587 77
>>2705583
К 8 дотнету. Ставлю анус...
20/05/23 Суб 15:53:20 2705590 78
>>2705583
Обратись к окулисту.
Аноним 20/05/23 Суб 16:00:23 2705601 79
>>2705573
И это здорово
И грядущие херовые изменения гуи заставят перейти на райдер если нельзя будет выбрать текущий вид
Аноним 20/05/23 Суб 16:04:10 2705610 80
>>2705601
Чел в 17.6 добавили возможность подкрашивать пары скобок разными цветами...
Аноним 20/05/23 Суб 16:05:32 2705614 81
image 113Кб, 1280x720
1280x720
>>2705573
>студио заставить выглядить ни как выкидыш нулевых?
Шарп - для зрелых людей.
Здесь как в онлайн-играх, один кусок школоты с писклявым голоском может засрать нормальным людям весь рейд.
Поэтому коммьюнити решило пойти на такой шаг, чтобы всячески не допускать в язык порриджей, зумерьё и прочих любителей фортнайта и тиктока.
Считаю получилось очень эффективно, мы очень рады, что вы не сможете пройти в шарпы в ближайшие 5-7 лет.
Аноним 20/05/23 Суб 16:35:50 2705664 82
>>2705610
Код можно было всегда красить как угодно , рисовать что угодно и форматировать как хочешь
Я же говорю про сам гуи

Мне хватило маркетолухов похеривших гуи винды
Хватило похеривших гуи фф

И тут та же херня
Аноним 20/05/23 Суб 20:55:24 2705954 83
>>2705163
Я как раз с Java на C# перекатываюсь из-за того, что ваш язык активно развивается. Надоело чувствовать себя некрофилом, когда пробую инфраструктуру вокруг джавы. И разрабы максимально стараются не внедрять новых фич в синтаксис
Аноним 20/05/23 Суб 21:18:43 2705972 84
А с хуя ли массив [] может неявно кастоваться к IList? Он же не является динамической коллекцией, я что-то не понимаю?
Аноним 20/05/23 Суб 22:02:35 2706002 85
image.png 45Кб, 1513x347
1513x347
image.png 52Кб, 1835x295
1835x295
>>2705972
Обертка чтобы дедам жизнь облегчить. Все приводилось к обжектам. Вэлью боксилось. Было актуально до изобретения женериков.
Аноним 20/05/23 Суб 22:15:23 2706014 86
>>2706002
У тебя экспепшон в ебало на 5 строчке, анончик. Я потому и спросил, может я что-то не понимаю.

Но быстрый гуглеж дал понять что деды густо насрали в штаны и нарушили LSP. Никто ведь не чекает IsFixedSize у IList. Не пизди что чекаешь в рабочем коде.

Массив должен IReadOnlyList реализовывать, почему они в Core это не сделали? Пиздец, индусы с этой обратной зависимостью погубят мой любимый шарпик как плюсы
Аноним 20/05/23 Суб 23:09:12 2706071 87
image.png 67Кб, 1795x257
1795x257
>>2706014
Получается можно делать вот так:
var m = new string[] { "2", "3", "4" };
((IList)m).Add(1);
И ловить эксепшен.

Так нетрудно забыть что к тебе в IЛисте может прийти массив, а ты на нем Add вызовешь без задней мысли.

Вот это место. Охуенная имплементация, что тут сказать.
Аноним 20/05/23 Суб 23:18:46 2706082 88
>>2706071
Скорее легче следить за тем чтобы никто не пихал массивы туда где не массивы чем шизить и чекать.

В репе corefx даже не смог найти обсуждения, что этот проеб рано или поздно нужно фиксить.
Аноним 21/05/23 Вск 06:09:29 2706181 89
image.png 4Кб, 270x120
270x120
>>2705217
Отдельный сервис авторизации, в который могут стучаться только твои микросервисы в пределах твоей vpn.
В самом микросервисе где нужно прокидываешь контекст авторизации который по необходимости стучится в сервис авторизации (например по grpc) и извлекает нужные данные.
Можешь это либо на уровне мидлвари прокинуть, либо через DI.
Аноним 21/05/23 Вск 06:10:24 2706182 90
image.png 5Кб, 270x120
270x120
>>2706181
Без негатива - картинка не наезд, просто капча показалась забавной.
Аноним 21/05/23 Вск 06:13:53 2706183 91
>>2705583
Нехуй сидеть на ноутбуках с микроэкраном. Купи себе нормальный большой монитор и выставь нормальный scale.
Аноним 21/05/23 Вск 06:21:00 2706184 92
>>2705577
Бля, уберите этих "'эффективных" уебков от интерфейса.
Аноним 21/05/23 Вск 12:05:09 2706339 93
>>2706184
Увеличим расстояние между кнопками. Увеличим шрифты надписей.
Как итог - становится проще, остаются только действительно нужные функции.
Всякие настройки тоже отключим. Вот у вас же есть телефон, на нём есть ватсап, вам же не приходит в голову менять там шрифты или цвета.
Так и в студии, всё будет по современному стандарту. Функционал будет доступен для людей с ограниченными возможностями, а не только для отдельных задротов. Всё будет настроено из коробки на нужды среднего человека.
Таков рыночек.
Аноним 21/05/23 Вск 12:07:57 2706343 94
image 151Кб, 2538x708
2538x708
>>2706183
Завидую людям с прекрасным зрением. У меня вот 27 дюймов моник. Но размер шрифтов за счёт масштабирования такой, что это эквивалентно разрешению 1024х600.
Аноним 21/05/23 Вск 21:23:35 2707267 95
.jpg 227Кб, 1920x1056
1920x1056
>>2705577
Какое же говно. Пиздец. Там в щели между блоками мой хуй пролезет
Почему блядь не сделать нормально. Т.е. чтобы как на прикриплейде можно было делать ПО УМОЛЧАНИЮ. А не каждый раз приходилось окошки рассвывать. Вот это - было бы пиздец как охуенно. И чтобы при этом переключаться между этими окошками можно было быстро каким-нибудь shit+tab
Не. Блядь. Сделаем какое-то говно, влепив какие-то скругления и дырки между блоками.
Пиздец. Вебобляди заебали. Этот дизайн под веб - бесит что пиздец.

И да. Я знаю, что я могу PowerToys сделать вот такой присет, но это немного не то. Все равно приходится каждый раз распихивать окошки по блокам. А я хочу чтобы сохранил и потом оно постоянно так было.
Аноним 21/05/23 Вск 22:56:11 2707422 96
>>2707267
Пусть это хотя бы в превьюхе появится. А то ваши жопы порвались с парочки скринов, а на деле это все будет не так плохо.
Аноним 21/05/23 Вск 23:11:24 2707466 97
.png 76Кб, 1920x1050
1920x1050
>>2707422
Ну. У меня жопа подорвалась с того, что лично мне - нужно чтобы для кода было больше места и можно было бы поставить экран с кодом - по центру.
Почти идеально, это сорт оф прикриплейд, но с IntelliSense, дебагом, рефакторингами, темной темой и для тестов чего-нибудь.

Ну и еще она рвется, потому что у меня на работе монитор 24 дюйма, и я борюсь за каждый миллиметр полезного пространства, а тута - просто взяли и хуйнули на изичах ненужные пустоты.
Аноним 22/05/23 Пнд 10:33:28 2707788 98
>>2707466
Ты какой-то шиз. Просто поставь монитор вертикально и режим для доп окошек который скрывает обозреватель солюшенов, ошибки и свойства. Нахуя смотреть на них постоянно при написании кода?

Именно из-за таких поехавший дедов, мы все еще сидим и вилкой говно захошее колупаем вместо ГУИ.
Аноним 22/05/23 Пнд 10:52:36 2707825 99
изображение.png 7Кб, 270x120
270x120
>>2707788
Это ты какой то шиз. Делать по 100000 лишних кликов (и возможно скроллов) для переходов просто ради "зато модняво, все скрыто и огромное"

не разработчики, а смузихлебы.
капча намекает
Аноним 22/05/23 Пнд 10:59:09 2707836 100
Аноним 22/05/23 Пнд 14:00:09 2708029 101
>>2707825
>без решарпера
>без горячих клавиш
>водит мышкой
>не смузихлёб

Держи в курсе, дед. Весь мой проект у меня на кончиках пальцах, зона досягаемости до любого элемента три клавиши которые нажимаются в десять раз быстрее колупания в окошечках.
Аноним 22/05/23 Пнд 14:13:20 2708040 102
>>2708029
смузихлебыч, поясни мне как тебе вдруг станет лучше жить от увеличенных отступов?

Как хуже станет тем, кто любит что на экране больше информации - сразу видно контекст и НЕ НУЖНО дыркаться чтобы открывать то и это как дебил....это сразу видно

как лучше станет тебе поясни.

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

С пустыми пространствами мы уже проходили, когда выкатили на десктопы метрошные говноприложения что охеренно ТУПО смотрится на мониторе, который как бы сильно больше чем планшет.
Аноним 22/05/23 Пнд 16:09:55 2708178 103
>>2708040
Не бросайся в крайности. Это контрпродуктивно, еще даже обнову не выкатили а у тебя уже жопа сгорела. К тому же мелкомягкие скорее всего они оставят возможность вернуться на старый вариант.

По поводу же солюшена, мне неудобно и отвлекает. Я хочу видеть код когда что-то делаю и только, прыгать по файликам мне помогает решарпер как и выносить в отдельные файлы нужные части кода. Просто нет смысла смотреть на него.
Аноним 22/05/23 Пнд 16:28:55 2708196 104
>>2708178
потому что я это проходил уже с фф. И резко появилась необходимость скролить и вообще стало выглядеть по пидорски.

И нет - НЕ ОСТАВИЛИ в фф метода вернуть как было. Просто выпилили флаг compact mode. Но это фф и на 90% все решилось через стили

ОЧЕВИДНО уже сейчас что это будет говно ибо и так понятно что оно будет из себя. А вот оставят ли возможность "вернуть взад" - еще не факт.

>По поводу же солюшена, мне неудобно и отвлекает
ключевое слово МНЕ. не все такие как ты. Некоторые любители и в гит консоль попердолится.

Я вот любитель видеть весь контекст - и поэтому у меня и эксплорер по которому видно где чего и я прыгаю по нему. И "карта кода" чтобы быстро прыгать по методам (та родная что в студии это для мозахистов). И не та что от решарера, а supercharger

Держать в голове виртуальную картину "что где как связано с текущим моментом" - моя голова занята кодом и мне лишняя нагрузка ни к чему - весь контекст тупо перед глазами.

И я такой не один, а таких очень много.
Аноним 22/05/23 Пнд 16:37:10 2708209 105
>>2708196
Ну что сказать, хуёво быть тобой. Можешь попробовать по ссылке выше где фидбек собирают, действительно его дать аргументированно со скринами. Может учтут, а может нет.
Аноним 22/05/23 Пнд 16:41:32 2708218 106
>>2708209
там и без меня хватает. посмотри сколько лайков под коментами вида "оставьте возможность выключить эту хрень"

>Может учтут, а может нет.
история с кнопкой пуск показательна - никого не слушали, ведь есть "улучшатели", хотя вроде бы очевидна нереальная тупость происходящего.
Аноним 22/05/23 Пнд 16:43:24 2708222 107
>>2708218
Ну на винде то можно переназначить все что угодно в оформлении.

Было бы круто на самом деле, если бы они сделали нормальный апи для изменение гуи. Каждый бы поставил то что хотел и норм.
Аноним 22/05/23 Пнд 16:53:47 2708240 108
>>2708222
>Ну на винде то можно переназначить все что угодно в оформлении.
ой шутник ой шутник, спасибо посмеялся

было бы круто если бы они работали в сторону юзабилити, но они не могут.
канвас дебаггер мертв
бряки не сохранить и не восстановить - а помню в далекие времена еще на эклипсе можно было сохранить открытые вкладки, закладки, бряки и потом восстановить весь контекст. И все это связано с issue tracker. Годнота в общем.

в студии же - ну полумертвое расширение которое даже рядом не лежало и даже не может сохранить бряки ибо апи студии не позволяет. Тупо сохранить загрузить открытые вкладки. Ни о чем.
Аноним 22/05/23 Пнд 17:49:27 2708331 109
>>2708196
>а supercharger
Глянул ради интереса. Выглядит вроде ничего так.
Вопрос - оно сильно тормозное?
Аноним 22/05/23 Пнд 18:08:31 2708368 110
>>2708331
Не знаю. Я юзаю только карту кода и вертикальные линии отступов
Аноним 23/05/23 Втр 11:24:33 2709003 111
Если есть заранее известное количество способов использования модели, то как лучше поступить - запилить базовую вью модель для "основных" свойств, и наследующие вью модели для каждого способа, или же написать на каждый способ интерфейс и все реализовать одной ёба вью моделью?

А если в будущем может стать больше вариантов использования?

Или лучше не совать каждый чих во вью модель, а по возможности выносить, например, выведение значения для сортировки во вью, используя конвертер?
Аноним 23/05/23 Втр 11:30:07 2709005 112
Аноним 23/05/23 Втр 11:50:34 2709025 113
>>2709003
выбирай любой вариант. тут нет правильно или нет. есть "в этом случае так наверное более удобнее чем этак"
просто не забывай что вьюмодели и так страдают жирностью по своей природе. Например те же контроллеры - попытки посадить вьюмодели на диету.
Аноним 23/05/23 Втр 11:59:46 2709036 114
>>2709025
Мне сейчас кажется более предпочтительным вариант с кучей классов по простой причине - чтобы случайно не нахуевертить с ёба моделью. Даже если будет интерфейс на каждое применение, я, допустим, спустя какое-то время, забыв что и как, сяду что-то добавить/исправить, ебанусь, кастану в класс и сделаю хуйню.
С другой стороны это наверно уже паранойя, но из-за этого я сижу и охуеваю сам с себя.

Ну и опять же жирная вью модель... Хотя если пилить класс на каждый случай, то будет куча повторяющегося кода.
Аноним 23/05/23 Втр 12:04:31 2709039 115
>>2709036
ты прав - тебе кажется.

на деле тут все фломастеры. ты можешь плодить много классов и сделать себе неудобно. Можешь сделать 1 класс и в итоге он станет делать много разного и тебе станет неудобно. Можешь потом этот жирный разбить на несколько вложенных вьюмоделей (явных или нет) и это тоже может быть неудобно

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

>то будет куча повторяющегося кода.
наследование никто не отменял
Аноним 23/05/23 Втр 12:25:20 2709074 116
>>2709039
>наследование никто не отменял
Модель
Базовая ВМ
ВМ для листбокса с чекбоксом как сабкласс базовой (добавляем свойство bool State)
ВМ для дерева без чекбокса как сабкласс базовой (добавляем свойство bool IsSelected)
ВМ для дерева с чекбоксом как сабкласс предыдущей, но с добавлением свойства bool State - и получается повторяющийся код.

Очень грубо и тупо, конечно, но как-то так. ВМ можно объединить так или иначе, но это уже шаг в сторону ёба ВМ.
Аноним 23/05/23 Втр 12:29:25 2709089 117
изображение.png 285Кб, 800x679
800x679
изображение.png 6Кб, 270x120
270x120
>>2709036
хочешь еще неудобств? щас отсыплю.

вот представь у тебя рутовая вьюмодель имеет команду.и в этой команде она что то делает и у нее есть же конечно вложенные вьюмодели
Должна ли эта рутовая вьюмодель распихать данные по вьюмоделям сама?
А если да, то что будет если нужно запихать во вьюмодель которая недостижима?
мессенджер? ну допустим. но это уже косвенность и "это прямо, это через мессенджер, бардак". событийная модель неудобна "где вы все?" и с транзакциями морока (смотри domain event и их проблемы)
медиатор и все через медиатор? а какой? а как шарить? а он же в итоге сам жирным станет, дробить что ли?

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

или вот.
у нас есть команда. и допустим она на кнопке , на меню и еще где то далеко друг от друга. Что делать? на местечковую вюмодель биндить команду - ой нехорошо ей самой работу делать, в базу лазить.
Конечно же биндим на рутовую через дикий FindAncestor - неудобно и в итоге эта рутовая станет жирной как мамонт.

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

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

Лучше идти на завод. Капча намекает
Аноним 23/05/23 Втр 12:34:33 2709109 118
>>2709039
и этот последний шаред медиатор он ведь как контроллер же - ведь принимает команды и уведомляет вид (который VM). чем не контроллер?.
Как медиатор он зло, но контроллер это ж добро )

А нормальная ли эта реализация? почему в инетах делают что то другое? нипанятна, памагите))
Аноним 23/05/23 Втр 12:39:31 2709120 119
>>2709074
не вижу в твоей схеме ничего особенного. можно и наследованием и супер моделью порешать.
Аноним 23/05/23 Втр 14:48:41 2709259 120
Товарищи, доброго времени суток!

Подскажите пожалуйста, как сравнивать обобщённые типы данных между собой. Скажем, есть класс в котором я сортировку делаю, так вот, при попытке работы с дженериком, жепа получается.

Находил одно из таких предложений в инете:
Class Myclass<T> : MyBaseClass<T> : where T : IComparable<T>

поле: IComparer<T> myComparer;

Затем в самом условии: myComparer.Compare(data1, data2) > 0
Но проблема в том, что валится всё на том, что myComparer NULL'овый. Как его правильно инициализировать? Или быть может надо реализацию интерфейса IComparable переопределять? Подскажите пожалуйста!
Аноним 23/05/23 Втр 15:06:08 2709265 121
>>2709259
непонятно зачем ты делегировал сравнение и у тебя вдруг стало необходимом дополнительное поле в классе, но если уж то лези инициализация

LazyInitializer.EnsureInitialized(...)

хотя зачем тебе поле вообще....
Аноним 23/05/23 Втр 16:33:57 2709405 122
76787645345.gif 742Кб, 500x500
500x500
>>2705614
Сука блядь как же я кринжую с пикчи. Ебаные сойбои сука.
Аноним 23/05/23 Втр 17:03:02 2709443 123
>>2709405
Думаешь, не смогут повторить?
Аноним 23/05/23 Втр 17:17:05 2709476 124
Аноним 23/05/23 Втр 17:23:34 2709489 125
i.webp 48Кб, 612x408
612x408
Аноним 23/05/23 Втр 17:33:20 2709517 126
Как корректно разрулить реентрантность async методов?
Допустим есть долгоиграющий async:

asynd Task DoWork()

и он вызывается в обработчике клика мыши, как правильно гасить первый вызов если он еще не закончен? Короче какой тут паттерн?
Аноним 23/05/23 Втр 18:02:13 2709559 127
>>2709489
Я не понимаю, что ты мне пытаешься сказать.
Аноним 23/05/23 Втр 18:10:44 2709563 128
>>2709559
Это была контекстная шутка на пять сек, ты уже развёл КРИНГЕ, а обьяснять это вообще пиздец.
Аноним 23/05/23 Втр 18:31:27 2709581 129
изображение.png 8Кб, 270x120
270x120
изображение.png 8Кб, 270x120
270x120
>>2709517
CancellationToken же

запарил двач своей викториной. ботам не мешает, а людям страдать
Аноним 23/05/23 Втр 21:28:32 2709715 130
.jpg 509Кб, 941x2000
941x2000
Пацаны. Пацаны. Поясните за чистую архитектуру.

Смотрите. Допустим, у меня монолит по причинам - проще деплоить, маленькая команда.
Дальше. Мое приложение - это система мониторинга и управления арендованными роботами.
Что оно делает.
1. Робот - подключается к моему серверу по своему робото-протоколу. Раз в минуту отправляет мне по роботопротоколу данные о своем текущем состоянии.
2. Есть веб-морда, с помощью которой пользователь(человек) - может следить за состоянием роботов, а так же отправлять им команды, в духе - начни готовить, начни уборку, постриги кусты.
3. Приложение - используют и люди из сервиса поддержки, потому - оно предоставляет сквозной интерфейс с высоким приоритетом, для отправки комнад по секретному протоколу от сервиса поддержки роботам.
4. У самого приложения - есть акции, и периодически уже сверху менеджер может сделать акцию - приведи друга, получи скидку на месяц аренды робота.
Важное условие, роботов - очень много, а потому - нужно стараться экономить на ресурсах, т.к. заказчик уточнил, что у них свое железо, и спецификация железа: Pentium4, 2 гига оперативы и 100ГБ ХДД в рейде.

Ну так вот. Как должна быть построена-то архитектура, чтобы это было чисто и этим было удобно управлять и развивать?
Я просто не понимаю. Все примеры чистой архитектуры в интернете - это какая-то унылая фигня с крудами, в которых лезем в базу, достаем из базы. А вот как в таком случае-то предполагается делать чисто. Ведь нужно и какие-то очереди задач прикрутить, и выделить высокоприоритетный интерфейс для поддержи, и рассылать уведомления об акциях.
В общем. Кто шарит дальше чем взять медиатор и круд намутить - поясните, если не сложно.
Аноним 24/05/23 Срд 09:19:36 2709951 131
>>2709581
Так как правильно оформить, вручную что ли самому менеджментом заниматься? Там же всякую херь нужно отслеживать типа если отмена не закончена, то дожидаться завершения предыдущего вызова.
Аноним 24/05/23 Срд 09:23:15 2709953 132
Без названия(2).jpg 442Кб, 1600x900
1600x900
>>2709715
Хуйню какую-то напесал. В твоём случае надо было не оборудование закупать, а использовать облачные сервисы. Yandex IoT Core https://cloud.yandex.ru/docs/iot-core/ стоит 115 рублей за миллион сообщений. Считаем:

Допустим, у тебя 100 роботов, каждый отправляет 1 сообщение в минуту, получается:
(43800 x 100) / 1,000,000 x 115 = 503 рубля в месяц.

Далее, всё это дело пишется в какую-нибудь условную YDB. А дальше по API можно раздавать сайту, приложению и другим потребителям данные. По сути, это обычные временные ряды. Надо будет этот временной ряд как-то агреггировать и прочие операции делать. В идеале конечно лучше брать специализированные базы, а-ля https://iotdb.apache.org/, InfluxDB, CrateDB, Riak TS, они лучше аггрегируют данные. Если ты всё в SQL-базу будешь писать, у тебя будет пиздец какая проблема с масштабированием, и с запросами типа "покажи мне усредненные данные с 3-го робота за последний месяц, с шагом усреднения 2 часа". В обычной базе данных а-ля PostgreSQL вряд ли получится так сделать, не запрашивая 40 тысяч записей за раз.

Всё остальное в принципе хуйня. Под веб-морду есть готовые компоненты а-ля https://awslabs.github.io/iot-app-kit/ Акции-хуякции это всё делается через событийно ориентированную архитектуру по триггеру.

Смотри картинку, плюс-минус как это должно выглядеть.
Аноним 24/05/23 Срд 11:36:56 2710059 133
>>2709951
ну если не используешь разные Observable реактивные, то конечно вручную - просто новый CancellationTokenSource (а старый cancel),получить токен, запустить с ним активность. и проверять его постоянно + 1 раз после получения результата активности в основном потоке - может результат уже не нужен и там не будет гонки "отменили, новый запустили, используем невалидный результат".

капча вообще невменяемая.
Аноним 24/05/23 Срд 19:34:36 2710684 134
>>2709953
> Yandex IoT Core
> MQTT-сервер
Я вроде не говорил, что роботы по MQTT общаются.
В тексте: Раз в минуту отправляет мне по роботопротоколу
Ну и вопрос таки не про яндексы и прочее. А про то, как соблюсти чистоту, когда у меня приложение не просто - достать из базы, положить в базу.
И монолит взят специально, чтобы нельзя было сказать: Ай, сделай сервис управления роботами, сервис хранения данных, идентити хуйни кафку-ребит и погнали.
Аноним 25/05/23 Чтв 07:07:31 2710991 135
Есть ли у студии какой-то шорткат, чтобы быстро превратить строку в интерполируемую?
Я про случай:
Я начинаю писать
Console.WriteLine("Hero name is : {hero.Name}");

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

Допустим, для случая вида Console.WriteLine("Hero name is : " + hero.Name); такое есть в качестве рефакторинга.

Просто пальчики коротенькие, до $ тянуться тяжело...
Аноним 25/05/23 Чтв 11:47:49 2711209 136
Аноним 25/05/23 Чтв 17:37:20 2711725 137
Есть тут знатоки uwp? Как можно перехватывать клик по flyout? Все остальные клики мышью перехватываются Window.Current.CoreWindow.OnPointerPressed а вот клики по flyout нет.
Аноним 25/05/23 Чтв 19:47:49 2711894 138
>>2711725
Использовать AABB и определять килинкли или нет?
Аноним 25/05/23 Чтв 21:19:12 2712003 139
Посоветуйте хорошую статейку или туториал про стримы и пайплайны
Аноним 25/05/23 Чтв 21:20:46 2712004 140
>>2712003
про каналы и пайплайны может?
Аноним 25/05/23 Чтв 22:20:23 2712029 141
.png 7Кб, 270x120
270x120
Аноним 25/05/23 Чтв 23:52:12 2712069 142
>>2697782
Лол, вообще нет упоминания про SQL
Или это относится к "то что обычно на уроках инфоматики было"? Ну охуеть.
Аноним 26/05/23 Птн 06:34:54 2712156 143
>>2697782
>че в шарпе делает volatile
А что делает? Этот вопрос сложен даже для тех кто книги про шарп пишет.
Аноним 26/05/23 Птн 09:02:14 2712189 144
>>2712156
Ты не смог открыть мсдн и прочитать зачем нужен volatile?
Аноним 26/05/23 Птн 10:01:51 2712243 145
Читаю про асинхронщину в .NET. Насколько я понимаю сейчас используется TAP паттерн. Стоит ли в таком случае изучать APM и EAP паттерны или просто глазами пройтись?
Аноним 26/05/23 Птн 12:48:52 2712402 146
Почему не стоит вкатываться в С++, а стоит вкатиться в шарф?
Аноним 26/05/23 Птн 14:14:04 2712470 147
>>2712243
Не загоняйся. Просто пиши await везде где вызываешь async метод и все. Я уже 2 года так делаю, меня никто еще не раскусил. В душе не ебу ни про какие паттерны.
Аноним 26/05/23 Птн 14:45:28 2712544 148
>>2712189
ну ТЕПЕРЬ в ней написано про то, что на деле нет никаких гарантий того, что будет прочитано именно последнее значение.

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

капча ну просто звиздец
Аноним 26/05/23 Птн 19:15:55 2712980 149
>>2712470
> Просто пиши await везде где вызываешь async метод и все.
await в main() не работает.
Аноним 26/05/23 Птн 19:19:37 2712983 150
>>2712980
Так сделай асинхронкой или через Task.Factory.StartNew
Аноним 26/05/23 Птн 19:20:19 2712987 151
>>2712980
работает. с 7 шарпа можно async Task Main и даже Tas<T>
Аноним 26/05/23 Птн 19:39:55 2713005 152
Синтаксис шарпа и постгреsql подучил. К чему переходить теперь?
все дико нравится пока
Аноним 26/05/23 Птн 19:41:27 2713007 153
Аноним 26/05/23 Птн 19:44:24 2713010 154
>>2713007
Благодарю. Его как-то отдельно учить надо или пару приложений по туториалам посмотреть как делается и по ходу разберусь?
Аноним 26/05/23 Птн 19:58:12 2713024 155
>>2713010
Основы учить отдельно. Вряд ли ты просто посмотрев код разберёшься, как работает DI. Ну а дальше ковырять примеры.
Аноним 26/05/23 Птн 20:12:01 2713030 156
>>2713024
Понял. Есть у кого на примере годные обучалки?
Аноним 26/05/23 Птн 20:21:42 2713047 157
Аноним 26/05/23 Птн 20:35:41 2713070 158
>>2712980
>await в main() не работает.
Давно уже работает.
Аноним 26/05/23 Птн 20:39:50 2713074 159
>>2713070
Я пишу на пятом шарпе и .NET Framework 4.0. Как мне сделать асинхронный Main???
Аноним 26/05/23 Птн 20:41:37 2713077 160
>>2713074
>Я пишу на пятом шарпе
а зачем ты это делаешь? проспорил что ли?
Делается то элементарно, но...зачем
Аноним 26/05/23 Птн 20:42:14 2713079 161
>>2713047
Еба сколько там всего. Ладно попробую. Хотя чет в конфе сишарпа в телеге хаят этот метанит
Аноним 26/05/23 Птн 20:43:46 2713081 162
>>2713079
> в конфе сишарпа в телеге хаят этот метанит
Правильно, надо же убедить себя, что покупка курсов за 100к не была пустой тратой деняк.
Аноним 26/05/23 Птн 20:44:53 2713084 163
>>2713077
Не нашёл более нового в папке C:\Windows\Microsoft.NET\Framework\
Аноним 26/05/23 Птн 20:47:46 2713088 164
>>2713084
с какого браузера сидишь?
Аноним 26/05/23 Птн 20:52:04 2713092 165
Аноним 26/05/23 Птн 20:53:41 2713094 166
>>2713092
ну так бы и сказал что тебя прокляли. Тебе в церковь нужно. А про шарп забудь. И вообще про программирование забудь. А не то карма тебя настигнет.
Аноним 26/05/23 Птн 20:57:13 2713098 167
>>2713094
Ну нравится мне шарп. Не писать же на Visual Basic.
Аноним 26/05/23 Птн 21:57:11 2713171 168
>>2713081
ну там профи сидят а не курсовкатывальщики
Аноним 26/05/23 Птн 22:07:35 2713178 169
>>2713098
Ну ты и загнул, братик. ВБ в принципе неудобный
Сужу по работе в MSVS, будучи шарпистом
Аноним 26/05/23 Птн 23:32:30 2713217 170
>>2713081
Конфы в телеге притягивают сплошных долбоёбов
Аноним 27/05/23 Суб 06:15:50 2713318 171
Ребзь, писал на сишарпе 10 лет назад. За это время что-нибудь добавили в язык что надо подучить? Ну кроме варов.
Аноним 27/05/23 Суб 07:33:46 2713330 172
>>2713318
Джавадебил, ты? Заново учи, или на собессе будешь обоссан?
Аноним 27/05/23 Суб 07:36:22 2713332 173
>>2713330
Чего заново учить дебич? Я все концепции наизусть помню, просто свежие нужно дркинуть сверху
>джавадебил
Не проецируй. Никогда не писал на этом говне и не собираюсь. Просто перекатился в ерланг в свое время и сейчас возвращаюсь.
Аноним 27/05/23 Суб 09:11:19 2713351 174
>>2712069
Лично мое мнение - SQL не относится к тому, что надо знать программисту на начальном этапе. По ряду причин. Главная из них - разные СУБД ведут себя по разному и какая используется конкретно в этой фирме - хуй знает. А под знанием SQL как раз обычно прячется понимание, какой там план запроса составит PG, какой MySQL, какой MSSQL, и как их оптимизировать надо, какие там у кого индексы и когда надо, а когда - нет, сверху вся хуйня с транзакционной целостностью, локами и прочий дроч.
В общем - не совсем знания для вкатышей.
Можно конечно было бы написать про базу в духе селектов-джоинов-юнионов ну и третья нормальная форма, но именно это - совсем простые темы, которые осваиваются за 10 минут, а третья нормальная получается сама у большинства людей.
Аноним 27/05/23 Суб 09:58:16 2713359 175
Сишарподжунов часто гоняют по алгоритмам? Если да то посоветуйте ресурсов где учат по ним именно на сишарпе
Аноним 27/05/23 Суб 10:12:56 2713367 176
>>2713074
>Я пишу на пятом шарпе и .NET Framework 4.0.
Земля тебе пухом братишка.
>Как мне сделать асинхронный Main???
Из обычного main вызываешь асинхронный метод через
.GetAwaiter().GetResult();
Аноним 27/05/23 Суб 15:32:41 2713556 177
1) Скажите, что становятся со старыми версиями рантаймов дотнета, смогу ли я скажем через 3-5 лет скачать и поставить, скажем 6 дотнет (сдк и рантайм)? Есть просто ряд старых машин на 7 винде, обновлять их никто не собирается.

2) Я так понимаю новый шарп 11 совместим только с новым дотнетом 7, нельзя на последних шарпах писать на предыдущих дотнетах?
Аноним 27/05/23 Суб 16:28:59 2713620 178
>>2713556
Как я понимаю, нет-фреймворк это часть винды, поэтому годная стабильная штука, а мультиплатформенные дотнеты это соевые однодневки выбрасываемые на помойку каждый год, и по сути та же джава, на винде чужеродное пердящее говно. Как и джава, дотнет может используется в хуерпрайзе, но для нормальных приложений такое же говнище как джава или тот же электрон.
Аноним 27/05/23 Суб 17:06:17 2713662 179
>>2713556
1. На винде без проблем. На линуксы новые в репах может не быть старого дотнета, а руками может ругаться на зависимости (в теории). Внутри докера проблем конечно не будет

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




.
Аноним 28/05/23 Вск 14:41:57 2714096 180
Допустим у меня есть приложение на wpf для выбора деталей для машины. К примеру шины, аксессуары и тд. Мне нужно реализовать возможность выбирать все это по клику. Внизу окна есть список категорий, по клику на категорию открывается список со, скажем шинами. И можно выбрать только один вид шин, что логично. То есть при клике на одну шину с другой выделение автоматически снимается. А вот если я выберу скажем аксессуары, то их уже можно выбирать в любом количестве. Вопрос, как такое реализовать?
Аноним 28/05/23 Вск 14:46:21 2714099 181
>>2713556
Какие проблемы со скачиванием могут быть? Готовые релизы есть как на сайте Майков так и прямо на гитхабе.

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

Выставляешь настройках проекта версию языка latest или конкретную, а дотнет например 6.0. Компилятор ведь собирает в IL при JIT или в ассемблер при AOT, так что если нет каких-то breaking changes в IL (а это вообще было когда-нибудь?), то никаких проблем.
Аноним 28/05/23 Вск 15:05:24 2714109 182
>>2714099
>Для того чтобы писать на последней версии тебе не обязательно нужен таргет на последний дотне
Фиг там. Латест он выставит от таргета, а если указать версию языка то будет ругаться
Аноним 28/05/23 Вск 15:19:26 2714123 183
image.png 47Кб, 1806x351
1806x351
>>2714109
>то будет ругаться
Не пизди.
Аноним 28/05/23 Вск 16:09:08 2714169 184
>>2714109
Тебя стоит уволить и обоссать.
Аноним 28/05/23 Вск 17:19:24 2714227 185
>>2714096
а в чем проблема то.
SelectedItem={Binding ...} и bool IsSelected {get; set;}
Аноним 28/05/23 Вск 17:31:52 2714250 186
Правильно ли понимаю что из всего зоопарка asp.net надо учить core?
Аноним 28/05/23 Вск 17:44:54 2714274 187
>>2714250
Core и Core MVC.
Опционально можно поигаться с Razor/Blazor.
Аноним 28/05/23 Вск 17:51:58 2714277 188
>>2714227
И как мне устанавливать isselected в false?
Аноним 28/05/23 Вск 18:54:28 2714332 189
>>2714277
А в чем проблема? При установке нового SelectedItem делаешь старому селектед oldSelected.isselected=false
Аноним 28/05/23 Вск 19:00:34 2714343 190
>>2714277
а с мультивыбором еще проще, ведь забинден прямо на нужный элемент. Ну разве что нужно где то реагировать на изменение селектед, но тут куча разных вариантов от события до чего угодно
Аноним 28/05/23 Вск 19:02:03 2714345 191
0035ConstantiaS2.jpg 112Кб, 1280x1451
1280x1451
Покажите свои пет-проектики
Аноним 28/05/23 Вск 19:17:03 2714365 192
Есть какой-нибудь аналог metanit но на английском?
28/05/23 Вск 19:20:05 2714368 193
Аноним 28/05/23 Вск 19:29:29 2714382 194
>>2714368
Что такое джава, это же что-то давно мертвое типа perl?
Аноним 28/05/23 Вск 19:32:06 2714387 195
>>2714382
Нет, мёртвое типа COBOL.
Аноним 28/05/23 Вск 19:32:32 2714389 196
Аноним 28/05/23 Вск 19:39:29 2714396 197
Аноним 28/05/23 Вск 19:47:34 2714412 198
Из практики. Когда-то давно реализовали мы REST-like API для одного сервиса, задокументировали и раздали пользователям (их тогда было несколько сотен).

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

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

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

По этой причине следующая версия API была построена по простому принципу - 200 - запрос дошёл до приложения, >= 300 - не дошёл. И дело пошло - с тех пор проблем и вопросов у пользователей сильно поубавилось, потому что детальные отчеты в теле были достаточно красноречивы, и самое главное - их стали читать и парсить.

С тех пор у меня есть чёткое убеждение - не надо смешивать транспорт (HTTP) и приложение (JSON/XML/etc), а также не надо пытаться впихнуть в куцые варианты кодов HTTP варианты ответов приложения - их банально недостаточно и они практически бесполезны в сложных API. А если API доступно не только через HTTP (да, есть и другие транспорты), то отсутствие привязки только упрощает разработку.

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

Разумеется, в очень простых API, где всё влезает в HTTP-коды их можно использовать (хотя и остаётся неоднозначность с 404), но это частный случай.

По поводу кэширования - есть же вполне себе стандартизованный Cache-Control, который решает проблемы с прокси и прочими посредниками, а если прокси его не понимает или пытается "умничать" - то грош ему цена.
Аноним 28/05/23 Вск 20:59:19 2714484 199
>>2714412
Ответь, любитель 200, что там создает транспорт-то?
А за что транспорт просит мзду?
Может быть скажешь, почему транспорт - каким-то образом решает, поддерживаемый ли медиа-тип или нет?

Ладно. Я не хочу очередной рестосрач разводить. Просто это все забавно, когда говорят про транспорт в контексте HTTP. А потом - мы берем нормальный транспортный протокол типа TCP-UDP и такой фигни вообще не возникает: хочешь - гоняешь модбас, хочешь - DLMS, хочешь - IRС, хочешь - просто отправь файл и на той стороне - порешают че с ним делать. Транспорт ведет себя как транспорт, мать его. Да, иногда может отвалиться и приложению надо нахлобучить что-то, чтобы самому уже гарантировать доставку, но это именно что ложится в транспорт. А вот эта вот залупистика с тем, что HTTP - теперь транспорт, это просто рофл на самом деле какой-то, и нежелание спецификацию подробно читать, чтобы самим делать нормально.
Аноним 28/05/23 Вск 21:21:36 2714513 200
>>2714484
>мы берем нормальный транспортный протокол типа TCP-UDP
а ты когда берешь это тоже лезешь в содержимое tcp пакета и коды ЛОГИКИ пихаешь в его хидеры в расчете "а вот доставайте код логики из хидера tcp пакета, хуле вы"?

А если ты это не делаешь, а позволяешь tcp/udp/жопаdp просто доставить, то зачем ты постоянно сравниваешь теплое с мягким?!

это риторический вопрос.
Аноним 28/05/23 Вск 21:48:24 2714528 201
>>2714513
Няша, HTTP - прикладной протокол. Если для твоего приложения он не подходит - значит ты просто неправильную технологию выбрал.
Что тут блин сложного-то?

Ты же не пытаешься через FTP включить лампочку или че ты там пытаешься через HTTP делать. Почему-то некой интуиции тебе хватает, чтобы не пытаться извращаться, даже если это реально можно сделать всяческими ухищрениями.
Но вот когда речь заходит про HTTP - сразу начинается эта фигня: Ряяяя, HTTP-транспорт. Ну, блин, серьезно. А можем мы в таком случае этот транспорт по USB погонять без лишних телодвижений? TCP - можем вполне, ему в принципе похуй по чему гоняться. Покажи мне в таком случае, как ты будешь организовывать общение браузера через USB или UART подключения к серверу.
Аноним 28/05/23 Вск 21:55:53 2714535 202
>>2714484
Для чего общаться с копипастой с хабра?
Аноним 28/05/23 Вск 21:56:21 2714536 203
Прикладной транспортный протокол HTTP.
Аноним 28/05/23 Вск 22:02:14 2714539 204
>>2714535
Я хочу пообщаться с анончиком, который ее запостил же.
Только сейчас починился сосачик, целых 2 дня не с кем было пообщаться.
Ну да ладно.
Аноним 28/05/23 Вск 22:04:42 2714541 205
>>2714528
> HTTP - прикладной протокол
Но из этого НЕ следует что я обязан обязательно быть прибит к нему гвоздями и не могу быть на уровень выше и использовать его как банальный транспорт в который умеет клиент.

поэтому

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

Я выделил жирным для непонятливых. Завязываясь на особенности хттп ты ВЫНУЖДЕН разгребать и все неудобства этого выбора - это и в пасте описано и необходиость клиенту писать if портянки для разбора, непонятки с батчами и так далее.

Можешь жить? ну замечательно. Также ты возможно можешь решить возникающие проблемы...которые не возникли бы если бы ты сам не решил их создать своим выбором.
Аноним 28/05/23 Вск 22:18:41 2714548 206
.png 422Кб, 1920x931
1920x931
.png 136Кб, 1920x913
1920x913
>>2714528
А ещё HTTP - протокол передачи ГИПЕРТЕКСТА. То есть HTML. Передаёшь JSON-ы => используешь HTTP неправильно. При единственном правильном использовании HTTP сайт должен выглядеть как пикрил.
Аноним 29/05/23 Пнд 02:01:05 2714629 207
>>2714548
Чел, у тебя на скриншоте картинка, бинарный файл, какой текст, иди проспись.
Только вчера ебал стримы с массивами байтов как в Си байтоёбля! хексдампы! по HTTP, просто чтобы картинку в ГИПЕРТЕКСТ положить как у тебя на скриншоте.
Аноним 29/05/23 Пнд 02:27:38 2714638 208
>>2714099
То есть, я могу взять 11 шарп (на 10 винде) и скомпилить под винду 7 (там стоит рантайм дотнета 6)?
Аноним 29/05/23 Пнд 03:09:50 2714650 209
>>2714629
Это был сарказм. Я и не респонс-шизик и понимаю, что HTTP ещё 20 лет назад во времена SOAP использовали как транспортный протокол.
Аноним 29/05/23 Пнд 07:25:48 2714670 210
>>2714638
Будет работать если из новых фич 11-го шарпа ты будешь исползовать только сахар. Т.е. то что используется до компиляции в IL. Если же это изменения требующие именно нового рантайма, то нет, если не сможешь накатить его на win7
Но самый главный вопрос. Какое из новых изменений в C#11 тебе нужно настолько сильно, что ты вообще задался этим вопросом?
Аноним 29/05/23 Пнд 08:02:28 2714687 211
>>2714638
Да, блять, можешь. Конечно если ты не используешь какие-то новые типы из System, в таком случае тебе действительно нужен новый рантайм. А просто новая версия языка в новом рантайме не нуждается.
Аноним 29/05/23 Пнд 15:41:39 2715239 212
Asp.net core 6 актуален? Стоит изучая его вкатываться? Или седьмую версию искать лучше по обучалкам?
Аноним 29/05/23 Пнд 17:19:05 2715403 213
Аноним 29/05/23 Пнд 17:24:16 2715418 214
>>2715403
удивительно что эта фича появилась аж в 11 версии языка через десятилетия. Это к тому насколько быстро делаются нужные фичи
Аноним 29/05/23 Пнд 17:37:00 2715442 215
Есть лямбды и var, и на том спасибо.
Аноним 29/05/23 Пнд 17:42:13 2715459 216
>>2715442
В JS это хуеву тучу лет есть
Аноним 29/05/23 Пнд 18:24:14 2715580 217
>>2715459
Ты это к чему сказал
В шарпе лямбды появились в 2007 а жс аж в 2015
Аноним 29/05/23 Пнд 20:25:57 2715786 218
Чет я запутался нахуй. Правильно ли я понимаю? Asp.net состоит из Web Forms, MVC, Web API, Razor Pages, Blazor и Minimal API. И мне из всего этого нужен только MVC для вката?
Аноним 29/05/23 Пнд 20:33:33 2715795 219
>>2715403
1) Эта сахар, значит должен работать и на старом рантайме.
2) Хранить таким образом текстовые данные в коде - мудачество. Не делай так. Для нормальных задач вполне хватает интерполированных строк. А такая хуета для уебанов любящих пихать Raw SQL в код. За такое гвоздь в голову вбивают.
Аноним 29/05/23 Пнд 20:34:22 2715796 220
>>2715418
>нужные фичи
Нихуя они не нужные. Очередная уступка ноющим пидарасам.
Аноним 29/05/23 Пнд 20:35:10 2715797 221
>>2715786
>И мне из всего этого нужен только MVC для вката?
Нет. MVC нахуй сейчас никому не нужен. Достаточно Web Api.
Аноним 29/05/23 Пнд 20:35:22 2715798 222
>>2715796
Не нужные - иди мимо. А людям нужно.
Аноним 29/05/23 Пнд 22:06:49 2715852 223
>>2715786
Изучай что интересно, но только не веб формы. Так ты быстрее чему-то научишься. Вон блазор поковыряй. Текущий фронтир дотнета в вебе.
Аноним 29/05/23 Пнд 22:32:47 2715859 224
>>2715852
Мне безумно нравится изучать сишарп особенно после javascript. Я планировал изучить и blazor и mvc и микросервисы и алгоритмы на шарпе и azure.
Но мне необходимо набрать минимальный набор знаний чтобы начать искать работу. Вот как это сделаю буду для души ковырять азур с блейзером
Аноним 29/05/23 Пнд 22:33:49 2715860 225
>>2715795
> А такая хуета для уебанов любящих пихать Raw SQL в код

А ты хочешь запихнуть этот SQL в отдельный файлик и потом подгружать его каждый раз, молить богов, чтобы юзер-долбоеб не удалил папку с ними и вспоминать как там надо параметры в запросе передавать, вместо того чтобы просто видеть это?
Или что? Я не понял.
Аноним 29/05/23 Пнд 23:06:47 2715879 226
Можно ли обходиться одним .Net sdk, или обязательно качать вижлу для работы с шарком?
Аноним 29/05/23 Пнд 23:45:31 2715889 227
>>2715879
Можно. Кто ж тебе запретит.

Вообще. Ты можешь так-то вообще одним MSBuild и csc обходиться, если так уж хочется.

Блин. Как я по моно скучаю. Да, была кривой-косой, но мне так нравилось что был выбор. Хочу чтоб кто-то взял и сделал нормальную вендор-фри реализацию шарпов.
Аноним 30/05/23 Втр 00:08:51 2715908 228
>>2715860
Не быть уебаном использующим raw SQL в коде вообще. Очевидно же.
Аноним 30/05/23 Втр 00:53:09 2715922 229
>>2715860
> запихнуть этот SQL в отдельный файлик
Можно же заэмбеддить ресурсы.
> молить богов, чтобы юзер-долбоеб не удалил папку с ними
А если он удалит DLL-ки? А если он удалит рантайм дотнета? А если он удалит операционную систему???
> вспоминать как там надо параметры в запросе передавать
Один раз пишешь DAO с заполнением всех параметров и дальше тупо вызываешь везде методы оттуда. Проблема непонятна.
Аноним 30/05/23 Втр 01:22:43 2715931 230
>>2715922
>Можно же заэмбеддить ресурсы.
А можно этого не делать, а иметь запрос прямо "на месте", потому что от запихивания запроса в ресурсы пользы нет, а править ресурсы морока.
К тому же ресурс это....ресурс. А sql запрос не совсем ресурс.
Делаем фичу, меняем sql запросы и эти изменения в истории контроля версий логически связаны, то есть относятся к правильным файлам, а не "отдельный словарь sql запросов, хер пойми где и как он с чем логически связан (ведь сам файл DAO не изменился)" (а уж мерж этого файла - отдельное удовольствие).

Потому и пихали в ресурс не потому что нужно, а потому что не было возможности нормально вписать это в коде.
Аноним 30/05/23 Втр 01:25:49 2715932 231
>>2715908
Аргументы кроме ЯСКОЗАЛ будут? Или ты думаешь, что те, кто использует dapper не осилили EF или что то другое )
Аноним 30/05/23 Втр 03:41:52 2715947 232
>>2715795
Боюсь спросить, а как ты сырые json'ы описывал.
Вещь очень нужная, я тоже не пойму почему только сейчас завезли (на самом деле думал что такое подобное уже есть)
Аноним 30/05/23 Втр 03:45:08 2715948 233
Аноним 30/05/23 Втр 09:24:15 2716050 234
>>2715932
Аргументы, в том, что твой софт становится неподдерживаемым куском говна.
>>2715947
Ну бля, в json файлах наверное, не? За каким бы хером мне json-ы в код то пихать? Ты может еще и xml в код в виде строк предложишь засунуть?
Аноним 30/05/23 Втр 13:03:40 2716264 235
>>2716050
>Аргументы, в том, что твой софт становится неподдерживаемым куском говна.
скажи это разрабам стековерфлоу, а то они придумали dapper и не знают что их продукт нельзя поддерживать )))
Аноним 30/05/23 Втр 16:23:12 2716533 236
>>2716264
Любимый аргумент говнокодеров. "А вот в MIcrosoft/Google/Stackoverflow так делают, почему мне нельзя".
Потому что ты - не они. И твой говнокод точно не соответствует никаким стандартам.
Аноним 30/05/23 Втр 16:55:01 2716568 237
>>2716533
то есть у тебя аргумент вида ЯСКОЗАЛ
ясно понятно
Аноним 30/05/23 Втр 17:41:40 2716607 238
>>2714332
>>2714343
Короче сделал проще - через статическое событие в статическом же классе. Каждый объект в своем конструкторе подписывается на это событие, затем при изменении свойства selected вызывает метод статического класса, в котором уже происходит вызов события, таким образом при изменении объекта об этом уведомляются все остальные. Поясните, насколько это говнокод? Статические классы это же вроде зло и все такое.
Аноним 30/05/23 Втр 17:49:09 2716612 239
Можно как-то заигнорить Environment.FailFast? Одна блядская библиотека валит приложуху.
Аноним 30/05/23 Втр 18:18:27 2716630 240
image.png 44Кб, 648x355
648x355
image.png 2Кб, 150x105
150x105
Здравствуйте., я студентик, простите за лёгкий примитивный вопрос наверное
задание: обчислить сумму бесконечного ряда
проблема: в sum как ответ выходит знак вопроса
как фикстить?65
Аноним 30/05/23 Втр 18:24:33 2716636 241
image.png 42Кб, 937x174
937x174
Дотнетаны, есть один IIS и после оновления винды на десятку 22Н2 он меня заебал.
Бочку сделал, хуйцов соснул,права на папки у учетки appool раздал
и даже группу IIS_USRS добавил

Что еще этой мрази надо?
Аноним 30/05/23 Втр 19:17:13 2716731 242
>>2716607
абсолютный говнокод. в односелекте события вообще не нужны
в мультиселекте вьюмодель итема должна уведомить что ее выделили. И то ЕСЛИ ДОЛЖНА - вот тогда уж приходится думать "а как при ее изменении IsSelected других уведомлять". и тут уже разные варианты.
Аноним 30/05/23 Втр 19:19:55 2716734 243
>>2716731
> И то ЕСЛИ ДОЛЖНА - вот тогда уж приходится думать "а как при ее изменении IsSelected других уведомлять". и тут уже разные варианты.
Ну так чей плох мой вариант?
Аноним 30/05/23 Втр 19:24:30 2716737 244
>>2716734
ты сам ответил на свой вопрос же чем он плох
Аноним 30/05/23 Втр 19:29:06 2716742 245
>>2716737
Ну других вариантов я не вижу, разве что сделать приватное событие прямо внутри класса и вызывать его в сеттере... Хм, звучит то неплохо.
Аноним 30/05/23 Втр 19:46:57 2716759 246
>>2716630
Поставь точку останова и посмотри результат. Если результат правильный - то чет с форматом.
Аноним 30/05/23 Втр 21:42:58 2716875 247
1.png 32Кб, 823x523
823x523
2.png 47Кб, 1060x434
1060x434
>>2716636
1. Я бы написал как-то так, если бы на первом курсе учился.
2. У тебя факториал твой - всегда 0. Потому - результат либо инфинити будет.

Консолька - не умеет рисовать знак бесконечности, потому - у тебя вместо него вопросик.
Аноним 30/05/23 Втр 21:43:44 2716876 248
Блин промазал(((
Это >>2716875
Сюда >>2716630
>сумму бесконечного ряда
Аноним 31/05/23 Срд 08:25:54 2717082 249
Кто-то на WPF'e сталкивался с полным внезапным крашем приложения из-за MediaElement? Ситуация следующая - при загрузке окна в котором должно сразу загрузиться видео (локальный файл) приложение висит несколько секунд даже без черного кадра в MediaElement и затем просто отлетает. Не срабатывает вообще ничего, ни OnMediaFailed, ни try/catch в инициализаторе, ни в мейне программы. Но это еще пол беды, самая хуйня в том что оно таки периодически (как правило) работает и все нормально запускается. Видео одно и тоже (40мб, 15сек). Пытался отловить это в дебагере чтобы посмотреть вывод - все работает, запускал кучу раз, ловлю изредка эти отвалы только на релизе. Проверял на разных пеках, там тоже иногда отваливается.
Я знаю что у MediaElement под капотом Windows player, пытался смотреть ивенты системы, никаких ошибок не нашел.
Может кто подскажет как можно отловить хотя бы ошибку - что ему не нравиться? Я так понимаю что это какое-то COM исключение на стороне самого windows player'a.
Аноним 31/05/23 Срд 08:26:29 2717083 250
Кто-то на WPF'e сталкивался с полным внезапным крашем приложения из-за MediaElement? Ситуация следующая - при загрузке окна в котором должно сразу загрузиться видео (локальный файл) приложение висит несколько секунд даже без черного кадра в MediaElement и затем просто отлетает. Не срабатывает вообще ничего, ни OnMediaFailed, ни try/catch в инициализаторе, ни в мейне программы. Но это еще пол беды, самая хуйня в том что оно таки периодически (как правило) работает и все нормально запускается. Видео одно и тоже (40мб, 15сек). Пытался отловить это в дебагере чтобы посмотреть вывод - все работает, запускал кучу раз, ловлю изредка эти отвалы только на релизе. Проверял на разных пеках, там тоже иногда отваливается.
Я знаю что у MediaElement под капотом Windows player, пытался смотреть ивенты системы, никаких ошибок не нашел.
Может кто подскажет как можно отловить хотя бы ошибку - что ему не нравиться? Я так понимаю что это какое-то COM исключение на стороне самого windows player'a.
В тырнете пока ничего не нашел.
Аноним 31/05/23 Срд 08:30:23 2717085 251
Планирую из-за этого говна перекатиться на vlc либу, но там зависимости 4.6.1, а я некроёб на 4 фреймворке и у меня отвалиться полтора некроёба на XPшках.
Аноним 31/05/23 Срд 09:31:57 2717116 252
>>2717082
Забей, тут одни веб макаки сидят, такие вопросы даже не поймут.
Аноним 31/05/23 Срд 09:38:39 2717122 253
>>2717116
Лучше уж быть вебмакакой, чем ебаться с TREEVIEW.
Аноним 31/05/23 Срд 10:17:51 2717141 254
Аноним 31/05/23 Срд 11:30:22 2717229 255
>>2717141
>unhandledexception
Репортинг ин - нихуя. Я уже обмазал вывод в файлы ибо изначально я натыкал месседжбоксы и я подумал что может там гуишник крашится.
Энивей спасибо, я вообще за него забыл.
Аноним 31/05/23 Срд 12:33:08 2717306 256
Аноним 31/05/23 Срд 13:28:02 2717389 257
>>2716636
Тебе точно иис нужен? Есть же кестрел
БАМП!!! Аноним 31/05/23 Срд 14:48:52 2717472 258
БАМП!!!
Аноним 31/05/23 Срд 16:07:17 2717546 259
>>2717389
Мне иис нахуй не нужен, но так заведено в нашей команде где я сорт оф новенький

Оказалось надо доставить всяких фреймворков от 2 го 6го и с каким то из них всё заработало
Аноним 31/05/23 Срд 16:14:51 2717565 260
>>2717082
Ловишь appdomain unhandledexception и firstchanceexception? Вообще такое может если контрол еще не прогрузился, а его уже пытаются запустить.
Аноним 31/05/23 Срд 16:58:46 2717661 261
>>2713351
>а третья нормальная получается сама у большинства людей.
А вот за пятую уже и поговорить можно, но конечно это не для джуна

мимо-синьор-скуль-помидор
Аноним 01/06/23 Чтв 08:52:52 2718218 262
Я не понимаю, объясните. Вот вы в шапке написали, что ваш язык лучший в мире, но на хх у пхп вакансий на бэкэнд больше в два раза, чем у сишарпа. Почему так? А ещё у вас аниме в шапке, вы в курсе?
Аноним 01/06/23 Чтв 09:33:49 2718241 263
>>2718218
> Искать вакансии на ХХ в 2023м.
Ну ты понял...
Аноним 01/06/23 Чтв 09:40:42 2718244 264
>>2718218
А в джаве, питоне и жсе еще больше чем в пхп, зачем ты сюда пришел тогда?
Аноним 01/06/23 Чтв 10:19:17 2718261 265
Аноним 01/06/23 Чтв 10:47:30 2718286 266
Аноним 01/06/23 Чтв 11:08:22 2718314 267
>>2718218
Вакансии и даже общая популяность языка никак не отражает его качества, особенно в бизнес среде.

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

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

Как только ты попадешь на реальную работу ты охреенеешь от тупости людей и их приверженству как уточек к первому что они видели в жизни. Сразу появится понимание того что популярное != хорошее/лучшее.
Аноним 01/06/23 Чтв 11:20:03 2718319 268
>>2718241
>Искать вакансии на ХХ в 2023м.
А я не искал. Я лишь проанализировл уровень востребованости.

>>2718244
>А в джаве, питоне и жсе еще больше чем в пхп
Я выбираю между пхп и сишарпом. пипитон и прочии жабы с 500 откликами на вакансию меня не интересуют

>>2718314
>Вакансии и даже общая популяность языка никак не отражает его качества, особенно в бизнес среде.
Ладно. То есть ты намекаешь, что сишарп для бэка более удобен, чем пхп, но найти работу на нём тяжелее чем на пыхе?
Аноним 01/06/23 Чтв 11:25:57 2718322 269
>>2718319
А, дак ты вкатунишка. Тогда советую тебе идти нахуй, а не набрасывать на вентилятор
Аноним 01/06/23 Чтв 11:58:53 2718346 270
>>2718322
>А, дак ты вкатунишка.
Скуф, спокуха. Молодые плэйбои типа меня вас заменят, это правда, да. Но это не повод подрываться и посылать меня нахуй из треда, предназначенного для ВКАТА в сишарп.
Аноним 01/06/23 Чтв 12:15:38 2718359 271
>>2718319
>То есть ты намекаешь, что сишарп для бэка более удобен, чем пхп, но найти работу на нём тяжелее чем на пыхе?
Я не он, но отмечу что прогаю с 2005 года и весь серьезный промышелнный бекенд что я встерчал, это исключительно Java и потом C#.

Пхп говно говна. Но, объективно говоря, шарп переусложненния душная хуйня.

Аноним 01/06/23 Чтв 12:19:51 2718364 272
>>2718346
>Скуф, спокуха. Молодые плэйбои типа меня вас заменят, это правда, да.
Это конечно же неправда. Молодые плейбои сосут хуй у дедов которые знают не только мантры конкретного языка, но и обладают уникальными эсперьтизами во многих областях.

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

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

А эти умения получают исключительно с опытом.

Вот возьмем к примеру меня: 12 лет автоматизации аналитики продаж и финансовой отчетности. 2 года автоматизации анализа спутниковых снимков. Ну и немного всякого другого по мелочи.

Ну какой ты мне конкурент со своими полугодом курсов хуяндекс практимума или скилбокса? Не смеши мои седые муди

мимо-38-лвл-синьор-наносек
Аноним 01/06/23 Чтв 12:37:40 2718386 273
>>2718319
>А я не искал. Я лишь проанализировл уровень востребованости.
Хорошие компании редко выкладывают вакансии.
А отличные на 30-50 тел так вообще сами ищут когда им кто-то нужен, изредка в своем уютном бложеке публикуя инфу о том что им кто-то нужен.

>Я выбираю между пхп и сишарпом. пипитон и прочии жабы с 500 откликами на вакансию меня не интересуют
Зачем тебе программирование? Ради денег? Иди в 1С, там их больше потому что туда идут только за деньгами.
Вообще язык не особо важен, ты легко его меняешь за пару недель потому что программирование это язык лишь во вторую очередь. Вообще чистый С всему голова.

>Ладно. То есть ты намекаешь, что сишарп для бэка более удобен, чем пхп, но найти работу на нём тяжелее чем на пыхе?
Смотря где ты хочешь работу искать, в некоторых странах C# проще найти. Плюс нужно понимать чего ты хочешь, язык который использует компания это чаще всего показатель чего стоит ждать от компании в целом.
У нас вообще очень слабый рынок по ИТ в плане инновация и хорошего инструментария, в том же C# найдя работу ты будешь писать на какой-нибудь 6-7 версии и тебя по рукам за тот же сорс ген бить будут потому что команда его не знает.

А так да, C# намного лучше других языков для разработки именно из-за инструментов, это по мне самый удобный язык в плане дебага и разработки. Тут можно писать грязные дерьмовый код, а затем парой нажатий превратить в красоту где с легкой правкой сделать код еще и хорошим.
Аноним 01/06/23 Чтв 12:45:06 2718399 274
>>2718386
>А так да, C# намного лучше других языков для разработки именно из-за инструментов, это по мне самый удобный язык в плане дебага и разработки. Тут можно писать грязные дерьмовый код, а затем парой нажатий превратить в красоту где с легкой правкой сделать код еще и хорошим.

Вот этот по сути дело говорит. С# хорош своей инфраструктурой. Охуенная среда разработки, даже так, ОХУЕННАЯ. Централизованный репозиторий пакетов, где следят за качеством. Чрезвычайно душная типизация заставляет даже самую тупую макаку писать +- вменяемый код. Плюс богатые возможности по дебагу, автогенераторы всего и вся искаропки, автомапперы, охуенные "клиенты" к самым ходовым СУБД.

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

Оборотная сторона - очень мало новых проектов по крайней мере в МСК. Вот я чейчас в 2023м году сижу на легаме параше в стиле
.metCore3 и .net5 прости господи. Притом клиентами к бд у нас какие то самописные провайдеры. Вместо Entity или хотя б даппера

Тоскааааа

НО при всём при этом, ежели вкатун хочет в бек, всё остальное ЕЩЕ хуже

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

мимо-38-лвл-синьор-наносек


Аноним 01/06/23 Чтв 13:18:56 2718421 275
>>2718386
>Ради денег?
Это + возможность легкого переката за границу в случае пиздеца в экономике или принятия ещё какого-нибудь охуительного закона, разрешающему военкому выебать меня в жопу или лишить квартиры.

По этой причине
>Иди в 1С
не подходит, не говоря уже о том, что 1С - это скучная вакуумная поебень.


>>2718386
>это по мне самый удобный язык в плане дебага и разработки
>>2718399
>Чрезвычайно душная типизация заставляет даже самую тупую макаку писать +- вменяемый код
Ну понятно в прицнипе. Качество в обмен на скорость написания кода грубо говоря, соответственно и время вката тоже больше будет. Спасибо за пояснение.
Аноним 01/06/23 Чтв 14:38:08 2718499 276
>>2718399
>сижу на легаме параше в стиле
>.metCore3 и .net5 прости господи.
Чел, ты сейчас просто у кучи джавистов инфаркт вызвал, записав в легаси фреймворк которому меньше четырех лет (это если про 3.1 говорить, .net5 и того меньше).
Аноним 01/06/23 Чтв 14:47:18 2718514 277
image.png 17Кб, 574x298
574x298
>>2718499
Ну понимаешь, я в то же самое время мамкин вебдев на ангуляре, и у меня со времен вката в .net нагуляр вырос с 8 по уже 16й

В мире тайпскрипта всё такое быстрое...

Ну и чтоб ты понимал, вот одна из моих "главных админак"
Аноним 01/06/23 Чтв 14:53:30 2718519 278
>>2718218
>о на хх у пхп вакансий на бэкэнд больше в два раза
почему то вакансий на продавца в пятерочку больше чем в президенты. выходит быть президентом убого, а продавцом в пятерочке востребовано.
Аноним 01/06/23 Чтв 15:07:13 2718537 279
>>2718286
Это для социоблядей
Аноним 01/06/23 Чтв 15:42:50 2718579 280
>>2718499
>записав в легаси фреймворк которому меньше четырех лет
он правильно записал. ведь это все на деле довольно молодое

я вот смог переехать с дотнета4.8 аж только на нет6
а на нет5 не смог (ведь несмотря на циферку он умеет сильно меньше чем 4.8)
Аноним 01/06/23 Чтв 23:35:32 2719035 281
А можно как-то скопировать в буфер обмена текст с дополнительными параметрами? Я хочу чтобы в другие приложения вставлялся обычный текст, а для моего собственного были дополнительные метаданные о форматировании и прочем.
Аноним 02/06/23 Птн 02:50:14 2719109 282
Обновили авалонию до 11rc, ёбаный рот этого казино.
Обьясните, в чем может быть проблема, вьюхи отъёбывают под wsl бубунтой, под шиндовс полет нормальный. Никак не могу понять в чем причина
Аноним 02/06/23 Птн 07:10:01 2719152 283
У меня проблемы с именами.
Вот, например, ReadOnlySomeShitViewModel. Это ViewModel для ReadOnlySomeShit? Или ReadOnlyViewModel для SomeShit? И если последнее, не логичнее ли будет изменить на SomeShitReadOnlyViewModel?
Аноним 02/06/23 Птн 09:38:37 2719241 284
>>2719152
>не логичнее ли будет изменить на SomeShitReadOnlyViewModel?
Да, логичнее (но не на 100%)
Аноним 02/06/23 Птн 10:13:41 2719251 285
>>2719241
Для читаемости, логичности и понятности по моему скромному мнению было бы лучше
ViewModelOfReadOnlyShit
ReadOnlyViewModelOfShit
Но так же низзя, ViewModel должно быть суффиксом...
Аноним 02/06/23 Птн 10:18:22 2719254 286
БТВ, а что насчёт алиасов? Вот есть тип со сложно читаемым или охуенно длинным названием, или даже вообще названный так, что хуй пойми что он делает, почему бы не использовать алиасы?
using ShitROVM = PublicToiletManager.ViewModels.ReadOnlyViewModelOfShit и збс.

Но пишут, что это хуйня и использоваться должно только для коллизий.
Аноним 02/06/23 Птн 11:24:16 2719323 287
>>2719251
ReadOnly и ViewModel - указание на функционал
SomeShit - на суть
Суть > функционала

>>2719254
>Но пишут
На заборе тоже дохуя всего пишут. Но там хуи.

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

Альясы вполне можно использовать, только не такие уебанские как ты предложил.
Аноним 02/06/23 Птн 11:27:13 2719328 288
а есть какие хорошие бесплатные онлайн курсы?
типо где в левом окне инфа написана, справа прямо редактор кода

И какие книжки есть по c#?
И почему ссылки разные для десктопа, веба и т.д.? С# для каждой платформы свой что ли?
Аноним 02/06/23 Птн 11:56:03 2719364 289
Аноним 02/06/23 Птн 12:35:25 2719411 290
>>2719328
>типо где в левом окне инфа написана, справа прямо редактор кода
Боюсь имагинировать что за уровень туториалов в этой параше можно провернуть окромя хело ворлд и сортировки пузырьком. Редактор это же не хуйня из под коня, поэтому что мешает тебе пользоваться Alt+Tab для переключения между тутором и редактором? Ну или за пару тысяч купить дополнительный монитор.
В гибридах я не вижу ничего хорошего.

Единственное, что может быть интересным, это онлайн переводчик кода на шарпе в IL-код https://sharplab.io/

>И какие книжки есть по c#?
В шапке

>И почему ссылки разные для десктопа, веба и т.д.? С# для каждой платформы свой что ли?
Шарп одинаковый, но разные условия для работы, соответственно иной подход, библиотеки. Это не мешает особенности разработки веба использовать в десктопе. У меня, к примеру, так и есть.

Проще с десктопа начать т.к. веб сразу кидает тебя в омут паттернов, сервисов и прочего.
Аноним 02/06/23 Птн 12:35:36 2719412 291
>>2719328
>С# для каждой платформы свой что ли?
Да десктопный C# и веб C# (а еще есть геймдевный C#) это совсем разные языки. У них очень давняя и глубокая история вражды. Может быть когда-то и была надежда, что они станут чем-то одним, но она давно уже утеряна.
Аноним 02/06/23 Птн 13:07:07 2719440 292
>>2719411
я просто решил вкатиться в гейдев( и не в юнити)
поэтому и надо шарп учить.
Аноним 02/06/23 Птн 13:07:36 2719442 293
>>2719412
>Да десктопный C# и веб C# (а еще есть геймдевный C#) это совсем разные языки

И в чем разница?
Аноним 02/06/23 Птн 13:08:57 2719444 294
Аноним 02/06/23 Птн 15:07:59 2719563 295
SDK x64 или АMR ставить? Какая разница в них?
Аноним 02/06/23 Птн 15:09:26 2719564 296
>>2719563
такая же какая между процессорами х64 и arm
Аноним 02/06/23 Птн 15:19:52 2719577 297
>>2719563
Ставь оба, вдруг ты процессор решишь поменять
Аноним 02/06/23 Птн 15:48:26 2719617 298
Нулёвый студент с горящим проектом просит помощи.
Есть свёрстанный сайт на реакт который работает на локалхосте с портом 3000 и слушает asp.net web api на порте 5000, но на самом деле нихуя он не слушает, хотя всё подключено(как мне кажется).
как сделать так шоб всё работала?
Я полный ньюфаг, и только начал вникать, воот.
Скрины кода могу показать, но я не буду ничего лить сюда, пушо не ебу что может пригодиться
Аноним 02/06/23 Птн 15:48:45 2719618 299
>>2719577
вот только смена процессора вызовет необходимость переустановки всей винды, но твой совет верный )
Аноним 02/06/23 Птн 16:42:41 2719673 300
Как телеметрию отключить? Через cmd?
DOTNET_CLI_TELEMETRY_OPTOUT

Нашел что надо писать "setx DOTNET_CLI_TELEMETRY_OPTOUT 1"

На сайте другео написано.
А еще написано - закрой установщик и запустите его снова.
И что дальше? Выбрать "восстановить"?
Аноним 02/06/23 Птн 18:19:54 2719797 301
Как в visual studio code запустить дебагер?
пишет nable to generate assets to build and debug. OmniSharp server is not running.
Аноним 03/06/23 Суб 01:14:31 2720140 302
.jpg 156Кб, 1920x1080
1920x1080
.jpg 113Кб, 1920x628
1920x628
>>2719797
У тебя установлены приблуды для работы с дотнетом в вскоде?
Просто сейчас - буквально что нужно - это нажать кнопку AddConfiguration и выбрать .net
А дальше - через f5 запустить.
Аноним 03/06/23 Суб 02:33:19 2720162 303
image.png 51Кб, 488x209
488x209
>>2720140
Консольный текстовый треш в графическом приложении.
Аноним 03/06/23 Суб 10:26:39 2720271 304
>>2720140
я устанавливал только с# расширение от микрософта
Аноним 03/06/23 Суб 10:49:31 2720280 305
vsgovno.jpg 330Кб, 1285x951
1285x951
>>2720140
Нихуя не понимаю.
что надо сделать-то?

Пиздец. Нет нормальных редакторов для C# каких где ебаться не надо так?
Аноним 03/06/23 Суб 11:40:00 2720306 306
>>2720280
А у тебя проект-то создан? Код - открыт в той же папке где солюшн/проект?
Аноним 03/06/23 Суб 12:01:51 2720316 307
Аноним 03/06/23 Суб 12:11:26 2720323 308
16840152071390.png 104Кб, 2084x484
2084x484
Screenshot 2023[...].png 1057Кб, 2114x1482
2114x1482
Аноним 03/06/23 Суб 12:20:02 2720325 309
Посаны-посаны.
А как в DDD, когда у нас богатая модель - закладывать сложную логику?

Типа вот допустим. Учебный пример. Есть две доменные сущности: Зал и Работник. Есть логика - один работник не может быть одновременно в двух залах в один день задействован.
Где это должно быть? В модели зала? В модели работника?

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

Да. Я понимаю, что в DDD надо как-бы с доменным экспертом и все такое. Но если его нет? Есть просто набор требований в духе: система должна позволять выполнять круд-операции базовые + распределять работников по залам, с озвученным выше условием.
Аноним 03/06/23 Суб 12:56:25 2720353 310
>>2720306
ААА, ПОНЯЛ
там оказывается через ком строку создавать надо было
Аноним 03/06/23 Суб 13:17:05 2720374 311
Аноним 03/06/23 Суб 15:08:37 2720483 312
>>2720280
>Нет нормальных редакторов для C# каких где ебаться не надо так?
визуал студия
райдер

ты сам выбрал каку
Аноним 03/06/23 Суб 19:01:03 2720743 313
>>2720325
>Есть две доменные сущности: Зал и Работник. Есть логика - один работник не может быть одновременно в двух залах в один день задействован.
Сдается мне что тут должна быть какая-то третья сущность (например "Рабочая смена" или что-то подобная), которая уже и будет содержать связывающую их логику.
>>2720325
>Я понимаю, что в DDD надо как-бы с доменным экспертом и все такое. Но если его нет?
Тогда лучше не использовать ДДД. Если у тебя нет нормального ТЗ где расписаны все связи, условия консистентности моделей и т.д., то ты просто размажешь всю логику в доменном слое и охуеешь при первом же рефакторинге или изменении чего-либо.
Аноним 03/06/23 Суб 20:18:32 2720812 314
у меня есть вот такая вот строка, которая парсится с html страницы
https://pastebin.com/bXc0i6M8
Как ее в шарпе можно нормально запарсить?
Аноним 04/06/23 Вск 00:23:09 2720962 315
>>2720812
Раз принёс жс код то вот и ищи парсеры жса под шарпы. Но я думаю вряд ли ты захочешь работать с ast деревом так что сразу ищи либы (есть и натив и менеджет реализация) для того что бы исполнять его
Аноним 04/06/23 Вск 01:23:09 2720981 316
>>2720812
начни с банального парсинга жсон
>>2720962
>вряд ли ты захочешь работать с ast деревом
в данном случае даже ручной парсер пишется легко
Аноним 04/06/23 Вск 19:11:24 2721422 317
Изучаю сишарп для веба. На реддите пишут что вместо asp.net изучать .net core. Я запутался в этом зоопарке если честно. Что в итоге изучать то?
Аноним 04/06/23 Вск 19:24:48 2721435 318
Аноним 04/06/23 Вск 19:38:29 2721452 319
>>2721422
>Я запутался в этом зоопарке если честно.
Добро пожаловать в мир нейминга версий продукта у майкрософта, тебя в нем ждет дохуя чудных открытий.
>>2721422
>На реддите пишут что вместо asp.net изучать .net core.
Не читай реддит, тем более для изучения чего бы то ни было вообще.

Лень расписывать, поэтому совсем кратко:
Учишь .Net6 и выше (дополнительно ознакамливаешься с .Net Core3.1) для понимания платформы и т.д.
Сверху учишь Asp.Net Core 6 и выше, конкретно для веб разработки.
Аноним 04/06/23 Вск 19:47:05 2721458 320
>>2721452
А почему именно .net 6 а не скажем 7 или 8 (если не путаю вроде недавно выкатили)
Аноним 04/06/23 Вск 20:53:26 2721539 321
>>2721422
да все там просто

были дотнеты 1.1, 2.0, 3.5, 4.0...4.8
ну и со всем этим росли EF и asp.net, винформс и WPF

в какой то момент нашлась голова решившая что кросс это хорошо и нужно рантайм кросс. Но переделать это сложно, поэтому решили писать с нуля "сразу правильно и без депрекатед говна"
А попутно "переписать с нуля всякие EF и ASP.NET". Винформс и WPF никто и не планировал делать кросс - их и не трогали.

Пояснили народу что 4.8 последний и больше развиваться не будет и ждите пока новое сделаем

Дали этому новому имя dontnet core.
Много там херни наделали, переделали, не хотели портировать разные штуки, потом портировали таки часть.

В итоге дописали до "кажись стабилизировали и юзать можно, пора делать его основным, а про 4.8 забыть"
Так этот core ожидаемо стал дотнет 5-6-7, а у сопутствующих продуктов осталось слово core (ну а куда ж без него - тогда не отличить от старого)

поэтому те, кто пишет на 4.8 фреймворке и ASP.NET - просто пишут на старье, которое решили похоронить и оно легаси со всеми вытекающими (некоторые вон и на дотнет 2 пишут, мазохисты)

И в плане "что учить" тут просто
ожидаешь ли ты что на твоей работе будут использовать старье (что кстати можно понять ибо не все можно перевести на новые рельсы) или же ты не хочешь грузить себя голову старьем которого может и не быть на твоей работе...вот и думай.
Аноним 04/06/23 Вск 21:09:50 2721555 322
>>2721539
Не хочу грузить голову старьем. Хочу учить актуальные технологии. Если на работе скажут что легаси нужно поддерживать, хорошо, я это буду делать, но пока у меня нет работы я хочу учить актуальный стек.
Аноним 04/06/23 Вск 21:34:18 2721574 323
Вопрос тупой, но всё же задам. Что от меня хотят и как это сделать?
С интерфейсами, классами и т.д. знаком.

1.Составить иерархию классов в соответствии с вариантом. Во главе иерархии классов одолжен находиться интерфейс, которые определяет возможность создания объекта с помощью ДСЧ:
interface IRandomInit
{
void RandomInit();
}
Аноним 04/06/23 Вск 21:36:10 2721576 324
>>2721458
>А почему именно .net 6 а не скажем 7 или 8
На .net6 массово начали переходить где-то во второй половине 2022года. И до сих пор еще достаточно много проектов которые крутятся на .Net Core 3.1.
С учетом того, что на 7-й .Net никто переходить не будет, а 8-й выйдет только в конце этого года, то ты его раньше конца 2024 года на реальных проектах вряд ли пощупаешь.
Т.е. учить стоит то, что актуально сейчас и будет актуально как минимум еще полтора-два года, а потом уже хватит простого ознакомления с новыми версиями.
Аноним 04/06/23 Вск 21:45:27 2721583 325
>>2721574
>Что от меня хотят и как это сделать?
А хер его знает. Выглядит как куча несвязанных слов на тему ООП.
Аноним 05/06/23 Пнд 01:21:16 2721664 326
Пасаны, помогите с блейзор васм + девекспресс отчетом.
Леплю данные в датасурс (похуй какой, взял из самого простого примера https://docs.devexpress.com/XtraReports/403671/detailed-guide-to-devexpress-reporting/reporting-api/create-reports-in-code/create-a-simple-data-bound-report) - данные не отображаются в отчете, данные которые вместо этого руками биндю к лейблам всяким - отображаются.
Сделано всё более-менее по этим двум штукам
https://supportcenter.devexpress.com/ticket/details/t988191/how-to-integrate-devexpress-blazor-reporting-to-a-blazor-wasm-hosted-app
и
https://docs.devexpress.com/XtraReports/401677/web-reporting/blazor-reporting/server/quick-start-in-blazor-reporting/create-a-blazor-reporting-application

ТЛДР - Данные по ExpressionBindings не отображаются, данные по обычным биндам а ля this.nameLabel = "pizda" отображаются
Аноним 05/06/23 Пнд 13:40:18 2722117 327
image.png 82Кб, 912x482
912x482
Привет анон. Кто знает за Bot Framework SDK , подскажи пожалуйста, как начать новый диалог из proacktive callback ? Имею вот такой код, он вызывает прописанный диалог , но после первого этапа в водопаде крашитс.
Аноним 05/06/23 Пнд 14:50:53 2722201 328
Сап, дотнетач. Вопрос больше по архитектуре, вот вы бы в каких ситуациях заюзали брокер сообщений? Делаю в своей шараге ебаной телеграм-бота с админ-панелью, через которую можно отправлять в бота сообщения, опросы и так далее. И думаю при вызове метода апи этой админки отправлять через условный RabbitMQ события, которые бот бы обрабатывал со своей стороны.

Не слишком мудрёно ли это? И если да, то какие альтернативы могут быть? Думал мб вебхук написать вручную, но будто бы это ебля тоже.
Аноним 05/06/23 Пнд 15:19:08 2722240 329
>>2722201
Вебхуки/стейт машина
Аноним 06/06/23 Втр 06:28:36 2722854 330
variables.png 23Кб, 443x381
443x381
Уважаемые погроммисты!

Поясните, пожалуйста, за локальные переменные и утечки памяти.
Вот есть поле в классе _globalVaariable, оно один раз создается и задается. Потом в цикле переиспользуется сколько надо раз.

А если в цикле (или в принципе в некоем методе, который постоянно будет вызываться) создавать через var локальную переменную, компилятор ее считает как создаваемую один раз, или он будет на каждой итерации цикла выделять память под новую локальну. переменную?

Пример прицепил.
Аноним 06/06/23 Втр 07:39:39 2722874 331
>>2722854
>утечки памяти
Забудь про эти слова. С учетом твоего уровня понимания, ты с такой проблемой столкнешься хорошо если лет через 10 и то не факт.
>>2722854
>компилятор ее считает как создаваемую один раз, или он будет на каждой итерации цикла выделять память под новую локальну. переменную
Ты (конкретно ты) не знаешь. У тебя там будет два этапа компиляции. Из C# в IL и из IL в маш.код. И на каждом этапе компилятор может сделать все что сам посчитает нужным для оптимизации. Он может разложить цикл или самостоятельно вынести переменную за скоуп, т.к. увидит, что она не меняется и т.д. Поэтому строго забей хуй на подобный умственный онанизм и изучай базу языка. Отличие типов значений от ссылочных, как ведет себя стринг, упаковка/распаковка, статика и т.д.
Аноним 06/06/23 Втр 08:30:10 2722892 332
>>2722874
>Ты (конкретно ты) не знаешь.
Да, не знаю, поэтому вопрос и задал. При всем уважении, но ты мне пыню напоминаешь, которого спросили про 2+2, а он развез говна на два абзаца. Без обид, если ты (конкретно ты) знаешь ответ на вопрос из примера, то прошу ответить, если нет, то не надо уподобляться бункерному.
Аноним 06/06/23 Втр 08:30:51 2722893 333
image.png 89Кб, 1248x494
1248x494
>>2720962
Все оказалось очень просто, эту фигню я смог спарсить как json массив через JArray.Parse и с этого момента можно было уже делать все, что хочешь.
Сперва я написал свой метод, который проходился по дереву без рекурсии, а потом понял, что нахуй это не нужно, можно тупо через linq .Descendants().Where() и select и всё, блэт.
Аноним 06/06/23 Втр 09:03:30 2722915 334
>>2722892
>то прошу ответить
Во первых тебе дали прямой ответ - это не твоего ума дело, за тебя это решает компилятор. В каждом случае он будет решать исходя из кучи разных условий о которых ты даже представления не имеешь.
Во вторых, если ты хочешь подробностей то идешь и читаешь книги вынесенные в шапку. Все это описывается в первых главах почти любой книги по шарпу. Если тебе мало - читаешь Рихтера. Если мало ставишь какой-нибудь дотпик и лезешь исследовать IL. Нахуя анону тебе объяснять то, что уже тысячу раз разжевано в интернете.
В третьих - ты пидор, раз вот так сходу съезжаешь на политику.
Аноним 06/06/23 Втр 09:14:50 2722923 335
>>2722915
Ты опять вместо прямого краткого ответа в залупу лезешь, вместо того, чтобы сказать что ты сам не знаешь или промолчать.
Аноним 06/06/23 Втр 09:16:06 2722925 336
>>2722923
>прямого краткого ответа
Иди нахуй.
Такой ответ устроит?
Аноним 06/06/23 Втр 09:21:39 2722926 337
>>2722925
Слив засчитан. Нассал тебе на пятак.
Аноним 06/06/23 Втр 11:56:44 2723049 338
Какие проекты можно в соло пилить на шарпе? Типо портфолио?
Вот при собесе на андроид разраба можно показать свои приложухи например.
Аноним 06/06/23 Втр 12:44:21 2723077 339
>>2723049
Любые? От микроконтроллеров до смузи веба.
Вопрос говна и ответ под стать
Аноним 06/06/23 Втр 13:33:07 2723152 340
>>2723077
Веб для пидоров же. Если б я хотел веб я б жс дрочил.
А по микроконтроллерво нет вакансий. Так что мимо.
Аноним 06/06/23 Втр 14:01:42 2723191 341
>>2723152
Ещё и ответ на ответ говно.
Конечно никто в проде НЕ будет писать под мк на шарпах, но это просто пет проект который можно кинуть в портфолио и показать что как минимум ты не камень. Если ты реально хочешь в это лезть то стоит уметь всего по немногу о что то хорошо т.к. задачи разные и сопосбы их решения тоже
Аноним 06/06/23 Втр 15:01:44 2723270 342
Аноним 06/06/23 Втр 15:36:57 2723335 343
>>2722854
Если по простому - там твой код на уровне IL переписывается под выполнение стековой машиной. У нее есть регистры и стек, который и выделяется для локальных переменных. На изначальный код это совсем не похоже ибо другой принцип выполнения. И для выполнения IL инструкций значения помещаются в стек, и при выполнении вытесняются.

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

Так что даже для 100 переменных и цикле размер стека может быть на 2-3 значения и ему хватит.
Аноним 06/06/23 Втр 21:14:42 2723852 344
Шарп реально хорош на линуксе, или мягкие что-то мутят?
Аноним 06/06/23 Втр 21:39:21 2723870 345
Аноним 06/06/23 Втр 21:55:11 2723887 346
>>2723852
кроме TreeView
он лютое говно. тред не даст соврать
Аноним 06/06/23 Втр 22:18:29 2723912 347
>>2723335
У стековой машины нет регистров. У регистровой машины есть регистры. Рослин компилит код в ил - стековый язык. Ил во время выполнения приложения, каждого конкретного метода, компилируется джитом в нативный код. Вот нативный код выполняется процессором на регистрах - на регистровой машине.

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

Локальными переменными можно стек переполнить. Просто находясь внутри метода, вызови этот же метод.
Аноним 06/06/23 Втр 22:21:57 2723915 348
>>2723912
>У стековой машины нет регистров.
но я так и не понял где сохранятся значения.
параметр1 грузим в стек
параметр2 грузим в стек
делаем операцию и стек опустошается
переходим к следующей операции
А где хранится результат - непонятно по коду IL
Аноним 06/06/23 Втр 22:23:57 2723920 349
Аноним 06/06/23 Втр 22:36:41 2723935 350
>>2723915
Представь себе поток - единица выполнения. Поток бежит по строчкам кода, занося в стек значения переменных и выполняя операции над над ними. Сложить два верхних значения, результат оказывается в вершине стека. Вызов функции это тоже значения в стеке - адрес возврата, значения параметров и прочие ништяки про которые шарписатм знать неположено. И так поток хуярит пока не встречает инструкцию ретурн. Одну за другой. Стек начинает сворачиваться. Значение на вершине постоянно меняется. В конце концов на вершине стека оказывается условный ноль и выполняется инструкция ретурн - метод мейн возвращает результат вызывающему коду.
Аноним 06/06/23 Втр 22:40:35 2723936 351
Image 1.png 25Кб, 537x708
537x708
>>2723935
просто там локальные помечены как .locals
что никак не говорит где оно лежит
здравый смысл говорит, что конечно в том же стеке только повыше, но я нигде не нашел где об этом было бы написано явно.
Аноним 06/06/23 Втр 23:24:15 2723960 352
>>2723936
В кадр стека. Это условный мегабайт выделенный виндой потоку под стек. Заходя в метод поток заранее выделяет под локальные переменные память. 3 инта, каждый по 4 байта. После сложения значение с вершины стека вычислений помещается в память выделенную под локальные переменные и занимает там 4 байта.

Физически в этом процессе участвует пара регистров и физическая память в оперативке.
Аноним 06/06/23 Втр 23:59:54 2723975 353
>>2723936
Нигде не сохраняет. Этот код нужен чтобы джитер мог сджитить нейтив. Вот машинный код уже где-то сохранит. Stloc.0 отправляет результат сложения из регистра в память, по конкретному адресу в кадре стека. Затем Ldloc.0 прочтет этот адрес и поместит 4 байта инта в регистр процессора.
Аноним 07/06/23 Срд 00:03:38 2723977 354
Аноним 07/06/23 Срд 01:27:37 2724004 355
>>2723977
Ты попутал разработчика на языке (шарпист)
с разработчиком языка (сишник)

Шарписту нахрен не сдались такие подробности если он сам не пишет IL код. Но даже если иногда и пишет, то проще написать код руками, потом глянуть что за IL получился и перенести.
Аноним 07/06/23 Срд 03:39:00 2724049 356
>>2723977
>Программист oneass шарит за программирование
Вот только неприятная загвоздочка, кто шарит за программирование, программ не пишет, это пиздабол-консультант который только языком мелет.
Аноним 07/06/23 Срд 09:16:19 2724124 357
>>2724049
Попробуй пунктуацию
Аноним 07/06/23 Срд 17:17:52 2724730 358
Я тут вдруг понял, что можно создать иерархию классов, где родительский класс может иметь член типа класса наследника:
public class A {
private B _b;
}

public class B : A {}

Где подобное может быть полезно?
Аноним 07/06/23 Срд 19:28:14 2724905 359
>>2724730
>Где подобное может быть полезно?
Ну, если тебе понадобиться создать иерархию классов, где родительский класс может иметь член типа класса наследника, тогда будет полезно.
Аноним 07/06/23 Срд 21:30:10 2725038 360
Всем привет.

1. Как прокачиваться, в какую сторону? Основа моего стека - .Net, а также много работал с фронтом на JS (но это не модные React/Angular, а непопулярный ExtJs), SQL. Насколько я понимаю, лучше всего стоит
1.1. Подтянуть фронт, хочу пройти курсы по Реакту
1.2. Погрузиться в Azure, эта облачная инфраструктура тесно связана с .Net

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

2. Как искать работу за рубежом? Я застрял где-то на планке 3,3 тысячи долларов в месяц. Варианты нахожу в основном среди фирм, которые перенесли деятельность из РФ, а не напрямую с западными заказчиками.
Аноним 07/06/23 Срд 22:12:13 2725110 361
>>2725038
>Как искать работу за рубежом? Я застрял где-то на планке 3,3 тысячи долларов в месяц.
Ну так дело тут не в локации, а в твоем стеке. Если ты зарубеж с ним сунешься, то еще меньше получать будешь. То что ты получаешь уровень мидла.
>>2725038
>Погрузиться в Azure, эта облачная инфраструктура тесно связана с .Net
Нахуй сейчас никому не нужно. Причем не только в РФ, но и за границей тоже. Уже после Core3.1 стало понятно, что .net прекрасно и на линуксе пашет и контейнизируется. Поэтому прокладка в виде ажура стала никому не нужна.
>>2725038
>Подтянуть фронт, хочу пройти курсы по Реакту
Это дело если хочешь фулстечить, но лучше тогда еще и TypeScript захватить.
>>2725038
>Как вообще стать хорошим, ценным специалистов?
В нынешних реалиях достаточно просто качественно рабоать, уметь исправлять и не повторять свои косяки. Ну и немного развиваться в свободное/рабочее время.
Аноним 07/06/23 Срд 22:17:04 2725119 362
.png 885Кб, 753x1063
753x1063
Смотрите какая ситуевина возникла.
Суть. Че я хочу. Есть библиотека A, есть библиотека B.
Я хочу, чтобы A - могла пользоваться B, но при этом A - про то что в B - ничего лишнего не знала. Но при этом все еще могла бы все что надо дергать.
Потому - что я придумал. Пусть у B будет интерфейс вида:
```cs
[EntryPoint] IReadOnlyDictionart<string, Delegate> Provide { get;}
```

Собственно. Вот в этом суть. Я думаю понятно. A - теперь подгрузив библиотеку - может найти там нужный атрибут, по нему - достать этот Provide и дальше - дергать как надо.

И для моих целей - подход рабочий. НО. Я решил померить разницу в скорости вызова. И меня это смутило. Вот таким вот макаром - вызов метода - в 10-100 раз медленнее. Не то чтобы критично, но меня напрягает. Такая жа срань но с дерганьем из сишных библиотек - намного быстрее работает.
Собственно, теперь мне интересно, а есть ли какие-то способы ускорить? Ну, допустим - выдернуть этот метод и пристыковать его к типу, чтобы создавать тип в рантайме, и потом уже он бы дергал эти методы будто из своего типа. Ну или что-то в таком духе. Кто-нибудь вообще такой хуйней занимался? Поясните плиз.
Аноним 07/06/23 Срд 22:18:38 2725123 363
>>2725110
>Поэтому прокладка в виде ажура стала никому не нужна.
Долбоёп! Это ты прокладка в виде долбоёба не нужен. Как будто бы у тебя свой дата-центр и своё облако с 200+ сервисами.
Аноним 07/06/23 Срд 22:19:38 2725125 364
>>2725038
>Я застрял где-то на планке 3,3 тысячи долларов в месяц
И чё те ещё надо, собака? Мало платят? На феррари не хватает? На устрицы с лимоном не хватает? На студию в москва-сити с мебелью от boca room не хватает?

>Варианты нахожу в основном среди фирм, которые перенесли деятельность из РФ
Ебать ну естественно, ажур ушёл с рынка же. Ты случайно не в анабиозе был последние 1,5 года? Хотя, обходить ограничения из России можно.

>Как вообще стать хорошим, ценным специалистов?
Работать, читать, изучать, развиваться. Ты продаёшь знания и своё время. Чем больше знаний накапливаешь, тем больше можешь предложить рынку.

>Как прокачиваться, в какую сторону?
Ажур + рякт + базы данных (nosql + реляционные бд) для начала будет норм. Ажур - это гигант сам по себе, там невъебенное количество сервисов. Ты пока их все изучишь - состаришься.
Аноним 07/06/23 Срд 22:21:32 2725132 365
Аноним 07/06/23 Срд 22:22:11 2725134 366
.jpg 144Кб, 700x778
700x778
>>2725119
Сразу поясню, почему вот такой вот охуитительный подход.
Мне нужно, чтобы библиотека A - могла пользоваться любой библиотекой, которая реализует вот этот вот простой интерфейс. Допустим, библиотека B - это плагин, который нужно будет инициализировать. Вот A - это как раз инициализатор. Он будет брать из папки 100500 библиотек B и раскидывать их по элементам меню, а то что провайдится - будет кнопочками в подменюшках.
Аноним 07/06/23 Срд 22:23:51 2725139 367
Чё, пацаны, аниме?
Аноним 07/06/23 Срд 22:28:31 2725150 368
>>2725125
>И чё те ещё надо, собака? Мало платят? На феррари не хватает? На устрицы с лимоном не хватает? На студию в москва-сити с мебелью от boca room не хватает?
В Тбилиси с женой и дочкой - впритык.

>>2725125
>Ебать ну естественно, ажур ушёл с рынка же. Ты случайно не в анабиозе был последние 1,5 года?
Я не в РФ сейчас.

>>2725125
>Ажур + рякт + базы данных (nosql + реляционные бд) для начала будет норм.
Да, вот об этом я и думаю сейчас. Ажур уже пользую понемногу, но в основном только их пайплайны.
Аноним 08/06/23 Чтв 11:57:13 2725582 369
Аноним 08/06/23 Чтв 12:40:46 2725655 370
>>2725110
>Ну так дело тут не в локации, а в твоем стеке. Если ты зарубеж с ним сунешься, то еще меньше получать будешь. То что ты получаешь уровень мидла.
ты клонишь в сторону неактуальности и невостребованности дотнет стека? или что
Аноним 08/06/23 Чтв 16:00:50 2726063 371
2023-06-0815-59[...].png 19Кб, 778x454
778x454
Почему когда я загружаю изображение с диска, то мне доступны метаданные, а когда с URI из интернета абсолютно то же изображение при получении метаданных возвращает null?

Ссылка на код
https://pastebin.com/2QYsJTuj

Ссылка на изображение
https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/306b9cad-4137-455e-94b2-f57cce570a00/width=450/21950.jpeg
Аноним 08/06/23 Чтв 16:27:55 2726107 372
>>2726063
А ты уверен что твой BitmapFrame. Create сразу начинает грузить ссылку чтобы от него на следующей строке метаданные требовать?
Аноним 08/06/23 Чтв 16:36:56 2726131 373
>>2726107
Точняк.
.IsDownloading = true

А чего он ведет себя как асинхронный метод?
Аноним 08/06/23 Чтв 16:49:15 2726141 374
>>2726131
видимо для использования в Image. Это ж часть WPF. Если каждый Image будет блокировать UI, будет атата
Аноним 08/06/23 Чтв 19:06:59 2726291 375
2023-06-0818-49[...].png 29Кб, 731x686
731x686
>>2726141
Не могу разобраться. Мне надо оторазить изображение и метаданные.

Чтобы добавить изображение в Image.Source, я использую BitmapImage. Но у этого типа, свойство Metadata официально не поддерживается — возвращает NotSupportedException
https://learn.microsoft.com/ru-ru/dotnet/api/system.windows.media.imaging.bitmapimage.metadata

Чтобы получить метаданные, я должен использовать тип BitmapFrame. Но вместе BitmapFrame и BitmapImage мне не удалось подружить, хоть оба являются наследниками ImageSource.

А теперь мой код (скрин или по ссылке https://pastebin.com/78mshqEk )
Код условно можно поделить на два блока: сначала создается BitmapImage, который загружает и отображает картинку, затем BitmapFrame, который ТОЖЕ загружает картинку и отображает метаданные. Т.е. я дважды обращаюсь к серверу.

На SO пишут, что раз оба типа являются наследниками одного и того же, то можно создать BitmapFrame, а потом присвоить UI-элементу в качестве источника Image.Source = BitmapFrame. Но у меня ничего не происходит.

Я пытался создать экземпляр BitmapFrame на основе BitmapImage, но тогда у меня не выводится метаданные.
Аноним 08/06/23 Чтв 19:27:04 2726308 376
>>2726291
ты можешь загрузить картинку в MemoryStream (не забывая про его ущербность) и потом получать метаданные 100500 способами.

также ты можешь подписаться на окончание загрузки в BitmapFrame и соответственно обновить данные на UI

преврати DownloadCompleted в await и получишь то, что тебе нужно.
у тебя все равно async void
Аноним 08/06/23 Чтв 19:37:34 2726323 377
>>2726291
ну или не превращай в await (тебе async не особ и нужен же), а напрямую подписывайся на события
Аноним 08/06/23 Чтв 19:39:16 2726327 378
>>2726308
>преврати DownloadCompleted в await и получишь то, что тебе нужно.
Это как? Это же событие.

Алсоу через декодер (у которого есть событие DownloadCompleted) геморно, как и скачивать изображение на диск — надо определять формат изображения, чтобы создать нужный декодер.
Аноним 08/06/23 Чтв 19:40:37 2726331 379
>>2726327
... но через декодер удалось получить и изображение и метаданные.
Аноним 08/06/23 Чтв 19:48:00 2726338 380
>>2726327
>Это как? Это же событие.
событие переводится в Task
в общих чертах создаешь хендлер в котором TaskCompletionSource и по окончанию события он SetResult
https://stackoverflow.com/questions/22783741/a-reusable-pattern-to-convert-event-into-task

Но поскольку там 2 события, то лучше метод расширение
https://stackoverflow.com/questions/46709382/async-load-bitmapimage-in-c-sharp
там смотри в конце реализацию GetNewImageAsync
реализации через MemoryStream просто лишнюю память выделят почем зря.

правда меня смущает подписка
if (bitmap.IsDownloading)
{
bitmap.DownloadCompleted += (s, e) => tcs.SetResult(bitmap);

тут точно не будет состояние гонки? это нужно смотреть на исходники класса


Но это если тебе очень хочется "хочу красивый async/await, а не вот эти ваши события фууу"

>DownloadCompleted) геморно, как и скачивать изображение на диск
вообще не знаю о чем ты
первое = декодер с внутри него стрим и он уже декодировал
второе - стрим (и зачем на диск если в память) и можно декодировать чем угодно, что принимает стрим.
Аноним 08/06/23 Чтв 19:58:14 2726348 381
>>2726338
>первое = декодер с внутри него стрим и он уже декодировал

Есть JpegBitmapDecoder
Есть PngBitmapDecoder
Есть еще куча.

Т.е. я должен смотреть что я загружаю и использовать нужный декодер.
Кроме того я сейчас проверил, с некоторыми изображениями проблемы с кодировкой. В моем старом варианте я мог загрузить изображение и отобразить его, но при взятии метаданных выскакивало исключение. Если же я загружаю через декодер, то на его создании выскакивает исключение:
System.IO.FileFormatException: Кодек не может использовать указанный тип идентификатора URI.

Ща еще поковыряю.
Аноним 08/06/23 Чтв 20:06:34 2726358 382
>>2726348
Можно просто заюзать BitmapDecoder, но с опцией BitmapCacheOption.Default.
У меня BitmapCacheOption.OnLoad стоял.


>событие переводится в Task
А какой в этом смысл, если можно через цикл авейт ожидать?
Аноним 08/06/23 Чтв 20:13:41 2726369 383
>>2726358
ага вижу

BitmapMetadata is not available on BitmapImage.

дичь какая то.

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

>если можно через цикл авейт ожидать?
А ты когда ждешь курьера постоянно выбегаешь на улицу глянуть не пришел ли курьер или занимаешься своими делами и тупо ждешь звонка? )
это риторический вопрос.
Аноним 08/06/23 Чтв 22:21:02 2726467 384
2023-06-0822-16[...].png 29Кб, 779x159
779x159
>>2726369
Как такое возможно? Простите за бейсик

Я проверяю bitmapSource на null и экземпляр явно пуст. Но как только я хочу извлечь из него Metadata — выкидывет NullReferenceException.

Причем наплевать, что всё обернуто в TryCatch. Как такое контрить вообще?
Аноним 08/06/23 Чтв 22:22:30 2726473 385
>>2726467
>и экземпляр явно НЕ пуст *
Аноним 08/06/23 Чтв 22:37:36 2726507 386
>>2726467
ну bitmapSource не нулл, а bitmapSource.Metadata внутри себя делает NRE
что не так то?
Аноним 08/06/23 Чтв 23:02:37 2726530 387
2023-06-0822-53[...].png 36Кб, 582x722
582x722
2023-06-0822-58[...].png 8Кб, 563x169
563x169
>>2726507
>то не так то?
Как этому противостоять? Оно плюет на TryCatch.

Если из интернета пытается загрузить каку-то залупу, типа этого
https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/6046154e-6d32-4500-8772-602edb4a4600/width=96/JustMaier.jpeg

... то приложение падает. Ну можно на старте подписатсья на отлов необрабатываемых исключений, но как еще можно этого избежать?
Аноним 08/06/23 Чтв 23:15:23 2726543 388
>>2726530
если ты можешь получить его в UnhandledExceptions значит не плюет, а ты что то делаешь не так.
Аноним 08/06/23 Чтв 23:25:09 2726548 389
>>2726543
>если ты можешь получить его в UnhandledExceptions
Откуда мне знать? Я предполагаю.

У меня студия ругается, как будто там нет TryCatch.
А еще я скачал этот файл и попытался открыть с диска и TryCatch отработал как надо. Ошибка возникает только при загрузке с сервера. Метод работает тот же самый, только URL другой.
Аноним 08/06/23 Чтв 23:40:40 2726567 390
>>2726548
Короче, я эту залупу с ожидающим циклом убрал.
В этой ситуации как раз срабатывает событие DownloadFailed и все нормально. Естественно я своей проверкой IsDownloading ничего подобного отловить не могу, ну цикл как бы прекращается и пытается обратиться к декодеру у которого полномочия как бы всё.
Аноним 09/06/23 Птн 01:26:28 2726634 391
>>2726567
Залупа эти события.
Вот есть случай, когда не возвращается ни DownloadCompleted, ни DownloadFailed. Просто тишина.

При этом статус IsDownloading = false. Оно не загружается, но и не сообщает о результате.
Событие DownloadProgress вообще бесполезное — пишет только когда достигнет 100%.
Аноним 09/06/23 Птн 01:37:06 2726637 392
>>2726634
Я поставил цикл в DownloadProgress, и там странные числа скачут.
Закачка завершилась — об этом сообщило событие DownloadCompleted, а в цикле значение процесса скачет: 84, 100, 84, 100, 100, 84.
Аноним 09/06/23 Птн 01:54:13 2726640 393
>>2726637
Да, циклом счетчик повышается, нужно это как-то спамить запросом IsDownloading, чтобы завершить цикл. Бред из чисел получается только после завершения загрузки.
Аноним 09/06/23 Птн 08:11:26 2726700 394
Хочу вкатиться в C# новичком который пару лет назад полностью выдрочил синтаксис питона но потом бросил и щас нихуя не помню. Метанита будет достаточно?
Аноним 09/06/23 Птн 10:17:18 2726771 395
Есть какие-то курсы по оптимизации и профилированию шарпов? А то чувствую что без этого до сеньора уже не дотяну
Аноним 09/06/23 Птн 11:22:46 2726828 396
>>2726700
>выдрочил синтаксис
>Метанита будет достаточно?
Достаточно для чего? Для изучения синткасиса достаточно, а для избавления от говнокодинга — нет. Если ты чет там выдрочил, то уже должен представлять что к чему.
Аноним 09/06/23 Птн 11:28:15 2726833 397
>>2726637
>>2726640
Был какой-то баг. Все таки обновление прогресса должно происходить событием, но работает все очень странно. Теперь, даже если загрузка завершена, цикл спамит стабильно значением 100.
Аноним 09/06/23 Птн 11:30:13 2726837 398
Пацы а знание синтаксиса и умение шлепать несложные круды на asp.net core достаточно чтоб начинать откликаться? Еще реакт и жс с тс знаю но не хочу в фронт.
Аноним 09/06/23 Птн 11:50:15 2726868 399
Аноним 09/06/23 Птн 16:37:25 2727209 400
Как сделать список лямбд?
Нужно пройтись по циклу и каждую лямбду
Аноним 09/06/23 Птн 16:53:55 2727253 401
Аноним 09/06/23 Птн 17:00:44 2727262 402
image.png 6Кб, 384x22
384x22
Аноним 09/06/23 Птн 17:20:06 2727326 403
>>2727262
Читай блять про делегаты.
Аноним 09/06/23 Птн 17:25:29 2727339 404
>>2727326
Соси анус бесполезная херня.
Аноним 09/06/23 Птн 17:28:11 2727344 405
Аноним 09/06/23 Птн 17:39:28 2727361 406
>>2727262
>по подробней
>бесполезная херня
Не твой личный чат гпт.
Аноним 09/06/23 Птн 19:02:58 2727507 407
>>2727344
Зачем отвечаешь если сам не знаешь?
Аноним 09/06/23 Птн 19:05:12 2727512 408
>>2727361
Нахер вы дегроды безработные тогда нужны в треде?
Аноним 09/06/23 Птн 19:15:06 2727544 409
Аноним 09/06/23 Птн 22:17:07 2727817 410
.png 35Кб, 754x517
754x517
Список лямбд. Только хуй я тебе что покажу.
Аноним 09/06/23 Птн 22:22:29 2727829 411
Аноним 09/06/23 Птн 22:37:30 2727853 412
.png 176Кб, 680x383
680x383
Аноним 09/06/23 Птн 22:59:09 2727886 413
>>2726833
ну да, работа с изображениями в WPF жесть и вообще не подразумевает экономии памяти или убрать лишние шаги

но у тебя вообще карма.
Аноним 10/06/23 Суб 00:31:44 2727999 414
>>2727817
Бесполезная пародия на chatgpt, которая не была бы унижена если бы просто промолчала. Но нет, низкая самооценка заставила высрать пост, но ума хватило на уровень ответов мейл-ру. И теперь, спустя 4 часа, униженный продолжает позорится и высерая подобие шутки.
Ты жалок.

То что в шарпе анонимные функции сделаны через одно место, через делегаты, как раз нормальный новичковый вопрос, потому что не сразу понятно как этот костыль натягивается на шаблоны.
Аноним 10/06/23 Суб 01:07:56 2728014 415
.png 123Кб, 320x320
320x320
Аноним 10/06/23 Суб 11:15:23 2728108 416
>>2728014
Как боевая картинка должна компенсировать то чувство ничтожности у тебя внутри? Ведь анон, ты реально спустя 4 часа не отбомбил я реально уже забыл что тебя обоссал и высрал говно шутку, пытаясь компенсировать свою жалкость?
Аноним 11/06/23 Вск 00:23:38 2729000 417
Аноним 11/06/23 Вск 00:35:48 2729011 418
>>2729000
Проснулся, опять аниму свою всю ночь смотрел?
Аноним 11/06/23 Вск 00:46:03 2729015 419
1686433562941.jpg 456Кб, 1080x2340
1080x2340
>>2729011
Шизик, не умеющий создавать коллекции, успокойся
Тебе уже двое на лицо пописали
Аноним 11/06/23 Вск 11:31:56 2729162 420
15822835631.696[...].jpg 298Кб, 696x696
696x696
Раз уж зашла речь про методы как объекты.

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

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

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

Так что и лямды и анонимные "функции" это простые методы по своей сути, реализованные на автоматически сгенерированном компилятором классе. Никакой магии. Обыкновенное наебалово (без негатива).

И делегаты в свою очередь ничего не знают ни про какие функции или лямды. Они просто хранят в себе пару полей: ссылку на объект и название метода (его индекс кажется). То есть откуда вызвать и что вызвать.

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

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

Все вышесказанное касается любителей линка. Ведь предикат это та же самая лямбдочка, которая превращается в полноценный объект с участием оператора new, уборкой мусора и прочими ништяками.
Аноним 11/06/23 Вск 12:36:52 2729188 421
Здрасти. Я устроился на работу в backend на C# почти месяц назад и чувствую, что мне не хватает структурированных знаний о C# и ASP.NET. Одна из последних проблем, связанных с этим, - я не был уверен, как переменные передаются в функции по значению или по ссылке. И я подумал, что это работает как в C++ - по значению.

Порекомендуйте книгу или какой-нибудь другой источник (я предпочитаю читать), чтобы улучшить свои знания в C# и ASP.NET
Аноним 11/06/23 Вск 12:46:33 2729196 422
>>2729188
По значению, разумеется. То есть аргументы всегда копируются в фрейм вызываемого метода. Просто иногда значение это ссылка на объект в куче.

Из очевидного прочитай Рихтера "CLR via C#".
Аноним 11/06/23 Вск 15:09:12 2729311 423
>>2729015
На анонимном форуме очень трудно сделать независимые посты. Обоссали вы себя сами, ибо сами срете там где едите, токсики анимешные.
Аноним 11/06/23 Вск 15:37:52 2729348 424
>>2729311
Анимешные токсики хотя бы умеют создавать коллекции
Брысь отсюда, тупень, брысь
Аноним 11/06/23 Вск 16:43:49 2729416 425
Пишу десктопный клиент для бур, встал вопрос загрузки информации о тегах. Если делать это по одному то получается жутко медленно, для каждого тега приходится отправлять отдельный запрос, потом читать, парсить, занимает это около 0.5 секунд. Потому принял решение при первом запуске программы скачивать информацию о всех тегах, их около миллиона, парсить и заносить в бд, в дальнейшем обращаясь уже к ней, а не к веб сервису. Если же тега в бд не окажется, то тогда уже буду отправлять запрос и заносить новый тег в бд.
Правильное решение, или есть варианты получше?
Аноним 11/06/23 Вск 16:54:40 2729421 426
>>2729416
И единственный способ обновить информацию о тегах - переустановить программу?
Аноним 11/06/23 Вск 17:26:50 2729462 427
>>2729416
> Пишу десктопный клиент для бур
Нахуя?
Аноним 11/06/23 Вск 17:30:44 2729471 428
>>2729462
Во первых хочу пощупать авалонию, во вторых как мне кажется это сама по себе интересная задачка. Тут и веб, и база данных, и работа с изображениями, много всего короче.
Аноним 11/06/23 Вск 18:17:32 2729522 429
>>2729471
К слову, я правильно понимаю, что десктопных приложений нет других вариантов для базы данных кроме sqlite ну и litedb, если нужна nosql?
Аноним 11/06/23 Вск 20:44:54 2729636 430
>>2729522
Да используй что угодно
Выбор узкий если нужно ембедед
Аноним 11/06/23 Вск 21:31:55 2729731 431
>>2729522
Можешь жсоны в файликах хранить.
Аноним 12/06/23 Пнд 05:19:51 2730030 432
>>2729731
да. только сам реализуй атомарность, целостность, индексы, поиск. ерунда же.
Аноним 12/06/23 Пнд 14:32:53 2730289 433
Аноним 12/06/23 Пнд 15:20:43 2730310 434
Аноним 12/06/23 Пнд 19:29:55 2730549 435
>>2730289
Не надо добавлять, а то нейрошизики будут здесь всё время спрашивать про эту либу и ежедневно срать постами про ChatGPT.
Аноним 12/06/23 Пнд 20:07:46 2730580 436
>>2730549
Не будут. У них свой загон сделали. Хочу, чтобы анончики вкатывались в нейросетки на шарпе и можно было бы здесь обсуждать всякие технические вопросы.
Аноним 12/06/23 Пнд 20:31:19 2730608 437
>>2730580
Может организуешь небольшой ликбез? На сколько я понял из всей этой движухой что, чтобы учить нужно владеть библиотечками, которые нативные на питоне. А весь ml net это обертка над ними.
Аноним 12/06/23 Пнд 21:07:01 2730647 438
>>2730608
Нет. Прямая обёртка это: https://github.com/SciSharp/TensorFlow.NET , а ML.NET полноценный фреймворк нейросеток на шарпе. Опционально он может использовать модели TensorFlow.
Аноним 12/06/23 Пнд 22:57:26 2730794 439
ну все таки нейросетить проще на питоне в силу динамичности языка. А использовать уже хоть в том же шарпе через onnx
Аноним 13/06/23 Втр 21:35:28 2731995 440
А есть ултимативная книга по C#, которая включает глубину Рихтера и последние фичи языка?

Десять лет уже профессионально программирую на шарпе, надо и основы перечитать, и с последними фичами подробнее познакомиться.
Аноним 13/06/23 Втр 21:41:47 2732008 441
>>2731995
Кокоса Управление памятью. Но там без фитч.
Аноним 14/06/23 Срд 02:11:34 2732273 442
>>2731995
Вообще, раньше были Албахари Джозеф и Бен со своими справочниками полным и кратким, где все очень хорошо описывалось. Полный - если нужно вдумчиво разобраться, краткий - если просто освежить. По факту это был MSDN на бумаге, человеческим языком. Но они остановились на C#9.
Есть еще книжка "C#10 in a nutshell" от одного Джозефа Албахари. Но я ее не читал, поэтому рекомендовать не буду, но вроде отзывы неплохие.
Аноним 14/06/23 Срд 02:12:24 2732274 443
>>2731995
Албахари, правда без "глубины Рихтера". Собственно после него вряд ли кто-то что-то подобное писал.
Аноним 14/06/23 Срд 11:10:32 2732449 444
Есть два проекта, можно как-то "слить" их в одно целое, но не физически, а чтобы проект В наследовал проект А? Хочу, чтобы обращаясь к проекту В я видел неймспейсы проекта А.
Аноним 14/06/23 Срд 21:02:25 2733212 445
Посоветуйте идейку для пет прожекта на asp.net, шо можно написать, чтобы показать, что в asp.net я не полное дно, у меня есть идейки, но все связано лишь с десериализацией жсона кастомной через utf8jsonreader, кстати, заебись штука, даже у меня получилось в 30 раз меньше памяти выделять с ним, чем с newtonsoft, подумываю написать какую-нибудь обертку, которая позволила бы с ним работать делая код более читаемым, оверхеада добавит, конечно, от вызова методов, но там мож jit справится и будет сам инлайнить методы, ну и все, конечно, для нестандартных кейсов.
Аноним 14/06/23 Срд 21:15:06 2733235 446
>>2733212
> utf8jsonreader
Он же и так в свежих аспах по дефолту. Что бы вернуть ньютон нужно специально пакет подсосать
Аноним 14/06/23 Срд 21:56:01 2733284 447
>>2733212
1) Электронная очередь. Учитывая все ньюансы. От выдачи номера, до распределения к кому из операторов клиент попадет на обработку, с учетом того, что задачи у посетителей могут быть разные и что у операторов тоже разная области ответственности. И все должно идти ровно и без долгих простоев. Если делать по честному от и до, то сможешь проработать дохуя ньюансов, о которых не стыдно будет рассказать.
2) Роутинг электронных сообщений. Это когда в какой-нибудь каталог на диске или сетевую шару постоянным потокам сыпятся xml-ки в охуительных объемах и их нужно оперативно оттуда разбирать, обрабатывать согласно бизнес-процессу и передавать дальше, попутно сохраняя нужную инфу в БД и выкидывая нужные ссобщения. Тут тоже дохуя приколов от многопотока, до разбора ЭС и т.д. И как бы тупо это не звучало, но это до сих пор стандарт и куча B2B взаимодействия происходит в таком виде (да-да никаких очередей вам сучечки). Поэтому нужно не просто уметь делать такие вещи, а делать их быстро и эффективно. Вплоть до того, что тебе тупо могут дать xml-ну на несколько тысяч строк и без всяких спеков и xsd схем и ты должен уметь ее разобрать и встроить это в существующий БП.
Аноним 14/06/23 Срд 22:56:11 2733321 448
>>2733235
ну я для себя ocrку делал из гугл линзы, там все просто было, кроме парсинга жсона, для этого пришлось учиться, как работать через ридер кастомно, это не asp проект был, но было весело, а еще и штука полезная
Аноним 15/06/23 Чтв 00:02:12 2733365 449
>>2733284
О, вот с xml я еще не работал серьезно.
Можно по 2-му примеру побольше инфы? А то я понятия не имею, какие там xml документы, какая бизнес логика
Аноним 15/06/23 Чтв 11:53:52 2733704 450
>>2729162
Ну это очевидно, ienumerable это отложенное вычисление и пока его используешь он будет содержать в себе все захваченные обьекты, но после использования он будет собран в последствии. Например создал лист и вернул из метода, IEnumerable вместе со всеми предикатами будет собран потому что на него никто не ссылается. А про подписки это баян, и решается простым майндсетом "убирай за собой, получил idisposable - вызови диспоуз, когда закончил работу, подписался - отпишись".
Но ты не написал про главное, захват execution context асинками, вот это реально дьявольская вещь. Потому что про те же замыкания тебе учтиво скажут анализаторы кода, а вот про эту хуету никто, насколько я знаю
Аноним 15/06/23 Чтв 12:50:16 2733765 451
>>2733704
>захват execution context асинками, вот это реально дьявольская вещь
ча?
Аноним 15/06/23 Чтв 12:57:57 2733775 452
Граждане шарпаны? Как правильно читать желтый экран смерти? Вот, допустим, там такая строчка
SomeApp.Services.SomeService.SomeMethod(int someName) +150
Что это за +150? Где именно ошибка? Это типа позиция курсора в тексте метода? 150-й символ? А откуда начинать считать? А комментарии считаются? А пустые строки?
Аноним 15/06/23 Чтв 13:32:43 2733815 453
Аноним 15/06/23 Чтв 14:00:55 2733866 454
2023-06-1513-52[...].png 15Кб, 613x112
613x112
2023-06-1513-54[...].png 14Кб, 540x158
540x158
Как дать по морде студии, чтобы она не предлагала "упростить" одну строчку из четырех, ставя бессмысленные скобки и уменьшая читабельность? По факту третья и четвертая строки не могут быть помещены в фигурные скобки (пикрил2 - предложенное студией) и почему студию не научили такую хуету предлагать для N-строк > 1.

Есть еще флоу-кодинг или как-то так, но я не знаю как это гуглить. Суть в том, что следующая строка является логическим продолжением предыдущей и в бейсике добавляется через нижний прочерк "_"
Аноним 15/06/23 Чтв 14:31:07 2733905 455
>>2733866
1. бери и не слушай студию (это даже не компилер), тебя же не бьют за непослушание
2. Это не бейсик
Аноним 15/06/23 Чтв 14:40:17 2733911 456
>>2733905
1. глаза мозолит
2. я как раз этот подход стырил с одного тутора про шарп, но забыл как он делался и как назывался.
Аноним 15/06/23 Чтв 14:44:10 2733916 457
>>2733866
>чтобы она не предлагала
Чё ты как тряпка. Не будь каблуком, не слушай свою IDE. Поступай всегда по совести. АУФ.
>>2733866
>Есть еще флоу-кодинг или как-то так, но я не знаю как это гуглить.
Экстеншены (они же методы расширения) укажут тебе путь. Это база.
Когда поймешь как они работаеют, гугли fluent синтаксис и примеры его применения. Самый банальный из которых LINQ.
Аноним 15/06/23 Чтв 15:01:10 2733928 458
Ггебята, а есть какая-нибудь возможность в уже развёрнутом приложении на старом asp mvc узнать дебаг оно или релиз?
Аноним 15/06/23 Чтв 15:12:18 2733938 459
>>2733916
>fluent синтаксис
Точняк
Аноним 15/06/23 Чтв 15:22:03 2733944 460
>>2733938
А при чем тогда были _ ?
Аноним 15/06/23 Чтв 17:03:25 2734117 461
Аноны, вам накидывают на собесах задачек как жаваскриптизёров, на знание языка в стиле:
Дан код
{ govnocode }
Что выведется в консоль?

Буду благодарен, если подкинете чего-нибудь подобного.
Хочу покормить гопоту дерьмой
Аноним 15/06/23 Чтв 18:17:48 2734217 462
2023-06-1518-15[...].png 26Кб, 779x138
779x138
>>2733944
Потому что так в бейсике
Аноним 15/06/23 Чтв 18:23:30 2734221 463
>>2733944
>>2734217
Я конечно понимаю, что "_" это инвертированная точка с запятой, т.е. сообщает что новая стркоа — это продолжение предыдущей и запись
X _
.Y _
.Z _
эквивалентна: X.Y.Z
но я чет тупанул и начал запятые расставлять или еще какую хрень.
Аноним 15/06/23 Чтв 18:56:08 2734263 464
>>2733866
Совсем зелёный что-ли?

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

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

Далее, не пиши имена методов с маленькой буквы джавадебил. И уж тем более не используй снейк_кейс шиз

Имена обработчиков событий должны начинаться с префикса "On"

Используй var или короткое объявление конструктора

В итоге твой код должен выглядеть так:

DispatcherTimer foldingUpdateTimer = new() { Interval = TimeSpan.FromSeconds(2) };
foldingUpdateTimer.Tick += OnFoldingUpdateTimerTick;
Аноним 15/06/23 Чтв 19:09:59 2734276 465
>>2734263
>Далее, не пиши имена методов с маленькой буквы джавадебил
Это не я, это чужой соурс. Мне нужен бы визуализатор кода с подсветкой синтаксиса, а методами RichTectBox WPF это сделать невозможно. Наткнулся на проект AvalonEdit, вот ковыряю палкой.

>Далее, не пиши имена методов с маленькой буквы джавадебил
А почему студия не научилась делать это сама, кстати?
Я думал "On" нужно приписывать только к методам, которые вызывают события.
Аноним 15/06/23 Чтв 20:04:46 2734340 466
>>2734276
Это да. Всегда удивляет что студия генерит обработчики с маленькой буквы.
Аноним 15/06/23 Чтв 20:27:41 2734355 467
>>2734217
Чёт я вообще не понял прикола ставить его. Визуально выделить? Ну такое.
А больше ни на что и не влияет он
Аноним 15/06/23 Чтв 20:43:25 2734368 468
>>2734340
Генерит-то она так, как называется имя твоего контрола, если ты про автоматическую подписку.

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

Это своего рода инвертированная точка с запятой. Что считаю гораздо удобнее т.к. чисто статистически визуальная строка совпадает с логической гораздо чаще, чем наоборот.
Аноним 15/06/23 Чтв 20:43:51 2734370 469
Аноним 15/06/23 Чтв 21:59:00 2734458 470
>>2734370
Каждый дрочит как хочет, главное не тащи в проекты где так не делают (нигде лично не видел такого извращения)
Аноним 15/06/23 Чтв 22:36:33 2734495 471
>>2734458
Тащить что? Это синтаксис VB.NET
По другому не получится.
Аноним 15/06/23 Чтв 22:45:00 2734500 472
>>2734495
> VB.NET
А тред целиком и полностью про шарп
Аноним 15/06/23 Чтв 23:07:26 2734516 473
>>2734368
>Генерит-то она так, как называется имя твоего контрола, если ты про автоматическую подписку.
может быть. хотя я не уверен что там имя.
но даже это тупо. Сделали бы OnmycontlNameChanged
Аноним 15/06/23 Чтв 23:26:14 2734531 474
>>2734500
Хватит хуйней страдать. Это .Net тред.
Влез, блять, неделю назад и пытается строить из себя вахтера. Здесь бейсик обсуждали еще до твоего существования ИТТ.
Аноним 15/06/23 Чтв 23:33:49 2734541 475
>>2734516
"On" я видел только в методах, вызывающих событие, типа OnPropertyChange. Возможно иначе будет путаница с обработчиками событий.
Аноним 15/06/23 Чтв 23:38:56 2734557 476
Для .NET есть только один язык - C#. Остальные даже упоминать нет смысла, на них только борщи хлебать.
Аноним 15/06/23 Чтв 23:48:28 2734577 477
Аноним 16/06/23 Птн 00:00:01 2734596 478
Аноним 16/06/23 Птн 00:09:53 2734608 479
Аноним 16/06/23 Птн 01:20:41 2734640 480
>>2734577
Это мой. Но я далеко не считаю что C# единственый язык для .net. Есть тот же F#, да даже на чистом IL можно вполне можно что-то делать.
Вот только VB - практически мертв. И размышления "вот в VB была пиздатая фича, не то что..." крайне неконструктивны. До шарпа был делфи, до него паскаль и в них тоже было много пиздатых штук. Но они ушли и остался шарп.

Бейсик не зря в свое время назвали языком плодящим калек. Он сильно ломает мышление и это мешает принятию нового. Лучшим выходом в твоем случае было бы забыть опыт на VB и попытаться осваивать новый язык (не обязательно шарп) без оглядок на него.
Аноним 16/06/23 Птн 06:58:54 2734683 481
.jpg 204Кб, 600x660
600x660
Эх. Никто на это так и не ответил >>2725134 >>2725119

Грустно.
Аноним 16/06/23 Птн 08:28:33 2734704 482
В жаба-треде говорят, что ASP после СВО подыхает. Что, мол, то самое ВСЁ наступило для вашего шарпа. Ваше мнение? Так ли это? К вам вкатываться или в жабу?
Аноним 16/06/23 Птн 08:33:44 2734707 483
>>2734704
Больше слушай джавадебилов с их языком из 2007 и убогим тулингом
Аноним 16/06/23 Птн 08:46:56 2734712 484
>>2734707
Ага братиш, тока в асп 300 вакансий на всю РФ, а в спринге 1.5к, а качество сейм
Аноним 16/06/23 Птн 09:04:04 2734717 485
>>2734712
И? Это говорит только о том, что на джаве больше легаси, что не удивительно ведь она была намного популярнее старого вендорлокнутого дотнета.
Аноним 16/06/23 Птн 09:39:21 2734737 486
>>2734640
Дельфи никуда не ушел, живет себе прекрасно как всегда, а то что быдло из него ушло, так это только в плюс. Теперь шарпоговно стало помойкой для быдла, поздравляю.
Аноним 16/06/23 Птн 10:44:25 2734793 487
>>2733765
Про асинк (tpl) написал, потому что это самое распространённое, т.к напрямую с тредами, скедулерами и т.п мало кто работает. Может видел в bcl есть ряд методов с префиксом Unsafe? Например ThreadPool.UnsafeQueueUserWorkItem или UnsafeRegister на CancellationToken, это как раз семейство методов, которые сапресят контекст и не передают его дальше. А execution context это например AsyncLocal. Поэтому когда из http реквеста дергаешь какой нибудь синглтон на поработать подумой что в него может попасть
Аноним 16/06/23 Птн 12:01:39 2734913 488
>>2734640
>Вот только VB - практически мертв.
По воле самой майкрософт, которая перестала его поддерживать.

>Он сильно ломает мышление
Чем же он ламоет? Сретеотип из 90х, когда был учебынй бейсик, а сейчас он на 90% это шарп, и многие штуки за последние годы перетекли в шарп внезапно из бейсика.
Точка с запятой это далеко не новое, а старое, причем старое еще на момент возникновения шарпа. Но МС важнее влиться в тусовочку "серьезных языков", чем не заставлять юзеров заниматься бесполезной расстановкой разделяющих знаков, которые важны только в 10% случаев.

Это статистика, против которой идти — долбоебизм и сектантство. Часто ты пишешь несколько логических строк в одной? Посчитай сам.
Аноним 16/06/23 Птн 12:19:20 2734933 489
>>2734913
>чем не заставлять юзеров заниматься бесполезной расстановкой разделяющих знаков, которые важны только в 10% случаев.
Ну-ну. Вот так и появился пайтон с одним из самых ебанутых решений в дизайне языков программирования. "А давайте отступы сделаем частью языка, а то нам скобки расставлять лень."
>>2734913
>Это статистика, против которой идти — долбоебизм и сектантство. Часто ты пишешь несколько логических строк в одной? Посчитай сам.
Ты современный промышленный код на шарпе то видел? Там полно многострочных конструкций. И гораздо лучше один раз поставить точку с запятой в конце нескольких строк, чем в каждой расставлять символы подчеркивания.
Аноним 16/06/23 Птн 13:07:59 2734980 490
glootie.png 905Кб, 1189x992
1189x992
>>2730289
А зачем? Типа петухон непривычен или деплоить модели хочется в шарпе? Или хочется по быстрому какую-нибудь хуиту обучить и сразу встроить в свое уютное приложение?
Ладно, я сам ответил на свой вопрос.
Аноним 16/06/23 Птн 13:12:20 2734989 491
>>2734933
На самом деле проблему можно решить каким нибудь расширением, которое ставит точку с запятой по нажатию Enter или Shift + Enter (в зависимости от стиля работы). Бейсик, собственно это и делает.

А пайтонисты просто долбоебы и решают то, что и так решено автодополнением. Другое дело джава скриптизеры, у которых нет четкой позиции "никогда не ставим разделитель", либо "всегда ставим разделитель". Вместо этого "хош ставь, а хош не ставь" и получается что:
x{
...
}

делает не тоже самое, что:
x
{
...
}
Аноним 16/06/23 Птн 13:31:32 2735026 492
Аноним 16/06/23 Птн 14:06:53 2735079 493
>>2735026
Наконец-то можно перекатываться.
Аноним 16/06/23 Птн 16:02:17 2735244 494
Аноним 16/06/23 Птн 17:29:38 2735396 495
Какой же с# охуенный! Сразу влюбился.
Аноним 16/06/23 Птн 18:46:56 2735487 496
.jpg 80Кб, 700x700
700x700
Вот и перекатывай вам треды.

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

Ладно. Пойду исходники смотреть.
Аноним 16/06/23 Птн 20:26:08 2735607 497
>>2735487
Создавай типы в рантайме.
Но сам твой концепт попахивает говной имхо
Аноним 16/06/23 Птн 20:26:55 2735608 498
Аноним 16/06/23 Птн 20:43:57 2735656 499
Аноним 16/06/23 Птн 21:34:19 2735737 500
>>2733704
Тейк был в том, что лямбды для предикатов это нагрузка на ГЦ. Лямбды для обработки событий это легкий способ получить утечку.

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

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

Про многопоток и асинхронщину детерминистично рассказать не смогу, поэтому пробовать пока не стану.
Аноним 16/06/23 Птн 22:23:57 2735812 501
Ребята привет. У меня созрел вопрос. Сейчас я работаю QA автоматизатором ручным никогда не занимался, да и не нравится и пришло осознание, что развиваться как тестировщик - мне не интересно, грустно и скучно. Но, на проекте автотестов используется C#, я уже около полутора лет в нем практически варюсь. В общем вопрос: Есть ли какая-то возможность перекатится в разработчика? Я выставил резюме на хх как джун C# разраб, но за 2 недели мне так никто и не написал, хотя опыт есть и в вебе (пхп, немного жс, sql) и автоматизации (C#) общий почти 3 года
Аноним 16/06/23 Птн 22:27:51 2735821 502
Аноним 16/06/23 Птн 22:32:24 2735830 503
>>2735812
Ебать, ждать у моря погоды можно годами
Аноним 16/06/23 Птн 22:40:00 2735841 504
>>2735821
>>2735830

В требованиях вакансий указывается ASP.NET с которым я никогда не работал, на такие стоит откликаться?
Аноним 16/06/23 Птн 22:44:16 2735849 505
>>2735841
Если хочешь этим заниматься, то конечно. Посмотришь на тестовые задания, разберешься что от тебя хотят.
Аноним 16/06/23 Птн 23:37:41 2735960 506
>>2735841
Откликаться то можешь, но смысла в этом будет мало пока ты его не выучишь. Только если попытаться на тоненького проскочить.
Сейчас под джуном на веб-разработку подразумевается, что ты можешь с нуля собрать хотя бы простенький веб-сервис на Asp.Net с использованием БД, какой-нибудь ORM и с хоть каким-то представлением об архитектуре (хотя бы тупо по слоям уметь разбить). Ты просто посыпешься на первых же вопросах про конвеер запросов, фильтры, лайфтаймы в DI и т.д.
Аноним 16/06/23 Птн 23:39:49 2735963 507
>>2735812
>Я выставил резюме на хх как джун C# разраб, но за 2 недели мне так никто и не написал,
А ты резюме покажи и анон скажет тебе чего ты стоишь и откликнется ли на него хоть кто-нибудь вообще.
Аноним 17/06/23 Суб 00:19:34 2735999 508
>>2734793
я знаю про захват контекста
только асинк тут причем?
захват таймером - беда ибо таймер может существовать годами даже.
захват ThreadPool так себе проблема.
а асинкам контекст нужен хотя бы для того же AsyncLocal
Аноним 17/06/23 Суб 12:48:13 2736160 509
Какая нынче средняя зп у джунов?
Аноним 17/06/23 Суб 15:20:09 2736331 510
>>2736160
С учетом инфляции в пыняномике уже 300к без рофлов
Аноним 17/06/23 Суб 16:18:25 2736415 511
Надо было наговнокодить скриптить, но решил потыкать палкой в шарп и приятно удивился, как приятен хотрелоад. Недооцененная удобная штука.
Аноним 17/06/23 Суб 17:37:40 2736570 512
Аноним 17/06/23 Суб 17:40:32 2736572 513
>>2736415
Годится только для каких-нибудь мелкоскриптов или небольших приожений, когда нужно поэкспериментировать по быстрому.
Более-менее комплексный сервис эта штука не вытягивает.
Аноним 17/06/23 Суб 17:43:16 2736575 514
>>2736415
Ну и на самом деле штука вполне оцененная. Т.к. когда майки попытались её по тихому выпилить, комьюнити нехило так взбугуртнуло и её тут же назад вернули.
Аноним 17/06/23 Суб 17:58:34 2736594 515
>>2736572
что именно или ты просто экстраполируешь.
По сути для скриптинга и надо, визуальное что подергать, гейминг. Но думаю в юнити нехера не работает))
Аноним 17/06/23 Суб 18:17:24 2736618 516
>>2736575
там вроде хотели сделать эксклюзивно для вижлы, поэтому бугурт вроде больше был за свободу, чем за фичу. Хотя хз, по мне это прям серебряная пуля вышла. Я писал что-то типа веб-тестов или даже полу-бота, надо было в глубоком вложение что-то подергать, а так бы приходилось все 100500 шагов каждый раз занова исполнят и перезапускать (ну не только вход, а еще тучу вещей). Тут даже шустрые динамические языки не помогли бы ибо тоже перезапуск нужен.
Аноним 17/06/23 Суб 18:21:32 2736622 517
>>2736618
>шустрые динамические языки
Каво?
Аноним 17/06/23 Суб 18:36:22 2736648 518
>>2736570
40к джун - это ты где видел такую зп? Просто интересно
80к - это уровень trainee, когда у тебя вообще 0 опыта и 0 скилов.
Аноним 17/06/23 Суб 18:40:15 2736654 519
image.png 8Кб, 245x188
245x188
Это Interface segregation?
Аноним 17/06/23 Суб 18:48:27 2736667 520
>>2736654
Мелкие в него уже научились? Как-то находил какую-то залупу в винформах, там надо было реализовать ебанутый интерфейс из 30 методов.
Аноним 17/06/23 Суб 19:41:31 2736712 521
Аноним 17/06/23 Суб 21:05:28 2736811 522
image.png 46Кб, 624x406
624x406
Мне вот было лень реализовывать маппинг для всех классов, и я хуйнул вот это, вы бы за такое дали леща или сломали колени?
Или может это ок, просто мне не оч нравится.
Мб через метод расширения базового класса ебануть?
Аноним 17/06/23 Суб 22:38:11 2736883 523
Поясните нубу, как сложить в уме ASP и ООП. В ASP у нас данные валяются отдельно в энтитис и дто, поведение отдельно в репозиториях (если используются), сервисах и контроллерах. Это не вяжется с инкапсуляцией и сразу нарушает Information Expert, то есть данные обрабатываются не в том же объекте. Наследование таким образом получается отдельно с данными и отдельно с поведением, что странно. Полиморфизм в основном идет через интерфейсы. В итоге получается нечто, что никак не вяжется с тем, что я изучал по ООП, где мы должны создавать классы с данными и поведением, относящимися к определенному объекту, переиспользовать код с помощью наследования и со всем этим реализовывать полиморфизм. Как это понять? ASP не реализует ООП или я чего-то не понимаю?
Аноним 17/06/23 Суб 23:11:11 2736903 524
2023-06-1722-51[...].png 2Кб, 229x101
229x101
2023-06-1722-52[...].png 2Кб, 304x97
304x97
Можно без пересоздания проекта сменить целевую платформу?
К примеру в проекте на пикрил 1 отсутствует платформа
Microsoft.Windows.Desktop.App.Wpf
А вот в проекте на пикрил 2 есть, потому что оно является библиотекой пользовательских элементов
Как это добавить в первый проект?

Мне понадобилось заюзать System.Diagnostics.PresentationTraceSources
И вдруг оказалось, что в System.Diagnostics такого класса нет (хотя должен быть). Я догадываюсь, что это из-за того, что мой проект не является библиотекой пользовательских элементов или WPF.

Но вообще удивило, что библиотека с одними и теми же неймспейсами и классами являются разными по содержанию. Я втречал отсутствие библиотеки, но чтобы такое.
Аноним 18/06/23 Вск 00:14:40 2736936 525
>>2736811
Норм. Только
1) Название метода (AdaptTo) ебанутое. Если это у тебя маппинг, то и называй MapTo
2) Проверок на null нет.
Аноним 18/06/23 Вск 00:18:00 2736937 526
Аноним 18/06/23 Вск 00:30:50 2736940 527
>>2736883
>где мы должны создавать классы с данными
А сервис это не класс с данными?

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

Для примера у тебя класс срет месседжбоксами, а тебе его надо протестировать. Ты будешь вручную закрывать всплывающие окна во время тестов? А часто тесты проводятся на машинах, к которым даже не подключен дисплей. Может оно и прикольно когда месседжбокс принадлежит какому-то окну, но в сложных приложениях это становится совершенно не прикольным.
Поэтому создают отдельный сервис конкретно для месседжбоксов, к которому классы обращаются. И когда нужно протестировать эти классы, то сервис месседжбоксов подменяют на пустышку, которая не выводит ничего. При этом сам сервис удовлетворяет ООП, почему нет?

И вариаций тысячи. Ты можешь один сервис логирования заменить на дрогой без изменения всего приложения.
Аноним 18/06/23 Вск 10:49:12 2737088 528
>>2736936
1)Это либа, Mapster
2)Мерси
Аноним 18/06/23 Вск 10:55:03 2737092 529
В объясните мне, почему студия заставляет ставить вопросики инициализации или определении КЛАССОВ? Разве не очевидно,что все классы могут быть Nullable? Я понимаю там структуры.
У меня весь код в ссаных (буквально желтого цвета) подчеркиваниях.

Пиздец бля. Только отошел от точек с запятой и тут это говно. Какой же мусор, пиздец.
Аноним 18/06/23 Вск 11:31:51 2737116 530
2023-06-1811-30[...].png 16Кб, 762x79
762x79
>>2737092
Как же у меня горит. Почему я не могу передать стринг как обжект,
Аноним 18/06/23 Вск 11:34:09 2737118 531
Аноним 18/06/23 Вск 11:39:32 2737123 532
>>2737116
Братан, купи (скачай) какой-нибудь норм учебник по последним версиям дотнета - там популярно объясняется, что такое nullable и почему за использование object наказывают раскаленной кочергой. Или просто выруби nullable в csproj, false там напиши, и ручками везде проверяй на null.
Аноним 18/06/23 Вск 11:45:39 2737127 533
>>2737123
>и почему за использование object наказывают раскаленной кочергой
Я знаю почему, но в данном случае метод записи в реестр SetValue требует object.
Аноним 18/06/23 Вск 11:49:53 2737131 534
>>2737127
>>2737123
А я не знаю, расскажите что не так с object
Аноним 18/06/23 Вск 11:57:09 2737141 535
>>2737131
Возможные аллокации. Рекомендую ознакомиться с BenchmarkDotNet
https://youtu.be/8Slzd1G7f9Q

Но на самом деле, единственное место где мне это потребовалось учитывать — это при отрисовке графики. Ну еще один челик мобилочками занимался и эму это тоже было важно.
Аноним 18/06/23 Вск 12:11:06 2737151 536
>>2737092
Шиз, если даже анализатор умирает от кринжа и включает тревогу - то ты туго срешь.

Будь я тимлидом у тебя, переключил бы nullable ворнинги на ошибки, чтобы ты, обезьяна, не смогла собрать проект, пока не уберешь на собой
Аноним 18/06/23 Вск 12:17:06 2737153 537
>>2737116
Проверь свое value с помощью string.IsNullOrWhiteSpace() и кумпилятор узбогоится.

И все нулове детерминируй с помощью проверок, инициализации в конструкторе =new() или =null!.
Аноним 18/06/23 Вск 12:21:39 2737154 538
>>2737153
Ну и разумеется этот совет не касается переменных которые могут иметь null. Такие как раз стоит помечать как налабле и проводить проверки везде где кумпилятор тебе советует.
Аноним 18/06/23 Вск 12:23:20 2737156 539
2023-06-1812-22[...].png 14Кб, 1019x56
1019x56
>>2737151
>И все нулове детерминируй с помощью проверок, инициализации в конструкторе =new() или =null!.

Это как? Сейчас мне нужно писать что-то типа пикрила. А можно как-то компактнее все делать?
Аноним 18/06/23 Вск 12:31:13 2737161 540
2023-06-1812-30[...].png 16Кб, 1150x63
1150x63
>>2737153
>>2737156
> string.IsNullOrWhiteSpace()
Да заметил, тоже заменил.
Аноним 18/06/23 Вск 12:34:43 2737164 541
>>2737156
Можно, конечно. Но зачем? Другими словами это уже вкусовщина/конвенции/выебоны. Главное чтобы работало и не ломалось.

Встроенный налл гуард про последнее.
Аноним 18/06/23 Вск 12:45:20 2737172 542
>>2737161
Фигурные скобочки можешь убрать.

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

Эксепшен этот можешь перехватить выше и попытаться получить вэлью еще раз. Если опять не получилось кидай уже там ексепшен и сообщай через него почему не все сломалось.
Аноним 18/06/23 Вск 12:52:30 2737181 543
>>2737172
> Фигурные скобочки можешь убрать.
Мы вам перезвоним.
Аноним 18/06/23 Вск 15:06:08 2737281 544
Кстати, почему когда слизали вдохновились котлиновскими нуллами, не взяли оператор !!, почему теперь ручками надо писать это:
if (vr == null) throw new NullReferenceException();
// дальнейшее использование vr без вопросиков.
Аноним 18/06/23 Вск 15:34:41 2737307 545
А такой вопрос с этими "вопросиками".

Допустим в методе я десяток раз использую экземпляр класса, и мне что - 10 раз проверять его на null перед тем как обратиться к его свойству?

Есть какие-то способы один раз проверить и дальше не проверять? Выйти из метода я не могу, есть другие действия, которые мне нужно выполнить.
Аноним 18/06/23 Вск 16:28:33 2737360 546
Кто нибудь сталкивался с системой Spell?
Как можно заставить её запоминать слова и чтобы это сохранялось в следующих проектах?
Аноним 18/06/23 Вск 17:08:35 2737396 547
2023-06-1817-06[...].png 7Кб, 433x94
433x94
>>2737151
Ну давай, поясни мне - тупому.

В первой строчке я ОЧЕВИДНО создал экземпляр.
Какого хуя студия требует, чтобы я его проверял на null?
Аноним 18/06/23 Вск 17:10:25 2737397 548
>>2737281
>>2737307
Чел, не еби себе мозг. Тебе же сказали выключи в свойствах проекта <Nullable>disable</Nullable> так все делают.
Аноним 18/06/23 Вск 17:21:03 2737406 549
>>2737396
Она требует проверять не его, а Directory. Ты бы хоть мышку навел да подсказку прочел.
Аноним 18/06/23 Вск 17:22:35 2737408 550
>>2737396
Ты прежде чем в кодинг лезть, читать научись. Тебе компилятор прямым текстом пишет CS8602 и то, что " 'Directory' may benull here"
Ставь восклицательный знак после Directiry если уверен или ебашь проверку на null;
Аноним 18/06/23 Вск 18:00:35 2737462 551
>>2737396
Тебе уже конечно обоссали пояснили, но я повторю - учи язык или будешь попускаем на работе.
Аноним 18/06/23 Вск 18:02:37 2737464 552
>>2737397
>Чел, не еби себе мозг. Тебе же сказали выключи в свойствах проекта <Nullable>disable</Nullable> так все делают.

>так все делают.

Утенок, может тебе в жаватред? Там из-за таких как ты аж целый новый язык делать пришлось.
Аноним 18/06/23 Вск 18:34:31 2737510 553
В шарпе есть что-то похожее на метод бейсиковский TryCast()? Метод либо успешно каст, либо возвращает null.
Аноним 18/06/23 Вск 18:35:37 2737514 554
>>2737510
>Метод либо производит успешно каст*
Аноним 18/06/23 Вск 18:38:59 2737518 555
>>2737462
Ты к чему эту хуету высрал, вахтер хуев? Ебать вековая мудрость. А попу мыть надо? Пиздец.
Аноним 18/06/23 Вск 18:39:54 2737522 556
Аноним 18/06/23 Вск 18:40:07 2737523 557
Аноним 18/06/23 Вск 18:49:20 2737532 558
Аноним 18/06/23 Вск 18:54:44 2737535 559
Почему чтобы прочесть результат простейшего http запроса нужно городить огороды с httpRequest, stream, streamreader?
Аноним 18/06/23 Вск 18:58:53 2737536 560
>>2737535
Напиши один раз HttpUtils.
Аноним 18/06/23 Вск 20:04:21 2737581 561
Чем GetType() отличается от typeof()?
Почему второе не всегда работает, когда речь идет о переменных?
Аноним 18/06/23 Вск 20:35:07 2737614 562
Аноним 18/06/23 Вск 21:40:07 2737694 563
изображение.png 6Кб, 270x120
270x120
>>2737092
> Разве не очевидно,что все классы могут быть Nullable?
могут, но имеют ли право?
в этом и проблема "ошибки на миллиард долларов", что не всегда имеют право.
В этом и суть анализа чтобы ты ЯВНО указал что "этим вот можно null"

ну ты выключи в настройках и по старинке лови NRE

конченная капча
Аноним 18/06/23 Вск 21:55:07 2737706 564
В мире РАБотки на .net есть что то кроме wpf, asp.net и unity?
Аноним 18/06/23 Вск 22:29:43 2737725 565
>>2737706
Пилю движок для симуляций на последнем шарпе, сидя в НИИ. Ебало?
Аноним 18/06/23 Вск 23:08:25 2737757 566
Аноним 19/06/23 Пнд 00:27:26 2737801 567
Аноним 19/06/23 Пнд 02:31:15 2737846 568
Аноним 19/06/23 Пнд 11:42:47 2737978 569
>>2736811
леща бы дал
найс обертка из-за которой вместо одного дженерик параметра надо писать два, чтобы что? убедиться что мапинг вызывается для каких-то Base типов? нахуя?
Аноним 19/06/23 Пнд 11:49:49 2737989 570
>>2737978
убери 1 дженерик и сделай
ToZalupa<TZaulpa>(this BaseShit shit) where TZaulpa : tvoikalisjopy
Аноним 19/06/23 Пнд 13:08:08 2738087 571
>>2737725
>Пилю движок для симуляций на последнем шарпе, сидя в НИИ.
Анончик из НИИ, серьезно озвучь з.п. хотя бы плюс\минус. Очень охота знать сколько сейчас можно получать в науке. Ну и какие есть перспективы роста и сколько приходится перерабатывать за текущий прайс?
Просто сам несколько лет назад продал душу бизнесу и ушел из авиа-космоса. Интересно имел бы сейчас такой же выхлоп от своих трудов.
Аноним 19/06/23 Пнд 14:43:54 2738217 572
>>2736811
эээх. а ведь есть в языке такая няшофича как explicit/implicit operator. Но нет - маптукают явно, фу.
Аноним 19/06/23 Пнд 14:56:34 2738223 573
>>2737535
Всегда тяну flurl, брат жив
Аноним 19/06/23 Пнд 16:55:46 2738417 574
Почему httprequest загружает данные медленнее, чем браузер?
Аноним 19/06/23 Пнд 18:02:43 2738501 575
>>2734933
> Вот так и появился пайтон с одним из самых ебанутых решений в дизайне языков
Ну а в рубях например нет ни проблемы отступов, ни скобок, ни точек с запятой. Кроме тех случаев, где они объективно (плюс-минус) нужны.
Аноним 19/06/23 Пнд 18:38:21 2738589 576
>>2738087
В среднем 150к, я типа мидл в местной кастовой системе. Но у нас не совсем бюджетная богодельня, мы на коммерческих заказах. Ну и прям наукой у нас занимаются только учёные в говне моченые, а я прогер в основном
Аноним 19/06/23 Пнд 18:39:53 2738594 577
>>2738087
В догонку
>сколько приходится перерабатывать за текущий прайс?
Нискока, но я сам иногда подпушиваю на выходных по удалёнке, потому шо в кайф
Аноним 20/06/23 Втр 13:04:51 2739273 578
2023-06-2012-53[...].png 26Кб, 1294x588
1294x588
Объясните мне Dependency Injection. У меня такое ощущение, что мне не хватает какой-то детали, без которой все рушится или создает гиперсложности.

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

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

Вариант 1. Интерфейс, представляющий сервис мы храним в пространстве проекта, в котором находится этот сервис.
Проблема: другим сервисам придется линковать проект, чтобы получить этот интерфейс, что по сути создаст зависимость от которой мы все так бежали. Даже если взять известные логгеры, то интерфейс ILogger у каждого свой и вот это вот хваленое "с DI мы можем один сервис с легкостью заменить другим" не работает т.к. тот же майкрософтовский ILogger это не тот ILogger что у Serilog — у них даже методы по разному называются.

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

Вариант 3. Все сервисы храним в проекте хоста сервисов. Но тогда мы создадим зацикленность т.е. ServiceA нужно линковать SreviceHosting для получения интерфейса, а SreviceHosting нужно линковать ServiceA для получения экземпляра сервиса.
Аноним 20/06/23 Втр 14:56:02 2739401 579
>>2739273
>В каком месте?
Почти всегда 2 и немножко 1
Причем по 2-му варианту у тебя даже может быть несколько таких подпроектов. Например один общий CommonContracts который шарится на все сервисы и в самих сервисах собственный подпроект Contracts.
Вариант 1 лучше делать когда реализация со своим интерфейсом представляет какой-то отдельный подключаемый модуль, который можно выкинуть в любой момент.

Вариант 3 - ебань какая-то.
Аноним 20/06/23 Втр 16:58:36 2739541 580
>>2738417
Сервер может поддерживать фичи которые юзает браузер но не юзаешь ты в коде
Аноним 20/06/23 Втр 19:01:05 2739673 581
.png 52Кб, 705x753
705x753
.png 13Кб, 524x161
524x161
Аноним 20/06/23 Втр 19:53:48 2739737 582
>>2739273
Мужик, я и сам поверхностно раньше знал IoC/DI в C#. Мне на одном собесе порекомендовали книгу. Я её купил на торрентах, прочитал и гуднайс стал понимать. Хорошая в целом книга.

Симан, Дерсен: Внедрение зависимостей на платформе .NET
Подробнее: https://www.labirint.ru/books/789121/

https://www.labirint.ru/books/789121/
Аноним 20/06/23 Втр 20:23:13 2739772 583
>>2739401
Тогда в чем смысл DI, если зависимость по сути осталась? Что мешает напрмую передать нитерфейс при инициализации?
Типа жедается это автоматом?

>>2739737
Ух ты, интересно. Спасибо!
Аноним 20/06/23 Втр 20:54:38 2739823 584
.png 16Кб, 309x545
309x545
>>2739273
> Каждый сервис должен реализовать интерфейс, а где этот интерфейс нужно хранить в моем случае? В каком месте?
CompanyName.ServiceName.Abstractions

Типичная структура примерно такая.

При чем правда DI пока не понял.
Аноним 20/06/23 Втр 20:59:49 2739827 585
>>2739823
Да. Там еще каждому сервису и солюшину целиком по папочке Core надо добавить. В ней - в рамках солюшина - то что общее-общее для всех. В папочках сервиса - то что в рамках сервиса - общее.
Аноним 20/06/23 Втр 22:25:12 2739891 586
>>2739823
А что это за хостинги под каждый проект? Как это работает?
Аноним 20/06/23 Втр 23:09:02 2739933 587
>>2739772
>Тогда в чем смысл DI, если зависимость по сути осталась?
Ответ был на вопрос "где хранить интерфейсы"
>Что мешает напрмую передать нитерфейс при инициализации?
Передавать кому? Инициализации чего?
Аноним 20/06/23 Втр 23:47:09 2739971 588
>>2739891
Просто проект в котором у тебя методы расширения, для того чтобы запихнуть в DI.
Сорт оф:
static IServiceCollection AddServiceA(this IServiceCollection services);
static IMyApplicationBuilder UseServiceA(this IMyApplicationBuilder app, ServiceASettings settings = null);

В принципе - не обязательно бы было выделять сборку под это дело отдельно, но так часто удобнее.
Аноним 21/06/23 Срд 00:01:19 2739978 589
>>2739971
Разверну мысль почему удобно.
Вот я, допустим, при разработке сервиса - хочу тесты погонять. Так - мой проект с тестами - может дефолтное окружение получить и начать гонять, а не заниматься настройкой этого дефолтного окружения.
Другой пример. Я хочу чтобы в моем сервисе - не было лишних зависимостей, ну, не нравится мне что мой сервис тянет какие-то Microsoft.Extensions.ЧтоТоТам. Хочу чтобы мой сервис - был чист от этого добра и, если мне надо - мог бы переехать с майковского DI на какой-то другой. Собственно - так я могу ограничить себя и тянуть в сам сервис только то что надо ему для работы, а вот эти вот DI, логгеры и прочее - пусть в отдельной сборкe хранятся.

Опять же - так делать не обязательно.
Аноним 21/06/23 Срд 00:06:42 2739981 590
>>2739933
>Передавать кому? Инициализации чего?
Сервис хост при инициализации сервиса передает ему экземпляры других запрашиваемых сервисов.

Зачем выдумывать DI, если можно хранить условную глобальную коллекцию сервисов и пусть сервисы сами берут оттуда нужное.

Возможно из-за того, что экземпляр сервиса создается только по запросу. Ну наверно сервис хост это просто такой удобный менеджер, который делает все сам.
Аноним 21/06/23 Срд 00:09:36 2739984 591
Аноним 21/06/23 Срд 00:32:15 2740004 592
>>2739981
>Зачем выдумывать DI, если можно хранить условную глобальную коллекцию сервисов и пусть сервисы сами берут оттуда нужное.
Вопрос из серии "Зачем нужен GC, ведь можно самому ебаться с указателями и менеджментом памяти"
>>2739978
>Хочу чтобы мой сервис - был чист от этого добра и, если мне надо - мог бы переехать с майковского DI на какой-то другой.
И как часто тебе приходится DI менять на готовом проекте и по какой причине?
Аноним 21/06/23 Срд 07:10:43 2740065 593
>>2740004
> И как часто
Не то чтобы часто. Последний раз - слезали с нинжекта на этот вот майковский.
> по какой причине?
После появления майковского DI - тот же нинжект - считай сдох.
Аноним 21/06/23 Срд 09:12:11 2740144 594
>>2740065
я тоже слезал. так то майковский самый убогий по фичам, но сидеть на 2х стульях надоело и слез с SimpleInjector на майковскую какашку.
Аноним 21/06/23 Срд 11:12:35 2740243 595
Аноним 21/06/23 Срд 12:02:20 2740335 596
>>2740065
>>2740144
Ну так я и о чем. Я о нинжекте последний раз слышал года 3...4 назад. Сейчас по моему кроме автофака и майковского уже ничего не осталось актуального. И фич второго хватает в 95% случаев.
По факту смена DI это событие уровня "перелезаем на новую версю LTS". Там либо все проходит гладко и нормально, либо есть breacking changes, которые ты никакими абстракциями и слабым связыванием не учтешь и придется по любому, что-то курочить. Поэтому в какой-то момент нужно остановится и сказать себе, что налайткожено достаточно, пора и поработать.
Аноним 22/06/23 Чтв 17:21:37 2741612 597
Win2d или Skiasharp?
Аноним 22/06/23 Чтв 17:31:11 2741622 598
Аноним 12/07/23 Срд 19:24:38 2763359 599
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов