Этого треда уже нет.
Это копия, сохраненная 15 марта 2023 года.

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

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

1. Ресурсы:
https://dotnet.microsoft.com/learn
https://ru.stackoverflow.com/a/416585/422180
https://metanit.com
https://professorweb.ru

2. С# для веб
https://docs.microsoft.com/ru-ru/aspnet/core

3. C# для десктопа
https://docs.microsoft.com/ru-ru/dotnet/desktop

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

5. С# для мобильной разработки
https://docs.microsoft.com/ru-ru/dotnet/maui

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

Шапка: https://pastebin.com/HT7Hi6FD
Прошлый тред: >>2551587 (OP)
2 2564374
java лучше чем C#
3 2564401
>>64374
Паджит, съеби из тренделя
4 2564416
у меня от шапки диск отвалился.
5 2564432
>>64359 (OP)
Где тег?
6 2564723
кто какие расширения для ускорения разработки использует?
7 2565462
>>64723
не в том треде спрашиваешь
8 2565551
>>65462
А в каком?
9 2565724
>>64723
Ну есть решарпер для тех, у кого много денег и рабочая станция с 512 Гб оперативки, 28 ядерным 6 ГГц процессором и 6 Тб NVMe SSD RAID 1 (иначё всё тормозит).

А есть беспланые аналоги для отдельных функций решарпера. Я их юзаю.
10 2565745
>>65724

>решарпер


Зачем нужно это говно? Студия и так из коробки жопу подтирает настолько усердно, что опасаешься дырок. Куда еще сверху накатывать жопоподтиралки-то?
11 2565792
>>65724

>А есть беспланые аналоги для отдельных функций решарпера. Я их юзаю.


Напиши про них, пожалуйста. Для решарпера у меня машина соответствует, но оплатить не получится
12 2566204
Пол дня потратил, так и не понял какой стак технологий куда нужен. Вакансий дохуя, всюду в требованиях разное написанно. Коммунити тоже максимально недружелюбное до новичков, статьи старые как говно мамонта, какой-то туториал найти на ютубе нереально, книги говна больше похожи на документацию, ни в какое сравнение не идёт с среднестатичной книгой по пайтону или джаве.
Крч, мож посоветуете книги какие-то годные, лайвкодинг канал какой актуальный ну или туторы где посмотреть, ну или где бы с рынком как познакомится на этом языке. Я совсем уж зелёный.
13 2566212
>>66204
На сайте микромягких все разжевывается донельзя. Про книги - хз, мне кажется, и на джаву, и на условный пайтон можно найти говносправочники. Кажись, ты просто не там ищешь попробуй заглянуть в шапку
14 2566246
Какой щас норм учебник по с# есть? Когда то давно начинал с head first c#, щас в рашке есть чё лучше достать?
15 2566313
>>66204
.NET коммьюнити наиболее дружелюбное, еблан. Особенно если с вебмакаками сравниить.
16 2566315
Знатно упрлс и написал солвер для пазлов.

Ощущаю себя попущеным. Тестовую задачу солвер решает за 164 хода, а у пацанов оптимальное решение 52 хода. Хрен бы с оптимальностью, но решение занимает 700 строк кода. Это длинее чем у ассемблера, лел.

Даже не знаю выкладывать этот говнокод или нет. Он какой-то со всех сторон сомнительный. Одно радует, что я до него сам додумался. Свое не пахнет.
17 2566323
>>66313
Ну хз. У вебмакак вот такое нашёл https://github.com/rolling-scopes-school/tasks/tree/master/stage1 , теперь сижу у них в чатике спрашиваю вопросы и, с поиском любой инфы, с учебниками(на ютубе кучу туториалов) ноль проблем. А вот в сишарпе даже группу в условном вконтакте по нему хуй найдёшь.
18 2566333
>>66315
кстати майки наконец то додумались сделать UnreachableException
19 2566336
>>65551
хз. теперь 2 треда. вместо того чтобы создать нормальный тред, приходится сидеть в тонущем треде и в том, которое не тонет )

а во вопросу - ну со студией 22 все не очень же работает потому приходится юзать то что работает
решарпер понятное дело
supercharger ...и все в общем то (и то нужна лишь малая часть его функций)
ozcode не работает толком
stop on first exeption не работает
всякие дамперы тоже криво работают
визуалайзеры тоже никак

в общем так и живем
20 2566360
В очень многих вакансиях требуется опыт с AWS/Azure. А как их учить то? Сервисов у них тысячи, как понять, что учить и где учить?
21 2566487
>>66204

>какой стак технологий куда нужен.


Учи все, не ошибешься.
22 2566494
>>66360

>А как их учить то?


В большинстве случаев, такие вакансии это легаси, требующее либо поддержки, либо переписывания на более актуальный стек. И туда из нормальных разрабов мало кто идет, поэтому если действительно хочешь, то смело вкатывайся и тебя на месте всему научат.
23 2566612
А можно как-то получить наследника, зная родительский класс?
24 2566619
>>66612
Ищи рефлексией по сборкам
25 2566627
>>66336

>stop on first exeption не работает


Хз о чем ты, но в настройках студии есть список экзепшонов, на которых она останавливается и показывает тебе сообщение
26 2566639
>>66612
Не делай этого, это очевидный симптом говнокода.
Ты инжектишь абстракцию, в виде интерфейса, который выполняет одну задачу. И можешь свободно подменять имплементации, изменяя таким образом поведение.
Код, куда ты инжектишь, не должен ничего знать о конкретных типах своих зависимостей.
27 2566643
>>66612
И в целом наследование это рак, не пользуйся им, если есть возможность.
28 2566659
>>66627
об удобном способе включения выключения этого одной кнопкой
чтобы попав на первое исключение можно было тут же выключить и нажать продолжить, а не стопаться на каждом rethrow

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

Сейчас для этого дела нужно постоянно лезть в окно исключений и держать его открытым. Вместо удобной кнопки.
29 2566683
>>66659
Звучит как что-то нинужное, если честно. Хотя у меня код миллионом исключений не стреляет.
30 2566693
>>66683
разработка
отладка
остановка на первой ошибке

"что-то ненужное ага" )))))

ведь так приятно читать стектрейс чтобы понять где оно случилось вместо того чтобы просто быть на месте сразу
ну да ну да.
31 2566699
>>66639
>>66643
Да я тупанул. У меня в базе есть метод, который переопределяется в потомке. Я подумал, если я обращаюсь к базовому классу, то он выполнит метод в том состоянии, в котором он там находится. Оказывается, что выполняется в переопределенном виде.

>Не делай этого, это очевидный симптом говнокода.


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


У меня 80% кода одинаковые и только часть уникальная. Через интерфейс не выйдет.
32 2566766
>>66693
Если твой код при запуске выстреливает десятком исключений, то это повод задуматься, может ты что-то делаешь не так.
Ставить расширения, которые, по сути, поощряют плохие практики, такая себе идея.
33 2566778
а посоветуйте всякой годноты которой можно обмазать студию которая не решарпер
34 2566786
>>66766
у тебя мухи идентифицируют себя как котлеты.

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


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

это дебаг-фича для разработки как никак.

>по сути, поощряют плохие практики, такая себе идея.


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

Эта фича настолько "плохая" что встроена во все IDE всех языков что я видел (исключая разные блокноты), просто не включена под дефолту по понятным причинам.

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

ps: плохая практика - вот как в WPF глотать исключения, где эта фича особенно хорошо себя показывает
35 2566789
>>66778
зависит от версии студии конечно же
на 22 не все работает.
36 2566831
>>66786

>хоть сотней исключений


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

>тест должен упасть


Падающие тесты не выбрасывают исключений.

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

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


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

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

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

>Получается, что экстеншен нинужен, как я и писал.


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

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

да блин это очевидные вещи я рассказываю.

некоторым удобно и в блокноте писать и в консоли дебажить. и что с того - это их путь, пусть пердолятся как хотят. А те, кто хочет удобства...ищет удобства.
38 2566858
>>66831
некоторые сидят на голой студии и им норм

а другие ставят решарпер и радуются жизни
или вот такую штуку
https://marketplace.visualstudio.com/items?itemName=CodeValueLtd.OzCode

и искренне удивляются почему сама студия такого не предлагает
почему в голой студии все так убого
39 2566905
>>66789
я на 19 сижу
40 2566954
>>66360
А хули ты хотел? Петушарп!
41 2566955
>>66315
Все петушарперы опущенные, не расстраивайся ты так.
42 2566956
>>66313
Вот это коупинг обезьянки майков. Рыгнул тебе в ебальце.
43 2566957
>>64432
Говнотреду говношапка. Терпи, омега.
44 2566968
>>66955
Чего ты такой обиженый на шарп? Ексепшен какой-то не обработал?
45 2567018
>>66968
не знаю как он, а я вот жду билд авалонии где они cleartype типа пофиксили
а они как специально сделали последний билд 11 ноября и тянут резину.
46 2567077
>>66858

>или вот такую штуку


>https://marketplace.visualstudio.com/items?itemName=CodeValueLtd.OzCode


Блин, посмотрел - с виду клевая штука, но в 2022-й студии не пашет.
47 2567086
>>67077
ну они выпустили билд для 22 (на оффсайте можно скачать), но по факту это альфа, а значит с проблемами
и раз за год не было обнов и в маркет не попало и вот выдали вечный ключ - значит в эту сторону обнов не будет.
48 2567143
>>67086
Я как раз ее и попробовал. Основная фишка с дебагом и раскрытием LINQ как раз и не пашет. Просто не раскрывает выражение и все.
49 2567151
>>67143
там 70% не пашет и это бы еще ладно, но через несколько запусков дебага будет зависать
image.png437 Кб, 745x925
50 2567219
Это лучшая книга?
51 2567229
>>67219
Где-то на хабре читал, что в переводе сильно накосячили. Куча опечаток, вплоть до листингов кода, так что примеры не собираются. Так что читать только на английском. А так вроде норм.
52 2567232
Что пишут на этом языке? По большей части, говноигры на андроид, да?
53 2567236
>>67229
Понятно что на ангельском. Последнего издания мб и нет даже на русском.
54 2567247
>>67232
Да, шарп это жалкая попытка в Java, скорее даже неудачная попытка. В итоге ни то ни сё, ни в играх не преуспел, ни в вебе, ни в мобилках.
55 2567282
>>67247

>ни в вебе, ни в мобилках


Звучит как похвала.

>ни в играх не преуспел


Юнити самый популярный игровой движок.
56 2567284
>>67282
Популярный, да, среди разрабов говнины и ссанины. Даже тарков это кал из жопы.

Теперь назови мне хоть одну годную игру, написанную на юньке. Вот пример: Perfect World, Mass Effect, Spore, Civilization, The Witcher 2-3, дока, лол и т.д
В общем продолжать можно бесконечно, ни одной игры на юньке в топе нет, а твой "популярный" тарков забудут через пару лет навсегда.
57 2567285
>>67284
А на джаве написана самая популярная игра на планете - Minecravt. Чтоб ты понимал что к чему в этом мире, дружочек! Так что не надо слов, просто смирись что ты девелопер на языке-типакрутом-пофакту-позорнике-копипастере.
2023-01-09 08-47-33.mp43,9 Мб, mp4,
2:11
58 2567317
Все-таки решил выложить свой C# ENTERPRISE PUZZLE DEVELOPMENT чтобы добро не пропадало. Формально я задачу не решаю. Там требуют вывод последовательности шагов решения, а такой херней себя не утруждаю(хотя добавть запись ходов легко). Если пидорнут докручу графен и продам в стиме, лол.

Посмореть на получившегося монстра:
https://rosettacode.org/wiki/15_puzzle_solver#C#

Еще записал видосик с бодро ебущимися пазлами джаст фор фан.
2023-01-09 08-47-33-org.mp45,3 Мб, mp4,
640x512, 2:11
59 2567319
>>67317
Дубль джва.
60 2567363
>>67219
Нет, лучшая книга это Троелсен. У Прайса материал подан слишком поверхностно.
61 2567377
>>67284

>Теперь назови мне хоть одну годную игру, написанную на юньке.


>ни одной игры на юньке в топе нет


Cuphead
Cities: Skylines
Hearthstone
Totally Accurate Battle Simulator
0ri and the Blind Forest
Endless Space
Subnautica
Pillars of Eternity
Hollow Knight
Beat Saber
Phoenix Point
62 2567382
>>67319
Добавил в ожидаемые в стиме.
А если серьезно, то ты молодец, беспесды.
63 2567472
>>67363
Тот, который в танки раньше играл?
image106 Кб, 928x773
64 2567574
В C# есть методы типа "ThrowIf...", которые проверяют параметры или состояние объекта и выбрасывают исключение.

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

if (CheckIf...) - получается тавтология, но лучше пока не придумал.
65 2567599
>>67574
>>67582 (Del)
А нормально в каждом методе устанавливать Try для логгирования?
Если в основном методе указать, то он не покажет цепочку ошибок.

Как вообще отследить почему у пользователя возникает ошибка?
66 2567607
>>67599
Try имеет смысл использовать в двух случаях на мой взгляд:
- Если ты хочешь дополнить возникшее исключение (то есть создать новое на основе возникшего)
- Если ты не хочешь прерывать выполнение код и эксепшен был для тебя ожидаемым

> Как вообще отследить почему у пользователя возникает ошибка?


Просто логируешь все основные действия с уровнем Warning/Information.
67 2567633
>>67607

>Просто логируешь все основные действия с уровнем Warning/Information.


А что это такое?

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

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

Просто записываешь в логи "пользователь нажал туда", "программа сделала это" и так далее. Если возникнет ошибка, то ты увидишь, что к ней привело, прочитав лог-файл.
69 2567651
Есть ли смысл вообще учить сишарп? Сейчас глянул резюме и их чуть меньше, чем в джаве. А по количеству вакансий разница уже в 2,5 раза! Т.е. конкуренция на одну вакансию в 2 раза больше, чем в джаве.
70 2567664
>>67651
Учи джаву.
71 2567671
>>67664
Джава для пидоров.
72 2567679
>>67671
Вам "шашечки" или ехать?
73 2567681
>>67651
Зависит от того, что ты хочешь создавать. На шарпе можно создавать игры, бекенд и софт под винду.
74 2567703
>>67671
Получается выбора нет?
75 2567735
>>67651
Я х.з. как там в джаве, но по шарпу у меня сложилось стойкое ощущение, что где-то половины вакансий по нему на открытом рынке труда вообще нет. Что два года назад, что сейчас если на hh (или еще куда) залезть, то по сути лежат огрызки вакансий какие-то (многие годами). Но с другой стороны меня сейчас при наличии имеющейся нормальной работы, активно зовут на несколько неплохих проектов, на которые в принципе достаточно стронг-джун / мидл-минус уровня. Хоть на постоянку, хоть на совмещение. И просят еще с собой кого-нибудь привести, т.к. нормальных разрабов не хватает.

Ну т.е. вкатится с нуля сейчас сложнее чем на джаве. Но если ты уже влез и закрепился, поднял хоть немного связей, то процесс поиска в разы облегчается.
76 2567748
>>67735
А после джавы берут потом в сишарп с этими бонусами?
77 2567752
>>67681
Бэкенд, поэтому и сравниваю вакансии C# ASP.NET с Java Spring.
78 2567762
>>67679
А если уже на пол-шишечки?
79 2567780
>>67748
Я х.з. честно говоря не очень много таких свитчеров встречал. Ну и у них уже был как минимум опыт работы на проекте с шарпом. Ну т.е. не просто чел в один момент решает "а пошло оно, нахуй джаву, завтра пойду в шарп". Обычно это уже чуваки с приличным опытом, которые на предыдущей работе успели как минимум год-два посовмещать несколько проектов на разных языках и решивших, что в другом стеке им комфортнее. Вот таких берут.
80 2567786
Если я после джава скрипта привык открывать скобки на той же строке, сильно сложно будет перестроиться? И обязательно имена методов с большой буквы именовать?
81 2567821
>>67786
Ну у тебя как будто остальные проблемы решены.

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


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

>И обязательно имена методов с большой буквы именовать?


Религия не позволяет? Так же обязательно как с писать большой буквы начало предложения в комментариях. Почему ты не написал с маленькой?
19001406-1024x538.jpg55 Кб, 1024x538
82 2567825
>>67786

>И обязательно имена методов с большой буквы именовать?


