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

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 749 108 118
C# thread #50 ЮБИЛЕЙНЫЙ /csharp/ Аноним 17/08/23 Чтв 02:53:44 2808819 1
5785nuc4g1s41.png 95Кб, 2518x1132
2518x1132
Y2RQeCmbeLZG3Q9[...].jpg 49Кб, 432x525
432x525
aAeVNLo460s.jpg 41Кб, 460x312
460x312
myewf7wm51i61.png 35Кб, 1780x1000
1780x1000
Тред лучшего языка здорового человека

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://docs.microsoft.com/ru-ru/dotnet/maui

5. С# для создания нейросетей
https://docs.microsoft.com/ru-ru/dotnet/machine-learning/

6. С# для игр
https://ru.stackoverflow.com/a/609901/422180

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

Прошлый >>2740238 (OP)
Аноним 17/08/23 Чтв 02:56:59 2808821 2
images.png 6Кб, 190x265
190x265
Так чем же шарп лучше джавы?
Аноним 17/08/23 Чтв 03:01:04 2808823 3
>>2808819 (OP)
Судя по пикам, шарп существует только для того, чтобы быть костью в горле жабы.
Аноним 17/08/23 Чтв 03:04:03 2808825 4
aBn1pA2460s (1).jpg 36Кб, 460x595
460x595
>>2808823
Напомни, за что платят индусам, пишущим на Java???
Аноним 17/08/23 Чтв 03:05:49 2808826 5
>>2808825
Я ебу? Видать, за поддержку легаси из 2005.
Аноним 17/08/23 Чтв 03:17:11 2808830 6
Почему в петушарпе решили делать антипаттерн-загрязнитель кодовой базы асинк/эвейт, а не виртуальные треды, как в джаве? Почему белые мужчины-разработчики джавы оказались умнее индусов из майкрософта?
Аноним 17/08/23 Чтв 04:20:47 2808860 7
>>2808819 (OP)
Ты, блин, из какого года эти оппики взял? Особенно второй.
Аноним 17/08/23 Чтв 04:21:33 2808861 8
>>2808830
Исключительно для того, чтобы ты мог здесь и сейчас задать этот вопрос.
Аноним 17/08/23 Чтв 10:46:42 2809049 9
изображение.png 93Кб, 1069x473
1069x473
Где это используют? Или где вы это используете?
Аноним 17/08/23 Чтв 11:31:36 2809108 10
>>2809049
В джаве такого нет, следовательно это не нужно и можно не использовать никогда.
Аноним 17/08/23 Чтв 13:19:08 2809253 11
>>2809049
>Примеры работы с cсылочными типа на стрингах.
Аноним 17/08/23 Чтв 15:46:52 2809500 12
Почему в треде шарпа первые две картинки посвящены джаве? Как и первые 3 поста
Аноним 17/08/23 Чтв 16:04:22 2809527 13
>>2809500
Гонять и насмехаться над джавой - дело богоугодное
Аноним 17/08/23 Чтв 16:20:59 2809549 14
Аноним 17/08/23 Чтв 16:22:52 2809554 15
>>2808819 (OP)
Первая картинка ложь, сисярп давно мультиплатформа и имеет открытые сурцы.
Аноним 18/08/23 Птн 01:24:14 2810111 16
Как на винде настроить вим, чтобы работать с C#?

Не понимаю, как на винде языковой сервер в виме использовать?
Как темки настроить(стандартная таки всратая)?
Как перенастроить использование команд не из cmd а из павершела?
18/08/23 Птн 01:36:41 2810117 17
Аноним 18/08/23 Птн 01:52:58 2810121 18
>>2810117
Что висуал студио? Мне лабы делать надо. Зачем мне качать 10+ гигабайт хреноты, которой я пользоваться не буду?
18/08/23 Птн 01:57:39 2810123 19
>>2810121
Будешь пользоваться при написании лаб и потом удалишь.
Аноним 18/08/23 Птн 13:31:16 2810477 20
>>2810121
Пользуйся визуал студио и не выебывайся
Аноним 18/08/23 Птн 16:30:39 2810803 21
изображение.png 11Кб, 808x57
808x57
Хмм
Аноним 18/08/23 Птн 18:47:04 2811094 22
>>2810121
Пользуйся тогда VS Code, он сотню мб весит.
Аноним 18/08/23 Птн 20:53:25 2811308 23
>>2809554
При этом C# можно компилировать в такой же нативный код, как выдаёт раст или С, используя LLVM, который давно уже прикручен к шарпам.
Аноним 18/08/23 Птн 22:06:13 2811403 24
Напердолил себе такую штуку чтобы транзакции между микросервисами гонять, обоссыте расскажите что где и почему хуйня и как улучшить:
https://dotnetfiddle.net/R2aHaC
Аноним 18/08/23 Птн 23:42:18 2811466 25
>>2810803
Нахуй ты всратые книги читаешь?
Аноним 19/08/23 Суб 00:50:34 2811502 26
>>2811466
Книга норм Джозеф Албахари. А вот перевод храмает
Аноним 19/08/23 Суб 14:00:17 2811815 27
Ну что, какой идэ то лучше? Старый модный Visual studio иди новомодный Rider?
Аноним 19/08/23 Суб 14:36:29 2811841 28
>>2811815
VS Code + dotnet CLI. Серьёзно.
Если по уши в слоях говнокода и нужен лучший дебаггер - VS.
Аноним 20/08/23 Вск 03:43:44 2812598 29
>>2811841
>CLI. Серьёзно.
Серьёзный жир, да? Я в компьютерах с 80-х, и даже тогда графика была широко в ходу. Кукарекающий за командную строку это по дефолту жирный дегенерат, не говоря уже про 2023, вообще абсурд.
Аноним 20/08/23 Вск 11:04:20 2812725 30
Почему котлин и jvm говно?
Аноним 20/08/23 Вск 19:42:47 2813151 31
>>2812598
>Я в компьютерах с 80-х,
У нас недавно одного такого опытного недавно уволили. Тоже еще во времена DOS начинал. Не смог освоить работу с линуксовым стендом в консоли по SSH.
Аноним 20/08/23 Вск 19:47:05 2813153 32
>>2813151
Надо было ему дать Telnet.
Аноним 20/08/23 Вск 20:44:41 2813205 33
>>2812598
Ебать,инфоцыгане и в лесополосу пролезлт.
Аноним 20/08/23 Вск 21:13:24 2813243 34
>>2813205
>инфоцыгане
Кстати, даже инфоцигане сейчас домохозяек обучают в консоли работать. По гиту так вообще все курсы только работе с консолью обучают.
Аноним 21/08/23 Пнд 00:47:23 2813348 35
изображение.png 68Кб, 503x244
503x244
изображение.png 83Кб, 592x350
592x350
А в чём разница, кроме того, что вариант с TryParse более громоздкий?
Аноним 21/08/23 Пнд 02:16:33 2813374 36
image.png 16Кб, 467x149
467x149
>>2813348
>А в чём разница
В том, что тебе не придется эксепшен в ебало ловить и обрабатывать его без крайней необходимости.
>>2813348
>что вариант с TryParse более громоздкий?
Смотри пик.
Аноним 21/08/23 Пнд 02:19:58 2813375 37
>>2813374
Так ведь и так и так не придётся вроде.
Аноним 21/08/23 Пнд 02:53:29 2813380 38
>>2813375
Эксепшены нужно ловить там, где ты не можешь на процес повлиять в I/O например. Зачем это делать там, где можно без них обойтись?
Плюс, очень часто бизнес логика допускает, что значение не может быть распарсено и имеет свою ветку выполнения на это. При использовании TryParse, ты получаешь четкий флаг, того как обработалось значение и можешь спокойно делать то, что нужно. А вот в случае try/catch, ты можешь знатно поебстись, т.к. тебе либо придется прописывать дополнительную логику в catch (что уже большой долбоебизм), либо прописывать этот флаг там, что тоже нифига не улучшит твой код.
Аноним 21/08/23 Пнд 18:54:30 2814136 39
>>2813380
> Эксепшены нужно ловить там, где ты не можешь на процес повлиять в I/O например.
Когда кабан орет из-за высокого процента крашей хуячишь их в каждый метод...
Аноним 21/08/23 Пнд 20:13:59 2814295 40
KurumizawaSatan[...].png 124Кб, 250x250
250x250
Снимок экрана 2[...].png 66Кб, 2191x607
2191x607
>>2808819 (OP)
Сеньоры - мудрецы, дайте знания

Вкатываюсь в it. Почему - то сильно понравился си шарп и хочу в него вкатиться.

Но проблема в том что майки 30 сентября поддержку прекращают в РФ, а я заводить трактор не собираюсь тк не знаю английского и вряд ли его в 21 выучу.

Так вот вопрос
Стоит ли выкатываться в си шарп чтобы найти работу в рф и свои мини проекты лепить?
Аноним 21/08/23 Пнд 20:14:12 2814296 41
>>2814136
И хули с ними в каждом методе делать? Обосравшись прокидывать выше? "не ну выше то точно кто то нормально захэндлит!"
Аноним 21/08/23 Пнд 20:15:16 2814298 42
>>2814295
А как на тебя должен их уход повлиять? Мсбилд в тыкву в россии превратится?
Аноним 21/08/23 Пнд 20:15:49 2814300 43
>>2809049
очевидно со значимыми типами и там где очень нужно передать по ссылке (не путать передать по ссылке и передать ссылку)
>>2809108
жавистам ничего не нужно. они говноеды.

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

ref Rgba32 pixel = ref pixelRow[x];

далее как бояре работает с объектом пиксель. А что в жаве по этому поводу? 4 отдельных переменных r g b a и таскаться с ними? В объект их нельзя - будет аллокация.

>>2809500
видимо тред перекатил жавист. (хотя может этот тред и не перекат никакой). ведь о нем не было сказано в последнем треде.

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

>>2814296
эксепшены нужно ловить там где ты знаешь что с ними делать и тебе нужно что то с ними делать.
Аноним 21/08/23 Пнд 20:18:57 2814304 44
>>2814298
>А как на тебя должен их уход повлиять?
Ну си шарп это же от микрософта и вся экосистема ( one drive, почта и т.п ) отлетит
или я не так размышляю?
Аноним 21/08/23 Пнд 20:22:02 2814309 45
>>2814300
> эксепшены нужно ловить там где ты знаешь что с ними делать и тебе нужно что то с ними делать.
Никто обратного и не доказывает. Просто пришел тут в одном место работать а там без шуток огромная гора try catch у которых в обработке одинокий throw ex;

>>2814304
Я понимаю если бы ты ажур клауду с потрохами продался, но тебе максимум что сулит из проблем это студия только с впном качаться будет.
Оракл давно уже сделали ноги с рынка и ничего джава вроде внезапно не трансформировалась в тыкву
Аноним 21/08/23 Пнд 21:49:20 2814387 46
>>2814309
>а там без шуток огромная гора try catch у которых в обработке одинокий throw ex;
Т.е. мало того что, код засрали, так и стектрейс еще на похуях проебывают.
Аноним 21/08/23 Пнд 21:53:15 2814391 47
>>2814295
>Но проблема в том что майки 30 сентября поддержку прекращают в РФ
Типа до этого тут дохуя поддержка от них была.
Просто линукс выучи и все. Ну а вдруг лицензии понадобятся, вон китайцы под боком.
Аноним 21/08/23 Пнд 23:00:53 2814428 48
16522032698470.png 996Кб, 923x1080
923x1080
>>2814295
>а я заводить трактор не собираюсь тк не знаю английского и вряд ли его в 21 выучу.
Можно подумать, будто если бы ты знал английский, то проблем завести трактор у тебя бы не было. Даже не учитывая твой возраст.
Аноним 21/08/23 Пнд 23:42:11 2814455 49
>>2814428
Ну технически зная лангуагу он мог бы флилансить на буржуинов для начала
Аноним 22/08/23 Втр 00:09:29 2814469 50
>>2814455
>для начала
Какого начала? Он писал о тракторе, дурень ты блядь. Причём здесь вообще фриланс?
Аноним 22/08/23 Втр 00:40:24 2814476 51
>>2814469
А потом начинаешь работать на одного заказчика
В итоге он тебя релоцирует.

Или работаешь на аутосорсе и тебя потом со всей командой тракторят
Ничего необычного.
Аноним 22/08/23 Втр 01:16:31 2814482 52
>>2814455
>он мог бы флилансить на буржуинов
Вкатун фрилансить в 2023-м. Ну-ну.
>Или работаешь на аутосорсе
Та же хрень. На аутсорс сейчас нанимают либо совсем прожженых милордов, либо по знакомству.
Аноним 22/08/23 Втр 10:12:06 2814629 53
>>2814476
Чувак, ты жопой читаешь? Речь шла о том, что анон не знает инглиша и на основе этого не собирается за бугор. Но даже если бы знал, то на ситуацию это бы мало повлияло.

К чему тут твои манятеории о том, как он там мог бы работать и как там могло бы быть? Это и без твоих соплей понятно, что можно работать на аутсорсе и чисто гипотетически потом переехать, хотя кому ты нахуй нужен, релокейтить тебя. Особенно пассажир из Рашки в 2023.
Аноним 22/08/23 Втр 16:48:13 2815343 54
>>2814629
>Но даже если бы знал, то на ситуацию это бы мало повлияло.
пока ты вкатун и позиционируешь себя как вкатун - да.

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

>Особенно пассажир из Рашки в 2023.
А что с ним в 23 году. Как бы много народу что уехало работать - они как бы тоже из той же страны.
Аноним 22/08/23 Втр 17:20:16 2815389 55
>>2815343
>А что с ним в 23 году.
Да нихуя. Всё нормально. Ничего не происходит. Дыши ровней.

>Как бы много народу что уехало работать - они как бы тоже из той же страны.
Мне нужно тебе объяснять, что из числа айтишников уезжали как минимум мидлы с минимум 5 летним стажем и целой кучей припасённого бабла или ты сам додумаешься?
Аноним 22/08/23 Втр 18:43:00 2815498 56
>>2815389
>Всё нормально. Ничего не происходит.
именно так.

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

А англ пусть выучит.
Аноним 22/08/23 Втр 20:16:01 2815686 57
>>2815498
>именно так.
Это был сарказм, ты хлебушек ёбаный. Война идёт, долбаёб. А все граждане рф теперь в западном мире нерукопожатные. Возится с релокейтом Ваньки никто не хочет и в 90% случаев не станет. Хотя бы потому, что есть еще тыщи Тарасов и уже приехавших Ванек- мидлов и сеньёров, да и своих спецов хватает. Усёкла, чудила?
Аноним 22/08/23 Втр 20:33:28 2815711 58
>>2815686
Продолжай в это верить. Мне то что.
Аноним 22/08/23 Втр 21:19:39 2815748 59
>>2815711
>Продолжай в это верить.
Тут не во что верить, Вася. Это можно проверить на практике. Я понимаю почему ты так не согласен. Потому, что сам хочешь съебать отсюда именно через заключение трудового договора с кабанчиком из ЕС или США. Ставлю косарь, именно для этого ты и вкатывался в ОЙти.
Аноним 23/08/23 Срд 00:00:56 2815838 60
2023-08-2223-38[...].png 17Кб, 570x148
570x148
2023-08-2223-40[...].png 1Кб, 244x80
244x80
2023-08-2223-38[...].png 1Кб, 235x38
235x38
2023-08-2223-56[...].png 10Кб, 547x165
547x165
Нашел как в Nuget настроить автоматическое копирование контента в импортирующий проект (пикрил 1). Выглядит это как линк (пикрил 2).

Но вот в чем проблема, копируется ТОЛЬКО контент т.е. всякие текстовые файлики, джейсончики и конфигурации.

А у меня словарь ресурсов с прикрепленным .cs (пикрил 3). У словаря BuildAction:Page, а у cs-файла BuildAction:Compile. Поэтому блок из пикрил 1 переделывает этот словарь ресурсов в контент, и cs-файл не видит его, сразу же становится недоступен метод Initialize(). (пикрил 4)

Можно как-то это говно обойти, или невозможно?
Аноним 23/08/23 Срд 00:34:41 2815850 61
>>2815838
вообще раньше и Fody создавал хмл файл, а потом перестал, и Nlog тоже.
А еще был пакет, не помню как называется, но там их много и каждый для одной функции расширения к LINQ. И вот оно ставилось и создавало именно cs файл с одной функцией расширением
вот как Morelinq, но он сразу много чего тащит, а там конкретно одна функция
что то типа netfx, но чет ничего не нахожу. Видимо такое больше не работает и все это удалили.
Аноним 23/08/23 Срд 00:46:24 2815853 62
Аноним 23/08/23 Срд 00:55:46 2815858 63
>>2815850
Раньше при установке можно было исполнять павершелл скрипты, с какой то версией деприкейтнули (и к лучшему)
Аноним 23/08/23 Срд 01:44:10 2815876 64
>>2815850
>>2815853
Думаю, хрен с ним, пусть будет два файла, один как Page, а другой как Content, но я не хочу это каждый раз вручную копировать. Пытался через команды, типа XCOPY воспользоваться, чтобы перед сборкой копировало само, но опять же почему-то работает только с Content-файлами. Мб словарь ресурсов и cs-файлы заняты.

Вроде лежат в одной папке, но даже если я копирую папку целиком, то копируются только файлы, помеченные как контент.
Аноним 23/08/23 Срд 01:47:18 2815877 65
2023-08-2301-44[...].png 6Кб, 667x115
667x115
>>2815876
Вот три файла. Копируется только txt.
Аноним 23/08/23 Срд 11:55:15 2816122 66
>>2815876
>>2815877
Так, разобрался. Короче, все через жопу, но результата я своего добился.

Теперь я свободно работаю со словарем ресурсов, а далее перед сборкой, этот файл копируется в этот же проект при помощи команды 'copy'. И уже при помощи >>2815838 копия определяется как контент и копируется нюгет-пакетом в импортирующий проект.

Из неудобств — дублирование файлов, которое может сбить с толку и случайное редактирование не той копии (не смотря на то, что я это разделил разными папками). Установил для этих файлов read only чтоб наверняка.
Аноним 23/08/23 Срд 14:05:56 2816283 67
Хм.
Вопрос.
Как без множественного наследия сделать примерно следующее:

public class EventEmitter<T>{
private IList<Action<T>> _eventHandlers;
public void Emit(T e){ Какая-то логика по публикации события }
public IDisposable Subscribe(Actinon<T> eventHandler){ // логика подписки }
}

public class User : EventEmitter<LoginEvent>, EventEmitter<LogOffEvent>{
// Собственно логика класса юзера
}

Конечно, можно сделать типа интерфейс, дефолтную имплементацию создать в пользователе, потом пробрасывать вызовы к этим дефолтным интерфейсам, но блин. Как жижа выглядит.
Аноним 23/08/23 Срд 15:22:16 2816377 68
>>2816283
Ну есть два способа:
1. Множественное наследование (считается зашкваром)
2. (не помню как называется) Когда ты в "class User" создаешь два приватных поля с экземплярами "EventEmitter<LoginEvent>" и "EventEmitter<LogOffEvent>"

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

Но несмотря на надменность некоторых пидоров к наследованию, не стоит от него отказываться вообще. Если это в пределах 1-2 классов, то гемора с наследованием будет меньше.
Аноним 23/08/23 Срд 15:24:52 2816380 69
>>2816377
>Если это в пределах 1-2 классов
я имел ввиду, если наследование ограничивается 1-2 классами, либо что-то одно является ну прям базой всего остального.
Аноним 23/08/23 Срд 15:28:10 2816386 70
>>2816283
>>2816377
>2. (не помню как называется)
Вспомнил, это называется "Композицией".
Аноним 23/08/23 Срд 15:34:54 2816391 71
>>2816283
- Наследование (то что у тебя щас)
- Реализация (то что ты предложил в качестве альтернативы)
- Композиция
- Ассоциация
- Агрегация

https://metanit.com/sharp/patterns/1.2.php
Аноним 23/08/23 Срд 16:32:01 2816458 72
Почему у object из коробки нет методов для каста? Приходится самому писать CastTo<T> и As<T>
Аноним 23/08/23 Срд 16:44:23 2816463 73
Аноним 23/08/23 Срд 17:03:58 2816475 74
>>2816458
1. Хранить в обджекте - плохая идея из-за аллокаций. Это делается только в исключительных случаях, в основном в wpf.

2. CastTo<T> небезопасен, а проверять КАЖДЫЙ тип персонально — это ебануться какой сизифов труд.
Аноним 23/08/23 Срд 19:15:23 2816616 75
Есть стиль, у которого BorderThickness при помощи динамического ресурса берет значение из внешнего элемента Thickness. Выглядит это так:


<Thickness x:Key="Static.BorderThickness">3</Thickness>

<Style x:Key="{x:Type Button}" TargetType="{x:Type Button}">
. . . <Setter Property="BorderThickness"
. . . . . . . . . Value="{DynamicResource Static.BorderThickness}"/>
</Style>


Но я хочу сделать посредника, чтобы у меня Thickness ссылался на еще один Thickness.


<Thickness x:Key="Static.BorderThickness">3</Thickness>

<Thickness x:Key="Button.Static.BorderThickness" Left="{DynamicResource Static.BorderThickness.Left}" />

<Style x:Key="{x:Type Button}" TargetType="{x:Type Button}">
. . . <Setter Property="BorderThickness"
. . . . . . . . . Value="{DynamicResource Button.Static.BorderThickness}"/>
</Style>


Но Thickness это структура и у нее нет Dependency Properties. И хз как это обойти.
Даже если посредником будет условный класс Border, у которого есть свойство BorderThickness, то я не знаю как к нему обратиться при помощи DynamicResource.


<Thickness x:Key="Static.BorderThickness">3</Thickness>

<Border x:Key="Button.Static" BorderThickness="{DynamicResource Static.BorderThickness}" />

<Style x:Key="{x:Type Button}" TargetType="{x:Type Button}">
. . . <Setter Property="BorderThickness"
. . . . . . . . . Value="{DynamicResource (Button.Static).BorderThickness}"/>
</Style>


И как быть вообще?
Аноним 24/08/23 Чтв 00:02:49 2816833 76
>>2816283
нормально делать получателя так
class User: IHandler<Event>
тот же медиатор так делает.
Но нет никакого смысла делать отправку сообщений так, когда объект может просто владеть объектом eventEmiter и слать сообщения.

>>2816458
в языке и так есть 2 синтаксиса каста. засирать ВСЕОБЩИЙ БАЗОВЫЙ класс еще и методами = палки в колеса тем, кто захочет использовать методы с такими именами для своих нужд.

>>2816616
вот чем впф ущербна, так это работой со стилями. Ты слишком много от нее хочешь
Аноним 24/08/23 Чтв 14:15:17 2817239 77
11.png 19Кб, 842x642
842x642
В общем. Базово - вроде разобрался в Vim'ом на винде.

Теперь вопрос. Как прикрутить к нему LS, чтобы подсказочки там, ссылочки, переход к определению и всякие рефакторинги, чтобы как в VSCode короче.

Как стыдно перед Си-анонами...
Аноним 24/08/23 Чтв 14:30:40 2817253 78
2023-08-2414-15[...].png 58Кб, 847x668
847x668
2023-08-2414-16[...].png 28Кб, 822x136
822x136
>>2816833
>вот чем впф ущербна, так это работой со стилями.
Да пипец, я всю голову себе сломал.

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

Один чел решил сделать enum из стринговых ключей ресурсов цвета. А что если те, кто будет пользоваться его библиотекой, захотят расширить список ключей? Enum не умеет в наследование. Что с этим делать? Мастерить какой-то конвертер?

Или берет условный ресурс SolidColorBrush с ключом "BorderThickness" и привязывает все стили к нему. А если надо будет изменить толщину только для тексбоксов не трогая все остальные контролы? Мне придется перелопачивать стили.


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

Так что я добился пока самого идеального менеджера тем с регулируемой гибкостью настройки. Не решен (частично) только один вопрос — добавление внешних стилей.
Аноним 24/08/23 Чтв 14:54:34 2817266 79
24/08/23 Чтв 15:00:51 2817271 80
>>2817239
Никак, вим не поддерживает шарп.
Аноним 24/08/23 Чтв 15:28:23 2817293 81
Столкнулся с ошибкой CS1003 expected ',' (строка с if)
Код:
public class Size
{
int width;
int height;

public int customWidth = 0;
public int customHeight = 0;

void If(int customMapHeight > 0)
{
int height = customMapHeight;
}
}
Красным подчёркнут знак '>' (строка с if)
Я где только запятую не пытался ставить, не помогает. Что это за ошибка?
Аноним 24/08/23 Чтв 15:47:55 2817298 82
>>2817293
У тебя тип возвращаемого значения стоит перед if. Убирай его. Или если ты хотел сделать метод, тогда убирай > 0.
Аноним 24/08/23 Чтв 15:51:30 2817304 83
>>2817298
Ну судя по тому, что у тебя сласс Size, ты хотел сделать метод, так что убирай > 0. и если тебе нужна проверка, то пихай её внутрь метода.
Аноним 24/08/23 Чтв 15:52:42 2817305 84
11.png 19Кб, 769x419
769x419
>>2817293

У тебя вообще не валидный код, няша. ХЗ чего ты добиться пытался.

Суть.

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

Сверху
Свойства - сахарок позволяет тебе избавиться от постоянной пары методов Ассесора и Мутатора(ака геетера-сеттера)
События - сахарок, чтобы ты паб-саб не реализовывал постоянно, пусть и с некоторыми проблемами.

Собственно. Да.

А тот код что у тебя - это не класс, а ХЗ что.
Аноним 24/08/23 Чтв 16:29:07 2817335 85
>>2817305
Спасибо за оперативный ответ. Сейчас ошибок нет, а чтобы проверить как он работает, мне нужно написать дополнительный код.
Аноним 24/08/23 Чтв 16:30:32 2817337 86
>>2817253
>Я хочу от нее базы — динамической смены темы и скинов.
зачем. ох уж эти красочные интерфейсы
дизайн должен быть хардкорным - 100 кнопок и 10000 таблиц на одной форме.
Аноним 24/08/23 Чтв 16:48:03 2817355 87
>>2817337
Просто ты бежишь от проблем. Если бы UI писался левой пяткой, то ты бы так не утверждал.
Аноним 24/08/23 Чтв 16:58:03 2817374 88
>>2817355
У меня нет проблем. Я пишу софт для внутреннего использования. И вот там темы, анимации и прочие перделки - никому нах не нужны и даже наказуемы. А вот старые добрые таблицы, многооконность и "много инфы на экране" - очень даже приветствуется, ибо ехать, а не шашечки.
Вернее проблемы есть - ибо работать со стилями в впф таки нужно и много (это ж в WPF - там миллион косяков нужно лечить через стили).
Аноним 24/08/23 Чтв 17:27:59 2817408 89
>>2817374
Дизайн не противоречит функциональности. Студия выглядит вполне таки стильно и молодёжно при этом упихивая тонны иконок и панелей в тонны окон.
В внутренних же продуктах у юзеров просто нет выбора, вот потому и выглядят корп порталы/софт как правило как говно (да и работают примерно так же)
Аноним 24/08/23 Чтв 17:34:08 2817424 90
>>2817408
А у меня есть другой пример - idea-based редакторы. И вот там начала задвигать идею "а давайте сделаем минимализм по типу visual studio code", как будто это хорошо.
Хорошо что эту дрянь можно отключить.

>у юзеров просто нет выбора
но не потому что "жричодали", а потому что иначе просто неудобно работать. Даже вон в десктопном телеграме сделали возможность выделить разговор в отдельное окно, что как бы нарушает дизайн "делаем аля у нас тут планшет, а не какой нибудь qip"
Аноним 24/08/23 Чтв 17:35:22 2817429 91
>>2817408
и забыл - даже в студии вон хотят задвинуть новый дизайн с большими отступами. Исключительно ради "а че другие пидорасничают, а чем мы хуже"
и тонны всего просто перестанут упихиваться.
Аноним 24/08/23 Чтв 17:42:27 2817437 92
>>2817424
1. Хоть и сижу на старой теме в джетовских продуктах (новая совсем говно) но и старая не нравиться особо из-за ограниченности в композе панелей в окне.

>>2817429
2. Новость видел давно, надеюсь их бог покарал и инициативу свернули

3. Ты привёл пример и я привел. Сделать красиво и удобно можно, но бизнес за это платить не будет. Проклятый мир который мы сами создали
Аноним 24/08/23 Чтв 19:31:22 2817553 93
>>2817437
>Новость видел давно, надеюсь их бог покарал и инициативу свернули
В мае было. Тема вроде заглохла, но не до конца, они вроде как фидбек переваривают. Там народ им в принципе аргументированных хуйцов прилично натолкал в обсуждении, но и долбоебов вопящих "Круто, новый интерфе-е-ейс" тоже немало было.
Аноним 24/08/23 Чтв 19:45:42 2817571 94
>>2817553
А еще они похерили старую добрую контрастную синюю тему с 17й студии. Хорошо что решается через расширения, но это показательно.
Аноним 24/08/23 Чтв 19:58:51 2817587 95
>>2817571
>А еще они похерили старую добрую контрастную синюю тему с 17й студии.
Согласен. Синяя тема была топ.
Аноним 24/08/23 Чтв 20:04:53 2817605 96
>>2817553
Ниче не заглохла. Видел скриншоты от дев команды с новым интерфейсом студии. Внутренний тест идет. Думаю, к 8 дотнету выкатят.
Аноним 24/08/23 Чтв 20:28:18 2817647 97
>>2817605
проблевался? я не слежу, но после того как в файрфоксе сделали дебильные отступы просто "а пусть будут" и в итоге вкладки стали выглядеть как кнопки, а закладки просто не влезать в экран - от такого дебилизма просто тошнит и хочется уе...ь (и это не уехать)
Аноним 24/08/23 Чтв 20:43:23 2817656 98
>>2817647
Там не понятно нихуя. Скрины были по фитче, не от команды UI. Кусок контекстного меню и только. Суть в том, что фемки зашарили свой интерфейс на остальных. Тестят всем майкрософтом.
Аноним 25/08/23 Птн 12:18:29 2817991 99
А есть какие нибудь методы расширения enum?

1. Допустим, в nuget-пакете есть перечисление с расширениями аудиофайлов
enum
{
. . . mp3 = 0,
. . . wav = 1
}


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

Решения, кроме создания метода расширения для конвертации я не нашел. Ну и собсно гемор с ручным переписыванием всех итемов.
Аноним 25/08/23 Птн 12:35:08 2818001 100
windows.png 143Кб, 1702x978
1702x978
toolbars.png 34Кб, 1431x143
1431x143
menus.png 147Кб, 1556x976
1556x976
>>2817553
Это что ли?
Тут явно ориентир на большие мониторы. Так-то если сейчас открыть студию 2022 на мониторе 800х600, то едва ли там влезет хотя бы одна панель.

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

Но отступы увеличивают читабельность, а в профессиональной среде иметь минимум 2 монитора на специалиста это уже норма. Попытка запихнуть ВСЁ в один экран с разрешением 1280х900 — это слабоумие и отвага.

Ну да, раньше все влезало, ну так и мультимониторов или 4к мониторов раньше не было. А теперь есть, так почему бы не сделать лучше? Понятно что соснет одноминитораня челядь, но кто они такие? Они теперь в меньшинстве — их черед страдать. А для 4к мониторов увеличение UI только в плюс, ибо там все СЛИШКОМ мелко.
Аноним 25/08/23 Птн 13:33:07 2818041 101
maxresdefault.jpg 67Кб, 1280x720
1280x720
>>2818001
Сижу на ультравайде с 4к по низу на 100% скейле. Считаю дизайн текущей студии идеальным. Отступы просто жрут полезное пространство.

Рака жопы таким слабовидящим как ты. Скатываете всё до уровня бабушкофонов
Аноним 25/08/23 Птн 14:10:02 2818074 102
>>2818041
Лично я для своих приложух указываю настройки масштабирования и спейсинга. В любом проф софте у тебя есть целая кипа настроек.

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

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

>Считаю дизайн текущей студии идеальным.
Ну это ты считаешь, а другой — нет. Анон выше сожалел о синей теме, а другой бы изошел на говно, увидев ее.
Аноним 25/08/23 Птн 14:13:13 2818081 103
Стикер 255Кб, 512x375
512x375
>>2818041
>Рака жопы таким слабовидящим как ты.
А знаешь почему я стал слабовидящим? Из-за мелких отступов в предыдущих темах UI.
Аноним 25/08/23 Птн 16:57:43 2818248 104
>>2818001
>иметь минимум 2 монитора на специалиста это уже норма
- которые расположены...ммм.....рядом с друг другом? ведь да? ну рядом же?
- ясно. владельцы ноутов не профи. зопесал.
Аноним 25/08/23 Птн 17:32:15 2818316 105
>>2817991
И потом твое расширение по большущей пизде пошло бы, когда в нюгете собственное расширение изменят.
Аноним 25/08/23 Птн 17:38:15 2818326 106
>>2818074
>Непонятно хули вы тут осуждаете то, что буквально создано для решения вашей проблемы.
Это было бы так, если бы они действительно предлагали это как какой-то вариант кастомизации. Но будет скорее всего замена старого на новое, как когда-то везде начали применять ублюдочный риббон, вместо нормального интерфейса.
Я, кстати удивлен, что до студии эта тема не докатилась, хотя некоторый серьезный инженерный софт в свое время тоже наступил в это говно.
Аноним 25/08/23 Птн 17:40:51 2818334 107
>>2818001
>Сделали закругленный десигн, как у шиндовс
И поскольку он способствует сливанию элементов в единую кашу решили сделать отступы побольше. Еще и выделение активного элемента ухудшили.
Аноним 25/08/23 Птн 18:21:13 2818458 108
>>2817991
1 енумы в шарпе убоги
2 для такого используется адаптер. паттерн такой.
конечно если ты не хочешь сделать свой нюгет пакет расширяющий первый. тогда или все таки делать адаптер или пункт 1
Аноним 25/08/23 Птн 19:36:43 2818617 109
>>2814295
Ищи чет другое, на данный момент работы для джунов нет вообще нихуя, я уже не первый месяц ищу.
Аноним 25/08/23 Птн 20:07:08 2818659 110
>>2817553
Новый интерфейс райдера топ кстати
Аноним 25/08/23 Птн 21:29:05 2818717 111
>>2808819 (OP)
Как создать несколько объектов, название которых задаётся кодом а не вручную (b1, b2, b3, b4)?
Аноним 25/08/23 Птн 21:51:26 2818723 112
>>2818717
Сигналы с марса транслируешь?
Аноним 25/08/23 Птн 22:00:01 2818727 113
>>2818717
Словарь. Значение твой объект, ключ - "название".
Аноним 26/08/23 Суб 00:23:30 2818819 114
>>2818723
Без шуток, наверное должно быть полно задач, когда нужно создать автоматически массу объектов и автоматически дать им имена.

>>2818727
Какой-то слишком сильный костыль получается. И всё-равно словарь нужно заполнять вручную.
Аноним 26/08/23 Суб 01:09:17 2818826 115
>>2818819
> наверное должно быть полно задач
Но таких задач нет.
Аноним 26/08/23 Суб 03:36:09 2818852 116
>>2818819
Для задач когда у тебя куча похожих объектов и тебе их нужно различать в коде, была придумана куча способов. Массивы, списки, словари, базы данных и т.д.
Ты же хочешь использовать самый ебанутый, с кучей переменных/объектов отличающихся друг от друга именами.
Аноним 26/08/23 Суб 09:51:13 2818934 117
>>2818852
Понял. Но словарь содержит лишь два свойства об объекте (имя и значение), а что если значений 2 или больше?
Аноним 26/08/23 Суб 10:39:39 2818958 118
>>2818248
>оторые расположены...ммм.....рядом с друг другом?
Да хоть вокруг. Суть моего посыла в том, что у пользователя увеличилась площадь экрана. Для этого либо ставят несколько обычных мониторов, либо один большой. Лично я сторонник перового варианта.

>ясно. владельцы ноутов не профи.
Если на постоянке работают, то как минимум долбоебы. Если используют как мобильный девайс для командировок или выездов на объекты — то отличный вариант.
Аноним 26/08/23 Суб 10:40:56 2818959 119
>>2818316
Вот это тоже проблема. Странно, что для энумов не реализовали наследование. Так неудобно.
Аноним 26/08/23 Суб 10:42:53 2818960 120
>>2818326
>хотя некоторый серьезный инженерный софт в свое время тоже наступил в это говно
Автокад и 3д-макс? Я думал это собственная разработка Автодеска.
Аноним 26/08/23 Суб 10:46:20 2818961 121
>>2818934
Чел, у объекта может быть сколько угодно полей, свойств, методов и тд.
Аноним 26/08/23 Суб 11:01:37 2818965 122
>>2818961
У объекта - да, но в словаре всего два поля - название и значение.
Аноним 26/08/23 Суб 12:15:51 2819004 123
Как лучше организовать загрузку данных в десктопном приложении? То есть различных файлов, с которыми работал пользователь в прошлых сессиях, собственных ассетов приложения и тд.
Аноним 26/08/23 Суб 12:28:30 2819018 124
>>2818934
> а что если значений 2 или больше?
Лучше бы тебе конкретно описать задачу, иначе нижеописанное может в твоем случае пойти во вред.

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

Обычно есть простой список, а все свойства хранит в себе итем. Внутри каждого итема могут быть списки других итемов, а те содержать в себе списки еще одних.

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

Если нужно неслучайное ID, а последовательное, как у тебя (b1, b2, b3), то можно хранить последний индекс созданного итема как статическое поле и при каждой инициализации инкременировать

public List<Prisoner> Prisoners {get; set; }

public class Prisoner
{
. . . static int lastID; //хранилище последнего созданного ID-индекса
. . . string ID {get; set; }
.
. . . public Test()
. . . {
. . . . . . lastID ++; //инкременируем индекс
. . . . . . ID = 'b' + lastIndex.ToString(); //билдим новое ID
. . . }
}


Если же индексация каким-то образом зависит от коллекции, в которой находится, то индексацию берет на себя эта коллекция.

Как например это было с другим свойством - Parent, моего итема, которое редактировал мой кастомный класс, реализующий IList, либо наследующий List (небезопасно). В этом классе я реализовал метод Add(item), который помимо добавления в список еще и помещал ссылку на себя в Parent добавляемого итема.

public class PrisonBlock : IList<Prisoner>
{
. . . private List<Prisoner> prisoners = new();
.
. . . public void Add(T item)
. . . {
. . . . . . prisoners.Add(item);
. . . . . . item.Parent = this; //добавляем себя в качестве родителя
. . . }
}


Таким образом мы можем обратиться к итему Prisoner и по Parent узнать его актуальынй индекс в блоке. Кстати, в этом блоке тоже может быть свой Parent, который сообщает номер этажа, а в этаже ссылка на корпус и так далее. Это пример на случай, когда идентификатор итема зависит от его положения в списке родителя.
Аноним 26/08/23 Суб 12:31:50 2819024 125
>>2818965
Значит тебе не нужен словарь.

И не забывай, что любой класс ты можешь модифицировать. Если в словаре не хватает свойств, ты наследуешь словарь и добавляешь нужные тебе свойства. Проблемс?
Аноним 26/08/23 Суб 12:34:12 2819026 126
>>2818965
Делаешь ключом кортеж и вот у тебя ключ составной
Аноним 26/08/23 Суб 12:48:22 2819038 127
>>2819004
Ну как? У тебя команды Open, Import, Merge срут в историю действий и заодно могут срать в список последних использованных файлов. Дальше ты этот список сохраняешь куда хочешь, возможно с бэкапом предыдущего списка.
Для этих команд ты даже можешь создать интерфейс, чтобы он в обязательном порядке заставлял команду срать в этот список, чтобы ни одна муха ...

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

Возможно, что команда Open насрала в список своевременно, вот только энтот список сохраняется при успешном закрытии приложения. В итоге имеем что имеем. В общем это тебе пример, что успешные компании не утруждают себя этими вашими сложностями.
Аноним 26/08/23 Суб 12:49:56 2819041 128
Аноним 26/08/23 Суб 12:52:32 2819042 129
Давайте лучше обсудим как в впф кнопки красить...
Аноним 26/08/23 Суб 12:55:06 2819043 130
>>2819038
Хотя ... с другой стороны, может лучше заполнять список истории при сохранении и экспорте. Иначе список может заполняться мусором, если пользователь просто открывает что либо и закрывает не внося изменений — например что-то ищет.

Но я такое редко где видел. Даже студия поднимает в списке ссылку на решение даже если оно было просто открыто.
Аноним 26/08/23 Суб 13:08:22 2819047 131
sharplab.io сдох что-ли? У меня нихуя не работает.
Аноним 26/08/23 Суб 13:44:32 2819066 132
почему инсталлятор visual studio ставит миллиад говна на 10гб, а связка vs code + dotnet весит меньше гига и просто работает?
Аноним 26/08/23 Суб 13:47:28 2819068 133
image.png 103Кб, 2004x1068
2004x1068
>>2819047
С твоей стороны проблемы

>>2819066
Потому что это не vscode, не?
Аноним 26/08/23 Суб 13:51:32 2819069 134
>>2819068
ну вот я хочу поставить visual studio с поддержкой asp net, он мне предлагает ставить хуеты на 10 гигов, нахуя?
Аноним 26/08/23 Суб 13:54:55 2819071 135
>>2819069
Я не понимаю зачем ты сюда вообще пришёл. Сам же говоришь что вскод прекрасно работает и не требует тонны зависимостей вот и поставь себе асп отдельно и продолжай жить на вскоде. Или идею поставь.
Всё сводится к тому что выбор у тебя есть и никто не привязывает к студии
Аноним 26/08/23 Суб 14:00:37 2819076 136
>>2819071
не эстетично комп засорять, хочется, да не можется
Аноним 26/08/23 Суб 14:15:22 2819092 137
image 50Кб, 1346x278
1346x278
>>2819069
>10 гигов
Дедусь, ты таблетки-то вовремя принимай, 10 гигов - это 1 серия Следствие ведут знатоки (или что вы там смотрите) в нормальном качестве.
Аноним 26/08/23 Суб 14:23:23 2819100 138
>>2819092
>пик
Ну не под систему же такое брать. Нужеть хоть какой то нвме+кэш и не совсем подвал
Аноним 26/08/23 Суб 15:11:39 2819179 139
>>2819066
>visual studio ставит миллиад говна на 10гб
А нехуй Pro с торрентов качать, долбоеб. Комьюнити чистая около 700Мб весит, а с минимальными либами около 3Гб. И лежит она на оф сайте майкрософта бесплатно.
Аноним 26/08/23 Суб 16:47:06 2819326 140
image.png 39Кб, 753x567
753x567
почему не подгружается изменённый жисон? то есть манду не получается поменять
Аноним 26/08/23 Суб 17:09:20 2819352 141
>>2819326
Че за паблик стринг? В шарпе можно делать публичные поля?

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

А еще из текста не видно, что у тебя что-то должно меняться.
Судя по этому коду, у тебя в джейсоне будет всегда манда, даже при отсутствии файла во время загрузки. Хз как ты там проверяешь в таких-то условиях.
Аноним 26/08/23 Суб 17:45:13 2819382 142
1693061113323.png 419Кб, 960x540
960x540
>>2819352
> В шарпе можно делать публичные поля?
Always has been
Аноним 26/08/23 Суб 18:21:53 2819410 143
image.png 56Кб, 988x471
988x471
Документация у авалонии конечно моё почтение. Ни одного сука комментария, в аргументах одни инты, разбирайся, сука, как хочешь.
Аноним 26/08/23 Суб 18:30:16 2819415 144
>>2819382
Я думал это запрещено женевской конвенцией.
Аноним 26/08/23 Суб 18:43:11 2819431 145
>>2819415
C# - это не Java-параша, это надмножество C++.
Аноним 26/08/23 Суб 18:58:54 2819453 146
>>2818958
>что у пользователя увеличилась площадь экрана.
в ширину, еще раз напишу В Ш-И-Р-И-Н-У. ширина это по горизонтали понимаешь? то есть хоть миллион мониторов но высоты они тебе не прибавят.

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

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

Это если тебе приходится сидеть в душном офисе с кучей мониторов, то это кто еще долбоеб лол )

>>2819431
Иметь возможность стрелять себе в ногу и реально стрелять в ногу - разные вещи
Аноним 26/08/23 Суб 20:17:01 2819555 147
image.png 105Кб, 1230x620
1230x620
>>2819179
>>2819092
ой блять, шизики повылазили... я про community. Вот скрин. IntelliJ IDEA вот ПРОСТО просит указать путь к JDK и не ебет мозг установками всякого кала на диск C
Аноним 26/08/23 Суб 20:56:48 2819610 148
>>2819555
ты же понимаешь что JDK/SDK не то же самое что ты показываешь на скрине?

И что собственно IntelliJ IDEA и является тем что ты показываешь на скрине в той или иной мере и уж сама она с радостью ставится на диск ц ))))
вон у меня стоит комьюнити idea и занимает на диске сама 3 гига. При это я конечно без понятия чего она предоставляет, а чего не предоставляет. Ну еще и в профиле юзера накакает.

что конечно не отрицает факт, что студия любит понаставить говна. Например я не пользуюсь sql server, нахер не нужен этот энтити фреймворк и нода, но все это добро мне навалят.
Аноним 27/08/23 Вск 17:58:48 2820227 149
>>2818965
> У объекта - да, но в словаре всего два поля - название и значение.
Пчел, ты изначально вообще хотел переменную. У неё тоже "два поля" - имя и содержимое.
Аноним 28/08/23 Пнд 10:03:13 2820730 150
>>2818717
Тебе названия переменных нужны, чтобы к ним обращаться в процессе написания кода. Нахуя тебе имена, которые ты в коде никак не прописываешь?
Аноним 28/08/23 Пнд 10:28:41 2820755 151
>>2817991
>>2818959
> Странно, что для энумов не реализовали наследование
А если внутри нугет пакета будет свитч, который выполняет какую-то логику в зависимости от значения энум переменной? Как ему реагировать на твое ogg?
Аноним 28/08/23 Пнд 10:42:29 2820762 152
>>2820755
Хороший тон это ветка с notsupportedexception но в целом согласен что затея с наследованием энамов говно. В некоторых местах к примеру есть проверки а-ля is in enum и дальше предполагается что то что прошло дальше точно валидно.

В целом непонятен смысл дополнять чужой энам
Аноним 28/08/23 Пнд 16:06:29 2821109 153
>>2819555
Как реализовать логгер, который вместе с каждым логом будет передавать нужные мне параметры?
Аноним 28/08/23 Пнд 16:41:40 2821122 154
Аноним 28/08/23 Пнд 17:01:17 2821135 155
Делал кто-нибудь биндинг в ASP.Net полей с разным именем, типа в теле запроса шлём { hui_morja: 999} а в классе надо замапить на поле HuiMorja? Подскажите как делали) Все решения из гугла не работают чёт))))
Аноним 28/08/23 Пнд 17:12:46 2821154 156
Аноним 28/08/23 Пнд 18:56:33 2821280 157
>>2821135
Зависит от того какой у тебя сериализатор. Если дефолтный то в свежих корках стоит syste.text.json, если корка постарше или ты руками json.net подкинул то он.
И у того и у того есть атрибут который можно повесить на проп jsonpropery и там название пропа в жсоне. Одним словом гугли
Аноним 28/08/23 Пнд 18:59:41 2821285 158
>>2821135
Если ты даже такую хуйню не способен сделать тебе не место в программировании
Аноним 28/08/23 Пнд 19:05:28 2821286 159
>>2821285
Всё с чего то начинали. Его ошибка в том что он пошёл спрашивать у людей а не у гугла
29/08/23 Втр 14:59:05 2822071 160
>>2821286
Не ошибка, диагноз.
Аноним 29/08/23 Втр 22:59:30 2822593 161
Screenshot20230[...].png 17Кб, 686x239
686x239
Почему в случае шарпа - выведется 0, а в JS - все правильно работает? Ваш шарп хуже JS получается?
Аноним 29/08/23 Втр 23:03:59 2822597 162
Screenshot20230[...].png 6Кб, 445x86
445x86
>>2822593
На всякий случай - пример с JS чтобы все видели, про что я говорю
Аноним 29/08/23 Втр 23:08:22 2822601 163
.png 33Кб, 686x402
686x402
Аноним 29/08/23 Втр 23:08:23 2822602 164
>>2822593
Почему ты такой долбоеб?
Аноним 29/08/23 Втр 23:12:02 2822603 165
>>2822593
Пизды тебе за такой код вломить нужно и за внимательность тоже.

Попробуй в журнашлюхи податься, думаю взлетит
Аноним 29/08/23 Втр 23:12:12 2822604 166
>>2822601
Действительно. Моя вина.

Тогда другой вопрос.
Почему шарп заставляет меня вон ту первую строчку добавить? Без этого не компилировалось, говорило, дескать - использование неинициализированной переменной.
Опять же - в JS все нормально и ничего не ругается.
Аноним 29/08/23 Втр 23:13:47 2822605 167
>>2822602
>>2822603
А вы - токсики. 12 ночи. Немудрено ошибиться. Фу такими быть. Другой анон хоть на ошибку указал.
Аноним 29/08/23 Втр 23:13:53 2822606 168
>>2822604
Ты ебалан? Гений сравнений.
Аноним 29/08/23 Втр 23:15:31 2822608 169
1693340122232.jpg 29Кб, 600x527
600x527
>>2822605
Вопрос нужно задавать нормально а не прикидываться пикрилом
Аноним 29/08/23 Втр 23:18:38 2822612 170
>>2822604
В твоём любимом JS с "use strict" будет та же самая ошибка. И не надо думать, что var в шарпе и жс - это одно и то же.
Аноним 29/08/23 Втр 23:28:38 2822622 171
Screenshot20230[...].png 14Кб, 690x156
690x156
>>2822608
Я не прикидываюсь ни кем.
Просто я не могу понять, почему.


>>2822612
Я не про то.
Шарп же умеет захватывать всякое. Может проанализировать тело, понять что пытаются захыватывать, вычислить тип и сгенерировать нужный делегат. Опять же - если переменную проинициализировать - оно работает нормально. А вот если нет - не собирается.
Аноним 30/08/23 Срд 00:03:36 2822644 172
>>2822622
Потому что рослин за тебя локальные переменные не инициализирует. Может быть когда-нибудь это изменится. Как когда-то делегаты не выводились.

Не собирается, потому что анализатор понимает, что у тебя гарантированный эксепшен в рантайме.
Аноним 30/08/23 Срд 00:18:38 2822662 173
Ну а сама инициализация необходима, потому что шарп домохозяичный яп. Локальная переменная находится в стеке. И условные 4 байта int i; могут наложится на произвольные байты оставшиеся от структуры, которая находилась в стеке до этого. В результате локальная i, без инициализации, будет иметь произвольное значение.
Аноним 30/08/23 Срд 00:32:05 2822669 174
>>2821109
Так логгеры serilog и log4net умеют это делать, аля string.Format. Ты через запятую перечисляешь параметры.
Аноним 30/08/23 Срд 00:53:47 2822680 175
>>2822669
И даже больше. Попробовав структурное логирование жизнь заиграет новыми красками
Аноним 30/08/23 Срд 19:26:30 2823734 176
Screenshot20230[...].png 64Кб, 734x622
734x622
Вопрос.
Хочу в студии вот такой вот заголовок иметь.
И чтобы автор - проставлялся на основе гита, а время - автоматом при создании файла.

На линуксе - у меня скриптики и я просто делаю:
:r !./header.sh

после создания файла.

А вот че делать на винде в студии?
Аноним 30/08/23 Срд 19:34:25 2823748 177
Как бороться с жирностью вью моделей? Пока приходит на ум только костыль в виде partial классов, и интерфейсов, т.е. можно разбить все методы и свойства на группы, вынести в интерфейсы, затем эти интерфейсы реализовать в отдельных файлах как часть одного класса.
Аноним 30/08/23 Срд 19:34:50 2823753 178
Аноним 30/08/23 Срд 19:40:04 2823767 179
>>2823753
Ну. У меня пиздец встает хуй потому что кажется прям максимально эстетично. Я прямо смотрю на это и нарадоваться не могу. ХЗ как описать.

А еще у джавистов - такое же есть. Я чувствую с этой стороны - неполноценным себя, что не имею в студии такого же.
Аноним 30/08/23 Срд 19:42:45 2823770 180
>>2823748
Раскидать логические куски по отдельным классам, а "вью-модель" сделать просто фассадом буквально без какой-то логики?
Аноним 30/08/23 Срд 19:47:07 2823781 181
>>2823734
Узнай, как такая практика называется, ну и загугли как это автоматизировать для сутдии.
Аноним 30/08/23 Срд 19:49:58 2823786 182
>>2823770
Как я это раскидаю, если мне нужно взаимодействовать со свойствами внутри вью модели?
Аноним 30/08/23 Срд 19:56:17 2823799 183
>>2823786

// кусок твоей логики
class A {

public string Name { get; set;}
public void SomeImplrtantAndComplexLogic() { Console.WriteLine(42) ; }

}

// кусок твоей логики
class B {

public int Age { get; set; }
public void AnotherlrtantAndComplexLogic() { Console.WriteLine(69) ; }

}

// Фассад
class ViewModelFacade{

A _a = new();
B _b = new();

public string Name { get => _a.Name; set => _a.Name = value; };
public void SomeImplrtantAndComplexLogic() => _a.SomeImplrtantAndComplexLogic();

public int Age { get => _b.Age; set => _b.Age = value; };
public void AnotherlrtantAndComplexLogic() => _b.AnotherlrtantAndComplexLogic();

}
Аноним 30/08/23 Срд 20:01:29 2823804 184
Аноним 30/08/23 Срд 20:06:56 2823811 185
>>2823804
Лучше чем у тебя будет partial фигня.
partial - вообще придуман исключительно для случая чтобы сепарировать то что ты пишешь от того что нагенерировал какой-то генератор кода.
Аноним 30/08/23 Срд 20:10:30 2823816 186
Кстати. Про генераторы кода.

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

Я вот последний раз - стрингбилдером клиенты для устройств когда на заводе работал - генерировал по вычитываемой с устройства информационной карты.
Аноним 30/08/23 Срд 20:31:12 2823840 187
>>2823816
Бойлерплейт гененировать. Больше нахуй не нужОн.
Аноним 30/08/23 Срд 20:33:31 2823843 188
>>2823816
Активно использую postsharp
Аноним 30/08/23 Срд 20:48:14 2823868 189
>>2823734
Ну и делай то же самое тем же скриптом только в всл
Аноним 30/08/23 Срд 22:09:07 2823947 190
>>2823868
Та это уже как костыль жуткий выглядит.
Типа вот я в студии работаю.
Создаю новый файл. Переключаюс на wsl, иду по ебейшему пути в духе: /mnt/c/users/abc/sources/repos/Project1/src, открываю vim'ом нужный файл, выполняю скрипт. Закрываю wsl и дальше работаю.
Даже если не закрывать, а просто делать это переодически - все еще как добро выглядит.
Аноним 30/08/23 Срд 22:21:29 2823952 191
>>2823947
Ну и не делай тогда
Аноним 30/08/23 Срд 22:31:22 2823959 192
>>2823767
> кажется прям максимально эстетично
А на самом деле это максимально уёбищно.
Аноним 30/08/23 Срд 23:11:46 2823975 193
изображение.png 19Кб, 403x198
403x198
изображение.png 23Кб, 431x197
431x197
изображение.png 17Кб, 690x93
690x93
Какой вариант написания else if с одной инструкцией является более общепризнанным?
Аноним 30/08/23 Срд 23:13:43 2823978 194
Аноним 30/08/23 Срд 23:16:10 2823983 195
изображение.png 67Кб, 481x573
481x573
>>2823978
Ты так написал, потому что так лично тебе нравится? Или, может, пояснишь? Даже бездушная программа лучше тебя отвечает, для тебя это повод задуматься.
Аноним 30/08/23 Срд 23:23:07 2823987 196
>>2823983
Первый вариант написания с использование фигурных скобок является более общепризнанным в программировании. Этот вариант обеспечивает более читаемый код и является стандартным при написании больших блоков кода. Он также позволяет легче вносить изменения внутри блока кода, если это потребуется в будущем.
Аноним 31/08/23 Чтв 01:08:10 2824028 197
>>2823748
есть такое. Попробуй добавить контроллеры какого то вида или общие вьюмодели, куда вынеси логику контроллерную.
Аноним 31/08/23 Чтв 06:22:51 2824071 198
>>2823978
Посмотрел на первый варианты. Их по методу DRY взаимно ликвидировали.
Аноним 31/08/23 Чтв 06:30:09 2824072 199
>>2823975