А как ты напишешь имя функции, состоящее из двух слов и больше? через_нижний_прочерк?
83 2567841
>>67786

>сильно сложно будет перестроиться


Я летом пришел на проект где кодстайл был настроен был а-ля джава, т.е. как раз со скобкой на той же строке. Первую неделю подгорал немного, а потом похуй стало. Он менее удобен в шарпе визуально, т.к. сложнее визуально отделяь сигнатуру метода от его тела, но по большому счету похуй, т.к. все равно студия сама все расставляет.
Сейчас параллельно работаю над несколькими проектами где и так и так используется, и вообще не замечаю разницы.
84 2567847
>>67786

>сильно сложно будет перестроиться?


пишу на нескольких языках и в каждом из них использую тамошние правила
к этому привыкаешь. по глазам бьет как раз обратное
85 2567907
>>67825
Не, я имею в виду PascalCase (C#) против camelCase (JavaScript). Первый как то вообще дико смотрится после жс. Ну а открывающая скобка на новой строке это просто трата места.
изображение.png213 Кб, 610x714
86 2567911
>>67821

> Хорошая привычка.

87 2567926
>>67911
вот только второй вариант лучше.
в первом бессмысленное раздувание строк
1123.jpg31 Кб, 500x585
88 2567938
>>67911
Да, да, можно милилон аналогий привести. Для меня например висящие скобки выглядят как распахнутые ворота, мешающие на тротуаре.
89 2567969
>>67907

>это просто трата места


>>67926

>бессмысленное раздувание строк


Ну конечно, байты и строки нынче дорогие.

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

>Ну конечно, байты и строки нынче дорогие.


высота экрана дорогая.
мониторы 16 на 10 умерли
и остались только танковые щели.

я ценю выразительный код, который влазит в экран
а тут "кооменты, название, скобка, ни о чем ни о чем, скобка, новая строка" (повторить пару раз ) = экран закончился.
91 2568007
Хочу установить VS на рабочий комп с win7 для изучения С# как первым языком. Проблема в том, что он не установился, а для решения предлагают переустановить винду.
Так как комп рабочий, это не вариант. Чем можно заменить VS, eclips пойдет? Или что-то другое?

в утонувшем спросил, теперь тут
92 2568035
>>67978

>высота экрана дорогая.


Есть две вещи на которых разрабу не стоит экономить. Нормально кресло и хороший большой монитор.
Стандартный 16:9 при размере 28'' в FullHD уже спокойно позволяет кодить нормально не заморачиваясь с высотой, т.к. половины экрана хватит на код, а во вторую всякую дополнительную инфу можно поместить. Ну либо вообще на 90 градусов повернуть.
93 2568037
>>68007
Visual Studio Code
94 2568040
>>68007
Мб VS code?
95 2568043
>>68035

>28


>fhd


Ты угораешь или что? Тут 2К надо на такой размер.
96 2568044
>>68035
Так и представляю ноут на 28 дюймов
97 2568051
Пацаны, если я начну учить C#/.NET(мне похуй в какую область вкатываться, мне синтаксис языка нравится, заточеность именно на винду и просто задачки решать разные именно на этом типизированном языке), работу найти на нём реально будет? Смотрю рынок, там по откликам на вакансии пиздец, по 100 человек на джуновую позицию, но именно этот язык мне нравится.
И какой именно стак учить чтобы вакансии были? Украина если важно. Мб с фронта начинать и в фулстек пытаться?
1156900.jpg66 Кб, 604x453
98 2568057
>>68051

>посаны


>мэнэ пёхуы


>ПИЗДЕЦ посаны


Вася, чево тебе надо-то всё?
99 2568061
>>68051

> какой именно стак учить чтобы вакансии были?


Либо бекенд (asp.net core). Либо геймдев (unity3d).
100 2568066
>>68051

>Украина


Да, начинай с фронта, а там уже пiхуй будет.

Мне вот руби нравится, тут вопрос действительно актуальный: найду ли я себе работу? Поэтому параллельно изучаю шарп и для полноты картины и для увеличения шансов на работу.

Мб потом полностью переключусь на какой-то один язык/стек, пока поровну по 2 часа читаю, изучаю и тот и тот. Интересно шо пизда. Вчера всю ночь не мог оторваться, всё читал, гуглил, уснул только в 10 утра.
101 2568074
>>68066

>Мне вот руби нравится


ну ну. ты это брось. ладно бы еще питон - было бы допустимо.
102 2568077
>>68043
Да сорян цифрой ошибся. На 28 уже наверное 2К нужен. Я изначально хотел сказать 24 дюйма на фуллХД. На таком вполне комфортно работается.
103 2568080
>>68044
Ко любому ноуту можно внешний монитор подключить и нормально работать.
104 2568082
>>68080
так и представляю как я с ноутом еще и монитор таскаю )
105 2568083
>>68066

>для увеличения шансов на работу


До-о-о. Для увеличения.
106 2568084
>>68074
На руби вакансии хотя бы есть, хаскель мне еще больше нравится, но я все-таки отговорил себя, вакансий на нем 5-10 в год.
107 2568085
>>68057
Я в ИРЛ такие слова не использую(
108 2568086
>>68083
Ну да, чем больше пул, тем больше шансов. Можно в пхп, пайтон, руби, шарп, джаву, сипипи сразу вкатываться, но человеческого ресурса не хватит.
109 2568087
>>68082
А нехуй постоянно таскаться куда-то. Организуй себе рабочее место и там сиди.
110 2568089
>>68086
Ну так-то 2К23 на дворе. Сейчас для вката нужно очень глубоко в тему погружаться, так что ни на что лишнее времени не останется. А с поверхностными знаниями двух языков ты ни там, ни там не нужен будешь.
111 2568092
>>68084
ну это нужно любить руби и рор, ведь руби === рор.
лично я когда то любил руби за его дикую динамичность и DSL, но в итоге накушавшись "нихера не понять что есть в классе, можно понять только в рантайме " свалил на шарп и теперь приемлю только языки с типизацией, где IDE может помочь, а не играть в угадайку.

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

> нет ног - нет проблем

113 2568095
>>68087
ага в наше время сидеть на одном месте )))

а если серьезно то это ж просто дичь

void MyFunc()
{
if(...)
{
...
}
else
{

}

if(...)
{
...
}
else
{

}
}

вместо

void MyFunc() {
if(...)
...
else
...
if(...)
...
else
...
}

А-а-а-а-а-а-ааа аж трисет от такого. А еще ж там коменты у метода будут )
113 2568095
>>68087
ага в наше время сидеть на одном месте )))

а если серьезно то это ж просто дичь

void MyFunc()
{
if(...)
{
...
}
else
{

}

if(...)
{
...
}
else
{

}
}

вместо

void MyFunc() {
if(...)
...
else
...
if(...)
...
else
...
}

А-а-а-а-а-а-ааа аж трисет от такого. А еще ж там коменты у метода будут )
114 2568096
>>68089
Так 2 языка это норм. Люди же учат пхп/лара + жс/вью. А тут тем более руби, сильно отличается от шарпа, еще проще запомнить.
115 2568144
Посоветуйте книжку по сишарпу!
116 2568150
>>68095
У стиля Олмана (открывающая скобка на новой строке) есть несколько преимуществ, которые с лихвой перебивают мнимую экономию строк.
1) Визуально четко отделяет сигнатуру метода, от его тела. Особенно это заметно в конструкторах.
2) Скобки четко очерчивают область видимости. Глаз проще зацепить комбинацию скобка+скобка, чем строка_текста + скобка
3) Намного проще выделение отдельного блока кода при редактировании (не нужно искать где находится открывающая скобка. Т.к. гораздо чаще необходимо это делать именно для тела без сигнатуры или оператора которому блок принадлежит.
118 2568184
>>68150
1 чушь. отступ прекрасно выполняет эту работу.
2 смотри пункт 1
3 вообще не понял о чем это

пара замечаний
1 в других языках где не используют скобку с новой строки - ну вообще не страдают "ай как плохо читается". и я тоже не страдаю.
2 в шарпе есть экспрешен методы, которые как бы нарушают все твои три пункта. интересно зачем их добавляли если оно рвет удобство
119 2568187
>>68180
Тут же вроде везде дот нет фреймворк, нет? Сильно отличается от нет кора? Или это теперь одно и то же?
120 2568191
>>68187
.NET 5 это уже кор.
121 2568192
>>68187
В шарпе в каждой версии всё переделывают. Версии выходят каждый год, а книги с запозданием в 3 года.
Хочешь стабильности - изучай джаву.
122 2568211
>>68184

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


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

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


Нихуя они не нарушают. В большинстве своем это однострочники, в случае же если нужно больше одной строки, то тело метода так же ограничивается скобками.
тьфу.mp43,1 Мб, mp4,
1280x720, 0:07
123 2568215
Опять джава-дети втирают свою дичь Си-Господам. Не видитесь на провокации!
124 2568249
>>68215
Ведутся, значит заслужили такой участи. Фигурные скобки, охуеть вообще, сложно придумать наброс толще. И всё равно ведутся.
125 2568286
>>68249
>>68215
так то вполне нормальный спор. это тебе не табы с пробелами. и похер кто набросил - ведь факт проблемы реально есть.
стоэтажные скобки где скобки занимают больше строк чем сам код - реально раздражает такое читать. Просто неудобно

вон у питонистов никаких скобок нет, одни отступы - проблем нет.
126 2568294
>>68286
Нет никакой проблемы. Вот реально вообще похуй, где блядская фигурная скобка стоит, через пару дней перестаёшь замечать. Это какой-то бзик на скобках надо иметь, чтобы сначала смотреть не на переменные и вызываемые методы, а на скобки ебаные. Спокойно переношу открывающую скобку, когда пишу на шарпе/плюсах или оставляю на той же строке, когда пишу на жабе или тайпскрипте.

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


А вот у питонистов как раз проблем дохуя. Там и IndentationError, и невозможность сделать автоформатирование при копировании кода, и отсутствие do-while и многострочных лямбд из-за того, что не вписываются в синтаксис с отступами. Зато хеллоуворлд выглядит компактнее, это да, охуеть как важно.
14205334991080.jpg45 Кб, 591x604
127 2568309
>>67382
О, круто! У меня появился уже один подписчик на ранний доступ!

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

PUZZLE V3.0
- Система нативных плагинов для солверов. Игрок сможет выбрать солвер который будет решать игру за него. Из коробки доступен тормозной и неоптимальный C#-солвер.
- В магазине приложений станут доступны солверы на С++ и чистом С решающие задачу за лучшее время оптимальным способом.
- Открытое API по стандарту RFC для релизации своего солвера.

PUZZLE V4.0
- Улучшеная графика игры для разных уровней пользователей.
-- Бесплатная версия - стандартные винформы на сером фоне.
-- Бронзовая подписка - На пазлах появляются пастельные пейзажи разных мест.
-- Серебряная подписка - На пазлах появляются голые 3д девки.
-- Золотая подписка - На пазлах появляются аниме 2д девки.
-- VIP под заказ - Возможность устанавивать на пазлах свои картинки.
Image 2.png17 Кб, 689x836
128 2568310
>>68294
да пиши как хочешь. проблема не в писании, а в чтении
когда смотришь чей то код, а там как на пике.
такая херня только мешает, а не помогает.

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

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


я не хочу вступать в этот спор. это не питон тред. скажу лишь что все эти проблемы сильно преувеличены. и как бы вообще не проблемы.
и да - компактность тоже важна. не стоит искусственно сужать контекст показывая "вот смотри маааленькую часть")
129 2568327
>>68310

>если убрать нахер все скобки - читабельность только улучшится


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

А у шарписта чет "глаз без скобок не понимает где что"

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

>стоэтажные скобки где скобки занимают больше строк чем сам код - реально раздражает такое читать


ну братан братишка brother если у тебя столько скобок образовалось в одном месте то наверное присядь задумайся а что за хуйня у тебя там творится и начинай разделять
132 2568395
>>68377
самый обычный код. просто отформатированный по гайдам - а значит добавлены куча ненужных скобок на if, скобки на блоках вида try..catch только вот так многострочно и тому подобное.
133 2568544
Тухлый тред, впрочем как и язык. В джава-треде постоянный актив, что-то интересное и мотивирующее, впрочем как и сам язык - очень интересный, СТАБИЛЬНЫЙ, качественный и современный. Особенно Play.
134 2568547
>>68544
В джава-треде уже полгода какая-то петушня и клоунада, даже не хочется туда заходить. Сижу здесь, играюсь с шарпом, хоть на работе жаба.
135 2568565
>>68310

>скажу лишь что все эти проблемы сильно преувеличены


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

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

>ты просто не думая пихаешь строчки и всё заебись


Ну так, а не в этом ли весь поинт? Нахуй мне на работе думать еще. Я делаю свою задачу за 1...2 часа из 8-ми положенных, а дальше могу чилить как хочу. Хоть так же идти и писать говнокод без скобочек для души.
137 2568619
>>68336

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


Просто пишу ерунду. Бывает хочется.
138 2568622
>>68215
От си тут одно название. Язык почти калька с дельфи. Истинный наследник си - это джава.
139 2568642
>>68622

>Язык почти калька с дельфи.


Плохо что ли? Хорошо же.
>>68622

>Истинный наследник си - это джава.


Оба этих языка испытали влияние дохулиона других языков от С/С++ до совсем уж сейчас забытых, вроде Ада или Модула. И так же оба этих языка тащили друг у друга все, что возможно.
И кстати основные фишки джавы и шарпа, вроде трансляции в байт-код и последующим выполнением его на виртуальной машине, сборщик мусора и т.д. были придуманы еще Николасом Виртом в 80-х, как раз для одного из вариантов Паскаля. И оттуда по факту и были позаимствованы.
140 2568645
>>68622
Джава не наследник, это помойка сама по себе, уникальная, а вот шарп как раз копирка от майкрософт чтобы заиметь свою джаву. И за это можно даже поблагодарить, шарп с виндой хоть работает более-менее нормально, а отличие от джавы которая помойное дерьмо на любой платформе, потому что своей платформы не имеет. Кроме разве что андроида, но мобилки всё равно убогий огрызок, нерелевантно.
141 2568652
>>68565

>Нет, это то же самое как обертки оберток фабрик в жабе


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

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

do..while я даже в шарпе использую редко. в питоне же легко заменяется на while(true)..break - работает идентично, хз о чем спор

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

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


ну я когда то тоже питон хейтил за вот эти вот отступы. и в итоге питон один из основных моих языков.

>не надо делаяя лишние модификации создавая угрозу новых ошибок


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

когда не тащишь свой устав в чужой монастырь, то оказывается что и нет никаких проблем.
ну а макаке никакие скобки не помогут.
Image 3.png11 Кб, 674x270
142 2568665
Это че за способ использования GC.KeepAlive?
я такого не знаю.
143 2568670
>>68665
А доки прочитать религия не позволяет?
https://learn.microsoft.com/en-US/dotnet/api/system.gc.keepalive?view=net-7.0
В основном нужна когда байтоебишь что-нибудь или системные библиотеки дергаешь. Например если криптографией балуешься.
144 2568672
>>68665
Хотя на скрине авалония. Судя по нему подозреваю что там это делается для оптимизации работы с изображениями и прочим графионием.
145 2568681
>>68670
доки говорят что это удерживает ссылку от сбора. используешь в начале метода с unmanged кодом что-то, а в конце GC.KeepAlive вызов которого комплятор не вырежет, а значит удержит ссылку до этого момента. То есть GC.KeepAlive ничего так то и не делает кроме "мне в конце метода нужна будет эта ссылка, не убивай ее".

то есть ставить в начало метода лишено смысла.
146 2568726
>>68642

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


Да кстати, Вирт придумал пи-код чтобы легче было писать рантаймы паскаля для новых платформ. Программы на нем становилсь идеально переносимыми. Идея очень опередила свое время.
147 2569007
Когда я регистрирую депенденси проперти (DependencyProperty.Register), это как-то само подчищается при удалении итема? Где метод UnRegister?
148 2569097
Так и не понял для чего нужен GC.SuppressFinalize. Читается так, как будто подавляется финализация. А нахрена стрелять себе в ногу? А если в классе что нибудь останется?
149 2569103
>>68726

>чтобы легче было писать


Вот-вот, типичный рецепт говна.
Что хорошего может быть в высере, который делают по принципу легче вместо лучше.
150 2569140
>>69103
Легче — лучше.
152 2569184
>>69097
ну если у тебя после штатного Dispose что то остается - значит ты рукожоп и финализе тебе не поможет ибо в нем ты как бы и вызовешь этот самый Dispose, который и с первого раза не смог все сделать, а со второго раза в нем будет уже неправильное состояние объекта.
153 2569201
>>69177
Загуглить не сложно. А ты сам читал?
Одни пишут, что SuppressFinalize запрещает ставить в очередь finalize, другие пишут, что подчищается то, что не было подчищено.
154 2569204
>>69184
Ну я думал, что подчищаю какие-то очевидные места, типа неуправляемых ресурсов, а все остальное говно подчищается автоматом. А оказывается, что при SuppressFinalize я должен чистить каждый итем класса, потому что я запретил совать нос GC.

Так?
155 2569209
>>69204
управляемое подчищается само
неуправляемое требует явной очистки.
туда же всякие Close()

для этого ты делаешь Dispose и финализатор
сама очистка происходит в Dispose - если его вызвали, то значит финализатор вызывать уже не нужно, что и указывается с помощью GC.SuppressFinalize ()

если же рукожопы не вызвали Dispose, то значит финализатор будет вызван (а внутри него обычно все равно вызовут тот же забытый Dispose)

таким образом в данном паттерне финализатор вызывает Dispose если он был забыт и не был вызван явно.

Ну а то что забывать не стоит и нужно вызывать - это уже другая проблема которая заведет нас в lifetime-ы, но это уже оффтоп
156 2569223
>>69209
А я могу подвесить Dispose к событию Unloading?

>а внутри него обычно все равно вызовут тот же забытый Dispose


Это проверяется? Ведь по умолчанию у класса нет Dispose. Финализатор чекает на то, является ли класс IDisposable?
157 2569248
>>69223

>А я могу подвесить Dispose к событию Unloading?


это перпендикулярные вещи. IDisposable вещи обычно такие для того чтобы их диспозили (но не все - httpclientые штуки исключение). это самый обычный метод общепринятый. ничего особенного в IDisposable нет. Ну кроме того что про него знает using(var ...)
а когда ты это сделаешь тебе решать.

>Unloading


десктоп что ли? диспозишь вьюмодель? не сработает

>Финализатор чекает на то, является ли класс IDisposable?


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

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

не каждому объекту нужна финализация.
158 2569269
Блять, какая же хуета эти ваши словари ресурсов. Я неоднократно это утверждал, но теперь у меня есть подтверждение.

Это гораздо хуже растровых изображений. Я думал, что проблема в них. В моем TreeView © каждая нода мерджит словарь ресурсов. 200 нод знаете скольо перативы засрали? 200 мегабайт! А каждая загрузка сотни нод занимает 2 секунды из-за ебаного парсинга ресурсов, текст которого по ходу как писали в интернете буквально конкатенируется со словарем ресурсов предыдущего итема.

Вы представляете? Каждое новое открытие ноды содержит все копии предыдущих словарей + еще одна. 100 итемов == 100 копий словарей ресурсов в одной простыне, которая парсится в риалтайме.
Это хуже подписок, это хуже битмапов. Это ебаное зло. И ведь этот вопрос поднимался лет 10 назад и ничего не было придумано для решения этой пробелмы (или придумано, но я хз как это искать).

Словари ресурсов не любят когда их многократно подгружают. Хз как это фиксить, учитывая что у меня решение состоит их кучи проектов. Ща буду смотреть, а xaml просто сходит с ума, если я буквально не указал словарь ресурсов. Я даже не могу его передать по свойству.
159 2569273
>>69269
Попробую черед dataContext добавлять
160 2569289
>>69269
а вот незачем подгружать словари где то кроме как на старте приложения.
161 2569312
>>69289
Если у тебя решение состоит из множества проектов, то не все проекты увидят ресурсы основного проекта. Как итог xaml ругается что не видит ресурсы, хотя при запуске все норм и всё видится.

А есть еще стили, которые нужны только на уровне одного преокта. Не пихать же мне все в мейн проект? Это вообще подрывает всю идею модульности.
162 2569317
Посоны, а как будет выглядеть архитектура приложения, которое будет использовать отдельную базу данных для каждого юзера?
Я просто задумался, мне в принципе одна огромная база данных не нужна, только для данных самих пользователей, а вот у каждого пользователя уже свое.
163 2569327
>>69317
Как будто ты пользователей приковал цепями, запретил им увольняться, расти по службе. Как будто ты какой-то странный.
164 2569332
>>69327
Чего? У меня не компания, где пользователи по службе растут.
165 2569339
>>69332
Ты какой-то странный.
166 2569359
>>69339
Не понимаю, чего тут странного.
Почему ты вообще предположил увольнение, продвижение по службе, у меня не компания какая-то, где люди работают, а просто приложение для обучения, где люди могут свои данные загружать и заучивать их
167 2569363
>>69312
есть такая беда.
ну тут каждый ехешник держит копипаст словарей
а на дизайнероское "нимагунайти" я и сам хз че делать.
avatars-xqNUU4A5nm7RCHbN-Wiz1VQ-t500x500.jpg46 Кб, 500x500
168 2569365
>>69359
А среднее мы считаем - жопой!
169 2569368
>>69365
нет, это ты какой-то странный
170 2569383
>>69363

>а на дизайнероское "нимагунайти" я и сам хз че делать.


Пока решил проблему mc:Ignorable="d"
Наконец-то этому найдется применение, лол. Великая тайна "нахуя она здесь?" наконец-то раскрыта. На момент верстки ксамл будет брать ресурсы оттуда, но в сборку не попадет и ресурсы будут искаться в мейн проекте.
171 2569397
>>69383
для дизайна же
датаконтекст юзаем и фейкоданные

какое отношение имеет к словарю ресов - хз
172 2569487
>>69397

>какое отношение имеет к словарю ресов


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

Пишешь:
mc:Ignorable="d"
<d:ResourceDictionary ...

Тогда дизайнер увидит словарь ресурсов. Но возможно это из-за того что я юзал UserControl который создан так, чтобы не видеть глобальные словари ресурсов. Ща переделаю и посмотрю как работает.
173 2569490
>>69487
И я не знаю как при помощи датаконтекста прибиндить словарь. Ну будет это какой-то словарь а даьше что? Как дизайнер узнает есть ли в этом словаре нужный элемент?
174 2569495
>>69490
ну если тебе не лень писать данные для дизайна ты можешь создать параллельные вьюмодели, но я такого никогда не делаю - я всегда использую для дизайна реальные вьюмодели классы но без их создания.

что конечно в списках выглядит ой. правда они там сделали новое типа SampleData

а еще во че нашел. не знал
https://learn.microsoft.com/en-us/troubleshoot/developer/visualstudio/general/cannot-find-resource-named-error
175 2569546
>>69495
Я не понимаю. При чем здесь вьюмодель?
Она вообще не имеет никакого отношения к словарю ресурсов. Это xaml файл, живущий совей жизнью.
176 2569555
>>69546
Ты сказал про дата контекст. Я и сделал вывод что ты пытаешься данные на дизайнере вывести.
177 2569561
>>69555
Да я хз как это прикрутить. У меня проблема не в билде, а студии. Она отказывается видеть словари ресурсов из другого проекта.
Даже mc:Ignorable="d" по факту не помогает.

Из-за этого мне надо в каждый контрол вставлять чертову простыню, котоаря клеится со всеми остальными. Я не знаю как это говно порешать.
image.png10 Кб, 614x71
178 2569572
Бля, а это нормально, что на всю страну всего 23 вакансии с опытом 1 год, при этом чистый веб бек штук 5? Про "без опыта" вообще нет считай
179 2569573
>>69572
вкатывайся под Бахмут
image.png30 Кб, 835x174
180 2569578
>>69573
На фронте ещё хуже по 500 откликов на 1 место.
Чую бляд в пыху вкачусь и там оскуфею
181 2569581
>>69561
Как же меня бесит SO. Десятки отдних и тех же ответов уровня "да епта, юзай MergedDictionaries". Вы пробовали мерджить ресурсы для итемов и чтобы приложение не улетало в космос?

Такое чувство, что я один на планете с такой проблемой. Какие-то намеки вижу по запросу WPF prism, но там описывается проблема как добавить в проект, а не в сотню итемов.
182 2569590
>>69581
ну тут мелкие тупанули
потом немного подтянули дизайн но все равно плохо
а тебе вот это разве что

https://stackoverflow.com/questions/8712228/wpf-sharedresourcedictionary
183 2569603
>>69097
Суть токова. В финализаторе обычно есть только один вызов Dispose. В самом Dispose происходит основная работа очистки всех ресурсов. Если программист сам вызвал диспоз, то финализатор ему становится не нужен, он может об этом сказть GC вызвав SuppressFinalize.

В чем профит?

Объекты с финализаторами удаляются за два прохода сборщика мусора, а объекты без них только за один(т.е. сразу улетают в топку доступной памяти). Получается меньше мусора, меньше простоев программы на работу с ним, при этом есть финализаторы, чтобы подстраховать братишек забывших вызвать диспоз.
184 2569609
>>69590
Да, да, щас вот это пробую. Типа класс мерджит ресурсы только если их нет в сборке. Интересная идея, главное чтобы десигнер не заругался.
185 2569632
>>69590
>>69609
Вроде как работает. Я не вижу такого огромного роста занятой памяти. Вместо 300Мб приложение теперь занимает 80Мб. Надо еще подчистить немного.

Что мешало майкам сделать это из коробки? Я видел подобное решение, датированное готом 14м.
186 2569655
>>69632
это костыль так то. решение было бы правильное дать возможность указать словари в дизайнере
188 2569768
>>69767
Ух бля, сколько полезной информации сюда могло ещё поместиться...
189 2569807
>>69768
Такую портянку говна никакое расположение скобок не исправит.
190 2569816
>>69767
Че ты орешь? Нормальный же код! В деревнях такой все ели!
191 2569818
>>69767
Наверно надо вытащить ResutCode и превратить дерево вызовов в линейную структуру: вызов - проверка. Если все проверки lflen саксес делать ExecuteSignOut.

Вообще на пике типичный результат функциональщины головного мозга.
1000001298.jpg251 Кб, 1080x1469
192 2569849
Это как себя не уважать надо, чтобы со стажем идти на эту зп?
193 2569877
>>69849
Бронь
р
о
Н
ь
194 2569891
>>69849
Сейчас идут на любую зп лишь бы взяли. Вакансий нет ни фига.
195 2569894
>>69818

>Вообще на пике типичный результат функциональщины головного мозга.


Да я думаю, как раз любой функциональщик за такой код тебя с разбегу обоссыт. Да и не функциональщик тоже.
196 2569896
>>69849
Ну это геймдев, да еще и VR там в принципе денег нет. Народ за идею и возможность приобщиться работает.
197 2569962
>>69818

> превратить дерево вызовов в линейную структуру: вызов - проверка


Как бы ты это сделал? Исходный SDK PlayFab работает на основе коллбеков.
198 2569967
>>69849
60 откликнулось. Это пиздец
199 2570010
Эти гады сегодня дотнет 3.1 удалили!!! Сволочи!
200 2570029
>>70022 (Del)
Я вообще не понимаю смысла в этих 5 и 7 версиях? Они промежуточные и никто на них ничего писать не будет кроме хеллоуворлдов. Лучше бы выпускали нормальную версию раз в 3 года с обдуманными изменениями, а не всякую ерунду тащили.
201 2570066
>>70029
Джавист, спок.
202 2570073
>>70029
Блять за тем и делают промежуточные версии чтобы спокойно обновить приложение.

И да джава дебил, у нас тут КАЖДЫЙ НОЯБРЬ выходит новая версия, не промежуточные а прям мажорная
203 2570111
>>70088 (Del)
Джава - это кобол, её почти не развивают. Можно раз в 10 лет читать чейнджлог за 30 минут. Это шарп пилят так активно, что скорее в нём надо ежегодно читать талмуды.
204 2570166
>>70029
1 новая версия шарпа
2 дает возможность привнести новые фичи (тут вам не жава - тут хотят новых фич и не через тысячу лет)
2 дает возможность стабилизировать новые фичи перед выпуском лтс
205 2570213
Решил сделать сайтик для портфолио, начал читать про веб технологии, и малость прихуел от их обилия. Js, TypeScript, Bootstrap, jQuery, React, Angular, Vue и тд. Всё это надо знать, надо учить миллионы классов, чтобы сделать мало мальски приличный современный сайт. У меня глаза на лоб полезли.
206 2570245
>>70213
На джаве можно работать чистым бэкендом без всякого этого
207 2570269
>>70245
а на шарпе типа нельзя что ли?
208 2570283
>>70245
не ты ли та шарпомразь которая перенаправляет нубасов-вкатоидов в б-гомерзкую джявку?

одобряю
image.png868 Кб, 1200x628
209 2570326
>>70283
У-у-у-у-у.
210 2570906
>>70213

> Js, TypeScript


JS придётся учить, TypeScript чаще берут в больших проектах, но после JS и шарпа учится очень быстро.

> Bootstrap, jQuery


К "современным" сайтам не относятся, к тому же там и учить почти нечего.

> React, Angular, Vue


В проекте пишут на чём-то одном. Ангуляр в легаси, вуе непопулярен, реакт самый хайповый. Учится не быстро, хотя и быстрее, чем тот же ASP.NET.
i.png10 Кб, 1169x285
211 2571080
>>69962

>Как бы ты это сделал?


Как на пикче примерно. Самое главное не херачить новый код сразу после "Result =>". Должен быть либо флаг, либо вызов новой функции.
212 2571210
>>71080

>Самое главное


Уволен. Следующий.
213 2571219
>>71210
Мать твою ебал
214 2571231
>>71210
Зашивайся, петушок стрелочный.
215 2571379
Господа, ботов для игр на сишарпе пишут? Есть ли смысл учить язык для ботоводинга? Типа боты уже итак написаны, их проще покупать же? Что вы пишите на этом языке?
216 2571764
>>70906

> реакт


Почитал про реакт, посмотрел синтаксис, по ощущениям это что-то вроде mvc, только в браузере, также контроллеры возвращают вьюшки. Зачем это нужно?
217 2571872
>>71379
На шарпе можно почти всё, включая любых ботов: игр/покера/трейдинга.
218 2571880
почаны помните я тут хотел даунгрейднуться до 3.5
я нашел волшебную таблетку
https://github.com/Sergio0694/PolySharp
219 2571888
>>71880
Лучше бы даунгрейднулся, чем остальной код начинять непонятной парашей с полифилами.
Расскажи что потом получилось, лол.
220 2571913
>>67978
Я наоборот вертикально пишу, стараясь уложить строки в 80-120 символов, включая отступы. Ну и любимое, это передавать параметры по именам. Такая-то читаемость у кода.

TestMethod(
....name: "vasilii",
....age: 22,
....anotherParameter: you.are.gay);

Сорян за почерк, пишу с кофемашины.
221 2571914
>>71764
Чтобы контроллеры возвращали только данные (обычно JSON), а не аж целую веб-страницу. Помогает снизить нагрузку на сервер и сеть за счёт повышения нагрузки на клиенты и отделить бизнес-логику от презентационной логики, особенно когда видов клиентов несколько - веб, мобилки, десктоп.
222 2571933
>>71914
щас опять модно рендерить на сервере

https://nextjs.org/ и тд
223 2571939
>>71913

>Я наоборот вертикально пишу


что значит наоборот
я тоже пишу вертикально
просто предпочитаю заполнять пространство кодом, а не лишними скобками которые ничуть не улучшают читабельность
224 2571943
А
..я
....пишу
......диагонально.
225 2571944
>>71933
Хочу рендерить на сервере экзешники.
16732168435100.png434 Кб, 745x925
226 2571988
Че так много вкатунов в юньку? 15 чел на 1 место если верить резюме/вакансии на хх. На асп тоже довольно много - 6 человек на 1 место. Даже на жабе на спринг соотношение 4.5 человека на 1 место. Как так вышло, что вкатунья на асп.нет больше чем на везде рекламирующийся кспринге?

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

мимо 26 лвл тнн рнн сыч шиз дошел до 60 страницы
image.png349 Кб, 530x653
227 2571994
>>71988
читал её, ток последнюю главу про блазор скипнул
недели 3 ушло на всё