var msgs = new[] {"Число четное", "Число нечетное"};
while(true) {
var index = int.Parse(Console.ReadLine()) % 2;
Console.WrteLine(msgs[index]);
}
Аноним 31/08/23 Чтв 08:57:50 2824122 200
>>2823947
Ты бред несёшь и сам твой подход бред что новый что старый. Подобные задачи делаются одним вызовом на весь репо, если угодно то в хуке гита
Аноним 31/08/23 Чтв 09:49:58 2824163 201
>>2823767
> что кажется прям максимально эстетично
Нет это смотрится максимально хуево.
Во первых через какое-то время заебывает постоянно читать эту портянку в файле, т.к. коду она отношения не имеет, а место съедает.
Во вторых - вся эта информация итак в гите есть. Кто, что, когда из файлов создал и какую строчку в нем изменил.
Аноним 31/08/23 Чтв 09:53:11 2824169 202
>>2823816
>Вот кто-то использует в своей работе что-то?
Миграции для БД через EF - эвридей.
Модели для парсинга xml - часто
Клиенты для сваггера - крайне редко
Аноним 31/08/23 Чтв 09:54:58 2824171 203
>>2823975
1-й. Скобки ставятся всегда.
Аноним 31/08/23 Чтв 09:56:57 2824173 204
>>2823983
>Даже бездушная программа лучше тебя отвечает, для тебя это повод задуматься.
А ты с порядком картинок в собственном посте разобраться не можешь. На твоем месте я бы об этом задумался.
Аноним 31/08/23 Чтв 11:19:19 2824290 205
Снимок экрана 2[...].png 112Кб, 848x217
848x217
>>2808819 (OP)
Вот тебе и шарп, нах, пишите на нем сами. Контора пидорасов, что бы я нахуй еще раз связался с любым продуктом этой конторы.
Аноним 31/08/23 Чтв 11:21:35 2824298 206
>>2824290
Да как бы и хуй с ним. Проблемы маководов это проблемы маководов
Аноним 31/08/23 Чтв 11:22:51 2824302 207
>>2824290
Ну и не совсем понятно причем тут шарп если речь идёт о одной конкретной идешке
Аноним 31/08/23 Чтв 15:37:54 2824707 208
>>2823975
срать на общепризнанность.
предпочитаю 2
1 - жрем слишком много вертикального пространства просто так
3 - длинные строки тяжелее читать, особенно если в строке 2 действия - а тут сравнение и действие.
2 - самый идеал. семантика отделена и сразу видно скоуп.
Аноним 31/08/23 Чтв 17:22:20 2824894 209
>>2824302
Не просто какой то там иде, а иде от самих создателей языка
Аноним 31/08/23 Чтв 17:25:38 2824900 210
>>2824894
а Visual Studio Code от кого?
Аноним 31/08/23 Чтв 17:38:25 2824921 211
>>2824894
На маке вообще весь не яблочный софт существует не благодаря а вопреки
Аноним 31/08/23 Чтв 17:47:24 2824931 212
>>2824921
Забавно читать это в треде языка, на котором до сих пор нет нормального нативного гуи фреймворка, при том что на маке с этим никаких проблем, и писать красивые нативные приложения способна даже макака
Аноним 31/08/23 Чтв 17:51:36 2824939 213
>>2824931
а ну ну, давай расскажи мне подробнее как макака будет писать на хкоде (кстати невероятно говняная IDE сама по себе) кроссплатформенные гуи приложения.

А мы тут послушаем.
Аноним 31/08/23 Чтв 17:55:45 2824946 214
>>2824931
> нативного гуи фреймворка
>>2824939
> кроссплатформенные гуи приложения

Ебать ты конечно маневрировать начал
Аноним 31/08/23 Чтв 17:56:07 2824947 215
>>2824931
>и писать красивые нативные приложения способна даже макака
Ну так пусть эта же макака и сделает для макоебов нормальную IDE. Problems?
Аноним 31/08/23 Чтв 18:20:06 2824985 216
>>2824946
ну так для винды (родная платформа) тоже есть нативный гуи и не один. И тоже может макака писать.
Аноним 31/08/23 Чтв 18:23:11 2824988 217
>>2824985
> ну так для винды (родная платформа) тоже есть нативный гуи и не один
В том то и беда, что все нативные гуи на винде либо устарели (wpf, winforms, uwp), либо максимально кривые (winui, maui). Современного и хорошо работающего просто нет. Это я тебе как разработчик десктопных приложений говорю.
Аноним 31/08/23 Чтв 18:27:57 2824995 218
>>2824988
И ладно бы только устарели, wpf тормоз жуткий, uwp анально огороженная платформа (самое уебанское решение майков, если бы не эти ограничения писал бы на uwp и в хуй не дул. Да, и там есть кривости, теней нет нормальных например, но в сравнении с wpf это просто технология богов)
Аноним 31/08/23 Чтв 18:41:58 2825017 219
>>2824988
>wpf тормоз жуткий
и при этом быстрее того же winui лол

не знаю, пишу на WPF и мне норм. А всякие там эффектики и красивости мне не нужны.
И как раз UWP и выше считаю огороженным и УРЕЗАНЫМ говном - то нельзя, этого нет.

На а винформс есть винформс.
что на маке родное то? я хз но гугл первым выдал AppKit, похоже жуть страшнее чем винформс.
SwiftUI? так он не для макоси. Сам концепт мне нра, но из за выразительной убогости свифта и шарпа ну такое себе, а самая мощь подобного подхода раскрывается только на котлин, но это все для мобил как бы. Если тебе нужен DataGrid то ууупс.
Аноним 31/08/23 Чтв 19:02:21 2825058 220
>>2825017
> и при этом быстрее того же winui лол
Но гораздо медленнее UWP. На wpf даже нельзя добиться плавной анимации без микролагов, это ли не пиздец?
> И как раз UWP и выше считаю огороженным и УРЕЗАНЫМ говном - то нельзя, этого нет.
Winui то как раз не огорожен, а так да, это большой минус UWP, но этот минус компенсируется скоростью работы и наличием Composition Layer
>>2825017
> так он не для макоси
И для нее в том числе.

А так вся надежда на Авалонию, для неё конечно нужно самому все контролы пилить, чтобы нативно выглядели, но это в целом не сложно. Главное что работает лучше wpf, возможностей больше, в последней версии ещё и Composition Layer из UWP добавили. Документация правда куцая, с msdn и рядом не стояла, зато чат есть, где можно напрямую с разрабами пообщаться.
Аноним 31/08/23 Чтв 19:12:08 2825069 221
>>2824988
>Это я тебе как разработчик десктопных приложений говорю.
Ты вымирающий вид, который скоро будет выкинут на свалку истории. Пора откатиться в сторону и лечь помирать.
Аноним 31/08/23 Чтв 19:13:37 2825071 222
>>2825069
Я пишу пет на asp net, скоро обязательно вкачусь в актуальную технологию
Аноним 31/08/23 Чтв 20:39:57 2825162 223
>>2825069
засрут все вебуйным говном типа электрон
слышали ага.
Аноним 31/08/23 Чтв 22:55:25 2825292 224
2023-08-3122-51[...].png 26Кб, 652x298
652x298
А можно как-то редиректить xml-документацию?

Вот к примеру пикрил, мне надо подписать класс и конструктор класса (подчеркнуто). Текст в большинстве случаев один и тот же, но вставлять копипаст как-то тупо и не практично.
Аноним 31/08/23 Чтв 23:12:26 2825306 225
Аноним 31/08/23 Чтв 23:29:48 2825317 226
>>2825306
О, да, это мне и нужно. Спасибо!
Аноним 31/08/23 Чтв 23:31:27 2825319 227
image.png 54Кб, 575x418
575x418
Аноним 01/09/23 Птн 02:25:36 2825410 228
>>2825058
Ох если бы не шрифты в авалонии
Аноним 01/09/23 Птн 11:46:54 2825630 229
Напоминаю БАЗУ:

Что есть на джаве, чего нет на петушарпе:
— Стабильность и вера в будущее (обратная совместимость)
— @Delegate (петушарп не поддерживает композицию, приходится ручками переписывать по 500 однотипных методов)
— @RequiredArgsConstructor, @AllArgsConstructor, @NoArgsConstructor
— @ToString (приходится генерировать средой разработки и сидеть в классе с кучей говна, красивые элегантные классы нинужны, лучше попилим его с помощью partial class и не так всё плохо будет выглядеть, при добавлении новых полей перегенерировать)
— JavaFX
— Minecraft
Аноним 01/09/23 Птн 13:28:26 2825779 230
>>2825630
петросян посетил наш тред.

Открываем инет про @Delegate хотя бы и читаем
"Current status: negative - Currently we feel this feature will not move out of experimental status anytime soon, and support for this feature may be dropped if future versions of javac or ecj make it difficult to continue to maintain the feature. "

С-стабильность.

>переписывать по 500 однотипных методов
не сраным жавистам с их гетсет об этом говорить лол.

и остальное такое же смешное.

а так, пусть жависты едят говно в своем треде. Нет, спасибо что нам тред перекатили, но теперь идите жрать свое говно.
Аноним 01/09/23 Птн 14:17:19 2825849 231
>>2825779
>не сраным жавистам с их гетсет об этом говорить лол.
Ты когда пишешь {get; set} на каждую переменную вспоминаешь злых хохораклов?
Аноним 01/09/23 Птн 14:20:25 2825853 232
>>2825849
не знаю о чем ты вообще {get; set} это указание компилятору "я ж не жавист засирать код пустыми методами геттеров и сеттеров, сгенерь эти методы за меня". Абсолютно нормальный синтаксис. Разве что бэкингфилд не сделали, как в том же котлине. Ну шарп не идеал, но же жавистом на него бочку катить.
Аноним 01/09/23 Птн 14:26:52 2825867 233
>>2825849
зато когда пишу required ... {get; init;} то думаю "эээх здорово же"
Реально полезно, хоть я и сторонник конструкторов.
Аноним 01/09/23 Птн 14:38:53 2825892 234
>>2825853
>>2825867
Java давно ушла уже от бойлерплейта конструкторов и даже далеко вперёд этих гетинитсетов. @Data.
Аноним 01/09/23 Птн 14:45:06 2825900 235
Два кобола. Что говножаба, что говношарп.
Аноним 01/09/23 Птн 14:50:50 2825913 236
>>2825892
ты определись плиз - жава ушла или просто кого то убогость и многословность жавы основательно зае... и был создан проект ломбок (которая суть СТОРОННЯЯ либа) для внедрения сахара?

ну а в шарпе 12 будут эти конструкторы (хотя конечно не факт что так же хорошо, как в котлине)
с другой стороны мне конструкторы такого вида никогда и не нравились если это не record. Семантика контракта и внутреннего устройства класса размазывается.
Аноним 01/09/23 Птн 15:36:24 2826020 237
>>2825913
>ты определись плиз - жава ушла или просто кого то убогость и многословность жавы основательно зае... и был создан проект ломбок (которая суть СТОРОННЯЯ либа) для внедрения сахара?
А какая разница? Я-то пишу с удобным сахаром, которого нигде больше нет, ни в одном языке программирования.
Аноним 01/09/23 Птн 15:44:39 2826031 238
>>2826020
разница есть
- может быть в любой момент потенциальная несовместимость
- ты можешь устроиться куда то работать, а там "никаких ломбоков ничего такого мы не знаем".
- кто вообще автор либы. за чей счет оно живо. мир жавы это такое. ждк тому пример - то платный, то бесплатный, суды всякие

>ни в одном языке программирования.
кулик, да ты хотя бы оглянись вокруг в своем болоте. даже в зоне твоей жвм есть хотя бы котлин и на его возможности посмотри (а это не только сахар).
а потом на свою жаву, которая на той же жвм и куда асинк нормальный никогда не завозили, сахар через сторонние костыли делается, ну может там чего то обещали подобие корутин сделать - не слежу.
Аноним 01/09/23 Птн 15:52:33 2826038 239
>>2826031
>- может быть в любой момент потенциальная несовместимость
Так-то и джава может быть сама с собой несовместима в процессе разработки. Но есть такая возможность, как "пофиксить баг", если ты не знал.

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

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

>даже в зоне твоей жвм есть хотя бы котлин и на его возможности посмотри (а это не только сахар).
В петухлине всего, что есть в лобмоке нет.
Аноним 01/09/23 Птн 15:55:50 2826041 240
>>2826038
> Добавляю в dependencies ломбок и довольно урчу.
Не урчишь... или урчишь. Это как дибы скажут
Аноним 01/09/23 Птн 15:57:43 2826043 241
>>2826038
>Но есть такая возможность, как "пофиксить баг", если ты не знал.
а эта возможность она мгновенная по щелчку пальцев? или нужно issue писать, потом ждать фикса, потом ждать пока выкатят этот фикс?
Может для жавистов время искажается, а то я не знаю. В моем мире течение времени одинаково во все времена

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

>На гитхабе ломбок есть. Лицензия какая-то кастомная
лицензия дело такое - взяла и сменилась. обычное дело.

>В петухлине всего, что есть в лобмоке нет.
ясно. упоротый жавист. пошли аргументы "ви все вретттте"
нечего после этого с тобой обсуждать.
Аноним 01/09/23 Птн 16:32:33 2826094 242
>>2826043
>только недолго урчишь. ибо тебя просто попрут с работы за то что ты используешь левую хрень в общей кодовой базе.
>лицензия дело такое - взяла и сменилась. обычное дело.
>и вообще завтра на тебя упадёт метеорит, тупой джавист. что скажешь на это? оправдывайся
Аноним 01/09/23 Птн 16:34:06 2826100 243
>>2826043
>ясно. упоротый жавист. пошли аргументы "ви все вретттте"
Хочешь сказать, что в петухлине есть упомянутые мной аннотации или их аналоги?
Аноним 01/09/23 Птн 16:36:05 2826102 244
>>2826043
>а эта возможность она мгновенная по щелчку пальцев? или нужно issue писать, потом ждать фикса, потом ждать пока выкатят этот фикс?
Всё ровно так же работает и с самой джавой, и с вашим петушарпом. Это вообще не аргумент, маня. Почти все проблемы фиксятся ещё до выпуска кода в паблик.
Аноним 01/09/23 Птн 16:42:34 2826109 245
>>2826094
ты реально думаешь что сторонняя либа, пусть даже она удобная и поддерживается основными IDE то же самое что стандартная?
То, что она генерит, не является валидным кодом жавы и поэтому нужны плагины в IDE
Так что она может как быть так и не быть

Насчет лицензии. Oracle JDK отличный пример что даже невероятная известность и стандартность может просто измениться в один момент.

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

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

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

Я не работаю с жавой и ломбок, но мороки с совместимостью плагинов на андроид студии мне хватило выше крыши. В жава мире многое завязано на кодоген и я наелся дерьма в связке плагин + hilt + dagger до отвала.
Аноним 01/09/23 Птн 17:02:51 2826130 246
Как в конструкторе класса передать данные в конструктор базового класса, если в этом конструкторе больше параметров, чем в наследнике?

public class BaseClass
{
. . . public BaseClass (int a, string b)
. . . { }
}

public class MainClass : BaseClass
{
. . . public MainClass (int a) : base(a, b)
. . . {
. . . . . string b = "Hello, world!";
. . . }
}
Аноним 01/09/23 Птн 17:05:16 2826131 247
>>2826109
>ты реально думаешь что сторонняя либа, пусть даже она удобная и поддерживается основными IDE то же самое что стандартная?
Пока ты кукарекаешь про потенциальные проблемы, я просто пользуюсь и ещё ни разу не испытывал никаких проблем с ломбоком, как и пресловутого скрытого поведения/подводных камней, которыми вы так любите кичиться. Может, не то же самое, но этого достаточно.

>Насчет лицензии. Oracle JDK отличный пример что даже невероятная известность и стандартность может просто измениться в один момент.
Тогда OpenJDK и получила развитие. Невалидный пример, да и не аргумент вообще, если всё так работает, что мешает петушарпу лицензию сменить? Не высасывай из пальца, серешь в штаны.

>Можешь доказать что ломбок используется на 100% кодовой базы в мире? нет? тогда и говорить не о чем.
А этого и не нужно. Пусть им пользуются 90%, 40% или один я, что с того? У меня есть эти фичи, а петушарподебилы отмакакивают {get; set} и ещё смеют этим выёбываться.

>они там не нужны. язык все это умеет искаропки и даже больше.
Покажи мне то, что заменяет @Delegate, @With и @RequiredArgsConstructor в петухлине. Да и не о нём идёт речь, я так-то в петушарпотред зашёл. Петухлин, как паразит на джаве, автоматом имеет все её фичи (кроме, конечно, всей той красоты из новый версий, так как петухлин сидит на 8 jvm).
Аноним 01/09/23 Птн 17:20:49 2826148 248
image.png 17Кб, 634x299
634x299
>>2826130
Точно знаю что есть такие способы
Аноним 01/09/23 Птн 17:22:56 2826149 249
>>2826131
Не зашкварно лобком пользоваться?
Аноним 01/09/23 Птн 17:34:09 2826160 250
>>2826131
>я просто пользуюсь
ну пользуйся кто тебе запрещает. но не говори что весь мир пользуется и устроившись куда то на работу там будет ломбок
(не говоря уже про то что ломбок это костыли)

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

>что мешает петушарпу лицензию сменить?
ничего не мешает. все могут менять. и все меняли. правда вот в разные стороны )

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

>петушарподебилы отмакакивают {get; set}
абсолютно нормальный синтаксис. жавапетух просто не знает к чему придраться.

>Покажи мне то, что заменяет
не хочу читать про ломбок мне влом. и нах не нужно. поэтому по диагонали как я понимаю что это за фичи
>@Delegate,
это то что еще не является стабле в ломбок? ну такое себе. Типа автогенерация декораторов? ну в котлине она есть
class Derived(b: Base) : Base by b
>@With
это как шарповское with для records то есть позволяет заменить часть свойств и компилятор сгенерит билдер? в котлине у дата классов есть метод copy - "Use the .copy() function to copy an object, allowing you to alter some of its properties while keeping the rest unchanged."

>@RequiredArgsConstructor
не понял что это точно делает, но в котлине искаропки дефолтные кострукторы они работают как конструкторы у record в шарпе только шире ибо объявляют не только сигнатуру конструктора, а и кем станет это - свойством или полем. То есть там автосоздание и присвоение свойств и полей через конструктор (то что только частично будет в шарпе 12 как доп функционал) является прямо таки основным. И поскольку конструктор только присваивает, то есть еще блок init{} для логики

>Петухлин, как паразит на джаве
какие фичи лол. жава НЕ ИМЕЕТ этих фич. Эти фичи имеет сторонняя либа через кодоген и на выходе не валидная жава (потому и нужен плагин чтобы с этим работать)
и кто ГОВНО жаве виноват что она развивается как черепаха. Будь жава хороша, то ломбоки бы и не появились ибо не нужно было бы

а так да. тред про шарп то. хватит обсирать жаву. жависты и так знают что она говно и нужны костыли позорные типа ломбоков ибо без них жопа.
Аноним 01/09/23 Птн 17:42:40 2826175 251
>>2826160
>абсолютно нормальный синтаксис. жавапетух просто не знает к чему придраться.
>ну и говно тоже в принципе вкусное. да, петухам мух не понять!
Аноним 01/09/23 Птн 17:43:39 2826176 252
>>2826149
Зашкварно быть дегенератом, который читать не умеет. Ломбок, а не лобок.
Аноним 01/09/23 Птн 17:50:10 2826199 253
>>2826160
>просто пример того как что то может измениться легко. и если даже что то очень известное, что говорить о левой библиотеке )
>ничего не мешает. все могут менять. и все меняли. правда вот в разные стороны )
Тебе обязательно на каждый тезис что-то высрать своё, даже если высрана будет хуйня, да?

>рррррря старонняя либа!
Ну так у вас и такого нет. Сидите гетсетыиниты дрочите свои на каждую переменную, коупя тем, что это вам дали с лопатыиз коробки, когда мы просто одну аннотацию ставим на весь класс.
Аноним 01/09/23 Птн 18:59:57 2826298 254
>>2826148
Понятно, значит способа через конструктор нет.
Аноним 01/09/23 Птн 19:01:39 2826299 255
>>2826298
Ограничение исходит из порядка вызовов .ctor так что имеем что имеем
Аноним 01/09/23 Птн 20:22:12 2826358 256
>>2826199
просто правда есть правда. Сколько орали о злом мелкософте и об хорошем оракле. а потом весна показала кто где срал.

>Сидите гетсетыиниты дрочите свои на каждую переменную
data классы в котлине и record в шарпе есть искаропки
это то же самое что твое тупое @Data

а вообще кодогеном можно везде упарываться, но блин восхвалять стороннюю либу которая СУТЬ КОСТЫЛИ, да еще и генерит она не жава код О_О....может только жавасранька.
Аноним 02/09/23 Суб 13:14:05 2826719 257
2023-09-0213-12[...].png 18Кб, 832x150
832x150
Какой смысл в xml-документации указывать комментарий к исключению, если он нигде не виден?
/// <exception cref="ArgumentNullException"> Эта залупа нигде не видна </exception>

Все что я получу при наведении курсора на метод — это тип исключения, без каких либо комментариев и уточнений.
Аноним 02/09/23 Суб 13:21:34 2826724 258
>>2826719
Потому что xml-документация используется не только для того, чтобы тебе подсказки в IDE выдавать но и для других вещей, вроде кодогенерации или спецификаций api.
Аноним 02/09/23 Суб 19:57:36 2827130 259
>>2826358
Шарподебил продолжает плакаться на костыли, пока я пользуюсь ломбоком и радуюсь сахарку. А ведь он заревел только от одного @Data, который по сути антипаттерн... Вкину пожалуй @ToString. Как там с этим дела в петушарпе обстоят?
Аноним 03/09/23 Вск 00:21:15 2827359 260
>>2827130
ты какой то больной. ты пришел сюда не с жавой, а левым инструментарием
у шарпа тоже такой есть - например, fody. Он за меня генерит INPC и многое другое. Но я же не называю его "это заслуга шарпа". Наоборот, это недостаток шарпа восполняемый костылями.

А ты костыль, который родился из за невероятной убогости жавы, записываешь в достоинства жавы.
Катись в свой жава тред с этим.
Аноним 03/09/23 Вск 04:45:54 2827417 261
>>2827359
Прекрасно. А с @ToString дела как обстоят?
Аноним 03/09/23 Вск 04:49:06 2827418 262
>>2827359
>ррррря ты ниможишь просто так взять и пользоваться сахаром патамушто не искаропки!!!!! всмысли ты пользуешься??!?!?!?!?!?! низзззяя яскозал!!!!!!!!!!!!
Как же он коупит, пиздец просто.
Аноним 03/09/23 Вск 04:54:55 2827420 263
>>2826719
Никакой, это же петушарп.
Аноним 03/09/23 Вск 04:58:39 2827422 264
>>2827417
вот так
https://github.com/Fody/ToString

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

за сим все. дебил, который НЕ ОТЛИЧАЕТ язык от ИНСТРУМЕНТАРИЯ пусть идет нах

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

но конечно если ты кодишь один дома калькуляторы - ну поздравляю тебя
Аноним 03/09/23 Вск 06:01:20 2827427 265
>>2827422
Ебать дебилоиду правда печёт. На полном серьёзе сравнивает фоди с 73 звёздами на гитхабе с ломбоком, который де-факто стандарт, с 12к звёздами. И ещё ебло умудряется перефорсить "какой нах фоди иди нах отсюда" на "какой нах ломбок иди нах отсюда". Кстати, как там с поддержкой фоди в среде разработки?

>за сим все. дебил, который НЕ ОТЛИЧАЕТ язык от ИНСТРУМЕНТАРИЯ пусть идет нах
А нахуя мне различать это? Я ж не шарпоблядь с нищим по функционалу языком и экосистемой, чтобы мне приходилось как-то коупить убогость способов разработки. Я просто пишу и всё, а шарпобляди выдумывают оправдания аля "ниискаропки!!!", "антипаттерн!!!!" и прочее, прочее.
Аноним 03/09/23 Вск 06:08:25 2827428 266
>>2827427
Какой же ты косолобый
https://github.com/Fody/Fody
4к звезд, 44 миллиона скачиваний в nuget.

Только по факту и фоди и лобок это левые либы, которые не имеют отношения к функциональности языка.
Аноним 03/09/23 Вск 06:09:10 2827429 267
>>2827428
Самому-то не смешно со своих верчений жопой? Мы про @ToString говорили. На нём 73 звёзды. Так как там дела с ним обстоят?
Аноним 03/09/23 Вск 06:16:12 2827430 268
После того, как поплачешь, расскажи про поддержку фоди в среде разработки.
Аноним 03/09/23 Вск 06:21:37 2827432 269
>>2827429
Клоун, все это часть одной либы
Аноним 03/09/23 Вск 06:38:27 2827434 270
>>2827429
ну так это не жава же
у нормальных людей 90% генерации ToString() покрывают record (data class если котлин) где все генерится. Для остальных случаев (не дто классы) лучше доверить сгенерить самой IDE и подправить ручками.
Поэтому тустринг генератор нужен мало кому ибо незачем нахер.

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


Аноним 03/09/23 Вск 06:53:56 2827435 271
>>2827432
А зачем тогда отдельный репозиторий? Это такой обманный манёвр по взятию за щеку?
Аноним 03/09/23 Вск 06:54:52 2827437 272
>>2827434
>учше доверить сгенерить самой IDE и подправить ручками.
Ясн, шарпомух опять в своём репертуаре. А просто размазать говно по экрану не вариант? Зачем всё усложнять и размазывать говно по классам?
Аноним 03/09/23 Вск 06:57:16 2827438 273
>>2827434
>ибо без него просто никуда (жава хуле)
Ну не проецируй, маня... Единственное, что в петушарпе есть из аналогов адекватных функций ломбока это убогий {get; set} на каждую переменную. Всё остальное, чем вы гордитесь, уже давно есть в самой джаве.

Обратного не скажешь про петушарп, который ни в самом языке не имеет нихуя, ни в библиотеках.
Аноним 03/09/23 Вск 07:05:32 2827439 274
Нииееет, ты ни панимаеш, эта ни фоди нииспользуимая хуита каторую сделали из-за убогасти петушарпа, эта ни миня визде шлют нахуй с маим фоди с 73 звёздами, это фсё наобарот, понял да!
Аноним 03/09/23 Вск 10:06:59 2827503 275
Хватит кормить джавадебила, просто игнорируйте. Не расстраивайте меня, шарпочане.
Аноним 03/09/23 Вск 10:12:43 2827510 276
image 83Кб, 699x900
699x900
>>2827503
>Хватит кормить джавадебила, просто игнорируйте. Не расстраивайте меня, шарпочане.
Аноним 03/09/23 Вск 17:50:32 2827900 277
>>2827503
Ты абсолютно прав. Жава дебич скатился к откровенному говну.
Тустринги, гетсеты лол. Радость у жавадебича от того что часть говна в жаве правит сторонняя либа (которую кстати ценят не все ибо не все фанаты неявной генерации хер пойми чего, а предпочитают чтобы IDE генерила явно)
Отсутствие типов, структур, LINQ expressions, асинк/авайт и т.д. - все это не парит жавадебича который высирает тонны говнокода там, где в любой другом языке (не только шарп) "давно продолжается праздник, а жавадебич в вилабаджо все еще моет посуду" (с)
Аноним 03/09/23 Вск 19:02:42 2827952 278
>>2827900
У них какой то заменитель линку есть, вроде стримы или как то так.
Аноним 03/09/23 Вск 19:05:16 2827954 279
>>2827952
не путай LINQ и LINQ Expressions - абсолютно разные вещи.

Замена LINQ Expressions у них это любительские поделки, которые пытаются анализировать байткод и что то там пытаться с этим делать. И то под котлин )
Аноним 03/09/23 Вск 19:05:39 2827955 280
Есть Uri на страницу в приложении, формата
"pack://application:,,,/MyApplication;component/Styles/ListViewStyle.xaml"

Можно это каким либо образом сохранить в файл?
Попытка сохранить ResourceDictionary через XamlWriter не увенчалась успехом — куча информации попросту теряется.
Аноним 03/09/23 Вск 19:35:58 2827984 281
>>2827955
Ну так после компиляции это уже baml
Аноним 04/09/23 Пнд 11:37:01 2828482 282
>>2827954
Это ты позавчера sql запросы к List<String> писать хотел?
Аноним 04/09/23 Пнд 11:38:26 2828485 283
>>2827900
>Отсутствие типов
Не знал, что Java это язык с динамической типизацией...
Аноним 04/09/23 Пнд 21:15:38 2829263 284
>>2828482
нет. Да и даже если бы да, то причем тут вообще это. Linq Expressions для другого

>>2828485
в жава 5 ради совместимости с жава 4 приняли решение внедрить фичу type erasure, то есть из байт кода стирается информация о типах дженериках.
Если у тебя тип List<? extends InputStream>, то хрен ты в рантайме узнаешь что там вместо ? и вынужден с этим жить.
Аноним 04/09/23 Пнд 22:37:53 2829354 285
>>2829263
>хрен ты в рантайме узнаешь
И нинужно.
Аноним 04/09/23 Пнд 22:41:01 2829356 286
>>2829263
>то хрен ты в рантайме узнаешь что там вместо ? и вынужден с этим жить.
А зачем это знать?
Ты знаешь, какой интерфейс реализует тип, зачем тебе знать больше?
Аноним 04/09/23 Пнд 22:45:00 2829365 287
>>2827900
>Отсутствие структур
Джависты говорят, что там где шарпоскот вынужден руками ковырять свои структуры в погоне за оптимизациями, джавагоспода просто пишут бизнес-логику, а JVM сама всё оптимизирует, где нужно. И в принципе и правда если смотреть различные сравнения, нету у шарпа какого-то значимого преимущества по перформансу.
Аноним 04/09/23 Пнд 22:46:43 2829366 288
>>2829356
>Ты знаешь, какой интерфейс реализует тип, зачем тебе знать больше?
Разработчики многочисленных DI, ORM, event аггрегаторов и вообще всего что связано с кодогенерацией, сидят такие и думают "а че так можно было?"