щас наверно буду пикрел, потом пару петов, литкод, и на джобмаркет
image.png27 Кб, 813x167
228 2571995
>>71988

>На асп тоже довольно много - 6 человек на 1 место.


Ахуеть много
image.png162 Кб, 1341x1073
229 2572008
>>71995
Что пикрил должен мне сказать? Типа у них там много откликов? Если да, то у нас так-то тоже много откликов, уж явно больше 6. Это же речь шла об отношении всех резюме ко всем вакансиям, понятно что на вкатунских вакансиях соотношение минимум 100 к 1 даже на .net'е.

>>71994
Лучше скажи: как собираемся конкурировать с такими кадрами?
230 2572019
>>72008

>как собираемся конкурировать с такими кадрами?


С таким - никак. Такое резюме с вероятностью 80% сразу в мусорку улетит.
231 2572021
>>71994

>pic


Лол, это же реально та самая книга для вкатунов.
232 2572023
>>71988

>Как так вышло, что вкатунья на асп.нет больше


Потому что открытых вакансий меньше.
233 2572089
Прошел собес. Дали сначала ссылку пройти тест на w3schools. Потом поспрашивали по хуйне типа "что такое Garbage Collector, JWT, HttpOnly cookies, IoC, интерфейсы, абстрактные классы, синглтон, перегрузка методов и операторов, рекурсия" (все что вспомнил из вопросов).
Хз, кажется самый простой собес из всех что у меня были не считая руби-скрапера в профитеро. Из-за этого возникли сомнения в какую контору я вообще собеседуюсь. В моей предыдущей галере на роль ворочателя ямлов требовалось решить литкодовскую задачку сложности middle. Тут -- ответить на вопросы, которые зазубривает интерн-ждун перед собесом на курсы в ерат.
Офер еще не прислали, отпишусь когда и если получу. Договаривались на 2к евро + виза.
234 2572090
>>72019

> Такое резюме с вероятностью 80% сразу в мусорку улетит.


Можешь сказать почему?
235 2572114
>>72090
Судя по списку ключевых навыков молодой человек вообще не одупляет, что происходит.
Отсюда вывод, что резюме старательно писалось чтобы выглядеть солидно.
Я б пособеседовал, но без каких-то заоблачных ожиданий. Скорее всего там обычный джун, которого учить и учить.
236 2572126
>>72089

>Договаривались на 2к евро + виза.


Лол. Ну это где-то уровень джун-плюс и есть.
237 2572129
Товарищи, у меня проблема.
Хочу в С# вкатиться первым языком, но не могу установить VS, так как на рабочем компе нет админки. Посоветовали скачать VS Code, но и тут проблема, не могу установить .NET из-за ошибки 0х80070005, для ее устранения тоже нужна админка.
На что еще можно заменить, на чем удобно в C# вкатываться?
238 2572131
>>72126
Так я ждун и есть.
239 2572136
>>72129
Обратись к системному администратору на своей работе
240 2572138
>>71872
Сложно было вкатиться на уровень, при котором ты сможешь простого бота написать?
241 2572158
>>72090

>Можешь сказать почему?


Вот этот >>72114 правильно говорит. Резюме писалось как по методичке курсов для вкатунов. Херочки такое палят на раз, тем более, что они часто сами их и пишут, лол. Причем методичка была явно устаревшая, т.к. нет половины того, что сейчас для джуна нужно.
242 2572159
>>72131
Ну тогда поздравляю.
243 2572691
>>72158
>>72114
А можете примерно накидать как надо?
У меня такой же опыт работы, думал, по советам с МВП дорисовать до 3х лет какие подводные? и пробоваться на мидла. Но как резюме высрать вообще не представляю...

А что от мидла ждут кстати? Что надо уметь? 🤔
244 2572753
Сап, шарпач. Пилю свой первый интернет-магаз в качестве пета. У каждого товара есть название, описание, категория и ключевые слова. Хочу запилить поиск в одну строку, который бы искал сразу по всем параметрам. Как на Depositphotos например. Это можно будет сделать с помощью Elasticsearch? Или есть другие какие-то готовые решения или самому велосипед делать?
245 2572756
>>72753
На чем фронт пишешь?
246 2572773
>>72114
Двачую, я такое "резюме" в универе писал чисто наотъебись в качестве задания по какой-то гуманитарной хуйни.
247 2572811
>>72691

>У меня такой же опыт работы


Какой такой же? В том резюме его вообще нет. Есть набор просто набор слов вычитанных из учебных пособий и видеоуроков.
Расписывать нужно конкретный опыт
- место и срок работы
- проект/проекты над которыми работал
- какие задачи выполнял, достижения сделал
- инструменты и технологии которые использовал
И так для каждого места работы/проекта

И быть готовым, что вопросы будут задавать конкретно по этому опыту (это помимо теоретической базы). >>72691

>какие подводные?


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

>>72691

>А что от мидла ждут кстати? Что надо уметь?


Скажем так мидл не должен чего-то не уметь. Он может не иметь опыта работы с чем-то, но это просто означает, что он потратит чуть больше времени на задачу, т.к. ему придется приобрести этот опыт.
248 2572877
>>72756
Та на Ангуляре накидаю ерунду какую-нибудь.
249 2572932
Почему здесь так любят Angular? Вообще ни от кого не слышу даже упоминания этого древнего фреймворка, а в шарпотреде всё время про него говорят.
250 2572943
>>72932
Потому что ангуляр на таймскрипте, который разрабатывал создатель шарпа
251 2572950
>>72932
Потому что ангуляр нормальный фреймворк и вообще единственный во фронт говне именно фреймворк. Поддерживает тайпскрипт, ДИ и ООП из коробки, также из коробки полноценный хттп клиент и реактивные расширения. Также у него лучшая структура проектов и сборка.

Ангуляр не любят только разные додики которым сложно и хочется быстро говна высрать аля вуе и реакт
252 2572990
>>72932
Древний - это покойный AngularJS. Современный Ангуляр совершенно новый и обновляется чаще детских подгузников. Его часто упоминают в шарпотредах, потому что Шарп - это кровавый энтерпрайз, и Ангуляр для него лучше всего подходит. Он куда менее модный, нежели Реакт, но поддерживать на нем сложные системы сильно проще, потому что Тайпскрипт и почти все нужное есть искаропки - не нужно ебаться с милллионами зависимостей и выдумывать костыли.
253 2573153
>>72943
И чо, дядя, привет 2к23, тут и среакт такое способен если ты не знал.
254 2573169
Каковы реальные сферы применения си шарпа? Ну кроме игор. Вот вы бэкендер, чем конкретно вы занимаетесь? У питона дохуя сложившихся исторически сфер применения, а где применяют си шарп?
255 2573175
>>73169
Приложухи писать. Нахуй нам твое вебоговно? Что вы там постоянно "пишите", говносайтики у друг дружки копипастите? Вы бы еще посоревновались, кто красивее срет, лолки.
256 2573177
>>73175
Ну какие приложухи, какая сфера хоть. То что на си шарпе можно что угодно делать это понятно. На с++ тоже дохуя чего можно, но это ничего не говорит о реальном применении языка.
257 2573184
>>73177

>какие приложухи, какая сфера хоть


Ну смотри. Есть аналоговнетное оборудование, тысячи его. Смены ему нет и не будет, ибо дорого и ссанкции-хуянкции. Большинство комплектуется довоенным софтом еще под дос, на винде оно еле пердит. А бабке сраке с этого устройства надо таблички выдирать для отчетности. Вот тут-то и приходит на помощь Шарпоспец. Он и протокольчик через компорт организует, и данные в виде екселевского файлика на фтп выгрузит. Вот она, реальная задача и реальная работа, а не эти ваши те самые.
258 2573185
>>73184
И как, норм платят?
259 2573239
>>73184
Все так, за исключением мелких деталей.
Вместо древнего софта метатрейдер, вместо бабки манагеры.
Ну и не в рф, а на кипре.
260 2573244
>>73239
Метатрейдер это что? Какие технологии используешь? Специфичные для языка и платформы. Может можешь что в целом по рынку труда сказать, стоит ли перекатываться с фронта в бэк на с#?
261 2573248
>>73244
Метатрейдер это софт для брокеров.
По технологиям - аспнет, ентити фреймворк, кафка.
Стоит ли перекатываться - в душе не ебу, зависит чего тебе надо. Зп у фронтов +- такие же.
262 2573253
>>73248
Фронт это прикольно и в целом нравится, но у меня развился комплекс неполноценности из за того что не представляю себе целостную картину. Хочу погружаться в предметную область сильнее, взаимодействовать со сторонними апи и сервисами, как то вширь развиваться. Хочу в фулстек попробовать, хотя бы на каком то уровне обе области зацепить. Десктопная/нативная разработка меньше интересует, не думаю что на С# это направление так уж актуально.
263 2573260
>>73253
Если не на шарпе десктоп актуален, то на чем тогда? На элексире что ли? Кажись только шарп и элексир и делят большую часть рынка, хоть он и полуживой.
264 2573263
>>73260
Ну я в целом говорю, что десктоп на второй план уходит, работы меньше и удачи нужно больше, на самом деле у С# тут сильные позиции, просто коряво выразился.
265 2573333
>>72990

>Шарп - это кровавый энтерпрайз


Это джава - кровавый энтерпрайз, а шарп так, для сайтиков средней сложности, где РНР пробуксовывает
266 2573538
>>73260

> то на чем тогда?


На делфи и qt. Активно используются для гуи на заводах.
267 2573572
>>73333
Додо пицце это расскажи.
.jpg29 Кб, 320x442
268 2573576
Я сегодня испытал эстетический оргазм.
В общем. Я посмотрел код https://github.com/RapidScada/scada-v6
И блин. Это же просто отличнейший код. Может быть там баги и есть, но блин: просто, понятно, без всяких новомодных изъебств. Просто шишка колом.
Теперь я хочу там работать.
Может быть кто-то имеет контакты или знает че там да как?
Серьезно, давно такого не испытывал. Только в эталонных примерах от майков, но там по другим причинам.
269 2573630
>>72811
Достойно расписал, спасибо
270 2573636
>>73576
Открыл, увидел static void init(), вызываемый из совсем другого места, закрыл.
Но я рад, что тебе нравится.
271 2573658
>>73636
Ты не шаришь, няша. Так еще деды наши делали.
Ну да ладно.

Мне нравится, как все стройно, понятно, логично. И при этом - без магии. Поймет как это работает - даже дебил.
Допустим, в отличии от текущей моды, где у тебя - 0 вызовов конструкторов, 0 вызовов методов, но, блядь, какой-то магией оно слепилось во что-то напоминающее приложение. Фу-фу-фу. Не люблю такое.
272 2573705
>>73658

>стройно понятно


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

>магия


Это называется di. И суть там в том, что при изменении требований ты добавляешь новую имплементацию существующего интерфейса, и правишь одну строчку в инициализации, а не чистишь вилкой 10 классов, в которых у тебя этот init вызывался.
273 2573711
>>73658
Ну и название репы намекает, если v6 означает количество раз, которое это переписывалось.
Зато как деды и дебилам понятно.
274 2573721
>>73711
Проекту больше 10 лет как-бы.
275 2573733
>>72753
Так как поиск-то замутить?
276 2573743
>>73721
Т.е. у них каждые 2 года накапливается критическое количество говнокода и они начинают заново.
277 2573763
>>73733
Пишешь интерфейс IFilter<T> с одноименным методом принимающим lEnumerable<T> и возвращающим его же.
Для каждой категории пишешь имплементацию, которая фильтрует по строке. Строку передаешь в конструктор.
Пишешь еще одну имплементацию, которая принимает в конструктор пачку IFilter, примегяет их на енумерабл и объединяет результаты.
При запросе создаешь фильтр, и применяешь на последовательность своего говна.
Опциональнл можно передавать фильтр в репозиторий и применять его там.
.jpg3,6 Мб, 2500x3328
278 2573770
>>73743
Я не знаю как у вас, но в обычной разработке - лидирующий номер версии - значит, что был внесен достаточно большой список новых фич, изменений и исправлений, чтобы можно было отделить одну версию от другой. Лол.
Допустим - на первом этапе был только сборщик. Ок-да. Дальше прикрутили редактор мнемосхем, веб-сервер, дашборду. Ну серьезно, делать: 1.0.9999999?
А когда пора делать версию 2?

Ну и да. В том конкретном случае- v6 обозначает переход с .Net Framework+Mono, на .net6. Что немного намекает, на то, как часто полностью переписывать приходилось. Раз о переходе задумались только в 21 году.

Блин. Вообще, чет вы злые. Я посмотрел репозиторий. Отличный код. Зашел на форум - так приятно читать. Хочется либо работать с этими людьми, либо влиться в попенсорс и как-то им помогать. А вы тут... Эх.
.jpg271 Кб, 1280x1917
279 2573802
>>73705

> И развалится нахуй при первом же изменении требований из-за тесного связывания.


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

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


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

> Это называется di


Это называется - спрятать мусор под ковер. Когда вы не способны нормально продумать архитектуру так, чтобы без магии оно клеелось, потому - нужно обмазаться магическими хреновинами, чтобы как-то оно работало.
280 2573902
>>73770
Я не против, что люди хорошие и код аккуратный. Но это не отменяет того, что он хрупкий и дубовый.
Любовь проходит, когда ты начинаешь такое поддерживать, а оно сделано так, что для минимальных изменений нужно либо городить лютые костыли, либо переписывать с нуля.
281 2573905
>>73802
Ты можешь di написать ручками, суть от этого не изменится, просто будут прямые вызовы конструкторов в строго определенном порядке.
282 2574099
>>73538

>делфи


>qt


Так мы не про говно мамонта тут рассуждаем, а про modern текнолоджи, за которые тебе будут башлять 300кк. За куТэ и дельфи тебе максимум 70к будут платить. Еще и с командировками. Нах надо такое? Куда-то жопу постоянно поднимать еще и за гроши!
283 2574115
Какая-то невзрачная шапка треда стала. Раньше, помню, там была куча различной литературы, рассортированная по уровню сложности и различные видео-курсы, и т.д. А теперь лишь несколько ссылок и все. Может быть у кого-нибудь сохранились старые шапки?
284 2574122
>>74115
Ищи здесь старые шарпотреды: https://2ch.hk/pr/arch/ (М)
285 2574140
Сап. Подскажите, как брать данные из интернета в шарпе. Вот мне нужно в переменную вставить значение из интернета. Допустим, есть условный сайт с расписанием автобуса, мне нужно вывести в консоли значение времени прибытия этого автобуса. Как это сделать, скажите, пожалуйста. Какие библиотеки, команды? В интернете никто по этому простому вопросу не пишет.
286 2574146
>>74140
Веб-скрапинг это называется.
Просто получить веб-страницу легко: https://metanit.com/sharp/net/2.2.php
Дальше начинаются сложности:
- Если у найденного сервиса с расписанием есть публичное API, надо обратиться к нему, полученный JSON/XML распарсить.
- Если нет API и там HTML, надо будет его парсить какой-нибудь либой, хотя может хватить регулярок
- Если нет публичного API, а сайт сделан как SPA-приложение, придётся возиться со всякими Selenium.

Ну и многие сайты скрапинг не одобряют, в любой момент могут обнаружить и забанить.
287 2574148
>>73763
А готового велосипеда нету? Там же по идее алгоритмы можно (и наверное нужно) приплести? Неужели нету библиотеки для поиска для АСП?
288 2574152
>>74122
Спасибо.
289 2574176
На с# кодят обязательно под виндой? И вообще как сильно разработка на с# завязана под ПО майкрософт? Всякие sql серверы, адо неты, космос дб и прочее? Чувствую что вкатившись в с# я буду прибит к конкретной связке технологий, чего не хотелось бы.
290 2574180
>>73333
Шарп - это кровавейший энтерпрайз. На нем бойлерплейтом и абстракциями обмазываешься ничуть не хуже, а байтоебство и прочий аллокейшен-фри код - де-факто стандарт шарповой разработки.
291 2574184
>>74148
Есть, linq называется.
Там буквально return items.Where(x => x.YourProperty.Contains(query)); надо сделать, какая библиотека.
Интерфейсы нужны, чтобы из таких мелких запросов собирать более сложное - как у тебя в задаче.
292 2574187
>>73248

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


А тут не актуальнее ли наоборот перекатываться? Так-то в бэке куда больше доля галер была, которые сейчас ушли, выкинув на рынок кучу разработчиков.
293 2574189
>>74180

>аллокейшен-фри


Иронично, что память выделяет рантайм независимо от того, будешь ты ее использовать или нет. А потом просто двигает указатель на край кучи и пишет данные в заранее аллоцированную память.
294 2574193
>>74187
Хз, я на кипре, мне срать.
Но метаться между технологиями в любом случае так себе идея - делай что нравится, при условии что оно хоть как-то востребовано.
Твой личный скилл влияет на зп и трудоустройство гораздо сильнее, чем выбранный стак.
295 2574198
>>74176
Дотнет коре мультиплатформенный. Я бы даже сказал, что на шарпе в основном пишут под линукс, если считать апихи, которые разворачиваются в докер контейнерах.
296 2574200
>>74146
Как это забанить? По айпи или что? Ну так я роутер перезагружу и заново будут тырить данные. Я пока только 3 главу на метаните читаю, но заниматься начал как раз-таки из-за желания сделать "веб-скрапинг", вот заранее пытаюсь понять куда мне вообще двигать.
297 2574203
>>74198
А какие БД наиболее распространены? И вообще какое технологии больше всего в ходу?
298 2574208
>>74203
Мне чаще всего встречался постгрес.
299 2574211
>>74208
Т. е. нет такой херни, что тупо в силу моды массово используется та или иная связка?
300 2574214
>>74203
Asp.net core это аналог спринга из жавы. В основном используется для апи, но вообще на нем можно и фронт писать. Чего я ни разу не встречал.
Entity framework core для доступа к базам.
Wpf для десктопных приложений.
301 2574223
>>74211
Если ты используешь ef core, то без разницы какая база, по большому счету.
Он дает тебе в руки dbset, ты с ним делаешь всякое через linq, потом вызываешь метод чтобы отправить транзакцию. Sql запросы никто руками не пишет в здравом уме.
302 2574226
>>74200

> Как это забанить? По айпи или что? Ну так я роутер перезагружу и заново будут тырить данные.


Полно маркеров, не только IP, но и данные оборудования, MAC-адрес и прочее, либо сам характер запросов (если ты запрашиваешь данные точно раз в минуту с одними и теми же заголовками, ты точно бот). Да некоторые могут сразу определить скрапинг ещё до того, как ты получишь хоть какие-то данные. Специальный заголовок не передал, например, либо какой-то скрипт у тебя не запустился. Всё зависит от данных, на сайте с расписанием автобусов в мухосранске вероятнее всего никакой защиты не будет, а вот парсинг цен в интернет-магазинах или получение курсов акций обычно пресекается.
303 2574228
>>74198

>апихи, которые разворачиваются в докер контейнерах


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

И не пизди. У меня 5 сервисов грузится просто по сфтп в папку на сервере под линукс и все работает без ваших блядских говно ВМ зумерских
304 2574238
>>74228
Докер и то, что ты называешь селф-сборками, решают разные задачи.
305 2574246
>>74226

>парсинг цен в интернет-магазинах обычно пресекается


Чот оронул с этого.
306 2574252
>>74228

>у меня работает!!1


Молодец, а теперь сделай так, чтобы при 10к одновременных юзеров на первом и третьем сервисах производительность не просаживалась.
307 2574253
>>74226

> MAC-адрес


значение знаешь?
как условный интернет магазин узнает мой MAC-адрес?
308 2574260
>>74228

> докер


> ВМ


ловите скуфа!
309 2574261
>>74253
Узнает-узнает, не сомневайся.
image.png580 Кб, 679x682
310 2574264
>>74261
ну давай, расскажи что происходит с мак адресом когда кадры проходят через узлы сети

а мы послушаем
311 2574291
Почему Window.Hide не выгружает память?
Приходится сначала делать
WindowState = WindowState.Minimized
а затем Hide()
image.png127 Кб, 1366x768
312 2574297
>>74146
Спасибо за ссылку, бронон. Но у меня следующий вопрос. Вот я с помощью GetStringAsync получаю урл страницы википедии, сохранённый в стринговой переменной, как мне из него вычленить, допустим, текст подписи к википедии на другом языке(Вот он на первом скрине)? Может, нужно использовать другую команду? Или только обрезать весь текст всего урл, кроме нужного мне?
313 2574307
>>74297
Помню вроде в Xml ридере есть опции парсинга свойств (или как там это называется). Указываешь что-то вроде "title" и тебе возвращается либо содержимое в кавычках, либо подсвойства.

ридер тебе парсит всю иерархию, а дальше ты ищешь по ключевым именам, типа div, id, title
Я смутно помню, могу посмотреть завтра.
https://learn.microsoft.com/en-us/dotnet/api/system.xml.xmlreader?view=net-7.0
314 2574310
>>74307
HTML и XML не совместимы между собой. Нужен специальный парсер HTML, похоже, что из коробки в дотнете такого нет, надо сторонние либы подключать.
315 2574314
>>74200
Ты бы сначала узнал, может у сайта открытое апи есть, и не надо будет ничего скрапить. Если документированного апи нет - зайди в девтулзы/сеть, посмотри не передается ли нужная тебе инфа в запросах, если передается - то тоже скрапить не нужно. Для скрапинга же сишарп слабо подходит, там полторы всратых библиотеки, две из которых используют xml, лучше джава скрипт. Хотя, если тебе одно значение - то вообще без разницы, можно тупо поиском зафигачить регуляркой, и не париться со скрапингом.
316 2574315
>>74203
Скул сервер и постгрес. Постгрес юзают потому что он мощный, открытый и бесплатный, скул сервер - майки двигают.
317 2574320
>>74214

>В основном используется для апи, но вообще на нем можно и фронт писать. Чего я ни разу не встречал.


Корпоративную фигню пишут иногда, и эмбедед системы для всяких касс и банкоматов. В целом же в вебе - так себе идея. Сейчас вообще все через SSR делают, лишь бы 100мс на парсинге js сэкономить, тянуть clr, чтобы сишарп в браузере завелся - никто не станет.
318 2574390
>>74320

>эмбедед системы для всяких касс и банкоматов


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

Признавайтесь, кто из вас эту парашу лепит. Я в рожу плюну.
319 2574452
>>74390
Это на джаве.
320 2574465
>>74390
Насколько помню, эту парашу лепит хуинтел. Но даже он, хоть и кал, не виноват. 20 лет назад никто не предполагал, что кому-то из-за жадности помноженной на врожденную тупость приспичит пихать в 2023 году четвертый пень в рабочий пк.
321 2574631
>>74465
Ты же читать не умеешь. Было сказано "программа новая, а компьютер стары". Это значит раньше было всё нормально, но ОБНОВЛЕНИЕ отыквило компьютер и всё затрещало по швам. При чем тут интел, когда очевидные говношлепы параши клепатели срут говном вместо нормального софта. Ебаные макаки виноваты во всём, а не интел или еще кто, такие как тут сидят и довольны баблом в карманах, пока остальные страдают от их говна насранного.
322 2574757
>>74631
Плюсую. Сам работал в тех. поддержке и бесило как эти говноделы выпускали обновления и обязательно что-то ломалось.
323 2574869
>>74631
Так они бы вечно клепали обновление, если бы не подстегивающий кабанчик. Конечно же макаки виноваты, ага.
324 2574922
>>74631

>Это значит раньше было всё нормально,


То что РАНЬШЕ все было нормально, не значит то, что все это нормально СЕЙЧАС.
325 2574960
>>74757
>>74869
Как бы смысл их работы не в том, чтобы все быстро работало и не ломалось, а в том, чтобы в их сопровождении была потребность. Вот и приходится ломать потихоньку. А тп для того и нужна, чтобы бомбящие клиенты с легкой формой даунизма поносили бедного человека на телефоне/в чате, а не сам отдел разработки.
326 2574990
>>74869
Работаешь - ты, а не кабанчик. Это твой выбор, твое поганое действие высирающее говно. Отмазы "это не я говно, это жизнь такая" не проходят. Это ты - быдло, поэтому и жизнь такая, а не наоборот, потому что жизнь и состоит из людей, из каждого такого как ты, вот и результат.

>>74922
Ну да, было нормально, а потом пришли макаки и всё изгадили. О чем и разговор.
327 2575025
Есть ли вообще смысл учить сишарп, если вакансий всё равно нет?
328 2575026
>>74990
Обожаю наблюдать за такими максималистами на реальных проектах, когда окружающая действительность начинает отвешивать им смачные плюхи.
329 2575028
>>75025
- Видишь вакансии?
- Нет.
- А они есть.
330 2575038
>>75025
Джавадебилам вроде тебя имеет смысл не вылезать из своего загона.
331 2575045
>>74990

>Работаешь - ты, а не кабанчик. Это твой выбор, твое поганое действие высирающее говно.


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

>это не я говно, это жизнь такая


Это меньшая из проблем, которая может возникнуть. Мне когда друг, монтирующий жд-пути, рассказывает охуительные истории рядового рабочего дня, то внутри холодеет.
Если такой идеалист — пили свое приложение.
332 2575050
>>75038
Я просто не готов сложить все яички в одну корзину и хочу подстраховаться
333 2575051
>>75050
Тогда учи 10 языков сразу.
334 2575093
>>75038
Под кроватью искал?
335 2575100
>>75093
Их даже искать не надо. Сами приходят в этот тред и начинают кидаться какашками.
336 2575151
>>75050
Ты так пишешь, как будто у тебя яичек наберется на целую корзину.
По факту у тебя всего одно яичко и десятки корзин.
337 2575178
Я ебал эти тесты. Что это нахуй такое? Как это делать? В интернете и на Ютубе 80% видео - просто рассуждение о том нужно ли их делать или нет и как они полезны, остальные 20% - либо не совсем та тема, либо нихуя не работает. Сука, что за нахуй-то, а.

Анон, дай, пожалуйста, ссылку на гайд как сделать юнит-тесту для шиндус формс, а то я чувствую, что либо я крайне тупой (что верно), либо что все вокруг крайне тупые(что тоже верно, но не так важно, как первое)
338 2575209
>>75178
Тоже не догоняю в чем прикол. Большая часть тестов и так очевидна.
В чем их смысл? Узнать, что функция не работает если передать ей титановый лом? Ну я и так это знаю.
339 2575225
>>75178
Да никто не понимает, это языконезависимая проблема. Стандарта нет, все клепают как хотят. Тестируют обычно логику, а не UI, Для UI иногда пишут тесты, но это не юнит-тесты, а нечто иное. Для веб-говна ещё справляются худо-бедно с селениумами, но с десктопными формочками приходится возиться с эмуляцией событий клавиатуры и мыши, ну и занимаются этим обычно не программисты, а всякие QA-автоматизаторы.
340 2575252
>>75178
Хаха лошки, у нас в PHP-треде всё по полочкам расписано, как, когда и для чего делать тесты. Так что забудьте про майкоговноподелие и шагом марш учить лучший язык кодерства - PHP.
341 2575255
>>75209
Я так понял, он нужны для того, чтобы сразу понять где именно лом влез в шестерёнки программы. Вот типа компания долго пользуется программой, дополняет её и всё такое, а потом бац и что-то перестало работать. Вместо того, чтобы с лупой читать весь код от начала и до конца, можно запустить тесты и понять где и что не работает и почему.

>>75225
Просто мне для работы сказали покрыть тестами небольшую программку, а я вообще их никогда не писал и тупо не могу это сделать, не получается, то .нет проектов не совместим, то ещё что-то.
342 2575260
>>75209
Тесты - для людей с IQ 80. Им сложно в голове удерживать больше одной вещи одновременно, они пока до написания конца метода из 5 строчек доходят - забывают, что на первой строчке было. Для таких людей написать метод - труд и достижение, переписать метод - еще сложнее, у них же в голове он за один присест не умещается. Поэтому, чтобы программировать могли даже такие - и придумали юнит-тестирование и TTD. Т.е. ты сначала пишешь тест - т.е. что хочешь получить от метода, а потом этот метод подгоняешь, ищешь, почему не получается нужный результат. Или при переписывании метода - тест тебе покажет, что ты совсем что-то не то делаешь, у тебя совсем другой результат получается. Здоровым людям такое, разумеется, не нужно, у нас все в голову влезает, когда нам надо написать метод, складывающий три числа, мы понимаем, что нужно первое со вторым сложить и прибавить к нему третье, когда нам надо переписать, чтобы второе к третьему прибавлялось сначала, а потом к нему первое - тоже никаких проблем. А люди с низким интеллектом так не могут, они прибавят первое ко второму, а потом начинают прибавлять второе ко третьему (они же по порядку складывают, третье по порядку возле второго, вот с ним и складываем), и складывают два получившихся результата. И вот чтобы они такое могли отловить - они сначала пишут тесты, мол 1+2+3 должно быть 6. Ага, а у меня программа выдает 8, я забыл второе число из суммы наверное вычесть, ага 1+2+2+3-2 = 6, тесты зелененькие, метод написан. Ага, задача переписать, чтобы второе с третьим сначала складывалось, переписываем, так, мы тут делаем так, а нам надо сложить сначала второе с третьим числом, так, 2+3=5 Не подходит, не хватает первого, а первое у нас в старом методе было 1+2, т.е. 2+3+1+2=8, опять не так, черт я запутался, ну-ка посмотрим, а, точно, мы еще должны второе число вычесть, так 2+3+1+2-2 =6, о, заебись. Фух, какой сложный метод я сегодня написал, как мощен мой скилл, с какой комплексной логикой, на славу поработал, воистину без тестов никуда.
342 2575260
>>75209
Тесты - для людей с IQ 80. Им сложно в голове удерживать больше одной вещи одновременно, они пока до написания конца метода из 5 строчек доходят - забывают, что на первой строчке было. Для таких людей написать метод - труд и достижение, переписать метод - еще сложнее, у них же в голове он за один присест не умещается. Поэтому, чтобы программировать могли даже такие - и придумали юнит-тестирование и TTD. Т.е. ты сначала пишешь тест - т.е. что хочешь получить от метода, а потом этот метод подгоняешь, ищешь, почему не получается нужный результат. Или при переписывании метода - тест тебе покажет, что ты совсем что-то не то делаешь, у тебя совсем другой результат получается. Здоровым людям такое, разумеется, не нужно, у нас все в голову влезает, когда нам надо написать метод, складывающий три числа, мы понимаем, что нужно первое со вторым сложить и прибавить к нему третье, когда нам надо переписать, чтобы второе к третьему прибавлялось сначала, а потом к нему первое - тоже никаких проблем. А люди с низким интеллектом так не могут, они прибавят первое ко второму, а потом начинают прибавлять второе ко третьему (они же по порядку складывают, третье по порядку возле второго, вот с ним и складываем), и складывают два получившихся результата. И вот чтобы они такое могли отловить - они сначала пишут тесты, мол 1+2+3 должно быть 6. Ага, а у меня программа выдает 8, я забыл второе число из суммы наверное вычесть, ага 1+2+2+3-2 = 6, тесты зелененькие, метод написан. Ага, задача переписать, чтобы второе с третьим сначала складывалось, переписываем, так, мы тут делаем так, а нам надо сложить сначала второе с третьим числом, так, 2+3=5 Не подходит, не хватает первого, а первое у нас в старом методе было 1+2, т.е. 2+3+1+2=8, опять не так, черт я запутался, ну-ка посмотрим, а, точно, мы еще должны второе число вычесть, так 2+3+1+2-2 =6, о, заебись. Фух, какой сложный метод я сегодня написал, как мощен мой скилл, с какой комплексной логикой, на славу поработал, воистину без тестов никуда.
343 2575265
>>75260
Посмотрим, как ты удержишь в голове проект на 500к строчек, которые писали 30 разрабов в течение 10 лет.
344 2575266
>>75265
Никак. Я же не говорил, чмо мой IQ больше 80.
345 2575267
>>75266
Значит, у всех разрабов 80 IQ.
346 2575268
>>75265
Вот про таких я и говорю, которым сложно вещи понимать. Причем туту юнит тесты и размер проекта? Ты конкретный метод тестируешь, в качестве костыля, помогающего преодолеть неспособность удержать в голове логику этого метода.
347 2575275
>>75268
У тебя точно айсикью меньше 80. Ты тестируешь что не сломал А когда делаешь Б, когда об существовании А ты даже не подозреваешь. Это и называется "не держать проект в голове"
348 2575281
>>75255

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


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

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

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