>>2829365
>JVM сама всё оптимизирует, где нужно
ага. видели мы как она оптимизирует. путем пожирания памяти. А тюнить jvm вообще отдельное искусство
Аноним 04/09/23 Пнд 22:54:15 2829382 289
image 271Кб, 623x926
623x926
>>2829366
>DI, ORM
В Java всё это появилось раньше, чем в шарпе, и отлично работает всё.

>кодогенерацией
Параша уровня define-макросов в С.
Этого следует избегать.

>путем пожирания памяти
Память стоит копейки.
Аноним 04/09/23 Пнд 22:56:59 2829387 290
>>2829382
хотел ответить, но увидев...
>Память стоит копейки.
понял что это упоротый жава дебич и потому пусть валит в свой тред, а не мешает нормальным людям писать на нормальном языке.
Аноним 04/09/23 Пнд 23:08:56 2829400 291
А как указать Uri путь на компонент зип-архива?
Пытался так
var listView = new Uri("file:///C:/Test.zip;component/Resources/Styles/ListViewStyle.xaml");
Но Uri не хочет видеть ";component".

Если я возьму listView.Segments, то получу разбитие по косым чертам "/", в итоге один из сегментов будет выглядеть так "Test.zip;component/"

Я конечно могу вручную разбить строку, но думал может есть какие-то решения из коробки.
Или может надо как-то иначе указать Uri до файла внутри архива.
Если я укажу так
"file:///C:/Test.zip/Resources/Styles/ListViewStyle.xaml"
то боюсь я хрен достану файл.
Аноним 05/09/23 Втр 00:43:43 2829428 292
>>2829400
а должен видеть зип? файлы в зипе не то же самое что ресурсы
Аноним 05/09/23 Втр 01:31:49 2829437 293
>>2829365
Жабоебы много чего нелестного про фичи шарпа говорят, а сами втихоря свой пиструник на Project Valhalla наяривают, в рамках которого эти "ненужные" фичи (value-типы, полноценные дженерики и т.д.) в жабу добавить пытаются.
Аноним 05/09/23 Втр 01:41:35 2829440 294
>>2829382
Как по мне, уж лучше кодогенерация, чем инструменты, которые на лету байткод генерируют, как это в жаба-мире принято. Сильно меньше магии выходит. Открыл сгенерированные сорцы и тебе все становится понятно. Да и шансов, что у тебя после обновления либ что-то в рантайме отъебнет сильно меньше, так как криво сгенерированный код тупо не скомплируется.
Аноним 05/09/23 Втр 01:48:30 2829445 295
>>2829382
> В Java всё это появилось раньше, чем в шарпе, и отлично работает всё.
Не в жабе а сама жаба. Достоинство это или недостаток сам решай.
Да и в современном мире я бы вообще считал что фреймворка не существовало, а жизнь зародилась с второй корки
Аноним 05/09/23 Втр 01:53:21 2829446 296
>>2829440
ну не совсем так. Это в шарпе вовсю рантайм генерация ибо типы доступны.
И только вот вот приехала кодогенераци сорцов.

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

ломбок же этот генерит не код. ну так и в шарпе fody переписывает байт код.
поэтому переписывание может переписать исходник, а сорс генерация она только дописывает в отдельные файлы.
Аноним 05/09/23 Втр 02:20:08 2829447 297
Лучше бы TreeView обсуждали.
Аноним 05/09/23 Втр 07:40:50 2829504 298
>>2829440
ну вот я попробовал этот новомодный коммюнити тулкит от мелких
и их генерацию свойств вида
[ObservableProperty] private bool _foo;

и как же он задолбал при навигации через контрол+клик отправлять в сгенеренный файл...который ПУСТОЙ

БЕСИТ.
Аноним 05/09/23 Втр 08:19:05 2829523 299
>>2829437
Впервые слышу, чтобы действительно кто-то что-то в жаба мире говорил про шарп негативно. Разработчики библиотек говорят, что Шарп был спроектирован с учётом исправлений некоторых ошибок жабы.
И функционал той же вальгаллы есть в шарпе. Но в жабе это сложно реализовать из-за дроча на обратную совместимость.
И этот аргумент работает. Многие компании и сидят на жабе из-за пиара обратной совместимости. И сломали ее только один раз в девятке этими вашими модулями.
Аноним 05/09/23 Втр 08:46:58 2829534 300
2023-09-0508-40[...].png 13Кб, 817x209
817x209
2023-09-0508-34[...].png 30Кб, 881x603
881x603
>>2829428
>а должен видеть зип?
Он должен видеть точку с запятой в качестве подразделителя (пикрил 1), а дальше компонент с локальным путем. У меня же все воспринимается как один длинный путь.

>файлы в зипе не то же самое что ресурсы
А разве вот это
"pack://application:,,,/Apperance.Test;component/Resources/Styles/ListViewStyle.xaml"
не ссылается на условный контейнер? По карайней мере так пишут в статьях (пикрил 2).
Глядя на подобную структуру, у меня сложилось впечатление, что Uri умеет видеть путь к объекту и отдельно путь к компоненту этого объекта.

Я хочу себе сделать внешний подключаемый ресурс. Выбрал зип-архив. Это можно считать контейнером?
Или есть другие способы?
Аноним 05/09/23 Втр 09:18:00 2829559 301
>>2829447
TreeView — слишком серьезная тема для такого клоунского треда.
Аноним 05/09/23 Втр 09:36:12 2829573 302
>>2829534
Поставил символ "#" вместо ";" согласно пикрилейтед и удалось извлечь фрагмент.

Теперь AbsolutePath выдает:
"C:/Test/Test.zip"
а Fragment:
"#component/Resources/Styles/ListViewStyle.xaml"

Короче, чтобы получить желаемое, мой Uri должен выглядеть так
"file:///C:/Test.zip#Resources/Styles/ListViewStyle.xaml"

Но структура не выглядит как тот же "pack://"
Мне проще самому разбивать строку по ";component/", чем извращать путь таким образом, чтобы от Uri получить тоже самое.

Непонятно, почему ";" не фурычит. Вроде тоже разделитель.
Хотя даже если бы и работала, то я бы получил это
"component/Resources/Styles/ListViewStyle.xaml"
И мне все равно пришлось бы чистить путь от "component/".
Аноним 05/09/23 Втр 09:36:46 2829574 303
2023-09-0509-21[...].png 52Кб, 832x180
832x180
Аноним 05/09/23 Втр 09:56:50 2829603 304
>>2829573
>Хотя даже если бы и работала, то я бы получил это
>"component/Resources/Styles/ListViewStyle.xaml"
>И мне все равно пришлось бы чистить путь от "component/".

Тут я затупил. "component" это папка внутри пакета, я ее тоже себе сделаю.
Остается проблема, чому не видится точка с запятой.
Аноним 05/09/23 Втр 14:54:16 2829883 305
Напомните, как в божественном C# автоматически сделать метод toString() без засирания класса сгенерированным кодом?
Аноним 05/09/23 Втр 15:01:50 2829901 306
Аноним 05/09/23 Втр 15:55:16 2829975 307
>>2829883
public Record(string P1);

Чё сказать то хотел?
Аноним 05/09/23 Втр 15:55:47 2829976 308
Моё ебало, когда помойный с# работает на помойной CLR от говнософта с 0 других вендоров, представили? Этот раб микрософта небось сейчас от старфилда балдеет, охуенная игруля от его любимой компании - говна не делают так сказать.
Аноним 05/09/23 Втр 15:56:02 2829977 309
>>2829975
Похуй, думаю все поняли куда record вставить
Аноним 05/09/23 Втр 16:26:23 2830017 310
>>2829883
Как только ты объяснишь нахуя бы это нужно делать было?
Аноним 05/09/23 Втр 17:02:20 2830056 311
Аноним 05/09/23 Втр 17:06:01 2830058 312
>>2830056
Рано или поздно каждый из нас...
Аноним 05/09/23 Втр 17:36:52 2830119 313
Аноним 05/09/23 Втр 17:38:59 2830123 314
>>2829975
Нееет, ты покажи, как сделать тустринг для обычного, мутабельного класса.
Аноним 05/09/23 Втр 18:17:37 2830179 315
>>2830119
Да уж придется. Развели, блять, цирк.
Аноним 05/09/23 Втр 18:26:35 2830192 316
>>2830123
>Напомните, как в божественном C# автоматически сделать метод toString() без засирания класса сгенерированным кодом?
Ничего не понял. Ты хочешь избавиться от чего-то автоматически сгенерированнго чем-то автоматически сгенерированным? Зачем?

Если тебя надо собственный ту стринг, то пишешь оверрайд ту стринг и внутри любую логику.
05/09/23 Втр 18:43:18 2830224 317
>>2830192
Он хочет затраллировать шарпистов, чтобы те скатились в его любимую жабу. Видать, конкуренция слишком низкая.
Аноним 05/09/23 Втр 20:40:57 2830333 318
>>2830123
Дак рекорд это есть класс, а рекорд стракт это структура (хотя можешь не думать, у вас их всё равно нет)
Так и не понял что ты сказать хотел?
Аноним 05/09/23 Втр 21:34:38 2830362 319
>>2830224
Ну по опыту знаю, что нет абсолютной годноты, а гнаться за мелочными фишками — тупо.

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

Всякие обсолеты и вызовы эксепшенов — говно какое-то. Не по красоте.
Этот вариант не фунциклирует
[System.ComponentModel.EditorBrowsable(EditorBrowsableState.Never)]
public override void DoSomething()
{ }
Аноним 05/09/23 Втр 23:08:09 2830446 320
>>2830224
что невозможно ибо существует котлин.

>>2830192
просто у них в жаве в силу БЕЗМЕРНОЙ УБОГОСТИ жавы когда то начали проект ломбок. Что то типа fody в шарпе. И поскольку жава такая НЕРЕАЛЬНО УБОГАЯ не один десяток лет, то за это время НЕОБХОДИМОСТЬ ДОПОЛНИТЕЛЬНЫХ костылей таки признали даже САМЫЕ УПОРОТЫЕ ГОВНОЕДЫ жависты и убедили разрабов IDE что нужно не просто генерить байткод (или не пойми что, но не код жава), а чтобы IDE могла это учитывать и поэтому появилась поддержка в IDE.

шарп таким путем не шел, ведь авторы шарпа не стеснялись на фичи (где сразу был хотя бы гет/сет лоооооооол).
Вот как щас source generator-ы, но они генерят именно код и только новый код. А аналогия это если бы fody генерил не "потом там в черном ящике", а IDE сразу давал подсказки будто оно уже нагенерило.

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

Больше нужда в переопределения кастомного Equal и GetHashCode, но IDE может их генерить.
Да и в жаве не все поклонники неявной генерации и предпочитают генерить с помощью IDE

И да, мы всего лишь говорим про реализации сахара - сам язык дает или костыли. Как бы проблема говножавы не только в отсутствии сахара (хотя это показательно, что до сих пор не сделали гет/сет, а "вот и пусть пердолятся в ломбок лол, говноеды ха ха ха, так и надо" - небось думают авторы жавы. Ибо хз почему такую ВОСТРЕБОВАННУЮ фичу не впилить наконец в сам язык на уровне компилятора.
Там годами впихивают базовые фичи. И сахарный лобмок просто позволяет меньше нажимать кнопки на клаве реализуя некоторый сахар. Но фундаментальные проблемы языка это не решает - там где на другом языке ты "написал и отмечаешь", в жаве же думаешь "как блин это тут вообще реализовать то по нормальному"
Аноним 06/09/23 Срд 19:27:14 2831471 321
>>2830192
Я хочу, чтобы кодогенератор надристал не в сорсы, а в байткод.
Аноним 06/09/23 Срд 19:27:52 2831472 322
>>2830446
Неплохо рвонькнул! А toString-то как сделать?
Аноним 06/09/23 Срд 19:29:04 2831476 323
>>2831471
fody надристает.

>>2831472
я показал жава дебичу ссыль. жавадебич сдедал вид что он люто тупой - ну так и нах его.
Аноним 06/09/23 Срд 19:31:31 2831483 324
>>2831476
Показал хуйню с 70 звёздами без поддержки в IDE.
Аноним 06/09/23 Срд 19:34:04 2831487 325
Шарписты, есть среди вас те, кто занимается графонием? Не просто юнити дрочить, а на более низком уровне.
Аноним 06/09/23 Срд 19:43:47 2831503 326
>>2831483
а какая должна быть поддержка в IDE для метода ToString который сам генерится?
тело метода? так тебе и IDE его легко сгенерит.
а если оно генерит само где то там, то чего ты еще ожидаешь?
ты таблетки пил сегодня?
Аноним 06/09/23 Срд 19:43:50 2831504 327
>>2831487
Что конкретно интересует?
Аноним 06/09/23 Срд 19:46:46 2831509 328
06/09/23 Срд 19:52:29 2831519 329
>>2831504
Интересует, как сгенерировать ToString.
Аноним 06/09/23 Срд 19:53:02 2831520 330
>>2831509
На самом деле я вообще не понимаю зачем переопределять тустринг чем то дефолтным, во всех моих кейсах если переопределяю то там какой то кастомный набор и даже из этих случаев чаще не тустринг а вешаю дебаггердисплей атрибут
Аноним 06/09/23 Срд 19:57:09 2831527 331
>>2831519
как и везде
0 генерит компилятор
1 может сгенерить идешка
2 может сгенерировать тулза в батйкоде сама

чего тебе еще надо, собака (с) царь
Аноним 06/09/23 Срд 21:08:10 2831610 332
>>2831504
Мб тут есть человек которому может быть интересно написать абстракцию над вулканом, директом и наверное металлом на шарпе или он уже занимался чем-то подобным и может поделиться опытом
Аноним 06/09/23 Срд 21:26:32 2831626 333
>>2829356
Ну, например, в C# можно указать, что generic параметр T имеет пустой конструктор, а значит внутри generic метода можно сделать new T(). В Java без ебли с TypeRef или Class такого не сделаешь.
Аноним 06/09/23 Срд 21:28:22 2831627 334
>>2826175
>вскукарекнул петух
Аноним 06/09/23 Срд 21:32:26 2831629 335
>>2831626
Вот только new T() это рефлексия.
Аноним 06/09/23 Срд 21:39:30 2831633 336
>>2808821
- Значимые типы данных
- Материализованные дженерики
- ref и out
- Нет говна в виде checked exceptions
- LINQ и Expressions
- Нет засилья магических аннотаций с кодогенерацией напрямую в IL-код/байткод
- Кортежи из коробки
- Нормальные лямбды и делагаты вместо убогих Function
- Pattern matching, getters-setters и другой вкусный синтаксический сахар "изкаробки"

И многое другое. Продолжать можно до бесконечности.
Аноним 06/09/23 Срд 21:41:19 2831635 337
>>2831629
С чего ты решил, что это рефлексия? Я не достаю мета-информацию о типе из сборки или ещё чего, я просто заранее знаю, что это тип T и у него есть new. Компилятор это развернёт напрямую в new MyType(), благодаря материализованным дженерикам.
Аноним 06/09/23 Срд 21:50:35 2831639 338
>>2831635
Нет. Он развернет в Activator.CreateInstance()
Аноним 06/09/23 Срд 21:53:41 2831640 339
>>2831639
пруфы?
Вернее где он это должен сделать?
Аноним 06/09/23 Срд 21:54:36 2831642 340
>>2831639
Хотя ладно, я сам чекнул байткод
Аноним 06/09/23 Срд 21:55:59 2831643 341
Нужно найти итем в коллекции, аля TryGet, чтобы через return возвращалась успешность поиска <bool>, в out результат найденного итема <T>. Но проблема в том, что в случае отсутсвия итема мне нужно что-то вернуть, а вернуть я могу только null. В итоге, на выходе, несмотря на булевый результат, мне приходится снова проверять возвращаемый объект на null.

В общем, получается какая-то бесполезная конструкция. Проще сразу возвращать через return итем.

Есть какие-то способы решения проблемы? Типа как string.Empty
Аноним 06/09/23 Срд 21:58:26 2831646 342
>>2831643
>мне приходится снова проверять возвращаемый объект на null.
не веришь что трагеты вернут нул? ну значит просто сделай елсе

if(dic.Try....., out var item)
return item;
else
return null;
Аноним 06/09/23 Срд 21:59:05 2831647 343
Аноним 06/09/23 Срд 22:00:17 2831649 344
Аноним 06/09/23 Срд 22:00:21 2831650 345
>>2831643
Как бы try методы возвращают default а что у тебя там ссылочный или вещественный тип не важно.
Ещё ты условным getordefault не сможешь определить есть ли у тебя значение null в том где ты ищешь месте или к примеру 0 в наборе интов
Аноним 06/09/23 Срд 22:03:44 2831653 346
>>2831643
Можешь сделать Optional<T> как в жабе или F# и его возвращать
Аноним 06/09/23 Срд 22:04:57 2831654 347
Аноним 06/09/23 Срд 22:06:13 2831655 348
>>2831654
А зачем Nullable? Достаточно просто Optional<int>
Аноним 06/09/23 Срд 22:10:03 2831657 349
>>2831655
Это была попытка в шутку уровня fizzbuzz enterprise edition
Аноним 06/09/23 Срд 22:12:06 2831659 350
>>2831655
Кидай исключение. Будь мужиком
Аноним 06/09/23 Срд 22:16:44 2831662 351
>>2831649
У меня out <T> Какой Enumerable?

>Как бы try методы возвращают default
А default вернет null.

>>2831654
>>2831655
Какой Optional<int>? У меня out <T>


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

if(TryGetByName(myCollection, "myItem", out MyClass resultItem))
{
. . . resultItem.Name = "new name"; //вот тут дикий ор студии, что объект nullable
}
Аноним 06/09/23 Срд 22:18:26 2831664 352
>>2831662
Посмотри исходник такого метода у словаря и стыбзи оттуда атрибут и повесь на параметр своего метода
Аноним 06/09/23 Срд 22:24:24 2831666 353
>>2831664
Словарь возвращает default и метод написан на старой версии не задающей вопросов.

В новой версии подобный подход вызывает предупреждения.
Аноним 06/09/23 Срд 22:27:31 2831669 354
>>2831666
Ну как хочешь
Мне то что
Аноним 06/09/23 Срд 22:28:52 2831670 355
>>2831666
Нихуя не понял, но если дохуя уверен в себе то ! тебе в руки
Аноним 06/09/23 Срд 22:29:58 2831671 356
>>2831666
а, там есть [MaybeNullWhen(false)]
Аноним 06/09/23 Срд 22:32:08 2831672 357
>>2831662
С Optional<T> можно вот так:

static Optional<T> TryGet<T>(IEnumerable<T> myCollection, Func<T, bool> cond)
{
return myCollection.Where(cond).Select(Optional.Some).FirstOrDefault(Optional.None<T>());
}
Аноним 06/09/23 Срд 22:39:39 2831678 358
Аноним 06/09/23 Срд 23:28:44 2831705 359
>>2831678
Интересно, спасибо!
Аноним 07/09/23 Чтв 00:44:34 2831737 360
Аноним 07/09/23 Чтв 00:47:06 2831738 361
>>2831527
>2 может сгенерировать тулза в батйкоде сама
Не может.
Аноним 07/09/23 Чтв 00:48:14 2831739 362
>>2831503
Шарпопетух не может себе представить, что можно не срать в класс телом бесполезного метода, лул.
Аноним 07/09/23 Чтв 00:48:33 2831740 363
>>2831737
Умение признать ошибки явно не относится к плохим качествам
Аноним 07/09/23 Чтв 00:49:41 2831741 364
>>2831740
Ну да. Шарпогной обычно этим не отличается, здесь ты своих собратьев превзошёл.
Аноним 07/09/23 Чтв 00:50:46 2831742 365
>>2831738
может
не использую тустринг ибо нахер не нужно
но активно использую генерацию INPC и ConfigureAwait(false) по дефолту (ибо мелкие ну никак не хотят дать возможность задать это как нибудь для сборки)
Аноним 07/09/23 Чтв 00:52:15 2831743 366
>>2831742
>ConfigureAwait(false)
Хрюкнул с того, как шарподегенераты придумывают себе проблемы и героически с ними борются.
Аноним 07/09/23 Чтв 00:52:30 2831744 367
Аноним 07/09/23 Чтв 00:56:20 2831746 368
>>2831743
сказал говноед из мира жавы, где принципиально нет async/await и нужно мудрить какие то конструкции для простых задач.

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

>>2831744
дебил что ле? хотя кого я спрашиваю.
да может. И для этого достаточно просто поставить пакет из нюгета и указать место где ему можно вклиниваться с переписыванием.
Аноним 07/09/23 Чтв 00:59:45 2831748 369
>>2831742
Разве configureawait нужен не только для случаев когда нужно игнорить поведение кастомного контекста синхронизации? То есть кроме гуёвых аппок я не знаю таких случаев
Аноним 07/09/23 Чтв 01:06:41 2831750 370
>>2831746
>ты о чем говноедушка. тут же то что ты так хвалишь - не я пишу код, а тулза за меня пишет. Ты или трусы надень или иди нах в свой тред.
Дегроду не хватило мозгов даже понять смысл поста.
Аноним 07/09/23 Чтв 01:07:32 2831751 371
>>2831746
>да может.
>я скозал!!!!! нюгет. хуй.
Аноним 07/09/23 Чтв 01:11:04 2831752 372
>>2831748
либописатель не должен предполагать будет или не будет контекст. Он может быть везде, а не только в гуи. То, что его нет в асп.нет - ну это просто частный случай.

Было дело я даже в консольном приложении делал кастомный контекст.

Хотя как видно по INPC я больше пишу десктопные приложения и постоянные configureawait бесят, а решения от мелких нет.

>>2831750
>>2831751
ты дебил? да, дебил. ты спросил, тебе ответили. Не согласен - опровергни. Не можешь - иди пожри говна.
Аноним 07/09/23 Чтв 01:26:10 2831756 373
Вообще у меня горит от того что не сделали типа
await / await!
или
await / await? раз уж дефолтный true

А сделали хрень, которая приводит к дедлокам блин.
И сколько лет тема на гитхабе по этому вопросу.
Fody конечно хорошо, но он не учитывает контекст, хотя отловить "доступ к контролу не из того потока" и пофиксить проще, чем дедлок.
Аноним 07/09/23 Чтв 03:34:48 2831772 374
>>2831752
Ты нихуя не ответил, ты просто повторил "яскозал!!!!!" громче.
Аноним 07/09/23 Чтв 03:35:29 2831773 375
>>2831756
-30 social credit. Впредь будьте осторожны в выражениях.
Аноним 07/09/23 Чтв 17:14:18 2832434 376
>>2831772
слепой жавадебил с памятью как у рыбки может проследовать нахер.
Аноним 08/09/23 Птн 05:24:47 2832940 377
Ребзя, доводилось ли кому ебаться с группировкой в DataGrid WPF? Забиндил DataGrid на CollectionView, отфильтровал, всё прекрасно: но вот группироваться эта залупа отказывается напрочь - я уже все гайды от индусов перерыл, и в XAML забивал, и в коде группу добавлял: или нихуя не показывает, или не группирует. Бочку сделал, хуйцов сосну на следующем митинге.
Аноним 08/09/23 Птн 06:58:57 2832981 378
>>2832940
Ты делаешь неправильно
делай правильно и всё заработает
Аноним 08/09/23 Птн 07:59:01 2833010 379
2419635930.jpg 13Кб, 300x291
300x291
Аноним 08/09/23 Птн 10:54:45 2833130 380
2023-09-0810-31[...].png 12Кб, 350x433
350x433
Хочу запихнуть свойство своего класса в определенную категорию, чтобы оно нормально отображалось в окне свойств студии (Properties).

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

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

Я должен указывать категорию на языке, на котором установлена текущая локализация студии, что выглядит как какой-то ебанутый бред. Может есть какой-то способ учитывать локализацию?
Аноним 08/09/23 Птн 11:07:46 2833140 381
>>2833130
Самый простой это сходить в сорсы и посмотреть как это сделали майки
Аноним 08/09/23 Птн 11:12:26 2833144 382
Аноним 08/09/23 Птн 11:22:28 2833154 383
2023-09-0811-17[...].png 15Кб, 781x352
781x352
>>2833140
Бля, букву проебал, вместо "Appearance" писал Apperance".
Да, распознает сперва дефолтный язык, а потом локализует.
08/09/23 Птн 11:25:35 2833157 384
>>2832434
Ясн, слитая хуйня опять слилась.
Аноним 08/09/23 Птн 11:27:12 2833158 385
Чем объясняется феномен петушарпа, когда такой сблёв так рьяно защищается псинами, которым за гавканье даже не платят?
Аноним 08/09/23 Птн 11:42:52 2833175 386
Тред, где можно было получить нехуйственный ответ превратился в сблев из чатика домохозяек, обсуждающих какой ЯП лучше.

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

Вряд ли вот эти хуеплеты чем-то толковым занимаются, раз решили поднять тему, никуда не ведущую.
>>2833157
>>2833158
Аноним 08/09/23 Птн 11:45:02 2833180 387
>>2832940
Что за группировка? Ты о чем? Речь идет об автоматическом распределении данных по столбцам?
Аноним 08/09/23 Птн 12:25:33 2833207 388
>>2833180
Есть ObservableCollection, из которой берется CollectionView и байндится ItemSource'ом к DataGrid'y. В гриде есть возможность задать группировку по какому-то параметру (по типу, например): DataGrid.GroupDescription или grid.AddGroupDescription (пишу по памяти, поэтому могу точное имя метода всрать, но суть понятна), соответственно, в гриде строки будут сгруппированы и добавлен хедер группы. Только нет, не будет, иди поебись.

Забавно, что в соседнем DataGridController'e (кастомный грид от васяна) все прекрасно группируется при одинаковых байндах. Я всё пытаюсь узнать, кто криворукий: я или Паджит, писавший стандартные библиотеки.
Аноним 08/09/23 Птн 13:51:16 2833287 389
>>2833207
>Я всё пытаюсь узнать, кто криворукий: я или Паджит
Там наверно работоспособность отделяет проставка одной галочки, как это бывает обычно в WPF, и особенно у майков.
Аноним 08/09/23 Птн 13:52:44 2833289 390
WTF
Аноним 08/09/23 Птн 19:52:12 2833738 391
>>2832940
Ты дебил просто. Надо создавать в xaml collectionviewsource, в ресурсах, биндить его к IGrouped и в datagrid указать источник данных этот collectionviewsource
Аноним 08/09/23 Птн 23:32:25 2833969 392
>>2833738
Это всё тоже делалось, ты мне своим IGrouped тригернул, что в CollectionView есть параметр IsGrouped, который по дефолту false. Чел >>2833287 очень даже может быть прав.
Аноним 09/09/23 Суб 02:16:49 2834023 393
>>2833738
вообще то это магическая штука. Можно забиндить датагрид прямо на коллекцию источника, а потом сбоку подвязать
_collectionView = CollectionViewSource.GetDefaultView(Items);
и никуда биндить на этот _collectionView не нужно
и это волшебным образом заработает.

Хз как работает правда, может правит исходный список, но работает. А вот если нужно 2 вьюхам подвязываться на один список - вот тогда и нужно создавать раздельные CollectionViewSource и биндиться уже на них
Аноним 09/09/23 Суб 05:35:18 2834029 394
Почему в шарпе нет синтаксиса для подписки на событие только если ты ещё не подписан? Почему приходится городить всратые конструкции уровня
Event -= Handler;
Event += Handler;
?
Аноним 09/09/23 Суб 05:50:47 2834033 395
>>2834029
Потому что петушарп. И это даже не шутка. Фундаментальная проблема петушарпа, когда дегенераты пытаются запихнуть в язык то, что должно быть сделано сторонними бибиотеками. Разработчики петушарпа допускают ошибки/недоработки (что само по себе норма), но исправить их уже нельзя, потому что эта недоработка прибита гвоздями к языку.
Аноним 09/09/23 Суб 05:59:03 2834034 396
Лул. Как же шарпобляди копротивляются за свои каловые гетсетиниты, рассказывая сказки про то, как они сокращают код, а когда открывают среду разработки, они видят вот это: >>2833130
Аноним 09/09/23 Суб 06:19:57 2834043 397
>>2834029
Технически события в шарпе - не самое удачное решение. Оно очевидное!!!!, если нужно подписать метод и сахар к нему. Просто если у тебя состояние гонки, то такой подход не работает. Да и передать событие никуда нельзя ибо это сахар.

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

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

>>2834033
нет. потому что ты долбоеб. мы это уже выяснили не раз.

>>2834034
когда долбоеб жавист не знает, о чем он вообще говорит.
Аноним 09/09/23 Суб 06:48:15 2834046 398
Почему у шарпистов такой ресентимент по отношению к джаве?
Аноним 09/09/23 Суб 08:20:01 2834078 399
>>2834043
>потому что ты долбоеб
Хрюкнул с уровня аргументации. Стул туши.
Аноним 09/09/23 Суб 08:34:44 2834083 400
>>2834078
ок. поясню твою дурь
1 сторонними библиотеками базовые вещи = кто в лес, кто по дрова, 100500 подходов.
2 даже в убогой говножаве не сделали "на эту тему вообще ничего .мудрите что хотите, нас не колышет", а есть вполне себе стандартизированный подход работы с этим путем всяких там Listener-ов (что те же события в c# (ибо паттерн наблюдатель прост как сатиновые трусы) ...и в любом другом языке), то есть твой аргумент про "пытаются запихнуть в язык, поэтому идиоты" заведомо идиотский. И даже если ты вдруг не жавист, то в любом языке есть что то на эту тему, ну кроме синклер бейсика может.
Аноним 09/09/23 Суб 08:41:16 2834086 401
>>2834083
1. Ну да. Просто говна на вентилятор кинуть захотелось, или расскажешь, чем плохо не жрать блины с лопаты?
2. И щас ты мне взял и показал ключевое слово event в божественной Java. Я уже достаю список твоих обсёров и ручку.
Аноним 09/09/23 Суб 10:48:27 2834213 402
>>2834034
>про то, как они сокращают код, а когда открывают среду разработки, они видят вот это
Ну во-первых это нужно не всегда, это я решил навести красоту.
Во-вторых вся эта косметика (в буквальном смысле), накинута от души, хотя достаточно написать и так
[Category("Appearance"), Description("Жаба сосет хуи.")]

Это нужно чтобы в студии красиво отображались свойства твоего класса в окошечке настроек.
Аноним 09/09/23 Суб 11:53:59 2834299 403
Почему не придумали какой нибудь идентификатор, сообщающий, что свойство вызывает сторонний метод? Чтобы пользователь знал, что если захочет многократно использовать свойство, то лучше присвоить результат во временную переменную.

Я покопался во сорцах и там чуть ли не каждое второе свойство вызывает метод расчета. Я привык думать,что свойство безопасно и в большинстве случаев обращается к полю с готовыми результатами.
Аноним 09/09/23 Суб 12:13:05 2834332 404
Можно ли делать OnPropertyChanged публичным? Если нет, то на что это может повлиять? Все, что может он осделать, это заставить обновить свойство.
Аноним 09/09/23 Суб 12:18:38 2834338 405
>>2834299
Потому что это нормально - вычислять значение при вызове. Да и сегодня свойство быстрое, а завтра переделали и ты не знаешь
А проблему тебе покажет профайлер

>>2834332
Можно, почему ж нет.
Аноним 09/09/23 Суб 12:29:46 2834350 406
>>2834338
Т.е. это нормальная практика — присваивать свойство временной переменной, если в рамках одного метода она используется больше одного раза?
Аноним 09/09/23 Суб 12:31:50 2834356 407
>>2834350
Странные вопросы. Конечно да.
Аноним 09/09/23 Суб 12:32:59 2834357 408
>>2834350
Только в случаях, если вызов свойства реально сильно влияет на производительность. А иначе заниматься преждевременной оптимизацией не стоит.
Аноним 09/09/23 Суб 13:08:41 2834383 409
>>2834356
>Странные вопросы. Конечно да.
Ну вроде как плодить новые сущности тоже не хорошо — появляются сильные ссылки.

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

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

Я не знаю, есть ли способы оптимизировать каскадные обновления, чтобы первый элемент обновил свойство, а все остальные получали готовое значение.
Аноним 09/09/23 Суб 13:09:02 2834384 410
Аноним 09/09/23 Суб 13:14:16 2834390 411
>>2834383
Какие еще сущности
Как удобно, так и делай
Аноним 09/09/23 Суб 16:02:08 2834598 412
>>2834299
В структуры завезли ридонли методы и свойства.
Для классов такое сделать нормально скорее всего не возможно, потому что есть всякие кеши и внутренние счётчики, либо реаллокация буффера, что делает невозможным отличить поведенческую неизменяемость от чистой кодовой неизменяемости.

Но технически возможно сделать кастомный атрибут, что метод нечего не меняет, и добавить кастомную проверку, что такой метод вызывает только методы, которые помечены таким же атрибутом.
Аноним 09/09/23 Суб 21:29:19 2835078 413
1.png 40Кб, 684x692
684x692
2.jpg 8Кб, 430x52
430x52
Аноним 09/09/23 Суб 21:39:09 2835090 414
>>2834213
>надо писать бойлерплейт
>но можно написать в одну строчку и будет не так уродливо!
Аноним 09/09/23 Суб 21:41:36 2835093 415
>>2835078
А можно без бойлерплейта, просто указав, что в классе нужно сгенерировать по полям toString()?
Аноним 09/09/23 Суб 21:47:57 2835101 416
>>2835090
Будто в жаве - не используют аннотации.
Вот не пизди не себе не людям только.
Аноним 09/09/23 Суб 21:59:26 2835121 417
image.png 75Кб, 737x773
737x773
>>2835093
Можно.

Вот, наследуешься от специального объекта - говоришь, получаешь генерацию ToString. Даже не нужно метод переопределять в теле класса.
Аноним 09/09/23 Суб 22:09:30 2835143 418
>>2835121
Метод с атрибутами, лично мне нравится больше, потому что я может быть хочу, чтобы пароль - не выводился в ToString или выводился звездочками. Атрибуты - дают такую возможность и это заебись.

Как жава это сделает - я лично представлю. Таким же "бойлерплейтом" с магическими аннотациями, которые в жаве используются повсеместно, но почему-то атрибуты в шарпе стали плохими, а в жаве аннотации - хорошие.
Аноним 09/09/23 Суб 23:02:58 2835196 419
>>2835143
вот жеж вам скучно

>Как жава это сделает - я лично представлю
в жаве по аннотации это сгенерится в байткоде при компиляции
в шарпе то же самое делает fody

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

Поддержка IDE для тустринга не нужна, так что особой разницы между лобком этим и фоди нет в данном случае.
Но вообще это мало кому нужно генерить этот тустринг ибо явное лучше неявного.
Аноним 10/09/23 Вск 03:25:21 2835255 420
>>2835196
>разница лишь в том, что лобок этот старый тулз который очень необходим в жаве в силу ее выразительной убогости и поэтому и развился и даже поддержку IDE получил, а Fody больше платформа для того же самого, куда каждый пилит что хочет
>ничестно ебёте!
Аноним 10/09/23 Вск 03:26:53 2835256 421
Представляю, что творится со стулом у шарпочмохи. Уже неделю как его ежедневно обоссывают.
Аноним 10/09/23 Вск 03:38:46 2835262 422
>>2835256
Ничего не творится
Не тупи
Никакая кодогенерация сахара не исправит фундаментальные ограничения жавы.
Я с нее ушел на котлин и доволен как слон.
Если бы ты с котлином пришел, то у тебя была бы аргументация. Но с жавой ты вызываешь только сочувствие.
Аноним 10/09/23 Вск 03:45:04 2835264 423
Аноним 10/09/23 Вск 03:47:28 2835265 424
>>2835264
Убогий, вали уже в свой тред
На этом всё
Жавист настолько дебил что бесполезно пояснять ему что он дебил
Не буду тратить на это время
И другим не советую
Аноним 10/09/23 Вск 03:48:50 2835266 425
Аноним 10/09/23 Вск 15:39:56 2835727 426
>>2835196
>вот жеж вам скучно
Ну, мне реально скучно. Аналитика на работе нет, менеджеры - пидорасы. Вместо них - бегай за клиентом выясняй, че ж он там хочет, веди переписку, созвоны и прочее. Я уже месяца 2 ни строчки боевого кода не писал. А я, мать его, ПРОГРАММИСТОМ РАБОТАТЬ УСТРАИВАЛСЯ. Аааааа. Плак-плак.
Аноним 10/09/23 Вск 19:58:16 2835988 427
утянул с гитхаба солюшен, я точно знаю что он компилируется где-то там у человека на его машине, а у меня все засрано ошибками от проебанных зависимостей. как это вообще решают? я его не планирую у себя компилировать, есть ли способ хотя бы просто заткнуть студию на тему внешних зависимостей и посмотреть на код без красноты с сохранением ссылок внутри проекта?
Аноним 10/09/23 Вск 21:15:52 2836064 428
>>2835988
Ну дотнет рестор сделай
Аноним 10/09/23 Вск 21:20:41 2836075 429
Шарпаны вопрос.
Хочу выложить апи проект на сервер в докер
У меня будет сам проект + постгря + монга
Ессно всё на линупсе и под линупсом
Вопросы:
1) Кестрел или Нгинх?
2) Можно нормальный гайд для дебилов по выкладке в докер под линуксом для кестрела/нгинха?
По поводу кестрела - я упираюсь в то, что кестрел не видит сертификаты какие-то. Я чет по гайдам создаю на локальной машине и через енв переменные передаю в докер ран, но неткор все равно серт не видит. А остальные гайды бля под винду где проще
По нгинху чет сложнее прям выглядит, я пока не разбирал, если будет что-то хорошее скиньте плиз
Аноним 10/09/23 Вск 21:29:02 2836088 430
>>2836075
У тебя кестрел будет всегда и нжинкс опционально.
Нжинкс ставят отдельным контейнером независимым от тех кто за ним стоит, в рамках кубов это ингресс
Аноним 10/09/23 Вск 21:31:20 2836091 431
Capture.JPG 4Кб, 43x578
43x578
>>2836064
там не нугет, а целая стопка каких-то ебенячих пиздоглазых длл которые к гитхабу, конечно же, не приложены. я просто хочу временно заткнуть пикрелейтед.
Аноним 10/09/23 Вск 21:37:02 2836103 432
>>2836075
Ты мне кажется вообще не разобрался в теме. Сборка асп кор контейнера это 2 операции: copy твоих бинарей в aspnet:X.0 и entrypoint на длл. Всё.
Под виндой асп кор ведёт себя идентично лини покуда ты не лезешь в богомерзкий иис
Аноним 10/09/23 Вск 22:37:04 2836226 433
>>2836103
Это я понял. И в докерфайле это все прописано. Но когда я делаю тестово докер ран - контейнер запускается, останавливается, в логах пишет - сорри, но я не вижу сертов, сделай dotnet dev-certs https --trust (но это на Винду и мак, а на Линукс иди к нам в доки)
Я правильно понимаю что серт я генерю локально и должен просто передать как переменную среды в докер ран или композ?
И вообще, нужен ли этот серт мне для вебапи на впске, может я чет не так делаю?
>>2836088
Понял, спасибо
Аноним 10/09/23 Вск 22:40:09 2836232 434
>>2836226
Мне лень отвечать скажу только что
1. dev cert как бы удивительно не было только для разработки, кури доку по настройке кестрела
2. кури гугл, ты завуалированно просишь тебе доку пересказывать что докера что мсдн
Аноним 11/09/23 Пнд 05:20:06 2836449 435
>>2835988
Решают установкой Java и maven.
Аноним 11/09/23 Пнд 05:28:16 2836452 436
>>2836091
Чудес не бывает. Нет зависимостей - IDE не может проиндексировать то, чего нет.
Аноним 11/09/23 Пнд 05:36:07 2836455 437
>>2836452
Понимаю, шарпобляди сложно понять, что он сидит в луже говна, но представь себе, бывают. В Java давно уже забыли про проблемы с зависимостями благодаря божественному мавену.
Аноним 11/09/23 Пнд 05:37:55 2836457 438
>>2836455
ДОЛБОЕБУ сложно понять что чел НЕ ХОЧЕТ затягивать зависимости на машину ибо ему не нужно компилить, а просто код посмотреть с рабочими переходами по коду
Аноним 11/09/23 Пнд 05:41:02 2836459 439
>>2836457
>нет, это ни я ни магу, это мне нинужно, слышите, нинужно!!!! так как убрать красное говно из IDE?
Оподливился с коупящей шарпочмони.
Аноним 11/09/23 Пнд 05:45:25 2836460 440
>>2836455
зато у нас есть тулза, чтобы автоматически ставить configureAwait(false))))) джавабляди соснуле))
Аноним 11/09/23 Пнд 05:54:35 2836461 441
>>2836460
джавалох скажет что у них нет асинк/авайт поэтому им не нужно configureAwait, и даже не поймет какой он лошара.
Аноним 11/09/23 Пнд 05:55:58 2836462 442
— Двач-программач, вот у меня почему-то красненьким все в среде разработки показывается…
— Так ты ж пишешь на петушарпе. Джаву с мавеном попробуй.
— Джаваблядь закукарекала. На джаве мне неудобно.
— Тогда ручками зависимости качай, лалка.