Единственный смысл в тестах, это когда кто-то другой тестирует, а не ты сам. Наверно так и происходит, а надрачивать самому себе это хуйня, наверно. Я лучше буду пользоваться внутренним регламентом.
Стикер63 Кб, 200x200
349 2575285
>>75265

>Посмотрим, как ты удержишь в голове проект на 500к строчек, которые писали 30 разрабов в течение 10 лет.


А не писали бы юнит тесты, справились бы за 5 лет.
350 2575290
>>75281
Смысл в том что когда ты пишешь свой код то и пишешь тесты к нему, потому что ты лучше в нем разбираешься. Вася пишет свою часть кода и пишет тесты соответственно к ней, потому что лучше в ее логике разбирается. То есть Вася пишет тесты для тебя чтобы ты его работу не поломал, а ты для Васи.
351 2575296
>>75275

>А ты даже не подозреваешь.


Именно. Когда у тебя IQ выше сотни - ты не мыслишь в категориях "подозрений", ты знаешь. У тебя 5 строчек метода целиком в голову влезают, ты одномоментно находишься в осведомленности о том, что метод должен делать и что делает код, который ты пишешь, и соответствует ли одно другому. Ты не бьешься головой об клавиатуру, в надежде, что у тебя получится Б, чтобы потом обнаружить, что ты сломал А - у тебя в голове полная картина действий в методе, включая те, которые взаимодействуют с A, и ты конкретно знаешь, что твой метод делает c A, тебе не нужно потом это "обнаруживать".
352 2575302
>>75281

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



Так ведь есть expected и прочие хуйни, где указываешь какие значения должны быть, а какие нет.
353 2575303
>>75296
Не тупи. Никто не пишет тесты чтобы понять свой код. Тесты пишут чтобы у других разработчиков был сигнал что они нарушают поведение кода которое было задуманно автором. Особенно полезно когда проекту уже несколько лет, сменилась пара поколений разработчико и нужно рефакторить код чтобы ввести новую функциональность.
354 2575309
>>75296

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


Чел, мы тут все в айтишечку за баблом вкатываемся, а не затем чтобы думать лишний раз.
355 2575312
>>75303

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


Ты что несешь? У шарпа - строгая типизация, он просто обмазан надежностью и безопасностью. Другим разработчикам не нужен сигнал, что они нарушают поведение кода - они попросту не могут его нарушить, если ты сам того не разрешил. У тебя линтер буквально в вижлу встроен, если тебе чего-то со стороны языка не хватает, для чего тебе тесты?
356 2575315
>>75309
Так IQ именно про то, что тебе думать то не приходится (и, соответственно, ты не ошибешься в размышлениях, если ты не думал), тебе и так все ПОНЯТНО и ОЧЕВИДНО.
357 2575320
>>75312
Для строго типизированных языков модульные тесты меньше. Но когда несколько человек работают над кодом то им часто приходится править одни и те же файлы, особенно при рефакторинге. Чтобы например сделать иерархию классов и интерфейсов боллее отвечающей задачам. Так что тот условный вася будет пререписывать типы. В таких случаях типизация может не спасти. А уж что касаетя функциональных тестов, типизация там вообще не причем. Ты не можешь типизировать в своем коде чтобы у тебя было две кнопки на странице OK и Сancel, а не одна.
358 2575321
>>75320

>строго типизированных


статически типизированных
359 2575325
>>75320

>вася будет пререписывать типы.


И как ему помогут тесты МЕТОДОВ?
360 2575326
>>75320
Когда Вася будет рефакторить и править типы, то что он устранит ошибки компиляции не означает что он не выплеснул с водой ребенка, которого ты родил в своем коде.
361 2575335
>>75325
Тут скорее типизация с тестами играет роль костылей подпирающих с двух сторон. Типизация может быть не полной, как и тесты. Ничего нет совершенного, особенно в коммерческих продуктах
362 2575348
>>75335
Например в коде полно мест где возвращаяются типы шире чем они есть на самом деле. И из-за этого в использующем коде полно кастингов
363 2575354
В треде борщехлёбы с религией "компилируется = работает".
364 2575358
>>75281

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


Придумать все возможные входные данные, проверить что внутри алгоритм правильно пихает их во внутренние вызовы и правильно реагирует на ответы. Проверить что на все возможные варианты входа алгоритм выдал правильный результат.
Плюс интеграционые тесты что все модули правильно работают вместе тоже все возможные варианты проверяем.
365 2575407
В старом нете майки продвигали контрактное программирование как годную замену тестам всех сортов и расцветок. У них даже половина фреймворка была написана в контрактном стиле.
Краткий обзор на эту йобу: https://learn.microsoft.com/en-us/dotnet/framework/debug-trace-profile/code-contracts

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

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

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


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

Тесты пишут для фиксации работы алгоритма или модуля. Чтобы спустя год если кто-то случайно на 3 из 10 слоев что-то сломал ты узнал об этом ещё до мерджа
367 2575665
>>75407
там написано

>Consider using Nullable reference types instead.


Не пиздишь ли ты?
может быть он просто сильно тормозил
368 2575672
Где вообще происходит связка xaml-документа с документом кода? У меня часто слетает эта связь и код не видит элементы из xaml. Пишет, что такой-то элемент с таким-то именем не объявлен или недоступен. При этом вс нормально собирается и запускается, это какой-то глюк студии.

Ни очистка, ни пересборка не помогает.
Единственным вариантом это удалять папку .vs
Можно как-то явно связать файлы?
369 2575948
Как поменять значение переменной в dll файле? А то есть программа опенсорсная, в ней захардкожено максимальное количество выдаваемых результатов, хочу его поменять. Ебаться с ошибками при компиляции целого проекта не хочется.
370 2575964
>>75948
В любом hex-редакторе.
371 2576023
Пацаны, а какой использовать постфикс для имён классов, которые работают с нативным кодом?

Есть классы, которые работают с GameCenter и Keychain на iOS, через DllImport, как бы выступая мостом между управляемым и неуправляемым кодом. Как бы их лучше назвать? GameCenterNative или KeychainBridge?
372 2576049
>>75964
Еще бы понять как там найти переменную.
373 2576089
>>76023

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


Как делаешь? У меня та же проблема, я в управляемую библиотеку расставляю точки входа, чтобы выглядела как неуправляемая библиотека.
374 2576098
>>76049

>я хочу влезть в залупу, как это сделать?


>вот так


>бля, чет еще хуже, чем было


Ну дык ...
375 2576102
>>76049
длл нативный? Преврати в илкод, поменяй данные и снова упакуй.
376 2576144
>>75948
В общем поменял с помощью плагина reflexil для ilspy.
20230116155856.jpg5 Мб, 4128x3096
377 2576153
Сап, шарписты.
Установил на рабочий комп (на win7) VS Code. По видосам настроил, и даже написал некоторый текст для вывода в консоль. Но вот беда, даже такой не большей код вызвал у компа попытку суицида, минут 20 крутит build и не понятно как долго еще будет крутить. А выдал в процессе приклил.
Может, кто на опыте сказать, что за хуйня?
378 2576155
>>76144
К слову при вызове функции число 100 почему то имело тип sbyte и использовалась инструкция для записи sbyte в регистр int32. Пришлось еще и инструкцию менять.
379 2576158
>>76153
Спермерка не поддерживает новые версии дотнета.
380 2576362
>>76153

>что за хуйня?


Судя по твоему скриншоту, у тебя переизбыток говна в голове, аж глаза заливает. Кто тебя скрины так делать учил?
381 2576394
>>76153
Я студию даже на планшет устанавливал, правда там десятка.
4Гб оперативы. Конечно, юзабилити там условное.

Ты случайно ен ЧПУшник какой? Чому семерка? Придется тебе таскать с собой ноут.
382 2576533
Как с помощью кода показать, что метод Authenticate может быть вызван только один раз за всё время жизни программы? Достаточно ли просто выбросить эксепшен InvalidOperation с соответствующим пояснением в сообщении? Или можно как-то красивее обставить.
383 2576536
>>76533
Хм, или просто при первом вызове запомнить, какой был результат. И потом его возвращать всякий раз при вызове Authenticate. Обычному коду не обязательно знать, что этот метод работает только 1 раз.
384 2576550
>>76533
Удали его с помощью рефлексии после первого вызова.
385 2576568
>>76533
>>76536
Так и делай. Пользователь не должен знать детали реализации
386 2576569
>>76533
Ну вот я видел в классах такой флаг IsInitialized. Только сделай его static и тогда будет тебе на веки вечные, пока жива программа.
387 2576597
>>76533
А зачем его запрещать вызывать несколько раз? Ты дебил?
388 2576606
>>76597
Потому что внешний сервис, который предоставляет эту функцию, позволяет сделать это один раз. Если вызвать ещё раз, то ничего не произойдёт и коллбеки не будут вызваны. Так устроен сервис.
389 2576617
>>76597
Ну попробуй несколько раз переопределить dependency property, к примеру. Че не мужик что ли?
390 2576773
>>76606
Так и ты в методе просто нихуя не возвращай, у тебя же по сути фасад над апишкой, к чему эти изъёбы? Она уже всё предоставила
391 2576822
Где в ASP.NET Core разместить логику с кастомной инициализацией (например, сходить в бд, прочитать какие-то файлы, установить расписание на основе этих данных)?
392 2576834
В ВПФ у RichTextBox есть свойство Document типа FlowDocument и оно не биндится.
Нагуглил несколько "решений", но все сводятся к тому, что Document конвертится в строку. Это "нормально" или лучше поискать как биндиться к другому FlowDocument?

Данные хранить буду в бинарном виде, используя BinarySerialization.
393 2576843
>>76833 (Del)

> разместить


> На слое бизнес логики



Наверное не совсем верно сформулировал. Понятное дело, что на слое БЛ. Где это добро вызывать? В WPF был метод OnStartup и свойства Initialized/Loaded. Эту подготовку надо выполнить непосредственно перед запуском самого приложения.
394 2576844
>>76843

> свойства


события*
sessionjson.jpg26 Кб, 583x217
395 2576919
Установил дотнет 2.1 специально для старого кода, но всё равно он мне говорит, что функций GetJson и SetJson уже нет. Где их искать?
396 2576928
Пацаны, нет у кого статьи или видосика где рассказывают лор .net framework и .net core, что это такое, их историю создания и для чего их создавали вообще, пытаюсь кенту объяснить а он не выкупает(
397 2576966
>>76919
Разобрался. Оказывается это не библиотечные методы, а методы расширения, которые этот придурок Адам Фриман описал только в конце главы. Вот что за манера давать код, который с ошибкой? Я из-за него голову сломал как фиксить это говно.
Но микрософты тут тоже виноваты, что надобавляли сахара и теперь хрен пойми где ошибка: то ли библиотечная функция не та, то ли где-то в коде кто-то присобачил метод расширения.
398 2577002
>>76966
1) Пробуй сначала прочитать главу полностью, а потом уже код ебашить.
2) Обычно к таким книгам прилагается диск или ссылка на ресурс со всем кодом из книги.
image.png73 Кб, 1152x279
399 2577035

>A class contains the members of an object, including methods.



Я че-то не понял. Я думал, что класс это типа описание объекта, его возможностей и туда-сюда. А тут написано "мемберс ов эн обджект". Что за члены класса? Как это понять?
400 2577056
Тут как-то писали, что List.Count на самом деле не проходит по всему списку с подсчетом, а эта инфа хранится в условном заголовке списка.

Тогда почему студия рекомендует вместо
List.Count > 0 использовать List.Any?
401 2577091
>>77056
Потому что разработчики дотнета считают, что any яснее отражает намерения разработчика.
402 2577099
>>77002
Думал, что решил проблему, но нифига. Теперь валится эксепшен во время выполнения.
Главу дочитал до конца. Автор пишет, что уже всё должно работать.
Смотрел на гитхабе код и у меня всё один в один, но не работает. Скорей всего микрософты всё равно что-то сломали и даже смена дотнета не помогает.
403 2577138
>>77099

>Теперь валится эксепшен во время выполнения.


Так а в чем проблема? В эксепшене у тебя есть сообщение, гуглишь по нему и понимаешь смысл проблемы.
404 2577145
>>77138
Ответ найти не удалось. Точнее там пишут, что надо как-то по другому работать с сессиями, но я не понимаю. Фримен же не пишет, что и как работает, а просто суёт код и говорит, что в последних главах будет объяснение.
405 2577149
>>77099
Главу и книгу скажи. А ещё ты хоть смотрел доку майков?
https://learn.microsoft.com/ru-ru/dotnet/api/system.web?view=netcore-2.0

В коре нет HttpContext и даже в .net framework 1.1 https://learn.microsoft.com/ru-ru/dotnet/api/system.web.sessionstate.httpsessionstate?view=netframework-1.1 нет таких методов.

Это самописные методы расширения чел, а ты НА РУССКОМ не смог просмотреть документацию. Буквально бля 1 минуты в гугле и сайте
406 2577156
>>77056

>Тогда почему студия рекомендует вместо


>List.Count > 0 использовать List.Any?


Это хорошая практика. В некоторых местах например за ассерты с List.Count > 0 в юнит тестах, могут и пизды дать.
407 2577157
>>77149
Адам Фриман - ASP.NET Core MVC 2 с примерами на C# для профессионалов (2019). Конец 9 главы, где создаётся корзина товаров.
Код из книги есть на гитхабе: https://github.com/Apress/pro-asp.net-core-mvc-2/tree/master/09%20-%20SportsStore%20-%20Navigation
Эксепшен валится именно на этих методах, что нет этой сессии.
408 2577167
>>77157

>ASP.NET Core MVC 2


Ты мог найти ещё более древний талмуд? Уже 6 вышел и даже на русском есть
409 2577170
>>77167
А нет пизжу нет на русском
410 2577171
>>77167
Я ни на одном торренте не видел на русском
411 2577177
>>77171
Я спизедел. На русском ласт это кор 3 8е издание.

А вообще кор 6 9е вышло в 24 февраля 2022. Спец книга для спецоперации
image.png359 Кб, 1343x714
412 2577190
>>77157
Сдается мне, что все-таки это ты что-то делаешь через жопу.
Я вот сейчас дернул реп по ссылке, загнал в студию и все работает, с первого запуска. Ни одного эксепшена не вылетело.
413 2577194
>>77157

>Адам Фриман


И да, выкинь нахер фримена, читай лучше Эндрю Лока 2-е издание.
414 2577197
>>77190
Add To Cart нажимается?
vs.gif1 Мб, 878x587
415 2577210
>>77197
Все нажимается. Смотри запись.
image.png158 Кб, 1790x580
416 2577225
>>77197
Алсо, вот тебе скрин из отладки:
417 2577226
>>77194
Он там добрую четверть книги посвящает нахрен не нужным razor pages, а веб апи уделяет всего одну главу. О jwt токенах разумеется ни слова.
418 2577232
>>77226
Да? Сорян, не знал. Мне просто один чел ее хвалил, прям в противовес Фриману.
Я так-то по asp.net вообще ни одной книги не читал (хотя работаю уже лет 5 с ним), мне хватило майкрософтовских доков.
419 2577236
>>77232
А откуда ты взял практики как всё правильно распределять по коду? Там всякие репозитории выделять, внедрять зависимости через конструктор, тестирование кода?
420 2577238
>>77225
Кинь в тред скрин чему те методы принадлежат, я не он мне просто интересно
421 2577239
>>77236

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


Не поверишь блять берешь гуглишь про ДИ и тестирование. Репозиторий можешь себе в жопу блять сунуть баребух у тебя ЕФ есть.

Мимо другой анон
422 2577246
>>77239

> Репозиторий можешь себе в жопу блять сунуть баребух у тебя ЕФ есть.


Вызывать savechanges в логике плохая практика...
image.png104 Кб, 1376x298
423 2577312
Снова понять не могу. Тут имеется в виду:

class Name {} - OK
class name {} - не ок

Так? Хуле там примера нет, я что откуда знать должен что значит "type names"??
424 2577407
>>77312
Да, так.
425 2577425
>>77246
Кто сказал? У тебя должен через ДИ кидаться контекст нужный, ты делаешь что тебе надо и сохраняешь изменения. Естественно ты реальную работу с БД делаешь точечено когда все готово, а не открыл ворота и начал дрочить.