— Двач, а почему я код так медленно пишу? И мне очень неудобно.
— Потому что ты на петушарпе пишешь? На джаве пиши.
— Джавабляди не нужны! Бамп! Еще варианты? Бамп!
— Ну котлин попробуй.
— Ебанутые...

— Двач, почему на меня коллеги так странно поглядывают?
— Потому что ты на петушарпе ешь!
— Каждый раз одно и то же, что за дебильные анонимусы. А другого объяснения нет?
— Может и есть, но это не важно. Важно писать код на джаве.
— Кажется, я совсем не понимаю мира и не гожусь для этой жизни.
— Да все с тобой нормально, просто возьми джаву, когда надо будет написать код.
- ПРОСТО! аххахахах! ПРОСТО! Ахуительная история. Угу. ПРОСТО блять. Спасибо, идиоты, за совет, блять.

— Двач, двач! Мне так плохо, я опять не выспался! За что мне это?
— На чём код писал, дебилушка?
— На петушарпе, конечно.
— А джаву не пробовал взять?
— Почему анонимусы так безжалостны ко мне, а еще двач-помогач?! Это невыносимо!
— Джаву взять не пробовал?
— Нет!
— А что тебе помешало?
— Я не хочу об этом говорить. Всё. Тред закрыт. САЖИ ТРЕДУ САЖИ. Вайп!

— Знал бы ты, двач, как я хочу композиции!
— У каждого своя судьба.
— Как ты думаешь, анон, когда-нибудь у меня получится сделать композицию? Я ведь не хочу ничего особенного.
— Так скачай JDK, установи lombok и пиши свою композицию.
— Да? Хорошо, я подумаю.

— Двач, и как люди пишут toString() для классов и не помечают все поля бойлерплейтом?
— На джаве, блять!!
— А чего ты ругаешься сразу? Я ж нормально спросил...

— Анон, поговори со мной.
— Я конструкторы пишу.
Аноним 11/09/23 Пнд 05:57:06 2836463 443
>>2836461
Ну да, мы не занимаемся придумыванием себе проблем и героическим их побеждением.
Аноним 11/09/23 Пнд 06:03:04 2836466 444
>>2836462
ты просто брехливое чмо
в жава та же ситуация - открываешь проект и начинает затягиваться куча говна и пока все это говно не затянется все будет красным гореть. Так что иди нах, дебич
Аноним 11/09/23 Пнд 06:03:56 2836467 445
>>2836463
а твой хваленый ломбок по твоему что? как не средство победить проблемы жавы
ох ох ЛОШАРА
Аноним 11/09/23 Пнд 06:05:01 2836468 446
>>2836466
Всё затягивается автоматически. Если интернет хороший то вообще такой вопрос как "пачему краснинькае" не появляется, все сразу нормально.
Аноним 11/09/23 Пнд 06:07:51 2836469 447
>>2836467
Ты правда не видишь разницы? Джава то, что решает ломбок не придумывала (0), она просто нихуя не делала в этом направлении. В петушарпе же навалили кучу говна (-1), которую пришлось разгребать через configureAwait(false).
Аноним 11/09/23 Пнд 06:19:49 2836470 448
>>2836468
в дотнете тоже все затягивается автоматически.
Исключение - зависимости были просто кучкой длл или зависимыми проектами, которые просто не были выложены в паблик.

В жава при таком подходе эта же куча жаров ниоткуда сама не нарисуется и подпроекты тоже.

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

>>2836469
>она просто нихуя не делала в этом направлении.
>В петушарпе же навалили кучу говна (-1)
ИМЕННО. Когда УЖЕ во многие языки завезли асинк авайт (даже в пхп появится лол) - в жаве кодят как еще прадеды кодили - строят монструозные конструкции и закатывают солнце вручную.
про onfigureAwait(false) ты вообще не знаешь что это - так что смешно слышать от джавалошка какую то там критику
Аноним 11/09/23 Пнд 06:23:38 2836471 449
помню сколько слышал от жавистов "не нужны нам ваши лямбды" - а потом бац и завезли. ЛОООООЛ ГОВНОЕДЫ
Так если не нужны, то чего вдруг убедили разрабов жавы таки добавить их в жаву

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

просто смешно слушать подобных говноедов.
Аноним 11/09/23 Пнд 06:24:57 2836472 450
Capture.JPG 33Кб, 490x72
490x72
>>2836452
я посмотрел уже и пиздоглазых вызовов там не так уж и много и по коду можно примерно понять что там они делают и почем
то что мне надо находится внутри неймспейсов проекта т.е. оно все нормально индексируется.
но каким-то хуем отвалился весь System + System.Collections.Generic.
вот что это за ШИЗА?
Аноним 11/09/23 Пнд 06:28:19 2836473 451
>>2836472
это глюк студии. Открываешь старый проект - все красное. Нужно удаление .vs (иногда не помогает)
в idea-шных IDE там есть рестат и инвалидация кешей, а в студии удаляю .vs
Аноним 11/09/23 Пнд 06:35:00 2836474 452
>>2836470
>в калнете всё затягивается автоматически
И что же у того анона всё красное?
Аноним 11/09/23 Пнд 06:37:01 2836475 453
>>2836471
Ну не надо проецировать. Обычно такое слышится от шарпоблядей, которые лучше ручками будут макакить бойлерплейт и, чтобы легче было коупить, еще и пообещают линтером нипущить и зопретить нормальные человеческие практики, если они появятся.
Аноним 11/09/23 Пнд 06:37:14 2836476 454
>>2836473
я это первым делом сделал, не помогло.
Аноним 11/09/23 Пнд 06:40:32 2836477 455
>>2836470
>иммяяяна!!!!
Что именно-то? Ты выёбываешься кучей говна, которую фиксят неявным добавлением конфигуравейта всюду?
Аноним 11/09/23 Пнд 06:49:59 2836478 456
>>2836474
мало ли. может проект на дотнет 5, а у чела просто на машине такого нет, а стоит 7
Не стоит путать рантайм и сдк

А может, как оно обычно бывает, проект пытается быть кросс и там прописано 100500 вариантов вида .net461, core, standard и части этого добра просто нет на машине

вот у меня нет - я пишу под дотнет 7, зачем мне старое.

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

>>2836475
>которые лучше ручками будут макакить бойлерплейт
совсем тупой???? это слышится в ПЕРВУЮ ОЧЕРЕДЬ от жавистов (и от гошников, но их понять можно) и жависты такие "нахер нам это не нужно. у нас ентерпрайз, посмотри сколько написано всякого на жаве".
только жавист будет терпеть монструозность синтаксиса. Взять те же гет сеты - их так и не сделали в самом языке лол, а заставляют жавамакаков либо иметь весь этот бойлерплейт в коде (и насрать что это IDE сгенерит - это просто синтаксический мусор) или юзать сторонние вещи которые сгенерят не в код.

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

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

>>2836477
Ну пиши явный какая проблема. пишут же жава лошары гетХ/сетХ и их не парит. А те кто не пишут, те генерят.
так и тут - нет разницы

И вообще это опционально. В асп.нет кор он не нужен в принципе. Также можно детачнуть контекст на старте операции и дальше уже конфавайтить тоже не нужно. Разные способы есть.

Но это мелочи жизни по сравнению с ВООБЩЕ НЕТ АСИНК/АВАЙТ, пишем как прадеды
Аноним 11/09/23 Пнд 07:30:00 2836487 457
>>2836478
>мало ли. может проект на дотнет 5, а у чела просто на машине такого нет, а стоит 7
Хуя себе оправдание шарпошлюхи. А что оно оправдывает-то?
Аноним 11/09/23 Пнд 07:32:35 2836489 458
>>2836478
>совсем тупой???? это слышится в ПЕРВУЮ ОЧЕРЕДЬ от жавистов (и от гошников, но их понять можно) и жависты такие "нахер нам это не нужно. у нас ентерпрайз, посмотри сколько написано всякого на жаве".
>только жавист будет терпеть монструозность синтаксиса. Взять те же гет сеты - их так и не сделали в самом языке лол, а заставляют жавамакаков либо иметь весь этот бойлерплейт в коде (и насрать что это IDE сгенерит - это просто синтаксический мусор) или юзать сторонние вещи которые сгенерят не в код.

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

>А в жаве за каждую фичу нужно жертвы богам приносить или я не знаю что сделать чтобы это было. Делают в итоге что то- через десяток лет лол. ДАЖЕ если это просто сахар и не портит совместимость.
Самый эпичный "нет, ти!!!!" за всю историю человечества. Ладно, повоевал с джавистами, пора и писать туСтринг вручную. Генератор его же ненужен. Стоп, это же джависты так говорят только. Падажжи ёбана...
Аноним 11/09/23 Пнд 07:38:22 2836491 459
>>2836478
>Ну пиши явный какая проблема. пишут же жава лошары гетХ/сетХ и их не парит. А те кто не пишут, те генерят.
>так и тут - нет разницы
Не-а. @Getter в джаве такой же явный, как и метод getХуй(). Потому что когда открываешь класс, сразу видишь, что он делает. А твоя параша настраивается где-то в ебенях и делает неявно хуйню на весь проект, и пока не прочитаешь все настройки говнофоди, не поймёшь, что и как работает. И еще их держать в голове надо.
Аноним 11/09/23 Пнд 07:55:25 2836497 460
>>2836489
1 "нет ти" это про тебя. посмотри каждый второй свой пост жавалошок
2 про тустринг тебе выше по треду много раз поясняли
ты долбоеб какой то реально. Пытаешься косить под тролля, но косишь под долбоеба. и не перестаешь

>>2836491
>Не-а. @Getter в джаве такой же явный, как и метод getХуй()
{get; } такой же явный как и метод гетМозгУжавистаЕсли найдешь()
>и делает неявно хуйню на весь проект
ну точно долбоебище эпичный.
то есть тебе в говножаве можно указать аннотацию где ты хочешь чтобы оно работало, и это типа можно только в жаве - весь остальной мир типа работает неявно

нет никакой принципиальной разницы между ломбоком и фоди если не нужна поддержка IDE. Но как пояснить это жавалошаре?
Аноним 11/09/23 Пнд 08:04:58 2836499 461
>>2836497
>1 "нет ти" это про тебя. посмотри каждый второй свой пост жавалошок
И снова "нет, ти!!!", лол.

>{get; } такой же явный как и метод гетМозгУжавистаЕсли найдешь()
Ебло, кто-то тебя за {kukarek;} спрашивал? Мы про конфигуравейт говорили.

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

>нет никакой принципиальной разницы между ломбоком и фоди если не нужна поддержка IDE. Но как пояснить это жавалошаре?
Ну и это тоже. Ещё один "нинужно", но не забывай, так говорят только джависты.
Аноним 11/09/23 Пнд 08:07:59 2836500 462
Это ж пиздец, он правда перешёл на шизофазию. Интересно, это петушарп и его комьюнити так по мозгам долбит или наоборот, в петушарп идут только с iq < 80?
Аноним 11/09/23 Пнд 08:09:03 2836501 463
cvsj.jpeg 6Кб, 259x194
259x194
А по работе как?
Вкатывался в Java Spring, понял основы MVC - но сейчас учу Unity. На .Net Core смогу работу найти?
Аноним 11/09/23 Пнд 08:26:13 2836507 464
>>2836499
>И снова "нет, ти!!!", лол.
это уже клиника у жаволошка. проехали

>Ебло, кто-то тебя за {kukarek;} спрашивал? Мы про конфигуравейт говорили.
цитирую жавалошка
>Не-а. @Getter в джаве такой же явный, как и метод getХуй()
>Мы про конфигуравейт говорили.
еще одна клиника. склероз. тебе бы к врачу что ли

по поводу же ConfigureAwait - он настраивается (как и все в фоди) и указываешь в каких проектах тебе это нужно. Ничего неявно не начинает работать автоматом абы где - даже это модуль работает только там, где ЯВНО укажешь.

>Ещё один "нинужно",
поясняю жаваЛОХУ
если у тебя генерятся геттеры и сеттеры, то IDE должна как то узнать об сгенереном, чтобы ты мог юзать их в коде и IDE не ругалась "нет такого". В случае с гетсетами или тустрингами или конфигуравайтами ОНО СУЩЕСТВУЕТ изначально - то есть никакого неявного НОВОГО кода, про который студия должна ждать - ПРОСТО НЕ РОЖДАЕТСЯ, а потому не нужны никакие доп средства чтобы студии рассказать "там эта, у тебя свойство появилось"

я понятно пояснил долбоебу? впрочем, у него шиза и склероз.
Аноним 11/09/23 Пнд 09:07:16 2836537 465
>>2836501
Не сможешь, если сейчас же не выкинешь Unity и не начнёшь учить ASP.NET.
Аноним 11/09/23 Пнд 15:36:49 2837048 466
>>2836507
>рррря, клиника!!!!
А может по делу что-то скажешь? Алсо, снова "ниееет, ти", ведь я до этого недвусмысленно намекнул на твои психические заболевания постом про шизофазию, лол.
Аноним 11/09/23 Пнд 15:44:17 2837066 467
Есть какой нибудь пакет для создания REST API сервара по типу RestSharp'а?
Аноним 11/09/23 Пнд 16:07:26 2837108 468
>>2837048
по делу тебе все сказано
и не раз
и даже к доктору послал - тоже по делу.

>>2837066
ты с клиентом попутал?
Аноним 11/09/23 Пнд 16:13:50 2837118 469
>>2837108
>ты с клиентом попутал?
Нет, нужен именно сервер (небольшой), не хочу ASP тянуть, хочу в функционалоном стиле свои обработчики запросов написать как например в сишном Served https://github.com/meltwater/served .
Аноним 11/09/23 Пнд 17:27:46 2837250 470
>>2837118
нуу это искать какой то велосипед, который потом все равно забросят. Надо ли оно.
Аноним 11/09/23 Пнд 17:37:18 2837261 471
2023-09-1117-28[...].png 10Кб, 919x170
919x170
2023-09-1117-28[...].png 6Кб, 600x135
600x135
Почему в шарпе, когда IntelliSense предлагает мне имя опционального параметра аля "message:", после его выбора двоеточие не вставляется? Я получаю просто "message". В бейсике все работает.

Я уже заебался подставлять двоеточие вручную. Может я что-то делаю не так?
Аноним 11/09/23 Пнд 17:40:34 2837264 472
Аноним 11/09/23 Пнд 17:47:50 2837272 473
>>2837261
Хуй знает, с решарпером всё ок
Аноним 11/09/23 Пнд 18:10:27 2837307 474
>>2837250
Ну на С++ вон написали даже на лямбдах. На С# сам бог велел.
Аноним 11/09/23 Пнд 18:28:44 2837357 475
1694446122400.jpg 614Кб, 1080x2340
1080x2340
>>2837118
Берёшь и смотришь каждый у кого больше 100-150 звёздочек
Аноним 12/09/23 Втр 00:24:29 2838096 476
Capture.JPG 9Кб, 346x231
346x231
в приличном обществе за такое бьют ногами если нельзя использовать конструктор?
я планирую вызывать этот метод только один раз, но паранойя говорит мне обратное.
Аноним 12/09/23 Втр 00:58:58 2838141 477
>>2838096
В приличном обществе бьют за логику в конструкторах
Делай выводы
Аноним 12/09/23 Втр 01:02:20 2838142 478
>>2838096
Зависит от того куда ты интегрируешься. Для ui фреймворков это распространено но в условном асп бэке я бы не хотел такое видеть (либо спихнуть на di этот вызов)
Аноним 12/09/23 Втр 02:41:22 2838200 479
>>2837108
Ясно, манька обоссана в очередной раз.
Аноним 12/09/23 Втр 06:57:27 2838247 480
>>2838096
Зависит. Так что никто не бьет.

Ну. Типа допустим, у тебя как-бы плагинная архитектура. Ядро - прходится по папочке ./plugs ищет dll'ки и достает из них IPlugin'ы. Ну вот как иначе ты будешь их инициализировать, чтобы было ПРОСТО.

Просто вот такие вот Init, BeforeInstall, Install, AfterInstall, OnTick, BeforeUninstall, Unistall, AfterUninstall и прочее - должны быть не в единственном экземпляре на весь проект, а частью некоего архитектурного решения, которое должно быть задокументировано и про которое должны все знать.
Аноним 12/09/23 Втр 07:08:23 2838250 481
>>2837066
Могу своим поделиться.
Умеет отдавать статику. В остальном - вот контекст, че хочешь то и делай с ним.

Суть примерно следующая:

new ServerBilder()
.Listen(80)
.UseStatic("./www")
.UseServices(serviceProvider)// чтобы в стиле ASP провайдить сервисы в обработчкик
.CreateDipatcher(assembly)
.Use<POST>((ctx, "my/secret/api") =>
var dao = ctx.Request.Body.FromJSONAsync<MyDAO>();
Console.WriteLine(dao);
return ctx.CreateResult.OK(new {status = "OK"});
)
.Build()
.Run();
Аноним 12/09/23 Втр 07:13:25 2838252 482
>>2838250
Да.
Не умеет в вебсокеты
Не умеет в HTTP3