Ваши репы поверх ЕФ это кал который ломает суть ЕФ. Особенно когда я вижу getFirst(), getById() прям уебать хочется.
ЕФ это уже суть репозиторий который скрывает от тебя рельную работу с базой и тонкости работы с ней
426 2577508
>>77425
Я видел такую практику, что создают интерфейс CRUDService и сразу определяют методы: create, findById, findAll, update, delete
427 2577619
>>77425

>Ваши репы поверх ЕФ это кал который ломает суть ЕФ


Суть репо - в том что бизнес-логика ничего не знает про EF, и знать не должна. Всё что она знает - есть такой-то класс, который позволяет получить данные. А что там внутри - EF. Dadder или ADO - глубоко пофиг.
Capture.JPG17 Кб, 387x458
428 2577630
шарпач, хочу запилить мини@микро@нано велосипед с инъекцией в конструктор через атрибут как пикрелейтед(заебался конструктор руками писать и дерево зависимостей постоянно обновлять), но не могу разобраться как это лучше сделать
куда копать? в кодогенераторы?
429 2577634
>>77630
за скобки не бейте я немного в неадеквате
430 2577635
>>77630
Чем не устраивает Microsoft.Extensions.DependencyInjection?
431 2577637
>>77630

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


А, понял. Да, кодогенераторы.
432 2577680
Сука, я проклинаю того пидораса, который решил, что застолбить ключевое слово "params" будет классной идеей. Чтоб его молнией поразило нахуй.
433 2577922
>>64359 (OP)
Хочу вкатиться в С# по видеокурсу IVDN. Альтернатива - ulearn.me
Потом уже переходить на что-то более серьезное.

Какие подводные? С чего вообще лучше начинать? Я говорю вообще о самых основах.
434 2577924
>>64359 (OP)
https://neolurk.org/wiki/C_Sharp

Добавьте в шапку
435 2577929
>>77680
Ты хуй и не можешь в нейминг. Ставлю на того чувака громоотвод.
436 2577930
>>77924
Уроки сделал?
437 2577978
>>77930
Урёти сделал? Сделал.
438 2577995
>>77630

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


А ты передавай фабрику в конструктор.
439 2577996
>>77922

>С чего вообще лучше начинать?


Установи VS открой метанит и пиши код. Потом берешь и ищешь работу.

Идеально конечно сходить в какой-то вуз типо МГУ, МАИ, МФТИ на направление 09.03.01
440 2578245

>Microsoft планирует уволить порядка 11 тысяч сотрудников


Сишарп всё?
image403 Кб, 1170x700
441 2578366
>>78245
Да. Перекатываемся на питон!
442 2578397
>>78245
Какое все? Немного же увольняют.
443 2578597
>>77996
Магистратуры хватит? Неохота заново 4+ года учица. А вобще я блин сыч + накопилась куча болезней, вряд ли осилю очное обучение. А дистанционка полноценная есть только на бакалавриат на информатику... На магу в России пока толкового ничего нет, но обещают в течение пары лет организовать.

Почему дистанционная мага есть для психолухов, для экономистов, даже для инженегров блять есть, а хуле для кодерков ниче нет? Что так не оперативно-то!? Всё как обычно с запозданием сука. В школе моей начали вести информатику только через 3 года после моего выпуска. Магу откроют через 3 года после моего уже трудоустройства или вообще смерти, я хуй его знает что за проклятие такое!!!
444 2578696
>>78597
Если есть 8-12к долларов можешь на коурсере заочно отучиться в США или Канаде. Естественно на магу придётся сдавать экзамены по информатике и всякой хуйне
445 2578723
>>78696
>>78597
https://ru.coursera.org/degrees/master-of-computer-science-asu

На держи 15000 долларов всего.

Candidates without an undergraduate degree in computer science, but have a strong foundational understanding of computer science, looking to formalize their knowledge.

Тебе подходит если сдашь экзамен
446 2578762
>>77680
ну че ты сразу начинаешь назови parameters, specs, details, instructions, guidelines, routines, delineations, descriptions, schemes
447 2578785
>>78723
>>78696
Это прям полностью дистанционно, это прям реально магистратура без наебки? Даже в такое время мне разрешат? Я же из России! Так-то пздц дёшево, я думал там 100к$ минимум, а тут вон оно че. Спасибо.
448 2578838
>>78597
Какие магистратуры, сынидзе? Тебе нужен компьютер + интернет + бумажный вариант хороших книг по C#, чтобы было удобнее и было больше мотивации добить книги. ВСЁ. Больше нихуя не надо.
449 2578855
вообще забавно что по гайдам нужно ставить скобки типа выделение scope у if
И в то же время пофиг на то что у упрощенного using будет несколько лишних строк захвачено в его scope
450 2578870
>>77635
не хочу тащить для одного применения
>>77637
ну я посмотрел и там такая ебатория надо partial классы делать, думаю ну его нахуй..
>>77995
а можно где-то пример посмотреть?
451 2578886
>>75491 (Del)

>который показал насколько все это не нужно


Ага настолько не нужно, что разработчики визуал студии создали это
https://github.com/Microsoft/vs-validation

>>75665

>Consider using Nullable reference types instead.


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

Проблема в контрактах не в том, что они не нужны - там просто сделали реализацию через жопу. Вместо простых if throw там какая то CLR зависимая портянка что мешает ей быть кросс.
452 2579059
>>78855

>И в то же время пофиг на то что у упрощенного using будет несколько лишних строк захвачено в его scope


Ты о чем? Какой еще скоуп у упрощенного using-а?
453 2579060
>>78785

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


Прям без наебки. Экзамены сдай только и баллы набирай, делай научные работы. Диплом прям труевый. Экзамены сдаёшь по вебке так чтобы было видно что ты один, у тебя нет шпор и прям преподу.

>Даже в такое время мне разрешат? Я же из России!


Сама курсера шлёт нахуй с ру адресов, не знаю сработает ли сейчас. Вопрос входа на страницу решается просто впн. Думаю им похуй и они больше из-за невозможности оплаты, поэтому главное им деньги дать
454 2579139
>>79059
неявный до конца метода.
Если у тебя есть вложенный using - то ты вместо "вижу вот scope" постоянно вспоминать "ага до конца метода"
и это еще полбеды. беда начинается тогда когда ты дописываешь строку и она автоматом подпадает под using
455 2579189
Куда посмотреть, чтобы понять, почему в одном солюшене у RichTextBox ивентов меньше, чем в другом?
456 2579202
>>79189
Наверно надо проверить версии подключаемых билиотек из гака, где этот ричбокс обьявлен.
457 2579205
>>79202

>версии подключаемых билиотек из гака


шта

В обоих вариантах я создавал стандартный WPF проект на Net 5. На первом пике ещё кое-какие проекты добавлены с зависимостями, но они же не должны влиять? Второй солюшен создал кое-что попробовать, можно сказать почти чистый темплейт ВПФ проекта.
R.png116 Кб, 1243x894
458 2579216
.jpg1,3 Мб, 2132x2852
459 2579221
Смотрите.
Есть класс Device. Он типа представляет из себя, внезапно, устройство с которым можно связаться. Держит сессию с устройством(в зависимости от типа устройства, это либо реальное TCP-соединение, либо таки программная сессия для UDP, в который мы активность соединения обозначаем как - удалось в прошлый раз получить ответ). Каждое устройство - имеет набор Variable, Property и Action. Variable - объекты, которые можно читать/писать или читать и писать; помечаются Tag'ами, которые позволяют понять, что это такое в контексте системы(объект регистра 251 - температура, объект регистра 152 - факт открытия двери и т.д.)
Есть класс DeviceManager. Инициализирует список устройств, и объектов, которые можно считать с устройства. Предоставляет к ним доступ.
Есть 3 класса DeviceDashboardService, DeviceIntegrationService, DeviceDomainService.
DeviceDashboardService - раз в секунду - отправляет менеджеру запрос на чтение объектов дашборды, обновляет состояние дашборды, на фронт отправляет по веб-сокетам информацию, что обновилось.
DeviceIntegrationService - по запросу сторонней системы отдает менеджеру запрос, менеджер - устройству, потом отдает клиенту данные в виде который нужен клиенту
DeviceDomainService - раз в 10 минут отправляет запрос к менеджеру, чтобы почитались "доменные" объекты, которые важны безотносительно интеграции и дашборд(аварии всякие, координаты, выходы за пределы допустимых значений для показателей различных), затем - получив ответ - делает "доменную" логику, ну, типа включает сигнализацию, обновляет координаты на карте и т.д.

На текущий момент - обращение выглядит как
IReadRequest(int DeviceId, int[] VaribalesIds, Func<IReadResult, Task> onReadComplete);

Т.е. менеджер принимает этот запрос, диспачит его устройству. Устройство в своем потоке разгребает очередь этих запросов, в конце - вызывает onReadComplete;

Собственно. На текущий момент оно вот так выглядит.
И мне не нравится/
Чего хочу. Хочу чтобы было как-то более единообразно.

Жду предложений.
.jpg1,3 Мб, 2132x2852
459 2579221
Смотрите.
Есть класс Device. Он типа представляет из себя, внезапно, устройство с которым можно связаться. Держит сессию с устройством(в зависимости от типа устройства, это либо реальное TCP-соединение, либо таки программная сессия для UDP, в который мы активность соединения обозначаем как - удалось в прошлый раз получить ответ). Каждое устройство - имеет набор Variable, Property и Action. Variable - объекты, которые можно читать/писать или читать и писать; помечаются Tag'ами, которые позволяют понять, что это такое в контексте системы(объект регистра 251 - температура, объект регистра 152 - факт открытия двери и т.д.)
Есть класс DeviceManager. Инициализирует список устройств, и объектов, которые можно считать с устройства. Предоставляет к ним доступ.
Есть 3 класса DeviceDashboardService, DeviceIntegrationService, DeviceDomainService.
DeviceDashboardService - раз в секунду - отправляет менеджеру запрос на чтение объектов дашборды, обновляет состояние дашборды, на фронт отправляет по веб-сокетам информацию, что обновилось.
DeviceIntegrationService - по запросу сторонней системы отдает менеджеру запрос, менеджер - устройству, потом отдает клиенту данные в виде который нужен клиенту
DeviceDomainService - раз в 10 минут отправляет запрос к менеджеру, чтобы почитались "доменные" объекты, которые важны безотносительно интеграции и дашборд(аварии всякие, координаты, выходы за пределы допустимых значений для показателей различных), затем - получив ответ - делает "доменную" логику, ну, типа включает сигнализацию, обновляет координаты на карте и т.д.

На текущий момент - обращение выглядит как
IReadRequest(int DeviceId, int[] VaribalesIds, Func<IReadResult, Task> onReadComplete);

Т.е. менеджер принимает этот запрос, диспачит его устройству. Устройство в своем потоке разгребает очередь этих запросов, в конце - вызывает onReadComplete;

Собственно. На текущий момент оно вот так выглядит.
И мне не нравится/
Чего хочу. Хочу чтобы было как-то более единообразно.

Жду предложений.
460 2579273
>>79139

>то ты вместо "вижу вот scope" постоянно вспоминать "ага до конца метода"


Ты ебанутый? Упрощенная форма using, как раз и придумана для случаев, когда тебе реально похуй, на то где объект задиспоузится. Она буквально означает указание "Приберись когда из метода выходить будеш". Если тебе важен момент когда ресурсы должны освободится, то ты продолжаешь пользоваться старым способом, со скобками. Ну или вообще try-finally если ты совсем старовер или из джавы пришел.
461 2579276
Почему так? Я про 3.0.0.0, 4.0.0.0 и 7.0.0.0. Создал проект ВПФ на Нет7 и ничего в нём не делал.
462 2579421
Как сериализовать класс, в составе которого есть FlowDocument? Пока есть только вариант загнать его через TextRange.Save() в MemoryStream и преобразовать в byte[], но может можно как-то получше?

FlowDocument'ы с картинками.
463 2579437
Почему при наследовании от класса нужно помечать методы virtual/override, а при имплементации от интерфейса ничего не нужно?
464 2579443
>>79437
Потому что при наследовании ты переопределяешь уже существующее поведение, а с интерфейсами ты всего лишь реализуешь контракт, для которого нет никакой реализации.
465 2579452
>>79447 (Del)
В файл, например.
Вообще наверно надо было спросить как хранить/клонировать FlowDocument, до сохранения содержащего его класса у меня ещё пока не дошло, но ведь FlowDocument придётся преобразовывать во что-то.
466 2579471
Хочу сделать Undo/Redo и нашел вот эту статью
https://www.cyberforum.ru/blogs/529033/blog3840.html

Вот это изменение стандартного ICommand меня сбило с толку. А еще смутило запоминание предыдущего цвета прямоугольника prevColor.
Команда запомнит только последнее изменение цвета, а если я 10 раз запущу команду? Данные предыдущих 9 изменений канут в небытие.

Что предполагает автор? Что на каждое действие я должен создавать новый экземпляр команды? Но так не работает стандартная команда — экземпляр команды создается единожды, а далее используется Execute.

Из чего я делаю такой вывод:
Мне нужно создать свою команду с реализацией стандартного ICommand, внутри Execute(object parameter) я создаю новый экземпляр что-то вроде ICommandChange с методами Execute() и UnExecute() и скармливаю этот экземпляр менеджеру истории действий UndoRedoManager?

Чет какой-то оверинжениринг получается.
467 2579486
>>79471

> а если я 10 раз запущу команду


так ты в стек толкай каждую выполненную команду, пчел
468 2579504
>>79471
Вообще, это все про паттерн "Команда" ( https://en.m.wikipedia.org/wiki/Command_pattern )
Как бы интерфейс ICommand, который используется в паттерне к интерфейсу System.Windows.Input.ICommand отношения особо не имеет. Создавай свой отдельный интерфейс команды и реализуй его.
И да, на каждое параметризированное действие создаётся свой экземпляр команды со всеми параметрами этого действия. Иначе ты никак цепочку действий без потерь не сохранишь.
469 2579569
Сто если в структуре создать свойство ссылочного типа?
470 2579576
Поясните: почему он называет класс и структуру обобщённо ТИПОМ? Это ему так нравится называть всё это или у всех разрабов так принято? Как-то блять запутанно, вроде отзывы все хорошие...

Книга C# 11 and .NET 7 – Modern Cross-Platform Development Fundamentals
Mark J. Price
471 2579588
>>79576

>почему он называет класс и структуру обобщённо ТИПОМ?


Он не классы и структуры называет типами. Это int, string — типы.
image.png81 Кб, 1320x205
472 2579593
>>79588
Ага, вот только до этого он писал:

>


In C#, their equivalents are types, variables, fields, and properties. For example:
• Animal and Car are types; they are nouns for categorizing things.
• Head and Engine might be fields or properties; they are nouns that belong to Animal and Car.
• Fido and Bob are variables; they are nouns for referring to a specific object.
473 2579605
Кароче я понял, все эти новомодные книги гавнина ебаная, лучше читать старую классику + метанит, дальше доки + туторы от самих майков. А может и вообще без книг, че-то душно как-то!
474 2579614
>>79593
А что здесь не так? Если продолжать аналогию, то автомобиль — это один тип, а человек — другой тип, и тебе предлагают не заморачиваться насчет того, что одно ездит по шоссе, а другое ходит по тротуару.

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

Все что чел предлагает, это называть интеджеры, стринги типами, не заморачиваясь на тем, хранятся ли они в стеке или в куче.
475 2579622
Как добавить раскрывающуюся опцию в контекстной меню проводника? Например как 7-zip, когда наводишь на строку появляется ещё одно окошко.
476 2579623
>>79605
Там другая сторона медали. Формализм настолько запутывает простые вещи, что уводит в дебри непонимания не меньше, чем аналогии про машинки и людишек.

Чего стоит интерфейс. Нет бы назвать это шаблоном или требованием. Так еще в туторах начинают запутывать еще больше аналогиями с физическими интерфейсами, уводя твой разум в неведомые дали.
477 2579630
>>79623
>>79605
У вас просто начальная стадия шизофрении. Для неё свойственно излишне буквальное понимание написанного.
478 2579631
>>79622

> контекстной


Контекстное, фикс
479 2579635
>>79622
Ток щас делал тоже самое.
в впф стандартный MenuItem — он для всего.

В контекст MenuItem кладешь еще одни MenuItem.
Он там сам определяет что есть что, у него 4 триггера.
Пикрил 1.

Сложнее, когда тебе надо вставить список итемов не в всплывающем справа от стрелочки попапе, а как бы находящимися внутри итема. Тогда надо кидать в контент MenuItem.Header
Пикрил 2.
480 2579640
>>79630
А может шизофрения у того, кто на любой пердеж любит придумывать аналогии, которые хорошо работают только в голове придумавшего аналогию .
481 2579643
КРУТО даже шизики вкатываются в ШАРП(С#). Ощущаю гордость за этот язык(С#).
482 2579644
>>79635
Мне же не для впф, а для проводника. Когда на папочку кликаешь, должна строчка с моей программой появляться, а при наведении раскрываться.
483 2579647
>>79640
А ты аналогии пропускай и смотри только код.
484 2579650
>>79643
Не, я просто из битрикса, мне тяжело осознать этот езык.
485 2579652
>>79644
копай в сторону батников, тоже самое потом сделаешь через консоль из своей проги.
https://stackoverflow.com/questions/8449167/how-do-you-make-context-menu-submenus-in-windows
486 2579654
>>79273

>Ты ебанутый?


А ты быстр на такой. Значит не против если тебя нах пошлют с твоим самомнением.

А теперь по делу

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


Я, ДА. Я не приветствую такое "мне пох когда", потому что у меня все строго - ничего не болтается сверх лишнего. Но я не все. Как говорится - "я не смотрю телевизор, но мне приходится иметь дело с теми, кто его смотрит".

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

Потому эта фича приветствуется далеко не всеми.
Зачем она? Меньше скобок? - так скобки указывающие на скоуп наоборот приветствуются.
Меньше вложенности? - Лучше бы сделали нормальный множественный using вместо того убожества.

>>79569
в структуре будет выделена память на ссылку (8 байт на х64) на кучу со значением.
487 2579655
>>79644
Наверно тебе нужно погуглить винапи для создания системных контекстных меню. Там наверняка есть подкласс для описания дочерних подменю.
488 2579658
>>79647
Ну так а кто мне вернет время, которое я просрал, доверевшись сладким речам ютубера-инфоцыгана?
489 2579661
>>79658
Никто. Читай метанит и доки и практикуйся.
490 2579667
>>79650
Разбрешься. Он очень логично устроен, хотя позволяет писать некотрую магию через атрибуты и рефлексию.

>>79576

>почему он называет класс и структуру обобщённо ТИПОМ?


Переменные могут быть классами или структурами и в общем виде это называется "тип переменной". В широком смысле тип определяет поведение переменной и все что с ней можно сделать.
491 2579674
>>79658
используй рецепт " как выучить с++ за 21 день". с шарпом оно тоже работает проверено.
492 2579681
>>79623

>интерфейс. Нет бы назвать это шаблоном или требованием.


Но ведь он не является шаблоном, а требование - лишь часть его назначения, не?
493 2579686
>>79674
Это как? В чём суть? Типа спринт? 12-15ч/21д?
13562510551061087425.jpeg142 Кб, 700x600
494 2579688
image.png25 Кб, 474x145
495 2579750
>>79688
Плес..
496 2579778
>>79576
Ты просто английский плохо понимаешь и что к чему в предложение относится
497 2579809
>>79778
Не, автор книги просто путает объекты и типы. Он считает, что это умно новичкам не объяснять, что такое класс, что такое объект класса, что такое структура. И просто на похуях обзывает ВСЁ это типами: класс, структура, все примитивные типы.

В сравнении с этой книгой метанит это сикп.
498 2579831
>>79576
не вижу проблем в параграфе
499 2579848
>>79681
Ну вот я и пишу, что умные дядьки посидели, голову почесали
и такие "так бля, шаблон уже занято, требование — не емкое описание" и придумали название "интырфейс".
Ну формально подходит, но понимания не дает.
500 2579853
>>79848
интерфейс никак не является шаблоном. интерфейс описывает контракт взаимодействия с объектом, считай точка дотсупа/работы с этим объектом. А это и есть интерфейс (смотри хотя бы аналогию с сетевыми интерфейсами)
501 2579940
>>79809
Класс это тип данных, структура это тип данных, типы данных целых чисел или чисел с плавающей запятой. Даже функции это тип данных ибо в том же С++ можно объявить переменную типа функция.

У тебя каша в голове.
502 2579943
>>79853
Интерфейс это описание поведения. Че вы все пытается каким-то ебнутым языком говорите выучив еба определения
503 2579963
Хм. Вопрос.
Вот код:

foreach(var it in _db.SomeItems)
{
var items = _db.Items.Where(x=>x.Fk==it.Id).ToList();
QueueManager.Handle(it, async (ctx) => await OnComplete(items));
}

QueueManager.Handle - в отдельном потоке разгребает очередь.
Собственно в чем вопрос.
В OnComplete - будут переданы все нужные данные, либо же эта хуйня захватит только для последнего it?
16737493686782.png84 Кб, 604x519
504 2579990
>>79940

>объявить переменную типа функция


Порриджи открыли анонимные функции? Браво!
505 2580029
>>79809

> что такое класс


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

> что такое объект класса


Просто область памяти в которой лежит говно всякое.

> что такое структура


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

> И просто на похуях обзывает ВСЁ это типами


Потому что это и есть ТИПЫ, блядь. Тип - это просто некое соглашение, о том, что это такое, что мы с этим можем делать, что не можем, описание некоторых ограничений. Все, блядь, это тип.

Сеньер
506 2580077
>>79990
Причем тут анонимные функции додик? Знаешь умное слово решил пернуть?

Я ещё круче знаю. Лямбда-выражения
507 2580162
>>79943
interface IAge {
int Age {get;}
}

что за поведение тут описано?
ты-же-долбоеб.mp45,4 Мб, mp4,
1280x720, 0:24
508 2580171
509 2580177
>>80162

> IAge {


Джавадебил не палится.
510 2580232
>>80177
ну вы нафантазировали. это похвально.
а по делу есть че сказать?
511 2580266
>>80177
а как правильно и не по-джавадебильному?
512 2580270
>>80266
ну типа шарпист будет скобку на новой строке делать
выше на эту тему был спор
и я был как раз тот, кто говорил что лишнескобство есть дичь.

по факту же даже в студии просто набираешь в одну строку и она сама по нажатию ентер перенесет скобки. Тот кто жмет ентер заранее самостоятельно - ну жаль его.
513 2580277
>>80270
Хуй-то там, товарищ.
Студия делает ровно так как прописано в .editorconfig в первую очередь.
Я вот сейчас работаю одновременно над проектами где и тот и тот стиль применяется. И я уже настолько преисполнился в своем познании, что мне похуй где там эта скобка, на новой строке или предыдущей.
Поэтому я обычно просто набираю текст в открытой студии и копирую его. А как она там скобки расставит - по барабану.
514 2580310
>>79943

Вот тебе интерфейс:

interface IFoo
{
void Bar();
int Buzz();
}

Какое поведение тут описано-то, лол?
То что Buzz - вернет int а Bar - ничего?
Ну такое. Потому что таким хуем - ниже - одинаковое поведение.

class A : IFoo
{
void Bar() => throw null;
int Buzz() => -1;
}

class B : IFoo
{
void Bar() => Console.WriteLine(42)
int Buzz() => _socket.Receive(Array.Empty<byte>());
}
i(6)-2866276043.jpg15 Кб, 344x480
515 2580313
>>79990

>анонимные функции


Это процедурный тип. И кстати это объект с метаданными, которые полностью описывают структуру вызова, а не сырой указатель хуйпоймикуда как принято у плюсовых каличей.
516 2580354
>>80162
Метод доступа get для поля класса age типа int. Ты просто туповатый и не вкурсе что само поле будет добавлена уже в классе. Интерфейсы суть обеспечивают наследование таблицы виртуальных функций.
Сейчас можно добавить реализации, но именно в плане свойств сами поля создаются именно в классах
517 2580367
>>80354

>Метод доступа get для поля класса age типа int


Ну то есть описывает контракт, ага.
518 2580396
>>80029
А че такое рантайм? Чем отличается от компиляции и интерперетации?
519 2580418
А вы знали, что цикл foreach может неявно вызывать Dispose()?
520 2580439
>>80418
Диспоз у итератора?
521 2580478
>>80418
А вы знали что если в последней визуал студии используется в проектах global using (а он по дефолту используется) почистить папки obj/bin, то эта фича ломается пока в настройках проекта не выключишь галку и снова не включишь? И бесполезно удалять .vs, ребутать студию, смотреть на *.csproj где все нормально.

Вы знали, а я вот только узнал.
522 2580486
>>80482 (Del)
А вы знали что если их не чистить, то там скапливается куча файлов для каждого фреймворка которые пережил проект? и вот он дорос до нет7, а там файлы для неткор 3.1 лежат и будут лежать вечно и чистить приходится.
523 2580527
>>80486
У меня не копится ведь я не долбоеб и чищу проект с помощью cleanup project.

Зумеры познают мир
524 2580538
>>80527
ты про build -> clean solution/project?
а ты попробуй )
525 2580675
>>80478

>используется в проектах global using


Не знал, потому что принципиально не пользуюсь этой штукой.
526 2580721
>>80675
Почему?
527 2580777
>>80478

>почистить папки obj/bin


А разве так можно? Там же лежат импортируемые библиотеки.
Решение не загнется?
528 2580816
>>80777
Нет, туда компилируются бинарки при билде солюшна. Собственно bin и obj всегда чистятся при клине.
529 2580836
>>80816

>всегда чистятся при клине


Нет. Клин удалит скомпилированные бинари
Весь остальной хлам останется.

Чистить obj полностью это сриптиком надо.
530 2580859
>>80777
В общем clean solution лишнего не чистит.
Дропнуть bin безопасно если у тебя в нем ничего нет что не хотелось бы удалять.
дропнуть obj всегда было безопасно - все сразу пересоздаст и вот впервые стало опасно - у меня отвалился global using и я не понимал почему он его не перегенерил как все остальное.
531 2580879
>>80721
Потому что солюшены с которыми я работаю часто содержат по несколько проектов плюс подключаемые сабмодули. Там такой зоопарк с неймспейсами иногда бывает, что разрулить нормально через глобальный юзинг - хуй там плавал.
532 2580907
внимание тупорылый вопрос от залетухи: если композиция лучше наследования и от наследования все пытаются сбежать, то зачем оно вообще нужно?
533 2580913
>>80907
Никто не пытается сбежать. Каждому инструменту своя задача. Предпочтение не значит абсолют.
534 2580915
>>80907
Оно не нужно
Ведь композиция лучше наследования ¯\_(ツ)_/¯
535 2580945
>>80915
так не нужно, что если убрать наследование из языка, то все взвоют. Желаю удачи даже с простейшими отношениями воробей-птица-животное. Желаю удачи с многочисленными хелперами ибо абстрактных классов нет, а интерфейсы их совсем не заменяют. Желаю удачи с типизированными коллекциями, которые нельзя будет использовать ведь нет общего типа. Желаю удачи запилить свой гуи фреймворк без наследования и офигеть от неудобства. Удачи в написании игр...
ну и так далее.
536 2580953
>>80915
Ну ладно в коллекциях можно юзать как типы интерфейсы. Но все равно делегирование придется впихивать в сам класс. Делегирование ВСЕГО.
537 2580967
>>80907

> зачем оно вообще нужно?


Представляет одно из базовых отношений между типами, а именно "является".

Композиция: А "состоит из" B, C, D - любоя часть не может полностью заменить A.

Наследование: А "является" специальным B. Тут фича в том что А и B - могут быть взаимозаменяемыми для тех алгоритмов где используются их общие черты. Это часто полезно.
538 2580969
>>80915

>Ведь композиция лучше наследования ¯\_(ツ)_/¯


Если у тебя куча депенденси проперти в базовом классе, че делать будешь, петух?
539 2580970
>>80969

>петух


Пошлю тебя в джавотред на парашу.
540 2580973
>>80970
Так петух здесь — ты. Отвечай на вопрос, радикал мамкин.
541 2580977
>>80973

>петух


Рот с мылом помой.
542 2580980
>>80977
Ты когда пиздел про композицию, которая лучше наследования, мылом не чет пользовался.
543 2581102
>>80969

> композиция


> В базовом классе


¯\_(ツ)_/¯
544 2581151
у джавистов уже 240 перекатов у нас 40 с чем то, вот и думайте какая технология популярней и пизже
545 2581160
>>81151
Пошёл нахуй, джавадебил. Все знают, что тредов со 120 по 236 не существовало.
546 2581179
>>81160
Они и на сотню тоже прыгнули
547 2581195
>>81179
Тогда прыгали осознанно, восстановив проёбаную за год до этого нумерацию. А сейчас какой-то даун просто умножил на 2.
548 2581283
как перестать писать говнокод и начать жить полной жизнью?
.png208 Кб, 546x357
549 2581286
>>79221
В общем. Никто ничего не посоветовал(((

Как я сделал.
Я сделал класс CommDeviceReadAction, DeviceCommandDispatcher,

CommDeviceReadAction - следующего вида:
{
public int DeviceId;
public int[] Variables;
public Func<ICommDeviceReadResult, CancellationToken, Task> OnCompleteCallback;
}

Диспечер - ищет устройство, находит, отдает устройству, получает ICommDeviceReadResult и вызывает OnCompleteCallback

В фоне - DeviceDashboardService менеджеру отдает CommDeviceReadAction с активными устройствами и тем что на их дашбордах
В фоне - DeviceDomainService менеджеру отдает CommDeviceReadAction с активными устройствами и тем что мы пометили как доменные объекты, потом находит нужный IDeviceDomainHandler и обрабатывает это говно.
Ну и контроллер - отдает DeviceIntegrationService'у запрос. Тот формирует CommDeviceReadAction'ы и отдает диспечеру, В коллбеке пишем в шину на внешний сервис че прочитали.

Собственно вот так и сделал.
Не нравится все равно. Но раз советов не дали, будет так. Эх. Да.
550 2581288
>>81283
Прочитать талмуды Макконнелла, Таненбаума, Кнута и других умных дядек.
551 2581595
>>81286
Нормально. Сходу и без кода все равно лучше ничего не придумать.
552 2581596
>>81283
Совершенный код Маконнела прочитай(есть на русском). Сирисли, мне он очень помог отрефлексировать некоторые моменты говнокодинга. Дядю Боба не читай - у него больше воды и меньше контрольных вопросов в чеклистах.
553 2581669
Нужно ли уметь развертывать приложения в Азуре?
554 2581737
>>81669
Вообще нет, обычно есть девопс, который занимается этим. Но хорошо понимать как это работает, можно будет на собесах пиздеть "Выполнял функции девопса, создавал пайплайны и писал скрипты для диплоя приложений", сразу +10% к зарплате.
555 2581774
>>81771 (Del)
Хороший вопрос. Если коротко - DateTimeOffset имеет смысл использовать если приложение работает в нескольких часовых поясах. Но на практике везде время хранится в DateTime в UTC, без выебонов. Тут уже какой подход выберете, потому что и одно и другое правильно.
556 2581803
>>81288
>>81596
пасиба
557 2581836
https://dusted.codes/how-fast-is-really-aspnet-core
Майки опять наебали с бенчмарками.
558 2581904
>>81836
Получается надо было учить джаву?
559 2582186
>>81771 (Del)
В БД однозначно хранишь время в DateTime в UTC, а в самом приложении уже в зависимости от потребностей.
560 2582188
сука.webm167 Кб, webm,
1920x1080, 0:01
561 2582263
Почему Джависты умеют перекатывать треды, а Сишарписты - нет??
562 2582270
>>82263
ты шарпист?
значит перекати
не умеешь?
значит знаешь ответ на свой вопрос
563 2582281
>>82263
Джависты полгода как разучились правильно перекатывать треды. В шарпе пока ещё помнят, хотя прошлый тред перекатил даун и джава-треда.
564 2582345

>the library cannot be used without a more up to date IDE (eg. VS 2022 17.3 or greater) or .NET SDK version (.NET 6.0.400 SDK or greater)


эт мне чего получается надо на 2022 переползать с 2019? посоны?
565 2582352
Ну чё пацаны - ПЕРЕКАТ
>>2582351 (OP)
>>2582351 (OP)
>>2582351 (OP)
566 2582355
>>82345
Качай старую версию либы.
Тред утонул или удален.
Это копия, сохраненная 15 марта 2023 года.

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

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