Мидлвары - есть, но полезных - я не делал, так что если авторизация какая-то хитрая - сам делай.
Аноним 12/09/23 Втр 14:31:13 2838614 483
почему у вас в оппике 2 картинки посвещены жявке?
у вас комплекс неполноценных долбаебов?
пытаетесь самим себе доказать что ваше говноязык лучше говноявы?
Аноним 12/09/23 Втр 15:29:31 2838691 484
Продолжаю пилить программу для рисования с использованием Win2d, и столкнулся с одной проблемой, решение которой я надеюсь вы мне подскажите. В Win2d есть такое понятие как CanvasDevice, который собственно хранит контекст необходимый для работы с видеокартой. И все элементы, которые друг с другом взаимодействуют должны быть порождены от одного CanvasDevice, иначе выскочит исключение. Так вот, у меня есть холст (обычный контрол, объявляемый в XAML), и есть кастомные кисти, которым зачастую для работы необходимо инициализировать ресурсы, зависимые от CanvasDevice. Собственно вопрос, как это сделать? На данный момент у меня это реализовано следующем образом - при создании кисти она не загружает никаких ресурсов, загрузка происходит в момент установки кисти текущей кистью для рисования, для чего в обработчике изменения DependencyProperty у меня вызывается асинхронный метод Initialize в который передается контекст необходимый для инициализации. Беда в том, что зачастую загрузка нужных элементов асинхронна, как итог приходится делать сам метод асинхронным, а это может привести к тому, что пользователь попытается нарисовать до того, как загрузятся ресурсы. Соответственно будет краш. И в целом меня напрягает, что я не могу обеспечить необходимый порядок работы программы.
Как быть?
Аноним 12/09/23 Втр 16:38:33 2838766 485
>>2838614
Потому что жавист перекатил тред
Пока шарписты спорили каких аниметянок юзать для переката
Аноним 12/09/23 Втр 20:00:31 2839023 486
Аноним 12/09/23 Втр 20:04:01 2839025 487
>>2839023
Я почему спрашиваю.
Я вот смотрю. И я как-бы понимаю, что оно делает. Потому что типа блин, я не первый день код чужой читаю.
Но пиздец. Неужели вот так надо было писать?
Чтобы что?
Аноним 12/09/23 Втр 21:26:06 2839080 488
>>2839023
Все кто пишут вот так
something
{
}
А не
something {
}
Больные на голову люди. Их лечить надо
Аноним 12/09/23 Втр 21:34:57 2839089 489
>>2839080
Иди нахуй, жабадаун.
Аноним 12/09/23 Втр 22:04:39 2839112 490
>>2838766
Ещё и спермотоксикоз.
Аноним 12/09/23 Втр 22:06:06 2839114 491
>>2839089
Сколько конструкторов за сегодня написал, болезненный?
Аноним 12/09/23 Втр 22:11:20 2839115 492
>>2839114
Написал два конструктора для инициализации твоей мамаши.
Аноним 12/09/23 Втр 23:30:18 2839177 493
image.png 101Кб, 1365x686
1365x686
Теперь я буду скриношоты с вимом постить!
Так вот.
Теперь у меня вопрос в связи с этим.
Как сюды дебагер прикрутить?
Аноним 12/09/23 Втр 23:43:14 2839180 494
>>2839177
> Теперь у меня вопрос
Вот поэтому ты и не будешь постить скриншоты с вимом.
Аноним 12/09/23 Втр 23:46:54 2839181 495
>>2839180
Ну блин.
Типа я чет не нашел как прикрутить дебаггер к виму.

А хочу с вимом поиграться.

Можно конечно emacs который как-бы иде. Но я слышал много нехороших слов про него в свое время.
Аноним 12/09/23 Втр 23:50:50 2839184 496
>>2839181
Хм.
Вроде нашел некий VimSpector

Уже поздно. Завтра буду играться с ним.
Аноним 13/09/23 Срд 00:11:33 2839197 497
1694553091517.jpg 26Кб, 490x274
490x274
>>2839180
>>2839177
Никогда ты не будешь постить скриншоты с вимом
Аноним 13/09/23 Срд 00:22:15 2839202 498
>>2839197
Ух, наверняка просмотр в детстве фильмов про хакеров как-то повлиял на моё желание вкатиться.
Аноним 13/09/23 Срд 01:45:34 2839225 499
>>2838691
Во-первых, вероятно тебе нужно отключить у холста реакцию на мышь на время инициализации кистей. За это отвечает вроде как свойство IsHitTestVisible=false. В WPF оно есть у каждого контрола. В этом случае холст перестает реагировать на любые клики мыши, стилуса (про клавиши не помню, но вероятно тоже).

Если у тебя не WPF, а еще какая-то залупа, в которой нельзя отключить хит мыши, то можно поверх холста бахнуть слой практически прозрачного Border или Grid или чего угодно, который бы собой блокировал холст пока идут необходимые операции. Достаточно 1% прозрачности, чтобы заблокировать собой клик мыши, при этом юзер не заметит разинцы.

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

Грубо говоря, вот в этом коде:

public static void Test()
{
. . . _ = TestEachAsync();
. . . Debug.WriteLine("Хуякс!");
}

public static async Task<bool> TestEachAsync()
{
. . . for (int i = 0; i < 10; i++) {
. . . . . . Debug.WriteLine(i);
. . . . . . await Task.Delay(1000);
. . . }
. . . return true;
}


Ты получишь вот такой ответ:
>0
>Хуякс!
>1
>2
>3
>4
>5
>6
>7
>8
>9

Как видишь, сообщение "Хуякс!" из метода Test было выведено не дожидаясь завершения метода TestEachAsync. Оно не на первом месте, но это просто вопрос микросекунд, либо пока не закончится одна итерация async-метода.

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

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

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

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

Про токен завершения гугли TaskCompletionSource
Про токен отмены гугли CancellationTokenSource
Аноним 13/09/23 Срд 01:48:55 2839226 500
>>2839080
Соси хуй. Дрызготня из строк нравится только сумасшедшим.
Локальные блоки выглядят более цельными как раз в варианте
something {
}

и нет

вот

этой

ненужной

хуеты

внутри

метода
Аноним 13/09/23 Срд 01:58:07 2839228 501
>>2839226
Интересно на что стриггернулся вайп-фильтр? На пробелы? Разве это не доказательство пососной идеи — ставить везде
something
{
}
Аноним 13/09/23 Срд 02:00:58 2839229 502
Аноним 13/09/23 Срд 03:34:21 2839242 503
>>2839080
Двачую. А еще бесят пидоры, которые вместо doSomething(arg1, arg2, arg3, arg4); пишут

doSomething(arg1,
arg2,
arg3,
arg4);

Это отдельные конченные уебки
Аноним 13/09/23 Срд 07:15:15 2839264 504
>>2839242
Если аргументы большие или там целое выражение на каждый аргумент — то можно. Только вот конечно arg1 тоже переносить надо, и скобку последнюю, а то так правда уёбищно.

doSomething(
—— arg1,
—— arg2,
—— arg3,
—— arg4
);
Аноним 13/09/23 Срд 07:15:40 2839265 505
>>2839242
Ну ок. Только ты в оффис мне 21:9 будешь покупать монитор, чтобы это помещалось в.

await userBasketAdder.AddGoodsToUserBasket<DefaultUser, MarketGoods>(user, goodsList, discountCalculator, priceProvider, geopositionProvider, weatherProvider, deliveryProvider, zodiacProvider, astroTimeClockProvider, loggerFactory, cancellationToken);
Аноним 13/09/23 Срд 07:22:01 2839266 506
>>2839023
Какой-то анальный CommandExecutor. Дал бы хотя-бы какую-нибудь тестовую задачку, чтобы легче было понять, понятный код или нет.
Аноним 13/09/23 Срд 07:25:02 2839267 507
>>2839266
Это код который разбивает буффер на "фреймы".
Собственно. Потому я и задаюсь вопросом. А надо ли было его вот настолько обскурным делать? Типа все что оно должно сделать - проверить - встречается ли в буффере какая-то последовательность символов, либо что буффер заполнен на нужное количество байт.
Аноним 13/09/23 Срд 20:45:23 2840195 508
Объясните тупому простую вещь. Конфигурация многие ко многим в EF Core.
На примере Student и Course, допустим.
Я пишу типа:
modelBuilder.Entity<Student>().HasMany<Course>(s=> s.Courses).WithMany<Course>(c=>c.Students).UsingEntity<StudentCourse>()

Так?

Вопрос 1. Где это писать? В StudentConfiguration?
Вопрос 2. В CourseConfiguration надо то же самое повторять на эту тему? Если да, то как избежать повтора? Если нет, то как выбрать между StudentConfiguration и CourseConfiguration для описания связей?
Вопрос 3. Можно ли это как-то написать внутри StudentCourseConfiguration?
Аноним 13/09/23 Срд 22:06:14 2840297 509
>>2840195
То есть немного не так, да, modelBuilder он внутри глобального OnModelCreating, но его не хочется захламлять, сущностей много, связей тоже. Надо вынести в конфигурацию, в какую?
Аноним 13/09/23 Срд 23:24:39 2840403 510
>>2836462
Я вижу ты шаришь. Тред про шарп, но спрашу, раз тут гуру джавы сидит.
Смотри. У меня есть проект на ant, java 5, в котором используется mina и какие-то jre отсутствуют, как я понял, судя по названию класса MainSplashScree, AcitvationWindow и т.д. эти jre какие-то связанные с визуалкой.
Собсвтенно. Я сколько не пробовал - все горит красненьким. Ставил идею, ставил нетбинс, ниче само не качается, ругается и не работает.
Че мне делать? Надо собрать и кое-какие изменения внести. А нихуя не собирается.
Аноним 14/09/23 Чтв 00:34:33 2840454 511
>>2840297
ientitytypeconfiguration

>>2840195
Я описываю связи в сторону один ко многим (то есть как если будешь смотреть ddl к таблице)
Аноним 14/09/23 Чтв 00:38:00 2840457 512
>>2840195
А вообще обычно я не пишу эти связи т.к. они автоматически по навигационным пропам строятся и только миграцию проверяю.
Нужно руками задавать только если какой то криворукий мудила всё сломал до тебя и еф не может сам понять ту хуйню которую ебанул этот призрачный гений
Аноним 14/09/23 Чтв 09:21:08 2840609 513
Снимок экрана 2[...].png 66Кб, 836x573
836x573
Зачем делать приватную переменную и а потом еще публичную, у которой get и set чтобы обращаться к приватной? Какой в этом смысл?
Аноним 14/09/23 Чтв 09:30:19 2840618 514
>>2840609
Чтобы изнутри класса изменять переменную в обход логики в свойстве.
Аноним 14/09/23 Чтв 10:41:40 2840663 515
>>2840403
Jre это джава, еблан. Не может отсутствовать "несколько jre".

Но вообще, понятия не имею, в чем у тебя дело, ant это легаси хуйня и не потому что какие-то зумеры решили отменить его и заставить всех перейти на своё говнецо, а потому что сами разработчики анта решили сделать вместо него мавен. Может быть (не шарю за ант) ант вообще не умеет автоматически качать зависимости.
Аноним 14/09/23 Чтв 11:12:14 2840726 516
JRE, JAR, какая разница, кого это ебёт.
Аноним 14/09/23 Чтв 11:47:28 2840781 517
>>2840726
Большая. Я долго не мог понять, что ты/он имеет в виду под "отсутствует несколько jre".
Аноним 14/09/23 Чтв 12:30:08 2840832 518
Почему RestSharp всегда возвращает ответ OK хотя никакой сервер не работает и браузер по тому же адресу честно возвращает ошибку?

var options = new RestClientOptions("localhost:8999") {
Authenticator = new HttpBasicAuthenticator("username", "password")
};
var client = new RestClient(options);
var request = new RestRequest("testapi");
var response = await client.GetAsync(request, cancellationToken);
Аноним 14/09/23 Чтв 14:18:16 2841001 519
>>2840832
Бери да смотри в дебаггере. Почём нам знать что у тебе выдаёт рестшарп?
Аноним 14/09/23 Чтв 14:57:58 2841056 520
>>2841001
Ты дурак или да? Написал же что он всегда возвращает ОК даже если никакого сервера нет.
Аноним 14/09/23 Чтв 15:52:35 2841118 521
>>2841056
Может ты? У тебя, мать его, целый объект приходит, а не просто "OK"
Аноним 14/09/23 Чтв 18:01:34 2841344 522
>>2840663
В папке проекта - подпапка packages, там лежит куча jar'ов
сторонних компонентов: для составления excel'евских отчетов, для работы с БД, много чего еще, но каких-то jre с визульной частью - нет. А в самом проекте - они прописаны. И проект - не собирается. Вот совсем.
Аноним 14/09/23 Чтв 18:27:36 2841406 523
>>2840609
Публичным ты делаешь свойство а не переменную.
Зачем? На твоем скрине - буквально показано зачем. Чтобы можно было логику какую-то добавить как в get так и в set.
Вот допустим ты решил возраст хранить в int потому что удобно часто именно в int хранить.
Но ты не хочешь, чтобы снаружи какой-нибудь еблан сделал отрицательный возраст.
Если ты наружу поле вытащишь, кто угодно в коде сможет это делать, и придется по всему коду делать проверки, которые бы могли быть внутри класса.

Ну. Типа давай на примере с возрастом.


public class Age
{

private int _totalYears = 0;
public Age(int totalYears) => TotalYears = totalYears;
public TotalYears { get => _totalYears; set {Validate(value); _totalYears = value} }
pruvate Validate(int val) => Throw<ValidationException>.If(val<0);

}
Аноним 14/09/23 Чтв 19:57:15 2841540 524
>>2841344
Ну выясняй значит, чего тебе туда недоложили, и докладывай сам.
Аноним 14/09/23 Чтв 20:05:31 2841546 525
>>2841540
Так а как же джава, которая все сама?
Аноним 14/09/23 Чтв 20:05:42 2841548 526
>>2841118
Нахуй ты лезешь абы вякнуть если нихуя не петришь? Другие свойства все пустые, ничто не выдаёт ошибку.
Аноним 14/09/23 Чтв 20:11:33 2841554 527
>>2841548
Ну, тебе виднее, мистер неспособный провалиться дебаггером в длл
Аноним 14/09/23 Чтв 22:12:49 2841666 528
изображение.png 127Кб, 751x607
751x607
изображение.png 10Кб, 734x129
734x129
Здравствуйте. Написал вот такой код. Почему я вижу кракозябры заместо слов? Кодировку уже везде, где только мог прописал.
Аноним 14/09/23 Чтв 22:16:36 2841671 529
>>2841666
1. проставь кодировку в файле (студия заебала, но после добавления эдиторконфига с ютф8 вроде успокоилась)
2. заверни чистую строку в хтмл и проставь кодировку в хедере
Аноним 14/09/23 Чтв 22:18:01 2841674 530
>>2841671
хмм...Про второе даже не подумал, спасибо!
Аноним 14/09/23 Чтв 22:23:20 2841679 531
изображение.png 12Кб, 329x404
329x404
Аноним 14/09/23 Чтв 22:27:29 2841687 532
>>2840454
> ientitytypeconfiguration
Но какой? Студента? Курса? Обоих? В StudentCourse запихнуть не получается, или я не умею.

> описываю связи в сторону один ко многим
Но мне надо промежуточную таблицу описать. И FK в ней и к ней. У меня готовая бд.
Аноним 14/09/23 Чтв 22:38:58 2841691 533
>>2840195
> Вопрос 1. Где это писать? В StudentConfiguration?
В OnModelCreating. Плодить эти файлы с конфигурациями - долбоебизм, если у вас не 10+ человек в команде.
> Вопрос 2. В CourseConfiguration надо то же самое повторять на эту тему?
Не надо.
> Вопрос 3. Можно ли это как-то написать внутри StudentCourseConfiguration?
Можно. Но не нужно.


Вообще. Нахуя тебе эта промежуточная сущность? В 99% случаев оно нахуй не нужно. Если там какая-то логика нужна, типа - оплочено-неоплочено, когда оплочено и все такое, то тогда тебе нужна нормальная СУЩНОСТЬ, а не этот выпердышь.

Вообще. Сделай нормально. Если у тебя этот StudentCourse - таки сущность, а не просто отражение таблички, то назови нормально.
Аноним 14/09/23 Чтв 23:07:40 2841712 534
Когда требуется провести какие-то комплексные операции с файлами, типа архивации или разархивации, то нужно ли это делать через временную папку?

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

Архиватор так и делает для некоторых операций. Но разве это не сказывается на скорости работы? Или угроза задеть юзером данные важнее скорости?
Аноним 14/09/23 Чтв 23:34:03 2841747 535
>>2841687
Зачем ты их вообще прописываешь? Навигационные поля сделай и еф всё сам свяжет.
Не понимаю этой дрочи на прописывание всего ручками что и так очевидно для еф. Тем более что ты всё равно увидишь в миграции если что то не так пошло.

А связи у тебя 2 шт один ко многим и логично что если подход как выше писал то обе должны быть через StudentCourse заданы
Аноним 14/09/23 Чтв 23:37:58 2841756 536
>>2841712
- Не видел консольных архиваторов которые бы писали куда то а потом перемещали
- Видел что так делает 7зип гуёвый но почему хз, может что бы конфликты отдавать на откуп проводнику
Аноним 14/09/23 Чтв 23:41:05 2841758 537
>>2841712
Как так делает?
Архиваторы, обычно, берут и в памяти ворочают этим делом. Нахера им чет там распаковывать на диск? Чтобы что? Чтобы где?
Аноним 15/09/23 Птн 00:15:29 2841767 538
Capture.JPG 101Кб, 1086x439
1086x439
ЧЯДНТ?
кроме того что пытаюсь переписать на LINQ то что и так нормально работает
Аноним 15/09/23 Птн 00:31:16 2841775 539
Capture.JPG 36Кб, 982x105
982x105
>>2841767
>запостил и сразу же понял что там не так
спасибо, шарпач, теперь работает
Аноним 15/09/23 Птн 00:57:19 2841794 540
>>2841756
>>2841758
А как открыть компонент архива не распаковывая его?
Ну допустим у меня там xml-документ. Для его чтения я должен использовать XDocument или XmlReader, но они требуют путь к файлу.

Через Stream? Да, наврено. Вижу и там и там есть такой вариант.
Аноним 15/09/23 Птн 01:25:01 2841800 541
>>2841794
Тру вэй для xml это стримы т.к. к примеру всякие госы делают выгрузки по паре гигов на файл
Аноним 15/09/23 Птн 04:39:31 2841841 542
>>2841540
что значит докладывай?
А кто тут ротешник раскрывал
>Всё затягивается автоматически. Если интернет хороший то вообще такой вопрос как "пачему краснинькае" не появляется, все сразу нормально.

>>2841691
Завидую тем людям, от которых не требуют использовать EF
ой, да это же я )
Аноним 15/09/23 Птн 16:56:47 2842603 543
Можно ли сделать расширение для статического класса?

И вообще есть такая проблема. Допустим есть несколько классов, у каждого из которых должны быть методы:
Open(string filePath);
Save(string filePath);
Import(string filePath);
Export(string filePath);

Куда пихать эти методы?
- В тело самих классов? У меня нет опыта с реальными проектами, но выглядит мусорно. Я же не буду пердеж на каждый случай жизни пихать в класс? Неизвестно какой зоопарк образуется с экспортами, например.

- В команду типа ICommand? Неудобно. Хотя уже существуют по команде для каждого из четырех методов и мне достаточно для условного OpenMyClassCommand добавить метод Open. Это самый легкий путь.

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

Вообще интересует практика организации подобного. Насколько зашкварно пихать логику в ICommand? Или они должны существовать всего лишь мостом между View и внутренней логикой? Я считаю что второе.
Аноним 15/09/23 Птн 17:13:25 2842643 544
Я манал, как в WPF биндинги работают блджад? К чему я биндюсь блять? К классу? К объекту? А как xaml узнает к какому именно? Или я из кода объект к вьюшной залупе биндить должен? Но это же тогда надо блокам в xaml имена давать, а на стаковерфлоу пишут что так делать хуево и не по MVVMовски.
Аноним 15/09/23 Птн 17:25:37 2842662 545
>>2842643
К объекту
Который в DataContext в текущем месте если ты не пытаешься указать другое место (например ElementName= укажет его как начало для бинда (а не его DataContext)
Нет
Имена и MVVM перпендикулярны. Вид внутри себя может делать что угодно и как угодно.
Аноним 15/09/23 Птн 17:31:50 2842674 546
image.png 233Кб, 498x498
498x498
Аноним 15/09/23 Птн 17:34:32 2842679 547
>>2842643
Ты биндишься к свойству. Это свойство при обновлении вызывает событие, на которое триггерится привязка.

По твоему тексту ничего не понял. Ты бы описал конкретный пример к чему ты хочешь биндиться: к свойству вьюмодели или к свойству соседнего\родительского контрола в xaml.

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

Но меня пугает, что ты собрался биндиться из кода ко вью-контролу по имени. Это что-то странное.
Аноним 15/09/23 Птн 17:48:59 2842709 548
>>2842643
>>2842662
>>2842674
Вы на инопланетном общаетесь? Как вы друг друга понимаете и понимаете ли вообще?
К чему ответ "Нет"? Что за перпендикулярность имен и MVVM? Зачем биндиться из кода ко вью по имени?

Столько вопросов и так мало ответов.
Аноним 15/09/23 Птн 17:57:11 2842731 549
>>2842709
да

да

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

xaml это вид. имена в xaml - все равно вид. это никак не вылазит за буковку V в MVVM, а значит никак эту самую MVVM не нарушает. Можно разве сказать что "не нужно биндится прямо на элемент, а пусть будет связующим звеном вьюмодель", но это только когда есть за что зацепиться во вьюмодели. Технически же вид может творить внутри себя любую дичь, хоть писать в стиле винформса без биндингов и хамла (или быть консольным выводом) и это никак не нарушит MVVM

Не знаю. всякое бывает. может кому и нужно.
Аноним 15/09/23 Птн 17:59:47 2842737 550
>>2841747
>Навигационные поля сделай и еф всё сам свяжет
Хммм, окей. А если у меня ключ сложный? Ну типа у студента это (id, class)? Там же правильно назвать надо, как я понял.
Аноним 15/09/23 Птн 18:01:55 2842740 551
>>2842679
>Но меня пугает, что ты собрался биндиться из кода ко вью-контролу по имени.
Не пугайся, я просто изучаю WPF параллельно делая на нем пет-прожект, а в туторах про биндинг есть в том числе примеры биндинга из кода, вот и пытаюсь выяснить как "принято" делать.
Аноним 15/09/23 Птн 18:02:35 2842743 552
>>2842737
Моя позиция что если тебе нужен составной ключ то ты что то делаешь не так.
Если тебе нужна уникальность через набор полей то для этого делается индекс с ограничением на уникальность
Аноним 15/09/23 Птн 18:13:26 2842756 553
>>2842740
биндинги из кода нужны редко
когда пишешь что то этакое динамическое
Например динамическую таблицу где нужно больше чем тупо автосгенерить имена колонок.
Аноним 15/09/23 Птн 18:23:38 2842780 554
Как в di добавить dbcontext, чтобы строка подключения бралась из настроек, лежащих а json?
Аноним 15/09/23 Птн 19:15:13 2842823 555
>>2842740
Биндятся в основном из View к свойствам ViewModel, которая расположена в DataContext. Большая часть данных должна браться оттуда, поэтому имена контролов в основном не нужны в MVVM. Не то, чтобы это запрещено, просто в этом нет смысла.

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

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

Так что, основная твоя работа заключается в том, чтобы передать вьюмодель в датаконтекст. А уже вью сама ищет то, что нужно по именам свойств вьюмодели. Делает она это вслепую в рантайме.
Т.е. когда ты пишешь
<TextBlock Text="{Binding Name}" />
Вьюшка лезет в объект датаконтекста и ищет у него свойство Name. Это свойство должно быть либо DependencyProperty либо INotifyPropertyChanged, иначе выскочит исключение или (что еще хуже) утечка памяти. Потому что такие свойства уведомляют о своем изменении — это важно при биндинге.

Так как все это вслепую, то для себя, на этапе дизайна, ты можешь указать тип датаконтекста, и это нужно чисто для подсказок IntelliSence:
d:DataContext="{d:DesignInstance Type=local:MyViewModel}"
Чтобы эту залупу каждый раз не запоминать, есть сниппет "ddc", что сокращенно от d:DataContext. Будет вставлена строка выше (ток свою вьюмодель вставляй).

Если биндиться из кода ко вью, то нужно ОЧЕНЬ хорошо понимать для чего это нужно. Потому что это не нужно практически никогда.
Аноним 15/09/23 Птн 19:19:55 2842829 556
>>2842780
Кури как работают настройки в ms di
Первый раз когда туда залез было очень даже интересно особенно как создаётся host и app конфигурации (спойлер вторая создаётся на основе того что удалось вытащить из первой).
Так же обрати внимание на провайдеры

https://learn.microsoft.com/en-us/dotnet/core/extensions/options
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options
Аноним 15/09/23 Птн 19:32:52 2842844 557
2023-09-1519-25[...].png 10Кб, 456x147
456x147
>>2842823
>есть сниппет "ddc"
Я себе сделал еще "gcd" и "grd" - Grid.ColumnDefinitions и Grid.RowDefinitions,
Потому что писать это вручную каждый раз - это надо быть ебанутым мазохистом. Вроде есть дефолтный сниппет, но он не такой гибкий.

Вообще для MVVM советую максимально обмазаться сниппетами, если хотите сохранить самообладание и любовь к жизни. У меня есть:
nprp - создает расширенное свойство INotifyPropertyChanged
dprp - блок DependencyProperty
prp - просто расширенной свойство
onprp - блок OnPropertyChanged
dsp - блок Dispose
Аноним 15/09/23 Птн 19:34:31 2842847 558
>>2842823
Понял, благодарю за развернутый ответ. С меня нихуя, как обычно
Аноним 15/09/23 Птн 19:53:28 2842870 559
>>2842603
Бамп вопросом.
Хочу обратиться к статическому классу ResourceDictionary и видеть там свой метод Open().
Аноним 15/09/23 Птн 19:55:29 2842872 560
>>2842870
>>2842603
Экстеншенов для статиков нет, только для инстансов.
По семантике у тебя первый аргумент это экземпляр
Аноним 15/09/23 Птн 22:28:09 2843174 561
Си STM32.png 9Кб, 606x298
606x298
Си Шарп.png 8Кб, 531x314
531x314
Анон, помоги разобраться с CRC. Есть две вроде бы одинаковые функции в приложении на С#, и на Си в коде STM32. При расчете CRC для массивов размером 1024 байт дают одинаковые результаты. Если размер отличается, то разные. Как мне получать одинаковые результаты во всех функциях?
Аноним 15/09/23 Птн 23:23:17 2843308 562
>>2843174
Переменные экономишь? Это невозможно дебажить, но ты похоже и сам это понял раз не запустил и то и то пошагово
Аноним 16/09/23 Суб 00:38:54 2843402 563
>>2843174
Ты рофлишь?
Ты же знаешь что такое CRC?
Короче. Не тупи. Прочитай про то что такое CRC и как оно вычиляется.
Таблица кстати тебе нахуй не уперлась. Вычислять можно без нее. Она нужна, когда тебе хочется БЫСТРО, но тогда ты ручками значения таблицы прописываешь.
Аноним 16/09/23 Суб 00:45:21 2843408 564
image.png 63Кб, 662x754
662x754
>>2843308
CRC и не нужно дебажить. Просто берешь и используешь. Один раз написал и пользуешься всю жизнь.
Аноним 16/09/23 Суб 03:08:47 2843474 565
>>2842844
Dispose кака во вьюмоделях
Аноним 16/09/23 Суб 08:37:06 2843536 566
Почему GetAwaiter().GetResult() приводит к дедлоку, а обычный цикл, который проверяет taskcompletionsource нет?
Аноним 16/09/23 Суб 09:39:40 2843577 567
>>2843536
Потому что таски и потоки перпендикулярны
Аноним 16/09/23 Суб 10:36:27 2843637 568
>>2843474
Ну а что делать, если вью не всегда адекватно производит анбиндинг? Особенно это заметно с итемами каких нибудь списков.
У тебя объект продолжает биндиться, даже если он удален из списка.
Аноним 16/09/23 Суб 10:44:01 2843647 569
>>2843637
Дык это не про Dispose вьюмоделей.
Dispose вьюмоделей это про мессенджер и подписки на модель.
Проблема вызова Dispose приводит к weak мессенджеру с его "вьюмодели уже не нужно, а она сообщения принимает и реагирует", а с подписками к модели еще хуже

А биндинг обычно не проблема. У меня никогда это не было проблемой.
Аноним 16/09/23 Суб 11:14:47 2843676 570
>>2843647
>Дык это не про Dispose вьюмоделей.
>Dispose вьюмоделей это про мессенджер и подписки на модель.
Нихуя не понял. Диспоз это метод который очищает говно, мешающее экземпляру помереть. Не важно подписки или что-то еще.

>А биндинг обычно не проблема.
У другого анона та же беда была. Может это из-за попыток забиндиться итемом ко родительскому датаконтексту.

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

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

Я решил это тем, что в событии Unloaded итема, обнулял все забинденные свойства. Просто я оформил это в метод Dispose.

Еще был случай, когда DataContext чудил, особенно когда объект там постоянно менялся, тоже приходилось выдумывать костыли, но подробностей сейчас не вспомню. Надо уже какой-то блокнотик себе завести, я на выяснение проблем не один день тратил.
Аноним 16/09/23 Суб 13:06:00 2843778 571
>>2843676
>Диспоз это метод который очищает говно
верно. но его кто-то должен вызывать. а с этим проблемы. Паттерн вызова очистки прост и понятен. Но вот кто все это вызывать будет? должна ли вьюмодель очищать все Disposable внутри себя? а вдруг не все можно?
в прошлых тредах обсуждали и выход из этого лайфтаймы, даже если сбоку (то есть не интеграция в фреймворк, а тупо сам решил использовать - берешь либу и вперед)

Если вьюмодель на что то подписывается или что то запускает, то она обязана получить ( через конструктор) токен своей жизни и использовать его для подписок и запусков.
А также для запусков того, что нельзя отменять. А код снаружи просто обязан озаботиться выдачей токена лайфтайма, а значит будет вынужден этот вопрос решить иначе просто не скомпилится. При таком подходе все не живет дольше нужного и все автоматически и правильно диспозится. Причем без лишнего.
Аноним 16/09/23 Суб 13:23:07 2843807 572
>>2843778
>Но вот кто все это вызывать будет?
Ну анон мне ИТТ говорил, что диспоз вызывается даже если ты проебал его вызов, просто это делается не сразу и по велению GC. Каковы критерии оценки, что файл нужно удалить — в данном случае непонятно.

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

>выход из этого лайфтаймы,
До лайфтаймов я еще не дорос (я так каждый раз пишу на протяжении 10 тредов, кек).
Аноним 16/09/23 Суб 13:24:18 2843809 573
>>2843807
>которОЕ тоже не всегда может быть вызванО
Аноним 16/09/23 Суб 14:38:56 2843926 574
>>2843807
GC ничего не знает про твой диспоз. И даже если знает, то придет он когда неизвестно.

>До лайфтаймов я еще не дорос
там ничего сложного. Это очень простая тема.
Аноним 16/09/23 Суб 16:02:55 2844059 575
>>2843807
>До лайфтаймов я еще не дорос
делаешь App начальный лайфтайм, его выдаешь главной вьюмодели, а далее каскадно раздаешь либо свой лайфтайм либо рождаешь дочерние

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

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

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

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

А так терминация лайфтайма каскадно отменяет все подписки и все канселлит.
Если у тебя все подписки принимают лайфтайм, то физически нельзя забыть диспознуть ибо тебя комплиятор заставляет решить этот вопрос (ну если ты не дурачок конечно)
Аноним 16/09/23 Суб 23:03:22 2844669 576
Создал пустое чистое приложение UWP в Visual Studio 2022.
Добавил кнопку хелло ворд. Запустил и в релизе и в дебаге, всё работает.
Без вижуал студио сам экзешник не запускается, ни в дебаге, ни в релизе, в Просмотре событий пишет:
>Процесс был завершен из-за необработанного исключения.
>Имя сбойного приложения: TestApp1.exe, версия: 1.0.0.0, метка времени: 0x650600fc
>Имя сбойного модуля: KERNELBASE.dll, версия: 10.0.22621.2070, метка времени: 0xdf72c80b

Помогите.
Аноним 16/09/23 Суб 23:14:25 2844685 577
>>2844669
> Создал пустое чистое приложение UWP
Зачем? UWP же мёртв.
Аноним 16/09/23 Суб 23:33:25 2844699 578
>>2844685
Решил попробовать. Вообще захотел сделать модное молодежное приложение под виндовс 11.

А что тогда использовать? Снова виндовс формс? Они прям живы что ли? Разве они не устарели?
Аноним 17/09/23 Вск 00:59:05 2844763 579
>>2844699
WPF, вероятно

UWP это же универсальность шиндовс + шиндовс мобайл. Зачем тебе такое? Хочешь универсальности — юзай сырой MAUI.
Аноним 17/09/23 Вск 01:00:09 2844764 580
>>2844763
>WPF
Спасибо, попробую.
Аноним 17/09/23 Вск 01:10:24 2844770 581
>>2844764
>Вообще захотел сделать модное молодежное приложение под виндовс 11.
Кстати, виндоу формс визуально адаптируется к новому стилю интерфейса одиннадцатой оси, в силу свой специфики. А вот в впф стили контролов независимые, и тут плюс превратился в минус, ибо надо обновлять все дефолтные стили, а майкрософт не делала этого еще с восьмерки.

С впф ты не получишь молодежный стиль, придется либо самому поебстись, либо скачать где-то еще. Но у тебя есть возможность сделать свой собственный стиль, в отличии от вин формсов.
Аноним 17/09/23 Вск 01:12:07 2844771 582
>>2844764
>>2844770
Есть еще winui, там стили обновлены до 11, но что это за зверь такой — не знаю.
Аноним 17/09/23 Вск 01:18:49 2844775 583
2023-09-1701-17[...].png 5Кб, 470x140
470x140
Аноним 17/09/23 Вск 01:23:10 2844777 584
c860b0149ad36f9[...].png 60Кб, 1040x720
1040x720
Аноним 17/09/23 Вск 01:23:27 2844778 585
>>2844771
Я прост попробовал UWP, мне оче понравилась дефолтная копка и такая подстава. Ща пробую WPF, всё работает, но кнопка не оч. Я имел ввиду, что не хочу древний дизай виндовс хп, который в виндовс формс. Хм, не вижу winui, её надо как-то отдельно докачивать выбирать. Я понимаю, что можно сделать что угодно из чего угодно, но я хочу писать свои стили, я хочу кидать какие-нибудь элементы и чтобы всё готово в современном стиле было с ползунками настроек туда сюда.
Аноним 17/09/23 Вск 01:24:39 2844780 586
>>2844778
не хочу писать свои стили*
Аноним 17/09/23 Вск 01:26:01 2844782 587
>>2844777
Из твоего пика следует, что выбирать winui для винды и maui для мака, а остальное устарело.
Аноним 17/09/23 Вск 01:32:01 2844786 588
>>2844778
Так-то из коробки винформсы будут выдавать тебе стиль той версии операционной системы, на которой запущены. Для WPF полюбому можно где-то скачать стиль, я не чекал, я сам себе дизайнер.

>>2844782
Еще есть авалония, но анон ИТТ жаловался на хреновый рендер шрифтов.
Аноним 17/09/23 Вск 01:39:39 2844792 589
2023-09-1701-39[...].png 77Кб, 1274x476
1274x476
Аноним 17/09/23 Вск 01:41:19 2844795 590
winui3-csharp-n[...].png 101Кб, 1759x980
1759x980
winui3-addnewit[...].png 60Кб, 1411x934
1411x934
Аноним 17/09/23 Вск 01:45:04 2844797 591
Без имени.png 120Кб, 1514x834
1514x834
Фух, нашел. Но сам бы я и не заметил ни uwp, а уж мимо winui прошел бы тем более, спасибо, анончики.
Аноним 17/09/23 Вск 01:49:16 2844798 592
Аноним 17/09/23 Вск 01:52:59 2844801 593
>>2844795
>Блять, хули winui по дефолту нет?
ВПФ - надежно, гибко, из коробки (кажется). winui не смотрел — посмотри, расскажешь нам.
Аноним 17/09/23 Вск 01:55:42 2844802 594
>>2844795
>Блять, хули winui по дефолту нет?
Чтобы всякая петшня не равлась от того, что студия весит 15Гб.
Все разбито на модули, даже библиотеки могут быть разбиты на десяток частей.
А ты сам подгружаешь то, что тебе нужно.
Аноним 17/09/23 Вск 02:03:02 2844803 595
Воо, winui тор. У меня винда в темной теме и приложение по дефолту в темной теме и кнопка пиздатая темная. Я сходил в светлую - приложение стало светлым. То что я хотел в общем-то. Приложение подстраивается под дизайн винды. Просто по дефолту.

Блять, но оно как и UWP не работает, если запускать экзешник. А еще почему-то пока только WPF рабочий вариант... А еще почему-то не грузит дизайн, пишет что-то про докачку из нугета...
Аноним 17/09/23 Вск 02:03:46 2844804 596
Ответьте серьезно, те кто тут постоянно про десктоп что-то спрашивает. Вы студенты или самоделкины?
Я просто реально не понимаю. Работаю на шарпе с 2014 года. Ни одного НЕ ЛЕГАСИ проекта под десктоп не видел ИРЛ. А то что легаси - это WinForms/WPF.
Типа если студенты, вот зачем вам сразу в легаси метить?
Если самоделкины, почему не делать на чем-то нормальном типа Qt?
Аноним 17/09/23 Вск 02:09:41 2844805 597
>WinUI 3.0 no XAML designer view
Понял, нахуй. Технологии будущего еще не скоро. Короче пойду ка я в виндовс формс, там всё работает из коробки по дефолту и как надо. Ясно всё...
Аноним 17/09/23 Вск 02:15:35 2844806 598
>>2844792
Звучит как просто брюзжание деда

мимо вообще не пишу стэндалон гуй
Аноним 17/09/23 Вск 02:19:03 2844807 599
>>2844804
Даже если самоделкины то либо терминал либо жс+апи
Аноним 17/09/23 Вск 02:19:21 2844808 600
>>2844803
>А еще почему-то не грузит дизайн, пишет что-то про докачку из нугет
Зависимостей много. Докачай.
В WPF это можно сделать так: В обозревателе решений в проекте -> Зависимости -> Пакеты -> Обновить
Аноним 17/09/23 Вск 02:23:13 2844810 601
>>2844804
>Если самоделкины, почему не делать на чем-то нормальном типа Qt?
Чет не выдает ничего Qt + C#

>>2844807
>то либо терминал либо жс+апи
Спасибо, идите нахуй.

В итоге все что я вижу для решения своей задачи — это выучить чуть ли не новый язык.
Аноним 17/09/23 Вск 02:26:37 2844813 602
>>2844810
Мир начал вращаться вокруг веба из-за простоты (хоть и с другими дебаффами, но это уже конкретные случаи) и рано или поздно ты встанешь в жс своей ногой.
Плохо? Хорошо? Да хуй его знает, обычный инструмент который решает задачи
Аноним 17/09/23 Вск 02:31:09 2844814 603
>>2844813
>вокруг веба из-за простоты
А помните был такой флеш? Люди там на изичах писали игры, видосики, программки. Очень мало весило. Очень высокое качество. И где теперь флеш?
Аноним 17/09/23 Вск 02:33:37 2844819 604
>>2844814
Сдох из-за того что был анально огорожен и был полон дыр которые решили не чинить
Аноним 17/09/23 Вск 02:38:45 2844821 605
>>2844813
>Мир начал вращаться вокруг веба из-за простоты
Ты чет начал пердеть про студентоту и самоделкиных, а сам нарушил базовый принцип вменяемости: задача -> инструмент под задачу.

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

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

>>2844805
>WinUI 3.0 no XAML designer view
Я думал что это я ебусь в глаза. Что, реально? Тогда сидим на ВПФ и не дергаемся.
Аноним 17/09/23 Вск 02:42:16 2844823 606
>>2844813
>и рано или поздно ты встанешь в жс своей ногой
Я ее отгрызу.
Аноним 17/09/23 Вск 02:49:33 2844830 607
3F3F.webp 14Кб, 305x184
305x184
maxresdefault.jpg 68Кб, 1280x720
1280x720
>>2844823
Ты кина пересмотрел. Как вступишь туда, так увязнешь, еще и кайфовать начнешь, пока тебя будут поглощать эти зыбучие пески.
Аноним 17/09/23 Вск 02:58:03 2844834 608
>>2844830
Не не
Не все поддаются гей пропаганде
Аноним 17/09/23 Вск 03:09:28 2844837 609
как правильно глубоко скопировать структуру вида List<int[]>?
у меня сейчас:
List<int[]> copy = original.Select(x => x.ToArray()).ToList();
подводные камни?
Аноним 17/09/23 Вск 03:18:59 2844838 610
>>2844837
Хз, я бы не парился и просто бы создал новый пустой лист и заполнил бы его по циклу этими интами.
Аноним 17/09/23 Вск 03:29:24 2844840 611
>>2844837
Хз зачем тебе это надо но результат будет таким какой ты ожидаешь
Аноним 17/09/23 Вск 03:37:07 2844841 612
>>2844838
так и сделал изначально, но потом добавились еще две таких структуры(других), которые тоже надо копировать и длина у них будет не одинаковой, это простыня выйдет на пол-экрана
>>2844840
ожидаю пачку новых массивов в новом листе которым от изменений объекта-донора ничего не будет...
Аноним 17/09/23 Вск 04:10:17 2844845 613
>>2844841
>ожидаю
Лист - это объект со ссылками на инты. Инты же, пусть и массивы, простые объекты, а не ссылки. Логично, что в новом листе тебе просто нужна ссылка не на тот же инт, а на его копию и всё. Копия инта делается просто. Инт - неизменяемая вещь. Меняя его ты создаешь новый объект, а не меняешь старый. Надеюсь не ошибся и не несу хуйню.

List<int[]> copy = new List<int[]>();
for (int i = 0; i < original.Count; i++)
{
int[] arr = original;
copy.Add(arr);
}
Аноним 17/09/23 Вск 04:14:19 2844846 614
>>2844841
>длина
И не понял какая разница какая там длина. В конце концов ты можешь использовать листы с разными типами данных просто с объектами, а не с конкретным одним определенной длины.
Аноним 17/09/23 Вск 04:33:00 2844848 615
>>2844845
несешь несешь. int неизменяемый, но не int[]
в шарпах нет frozen int[]
Аноним 17/09/23 Вск 05:06:33 2844850 616
>>2844763
> WPF, вероятно
Так и Wpf мертво, только при это почти во всем уступает uwp, так что смысла его использовать мало.
Аноним 17/09/23 Вск 05:24:59 2844854 617
>>2844804
Если ты не видел, это не значит, что их нет. Мы вот пилим различные приложения на xaml фреймворках для windows store. Но занятие довольно бесперспективное, и я хочу перекатиться в asp net.
>>2844813
> Мир начал вращаться вокруг веба из-за простоты (хоть и с другими дебаффами, но это уже конкретные случаи) и рано или поздно ты встанешь в жс своей ногой.
Жиза к слову. По веб фреймворкам в миллион раз больше документации, ответов на любые вопросы и тд. Сделать на каком-нибудь реакте красивый интерфейс во много раз проще, чем на xaml, с его кучей костылей и нюансов.
>>2844804
> Если самоделкины, почему не делать на чем-то нормальном типа Qt?
Ну толсто же. Гуи на шарпе писать куда приятнее, чем на qt срани, не говоря уже о том, что xaml выбирают те, кто знает шарп, зачем им ради гуи учить плюсы?
Аноним 17/09/23 Вск 05:55:59 2844857 618
>>2844850
в чем это "во всем". Наоборот, UWP выглядит как "кастрированный WPF"
Аноним 17/09/23 Вск 06:21:33 2844859 619
>>2844857
1. Uwp в разы быстрее wpf, в нем отсутствуют микролаги, которые в wpf являются неотъемлемой частью любой анимации.
2. Есть поддержка directx 11 и direct2d, можно спокойно хостить в окнах результат рендеринга. Wpf же застрял на directx 9, и чтобы работать с видеокартой напрямую придется использовать windowsformhost. А там нас ждет airspace problem.
3. Есть дополнительный визуальный слой, на котором можно рендерить графику в отдельном, не UI потоке, что дает дополнительный буст к производительности.
4. Uwp приложения из коробки выглядят нативно. В wpf тоже есть либы с контролами в стиле win 11, но это сторонние либы, с кучей багов.
5. Более совершенный xaml, есть x:bind компилированные биндинги лютая годнота, конвертация bool в visibility из коробки. хотя нет триггеров, что весьма печально

Минусов конечно тоже дохуя, кто спорит. авалония наше всё, хотя нативных стилей нет
Аноним 17/09/23 Вск 06:33:15 2844860 620
>>2844859
>Более совершенный xaml
не знаю в чем он совершенный. UWP xaml это продолжение Silverlight xaml (который по своей природе был "кастрированный WPF")
Да и ты следующим же предложением подтверждаешь его кастрированность.

UWP это доп ограничения. Прибито к MS Store (а без него это бубен)

Да он настолько лучше... что скорее мертв, чем еще жив.

Но мне норм. Пока мс занимается херней, я пишу на WPF и норм. Анимации мне не нужны, в остальном палки в колеса не ставит как другие.
Пересел бы на авалонию, но там еще менее нативно выглядит и шрифты шрифты жеж
Аноним 17/09/23 Вск 09:25:55 2844912 621
>>2844804
От предметной области/компании зависит. В инженерии WPF десктоп живее всех живых, новых проектов хватает.
Аноним 17/09/23 Вск 16:24:03 2845427 622
>>2841546
Ты бы ещё через javac собрать проект попытался и начал ныть, что тебе все само не положилось, имбецил.
Аноним 17/09/23 Вск 16:25:36 2845432 623
>>2841841
То же самое >>2845427.
>двач-программач, почему у меня все автоматически не затягивается?
>потому что ты антом собираешь? Мавен возьми.
Аноним 17/09/23 Вск 17:01:51 2845539 624
>>2845427
Выше чел же говорил, что джава все сама...
Ну ок. Как мне проект 2006 года на анте перетащить на этот твой мавен?

Типа во просто в шарпе, допустим, я открываю древний проект, мне студия: О, это старый проект, давай я попробую его обновить до актуалочки. И в 70% случаев дальше ничего и делать не нужно. А тут - я чет начал пытаться разбираться, и нихуя не понял. То каких-то либ нет, то какие-то методы-классы-модули отсутствуют в современной джаве. Половина кода - красная. Нихрена не работает. Че делать - я не понимаю.
Аноним 17/09/23 Вск 17:14:44 2845557 625
>>2845539
>70% случаев
Ну вот и завали ебало.

Алсо, если ты не можешь прямо щас это собрать, значит проблема в проекте, а не в самом по себе факте легаси. Нормальные проекты на анте до сих пор собираются и будут собираться до конца времён.
Аноним 17/09/23 Вск 17:16:47 2845560 626
>>2845539
У тебя ант-то, хотя-бы, установлен?
Аноним 17/09/23 Вск 17:25:39 2845576 627
>>2845560
Ну должен быть.
Я же про то что это ант вообще знаю потому что идеей открыл проект, она сказала, о, это ант, давай скачаем все для запуска. Я сказал - качай.
Хотя коллеги говорили, что вроде все это дело писали в нетбинсе. Но я и нетбинсом пробовал открыть. Он ниче качать не предлагал, но тоже не собирал и не запускал.
Аноним 18/09/23 Пнд 01:05:39 2846040 628
>>2845576
Идея анально вгрызается в работу систем сборок и делает так, чтобы без нее собрать было нельзя больше. Возможно это анальное вгрызание работает и в обратную сторону. Установи ант ручками и попробуй из консоли собрать.
Аноним 18/09/23 Пнд 10:39:45 2846236 629
>>2844059

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

мимо
Аноним 18/09/23 Пнд 10:45:33 2846239 630
>>2838250
Давай. Мне хватит обычного http
Аноним 18/09/23 Пнд 11:04:15 2846247 631
>>2846236
Два чая. Вроде как понимаю, но ничего не понимаю.
Нужен простенький демо-проект, но я боюсь набраться наглости попросить.
Аноним 18/09/23 Пнд 18:10:08 2846833 632
Какой надежный способ проверить что файл есть на диске? Столкнулся с тем что File.Exists пиздит что его нет, путь передаю абсолютный, тупо его коприю из дебаггера в тотал коммандер (на случай опечатки) и он существует.
Аноним 18/09/23 Пнд 18:21:28 2846853 633
>>2846833
Может косые черты не в ту сторону?
Аноним 18/09/23 Пнд 18:35:03 2846878 634
Каким образом лучше всего защитить биндинги от переполнения стека? Допустим у меня есть свойство типа byte, а пользователь вводит число 300.

В голове возникло два способа:
1. Проверять на уровне свойства. Сделать свойство типа int, а дальше проверять в сеттере. Если value выходит за перделы диапазона от 0 до 255, то не присваивать значение.
2. Через конвертер значений.

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

Склоняюсь ко второму способу, но может есть более элегантный, о котором я не знаю?
Аноним 18/09/23 Пнд 18:56:19 2846927 635
>>2846878
Не делай свойства типа byte
Аноним 18/09/23 Пнд 19:05:18 2846942 636
>>2846927
Не могу, ты что?

Вот тебе банальная ситуация. Допустим я меняю канал RGB-цвета, который в диапазоне от 0 до 255. Так или иначе мне это придется сделать огарничение. Вопрос в том, где это лучше сделать.
Аноним 18/09/23 Пнд 19:06:26 2846945 637
Стикер 380Кб, 512x512
512x512
Аноним 18/09/23 Пнд 19:16:24 2846966 638
>>2846833
Проверять это в джаве.
Аноним 18/09/23 Пнд 22:52:35 2847289 639
А я тут в ступор встал. А почему в шарпе свич не хочет сравниваться с переменной? Почему только с константой?

В бейсике можно, как если бы это был if.
Аноним 19/09/23 Втр 08:57:57 2847511 640
Аноним 19/09/23 Втр 11:09:31 2847605 641
>>2846236
>>2846247
развлекайтесь.
там есть ридми и демка на костылях
но в общем то даст базу от чего отталкиваться в создании своих костылей.

https://dropmefiles.com/wOvUf
Аноним 19/09/23 Втр 11:16:04 2847624 642
>>2846236
>>2846247

забыл в демке показать что будет если будет запущена какая то операция, но в общем то lifetime == CancellationToken, то есть первый кастится во второе и потому его можно использовать напрямую.
Аноним 19/09/23 Втр 11:21:20 2847639 643
2023-09-1911-08[...].png 4Кб, 334x117
334x117
2023-09-1911-11[...].png 12Кб, 289x215
289x215
2023-09-1911-14[...].png 11Кб, 247x110
247x110
Как проверить формат введенных данных по паттерну?

К примеру я хочу проверить цвет aRGB\RGB в формате hex. И в зависимости от условий он может быть разным.

Вот четыре варианта:
- без альфаканала и без решетки: FFFFFF (пример пикрил1: фотошоп)
- без альфаканала и с решеткой: #FFFFFF (пример пикрил2: корел дро)
- с альфаканалом и решеткой: #FFFFFFFF (пример пикрил1: вижуал студия)
- с альфаканалом и без решетки: FFFFFFFF (примера нет, но логика понятна)

FF это любое hex значение от 00 до FF
В целом, из критериев валидности интересует наличие или отсутствие решетки в начале, и совпадение по количеству символов. Я могу это проверить сам if-ами и проверкой длины, но может быть есть варианты проверки реджексом или string.format, или еще чем-то?
Аноним 19/09/23 Втр 11:24:43 2847649 644
>>2847605
Добра тебе анон! Щас посмотрю! Спасибо за труд! Еще и в ридми расписал всё.
Аноним 19/09/23 Втр 11:36:34 2847661 645
>>2847639
Нашел реджекс
>^#[0-9a-fA-F]{6}

Как бы эту подсказку теперь высветить? В xaml не отображается xam-докуменатция к методам.
Аноним 19/09/23 Втр 11:38:08 2847664 646
>>2847661
>В xaml не отображается xam-докуменатция к методам.
Если что, я ValueConverter делаю. И паттерн првоерки хочу пихать через ConverterParameter.
Аноним 19/09/23 Втр 13:23:11 2847779 647
Ребяты правильно ли я понимаю.
Вот я сделал приложение на asp net core mvc
И вот я хочу сменить дизайн сайта. Мне ведь нужно будет в исходникака менять код представлений.
А вот что бы сделать сайт с возможностью сменой дизайна это мне не надо использовать представления, а например html хранить в бд, делать запрос в бд, генерить страницу и потом в контролере ее возвращать?
Аноним 19/09/23 Втр 14:08:55 2847846 648
>>2847779
> html хранить в бд
это слишком пиздец чтобы такое делать, я не фронтендер но лично бы я просто получил какое то значение bool из модельки во view и потом на стороне странички через if или switch отразил нужный мне дизайн но я не знаю этот способ наверно тоже пиздец но хранить html в бд не лучше
Аноним 19/09/23 Втр 14:19:10 2847857 649
>>2847846
Но при таком подходе добавление нового дизайна будет возможно только в исходниках.
А нужно типо как в вордпресе, залил дизайн и сменил его.
Аноним 19/09/23 Втр 14:20:00 2847858 650
>>2847846
Ну или не в бд, а просто дизайн хранить в папке
Аноним 19/09/23 Втр 14:21:25 2847861 651
>>2847858
тогда просто создавай разные view под каждый дизайн и потом через контроллер возвращай нужную
Аноним 19/09/23 Втр 14:24:49 2847866 652
>>2847861
Да бля ну я же не могу знать какой дизайн у меня будет.
Вот на сей момент я имею генератор сайтов на 1 дизайне.
Вторую версию планирую сделать что бы можно было на лету добавлять новые дизайны, и вот думаю как это сделать.
Весь смысл задачи в том что бы не компилировать проект каждый раз когда нужно добавить новый дизайн а выставлять его в админке.
Например добавляю сайт site.com, заливаю для него дизайн и выбираю и он сразу подгружается.
Сейчас все добавленные сайты на одном дизайне работают.
Аноним 19/09/23 Втр 14:29:16 2847869 653
>>2847866
тогда да только через бд
Аноним 19/09/23 Втр 14:38:09 2847874 654
>>2847866
В WPF я вынес все ресурсы в файл. Правда максимум что я могу — это поменять в рантайме стиль контролов или цветовую схему. Но вот сама разметка с расположением контролов всегда будет одной.
Аноним 19/09/23 Втр 14:58:17 2847886 655
>>2847649
там еще есть тонкий момент в подписке (торопился, дышали в спину)

vm.Closed.Subscribe(_lifetime, OnTabClose);

Так то vm умрет и плевать на кого она ссылается, но с другой стороны она может навешать Action на лайфтайм (или добавил просто IDisposable) и все оно на нем повиснет до терминации (а у рутовой вюмодели это никогда и не будет)

Так что было бы правильнее

vm.Closed.Subscribe(lifetimeDef.Lifetime, OnTabClose);

с терминацией lifetimeDef при закрытии таба умрет и эта подписка

Такая же проблема (можно навесить Action, а это жесткая связь и мемори лик) есть и с CancellationToken и на этой бомбе подрывались (статья на хабре была) - решается также доп слоем с CancellationTokenSource

Так что, анон, передавая свой лайфтайм не забывай про эту тонкость "а что если кто навесит Action"
Аноним 19/09/23 Втр 20:45:38 2848323 656
хочу вкатиться в шарп и начать зарабатывать, сколько времени нужно чтоб с нуля до джуна добраться? куда лучше подаваться чтобы быстрее (веб, десктоп и т.д.). Есть школьный, предвузовский уровень с/с++
Аноним 19/09/23 Втр 20:55:33 2848342 657
>>2847661
> В xaml не отображается xam-докуменатция к методам.
Но может отображаться в окне свойств.
[Bindable(true), Category("Новая Категория"), Description("Текст с описанием свойства", DisplayName("Отображаемое имя"))]
Аноним 19/09/23 Втр 21:05:18 2848360 658
>>2848323
>сколько времени нужно чтоб с нуля до джуна добраться?
>куда лучше подаваться чтобы быстрее
>начать зарабатывать

Я смотрю ты шаращий. Сначала купи 5 курсов от скиллбокса, 2 курса от гибрейнса, 1 курс от яндекс практикума. Выбор на свое усмотрение. Там на все вышеуказанные тобой вопросы ответят, а как только тебя заебет эта миллиард раз обсасываемая тема — возвращайся.
Аноним 19/09/23 Втр 21:09:30 2848368 659
>>2848342
кто вообще пользуется редактором свойств при написании хамла
только психи. Предпросмотр понятно, но задавать параметры через редактор свойств неудобно.
Аноним 19/09/23 Втр 21:10:18 2848371 660
>>2848360
а э, понятное дело что обучение займет год и больше при интенсивном темпе, вопрос лишь в том с чего начинать и куда стремиться.
Аноним 19/09/23 Втр 21:57:53 2848412 661
>>2847605

Спасибо, на выходных гляну.
Ты с призмой не работал? К ней не пытался всё это прикрутить с её регионами и новой системой диалоговых окон?
Что думаешь за современные MVVM фреймворки?
Аноним 19/09/23 Втр 23:26:13 2848464 662
А как посмотреть сурс метода? Я кликаю по "Перейти к определению", то часто переходит к странице с подписью "из метаданных", хотя речь идет о достаточно стандартных библиотеках.

В редких случаях я получаю "SourceLink"
Аноним 19/09/23 Втр 23:32:00 2848467 663
>>2848368
В основном в случаях, когда обращаешься к неизвестному контролу и ты не знаешь какие свойства доступны и какие типы даннх они принимают.
+ менять цвет там легче, чем пытаться вписать hex-параметр.

В остальных случаях я тоже использую xaml напрямую.
Аноним 19/09/23 Втр 23:45:45 2848475 664
>>2848412
Вопрос по диалоговым окнам.

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

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

Как вообще передается этот owner, особенно в случаях, когда нет прямого контакта между вьюшками? Одна вьюшка может быть в одном проекте, а другая в другом.
Аноним 20/09/23 Срд 00:00:49 2848482 665
>>2848371
Начинай с того, к чему лежит больше всего душа. Интерес — двигатель в обучении.
Надо начинать с фана, а потом задумываться о прибыли.
Аноним 20/09/23 Срд 00:31:07 2848490 666
2023-09-2000-19[...].png 13Кб, 457x250
457x250
На мой взгляд идиотская ситуация с этими вашими INotifyPropertyChanged. Рассмотрим пример на пикрилейтед, который дается во всех туториалах.

Что происходит, когда я в текстбоксе, привязанном к свойству DoubleValue ввожу значение? В сеттер поступает это значение, КОТОРОЕ вызывает метод OnPropertyChanged() -> что вызывает событие изменения свойства -> которое провоцирует биндинг(ну или что там?) обратиться к геттеру и получить значение.

Собсно нахуя, если я только что ввел значение и оно УЖЕ есть в текстбоксе? Градус абсурда повышается, если я добавлю конвертер и вот тогда возникает сущий пиздец, потому что я трачу ресурсы ДВАЖДЫ на конвертацию:
1. Сначала string парсится в double
2. Затем double конвертируется в стринг

Чтобы в итоге получить то, что было введено. Пиздец.
И не надо мне говорить, что для double конвертер не нужен. Под капотом происходит та же хтонь. Речь в принципе про ситуацию в целом. Возьмите Color, где нужен конвертер и где конвертация между типами уже посложнее.
Аноним 20/09/23 Срд 07:49:48 2848573 667
>>2848412
Не работал. Смотрел, но не работал. Слишком все замудрили там. Может для каких то особых приложений это нужно. Я смотрел на разные фреймворки начиная от MVVMFoundation, всякие там MVVMCross, лайты, калибурн, призм и другие.
Везде свои плюсы и минусы, а хотелось бы только плюсы (перфекционизм же). При этом недостатки MVVM же еще -окна, мессенджер, weak, жирность вьюмоделей. Может кто-то пишет однооконки с анимациями, а мне нужно много окон, да еще и если в каждом свой мессаджбокс, не блокирующий все, так это хорошо. Ну еще и чтобы совместим был с авалонией

Потому я в свободное время писал для фана и успокоения мук перфекциониста разные самостоятельные фреймворки где собирал все отовсюду и пробовал разные альтернативные подходы И писал с этим прототипы для дела и для пробы "а если так" оценивая выгоду и плату за этот хак. Разные идеи типа
- мультиокна, где у каждого окна свой стек и вообще нет проблемы как у >>2848475 (У меня специфические требования - мультиокна. Основное требование.)
Как итог - вьюмодель существует в каком то контексте, которое связывает ее с окном (не прямо конечно, все таки я сторонник MVVM и у меня вьюмодели ничего ни про вид, ни про диалоги, они работают с абстракциями)
- восстановление в нужное окно которое и так запущено, мы запускаем новую копию приложения, мьютексы то понятно, но нам нужно прыгнуть в нужное немодальное базовое окно
- А пусть не каждая вьюмодель держит свой стейт, а будет централизованный стейт (но все же не модель). У нас все равно контекст, можем себе позволить зашарить такое в графе вьюмоделей без последствий. А то не пойми какая вьюмодель работает с моделью, потом шлет сообщения не пойми куда. Что если у вьюмоделей будет общая структура, на которую они и будут подписаны и там и будет стейт. (самая спорная вещь)
- а что если все методы дергающие модель туда переедут (решение проблемы год обжект) и пусть вьюмодели и занимаются только своим прямом делом - держанием стейта для вида.
- проблема Dispose, проблема weak и вот там вошли лайфтаймы.
...

и тема лайфтаймов мне очень зашла. Даже не в рамках MVVM проектов, а вообще где есть проблема Dispose. Но началась она с MVVM где я заменил все и просто нельзя не передать лайфтайм, а значит нельзя забыть. И никаких вам weak

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

>Что думаешь за современные MVVM фреймворки?
Ну я видел что майки что то там родили с кодогенерацией. Решил попробовать
взял коммюнити тулкит от майков.
В общем то лайфтаймы сбоку там вполне зашли, но вот гадская кодогенерация (ctrl+click на свойство из хамл ведет в пустой сгенеренный файл, а не во вьюмодель) и конечно же диалоги
как у >>2848475
я взял MVVM.Dialogs, но там нет контроля "забыл или не забыл ты зарегать в нужном месте", и потом у нас в async void вместо мессаджбокса с сообщением происходит ошибка, которая ломает все нахер, и делает это в редких ситуациях потом потом уже в продакшене - ну или я не умею его готовить. А окна мне нужны, а там опять вручную все это кодить.

так что Fody наше все, а без кодогена этот тулкит - кастрированный мввмлайт. ну и зачем?
Аноним 20/09/23 Срд 08:19:11 2848602 668
>>2848475
Самое просто решение "без ничего" твоем случае создай во вьюмодели свойство Func<> и пусть вьюха ближайшая в лоадед или датаконтексчанжед заполнит это свойство (не забудь про очистку этого свойства если вьюха нестабильна

А далее вьюмодель дергает этот метод
А уже в нем вид и выводит окно и имеет оунера.
До окна можно добраться через GetWindow(this)
Аноним 20/09/23 Срд 12:55:49 2848940 669
2023-09-2012-42[...].png 16Кб, 888x157
888x157
2023-09-2012-43[...].png 51Кб, 1700x266
1700x266
>>2848602
Суть в том, что я не могу каким либо образом передать в ValueConverter ссылку на окно, либо на вьюмодель датаконтекста.

Конвертер определяется в ресурсах (пикрил 1)
Никакая привязка к энцестору оттуда не работает. Дата контекст недоступен.
Даже если мой конвертер наследует FrameworkElement (пикрил 2), никакой биндинг ни по имени, ни по типу не дает положительных результатов.

Ошибка:
System.Windows.Data Error: 4 :
Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Window', AncestorLevel='1''.
BindingExpression:(no path);
DataItem=null;
target element is 'ByteOverflowProtector' (Name='');
target property is 'Owner' (type 'Window')
Аноним 20/09/23 Срд 13:07:29 2848954 670
>>2848940
не хочу расчехлять студию поэтому если не ошибаюсь
пикрил 1 у тебя
DataContext как раз доступен, но именно DataContext
замени на ElementName=
ну потом доберись до окна

но начинать нужно с того что мессаджбоксы в конвертере вообще дичь
Аноним 20/09/23 Срд 13:22:30 2848973 671
2023-09-2013-10[...].png 51Кб, 735x627
735x627
>>2848954
Не работает. Я проверял.
Parent и DataContext пусты. Ошибка привязки выскакивает.

При этом вот тут https://stackoverflow.com/questions/16399010/proper-way-to-assign-and-work-with-wpf-datacontext-in-resources
чел делает ровно тоже самое, что и я (пикрил). Такое ощущение, что дело в том, что это конвертер и он как-то иначе запускается.

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

Нет никакой прослойки между конвертером и вьюмоделью, которая бы взяла на себя эту работу.
Аноним 20/09/23 Срд 13:33:08 2848991 672
>>2848482
нет интереса ни к чему, просто работаю и живу, но мозг устал от рутины требует нагрузки да и работа получше нужна, решил совместить приятное с полезным
Аноним 20/09/23 Срд 13:35:13 2848996 673
>>2848973
не знаю что там у тебя.
вот https://pastebin.com/v4xNs4gM

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

Дело конвертера лишь конверт данных.
Аноним 20/09/23 Срд 13:35:49 2848998 674
2023-09-2013-34[...].png 35Кб, 838x223
838x223
Аноним 20/09/23 Срд 13:44:22 2849012 675
>>2848996
Вот объясни мне.
1. Вот есть ситуация когда какой нибудь метод дергает свойство модели сотни раз.
2. И есть ситуация, когда юзер при помощи текстбокса и биндинга дергает то же свойство.

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

>или же просто тупо кинуть событие, которое вид отловит и покажет мессаджбокс
Событие чего? Что в сеттер пришло неверное значение? А откуда оно пришло?
Аноним 20/09/23 Срд 13:51:29 2849025 676
>>2848996
>Freezable
Ах да. Спасибо большое за код! Я очень тебе благодарен.
Аноним 20/09/23 Срд 14:15:14 2849062 677
>>2849012
>Как это свойство не спутает второе с первым?
оно и не путает. это одно и то же. кто то изменил свойство и вызвал INPC

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


>А откуда оно пришло?
На самом деле это не имеет значение, ведь неверное свойство установленное из кода попадет на GUI через INPC.

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

Ну вот как ты пишешь ICollectionView из кода. Там же нужно рефреш делать. А для этого нужно подписаться на вьюмодель чтобы она сообщила когда рефреш делать.И вот она на каждое ее изменение сообщает "нужно делать рефреш". Все просто и сердито. Главное не забыть отписаться от события.
Аноним 20/09/23 Срд 14:18:44 2849068 678
>>2849025
кстати да, фризабле
и лично я не знаю когда в
CreateInstanceCore возвращать новый инстанс, а когда this
так что сам загугли этот момент
Аноним 20/09/23 Срд 14:43:20 2849099 679
>>2849062
>На самом деле это не имеет значение
Имеет значение. Я пытаюсь акцентировать на этом внимание. Допустим у меня свойство Byte в него пришло число 300, и допустим нам не важно откуда — все равно выскочит месседжбокс.

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

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

При этом ошибка неверного ввода со стороны кода — это ошибка, которая должна писаться в лог. А ошибка ввода пользователем не должна писаться в лог, а выводиться сообщением. Тут два принципиально разных действия в зависимости ОТКУДА пришли неверные данные.

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

А вот конвертер эта та прослойка, которую можно всегда заменить. Где-то достаточно подсветки рамки, где-то нужен месседжбокс — все эти изменения никак не повлияют на внутринюю экосистему вьюмодели. Да, может слово "Конвертер" звучит не так, как применяется, но с точки зрения функционала я его воспринимаю как фильтр-прослойку между вью и вьюмоделью.

Я пока не увидел достаточных аргументов в пользу другого подхода.
Аноним 20/09/23 Срд 15:23:10 2849135 680
>>2848991
>нет интереса ни к чему
>решил совместить приятное с полезным
Стало быть приятное это работа, а полезное это кодинг? Придумай себе пет-проект.
Чужой опыт не даст тебе ничего.
Аноним 20/09/23 Срд 15:38:40 2849149 681
>>2849099
жуть какая то
ты не только мазохист, а и садист еще

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

А второй ситуации "данные от пипетки говно" вообще быть не должно. Вилидируй их при чтении данных с пипетки и если че не так то уж ладно мессаджбокс "я бедный разрабо, мне скучно и я сделал ошибку напиши мне" и на выход.
Аноним 20/09/23 Срд 16:14:03 2849188 682
bandicam 2023-0[...].mp4 206Кб, 608x488, 00:00:06
608x488
2023-09-2016-12[...].png 27Кб, 643x283
643x283
>>2849149
>какие еще мессаджбоксы.
В фотошопе так сделано (видеорил).

>а поверх поля маленький попап похожий на тултип который подскажет что не так.
Попап, гениальная мысль! Возможно я даже смогу его запихнуть прям в стиль текстбокса. Остается вопрос как туда передать внятное сообщение, но возможно я просто ретранслирую тултип.
Аноним 20/09/23 Срд 16:29:39 2849209 683
>>2849188
Загугли валидацию
Примеры с обводкой или фон и валидация на уровне вьюмодели
Там через триггеры как помню
И тот же триггер может сделать попап видимым пока ошибка активна
Аноним 20/09/23 Срд 16:41:44 2849226 684
>>2849209
Да смотрю. Оказывается есть ValidationRules, а я все это время проверял валидацию через конвертеры.
Аноним 20/09/23 Срд 16:44:07 2849229 685
Аноним 20/09/23 Срд 16:44:51 2849231 686
>>2849226
ну там много чего есть разного. Наплодили уж. И народ даже либы поделал на эту тему. А я у себя бэкендом FluentValidation юзаю

а так для старта зырь сюда
https://metanit.com/sharp/wpf/14.php
Аноним 20/09/23 Срд 18:33:27 2849370 687
bc5fbc797760c0e[...].png 1461Кб, 1600x1200
1600x1200
Хм.
Хм.
Прикрутить дебагер так и не смог к виму.
НО. Внезапно обнаружил, что дебажить можно с помощью тестов.
Теперь в общем так вот дебажу.
Лол. Кек.
Аноним 20/09/23 Срд 18:49:35 2849407 688
Аноним 20/09/23 Срд 19:28:13 2849462 689
>>2849407
Спасибо, разобрался. Я уже себе либу запилил под эти правила.
Аноним 20/09/23 Срд 19:55:58 2849522 690
2023-09-2019-37[...].png 4Кб, 312x215
312x215
2023-09-2019-52[...].png 21Кб, 653x196
653x196
>>2849407
Чертовы триггеры. Попапы висят пока текст не будет валидным.

А еще можно делать не INotifyDataErrorInfo, а через наследование ValidationRule — тогда можно эти валидаторы переиспользовать независимо от конкретной вьюмодели.

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

Щас надо подумать, как бы показывать попап временно.
Аноним 20/09/23 Срд 20:20:18 2849553 691
>>2849522
Ну для начала загугли реализацию nontopmostpopup нормальную (их не одна)
А потом загугли
wpf popup move with window

Ну и никто не запрещает создать юзерконтрол где что угодно можно соорудить и всё это скомбинировать
Аноним 20/09/23 Срд 20:42:29 2849578 692
>>2849553
Ок, спасибо. Щас посмотрю.
Аноним 20/09/23 Срд 21:40:07 2849622 693
А еще ты находишься в адорнер слое то есть попап не нужно
Аноним 21/09/23 Чтв 01:39:56 2849788 694
>>2848323
Лучше в джаву. Шарп это легаси.
Аноним 21/09/23 Чтв 03:31:21 2849820 695
импортировал в проект либу, а у нее 1 в 1 те же экстеншоны что и в одной из других либ, но более старые.
в итоге у меня теперь The call is ambiguous between the following methods or properties
и я не могу их вытащить, мне нужны обе либы и экстеншонов этих просто дохуя и в одной из них они устарели.
как заставить студию игнорировать одну из либ в этих конкретных методах?
Аноним 21/09/23 Чтв 03:41:02 2849822 696
>>2849820
разобрался, в референсах надо было алиас сделать. ну и дичь
Аноним 21/09/23 Чтв 08:48:07 2849873 697
>>2849822
Да. В 23 году компилятор уж мог бы нормально использовать libastral.dll
Аноним 21/09/23 Чтв 10:55:05 2849948 698
>>2848323
В Unity вкатывайся, сейчас самое время.
Аноним 21/09/23 Чтв 11:37:41 2849998 699
2023-09-2111-27[...].png 8Кб, 718x321
718x321
>>2849622
Короче, я щас взглянул и везде нужно наследовать либо папап, либо адорнер, что подразумевает новый класс.

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

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

>А еще ты находишься в адорнер слое то есть попап не нужно
Не совсем понял о чем ты. Почему я в нем нахожусь?
Аноним 21/09/23 Чтв 11:38:53 2850001 700
>>2849948
Самое время для банкротства этой компании, ты хотел сказать?
Аноним 21/09/23 Чтв 11:53:35 2850010 701
>>2849998
>Не совсем понял о чем ты. Почему я в нем нахожусь?
адорнер слой располагается поверх элементов. Собственно как и попап.
Находишься ты в нем ибо Validation.ErrorTemplate располагает этот шаблон в адорнер слое. То есть там можно убрать попап и выводить нужно и оно будет и поверх и таскаться с окном будет

Другое дело что попап разместить просто, а вот разобраться с компоновкой адорнер слоя вызывает реакцию "штаааааа"
Аноним 21/09/23 Чтв 12:19:49 2850042 702
любит же мс велосипедить

был Contract - похерили. Сделали тупо, ниасилили порт и сказали нинужно
Да так нинужно, что сделали
Microsoft.VisualStudio.Validation для студии
и
вот в communitytoolkit тоже свой Guard api

психи какие то.
Аноним 21/09/23 Чтв 13:58:15 2850199 703
bandicam 2023-0[...].mp4 559Кб, 608x488, 00:00:11
608x488
>>2850010
Ради спортивного интереса таки сделал. По сути в стилях оформляется эррор-темплейт обычными средствами
<Setter Property="Validation.ErrorTemplate"> ... </Setter>
ничего мудреного там нет.

Но уже вижу, что такая подсказка будет блокировать вышерасположенный контрол. Так что вернусь к идее пикрила >>2849998 , мне кажется это самый оптимальный вариант.
Аноним 21/09/23 Чтв 16:35:07 2850435 704
>>2850199
ну и пусть блокирует. нечего вводить абы что.
Можно и автоисправить на граничное значение мигнув ошибкой ненадолго.
Аноним 21/09/23 Чтв 17:24:21 2850508 705
Аноним 21/09/23 Чтв 17:30:50 2850522 706
>>2850001
Не верь слухам, все там нормально.
Это наилучший сейчас способ вкатиться в шапр не проебав кучу времени зря. Очень много вакансий, а курсов еще больше.
Аноним 21/09/23 Чтв 17:49:26 2850547 707
Аноним 21/09/23 Чтв 17:50:00 2850549 708
>>2850508
смотрите, упоротый жавист.
жависту то после финта оракла помалкивать в 2 дырочки

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

Ты не поверишь, но буквы бесплатные, а вот книги почему то платные. Да что ж такое то.
Аноним 21/09/23 Чтв 17:52:56 2850554 709
>>2850549
ВНИМАНИЕ! ДЖАВА ОТДЕЛИЛА КОММЕРЧЕСКИЙ ORACLE JDK ОТ OPEN JDK => ПЕТУШАРП ОПРАВДАН. ДЖАВИСТЫ ОПЯТЬ СОСНУЛЕ!
Аноним 21/09/23 Чтв 17:57:09 2850558 710
Не слушайте этого еретика. Вкатывайтесь в юнити. Петушарп свободный, только здые джависты меняют лицензии. Аминь.
Аноним 21/09/23 Чтв 17:59:10 2850563 711
Как же ебут шарпоскот, любо-дорого посмотреть!
Аноним 21/09/23 Чтв 18:18:16 2850600 712
bandicam 2023-0[...].mp4 122Кб, 696x488, 00:00:05
696x488
>>2850435
>ну и пусть блокирует. нечего вводить абы что.
Да не. Сам иногда копирую валидное значение из соседнего контрола.

>Можно и автоисправить на граничное значение мигнув ошибкой ненадолго.
Типа через анимации? Надо еще посмотреть, они не со всеми свойствами работают. Не, идея хорошая, только ей надо найти применение, например для всяких длинных строк, где предупреждающего значка приходится тянуться.
Аноним 21/09/23 Чтв 18:19:52 2850603 713
>>2850508
А при чем тут шарп? Или ты мем "программируйте на юнити" воспринял буквально?
Аноним 21/09/23 Чтв 18:31:49 2850627 714
>>2850554
А юнити типа не коммерческий? Или что ты хотел сказать, но пропукал по жавовски?
Аноним 21/09/23 Чтв 18:43:02 2850645 715
>>2850600
Да почему анимации
Тот же тултип хотя бы
Аноним 21/09/23 Чтв 20:03:28 2850764 716
>>2850627
Но ведь петушарп это швабодка... Что-то не сходится.
Аноним 21/09/23 Чтв 20:04:37 2850765 717
>>2850603
ПРОГРАММИРУЙТЕ НА ПЕТУШАРПЕ, ОН ОПЕНСОРСНЫЙ!
@
ОПЕНСОРСНАЯ ТОЛЬКО КОНСТРУКЦИЯ USING
Аноним 21/09/23 Чтв 20:25:04 2850787 718
>>2850765
сказал жавадебич написав это в проприетарном браузере, который написан на опенсорсном с++

дебич, что с него взять.
Аноним 21/09/23 Чтв 20:59:08 2850826 719
>>2850787
В очередной раз убеждаюсь что у петушарпомакак всё на самом деле очень, очень плохо с логикой. Причём нахуй тут мой браузер? Причём нахуй язык, на котором он написан?
Аноним 21/09/23 Чтв 21:10:47 2850840 720
>>2850826
поясню сразу после того как ты пояснишь причем тут на каком языке написан коммерческий продукт Unity
Аноним 21/09/23 Чтв 21:21:23 2850857 721
>>2850840
При том, что без хуюнити петушарп ещё менее нужен, чем нужен был. Раньше хотя бы можно было вилять жопой, что геймдев только на петушарпе, а щас жопой вилять можно только на хуе хитрых жидов из юнити по 20 центов за виляние.
Аноним 21/09/23 Чтв 21:25:52 2850866 722
>>2850857
то есть ты хочешь сказать что шарп обеспечил БЕШЕНУЮ популярность юнити, что теперь вот такая катастрофа? а да шарп, ай да молодец.
Аноним 21/09/23 Чтв 21:28:49 2850873 723
Аноним 21/09/23 Чтв 21:33:07 2850883 724
>>2850873
ну если поднялся такой шум из за юнити
значит юнити популярен
а юнити на шарпе
вот так вот.

то есть шарп сделал юнити популярным, а непопулярным юнити делает жадность, а не шарп.
Аноним 21/09/23 Чтв 21:54:00 2850918 725
>>2850883
Что ты блядь продолжаешь высирать, шизоид?
Аноним 21/09/23 Чтв 21:56:28 2850923 726
>>2850918
правду. Неприятно, жабоид?
Аноним 21/09/23 Чтв 21:59:26 2850928 727
>>2850923
Какую правду? Это шизофазия.
Аноним 21/09/23 Чтв 22:04:19 2850937 728
>>2850928
правду что пора тебе перекатывать тред
мы тут для чего тебя держим?
ты местный клоун дурачок и перекатыватель треда.
Аноним 21/09/23 Чтв 22:33:22 2850978 729
>>2850937
Нет, правда в том, что шарпоскот опять выебали, а в треде неизменно стоит извечна перемога.
Аноним 21/09/23 Чтв 23:30:51 2851026 730
>>2850978
ты хотел сказать нагнули скотыняк который дотнатные помойки под мобилы лепят?
Аноним 22/09/23 Птн 00:01:05 2851039 731
Аноним 22/09/23 Птн 09:54:25 2851175 732
image.png 40Кб, 824x387
824x387
Объясните, как мне сделать асинхронную программулину, но чтобы не плодились потоки?

На прикриплейде буквально весь мой код. И если я хреначу 10к подключений - потоки плодятся как не в себя, а мне - не надо.

И что я хочу в плане асинхронности.

А хочу чтобы у меня было примерно так:

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

Вот этого я хочу. Почему? Потому что такое поведение - не содержит для меня магии. Но вот как добиться такого в шарпе - я ХЗ.
Аноним 22/09/23 Птн 10:08:15 2851194 733
>>2851175
Желаемое тобой поведение и является дефолтным в шарпе (и других языках где есть await)
Чтобы рождались сотни потоков - еще нужно постараться
Аноним 22/09/23 Птн 10:10:04 2851196 734
>>2851039
А а чем проблема
Пишут игры или не пишут - никак не влияет на обычных шарпистов
Это совсем другой мир
Аноним 22/09/23 Птн 10:19:16 2851207 735
>>2851194

100к+ подключенных устройств - потоки плодятся как не в себя.


Ну и про дефолтность поведения. Я под капот особо не лез, но судя по дебагеру и проффилировщику. Пока нагрузка невысокая - да, используется условно 4 потока из тредпула и все ок. Но вот резкий скачок(допустим разом подключилось 50к устройств разом) - все, началась содомия. Память куда-то в небо улетела, потоки начали плодиться, процессор все ядра на 100%, гроб-кладбище, буковки по экрану бегают, логгер сходим с ума. Короче да.
Аноним 22/09/23 Птн 10:27:29 2851214 736
А есть тут аноны, которые прошли какие-нибудь курсы от известных инфоцыган и остался доволен? Да, знаю репутация у них такая себе, как и отзывы. Поэтому спрашиваю только про положительный фидбек.
Я вот изучил основы шарпа, зачем-то написал программку на wpf(получилось намного больше и сложнее чем я изначально предполагал). И мне самостоятельно изучать как-то сложно, много возникает вопросов, да и оценку сделанного тоже неплохо было бы получать. Вот поэтому подумал, мб на курс какой записаться.
Аноним 22/09/23 Птн 10:36:49 2851224 737
>>2851207
Не путай коннекты с потоками
100к коннектов само собой занимают память. Одних буферов вон сколько.
Но перемалываться все это будет в пулеь где пул занят - все ждут.
Также следует отличать потоки из пула и i/o потоки из того же пула.
Ну и таски от потоков отличать. Триллион тасков можно и в 1 потоке иметь
Аноним 22/09/23 Птн 10:39:26 2851229 738
2023-09-2210-35[...].png 16Кб, 514x224
514x224
2023-09-2210-35[...].png 9Кб, 790x118
790x118
А какова хрена?
Я вижу, что System.Math это public partial класс (пикрил 1)
Так почему же если я создаю в том же неймспейсе public partial calss Math, то мне пишет:

Ошибка CS0101 Пространство имен "System" уже содержит определение для "Math".
Аноним 22/09/23 Птн 10:40:44 2851230 739
>>2851214
В целом ITVDN были норм по шарпу.
Но я, как любой уважающий себя человек - воровал их. Сейчас бы купил думаю, хоть они и заменятся чтением книжек.
Аноним 22/09/23 Птн 10:42:48 2851233 740
>>2851214
Кто хочет - ищет как научиться
Кто не хочет - кто бы научил

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

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

Потому самоуч самый продуктивный.

Ну и наставник конечно. Которого можно спросить и он подскажет куда копать.
Аноним 22/09/23 Птн 10:52:51 2851238 741
>>2851233
Ну. Блин.
Все же не стоит во такую вот фигню говорить.

Вот я помню, первый курс. Спиздил из магазина книгу по Qt. Я же себя уважаю, платить 1800р за книгу - пошли нахуй. Ну. Спиздил. Сижу. Читаю. Нихуя не понимаю.
Потом - спиздил книгу по шарпу. Как раз CLR via С#. Читаю. Какие-то блядь, модули, хуедули. Какие-то заголовки. Какая-то общая языковая среда. Пиздец короче.
А потом - я нашел метанит. И почитал, весело поделал что там написано. Постепенно - какие-то там понимания, хуе-мое, сверху в вузе - на ассемблере-плюсах.
Потом - спиздил курс ITVDN.
И вот теперь я снова открыл книжку по QT - и все еще нихуя, блядь, непонятно. Какие-то сука, контейнеры, сигналы, блядь, этот еще долбоебский плюсовый синтсксис, который сверху тем что в нокле напридумывали помазан. Фу, блядь. Фу, нахуй.
Аноним 22/09/23 Птн 10:59:30 2851241 742
>>2851229
Почему нет способа слияния неймспейсов? Как же заебало.
Почему я не могу обращаться к Math и получить методы из System.Math и собственные методы Extended.Math из одной кубышки, так сказать?

Нет у меня внутри конфликтных методов, так чего же ты трясешься, студия?
Аноним 22/09/23 Птн 11:04:56 2851243 743
>>2851241
using static System.Math;
using static Extended.Math;
Аноним 22/09/23 Птн 11:26:31 2851259 744
>>2851238
То есть ты искал инфу для обучения - и ты её нашел.
А не "кто бы научил, вот этого учителя хвалят"
Так что всё верно
Аноним 22/09/23 Птн 11:28:32 2851260 745
>>2851039
перекати уже тред
я даже буду тебя из-за этого реже в гавно макать.
Аноним 22/09/23 Птн 12:05:21 2851286 746
>>2851279 (OP)
>>2851279 (OP)
>>2851279 (OP)

Криво перекатил из-за куклы

Можно как-то модератора попросить поменять тему?

Ну или пусть удолит кривой тред?
Аноним 22/09/23 Птн 12:06:49 2851288 747
И еще
Где остальной список литературы? Раньше после ОП-поста шел но я бака не схоронил.
Аноним 22/09/23 Птн 12:11:56 2851300 748
Аноним 19/10/23 Чтв 10:14:53 2884401 749
>>2808819 (OP)
Какую бесплатную либу сейчас принято юзать для работы с вордом/экселем. Ворд для генерации таблиц, эксель тоже + простые формулы между колонками.
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов