Этого треда уже нет.
Это копия, сохраненная 4 августа 2022 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
C#/Сишарп/.NET Тред #35 /csharp/ 2334153 В конец треда | Веб
Прошлый тред: >>2247357 (OP)

Литература вторым постом

1. Ресурсы:
https://dotnet.microsoft.com/learn
https://docs.microsoft.com/ru-ru/dotnet/csharp/
https://metanit.com/

2. Онлайн-компиляторы:
https://ideone.com/
https://dotnetfiddle.net/

3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае с WinForms делать намного сложнее.

4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# активно развивается, недавно вышел .NET 5 и С# 9.0. Дотнет стал полностью опенсорсным и кроссплатформенным. В том же энтерпрайзе он очень даже востребован.

5. Какую IDE выбрать?
Для Windows самым очевидным вариантом будет Visual Studio ( https://visualstudio.microsoft.com/ru/downloads/ ). Бесплатной Community-версии более, чем достаточно для большинства задач. Также есть версия для macOS.
Кроссплатформенный полуредактор/полуIDE VS Code ( https://code.visualstudio.com/ ).
Кроссплатформенный IDE Rider ( https://www.jetbrains.com/rider/ ).
Также существуют C#-плагины для Atom и Sublime Text, но функциональность там достаточно сильно урезана.

6. С# для мобильной разработки
https://dotnet.microsoft.com/apps/xamarin

Новые возможности C# 9.0: https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/

Текст шапки: https://pastebin.com/pbK8CGqw
2 2334154
7. Что почитать?
The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.
C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price) — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь.
C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen) — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином.
C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari) — просто выжимка из книги сверху, можно всегда держать рукой.
Pro C# 8 with .NET Core 3 (Andrew Troelsen) — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.

8. Более хардкорный материал
CLR via C# (Jeffrey Richter) — это классика, это знать надо.
C# in Depth (Jon Skeet) — написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
Writing High Performance .NET Code (Ben Watson) — отличная книга. Фокусируется на методах оптимизации приложений, профилировании. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче всё, что нужно, чтобы вам перезвонили.

9. Литература по WPF
— Pro WPF 4.5 in C# (Matthew MacDonald)
— Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)

10. Литература по ASP.NET
— Pro ASP.NET Core 3 (Adam Freeman)
— Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)

11. Литература по асинхронности и параллелизму
— Concurrency in C# Cookbook (Stephen Cleary) — книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции.
— Multithreading with C# Cookbook (Eugene Agafonov) — в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная.
— Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) — опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg.

12. Литература по мобильной разработке
— Creating Mobile Apps with Xamarin.Forms (Charles Petzold)
— Xamarin.Forms Projects (Johan Karlsson, Daniel Hindrikes)
— Mastering Xamarin.Forms (Ed Snider)

13. Литература по машинному обучению
— Introduction to Neural Networks for C# (Jeff Heaton) — изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
— Machine Learning Using C# Succinctly (James D. McCaffrey) — довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.

14. Разработка игр
Unity-тред в /gd/

15. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако зачастую эти переводы неактуальны и/или содержат неточности. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в программировании без знания английского делать нечего. Если очень хочется, то гуглить по запросам: "C# 7.0. Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#".

16. Что еще нужно знать, чтобы взяли работать за еду?
— Базы данных — подойдет любая книга по MSSQL/MySQL/PostgreSQL. DDL, DML. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper.
— Системы контроля версий — обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote, diff, разрешение конфликтов.
— GitHub — issues, пулл-реквесты, теги, релизы, Actions.
— Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
— Структуры данных — связанные списки, деревья (бинарные, красно-чёрные, b-деревья), хеш-таблицы, графы.
— Если идти в веб — HTML, CSS, JavaScript, веб-сокеты, REST, JS-фреймворки (Angular, React, Vue).
— Паттерны проектирования, стиль кода, архитектура приложения, внедрение зависимостей, MVVM (если хочется в WPF), SOLID.

17. Я не умею читать, что посмотреть?
— C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
— Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
— Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
2 2334154
7. Что почитать?
The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.
C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price) — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь.
C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen) — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином.
C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari) — просто выжимка из книги сверху, можно всегда держать рукой.
Pro C# 8 with .NET Core 3 (Andrew Troelsen) — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.

8. Более хардкорный материал
CLR via C# (Jeffrey Richter) — это классика, это знать надо.
C# in Depth (Jon Skeet) — написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
Writing High Performance .NET Code (Ben Watson) — отличная книга. Фокусируется на методах оптимизации приложений, профилировании. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче всё, что нужно, чтобы вам перезвонили.

9. Литература по WPF
— Pro WPF 4.5 in C# (Matthew MacDonald)
— Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)

10. Литература по ASP.NET
— Pro ASP.NET Core 3 (Adam Freeman)
— Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)

11. Литература по асинхронности и параллелизму
— Concurrency in C# Cookbook (Stephen Cleary) — книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции.
— Multithreading with C# Cookbook (Eugene Agafonov) — в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная.
— Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) — опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg.

12. Литература по мобильной разработке
— Creating Mobile Apps with Xamarin.Forms (Charles Petzold)
— Xamarin.Forms Projects (Johan Karlsson, Daniel Hindrikes)
— Mastering Xamarin.Forms (Ed Snider)

13. Литература по машинному обучению
— Introduction to Neural Networks for C# (Jeff Heaton) — изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
— Machine Learning Using C# Succinctly (James D. McCaffrey) — довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.

14. Разработка игр
Unity-тред в /gd/

15. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако зачастую эти переводы неактуальны и/или содержат неточности. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в программировании без знания английского делать нечего. Если очень хочется, то гуглить по запросам: "C# 7.0. Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#".

16. Что еще нужно знать, чтобы взяли работать за еду?
— Базы данных — подойдет любая книга по MSSQL/MySQL/PostgreSQL. DDL, DML. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper.
— Системы контроля версий — обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote, diff, разрешение конфликтов.
— GitHub — issues, пулл-реквесты, теги, релизы, Actions.
— Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
— Структуры данных — связанные списки, деревья (бинарные, красно-чёрные, b-деревья), хеш-таблицы, графы.
— Если идти в веб — HTML, CSS, JavaScript, веб-сокеты, REST, JS-фреймворки (Angular, React, Vue).
— Паттерны проектирования, стиль кода, архитектура приложения, внедрение зависимостей, MVVM (если хочется в WPF), SOLID.

17. Я не умею читать, что посмотреть?
— C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
— Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
— Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
image.png7,5 Мб, 2000x2664
3 2334168
4 2334169
>>334168
Это для следующего треда
5 2334173
>>334169
Чтобы не потерялось.
6 2334213
Что вы тут напрограммировали, пока меня не было?
7 2334244
>>334213
Пытаемся понять как на блазоре скачивать большие (10-30 гб) файлы с сервера
image.png34 Кб, 809x205
8 2334246
>>334213
>>334244
Пока думаем так
9 2334288
>>334246
Не проще передать ссылку на файл, чтобы браузер сам скачал? Т.е. элементарно создается тег:
<a href="ссылка">Скачать бесплатно и без СМС</a>
10 2334291
>>334288
Так в любом случае это ссылка и браузер скачивает, минуя браузер ты никак не скачаешь, вопрос в том как это должно быть имплементировано в самом блазор сервере
11 2334308
Кстати, по поводу блазора, это норм вообще в блазоре в ввв-рут пихать всякие тяжёлые библиотеки вроде фонт асом или бутстрапа?
12 2334356
Посоветуйте десктопный, кроссплатформенный UI-фреймворк. Для написания десктопных приложений. Не надо веба. Не надо мобилок. Просто десктоп. Чтоб написанное под вендой собиралось на линуксе и наоборот.
Авалонию не предлагать!
13 2334358
Помогите.

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

Ну и я почти ничего не умею, так что о всяких там командах, сервисах, вьюмоделях и всём остальном пока ещё почти не думал.
14 2334379
>>334356
MAUI?

>>334291

>вопрос в том как это должно быть имплементировано в самом блазор сервере



Потоки.
15 2334399
>>334356
Java + Swing

>>334379

>MAUI


А он вышел вообще?
16 2334409
>>334379

> MAUI?


Мобилы.
>>334399

> Java


Щоблт? Ты в шарпотреде, жабист.
17 2334416
>>334356
Смог формализовать свои требования более точно: Нужна поддержка wpf/gtk/qt. Остальное не нужно.
18 2334532
Сложно ли выучить git?
19 2334536
>>334532
инопланетная система контроля версий для инопланетян
20 2334552
Я сейчас читаю книжку Троелсена по C# 7. Видел, что уже вышла по 9 версии, но не нашёл где скачать. Как потом догнать оставшиеся версии?
21 2334554
>>334552
прочитать заметки "что нового" в языках новых версий.
22 2334563
>>334552
Ты ебанутый, сука? Первая же ссылка в гугле https://t.me/physics_lib/7476
23 2334569
>>334552

>Как потом догнать оставшиеся версии?


C#8
- индексы и диапазоны - удобная штука, пользуюсь
- nullable eference types - спорная штука
- дефолтная реализация в интерфейсах - многие до сих пор не понимают нахуя
- pattern matching - опять что-то у функциональщиков спиздили, х.з., что не разбирался.

Это в принципе все.

Че там в девятом, я х.з. не трогал еще.
24 2334602
>>334569

>Че там в девятом, я х.з. не трогал еще.


Тебя в заложниках что ли держат, заставляют использовать только старье?
25 2334607
>>334399
Один месяц до выхода MAUI!!!

https://youtu.be/Sa4pF1hAQHI
image.png47 Кб, 594x331
26 2334620
Хочу забиндится в блейзоре к РГБА у текста. РГБ биндится к инту без проблем, а вот альфа канал биндится только через стринг, потому что нужна точка, а у шарпа формат вывода с запятой.
Это нормальная практика или я ебанько можно более лучше? Полчаса пытался понять почему биндинг не работает у альфы
27 2334632
>>334607
Мне вообще глубочайше похую что там нового выходит, максимально допизды на изменения в девятом и тридцать девятом сишарпе. Когда вижу восторженные восклицания как у тебя - искренне недоумеваю как это может кого-то интересовать. Иногда из-за этого мне кажется что я ненастоящий погромист.
Не для срача, просто наблюдение насколько разные люди в индустрии.
28 2334634
>>334607

> MAUI


Тупое говно тупого говна.
Тысячи мусорных файлов-конфигов-манифестов в хелловорлдовом проекте. Я как увидел, аж в кресла встал от охуевания. Невозможно передать степень моего отвращения к этой параше.
Я хочу такой UI-фреймворк, чтобы его хеллоуворлд состоял из нескольких строк в единственном шарп-файле.
1. dotnet install blablaframework
2.
using blabla;

void main(){
var mainform = new blablaform() { Text = "Hello World" };
var app = new blablaapp();
app.run(mainform);

}

И всё, блять! Ничего лишнего. Ни манифестов. Ни хмл. Но, если я захочу комплексное приложение, пусть мне будет доступен сериализатор искаропки.
29 2334637
>>334632
Кем ты себя видишь через 5 лет?
30 2334638
А это что такое?

readonly State<int> count = 0;

[Body]
View body() => new StackLayout
{
new Label("Welcome to .NET MAUI!"),
new Button(
() => $"You clicked {count} times.",
() => count.Value ++)
)
};

попытка сделать как в флютер, жетпак композе, свифт комбине?

Выглядит похоже (намек на MVU) но чет слабенько
31 2334640
>>334638
Именно
32 2334646
>>334637
Хз, мидлом в Майкрософте или в НАСА.
33 2334658
>>334620
>>334620
CurrentCulture поменяй.
34 2334669
>>334640
Ну на мобиле (compose) такое мне нра (тем более с мощным синтаксисом котлина)
Но на десктопе такое тяжеловато работает и без таблиц уныло
35 2334720
>>334658
Нашел, спасибо
36 2334824
>>334720
Да я просто написал
563567897897676.jpeg236 Кб, 1165x2048
37 2334863
Тред разработки приложений на Android утонул. Спрошу тут.

На сколько у C# всё плохо с мобильной разработкой?
Есть тут в треде кто-нибудь, щупавший Bluetooth? Очень сложно?
38 2334877
>>334824
А оно и просто сработало.
39 2334880
>>334863
На хамарине более менее. Чекни например xamarin-bluetooth-le. Можно работать из натива (в формсах тоже), будет все +- как в жаве
40 2334924
Как вынести методы и вообще какие-то внутренности класса из самого файла но при это так что бы они оставались быть частью класса

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

то-есть мне нужно как бы папочку внутри класса
41 2334944
>>334924
Partial
42 2334973
>>334944
Спасибо большое!
А я не могу папочку назвать так же как класс?
И это вообще как с точки зрения производительности иметь класс с большим количеством статических методов в нем?

Я переживаю что каждое маленькое обращение в базу (а они все в одном классе) будет расчехлять огромный статичкский класс который будет долго инициализироваться
43 2334995
>>334973
А зочем если базу сервисом делать
44 2334997
>>334995

>базу сервисом делать


ММ?
45 2335092
>>334973

>И это вообще как с точки зрения производительности иметь класс с большим количеством статических методов в нем?



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


Статические классы только один раз инициализируются, так что с производительностью проблем не будет. Но за такой говнокод тебя выебут на проекте, вообще не SOLIDно
46 2335170
>>334153 (OP)

>очередной перекат


>очередная шапка с .NET 5 который даже не LTS


Не заебало старье постить, деды?
47 2335344
Вкатыш на связи, где почитать про часто используемые библиотечные методы? Есть где-то списком это все?
48 2335349
>>335170
Вот будет следующий перекат - тогда и заживём.
49 2335372
>>335344
Открыть вакансии прочитать что требуют.
Самое странное тестовое в моей жизни 50 2335397
Задание:
Нужно прислать пример идеального кода, который максимально эффективно сплавляется с конкретной задачей. Просьба в начале указать цель, далее сам образец кода и в конце краткое пояснение, почему он подходит :)

Страшная хуйня пиздец, на что это тест? На софт скилы?
51 2335405
>>335397
Я бы отослал HelloWorld.cs и хуй забил на такую контору.
Если они так тестовые задания ставят, то представь какой пиздец у них твориться при постановке реальных боевых задач.
52 2335408
>>335397

>на что это тест?


Если серьезно, то это тест на умение предугадать хотелки заказчика по минимальным вводным и реализовать их так, чтобы он остался доволен.
Если ты собеседуешься на какого-нибудь боевого аналитика, массирующего простату бизнеса, то вперед.
Если же твоя цель стать разрабом работающим по нормальному ТЗ, то нахуй.
53 2335414
>>335170
Дак шапку никто не обновляет, поэтому при перекатах используется та, что есть.
54 2335424
Как происходит развёртывание и запуск дотнет-приложений на линукс? Всё кидаем в папку и пишем скрипт для запуска типа dotnet run что ли?
55 2335438
>>335424
Делаешь публишь, копируешь папки на линукс, потом dotnet zhopa.dll
56 2335456
Работаю почти 3 года. В основном раскапываю древнюю бизнес-логику чтобы понять куда внести изменения, копаюсь в легаси, правлю баги и подобное. Где-то год назад начал подозревать что нихуя не развиваюсь, ничего по сути не умею: ни веб-фрейморки, ни ORM, ни построение REST API, ни паттерны.
Как думаете я правильно мыслю и действительно нихуя не умею и если хочу развиваться, то надо менять работу? Или может на самом деле все так же работают? Знают пару технологий, которые использует их контора и всё?
57 2335461
>>335456
Да, меняй работу если уже не поздно
58 2335463
>>335456

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


Проверяется просто. Составляешь резюме с описанием тех своих скилов в которых уверен и выкладываешь. Только именно честных скилов, которые умеешь и могешь, а не те которых просто касался или слышал о них.
А потом смотришь сколько и с какими предложениями по работе тебе будут звонить.
С учетом нынешних реалий, если твои навыки чего-то стоят и с учетом 3-х летнего опыта, тебе в норме должны поступать предложения на мидла и выше. Вот по качеству этих предложений можешь и рассуждать о том насколько у тебя все плохо или хорошо.
59 2335501
Кто-нибудь использует пиратский Rider? Как вы его ломаете?
60 2335517
>>335501
@echo off
for I in ("WebStorm", "IntelliJ", "CLion", "Rider", "GoLand", "PhpStorm", "Resharper", "PyCharm") do (
for /d
a in ("%USERPROFILE%\.I*") do (
rd /s /q "
a/config/eval"
del /q "%%a\config\options\other.xml"
)
)

rmdir /s /q "%APPDATA%\JetBrains"
reg delete "HKEY_CURRENT_USER\Software\JavaSoft" /f
61 2335532
>>335092
Я читал про солид, много теоретических изложений но что это означает на практике? вот взять те же интерфейсы без которых 2 из 4 принципов солид вообще не мыслимы. НО если разобраться что такое интерфейс? это просто список методов которые нужно имплементировать
ВСЕ!
Ну и зачем они нужны? я не понимаю зачем нужно учить все это если по сути это просто списочек, аля документация но в коде.

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

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

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


Эх вкатусик, сколько открытий тебя ждет впереди
image.png14 Кб, 926x215
63 2335537
>>335517
Абу пидор, вот рабочий
64 2335545
>>335537
Этот способ разве не пофиксили осенью прошлого года? Теперь, чтобы получить триал, надо регистрироваться на сайте жидбрейнс и срок уже отсчитывается на аккаунте, а не локально на твоём пека.
65 2335552
>>335545
У меня все пашет, хз
rider-no-30-day-free.jpg67 Кб, 863x621
66 2335571
>>335552
Поставил на чистую систему и пишет, что даже пробные 30 дней только после регистрации.
Screenshot20220414-153345Nekogram X.png45 Кб, 535x334
67 2335574
Команда пиздузиастов пригласила к себе в разработку - согласился. На что мне выдали пикрил. Я, то есть, буду работать бесплатно, но от меня требуют сделанного ТЗ.
Послать нахуй, или всё же они правы?
68 2335576
>>335532

>если статические классы инициализируются 1 раз, хорошо кешируются и прогнозируются


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

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


такое же значение, как список заповедей.

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


код, который легко сопровождается. Говнокод тоже работает быстро и исправно, а времени на модификацию в разы больше, да и хрупкость дикая.
69 2335592
>>335574
они прям так и сказали, что работать будешь бесплатно?
Screenshot20220414-160745Nekogram X.png30 Кб, 757x193
70 2335599
71 2335628
>>335599
Лично я бы поискал других. Более менее крупные компании мониторил. Нахуй эти стартапы. Еще и за бесплатно работать. Небось никакой трудовой договор не будут составлять.
Я бы послал бы их нахер.
72 2335633
>>335397
Нахуй таких
>>335405
>>335408
-- это господа правы.
73 2335736
>>335532

>Ну и зачем они нужны?


Интерфейс это в первую очередь контракт, через который одна часть приложения взаимодействует с другой. Он уменьшает связанность и позволяет хорошо пилить приложение на слои и модули, с легкой взаимозаменяемостью компонентов.
74 2335754
>>335574
ТЗ это техническое задание. Вот уже сразу можно сказать что ты долбоеб и я бы тебя даже бесплатно не взял. Но всё равно отвечу по существу: если джун и нихуя не умеешь, то делай тестовое и не выебывайся, это будет полезно.
75 2335786
>>335754

>ты долбоеб


От чего ты так порвался, херок? От того, что я не стал делать вашу курсовую?
76 2335848
Чему ровно X ?? 0 + Z ?? 0
77 2335858
>>335848
Чему угодно
78 2335884
UWP приложение можно установить не в дефолтную директорию? Установщик вообще не предлагает выбора директории
79 2335898
>>334358
Я бы как-то так делал...
Ну и я не понял логики. Типа зачем тегу знать про запись? Тег же это более широкая фигня. Если ты типа хочешь организовать доступ из тега к записи, то проще взять БД, там эта вот фигня за тебя реализована механизмом ключей, бери пользуйся.
80 2336029
>>335574
Поделись тестовым.
Хочу посмотреть что они хотят то.
А на каких условиях работа то? Пока бесплатно а потом если выстрелит пошлем тебя нахуй?
81 2336064
>>336029

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


Пока бесплатно а потом иди нахуй (без если выстрелит)
мимо другой ананас
82 2336085
>>336029
1a. Необходимо разработать БД, которая позволит хранить магазины и товары магазинов.
Описание сущностей:
Магазин: наименование, адрес, режим работы.
Товар: название, описание.
1b. Нужно сделать страницу, которая будет выводить список магазинов в виде таблицы.
В каждой строчке должна быть ссылка на товары магазина. По нажатии на ссылку - отображение товаров магазина в виде таблицы.
1с. На странице товаров магазина, должна быть возможность добавления, редактирования и удаления товаров открытого магазина.

Требования к технологиям:
1. ASP.NET / ASP.NET Core
2. UI – MVC или Angular(или любой другой UI фреймворк) + WebAPI
3. MiddleTier – ORM EF, Repository.
4. Необходимо использовать DI (любой IoC-контейнер –ninject, autofac, нативный asp.net core и тд)
5. DB – MSSQLServer
При первом обращении к базе она должна автоматически создаваться и заполняться тестовыми данными – несколько магазинов и несколько товаров в каждом из них.
image.png67 Кб, 300x168
83 2336086
>>336029

>А на каких условиях работа то?


Хуй его знает, я месяц лениво пилил тз, а потом призадумался самое время, да что из меня пытаются делать пикрил, лол.
84 2336089
>>336085
Для джуна дня на 2 задача. Для опытного на полдня-день.
85 2336098
>>336089

>Для джуна дня на 2 задача


и для очень опытного тоже 2 дня
86 2336103
>>336085

>2. UI – MVC или Angular(или любой другой UI фреймворк) + WebAPI


Поясните вот за юту строчку.
WebAPI это же бек, а на фронте ну жс или ангулар или вью. А MVC это же патерн. По сути штемель страница. Ну вот это вот все, делаем запрос на страницу страница обращается к контролеру контроллер возвращает модель и формируется страница. Просто Не пойму почему в этой строке приводится MVC как аналог ангулару.
87 2336132
>>336089
Все зависит от подхода. Если бы я на похуях, типа чтобы просто подтвердить что таки могу что-то там, делал - это можно сделать за 3-4 часа, если делать нормально, с нормальным фронтом, анимашки там красивые добавить, пытаться в интересный дизайн, апи сделать не минимальное, а чтобы вся хуйня с ролями-клеймами-токенами была, запилить докер-композ, какой-то пайплайн для CI/CD заложить ну и тесты прикрутить - работы на неделю точно, причем фуллтайм.
88 2336157
>>336085

>MSSQLServer


MSSQLServerMSSQLServerMSSQLServerMSSQLServerMSSQLServerMSSQLServer

>2022

89 2336169
>>335532

> интерфейс? это просто список методов которые нужно имплементировать


> ВСЕ!


> Ну и зачем они нужны?


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

И тут на сцену выходят интерфейсы. Помимо наследования у собачек и человечков есть реализации. Лично ты, как автор софта, решаешь, что наследуется, а что реализуется. И вот тебе нужен список чешущихся. Ты делаешь интерфейс ИЧешущийся, и реализуешь его собачками и человечками. И затем ты создаёшь массив чешущихся и решаешь свою задачу. Это солидно и минималистично. И кроме того, если ты добавишь реализацию чешущихся рептилий, тебе не придётся переделывать код в уже готовых модулях. А тебе пришлось бы переделывать, потому что массив млекопитающих тебе пришлось бы переделать на массив животных, чтобы в него можно было включать рептилий. А хацкер смог бы тебе в этот массив ещё и черепах накидать, хотя ты думал лишь о крокодилах.
90 2336171
>>335736
Очень заумные и красивые слова, тем не мене это все еще списочек, совершенно бесполезный по факту. код можно так же написать и без него
91 2336174
>>336169
а почему точно так же нельзя делать без интерфейсов

МлекопитающиеМенеджер => возвратитьЧешущийся() и внутри один хер такая же реализация. точно так же работает только не надо читать тонны литературы
92 2336176
>>336174
Я описал, почему. Читай внимательнее.
93 2336188
>>336176
И что ты написал? Не солидно! ты же понимаешь что мой бугурт именно в том что и состоит что солид существует сам по себе и для себя. код должен быть солидным потому что.... потому что код должен быть солидным, а по факту под этим ничего нет, пустые слова.
94 2336190
>>336171

>код можно так же написать и без него


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

>солид существует сам по себе и для себя


Нет. Основной смысл существования солида, чтобы ты открыл чужой код или свой собственный, но который делал очень давно и сразу начал с ним работать, не пытаясь мучительно понять/вспомнить, что тут и зачем. Для этого и существуют все эти правила и абстракции.
Например принцип SRP позволяет тебе спокойно брать любой модуль и что-то в нем менять, зная что у тебя не посыпется весь код, т.к. у тебя будет только одна причина для того чтобы этот кусок кода изменять. Если у тебя есть интерфейсы, то ты легко можешь менять одни модули на другие, не парясь чем и как они друг от друга отличаются.
Например нужно тебе в приложении заменить тип баз данных. Если у тебя нормально все разбито по слоям и спрятано за интерфейсы, ты просто выкидываешь один провайдер БД и подставляешь вместо него другой. И тебе не нужно будет лезть по всему коду и выискивать где и как у тебя идет взаимодействие с БД. И так во всем.
96 2336200
>>336197

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



открываешь класс, понимаешь что не понимаешь ничего, открываешь документацию.
Документацию есть всегда, зачем делать одну и ту же работу 2 раза!?
97 2336240
>>336200

>Документацию есть всегда, зачем делать одну и ту же работу 2 раза!?


О да, в современном-то мире IT-разработки?
Где на каждом углу ебучий скрам с ебучим эджайлом? Одним из основных принципов которого является "Похуй как работающий код важнее документации, поэтому ебашим, а доки когда-нибудь потом, может быть напишем"
Тебе повезет если хотя бы будет брошюрка о том как проект должен выглядеть со стороны заказчика.
98 2336243
>>336171

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

Но, к сожалению, есть и другие. Боюсь, что их — большинство. Эти системы похожи на бесформенный ком пластилина. Сначала создаётся маленький шарик базовой функциональности. Возможно, где-то в глубине его спрятан проволочный каркас грамотной и продуманной архитектуры. Но потом всё меняется. Каждая новая функция, каждое новое исправление и модификация делается наспех, по принципу «лишь бы работало». Каждый раз, внося такое исправление, мы берём комок пластилина и прилепляем сбоку к уже существующей системе.

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

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

В лучшем случае за ней следует глобальный, сложный и очень дорогой рефакторинг, который уничтожает всякие надежды на поставку системы вовремя и в рамках бюджета. В худшем – система поставляется «как есть», с огромным количеством ошибок и абсолютной невозможностью её расширения или модификации. За редким исключением, такой продукт проваливается на рынке, на руководителя (на мой взгляд, вполне заслуженно) накладывается епитимья, после чего он отправляется в изгнание.
98 2336243
>>336171

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

Но, к сожалению, есть и другие. Боюсь, что их — большинство. Эти системы похожи на бесформенный ком пластилина. Сначала создаётся маленький шарик базовой функциональности. Возможно, где-то в глубине его спрятан проволочный каркас грамотной и продуманной архитектуры. Но потом всё меняется. Каждая новая функция, каждое новое исправление и модификация делается наспех, по принципу «лишь бы работало». Каждый раз, внося такое исправление, мы берём комок пластилина и прилепляем сбоку к уже существующей системе.

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

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

В лучшем случае за ней следует глобальный, сложный и очень дорогой рефакторинг, который уничтожает всякие надежды на поставку системы вовремя и в рамках бюджета. В худшем – система поставляется «как есть», с огромным количеством ошибок и абсолютной невозможностью её расширения или модификации. За редким исключением, такой продукт проваливается на рынке, на руководителя (на мой взгляд, вполне заслуженно) накладывается епитимья, после чего он отправляется в изгнание.
99 2336247
Не могу пройти пятое подряд собеседование на бэкендера в зарубежные аутсорс компании. Вроде бы нормально отвечаю на все вопросы по синтаксису, солид, базам и тд.
Может ли быть то связано с тем, что не знаю ни одного js фреймворка, что нет опыта в CI\CD, облачных технологиях, не особо силен в юнит тестах, а так же во всяких Rabbit, Signal и тд?
100 2336309
>>336247
Так ты нихуя не знаешь тогда, собака
101 2336327
>>336243
Я такие пасты уже 1000 раз читал, это звучит красиво, но НА ПРАКТИКЕ ТО ЧТО? НА ПРАКТИКЕ!

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

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

а если я не прав, так ПРИМЕР покажите! ПРИМЕР! я не хочу слушать пространные речи о том как офигенно работать со структурированным, блочным, инкапсулированым кодом.
Приятно спору нет, только причем тут ваш интерфейс? Это гребаный списочек. И с интерейсом можно говно написать. И без интерфейсов можно сделать конфетку

Вот в с++ никаких интерфейсов вообще нет, и что? Теперь любой код в с++ это говнокод? НЕТ! Потому что ровно те же цели можно добиться другими более утилитарными способами.

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

Вот так я думаю.
102 2336328
Подскажите, плез, как прикрутить вот это:

https://docs.microsoft.com/en-us/dotnet/api/android.bluetooth.le.bluetoothleadvertiser?view=xamarin-android-sdk-12

к проекту на Xamarin Forms? Если это возможно вобще.
Мне надо вещать имя устройства по Bluetooth LE.
103 2336345
>>336309
C#, PL/SQL, ASP/NET CORE MVC/API
ORACLE, PostqreSql, MsSql
HTML/CSS/JS/Bootstrap
Плюс три года коммерческой разработки. Да, легаси, поэтому у нас нет всяких модных штучек. Неужели этих знаний не хватит для устройства на работу?
104 2336361
>>336247

>js фреймворка


Да. В вебе на C# фронт сейчас никто ничего не делает почти. То что было раньше уже почти умерло, то что есть нового еще очень сырое. Сколько я не видел, обычно C# идет в связке с чем-нибудь вроде Reacta или еще чего-то JS-сного. Т.е. ты можешь не знать досконально всех кишок, но написать простой компонент, подтянуть данные с бэка, отправить запрос и т.д. по мелочи должен уметь.
>>336247

>что нет опыта в CI\CD


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

>облачных технологиях


А вот это сейчас разрабу нахрен не нужно. Это проблемы девопса.
>>336247

>в юнит тестах


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

>так же во всяких Rabbit, Signal


В большинстве случаев это выглядит, так. Приходишь на проект "О, у нас тут RabbitMQ мы его вот только внедрили/внедряем. Все будет круто и быстро". Через полгода, "Не, чет не получилось. Нормально настроить не получилось. Чет все медленно и падает. Ну его нахуй - будем по старинке анус БД дергать".
Все любят про это спрашивать даже не представляя нахрен зачем оно им надо.

Итого. Потрать 1...2 месяца на изучение JS-фреймворка. Несколько дней на CI/CD. И неделю...две на юнит тесты.
105 2336364
>>336327

>Вот в с++ никаких интерфейсов вообще нет, и что?


Там есть абстрактные классы и множественное наследование, что по сути то же самое. И их именно в качестве интерфейсов все и юзают.
106 2336373
>>336327

>НА ПРАКТИКЕ ТО ЧТО? НА ПРАКТИКЕ


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

>И без интерфейсов можно сделать конфетку


можно конечно. ведь с интерфейсами, но единственной! реализации для него = без интерфейсов вообще.
(я сейчас не говорю про задачи, где без интерфейсов не решается в принципе)

>если у вас сферические примеры в вакууме ломаются при обновлении фремворка.


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

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

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

>а если я не прав, так ПРИМЕР покажите! ПРИМЕР!


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

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

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

Идем далее. Расширяемость. Вот тот же асп.нет кор (и либы вида Microsoft.Extensions.) активно юзает DI, при этом имеют единственную (дефолтную) реализацию интерфейсов.
Это позволяет расширять. Например, когда я захочу переделать убогую систему виджетов асп на нормальные компоненты, то я не буду делать форк, а просто сделаю свою реализацию нужных частей и зарегистрирую в services.Add
и все заработает потому что асп дает такую возможность расширять. Не используй он интерфейсы - мне пришлось бы делать форк асп и тучи библиотек.
106 2336373
>>336327

>НА ПРАКТИКЕ ТО ЧТО? НА ПРАКТИКЕ


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

>И без интерфейсов можно сделать конфетку


можно конечно. ведь с интерфейсами, но единственной! реализации для него = без интерфейсов вообще.
(я сейчас не говорю про задачи, где без интерфейсов не решается в принципе)

>если у вас сферические примеры в вакууме ломаются при обновлении фремворка.


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

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

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

>а если я не прав, так ПРИМЕР покажите! ПРИМЕР!


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

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

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

Идем далее. Расширяемость. Вот тот же асп.нет кор (и либы вида Microsoft.Extensions.) активно юзает DI, при этом имеют единственную (дефолтную) реализацию интерфейсов.
Это позволяет расширять. Например, когда я захочу переделать убогую систему виджетов асп на нормальные компоненты, то я не буду делать форк, а просто сделаю свою реализацию нужных частей и зарегистрирую в services.Add
и все заработает потому что асп дает такую возможность расширять. Не используй он интерфейсы - мне пришлось бы делать форк асп и тучи библиотек.
107 2336374
>>336373
ох уж этот парсер. звездочки превратил в курсив
108 2336421
В какой IDE разрабатывают программы на профессиональном уровне? Раз сейчас шарп становится кроссплатформенным, то разумней использовать VS Code вместо Visual Studio или нет?
109 2336431
>>336373
судя по тому что я не понял это :

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


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

Я еще не дорос до Солида, а точнее до уровня на котором солид нужен, я и тесты не использую
110 2336432
>>336421
во всех. выбор IDE - фломастеры
111 2336450
>>336432
Мне кажется VS Code более классный, а Visual Studio скучная
112 2336458
>>336431
Ну...суть солида - помогать писать код, который легче сопровождать и расширять, в котором при добавлении новой фичи пришлось бы модифицировать как можно меньше кусков кода, что минимизирует вероятность "каскадного распространения бага".

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

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

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

>>336450
я ж говорю - фломастеры. Я выбираю VS - из-за Diagnostic Tools и Xaml дизайнера (хоть я пишу хамл руками). Ну и возможность интеграции с TortoiseHG, а не использовать родную для IDE работу с CVS
113 2336522
114 2336527
>>336522
Как вы его оплачиваете? Жидбрейнс же свалили в Прагу и делают вид, что иностранная фирма.
115 2336543
>>335501
Чекни на рутрекере в теме райдера 2020.2.4, там вроде на новые версии в обсуждении есть кряки
116 2336559
117 2336657
>>336543
Ничего там нет, они сами не знают как ломануть
118 2336731
>>336657
последний раз ломался тем же, чем и пишармы разные. После этого не смотрел. пишарм/рубимайн/пхпсторм обновились и продолжили работать. Значит и райдер должен
119 2336777
>>335501
Нахуя нужен райдер, когда есть божественный Vim?
Вот серьезно. Хоть одну причину назови, зачем нормальному человеку - райдер.
120 2336907
>>336657
2021.3.1 Update
Download this https://www38.zippyshare.com/v/Xvt9Ve3t/file.html
Add in vmoptions -javaagent:/path/to/ja-netfilter.jar=jetbrains Note: this is now automated if you run scripts/install.sh on Mac/Linux or install-current-user.vbs on Windows.
Open your Jetbrains IDE. Click Activate by licence server and type in https://jetbra.in
Should now be activated
Вот это вот
121 2336978
Первый раз работаю с гитом и не понимаю как добавить изменение, чтобы оно не публиковалось на гитхабе. Вижла 2022 почему-то пишет, что можно только в гитхаб отправить, а не в локальный репозиторий.
Как вы учили гит?
122 2336994
>>336978
Пересел на линукс.
123 2337007
>>336978
Хуй знает я просто гитхаб десктоп пользуюсь там все наглядно без доёбов
124 2337029
>>336994
Но ведь там нет вижлы
125 2337045
>>336907
Что-то сложно. И эта старая версия не поддерживает дотнет 6.
126 2337061
>>337045
Поддерживает же. 2021.2.1 уже поддерживала
2021.3.1 это от декабря того 21 года, поддержка есть
127 2337066
Пасаны, сделал веб приложение на Blazor WASM, выложил на клаудфлейр пэйджес (на гитхаб и хероку не получилось выложить лол), все ок.
Но работает все только при первом заходе на страницу или при обновлении по Ctrl+F5.
Если просто обновить по ф5 или перезайти на страницу - не удается получить доступ к сайту ERR_FAILED.
Проект суть дефолтный шаблон, ничего в роутингах или эппсеттингс не менял.
Гугол не помог, куда смотреть?
128 2337073
>>337029
А зачем она там?
129 2337258
>>336978
git cli использую
130 2337280
Нахуя компилятор требует ДВА ЕБАНЫХ ПРИВЕДЕНИЯ https://codeshare.io/Qnrwmm ?
sage 131 2337293
>>337280
Потому что ты ебаная анимеблядь, съеби говноед
132 2337296
>>337280
Кастопидоры с уёбищной системой типов должны страдать.
133 2337303
>>337293
Ожидаемо, но лень было менять названия
>>337296
Чем ругаться лучше помоги разобраться
Result является прямым наследником AnimeMangaIdBase. Для TData тоже указано условие наследования от этого типа. Почему он не хочет делать неявное приведение?
134 2337314
>>337303

>Result является прямым наследником AnimeMangaIdBase


Но не наследником или базовым классом для TData.

Это как блядь у тебя и 2 типа int и string, они тоже являются наследниками типа object, попытайся скастить один в другой.

Если тебе станет легче, такое говно с промежуточным кастом пишут все. Частично от этого иногда спасает какой-нибудь DI в проекте.
135 2337331
>>337066

>Гугол не помог, куда смотреть?


Ссылку не дашь, код не покажешь. И как тебе помогать?
Попробуй повторить мануал.
https://developers.cloudflare.com/pages/framework-guides/deploy-a-blazor-site/
Я не помошник, просто в тред заглянул посмотреть что там у шарпистов.
136 2337347
>>336328
Ну тогда и мне, балбесу, заодно помогите :-(

VS Community
Xamarin

Вроде нашёл, что мне надо: https://github.com/xabre/xamarin-bluetooth-le/blob/master/Source/BLE.Server.Droid/BleServer.cs#L45

Пытаюсь подсунуть в MainPage.xaml.cs - борода.
ругается, что нет пространства имён:
using Android.Bluetooth;
using Android.Bluetooth.LE;
using Android.Content;
using Java.Util;

Пошарился по остальным файлам в проекте - указанные выше библиотеки (большая часть) есть в MainActivity.cs
Добавил их там - на не найденное пространство имён не ругается.

Что мне надо сделать, чтобы перенести участок кода и сделать его доступным в MainPage.xaml.cs?

Ссылка на говно-проект: https://drive.google.com/file/d/1Aolw3VryI6Wm1pSRDftFuNB1UXhYU0t0/view?usp=sharing
137 2337355
Как сделать так, чтобы при нажатии кнопки запустился некий процесс, который работает сам по себе неопределенное количество времени, реагирует на действия пользователя, при этом основная часть программы ожидает, пока этот процесс не завершится и не вернет значение?

Гугл подсказывает async/await. Но как мне в процессе работы потока передать ему данные или команду прервать работу?
138 2337357
>>337355
ну тот же принцип как и HostedService работает (да и вообще все на свете)
Создай класс в котором по нажити кнопки стартанешь вечный цикл и передай ему ConaellationToken или заведи метод Stop/Cancel(). Корми его данными в рэндомные моменты через обычные методы этого класса (а внутри можешь использовать Channel).
Для ожидания окончания заведи у него поле Task Completion которое закончится при выходе из цикла. Ну или сделай Async версии методов StopAsync/CancelAsync

Как больше нравится в общем
139 2337361
>>337355
А если это процесс, то стартуешь процесс и у него есть Process.WaitForExitAsync(CancellationToken) чтобы можно было подписаться на ожидание окончания его работы.
Ну а кормить его данными - тут уже выбирай любимый метод IPC
140 2337371
>>337007
Ну хз, я так и не понял, например, как мне выкачать в произвольную папку файлы проекта по состоянию на такую-то дату.
Он только изменения показывать может, а мне это нахуй не надо.
Я думал, что раз я пользуюсь гитом, то могу смело ебашить стрёмные изменения в мой петпроект, а если что-то пойдёт по пизде, всегда смогу откатиться назад. А как оказалось - нихуя (ну либо я тупой, не знаю консольных команд). Пришлось короче в этом гитхаб десктом ручками смотреть все изменения и ручками их вносить.
Но опять таки возможно я просто тупой.
141 2337417
>>337357
>>337361
Короче, при любых реализациях избежать бесконечного цикла не удастся.

>Создай класс в котором по нажити кнопки стартанешь вечный цикл и передай ему ConaellationToken или заведи метод Stop/Cancel().


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

Щас по пробую реализовать через события.
142 2337422
>>337417
циклы(очереди) - они везде. Не нужно их избегать.

>Щас по пробую реализовать через события.


не усложняй. В CancellationToken тоже есть подписка. Было бы что подписывать.
143 2337436
>>337417
вот тебе прототипы на коленке
https://pastebin.com/C7qv02G6

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

Service1 - там стартуешь и отменяешь токеном, а где то подписываешься на Completion
Service2 - это наследник BackgroundService тот который IHostedService. Там просто соединяется StartAsync/StopAsync в один токен, чтобы самоу то же самое не делать в каждом классе (посмотри реализацию и поймешь)
Можно и Start/Stop + Completion

Да как угодно можно. Тут ничего сложного
144 2337453
>>337355
Абортируй тред нахуй. В чем сложность?
145 2337459
>>337453
сложно абортировать тред без существования Abort()
146 2337464
>>337459
Ты же на винде я думаю работаешь. Дергай TerminateThread и живи спокойно.
147 2337467
>>337464
Не на винде, но интересно как из Thread получить то, с чем можно вызывать TerminateThread
148 2337472
Подскажите как на асп нет коре можно определять залогиненный ли сейчас определенный пользователь. Я хочу не пускать его логиниться если у него открыта сессия.
149 2337475
>>337459
>>337467
Но если серьезно, то другого "правильного" способа, кроме как использовать CancellationToken - виндобляди не предоставили, после отказа от Abort. Что поделать?
Можешь вот это посмотреть:
https://docs.microsoft.com/ru-ru/dotnet/api/microsoft.visualstudio.threading.threadingtools.withcancellation?view=visualstudiosdk-2022
Я пока что не тестил, но судя по описанию, оно должно работать +- как нужно.
150 2337502
>>337475

>другого "правильного" способа,


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

>оно должно работать +- как нужно.


не. это одна из реализаций метода WithCancellation для операций, что не принимают токен. Просто делается TaskCompletionSource для токена отмены и далее Task.WhenAny. Если сработает таска от токена, то выходим. Но основная таска продолжает работать ничего не зная ни про какую отмену
151 2337546
>>337464
Ага разобрался. Нужно получить тредайди
Thread.BeginThreadAffinity();
_treadId = GetCurrentThreadId();
Thread.EndThreadAffinity();

и дальше можно абортить
IntPtr ptrThread = OpenThread(1, false, (uint)_tread);
TerminateThread(ptrThread, 1);

пригодится. жаль только винда
152 2337576
>>337464
даже сделал себе класс хелпер для поддержки TPL
https://pastebin.com/bm6jFU1G

Кстати, наглядный пример неудобства что void не тип - приходится писать 2 реализации с дублированием кода для Task и Task<T>.
Был бы дефолтный Unit в фреймворке - сильно бы легче было.
153 2337691
>>337464
не. дохлый номер
поток умирает, но Thread остается жить и если сделать GC.Collect(), то падает рантайм
Fatal error. Internal CLR error. (0x80131506)
154 2337738
Вот вы говорите: не стоит боятся санкций, ведь дотнет кор попенсорсный, а микрософт блочит гитхаб и вам становится не доступен весь попенсорс.
155 2337758
Как принято делать реализацию доступа к api? Пока у меня вот такая https://codeshare.io/Rbr9XQ дрянь, но мне кажется, что за это непотребство в цивилизованном обществе расстреливают.
156 2337781
>>337691

> поток умирает


Я краем глаза прочёл "котик умирает" и подумал, что ты тот ебанутый попрошайка, что носится по всем разделам. Уже хотел отправлять persistent data по коду 0x80131506, но вовремя перечитал пост.
157 2337897
Здрасьте. Вопрос такой. Приложению нужно принимать некий жиссон от строннего приложения и мапить объекты из него на свои собственные объекты. В частности предполагается мапинг стрингов на энамы. Нормально ли создать в принимающем контролере (ну или сервисе) свойства словари по типу:

Dictionary DictionaryProperty = {"A" = SomeEnum.One, "B" = SomeEnum.Two, "C" = SomeEnum.One}

Т.е. вопрос в том, т.к. это свойство класса контроллера, оно ж будет создаваться при каждом запросе и не сильно ли такое повлияет на производительность? Словари не большие, их максимум будет 4 по 10 значений. Не ругайтесь сильно, позязя, я нуб и боюсь слепить совсем не производительное говно
158 2337907
Стоит ли уже начинать использовать Generic Math и abstract static методы и свойства в интерфейсах? Или оно всё ещё сыро и неустойчиво по API.
Я был удивлён, что оказывается нельзя оставить абстрактной реализацию abstract static метода интерфейса в абстрактном классе.
159 2337917
>>337347
Спасибо, посоны. Люблю вас просто за то, что вы есть.
160 2337951
>>337897
Делай словарь статичным и ридонли. В чем проблема?
161 2337962
>>337917
Тебе трудно отвечать, потому что ты вопросы по дурацки задаешь. Создается впечатление, что ты базовые вещи не занаешь, при этом просишь специфичную для замарина и андроида хуйню.

Сформулируй нормально что тебе и где надо.
>>336328
Посмотри это https://medium.com/enigmamx/how-to-integrate-bluetooth-le-in-xamarin-forms-2dcdf974703a
Я замарин последний раз в 2018 трогал и в те времена блютуз мне был не особо нужен. Суть. Замарин - говно без задач. Хочешь что-то для мобилок писать - бери жаву либо котлин и делай как человек. Инструмент для задачи, а не задача для инструмента.
162 2337996
>>337962

>Хочешь что-то для мобилок писать - бери жаву либо котлин и делай как человек


ага. а еще свифт и свифтуи или комбине, делов то )
163 2337997
>>337951

>В чем проблема?


Вот этой идеи не хватало

>Делай словарь статичным и ридонли.


А вечный словарик в памяти не слишком много сожрёть?
164 2338001
>>337997
Как бы при любом POST на контроллер с жсоном в теле происходит парсинг этого жсона на объекты. В чем твое отличается от этого?
О чем разговор вообще?
165 2338041
>>337997
Не сильно.

>>338001
Ну, как я понял, ему прилетает жсон вида:
{
propA:"Zalupa"
}
он хочет его смапить к:
class A{
public SuperDupperEnum Element {get;set;}
}

и в обработчике:

a.Element = _dictionary[request.propA] сделать.
Скорее всего "Zalupa"- не в енаме, иначе бы фреймворк за него смапил.
166 2338046
>>338001

>О чем разговор вообще?


Нуууу, смотри. Дело такое, есть нечто стороннее на пыхе, которое кидает жиссон с массивом различных объектов с некоторыми пересекающимися полями (в частности там есть поле "Type"). Плюсом в жиссоне идет такая особенность как Price: "100" т.е. числительные в кавычках, стрингой. (собираюсь использовать [FromBody] и не уверен что оно автоматически сможет спарсить такое в кавычках в decimal). Планирую принимать массив общих объектов со всеми стринговыми полями (ибо не уверен что Price: "100" можно сразу в десимал спарсить) и потом в зависимости от значения в Type парсить с , т.е. принимается массив
CommonObject
{
string Type
string Price
string Property1
string Property2
string Property3
string Property4
}

и затем каждый общий тип в массиве мапится на

Object1
{
int TypeId
decimal Price
string Property1
string Property2
}

Object2
{
int TypeId
decimal Price
string Property3
string Property4
}

Object3
{
int TypeId
decimal Price
string Property1
string Property4
}

Причем даже значение string PropertyN из общего объекта не всегда точно равно string PropertyN в конкретном объекте.
В связи с чем есть план запилить словарики какие стринги из стороннего входящего объекта равны каким значениям моих внутренних объектов

>О чем разговор вообще?


А это вообще хороший план со словариками, так быстрее работать будет? И если да, то пусть лучше эти словарики создаются каждый раз при запросе (пока запросы планируются не слишком частыми, т.е. нагрузка так себе) или сделать их статичными и пусть висят в памяти всё время работы приложения
Вот
166 2338046
>>338001

>О чем разговор вообще?


Нуууу, смотри. Дело такое, есть нечто стороннее на пыхе, которое кидает жиссон с массивом различных объектов с некоторыми пересекающимися полями (в частности там есть поле "Type"). Плюсом в жиссоне идет такая особенность как Price: "100" т.е. числительные в кавычках, стрингой. (собираюсь использовать [FromBody] и не уверен что оно автоматически сможет спарсить такое в кавычках в decimal). Планирую принимать массив общих объектов со всеми стринговыми полями (ибо не уверен что Price: "100" можно сразу в десимал спарсить) и потом в зависимости от значения в Type парсить с , т.е. принимается массив
CommonObject
{
string Type
string Price
string Property1
string Property2
string Property3
string Property4
}

и затем каждый общий тип в массиве мапится на

Object1
{
int TypeId
decimal Price
string Property1
string Property2
}

Object2
{
int TypeId
decimal Price
string Property3
string Property4
}

Object3
{
int TypeId
decimal Price
string Property1
string Property4
}

Причем даже значение string PropertyN из общего объекта не всегда точно равно string PropertyN в конкретном объекте.
В связи с чем есть план запилить словарики какие стринги из стороннего входящего объекта равны каким значениям моих внутренних объектов

>О чем разговор вообще?


А это вообще хороший план со словариками, так быстрее работать будет? И если да, то пусть лучше эти словарики создаются каждый раз при запросе (пока запросы планируются не слишком частыми, т.е. нагрузка так себе) или сделать их статичными и пусть висят в памяти всё время работы приложения
Вот
167 2338048
>>338041
Вот да, типа того
168 2338062
>>338048
Держать такой словарь в памяти (статика) это такая мелочь по сравнению с остальным, что просто ну ни о чем.

А если хочется тотальной экономии, то такой небольшой словарь можно всегда заменить на switch и потребление памяти будет нулевое.
169 2338161
Есть ли у асп нет кора изподкоробки возможность проверить онлайн ли сейчас конкретный идентити юзер? Если нет, то можете подсказать куда копать/как это реализовать?
170 2338183
>>338161
Нет, как ты это проверишь. Пинговать его будешь постоянно?
171 2338207
Блять, посоны, я посмотрел вакансии и джун бэкендер не нужен никому.
Я думаю, стоит ли мне рашить сейчас и бежать на собеседования хоть куда-либо или подождать нормальной вакансии
172 2338214
>>338161
Можешь для этих целей вебсокеты использовать. Правда зачем в контексте ХТТП это вот надо - я хрен знает.
173 2338225
>>338183
Ну на js'e мб держать как-то коннект с сервером я хз. Вот пока читаю что на асп нет есть memberuser.isonline, правда пока не знаю что там под коробкой, да и мне на коре нужно.
174 2338239
>>338214
Объясню - у меня петпроект прохождение всяких нестандартных нескучных тестов. Я пока точно не тестил, но прикинул что в теории юзер вполне может ебануться и залогиниться два раза в свою учетку с разными куками и это в теории может распидорасить сервак, как минимум мне кажется можно словить какой-то db concurrency update, ну или еще кучу всяких уязвимостей чисто моей реализации потому что я этого не предсказал. Самое тупое пока что я придумал - просто не пускать его в систему пока он залогинен, как например в веб версии телеги, правда там это в контексте пары вкладок. Мне показалось что асп нет коре что-то должно быть как например есть дебаг конект с самой студией.
175 2338242
>>338239
HTTP - по своей сути - запрос-ответ протокол, в HTTP 1.1 по дефолту - сокет закрывается сразу после обработки запроса. "Подключение" к приложению строится обычно на базе сессий.
Так вот в контексте db concurrency update - тебе боятся нет смысла, оно не про это, а про попытку двух потоков обновить сущность, в твоем контексте - оно как может произойти даже если у тебя будет механизм отслеживания, так может и не произойти, даже если два одинаковых пользователя будут обновлять запись.
Если бы ты хотел фишку как в ВКшечке какой-нибудь, типа пользователь вышел и кружок стал сереньким, то это делается двумя путями: вебсокеты, либо реализуешь логику на стороне клиента, когда он раз в какой-то интервал времени шлет запрос, который означает, что он еще подключен, приложение обновляет статус клиента, если условно он минуту этот запрос не слал - считаешь его не в сети.
176 2338246
>>338225

>Ну на js'e мб держать как-то коннект с сервером я хз.


И чем SignalR плох тогда?
177 2338751
То есть мне чтобы в каком-то foreach например быстренько литерал объектов по которым пройтись надо нужно хуярить new залупа[] {}? Чем шарп блять просто [] не устроил?
image.png9 Кб, 480x329
178 2338793
Пытаюсь разобраться, как работает api. Пока возникли следующие вопросы:
1. В коде есть app.UseHttpsRedirection(); Но в браузере при попытке открыть ссылку по http пик 1. Почему так?
2. В инсомнии (http-клиент) мне выдает ошибку Error: SSL peer certificate or SSH remote key was not OK. Как это работает? В моем представлении Visual Studio установил на компьютер сертификат разработчика, и все должно работать даже в инсомнии.
3. Роуты регистронезависимые, поэтому /demo и /DEMO выдают один и тот же результат. Вот только когда я в строке браузера задаю /DEMO - строка изменяется на /demo. Как это происходит? Я сначала думал, что это какой-то редирект, но в инсомнии никаких редиректов не отображает, обычный плеин текст, никаких подозрительных заголовков, один запрос на /DEMO и один ответ. Как браузер понимает, что /DEMO и /demo - это одно и то же, и нужно заменить в строке адреса /DEMO на /demo?
179 2338850
>>338793

>Пытаюсь разобраться, как работает api


Просто закоментируй и убери пока строку app.UseHttpsRedirection();
чтобы не ебать себе мозг пока постигаешь и юзать обычный http. Потом когда поймешь, что и как вернешься и освоишь https и прочую шелуху.
180 2338859
>>338850
>>338793
На самом деле с первым пунктом я ступил (порт перепутал), и app.UseHttpsRedirection(); работает как и ожидалось. А вот остальные 2 пункта - непонятно.
image.png15 Кб, 807x161
181 2338975
Как получить дескриптор дллки подключенной к процессу?

Process = Process.GetProcessesByName(NAME_PROCESS).FirstOrDefault();
ModuleClient = Process.GetModule(NAME_MODULE_CLIENT);

ModuleClient = налу и Marshal.GetLastWin32Error() - выводит 0 (типо всё окей)
182 2339086
Где взять пример унит тестов и интеграционных тестов для мвс? Те семплы которые есть на мсдн не компилируются даже
183 2339130
>>338207

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


учи php
184 2339151
Где взять пример унит тестов и интеграционных тестов для мвс? Те семплы которые есть на мсдн не компилируются даже

Самое главное что что меня интересует как РЕАЛЬНО написать какие-то тесты которые РЕАЛЬНО

Все эти гавкающие кошки и мяукающие песики из примеров это конечно хорошо НО меня интересует реальное применение, а не эта чушь.

Например когда представление возвращает not authorized это ошибка или нет? тест пройден или нет?

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

Короче все РЕАЛЬНО ВАЖНЫЕ вопросы не раскрыты, а везде пространные речи про солид, DI и котиков-собачек.
185 2339168
>>339151
У Троелсена есть примеры, где машина разгоняется и у неё движок ломается, если превышает определенную скорость.
186 2339172
>>339151

>Короче все РЕАЛЬНО ВАЖНЫЕ вопросы не раскрыты, а везде пространные речи про солид, DI и котиков-собачек.


А это типично. В инете миллионы статей где показано как решать простые случаи.
Из-за этого приходится мониторить ресы разные и класть в закладки норм статьи, чтобы потом не искать.
187 2339222
>>339151
Ты немножко не понимаешь сути тестов и SOLID

Ты создаёшь объект с определенной целью, например сложения двух чисел. Что там накодил - вторично, для тестов важно только одно - полученные данные и возвращаемое значение. Если твой объект на 1+2 возвращает 3 - хорошо, возвращает 12, null или ExceptionError - тест не проходится. Всё.

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


Гугли Mock-объекты
569650original.jpg55 Кб, 736x546
188 2339422
Господа! Подкиньте ресурс для проверки знаний основ C#. Желательно актуальные вопросы на собеседованиях. Посмотрел Курс Александра Гудка, прочитал 18 глав Шилдта и хочу чекнуть свой скилл 33 лвл, ноулайфер
189 2339442
>>339422
Просто сходи на реальный собес хоть куда
190 2339444
>>339151

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


Нет, ты просто мокаешь бд в своих юнит тестах.
191 2339466
Привет из gamedev!Godot engine
Насколько сложно пилить сервер на C#?
На линуксе проблем не будет?
192 2339535
>>339151
сейчас Адама Фримана читаю, у него там есть пример тестов для мвс
https://github.com/Apress/pro-asp.net-core-3/tree/master/10 - SportsStore - Admin/End of Chapter/SportsSln/SportsStore.Tests
193 2339551
>>339466
Ща тебе насоветуют.
Местные совершенно иначе понимают слово "сервер". Здесь другие ребята, здесь суровый ентерпрайз.
мимо ОП годотреда
194 2339652
нужно модифицировать старый проект на EF. используется ModelFirst, но в модель.edmx сотни таблиц как мне найти нужную и обновить её?
195 2339729
Можете посоветовать библиотеку для чтения данных из excel файла, чтобы ее можно было использовать на VS Code?
196 2339954
>>339729
Возможно стоит перефразировать вопрос: Как записать большое кол-во данных в БД?
197 2340029
>>339954
INSERT INTO название таблицы VALUES (значения полей)
198 2340041
>>339729
Можно сконвертить в CSV-файл и читать как простой текстовый файл. Совместимость с VS Code присутствует.
199 2340065
>>340029
Если в таблице 1,5-3к строк, тот же способ?
200 2340101
>>340065
Можно и тем же, можно одним запросом - инсерт инто таблица вэльюз (значения строки 1), (значения строки 2), ...
Пара тыщ строк это не сложная задача для БД.
201 2340122
>>339729
что особенного в VS Code что нужны какие то особые библиотеки?
202 2340133
>>340122
В том, что microsoft.interop.excel не подходит, ибо у меня mac. А решения без использования Framework я не нашел. Поэтому такой запрос.
>>340101
Те вбивать все ручками в самой СУБД или нормальный программист заполнит с 0, при необходимости, БД через EF, попутно разработав структуру БД?
203 2340182
>>339954
Очевидный dbeaver.
Версия под мак - есть.
Подключенте к любой бд - есть
Импорт/экспорт в/из БД их любого говна - есть.
204 2340199
>>339729
Смотри, есть два формата данных в office - xsl и xslx

XSL - это бинарник, тут всё сложно без библиотек

Но XSLX - это же обычный архив с кучей xml файлов, можно использовать как OpenXml, так и вручную через Linq to XML
205 2340248
>>340133
оффтоп, но зачем маководам шарп? никогда не понимал.
206 2340266
>>340182
Так это та же самая Postgre. Ввод данных тот же INSERT INTO
>>340199
Тоже подумал, что проще видимо парсить xml. Расчитывал, что можно это сделать без "сохранить как".
>>340248
1. Домашний пк на маке. 2. Далее потребуется воспользоваться одной либой для конвертации файлов, которая написана только под шарп с последующим наполнением БД.
И разве сейчас шарп не позиционируется как кросс платформенный? Даже при "хотели как на бумаге, да забыли про овраги", то выбор из подобных языков, по моему представлению, не велик, либо я так и смог корректно понять какой яызк для чего.
207 2340311
>>340266
Джава полностью кроссплатформенна и работает одинаково на 3 миллиардах устройств.
image.png29 Кб, 513x282
208 2340317
>>334153 (OP)
'Axis object – Auto interval error due to invalid point values or axis minimum/maximum
как же эта хуйня заебала, я просто в рулетку какую-то играю
почему нахуй. почему я не могу просто взять и начертить график, надо ебаться с говном
image.png24 Кб, 539x405
209 2340327
>>340317
я понял, там значение большое высчитывается после чего нулл хранится видимо
210 2340331
>>340266

>Так это та же самая Postgre. Ввод данных тот же INSERT INTO


Там из csv есть импорт с кучей настроек и маппингом на нужные столбцы
211 2340507
>>340311
только гадость, которую не хочется кушать.
212 2340651
>>340266

>Расчитывал, что можно это сделать без "сохранить как".


Ты про что?
213 2340662
>>340507
Я за месяц прочитал Эккеля "Философия Java" и теперь лучше понимаю шарп, потому что таких книг чисто по шарпу нет. Тот же Троелсен очень поверхностно всё описывает и порой не понятно и что и зачем нужно.
Языки очень похожи и если знаешь один, то другой учится быстро.
214 2340700
>>340651
Рассчитывал, что можно в более серьезном ЯП без преобразования исходного файла, открыть и сделать записи в объект и все.
image.png308 Кб, 1000x1000
215 2340722
Здраститя, у меня вопрос. Есть у меня структура данных напоминающая внутреннюю часть хэшсета где:

T[] массив с данными;
int[] массив со следующими индексами;
int последний занятый индекс;
пулл со свободными индексами;

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

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

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

Все идеи как это сделать у меня какие-то хуевые. Наверно лучшая это просто на время многопотока разбивать каждый отдельный индекс на свой отдельный массив и лочить его когда туда щемится какой-то из потоков, а в конце просто собирать их обратно. Но это звучит как-то так себе.
216 2340752
>>340700
Из XLS в в XLSX?

>>340722
object o = new()
....

lock(o){
...}
217 2340762
>>340752
Что, предлагаешь просто нахуй всю хуйню лочить при изменениях в ней? Может ещё и чтобы потоки в самом начале лочили эту хуйню? Потокобезопасненько!
218 2340810
>>340752
Из XLSX в XML.
219 2340843
>>340762
Я предлагаю блокировать доступ к переменной.

>>340810
Зачем? XLSX - это и есть несколько XML файлов.
220 2340903
>>340843
Но причём тут переменная?
2022-04-2116-09-46.png16 Кб, 918x237
221 2340907
Пытаюсь по этому тутору установить бенчмарк
https://youtu.be/8Slzd1G7f9Q

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

Если из консольного приложения сделать приложение windows, то становится недоступна консоль.
222 2340915
>>340903

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



Это.
2022-04-2116-55-34.png9 Кб, 621x167
223 2340936
>>340907
Короче, в свойствах проекта дописал магический ключ
224 2341081
>>340915
Но причём тут переменная то. Если я для каждого отдельного индекса буду лочить что-то это проблему не решит. Если для удаления, или чтения, что-то из линкед листа ещё ладно хуй с этим сгодилось бы, то для добавления не особо, так как там уже общий массив для всех индексов.

Впрочем, медитация в потолок натолкнула меня на пару свежих мыслей.
225 2341339
Что именно делает net runtime optimization service? Зачем ему требуется столько процессора? Есть где то нормальное объяснение работы? В гугле написана полнейшая чушь, не объясняющая ничего, и инструкции для отключения
226 2341342
>>341337 (Del)

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


Потому что ты тупой. Тебе же прямым текстом написано, что ты пытаешься в текущей области видимости объявить переменную с именем которое уже используется во внешней (по отношению к ней) области.
Сначала читать научись, потом лезь в программирование.
227 2341359
>>340722
При добавлении-удалении -
var readlData = //твоя фигня которую ты собрался менять
while(true)
{
var localCopy = CopyDataMustBeChanged();
var expect = DoOperation(localCopy);
var real = DoOperation(realData);
if(expect == real){break;}
}
228 2341360
>>341359
Криво написал, но суть я думаю всем ясна.
229 2341382
>>341359
Гораздо элегантнее использовать тут цикл do - while
20220408093312.jpg39 Кб, 598x499
230 2341396
>>341342
Это то я понял, ты мне лучше скажи как это исправить, накинь ссылок

Гугл нихуя не выдаёт
231 2341405
>>341396

>как это исправить


Имя переменной process поменяй. Либо той которая в foreach, либо той которая снаружи.
232 2341656
Поясните за Lifetime в DI в WPF.

В ASP с этим более-менее понятно, но вот как это всё выглядит в десктопе?
233 2341733
>>341656
Там нету встроенного DI
234 2341759
Если выучил все с гайда по шарпу на метоните то это какой уровень погромирования будет? Мидл? Не тролю, просто вкатываюсь в шарпы с нуля, хочу понять уровень предстоящего пиздеца.
235 2341767
>>341759
Да ну какой же ты мидл без реального опыта. У тебя базовые знания.
236 2341785
>>341759
Стажер максимум
237 2341801
>>341656
Смотря какие лайфтаймы

Если лайфтаймы от DI типа OpenScope(), то это одно. Если что то типа IApplicationLifetime (как в асп) то другое. А "лайфтаймы - они везде", то это третье

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

Вот тут вариант с пояснениями https://www.youtube.com/watch?v=ZzmK7K2ZIxI и типа репа https://github.com/saltukkos/lifetime-demo
Но опять же все по верхам по верхам конкретного применения.

Я же использую Jetbrains.Lifetime (https://www.youtube.com/watch?v=Sq_h5bVWJ0k) + DI от майков.
238 2341802
>>341801
Это именно наши изобретения. Много лет спустя спросят, кто изобрёл лайфтаймы? А ответом будет - русские!
239 2341820
>>341802
Потому что это верная концепция. IDisposable прост примитив, который никак не отвечает на вопросы
- когда вызывать dispose(). нам бы тут задиспозить, но мы передали зависимость куда-то, а вдруг она там нужна
- а если мне в конструктор передали зависимости и меня диспозят, то мне эти завимости диспозить или нельзя. Вступает в конфликт с предыдущим, в итоге никто не диспозит )
- как не забыть вызвать dispose()

А еще кривая концепция событий
240 2341837
>>341801
Я про троицу Transient - Scoped - Singleton.
И больше всего вопросы вызывает Scoped в WPF
241 2341850
>>341759
Не выучишь. Там уровень материала "Рассказать новичку, чтобы он понял зачем это вообще нужно" и "Вспомнить зачем эта хрень, когда давно ей не пользовался".
Уровень где-то стажер, стажер+.
242 2341852
>>341837
Нуу тогда это нужно искать проекты с контейнерами, но там обычно все "а вот создаем вьюмодели через контейнеры" и все. Сложные случаи типа scoped - редкость. А при scoped контейнер же уже похоже Lifetime из описанного выше. Но хуже, ведь scoped диспозит только скопед элементы, да и таскать контейнер везде бред. Поэтому вместо "а как же быть" лучше lifetime как отдельная концепция и реализация.
243 2341860
>>341850
А что нужно для уровня сеньор? Прочитать Рихтера?
244 2341889
>>341860
Пчел, это не ева с синхропакетами, нужен экспириенс.
245 2341923
У вас возникает чувство стыда, когда вы пишите на сишарпе?
246 2341959
>>341923
Опять джавист жмет шарфик кунов
247 2342033
>>341759
Нууууу. Мидл-хуидл от конторы зависит.
Я работал в местах, где 2 программиста - там и это было уже ведущий, кек, и работал в местах, где 100+ человек кодеров, и там это даже чтобы собес пройти не подходило, если ты не студент какой-то(тип к еще студентам спрос меньше, можно взять посмотреть, вдруг что выйдет путнего). Так что да.
Чисто по своему ощущению, я бы людей с метанитом никак не оценивал, потому что он дает готовый кук-бук, а понимания что ты делаешь - не дает.
Для мидла я бы считал норм - основы (базовая информатика, алгоритмы, дискретка, динамическое программирование, это вот все), паттерны, немного архитектуры кода, сети (если в веб метишь: уровни модели OSI, какие еще модели были, можешь пояснить на каком уровне ты работаешь, пару протоколов назвать, можешь какой-нибудь SNTP-сервер нафигачить по спекам), железо (понимаешь что есть разные архитектуры и как минимум знаешь пару названий и особенностей, можешь привести примеры что нужно на одной учитывать чтобы код работал нормально), операционки (знаешь что такое, что оно за тебя делает, можешь пояснить как бы писал код, не будь у тебя операционки), многопточка (что, зачем, как там с шаред стейтом, вот это вот все); про работу общие вещи(методолгии, скрамы-хуямы, ватерфолл, спиральная, этапы разработки, можешь объяснить в чем разница между продакт-овнером и скрам-мастером), ну и умение решать задачки быстро, не отвлекать, гуглить и самому понимать, что от тебя хотят. Как-то так вот.
248 2342054
>>342033

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


Один бесполезный хуесос, а другой бесполезный пидарас?
249 2342131
>>341923

> У вас возникает чувство стыда, когда вы пишите на сишарпе?


У меня чувство хуйни, когда я пишу на годном и удобном сишарпе и понимаю, что вместо православного нативного кода у меня конпелируется богомерзкий МСИЛ и исполняется на подзондированном дотнете.
Ну почемууу не сделали нативный компилятор шарпа???
250 2342143
На собесе гоняли по С#, а в итоге пилю код на VBscript + SQL. Проект древний. C# поминимуму. Это норм? Или нужно валить из этой конторы?
251 2342179
>>342033

>можешь пояснить как бы писал код, не будь у тебя операционки)



Ну попробуй напиши, дрлбоеб
252 2342255
Вопрос - почему здесь так много WPF-шников и десктопов. Почему люди до сих пор используют эту мочу устаревшую.
253 2342273
>>342255
что то есть адекватное на замену?
Только не нужно про "щас все в вебе" задвигать.
254 2342299
>>342273
Java + Swing, на которой написан Rider
255 2342301
>>342143
Как вы строки нумеруете? Через 10?
К примеру, так вот?
10 LET A = 0
20 FOR I = 1 TO 10
30 PRINT I
40 NEXT I
256 2342322
>>342179
Ни разу что-ли не писал низкоуровневый код? С кем я тут сижу, нахуй? Давай, подумай логически, какая ос была у каких-нибудь компуктеров в 50-е 60-е? Небось и перфокарт не видел. Пиздец.
257 2342327
>>342179
Та блин. Банальный бутлодер-то любой, кто мидлом себя называть хочет - должен был писать. Серьезно. Чем вы там занимаетесь-то? Жсоны в базу гоняет целыми днями, да с кабаном в курилке о премиях разговариваете?
258 2342328
>>342322
>>342327
Я раньше на Спектруме программировал. Хотел написать свою ОС для Спектрума 128Кб, где вместо гибкого диска был бы электронный диск, а потом это всё выгружалось единым дампом на кассету с магнитной лентой.
259 2342330
>>342255
Потому что для внутреннего пользователя нахуячить на впф - быстро и просто, быстрее и проще только на формах. А куче мелких и средних контор - дешевле нанять кодера, который им за условные 40-60к рубасов в месяц будет пилить то что им надо, чем платить условные 20к бачей в год за готовое решение, которое пилится под всех и ваши хотелки за огромный прайс и в порядке очереди.
260 2342332
>>342330
Я так работал после универа за 15к, а потом, когда написал им все программки, мне сказали, что нам больше программисты не нужны. Пришлось уволиться.
261 2342335
>>342332
Та я так же работал. Потому и сбежал в ОйТи контору. Просто предложений работы со стороны всяких мелких бизнесов таки довольно велико, да плотют там мало, культуры никакой, да и вообще, объективно говно там работать, но что поделать на первых парах.
262 2342418
Мне где-то неделю назад приснился сон, что вышла Mini-CLR и её можно установить даже на 8-битную ЭВМ и там программировать на сишарпе.
263 2342426
>>341759
Это весьма серьезный уровень, если всё так. Стронг-джун или мидл.
Большинство мидлов ни одной книжки, ни одного гайда до конца не прочитали. Просто изо дня в день копипастят со стековерфлоу из ответа с галочкой.
На самом деле, макаки любят причислять себя к интеллектуальной элите, обладающей недоступными большинству знаниями. По факту это не так. На каких-нибудь инженеров или врачей реально надо учиться многие годы. Готовый макакер же выпускается на рынок готовым к работе за 1-2 месяца, за это время он приобретает 80% своих знаний, которые ему когда либо пригодятся.
264 2342448
>>341959
Фленову, который написал Библию C#, не стыдно:
https://youtu.be/04WIzQOC-IM
265 2342471
>>342299

>Java


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

>Swing


Это может заменить разве что винформс.
266 2342472
>>342327
>>342322
Там в исходном сообщение предлагалось на собесе спрашивать чего делать если нет операционки. Какой еще може быть ответ кроме как сначала написать ОСь???

Или вот ещё из смешного:

>OSI, какие еще модели были


Что за дурацкий вопрос? OSI сама по себе услованя и абстрактная классифицация так что в альтернативах нет смысла и их никто не знает и знать не хочет.
267 2342493
>>342471
Винформс только под винду, а Swing полностью кроссплатформенный под 3 миллиарда устройств. Можешь и на Котлине всё писать, там можно также выбирать языки как в дотнете между сишарпом или визуал бейсиком.
268 2342517
>>342493

>Винформс только под винду


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

Avalonia замена да
Может быть jetpack compose для десктопа когда нибудь в далеком будущем

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

>Можешь и на Котлине всё писать


угу можно. только там жава рантайм внутри от которого не уйти. Я пишу на котлине, мне припекает от type erasure (конечно может это несовершенство IDE который не может понять суть, но мне какая разница, кто мне палки в колеса ставит)
269 2342567
>>342472

> Какой еще може быть ответ кроме как сначала написать ОСь???


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

>Что за дурацкий вопрос?


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

> так что в альтернативах нет смысла


Кхм, есть более простая модель TCP/IP, поверх которой считай веб(и не только) и построен, и да, это тоже сетевая модель. И знать ее таки имеет смысл.
270 2342570
>>342033
Сохронил, буду это потихоньку чекать помимо кодинга, чтоб хоть половину слов из написанного понимать
271 2342591
Как изучить ASP.NET? Сам сишарп выучил довольно легко, но вот ASP.NET не понимаю как изучать.
272 2342598
>>342591
Самый простой способ - попробовать написать свой ХТТП сервер с сокетов, затем подумать, а как мне генерировать странички, а как мне отдавать жсончики, а как мне роутить маршруты, а как права разные для доступа к ресурсам и т.д.
Ну, собственно, так вот оно учится просто, потому что пока ты пилил такой вот сервер - ты понял что за тебя фреймворк делает и +- представляешь как, остается найти как называется та хуйня что тебе нужна.
273 2342649
>>342598
Я раньше на РНР писал сайты, но тут что-то всё запутано.
Пишут типа давайте создадим модель и пишут класс, где куча свойств с гет-сет. И это модель? А откуда она данные берёт?
Дальше контроллер то же класс, который плавает сам по себе в коде и как он связан с хттп-запросами и другими действиями?
Представление вроде бы понятно, но раньше на РНР я формировал его программно, т.е. у меня была куча логики, которая по кусочкам собирала итоговую страничку, а не примитивный шаблон один на все случаи.
274 2342833
>>342649

>Я раньше на РНР писал сайты, но тут что-то всё запутано.


идентично 1 в 1
все RoR подобные фреймворки - близнецы братья
275 2342893
>>342649

> Пишут типа давайте создадим модель и пишут класс, где куча свойств с гет-сет. И это модель?



Да.

> А откуда она данные берёт?



Откуда угодно.

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



В ASP есть роутинг по именам контроллеров и методов внутри них, если пометить их атрибутами. Ещё можно роутинг для контроллера пробросить в маршрутизаторе. Куча вариантов.

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



В ASP страница тоже может собраться из кучи подшаблонов. Изучай вопрос более пристально. Монолитный WebForms забыт уже много лет, а Razor - очень крутая штука.
276 2342954
Как вы вообще на первую работу попадали? Я на трёх собеседованиях побыл, и там же пиздец, у меня на всех трёх спрашивали помимо Шарпа html, css, js, sql, git. Как это вообще всё выучить? Ты учишь sql - забываешь linq, учишь js - забываешь c#. Причём ладно бы ещё поверхностно спрашивали, так нет же, в залупу лезли, то им расскажи какой там база план для sql запроса составляет, вот прям из головы, в блокнотике, то как v8 машинный код из джава скрипта получает. Да типа я ебу что-ли? Еще и по миддлварам ебут, и по http заголовкам, словно я ебучая энциклопедия. На одном про кишки ef cora спрашивали и показывали такой css код, что я чуть не принял его за какое-то программирование. На другом просили НАПИСАТЬ какой il- код получится, словно я ебучий компилятор. Это всегда так было, или после геополитических пыняходовочек началось?
277 2342956
Я что реально не могу написать такой метод?
T Add(T x1, T x2) {
return x1 + x2;
}
И этот язык считает себя круче джавы?
278 2342958
>>342956
А какие гарантии что у T перегружен оператор сложения ?
279 2342972
>>342649

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


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

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


А вот тут - как раз писал бы с сокетов - понимал, столкнувшись с тем, что заебало тебя руками роутить запросы.
Если конкретно про это вопрос, то под капотом есть условный ApplicationBuilder, который при старте - смотрит что ты там решил использовать, плюс рефлексией из сборки достает классы который от ControllerBase наследованны, строит маршруты. Я немного упрощаю и в кучу сваливаю, сейчас майки решили по SOLID работать и этот ApplicationBuilder - разбит на хуилион разных Features, Router, Middleware и прочего.
Ну, а дальше - все просто, пришел запросик валидный, гоним по мидлварям, и так до нужного тебе метода, если метода не нашли - возвращаем 404.

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


Кхм. Так ведь для этого фреймворки и нужны, чтобы ты не занимался руками роутингом, проверкой кук и всем этим вот.
image.png31 Кб, 765x450
280 2342977
Постите ваши ебала
281 2342979
>>342956
Та в этом плане да, пиздец какая хуйня. Бесит жутко посли плюсов(((
Но мне тут пытались пояснить, дескать это не баг а фича, вообще это круто, что ты не можешь сделать просто простую хуйню, а тебе приходится делать сложно, ведь сто пудов у вас будет вредитель, который сломает все с таким вот подходом. Только мой взгляд на проблему такой: вы пишете тесты, если вредитель завелся в команде и после него тесты падают - проще от вредителя избавится, чем надеяться на то что язык не даст ему хуйню творить. А потому нужно бороться не с штуками, которые позволяют долбоебу стрелять себе в ногу, а с долбоебами, которые видя курок - наводят дуло себе на ногу и нажимают на него.
282 2342995
>>342977
100к - это всегда была норм зп для мидла, особенно вне ДС. х5 к среднегречневой зп в регионе, так-то.
283 2342997
>>342979
С твоим подходом, тебе в JS или в петухоне самое место.
C# - это строго типизированный язык. И то, что тебе не нравится, то ты этого просто не понимаешь. Это супер фича, это своего рода аспект красоты языка, которая впрочем не доступна простолюдину.
Конечно, в ряде аспектов применение дженериков долгое время не было логически завершенным, но теперь, с приходом Generic Math и abstract static методов и свойств https://devblogs.microsoft.com/dotnet/preview-features-in-net-6-generic-math/ эта фича становится ультимативной.
image71 Кб, 857x462
284 2342998
>>342954
Все это заучивается за пару недель. Это азы.
В IT до сих ломятся толпы, особенно сейчас, когда будущее Родины становится туманным, человеку хочется иметь международную профессию.
Там за забором вкатунов стоит на каждую вакансию по тысяче человек.
Зачем брать тебя?
Они подрючат по максимуму каждого и выберут лучшего.
Не значит конечно, что ты должен идеально ответить на всех их вопросы. Достаточно лишь, чтобы никто другой не ответил лучше тебя.
285 2343015
>>342995
Хрюша плз
286 2343051
>>342995
Какой потолок для сеньора?
287 2343058
>>342956

>И этот язык считает себя круче джавы?


Конечно круче. Нет type erasure и все проверяется на этапе компиляции.
image1,2 Мб, 799x780
288 2343069
>>343051
В компаниях где я работал практически всегда была на самом деле весьма витиеватая схема оплаты труда: оклад, месячная, квартальная премия, годовой бонус, стимулирующий пакет, какие-то проценты с чего-то там, но не более таких-то сумм и т.п. Но более менее гарантированная часть - это оклад + месячная либо квартальная премия. И если на это смотреть, без учёта хитрых и нестабильных надбавок, то в среднем по рынку картина уже многие годы более менее стабильна: джун - 50к, мидл - 100к, синьор - 150к, начальник отдела - 200к. И я бы сказал, что это очень хороший доход в любом регионе РФ, даже в Москве. Если столько платят в регионе - то это ты удачно попал, в устойчивую и современную компанию. Обычно платят-то меньше. Потому что ну такой тут рынок труда и такие тут зп. Если ты самый умный, ну вали в москву, всем будет лучше, ты найдёшь своё место, а оставшиеся будут более сговорчивы. А уехать могут без серьезных последствий ну может 1 из 5. Хотя в Москве наверное намного больше мест, кроме IT, где можно столько же заработать.
Кто-то подумает, что на такую зп к вам пойдут только середняки, а лучшие пойдут в другие компании. Только на самом деле это хорошо, если ты хоть что-то понимаешь в менеджменте. Бизнесу нужны легко заменяемые работники, чтобы уход одного человека создавал минимум проблем. Никто не собирается в условном Златоусте или Каменско-Уральске создавать прорывной стартап, изменяющий мир, тут IT - это просто обслуга местного кабаничества.
289 2343317
>>342954

> Как вы вообще на первую работу попадали


Пришел на завод, показал диплом, сказал что готов работать за миска риса, даже без кошка-жена. Отработал год - съебался на деньги и кошка-жена.
290 2343324
>>343069

> Никто не собирается в условном Златоусте или Каменско-Уральске создавать прорывной стартап, изменяющий мир


Я собираюсь. Что ты мне сделаеш?
291 2343443
>>343324

>Я собираюсь.


Ты московская корзиночка, жизни не видел и не знаешь.
Тут твоему стартапу дадут подрасти, набрать жирка, окрепнуть, а потом даже швабру показывать не придётся, даже вичовому сокамернику в СИЗО не придётся спускать штаны, чтобы ты всё оформил на уважаемого делового человека.
292 2343454
2ch я тут вкатываюсь, и вот вопрос как импрувить практическую часть? я ж не знаю какие там они в тырпразйе задачи делают, может кто знает где можно тестовых понарыть поделать или реальную задачу типо того core учу сейчас. Там выше ананас кидал свое тестовое, его сейчас делаю, есть чтото еще?
293 2343456
>>343443
Проблема в том, что люди бывают создатели и разрушители. Разрушитель конечно может отобрать стартап у создателя, но создатель просто создаст ещё один стартап, но уже в другой стране (телеграм), а разрушитель приведёт отобранное к упадку (вк).
294 2343618
Почему во всех книгах пишут, как круто, что дотнет кор сейчас кроссплатформенный, можно писать код в любой ОС? А потом говорят, давайте сейчас установим вижлу. Здесь вся хваленная кроссплатформенность и заканчивается.
295 2343630
>>343618
не используй вижлу
296 2343634
>>343618
Ты когда деплоить на сервер начнешь,тогда и поймешь в чем фишка. А IDE и система, в которой ты работаешь это вопрос комфорта. Можно и на линухсе на шарпе Asp net прогать в VS code.
297 2343645
>>343630
А что использовать?

>>343634
VS Code не такой функциональный как вижла. Там много нет.
298 2343730
>>343618
Как там без WSL и докера?
299 2343745
>>343730
Я не знаю что это такое. В книжках про это не пишут.
300 2343757
>>343618
Так фишка-то не в разработке, а в деплое. Писать можешь хоть на листочке.
mvc pages.jpg96 Кб, 940x649
301 2343805
Фриман пишет надо создать MVC View Page и уточняет, что не следует выбирать страницу Razor Page, которая не относится к MVC.
А у меня на выбор только Razor Page, а MVC View Page нет вообще.
1573367417701.jpg84 Кб, 648x426
302 2343838
Долучaйся!
303 2343868
>>343645
Сразу видно ньюбис, еще и спорит. 90% говна, которое предоставляет Visual Studio не нужно.
304 2343918
>>343618

>можно писать код в любой ОС


писать? или выполнять?
305 2344037
>>341359
>>340722
Вообще, кстати, я сделал и даже работает вроде.
Ограничил через лок возможность потокам соваться в начало конкретного линкед листа, чтобы только один поток мог читать/писать/смотреть цепочку.
Каждый поток имеет свой собственный пул свободных индексов в основном массиве чтобы разные потоки не совались на один и тот-же индекс.
Когда пул свободных индексов заканчивается у какого-то потока я через ReaderWriterLockSlim пополняю запасы свободных индексов, или расширяю массив. Вот про этот лок я что-то долго вспоминал.

Вопрос: А в шарпе ведь нет никакого массива с локами? Чтобы я мог сказать "ну вот на этом индексе залочь". Я могу конечно сгруппировать как-то обжекты которые я лочу, которые репрезентуют индексы, но не хотелось бы плодить сущности.
306 2344057
>>343618
Хуй знает. Я вот в свое время в универе принципиально делал лабы на Mono, ибо ебал я эту винду, и раз уж на сишарпе пишу, буду на моно делать. Нормально писал. В то время кстати еще не было коры. В те времена даже была такая штука как MonoDevelop для линукса, но имхо немного вырвиглазная, потому только vim, только хардкор.
Ну, а сейчас я чуть менее принципиальный, и .NET/.NET core - норм.
Студией никогда не пользовался.
307 2344063
>>344037
Не понял что ты понимаешь под массивом с локами.
В шарпе у любого массива есть Array.SyncRoot
Если ты хочешь делать лок на элемент по индексу бери и лочь этот элемент.
308 2344080
>>344063

>Array.SyncRoot


а нахуя, если есть тредсейф коллекции? Только узнал о этом SyncRoot
309 2344083
>>344063
ммм ну например я могу сделать
object[] myArray
напихать туда объектов и когда мне надо залочить конкретный индекс то я делаю
lock(myArray[index])
и тогда я лочу объект который как-то могу ассоциировать с конкретным индексом. но это по объекту на индекс. чето многовато.

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

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

и встроенные Concurrent коллекции сюда тоже не воткнуть, так как тут массив где только для его небольшой части нужен такой функционал по итогу
sage 310 2344090
>>344057
Ебанутый итт
311 2344093
>>344083
>>344083
нипони шо тебе надо, но почему тебе не подходит что-то типа
ConcurrentDictionary<int, ConcurrentQueue<T>>
312 2344095
>>344093
Хотя мож я тут и хуню написал
314 2344124
>>344083
Сделай уже собственную обертку над этим массивом, сделай у нее индексатор и в нем уже реализуй какие угодно локи. А снаружи у тебя будет обращение как к обычному массиву.
Но сдается мне, что твоя основная проблема не вот это вот все, а то что ты изначально неверную структуру данных выбрал для своей задачи и маешься хуйней.
image.png166 Кб, 980x371
315 2344149
>>344093
хотел написать некоторые причины но ты и сам из нашел. да и так ли это важно? думой в рамках задачи!

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

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

но а потом такая хуйня как-то разрослась до чего-то более самостоятельного. внезапно иметь коллекцию где я могу написать индекс и добавить к нему множество объектов это заебись. накидал туда ещё кода который бы собирал эту коллекцию в другого сорта пару массивов которые гораздо удобней линейно читать, добавил функционал для расширения базовых индексов, предикты и прочий вспомогательный код, теперь вот ещё чтобы в многопоточности работать могло и вообще заебись стало. довольно удобно собирать в ней какие-то однотипные данные в небольшие кучки.
image.png387 Кб, 500x500
316 2344166
>>344083
вообще, если подумать чуть дольше, то мне не нужен как таковой массив с обжектами. я могу просто держать коллекцию с занятыми потоками индексами и перед тем как щемится в этот индекс я могу просто проверить через залоченную коллекцию имеется ли он там.

интересно какие есть хитрые методы для проверки "есть ли число Х в маленькой коллекции"
317 2344188
>>334244
Чанки же.
Блейзор говно кста
Блейзор сервер - вообще пиздец
318 2344219
>>344188
Расскажи про блэйзер сервер
319 2344252
>>344149

>ну кстати а как сделать обёртку для lock?


Не над локом. А над массивом твоим или что-там у тебя за франкенштейн.
Делаешь класс, запихиваешь в него свою структуру данных, реализовываешь индексатор и через него уже пердолишь внутри любую свою логику. Внутри можешь сделать как хочешь, хоть через локи, хоть очередью, хоть еще каким вывертом. А снаружи ты будешь работать с экземплярами этого класса как с массивом, не заботясь о том, что он там внутри у тебя делает (если конечно все правильно сделаешь)
1581011566641.jpg84 Кб, 647x435
320 2344254
Долучaйся!
321 2344305
Считается, что WebForms были плохи тем, что скрывали всё от разработчика, но разве современный ASP.NET Core MVC Razor Pages Web API не делает тоже самое? Ты не пишешь html, а пишешь всякие магические штуки типа asp-action. Надо соблюдать жесткую структуру самого приложения, чтобы происходил обмен между компонентами. Если попытаешься сделать шаг в сторону, то всё перестаёт работать.
В том же РНР тебе дают простые кубики для взаимодействия с HTTP-протоколом, а всё остальное - это твоя логика. Делай как хочешь! А здесь надо заучивать все эти "приёмы" по написанию правильного приложения.
322 2344319
>>344149
Interlocked не пробовал?
323 2344367
>>344252
наркоман чтоли. очевидно что я это уже сделал? нахуй ты мне инкапсулировать это советуешь, если вопрос про реализацию?
как бы сам пишу, сам использую, если под капотом говна наделал, то говном и пользуюсь.

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

хотел лол использовать ConcurrentDictionary где была бы пара поток-индекс, но оказывается у него нету ContainsValue.
324 2344574
Начал учить LINQ
fuck this shit
325 2344700
>>344574
Охуенная тема. Научишься - будешь урчать, за уши не оттащишь.
326 2344705
>>344700
Да у меня голова треснет. Чувство что я выбрал стул с хуями, причем конскими такими.
327 2344745
>>344305
Все эти приемы сложные до тех пор, пока ты не вырастешь до мидла+. Кажется что "Хули тут всё за меня", да всё просто - майкрософт лучше тебя напишут ту же хуйню, которую ты будешь писать из раза в раз в каждом новом проекте. Вся структура максимально простая, а если ты хочешь углубиться то как это работает - source.dot.net

Это как методы Linq, ты их и сам можешь написать и обойтись даже без дженериков, только вот нахуя? Все залупки в асп настраиваются отлично и без мозгоебства, код стандартизирован и имеет одинаковую (почти) структуру во всех приложениях (т.е. времени на вкат в новйы проект на новой работе уменьшается), в то время как на пыхе каждый обрыган пишет так, как ему захочется и хуй кто там че поймет
328 2344753
>>344705
Люди.Выбрать(Головы).Найти(2344705).Треск();
Стулья.Выбрать(СХуями).Найти(КонскийТакой).Посадить(Люди.Выбрать(Жопы).Найти(2344705));
329 2344773
>>344753
вот вот. дикий оверхед с кучей аллокаций
330 2344798
>>344773
Байтоёб, спокуха.
331 2344801
>>344773

>дикий оверхед с кучей аллокаций


Ты, наверно, 1С никогда не видел. Там шляпа покруче будет.
332 2344819
>>344773

> оверхед


Вполне себе читаемо, да ещё и в одну строку.

> с кучей аллокаций


Ваще ПА ХУ Ю
333 2344836
>>344798

>Байтоёб, спокуха.


это ты GC скажи

>Там шляпа покруче будет


что где-то еще хуже - ничего не меняет

>Вполне себе читаемо, да ещё и в одну строку.


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

>Ваще ПА ХУ Ю


поэтому и имеем что современный софт на компах в 100500 ядер и триллионы йотабайт рамы и сверхбыстрыми ссд работают с такой же скоростью, как софт на вин 95 на 32 метрах рамы (и умеет не больше)
334 2344855
>>344836

>это ты GC скажи


Что ему сказать? Что он после первой же сборки мусора сожрет всю хуйню? Это он и без меня знает.

>что где-то еще хуже - ничего не меняет


Всё так.

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


Байтоёб, спокуха. JIT в Release всё по кайфу делает, дай бог там 10 кб наберется этого сахара.

>поэтому и имеем что современный софт на компах в 100500 ядер и триллионы йотабайт рамы и сверхбыстрыми ссд работают с такой же скоростью, как софт на вин 95 на 32 метрах рамы (и умеет не больше)


Не поэтому, а потому, что какой-то долбоёб не умеет в типы данных и вместо условного поиска по дереву просто сделал выборку Where из линка потратив 500000 наносек вместо 1000.
335 2344863
>>344855

>Что ему сказать? Что он после первой же сборки мусора сожрет всю хуйню? Это он и без меня знает


сожрет, а оно еще набежит. он еще сожрет, а оно еще набежит. а лучше бы спал и не просыпался пожрать.

>Байтоёб, спокуха. JIT в Release всё по кайфу делает, дай бог там 10 кб наберется этого сахара.


да елки палки. я говорю по оверхед ВЫПОЛНЕНИЯ. такая декларативность не дается бесплатно. Просто обычным формошлепам и "пишем бложик" на это плевать

> а потому, что какой-то долбоёб не умеет в типы данных


нет не поэтому. А потому что для всего берут фреймворки и либы где абстракция поверх абстракции поверх абстракции. Вон из-за этого веб стал тяжелым и тормозным - это отлично заметно что уже невозможно серфить на старых мобильных устройствах
336 2344870
>>344863
А когда через 100 лет все на квантовых пк будут капчевать так же будешь ныть хули на некроговне не работает ПО нового столетия?
337 2344905
>>334153 (OP)
Аноны, сделал лабу, хочу у вас спросить, правильно ли я её сделал.

Основной вопрос, главным потоком можно назвать то, что держит сам процесс (окно) программы?
338 2344928
>>344905
Блять, пришлось под таск все переделывать, потому что waitall для треда не нашёл.
Таск это тоже потоки открывает или это другая хрень?
339 2344977
>>344870
вот через 100 лет и приходи
а пока что закон мура перестает действовать
а с акумами так вообще полный швах

и да - по осталось прежним. браузер остался браузером и особо не изменился. Изменилось количество говна которое ему приходится выполнять чтобы открыть сайт.
340 2344984
>>344928

>waitall для треда не нашёл


Join() для каждого потока и есть WaitAll

>Таск это тоже потоки открывает или это другая хрень?


в классе Task там есть фабрика для старта, которая стартует либо на пуле либо отдельным потоком как и new Thread(), что делает new Thread() нужным только если нужен не фоновый поток

Ну и шоркат в виде Task.Run

Ну а сам объект Task никакого отношения к потокам не имеет.
image.png9 Кб, 645x159
341 2344989
Подскажите как это сделать вменяемо

В чем суть. На работе юзаю MS SQL к которому подключаюсь через SqlConnection.

А дома у меня нет MS SQL, поэтому делаю копию базы данных в обычном MS Access, к которой подключаюсь через OleDbConnection. (как вариант можно через SQLite - а там тоже свой класс)

using ( MyConnection connect = new(connectionReleaseStr))
Где MyConnection становится нужным мне классом.

Как это сделать? Да, знаю что есть всякие EE, но сложно, да и уже куча кода набита и работает - а работает, значит не трожь
342 2344995
>>344989
что сделать то? вот ты на пике сделал
разве что нужно юзать интерфейс IDbConnection
image.png33 Кб, 833x243
343 2345003
Что за наркомания?

Вылетает исключение при File.Copy с таким текстом... Да насрать мне что там SMB1, это мой личный комп, это моя личная локальная программа.. Как мне блядь скопировать файл?
344 2345004
>>344989
Ты хоть бы написал на чем ты пишешь. Я когда-то делал класс-обертку для контекста.
sage 345 2345011
>>345003
Отключи smb1 в системе
346 2345019
>>345011
В какой системе?

Если в той, где лежит файл - то нельзя, там и сам комп древний (с какой-то древней виндовс-сервер времен XP), и пара XP компов туда же лезут.
347 2345039
Дано: есть WPF. net core

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

Как сделать с минимальным велосипедством и время-забратами? Может что-то готовое есть (желательно бесплатное)
348 2345043
>>344984
Спс
349 2345112
Вот вы говорите: зачем тебе новые книги, можно и по старым учиться. Сейчас создал пустой ASP.NET проект, а там всё по другому, чем в книге. Ничего сопоставить не могу даже. Как учиться в таком случае?
350 2345229
Прохожу базово-базовый курс по решеткам. Предлагается такой пример кода по сравнению строк:
string str1 = "Strasse";
string str2 = "Straße";

bool areEqual = string.Equals(str1, str2, StringComparison.Ordinal);
Console.WriteLine(areEqual);
areEqual = string.Equals(str1, str2, StringComparison.InvariantCulture);
Console.WriteLine(areEqual);
areEqual = string.Equals(str1, str2, StringComparison.CurrentCulture);
Console.WriteLine(areEqual);

В первом варианте должно быть false, в остальных двух true. Но Мелкософты поменяли библиотеку локалей NLS на ICU в .NET 5.0 в угоду кроссплатформенности и теперь везде получается false. Прогуглил весь Гугл и нашел только вариант с включением NLS обратно - тогда все работает, но при этом теряется кроссплатформенность. Что надо сделать в текущей версии .NET, чтобы и с ICU буква ß раскрывалась как ss и во втором и третьем варианте получалось true?
351 2345344
Есть какие-нибудь годные обучающие видео у русскоязычных ютуберов ?
352 2345345
>>345112
то тралинг был
353 2345355
>>345229

>Что надо сделать


Забить хуй.
Определить базовый набор символов, на все что за него выходит кидать отлуп.
Пусть на отдающей стороне ебутся с нормальизацией данных.
354 2345386
>>345355
Так можно вообще на все хуй забить, но я же таким образом ничему не научусь.
355 2345391
>>345386
кто вообще решил что ß == ss
бред какой то
поэтому зачем возвращаться к бреду если новый вариант правильнее
356 2345400
>>345391
Почему sizeof(System.Char) == 2, а Marshal.SizeOf(System.Char) == 1?
Гуглю. Вопрос популярный. Проблема в том, везде копипастят однотипные тупорылые ответы, типа:

>Marshal.SizeOf returns the size after the type has been marshaled, whereas sizeof returns the size as it has been allocated by the common language runtime, including any padding.



Как это вообще работает, когда банально (int)'ж'=1078? Это вот вообще никак и нихуя не влазит в 1 байт.
357 2345402
>>345400
Вопрос был не этому >>345391, а самостоятельный.
359 2345413
Вопрос по asp.net core / ef core. Будет ли дополнительно выделяться память на ef объект если он вытягивается из базы в контексте другого пользователя? Т.е. условно два и более пользователя в условно один момент времени инициализируют объект по типу:
var row = dbContext.TestTable.AsNoTrackable().First(); .
Будет ли это разные области памяти или будут ссылка на одну? Если разные - можно ли как-то реализовать так что бы инициализировалась только одна область в памяти? Все записи из бд условно ридонли и меняться во время работы не будут.
inb4: грузи сразу всю таблицу в память.
360 2345491
>>344863

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


Какая даётся дешевле?
Поподробнее с этого места, плиз.
1651080637882.png43 Кб, 775x423
361 2345499
>>345019
Значит наоборот включи СМБ1 в своей новой системе. В десятке. Самостоятельно найдешь? Или скриншот кинуть?
362 2345520
>>345491
такая же, но с оптимизациями
например перегрузка ToList, которой можно передать размер если его знаешь.
Или же учитывать, что может быть не только IEnumerable, а сразу списки. Вон внутри ToList используется интерфейс IIListProvider, который дешевле позволяет делать, но разве обычный List<T> хоть где то реализует этот интерфейс

ну а для особо упоротых что то типа https://habr.com/ru/post/648529/
363 2345521
>>345520
Спс, почитаю.
364 2345554
Вопрос. Хочу ставить на паузу несколько потоков до достижения нужной мне кондиции счётчика. сейчас написал:
while (Interlocked.Read(ref counter) > 0)
Thread.Sleep(1);
Пока в других потоках дёргается этот counter.
А какие ещё альтернативы? как сделать то-же самое но через WaitHandle, например?
366 2345615
>>345594
блин на самом деле всё здорово, но он же сигналит при достижении 0 если судить по документации.
а у меня может быть 0 с самого начала.
367 2345632
>>345409
Да, мощный ответ, спасибо.
На русском глубокие ответы со знанием дела. На английском только мусор, копипаста документации без осмысление. Будущее программирования за РФ.
368 2345658
>>345615
и он сразу будет в нужном состоянии. из доки
"Если initialCount значение равно 0, событие создается в сигнальном состоянии."
image197 Кб, 1619x1215
369 2345679
Для быстрой, но широко кастомизируемой обработки строк использую function pointers, чтобы был прямой, а не виртуальный вызов.
С указателями на статические методы всё вроде просто.
Но можно ли как-то через fixed или ещё как получить указатель на метод инстанса?
370 2345715
>>345679
Зачем?
371 2345722
>>345679

>не виртуальный вызов


как будто у string он виртуальный.
372 2345726
Почему в первом методе память не аллоцируется, а во втором - аллоцируется и скорость на порядок ниже?
373 2345735
Допустим я изучил синтаксис, а что дальше ?
374 2345737
>>345735
И команды, познакомился с ООП и тд*
375 2345738
>>343805
Задолбался, ни один пример не могу сделать по книжке Фримана, ASP.NET полностью поменялся и старые примеры не работают, выдают миллион ошибок.
376 2345742
Оказывается у Фримена уже вышла книга по ASP.NET Core 6, а наши не переводят, ленивые жопы!
377 2345743
>>345726
ну если не ошибаюсь, то в первом случае компилятор просто сгенерит ламбду и впихнет ее как статик метод в этот же класс (потому что нет захваченных переменных инстанста), а во втором будет каждый раз создавать делегат
378 2345751
Заметил, что в современном сишарп коде отказались от конструкторов и задают значения напрямую свойствам. Не кажется ли вам, что это нарушение принципов ООП? Ведь в таком случае мы взаимодействуем не как с объектом, а как со структурой. Наш код становится не ООП, а старым процедурным кодом.
В настоящем же ООП стиле надо стремится всё делать через конструкторы, передавая более маленькие сущности большим, как бы оборачивая простой функционал более сложным. К примеру,
A a = new A(
new B1(
new C()
),
new B2(
new D1(), new D2(), new D3
)
);
a.run();
379 2345754
>>345751
yegor256 (Yegor Bugayenko) вы тредом ошиблись. Жабисты двумя этажами ниже.
image.png23 Кб, 1097x175
380 2345756
Аноны, Разве атрибут ForeignKey не значит что ЕФ должен получить сущность из дб с этим ключем?

Или я не понимаю как это работает?

Почему он налл, и как это фиксить?
381 2345760
>>345751
никто от конструкторов не отказывался. это бред. родной DI контейнер от майков вообще в принципе не умеет в свойства.
Просто сделали сахар для случаев когда нужно использовать именно поля - удобнее и защита от потенциальных JIT проблем.
382 2345767
Кто-нибудь вообще понимает эти лямбда-выражения? Я вот не понимаю как они работают и нафига их придумали.
383 2345772
>>345767
все понимают. чего там не понимать то. По факту просто анонимные функции без имени - только параметры и тело.
а придумали чтобы на каждый чих не создавать отдельные методы. Попробуй LINQ с методами писать - запаришься
не говоря уже о том, что лямбды можно кешировать
384 2345788
>>345772
Откуда там параметры берутся? В обычной функции мы делаем явный вызов и передаём ей значения для обработки, а тут какие-то левые параметры всплывают и куда потом результат идёт и что является результатом?
385 2345794
>>345788

>Откуда там параметры берутся?


из сигнатуры делегата же.
где то что то принимает допустим Func<string,char, int>
из чего следует, что это сигнатура метода принимающего строку и чар и возвращающий int
ему можно скормить метод
int <MethodName> (string a, char b) - это сама себе сигнатура подходящая под Func<string,char, int>

или же лямбду
(a, b)=>42

тут типов нет, но лямбда не может существовать в вакууме. Она ассоциируется с какой то сигнатурой.
ты не можешь написать var func = (a, b)=>42, ведь так компилятор реально не знает что за a,b
поэтому только так
Func<string, char, int> func = (a, b) => 42;
то есть func требует чтобы ей присвоили что-то подходящее под сигнатуру Func<string, char, int> (делегаты же)

Так и при передаче лямбды в метод. Там есть ожидающая сигнатура. и типы будут взяты из сигнатуры Func<string,char, int> (поэтому компилятор подсказывает типы) и если лямбда не нарушает (допустим возвращает не int, а bool), то все будет работать
386 2345825
>>345715
Для перформанса.

>>345722
У делегатов он виртуальный. Когда на каждый char будет вызываться 2-3 таких метода, обработка строк будет мягко говоря не быстрой.
387 2345843
Сап, двач. Есть ли какая-то библиотека или встроенное решение для сериализации объектов в виде content`а для http post/put/patch, чтобы самому каждый раз не писать new StringContent(value, name), а что-то вроде этого https://codeshare.io/r9xw0K код писался прям в codeshare с придумками из головы. Я просто хотел отобразить суть
388 2345858
>>345788
Попробую даже понятнее

Вот кто-то принимает Func<int, int, bool>
Конечно ты можешь передать ему метод

private bool Foo(int a, int b) => a>b;

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

Поэтому рождаем метод на месте. Сигнатура у нас уже есть - Func<int, int, bool>, а значит нам нужно предоставить реализацию. При этом компилятор знает количество и типы параметров и тип результата. И область видимости не нужно. И имя - делегату на имя плевать.

Поэтому просто выбрасываем все лишнее для реализации
private bool Foo(int a, int b) => a>b;

и что же остается...

(a, b) => a > b;
389 2345860
>>345843
хз о чем ты, но похоже тебе нужен просто RestClient, только не такой декларативный как refit, а что-то вроде удобного https://github.com/jgiacomini/Tiny.RestClient
390 2345868
>>345679
>>345825
Как оказалось, существует метод:
Marshal.GetFunctionPointerForDelegate
Он легко позволяет получить указатель на метод инстанса. Например, вот так:

Func<char, char> del = Some_instance_method;
void fptr = Marshal.GetFunctionPointerForDelegate(del).ToPointer();
delegate
<char, char> pointer_to_some_instance_method = (delegate*<char, char>)fptr;

Этот код валиден. Но проблема в том, что нигде нет оператора fixed. Как GC поймёт, что не нужно пока удалять делегат, или же тот инстанс, на метод которого он ссылается???
391 2345871
>>345794
>>345858
Дак откуда берутся a и b?
392 2345878
>>345871
Func<int,int,bool> это сигнатура с 2мя параметрами. На имена параметров ему плевать. Типы он сам знает.Так что a, b в ламбде берутся оттуда же, откуда и в методах - просто придумываешь как назвать параметры.
393 2345889
>>345868
никак не поймет. поэтому в справке к Marshal.GetFunctionPointerForDelegate есть заметка

"Делегат необходимо вручную не собирать сборщиком мусора из управляемого кода. Сборщик мусора не отслеживает ссылки на неуправляемый код."
394 2345891
>>345878
А как туда конкретные значения попадают? Обычную функцию мы вызываем явно, а тут как она вызывается?
395 2345898
>>345891
точно так же, как попадают в метод, если мы передаем метод.

>Обычную функцию мы вызываем явно


не вызываем мы ее явно. Кто-то ждет Func<,,> и мы передаем ему метод, но этот кто-то работает с делегатом. В этом и есть смысл - делегат он как интерфейс, только для методов. И мы можем подсунуть ему существующий метод или создать анонимный на месте (лямбда)
396 2345913
>>345735

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


1. Сделай калькулятор.
2. Сделай КРУД-менеджер домашних финансов.
3. Сделай бочку (игра про пилотов-асов).
4. Выложи всё сделанное на гитхаб, добавь ссылку в своё резюме.
5. Воруй, убивай, еби гусей, жди ответного гудка.
398 2345932
>>345756
include сделай.
399 2345935
>>345825

>Для перформанса.


Бенчмарки покажи.
image91 Кб, 647x510
400 2345995
>>345935
Для моего кейса разница 20% в пользу указателей на функцию по сравнению с делегатами.
Не в разы конечно, но тоже стоит иметь ввиду.
https://pastebin.com/2MpdzDTq
401 2346033
>>345932
Спасибо.
402 2346138
>>345923
Вставил код из бенчмарка. В каком месте DelegateArrow() там без аллокаций, если он делегат аж через целый дополнительный класс разворачивает?
403 2346256
>>346138
и кеширует его в статическом поле <>9__0_0
404 2346257
>>344574
А что там сложного-то?

Если классический - то это тот же SQL, только селект не в начале, а в конце.
Если тот что через Fluent, ну, тоже не понимаю что тут такого страшного, если каким-нибудь fluent-билдером пользовался, то суть должна быть ясна.
А по сути - ну вот ты бы без линку писал:
public IEnumerable<T> Where<T>(IEnumerable<T> source, Func<T, bool> predicate)
{
foreach(var i in source)
if(predicate(i))
yield return i;
}
405 2346264
>>345751
Кто отказался и где?
Или ты предлагаешь в анемичной модели и DTOшках конструкторы лепить, чтобы сериализаторы и мапперы - просирались, а тебе приходилось это говно руками хуячить?
В остальных случаях - все и везде юзают конструкторы. То что обычно он один - это другой вопрос.

Ну серьезно. Я не понял с чего ты это взял. Я вообще за последние лет 5-7 нигде не видел, чтобы люди в своем коде что-то типа:
myApplicationContext.Logger = serviceProvider.GetLogger();
myApplicationContext.Repo = serviceProvider.GetRepo<User>();
А раньше такая хуйня - повсеместно была. И хорошо если такая, а не хуйнть синглтон и уже в самом классе тащить все что хочется через него, ууу, бля, как вспомню...
406 2346274
>>345843
Не понял зачем.
Тем более что в примере того что ты приводишь - это выглядит как обычный жсон, который ты буквально можешь вот без лишних движений получать апи-контроллерами.

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

[ApiController, Route("products")]class MyController: ControllerBase{
[HttpPost]public void PostProduct(ProductModel model) => Console.WriteLine(model.Username);
}
407 2346315
Можно ли из C# открыть браузер по умолчанию и отобразить в нём простую статичную html-страницу из сгенерированного внутри кода стринга?
408 2346372
>>346315
нужно создать временный файл, куда все записать и запустить как ShellExecute путь к этому файлу file:// и он откроет в дефолтном браузере
409 2346379
>>346372
Можно без временных файлов, открыть сервачок на локалхосте и передать шеллу ссылку на него.
410 2346389
411 2346400
>>346274

> получать апи-контроллерами


Да. Но мне не нужно получать. Мне нужно давать. Я не понимаю как составить post/put/patch запрос со сложным content`ом
412 2346409
>>346400
Ладно, я разобрался. В либе автор накрутил хуйни поэтому я не мог понять как фиксить. А это просто жсон
413 2346466
>>345913
6. Вкатывайся в пятерочку
flenov.jpg135 Кб, 1280x720
414 2346490
Каких видеоблогеров по сишарпу вы смотрите?
415 2346496
>>346490
Джефа Фрица
416 2346508
>>346496
Дак там не на русском
417 2346598
>>346379
Да вот этот способ интересует.
Где-то, возможно даже здесь, видел код в одну строчку, без всяких созданий файлов, который запускал браузер и выводил hello world из консольного приложения C#.
Но не могу теперь найти.

>>346372
1. Винда иногда рандомно блочит программное создание и перезапись файлов, ну может в мои документы и roaming ещё можно из васянопрограммы срать, а больше никуда нельзя.
2. Мусорить файлами, а возможно даже изнашивать ресурс SSD, мне не очень нравится.
418 2346608
>>346598
в темп же писать. для этого эта папка и придумана

А запускать вебсервер - это HttpListener расчехлять. Ну или kestrel, но кто знает как его запускать в десктопном приложении как просто дополнительный модуль, а не как вот асп.нет сделано? никто не знает. Я видел способ на гитхабе, да потерял.
419 2346975
>>346490
Nick Chapsas
Хотя какие нахуй виоблогеры? Ты по ним не вкатишься, это пузатымм сениорам когда скучно можно посмотреть
420 2346979
Это для таких долбней-вкатунов как тут некоторые минмал апи придумали?
Или чтоб с еще большей скоростью плодить новые микросервисы, которые отваливаются как сучки и это называют "фолт толеранс"?
16500944544170.mp49 Мб, mp4,
560x944, 0:24
421 2346981
две рюмки и уже норм
жаль что потом и вся бутылка до дна не приблизит , но все равно выпьется
422 2347037
>>346979
Да, иди на Коболе писать, любитель бойлерплейта ебаный.
423 2347110
>>347037
малышок, там для тебя дядки нарот.ру придумали. Иди девелопить
424 2347275
>>347110

> нарот.ру


Проект закрыт уже лет 10. Из какой криокапсулы ты вылез, дед?
425 2347449
>>346975
Мне нужно для сохранения мотивации
16412080862440.png347 Кб, 1080x1243
426 2347455
>>346979
Чтобы конкурировать с жопаскриптом.
Будущее — оно такое.
427 2347462
Сапч {\u0022data\u0022:{\u0022episodes\u0022:14}} почему System.Text.Json.JsonSerializer.Serialize(object) подсовывает мне \u0022 вместо кавычек? И как это исправить?
429 2347667
Будьте добры, объясните как выбрать столбец/строку в контейнере, куда я добавлю кнопку, а то получается что они добавляются по индексам 0 0.
430 2347688
>>347667
Grid.SetRow(Array, RowIndex);
Grid.SetColumn(Array, ColumnIndex);
431 2347810
>>347475
Не. Не помогает. Никакие манипуляции с encoding не дают нужного результата
432 2348082
Может ли битард написать симфонию partial view заменить editor template? Для темплейта я могу использовать Html.EditorFor(vm => vm.Penis), но если я напишу <partial model=Penis...>, то не сработают атрибуты валидации на клиенте, что в общем-то очевидно. Могу я как-то патиалу намекнуть, что свойство которое у него в модели часть большей вьюмодели, обвешенной атрибутами?
image.png832 Кб, 905x1035
433 2348526
Вопрос по блазору.

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

И есть джс который должен что-то с ней сделать.
Каким образом блазор должен узнать что конкретный див уже отрендерил на станице и можно безопасно вызывать функцию которая на нем оперирует?
434 2348899
Привет, мне кажется 에스파 больше подходит для аватара, чем Everglow.
435 2349188
Что за парашная аватарка в целом? Какой нахуй кпоп? Вы ахуели там? У меня есть два условия:
1. Добавьте .NET 6 и C# в шапку
2. Добавьте нормальную аватарку, а не этих блядей крашеных попущеных
436 2349248
>>349188

>1. Добавьте .NET 6 и C# в шапку


Сам добавь.

>2. Добавьте нормальную аватарку, а не этих блядей крашеных попущеных


Сам добавь.
437 2349254
>>349248
Нет. Я только указывать могу, а вы перекатчики перекатывайте нормально.
438 2349443
>>349254

>а вы перекатчики


Торжественно принимаем тебя в перекатчики. Теперь можешь не только указывать.
photo2022-04-2208-25-17.jpg133 Кб, 1280x922
439 2349459
Судя по картинке, на дуднете пишут петухи
440 2349465
>>349188
Ты офигел kpop-богинечек оскорблять!?
441 2349467
>>349465
viabushniy govnoed spok
442 2349470
>>349467
Виабу - это кто любит японское, а kpop - это корейское
443 2349478
>>349470
sorta govna
444 2349565
БЛЯТЬ как на азуре зарегаться, если не принимает карту?
Аноним 445 2349568
>>349565
вбив.рф?
446 2349690
>>344057

> только vim, только хардкор


А там можно навести мышку на класс или на метод и получить всплывающей подсказкой краткую документацию по использованию? Нет? Ну вот и пшёл нахуй.
447 2349695
>>343918
Выполнять дотнет-код можно только в одной "ос" на дотнет-платформе. А вот сама платформа доступна сейчас на нескольких ос. Это интерпретатор. Это скрипты. Хоть их джит-компилятором назови, хоть виртуальной машиной. Суть та же, что и во времена хтонических пращуров на фортране.
448 2349697
>>349695
Получается на линуксе запускается эмулятор винды и в нём выполняется дотнет-код?
449 2349699
>>349697
В некоторых моментах, да. Прям чувствуется винда. Виндовс-вэй.
image.png38 Кб, 441x276
450 2349852
Шарпаны, что я делаю не так? При задании значения переменной в коде все работает ок, а через Console.Read() какая-то поебень выходит, пик стронгли релейтед
451 2349864
Какой фреймворк учить: ASP.NET Core, ASP.NET Core MVC или ASP.NET Web API?
image.png21 Кб, 519x124
452 2349881
>>349852
Все понял, Console.Read() возвращает char, который при конвертировании в double конвертируется в ASCII-код символа. Console.ReadLine() возвращает string, которая уже конвертируется нормально
453 2349887
>>349881
Эз, а я только ответ хотел написать
454 2349902
>>349887
Да я чет думал, что разница между Read и ReadLine в том, что ReadLine после ввода делает перенос строки, а Read нет. Ну типа как Write и WriteLine, а оказывается нихуя не так
455 2349995
>>349864

>Какой фреймворк учить: ASP.NET Core, ASP.NET Core MVC или ASP.NET Web API?


ASP.NET Core включает в себя MVC и Web API.
456 2350005
>>349995
Почему обычный C# без проблем изучается, а этот ASP.NET какой-то взрыв мозга? Какие-то конфигурации, маршрутизации, логирование, хуирование. И это всё ещё ни как не приближает к собственно к самому написанию приложения, где ещё надо соблюдать магию соглашения, которые работают по левой пятке разработчиков.
Когда пытаешься написать свой сайт, то каждый раз спотыкаешься, потому что просто не знаешь как это сделать, а чтобы понять как надо изучать 100 страниц мануалов. А потом следующую фичу и ещё 100 страниц. В итоге знаешь дофига всего про кишки ASP.NET, но сайт так и не написан.
Кто вообще этот бред придумал? Может ему лечится надо, а не фреймворки разрабатывать.
as.png67 Кб, 767x689
457 2350095
Подскажите, пожалуйста, как исправить ошибку
458 2350150
>>349864
Написано - Children - это не статическое свойство, и может применяться только с экземпляру класса (что логично, откуда у статичного класса потомки?)
459 2350173
460 2350178
>>350005
Потому что всё это облегает жизнь когда ты начинаешь понимать это. Сам ведь наверняка ахуевал с линка и его удобности, тут тоже самое. Вместо говна из жопы на пыхе майкрософты дали нам костяк и основу того, как выглядит веб приложение. В итоге код написанный для веб приложения может повторно использоваться в каком-нибудь десктоп приложении.
461 2350215
>>349695

>А вот сама платформа доступна сейчас на нескольких ос


WPF/UWP тоже часть дотнет. как мне выполнить их на линукс?
462 2350221
>>350095
у тебя есть экземпляр!!! Canvas на форме ( у него еще имя вида Name=""/x:Name="" в XAML)- в него и добавляй. Чего ты в статический класс добавить пытаешься.
463 2350230
>>349690
Ну, при остром желании - можно.
Только вот нахуя? Если ты нормальный кодер - чужое апи ты изучаешь перед применением, а свое пишешь так, чтобы никаких подсказок нахуй нужно не было.
Серьезно. Вот я спизжу в описании своего апи или тупо забуду в ходе фикса обновить описание, ты заюзаешь, обосрешься, полезешь гуглить. Если бы был нормальным человеком - ты бы сразу загуглил что за апи, как работает и миллион подводных камней еще до применения запреметил и писал бы нормально. А в командах так вообще писать комменты - дурной тон.
464 2350254
>>350215
Нет не часть.
У дотнета есть спецификация. WPF-UWP-Forms - это технологии которые поверх нахуячили. Как и ASP кстати, но ASP - портировать таки ЧУТКА легче, чем разбираться с зоопарком графических апи.
А так - ну, ворд на плюсах написан, хули я не могу ворд на линуксе запускать? Плюсы не кроссплатформенные штоли?
465 2350288
>>350095

> Button[] Array = new Button[10];


Ммм... Калькулятор!
466 2350295
>>350254

> разбираться с зоопарком графических апи


Нынче графические тулкиты собраны по уму. Сразу генерируешь шаблон исполняемого файла, в котором указано, что на винде подключить WPF, на линуксе GTK, на маке - что там маковское, на андроиде - что там андроидовское.
И всё.
Затем ты описываешь платформонезависимое окно, которое собирается как библиотека-зависимость для вышеуказанных частей общего шаблона. Ваще заебись придумано. А майкрософт так не смог.
467 2350323
Кто нибудь знает, от чего таймеры работают неровно?
Я про System.Windows.Threading.DispatcherTimer
Выглядит как рывки, хотя если в абсолютно такой же ситуации запустить через бесконечный цикл в делеем, то все збс. Что такого в этих таймерах и для чего они нужны?

Делаю так:
private void Begin()
{
DispatcherTimer Timer = new DispatcherTimer();
Timer.Interval = new TimeSpan(5);
Timer.Tick += Update;
}

private void Update()
{
Debug.Print(Mouse.GetPosition(Canvas1).ToString);
}


На самом деле я бейсикоблядь и завидую, что вот эта хуйня:
AddHandler Timer.Tick, AddressOf Update
у вас пишется так:
Timer.Tick += Update
Честно, заебался простыни писать, особенно когда надо подписаться на пятерку эвентов, а потом еще и отписаться.
468 2350324
>>350323
... Еще забыл стартануть таймер в коде, ну вы поняли.
470 2350395
>>350360
Правильно я понял, что таймеры нужны для долгосрочных работ, где важно малое влияние на батарею и частота должна быть начиная от 1мс и выше?

А если надо что-то быстрое и точное, вплоть до тиков, то лучше юзать бесконечные циклы.
471 2350400
>>350254

>WPF-UWP-Forms - это технологии которые поверх нахуячили.


ну так вот и "писать код" это технологии которые поверх

>>350323

>от чего таймеры работают неровно?


из-за того что винда не RTS и таймеры объединяются в очередь для оптимизации, а не каждый независим
472 2350453
>>350230

>Если ты нормальный кодер - чужое апи ты изучаешь перед применением


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

>А в командах так вообще писать комменты - дурной тон.


Ой, а вот за это - сразу нахуй.
Мое любимое развлечение придя в новую команду, доебывать старожилов на тему "а почему тут вот так сделали, а не так", "а чем отличаются вот эти два метода", и т.д. Ну и хуесошу их на тему того, что "одна строчка коментов на тему почему здесь так, а не иначе, сэкономила бы тебе целый час пиздежа со мной."
Коменты не нужны там где идет простая алгоритмика, а вот там где у тебя предметная или бизнес-логика, то ты охуеешь в этом говне разгребаться. Особенно если аналитики на пару с заказчиками мудаки и для них проблема составлять внятное ТЗ и инструкции.
473 2350463
Шарпаны, я мудак и я пилю круды винформах (ибо так мне намного быстрее), а само приложение на асп .нет 6. Поясните за winforms core. У меня в главном приложении ef core, со стандартными identity aspNetUsers. Я могу к своим крудам подключить либу Microsoft.AspNetCore.Identity и менять им через PasswordHasher пароль?
474 2350472
>>346490
Я вот его и смотрю. У меня наклевывалась виза в Канаду, думал легко там устроиться в первую попавшуюся компанию .net разрабом за еду, но в одном видосе он рассказывает, что в Канаде дохрена безработных прогеров и дикая конкуренция.
475 2350512
>>350472
А когда ты кому-нибудь признаешься, что пишешь на шарпе, то у тебя не возникает чувства стыда?
476 2350531
>>350512
Раньше возможно, но после появления Core шарп дал пососать всем конкурентам, в СНГ он уже обошел Джаву. Главное, что за спиной шарпа стоит величайшая ИТ компания вселенной.
477 2350541
>>350531

>в СНГ он уже обошел Джаву


Чем же, блять? Вы можете сидеть в манямирке, в котором ява - говеный язык, фи-фи-фи, но уж в СНГ количество вакансий на яве и зарплата явистов побольше будут, чем у шарпистов. Это просто факт нахуй. Да и по миру в целом это тоже так, вроде.
478 2350564
>>350541

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


что не отменяет факта что ява говно
и будучи жавистом - будешь жрать это говно бочками без вариантов.
479 2350587
>>350531
Недавно встретил знакомого на улице и он спросил чем сейчас занимаюсь. Я почему-то не решился сказать, что изучаю шарп и ляпнул, что изучаю джаву, хотя на самом деле учу шарп.
480 2350626
>>350587
А взявшие Иисуса отвели Его к Каиафе первосвященнику, куда собрались книжники и старейшины. Петр же следовал за Ним издали, до двора первосвященникова; и, войдя внутрь, сел со служителями, чтобы видеть конец. (…) Петр же сидел вне на дворе. И подошла к нему одна служанка и сказала: и ты был с Иисусом Галилеянином. Но он отрекся перед всеми, сказав: не знаю, что ты говоришь.
481 2350627
>>350587
Когда же он выходил за ворота, увидела его другая, и говорит бывшим там: и этот был с Иисусом Назореем. И он опять отрекся с клятвою, что не знает Сего Человека.
482 2350628
>>350587
Немного спустя подошли стоявшие там и сказали Петру: точно и ты из них, ибо и речь твоя обличает тебя. Тогда он начал клясться и божиться, что не знает Сего Человека. И вдруг запел петух. И вспомнил Петр слово, сказанное ему Иисусом: прежде нежели пропоет петух, трижды отречешься от Меня. И выйдя вон, плакал горько.
483 2350648
>>350564

>ява говно


Похуй. О том, какой язык лучше, пиздят двачата и швабродебилы, устраивая массовые холивары. Адекватному человеку вообще похуй, как часто новые обновления, какие там фичи, какой там перформанс, критерий один - многаработы и многаденег. И джава ебет шарп в этом плане, даже вы это не отрицаете. Ну вот и все нах.
484 2350742
>>350648
Конкуренции тоже много. Миллионы индусов, китайцев, СНГ итд итп знают Java идеально.
485 2350743
>>350742
С недавнего времени еще и негры добавляются
486 2350760
А можно при наследовании класса, дополнить метод или свойство базового класса? Ну т.е. чтобы оно делало тоже самое плюс кое что еще.

Например, я хочу наследовать Controls.Grid, но чтобы при изменении свойства .Width автоматом менялось свойство .Height. Я не ебу как они там под капотом работают, чтобы переопределить целиком.
487 2350788
>>350760
В переопределенном методе вызываешь метод родителя, а после этого пишешь свой код
488 2350790
>>350760
>>350788
Оверрайд метода Foo()
{
base.Foo();
// Your code
)
489 2350817
>>350790
Спасибо. Блин, свойство не является Overridable.
Сделал через Shadows.
490 2350836
>>350648

>какие там фичи, какой там перформанс, критерий один - многаработы и многадене


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

Особняком стоит котлин. Самому дико нравится его выразительность (но не рантайм ибо это жава рантайм), но мы то говорим о жаве
491 2350846
>>350288
На котором только цифры, математических операций нет. Эксклюзив для зумеров, миллионы скачиваний, видосы на тик-токе.
492 2350908
Вчера запустил студию, обнаружил, что nuget не работает, соединение с api.nuget.org падает с ошибкой. В итоге два убитых вечера на поиск решения проблемы. Ебучие админы нюгетовского сайта, гондоны обоссанные, чтоб они со своими изменениями настроек прямо на рабочем месте жидко обосрались. Пидорасы.
493 2350916
>>350846
Ты что, сейчас модно по отдельному приложению на каждую цифру с синхронизацией через облако.
494 2350926
За сколько времени вы выучили ASP.NET?
495 2350946
>>350453

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


Угу. И в коменте - пиздежь, потому что коммент писался под первый кейс, а спустя 100500 итераций - от того кейса нихуя не осталось.
Тем более что ты спизданул про предметную логику - на все ответ будет: потому что вот такой кейс, вот тебе ссылка на тикет. Все.
И да, если ты не способен писать нормальный код, который понятен без коментов, то ты еблан. Коменты допустимы исключительно в случаях хаков и всяких костылей по обходам багов, в остальных случаях их пишут только хуесосы и студенты.
496 2350969
>>350926
Его нельзя "выучить". Огромный фреймворк.
497 2350972
>>350926
За неделю
498 2351016
>>350846

> На котором только цифры


Хороший сарказм, но не наблюдательный. Я в юные годы освоения кодинга, как этот анон тоже такие калькуляторы делал. Одни массив на кнопки, с одним обработчиком, второй массив на операции, с другим обработчиком.
Дааа... Были времена.
499 2351025
>>350323

> я бейсикоблядь и завидую


> Честно, заебался простыни писать


Первый шаг к становлению на путь истинный. Что тебя останавливает? Тупо привычка. Вместо

> sub foo()


> end sub


пишешь

> void foo()


> { }


Это же так просто!
А как божественнен сишный for! Хоспаде! Вызывает мгновенное привыкание!

> for ( объявляешь переменную цикла; объявляешь условие выхода из цикла; объявляешь выражение итерации переменной цикла) { }


Просто охуенно!
500 2351063
>>350946
Вот такие пидоры как ты, как раз и ленятся, не то что коменты актуализировать, а даже ссылку на тикет указать. И в коммит-меседжах пишут хуйню вроде "пофиксил баг".
Нахуй путешествуй.
501 2351107
>>351025
Даже не помню, когда последний раз использовал for со счётчиком
502 2351117
>>351025
Да я знаком с синтаксисом шарпа, и так уже гуглю ответ для него.
Просто уже пишу проект на VB, и переходить на середине — тупо. Приходится иногда ЗАВИДОВАТЬ.

> sub foo()


> end sub


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

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

Но все это решаемые проблемы автоматическим дополнением. На C# я пранирую перейти, как только закончу свой проект. Я и так с VBA перешел, для меня VB.NET - сплошные ништяки.
503 2351122
>>350323

>Timer.Tick += Update


вот только евенты в шарпе неудачное решение. Вроде бы очевидное - "хотим добавлять методы как хендлеры и вот вам немного сахара", но дико неудобно вышло
504 2351231
ОшибкаBC31399Класс "Geometry" не имеет доступного "Sub New" и не может быть унаследован.

Чому класс PathGeometry спокойно наследует Geometry, а я получаю пизды за такое?
Пикрил1 — метаданные PathGeometry. Пикрил2 - мой класс.
505 2351234
>>351231
Прошу прощения за бейсик. Тут я не знаю как переводить и скорее всего поломаю.
506 2351259
>>351234
у Geometry internal конструктор

а бейсик это жжжесть
507 2351292
>>351122

> дико неудобно вышло


А как бы тебе хотелось? Опиши в псевдокоде.
508 2351347
>>351292
Да хотя бы классический Subscribe возвращающий IDisposable токен. + перегрузка принимающая lifetime
509 2351397
>>350908
зе сейм
510 2351425
511 2351447
>>351259
Ясно. Извне никак не наследовать.
512 2351558
Допустим я хочу вот такую хуевину сделать:
Есть устройства: принтеры, лампочки, розетки, колонки, чайники.
Я хочу сделать приложение, в котором пользователь бы мог все это добро подключить, а затем управлять, настраивать, смотреть состояние, мутить скрипты.
Так вот. Я сделал базовую имплементацию: устройства сами могут зарегистрироваться. Я могу все это делать.
Проблема. Все это сделано отдельными приложениями, которые на шарпе, одно по модбасу шлет пакетики, другое по snmp, третье жсоны гоняет. У каждого устройства, в зависимости от протокола - нужно сначала настроить к какому приложению слать запросики. Ну и дальше - проблема в том, что протоколы придумывали баки и они между собой так себе совместимы: в одном - 1 == true, 2 == false, в другом 1 == true, 0 == false, в жсоне - true == true ну вы поняли. А какие-то специфичные данные, типа яркости лампочки, так это же пиздец, вот по такому модбас-адресу лежит яркость.
Пока что для себя - я как ЭКСПЕРТ - знаю что и куда слать, допустим - 255 максимальная яркость, 0 - выключить лампочку. По такому-то OID - посмотреть количество чернил в принтере. Но хочется какой-то универсальности, чтобы я мог какую-то дашборду иметь и данные не зависили от протокола и типа устройства.
Но как это сделать?
Я думал о такой вот структуре:
есть абстрактное устройство. Device
у него есть абстрактный набор данных, методов и событий(Data, Actions, Events)
Данные - что можем почитать или иногда записать
Действия - что можем сделать, например выключить лампочку или перезагрузить роутер
События - некий триггер(настраиваю я) или инициативное сообщение(если устройство в него умеет), который нужен чтобы не пропустить что-то(например, чайник закипел - чайнки перешел в состояние закипел - я это считал и на дашборде - вывелось - "чайник закипел")
Но вот как это связать с конкретными устройствами и протоколами? Вот допустим в SNMP - есть дохерища текстовых конвенций, типа никаких тебе дробных чисел, тебе прилетит Integer и если у него синтаксис fixDiv100 - то это значит что надо на 100 разделить, чтобы валидный результат получить, если там IPAddress - нужно посмотреть длину строки октетов, понять что прилетел IP-адрес такой-то дилны или такой-то и потом привести его к виду IPv6 или IPv4, в Modbus - 255 - это вообще что угодно может быть в зависимости от спецификации устройства, смотри карту регистров и понимай.
Так вот. Может быть у вас есть какие-то предложения относительно того как это можно ООПшно и конфигурируемо сделать? Ну, типа допустим я смотрел как делают опенсорсные проекты похожего толка - и там либо руками все это прописали, либо - делают основу в виде форматтеров-конвертеров и хитрых конструкторов, но это ж пиздец заебешься настраивать, если у тебя нет базы по нужным устройствам.
512 2351558
Допустим я хочу вот такую хуевину сделать:
Есть устройства: принтеры, лампочки, розетки, колонки, чайники.
Я хочу сделать приложение, в котором пользователь бы мог все это добро подключить, а затем управлять, настраивать, смотреть состояние, мутить скрипты.
Так вот. Я сделал базовую имплементацию: устройства сами могут зарегистрироваться. Я могу все это делать.
Проблема. Все это сделано отдельными приложениями, которые на шарпе, одно по модбасу шлет пакетики, другое по snmp, третье жсоны гоняет. У каждого устройства, в зависимости от протокола - нужно сначала настроить к какому приложению слать запросики. Ну и дальше - проблема в том, что протоколы придумывали баки и они между собой так себе совместимы: в одном - 1 == true, 2 == false, в другом 1 == true, 0 == false, в жсоне - true == true ну вы поняли. А какие-то специфичные данные, типа яркости лампочки, так это же пиздец, вот по такому модбас-адресу лежит яркость.
Пока что для себя - я как ЭКСПЕРТ - знаю что и куда слать, допустим - 255 максимальная яркость, 0 - выключить лампочку. По такому-то OID - посмотреть количество чернил в принтере. Но хочется какой-то универсальности, чтобы я мог какую-то дашборду иметь и данные не зависили от протокола и типа устройства.
Но как это сделать?
Я думал о такой вот структуре:
есть абстрактное устройство. Device
у него есть абстрактный набор данных, методов и событий(Data, Actions, Events)
Данные - что можем почитать или иногда записать
Действия - что можем сделать, например выключить лампочку или перезагрузить роутер
События - некий триггер(настраиваю я) или инициативное сообщение(если устройство в него умеет), который нужен чтобы не пропустить что-то(например, чайник закипел - чайнки перешел в состояние закипел - я это считал и на дашборде - вывелось - "чайник закипел")
Но вот как это связать с конкретными устройствами и протоколами? Вот допустим в SNMP - есть дохерища текстовых конвенций, типа никаких тебе дробных чисел, тебе прилетит Integer и если у него синтаксис fixDiv100 - то это значит что надо на 100 разделить, чтобы валидный результат получить, если там IPAddress - нужно посмотреть длину строки октетов, понять что прилетел IP-адрес такой-то дилны или такой-то и потом привести его к виду IPv6 или IPv4, в Modbus - 255 - это вообще что угодно может быть в зависимости от спецификации устройства, смотри карту регистров и понимай.
Так вот. Может быть у вас есть какие-то предложения относительно того как это можно ООПшно и конфигурируемо сделать? Ну, типа допустим я смотрел как делают опенсорсные проекты похожего толка - и там либо руками все это прописали, либо - делают основу в виде форматтеров-конвертеров и хитрых конструкторов, но это ж пиздец заебешься настраивать, если у тебя нет базы по нужным устройствам.
513 2351667
>>351558
Паттерн "Адаптер". Гугли.
514 2351669
>>351558
Ну тебе нужны интерфейсы и какой нибудь паттерн: строитель или фабричный метод. Настраиваешь шаблоны под разные ситуации, а как еще?
Потому, наверно, у каждой компании свой набор устройств со своими стандартами.

А ты хочешь замутить что-то универсальное для всего на свете, но вроде как еще никто этого не смог сделать. Да еще хочешь сделать это в одно рыло.
515 2351673
>>351667
Адаптер шатает уже созданное. Это чтобы состыковать нестыкуемое, а анон на стадии зайчатия своей идеи.
516 2351684
>>351673
Внимательно его пост перечитай. У него куча девайсов с драйверами от разных вендоров, с разным АПИ в драйверах.
517 2351688
>>351558

>Вот допустим в SNMP - есть дохерища текстовых конвенций, типа никаких тебе дробных чисел, тебе прилетит Integer и если у него синтаксис fixDiv100 - то это значит что надо на 100 разделить, чтобы валидный результат получить, если там IPAddress - нужно посмотреть длину строки октетов


Делаешь класс для каждого такого случая: SNMP, fixDiv100, IPAddress. И основываешь их на интерфейсе (абстрактном классе) типа IProtocol. А как еще? Если каждый из них тоже имеет кучу вариаций, то дробишь еще на более мелкие классы и так же объединяешь общим интерфейсом.
У тебя в итоге должны быть типа наборы c общей абстрактной базой, которые ты перетасовываешь в зависимости от нужной конфигурации, которую ты сам удачно описал.

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

>>351684

>У него куча девайсов с драйверами от разных вендоров, с разным АПИ в драйверах.


Адаптер это декоративная хуета, он не является стратегией. Грубо говоря, нужен чтобы милицию переименовать в полицию, но эта полиция все так же будет выполнять обязанности милиции.
Надеюсь меня не посадят на бутылку за данную аналогию.
518 2351702
>>351016
>>350846
>>350288
Хз вообще почему вы подумали, что я буду делать калькулятор. Я просто начал читать про WPF, разные контейнеры и решил вот затестить.
519 2351712
>>351688

>Грубо говоря, нужен чтобы милицию переименовать в полицию


(я другой анон).
Как бы это и требуется. Никто не ожидает от принтера что он начнет варить кофе.

Задача элементарная
1 определяем общий(е) интерфейсы. IDevice если нужно так обобщать или IPrinter, Ичайник и так далее, если нужно работать с ними по разному. Придумывается общий контракт
2 Для тех устройств что есть что-то готовое пишется обертка для реализации этого общего контракта (собственно сами адаптеры)
3Для тех, для кого нет ничего, пишется реализация на основе этого общего контракта. И будет ли это прямо реализация на месте (автор упарывается в YAGNI) или "немного подумаю сделаю обособленную реализацию и свяжу через адаптер то есть как в пункта 2"...зависит (с)

ps2: да гребанная кнопка стикеры поверх вводимых букв. Какого хера она делает поверх тектареа ввода текста
520 2351743
>>351712

>ps2: да гребанная кнопка стикеры поверх вводимых букв. Какого хера она делает поверх тектареа ввода текста


Дизайнер — уебан. Стикеров давно нет, а счетчик символов можно опустить на панель инструментов. А пока приходится ставить пробелы, которые забываешь убрать и каждый раз поучается вот такая пустая ебала ↓
521 2351746
>>351712

>2 Для тех устройств что есть что-то готовое пишется обертка для реализации этого общего контракта (собственно сами адаптеры)


Насколько я понял, готового нет. У него наоборот нейминг может сохраняться, а вот внутрянка имеет разную логику в зависимости от спецификации устройства. Собственно из-за этого и бугуртит.
У него есть функция Trigger. Но вариантов обработки её аргументов великое множество:
а) 1 == true, 2 == false,
б) 1 == true, 0 == false,
в) true == true

Я кажется понял к чему ты предлагаешь адаптер. Если функция имеет базовую логику и ПЛЮС к ней надо добавить еще какую-то логику, то тогда адаптер нужен. Вообще тут зависит от задачи анона. Если ему нужно поменять логику после работы функции, то Адаптер подойдет, а если до, что я бы использовал Строитель. А на самом деле и то и другое.

Вообще эти паттерны ебень какая-то. Сферический конь в вакууме.
522 2351757
>>351746

>Если ему нужно поменять логику после работы функции, то Адаптер подойдет


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

>Вообще эти паттерны ебень какая-то


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

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

>Но вариантов обработки её аргументов великое множество


вообще хз о чем ты. Ему нужен унифицированный доступ к подмножеству девайсов. А значит очевидно унифицированный контракт (интерфейс) - а уже от него все пляшет
523 2351767
Анон, я тут заканчиваю изучение базового синтаксиса и думаю, куда двигать дальше. Нашел два роадмапа, их везде рекомендуют:
https://github.com/saifaustcse/dotnet-developer-roadmap
https://github.com/MoienTajik/AspNetCore-Developer-Roadmap

В чем разница и куда податься, чтобы взяли на галеру за 300ккк в наносекунду?
2022-05-0711-11-42.png16 Кб, 846x789
524 2351784
>>351259

>у Geometry internal конструктор


Хочу объединить класс RectangleGeometry с классом MyProperties в один единый класс (пикрил).

На самом деле задача иметь RectangleGeometry с доп свойствами. Раньше я брал RectangleGeometry и в свойство Tag(Object) пихал класс MyProperties. Но подумал, может есть более эстетичный вариант? Мне даже не нужны все методы и свойства RectangleGeometry, а только небольшая их часть.

Сперва я подумал, что можно просто создать свой класс EbanoeGeometry, внутри которого создать экземпляр RectangleGeometry и к нему уже обращаться. Но все бы ничего, только вот для какого нибудь Canvas, мой класс это неведомый зверь, потому что в чилдрены Canvas могут добавляться только наследники класса Geometry.
А делать что-то типа такого Canvas1.Childrens.Add(EbanoeGeometry.GetGeometry) чет не хочется. Хочется, чтобы это выглядело прям как собрат RectangleGeometry.

Такое вообще возможно?
525 2351786
>>351784

>А делать что-то типа такого Canvas1.Childrens.Add(EbanoeGeometry.GetGeometry)


... кроме всего прочего я еще и растеряю дополнительные свойства, это даже не даункаст получается, а кастрация какая-то. Не то чтобы я собирался с Кэнваса получать объект, но мне дурно от такого.
526 2351788
>>351767

>В чем разница


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

А если сидеть вот так по пунктикам заучивать без привязки к реальным задачам, то быстро вылетит из головы.
527 2351795
>>351788
Так я пока только базу синтаксиса знаю и могу делать простенькие консольные приложения. А на галеру надо притащить уже целое готовое веб-приложение, развернутое на сервере, наверное еще и с мордой на тс с каким-нибудь фреймворком. Между этим большая пропасть, которую хз как пройти без подобного роадмапа, я понятия не имею, как подступиться вообще дальше.
528 2351801
>>351795
Кстати кто-нибудь может объяснить почему каждая вторая вакансия на NET это фуллстак? Это из-за того, что шарфик преподают с первого курса и в среде работадателей знание платформы считается дефолтным навыком и типа возможно потребовать себе универсального кодера?
529 2351811
>>351801
Потому что у нас одни шарашкины конторы? Любая мелкая фирма не может позволить себе большой штат сотрудников, поэтому нанимают себе и швеца, и жнеца, и на дуде игреца. Предполагается, что ты будешь работать за пятерых, а платить тебе будут 0.2 от зарплаты одного.

Даже среди дизайна такая же херь. Я сначала гордился, что и рисовать могу, и 3д делать, и в CADах работать, и даже программировать. А потом оказалось, что таких как я только в шаражки и берут. Но тут нюанс в том, что таким фирмам нужно знать все, но на поверхностном уровне.

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

Если захочешь наебать систему и задрачивать со старта что-то одно, то полно примеров среди художников, которые задрачивали онли пошив одежды и щас глубоко соснули, потому что заказов нет, а перебиться на чем-то менее прибыльном не в состоянии из-за отсутствия других знаний. Короче, жизнь тебя обязательно выебет, так что не парься и решай задачи по мере их поступления.
530 2351821
Аноны, я тут начинаю медленно готовиться к собеседованию, пока на рынке труда совсем пиздец не настал.
Сам умею в стандартный шарп, Рихтера перечитывал недавно и выучил фишки из новых версий.
.Net Core web api
Entity Framework новый тоже подучил.
Умею работать с CQRS, Mediatr, Automapper.
Виндовс формочки, куда же без них.
SQL тоже знаю.
В принципе знаю, где меня на собеседовании могут выебать, ибо уже до ковида ходил на собесы, но не получилось из-за проблем с военкоматом, сейчас все куда сложнее наверное будет.
Что посоветуете подучить?
531 2351822
>>351821
Ну и да, в планах у меня пока только GIT и Docker.
532 2351827
>>351821
>>351822
Я думаю еще подучить Dapper, но нужен ли он, часто его юзают?
Ну и наверное придется опуститься до изучения HTML и JS, а дальше к Vue.js, я их немного знаю, но всегда отвращение к формошлепству имел к этому.
533 2352040
>>351786

>а кастрация какая-то


абсолютно нормально.
534 2352073
>>351827
Dapper юзают когда нужно супер быстро. EF юзают окгда не так важно.
535 2352075
>>352073
и когда не любят EF со всеми его заморочками. Есть огромное количество других ORM
536 2352094
>>352040
Ну так-то первоначально калечный вариант хранить класс со свойствами в тэге дает куда больше возможностей.
537 2352100
>>352094
А вот это как раз уже и выглядит как костыль
Правда тут проблема именования ведь Tag как то по названию не подразумевает "доп свойствА",но по факту для этого придуман.
538 2352113
>>352100
Ну если зырить в корни, насколько я помню, в vba тэг был стринговым. Это в .NET его сделали объектом, а в MDSN так и пишут

>Хранит дополнительную информацию об объекте.



Лучше бы они какую нибудь хуету замутили, чтобы можно было делать обертку поверх класса не трогая базу. И все эти ваши Декораторы и Адаптеры проблему не решат.
539 2352122
>>352100
Алсо, я экстеншн метод сделал и у меня идет обращение не к тэгу, а к Properties, да еще и возращает нужного типа.

Кстати, нет какого нибудь сахара с приведением к типу на лету?
А то мне приходится всегда делать так:

Object sender
Rect R = sender
R.Width


А вот так иногда может выдать ошибку:
sender.Width
540 2352130
>>351821
Теория на ASP.NET собес:
1) Пайплайн стандартных middleware и что делают: CORS, Authorization, Model binding, Model validation, Action filters, Exception filters. Зачем понадобится написать кастомный middleware.
2) Model validation: как реализована, ModelState (структура и API), FluentValidation nuget.
3) Model binding: атрибуты FromQuery, FromBody, FromRoute, FromService, зачем может понадобиться custom model binder.
4) Dependency Injection: Singleton/Transient/Scoped.
5) Action filters (зачем и примеры стандартных). Exception filters.
6) HTTP/REST: принципы, семантика глаголов, коды ответов.
7) Authentication: OAuth/OpenID flows (Implicit, PKCE), Azure Active Directory, JWT (refresh/access token), SSO, ASP.NET Identity.
8) OData.
9) Microservices: monolith vs microservice (pros/cons), как реализовать распределённую транзакцию (2PC, SAGA), коммуникация (HTTP, message bus), CAP теорема, как реализовать high availability.
10) Нормализация данных: что это и зачем, нормальные формы, как организовать 1-to-1/1-to-many/many-to-many отношения в SQL бд.
11) SQL: View vs Materialized View, Index (когда ставить, когда не ставить), операторы (отличие UNION/UNION ALL).
12) Entity Framework: __EFMIgrationHistory, как смапить сущность без первичного ключа (SQL View), какие ограничения, трансляция деревьев выражений (как реализовать кастомные операторы, как зафорсить client evaludation), AsNoTracking(), ChangeTracker, FluentAPI vs Data Annotations, Disconnected graph management (кейс: смержить 1-to-many дерево пришедшее с клиента в бд через EF).
13) Unit testing: отличие in-memory provider EF от реальной бд (Include-ы). XUnit (отличие от NUnit/MSUnit).
14) Знания/опыт работы с Cloud Computing провайдерами (AWS, Azure, GCP): знакомые сервисы, сертификаты.

Задачи на ASP.NET:
1) Как реализовать валидацию на уникальность Email и вернуть клиенту JSON с остальными ошибками стандартной валидации.
2) Есть REST Web API на ASP.NET Core + Entity Framework Core, есть веб-клиент, который с ним общается через JSON. На клиенте отображается pageable грид. Как будет выглядеть формат JSON-объекта-запроса, JSON-объекта-ответа. Как реализовать "страничную" выборку данных на бэкэнде используя EF Core. Как реализовать сортировку по любому полю JSON-объекта.
3) Есть REST Web API на ASP.NET Core. Веб-клиент постит на разные endpoint-ы JSON-объекты, в которых есть строковые свойства. Как централизованно затриммить (убрать пробелы с начала и конца) все строковые свойства принимаемых JSON-объектов. Чтобы в базу вдруг случайно не попали одинаковые текстовые entry, отличающиеся только количеством пробелов с начала или конца строки.
4) Как глобально перехватить все необработанные exceptions и вернуть клиенту модифицированный JSON с добавлением какой-то кастомной проперти.
5) Клиент аутентифицируется используя JWT + implicit flow. Как реализовать принудительный revoke сессии (инвалидация refresh token-а ~ "бан пользователя админом").
6) SQL/EF: как реализовать аудит сущности.
7) EF: optimistic concurrency implementation.
540 2352130
>>351821
Теория на ASP.NET собес:
1) Пайплайн стандартных middleware и что делают: CORS, Authorization, Model binding, Model validation, Action filters, Exception filters. Зачем понадобится написать кастомный middleware.
2) Model validation: как реализована, ModelState (структура и API), FluentValidation nuget.
3) Model binding: атрибуты FromQuery, FromBody, FromRoute, FromService, зачем может понадобиться custom model binder.
4) Dependency Injection: Singleton/Transient/Scoped.
5) Action filters (зачем и примеры стандартных). Exception filters.
6) HTTP/REST: принципы, семантика глаголов, коды ответов.
7) Authentication: OAuth/OpenID flows (Implicit, PKCE), Azure Active Directory, JWT (refresh/access token), SSO, ASP.NET Identity.
8) OData.
9) Microservices: monolith vs microservice (pros/cons), как реализовать распределённую транзакцию (2PC, SAGA), коммуникация (HTTP, message bus), CAP теорема, как реализовать high availability.
10) Нормализация данных: что это и зачем, нормальные формы, как организовать 1-to-1/1-to-many/many-to-many отношения в SQL бд.
11) SQL: View vs Materialized View, Index (когда ставить, когда не ставить), операторы (отличие UNION/UNION ALL).
12) Entity Framework: __EFMIgrationHistory, как смапить сущность без первичного ключа (SQL View), какие ограничения, трансляция деревьев выражений (как реализовать кастомные операторы, как зафорсить client evaludation), AsNoTracking(), ChangeTracker, FluentAPI vs Data Annotations, Disconnected graph management (кейс: смержить 1-to-many дерево пришедшее с клиента в бд через EF).
13) Unit testing: отличие in-memory provider EF от реальной бд (Include-ы). XUnit (отличие от NUnit/MSUnit).
14) Знания/опыт работы с Cloud Computing провайдерами (AWS, Azure, GCP): знакомые сервисы, сертификаты.

Задачи на ASP.NET:
1) Как реализовать валидацию на уникальность Email и вернуть клиенту JSON с остальными ошибками стандартной валидации.
2) Есть REST Web API на ASP.NET Core + Entity Framework Core, есть веб-клиент, который с ним общается через JSON. На клиенте отображается pageable грид. Как будет выглядеть формат JSON-объекта-запроса, JSON-объекта-ответа. Как реализовать "страничную" выборку данных на бэкэнде используя EF Core. Как реализовать сортировку по любому полю JSON-объекта.
3) Есть REST Web API на ASP.NET Core. Веб-клиент постит на разные endpoint-ы JSON-объекты, в которых есть строковые свойства. Как централизованно затриммить (убрать пробелы с начала и конца) все строковые свойства принимаемых JSON-объектов. Чтобы в базу вдруг случайно не попали одинаковые текстовые entry, отличающиеся только количеством пробелов с начала или конца строки.
4) Как глобально перехватить все необработанные exceptions и вернуть клиенту модифицированный JSON с добавлением какой-то кастомной проперти.
5) Клиент аутентифицируется используя JWT + implicit flow. Как реализовать принудительный revoke сессии (инвалидация refresh token-а ~ "бан пользователя админом").
6) SQL/EF: как реализовать аудит сущности.
7) EF: optimistic concurrency implementation.
541 2352134
>>352113

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


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

>И все эти ваши Декораторы и Адаптеры проблему не решат.


ну да. принтер плохо варит кофе, значит принтеры бесполезны )

>нет какого нибудь сахара


Есть всякие динамик и экспандообжекты но это если свой класс делаешь
542 2352182
Шо я делаю не так?
543 2352183
>>352130
Ебать простыня, это все говно ж года 3 учить
544 2352184
>>352182
Убрал строчку, где я создаю контейнер Canvass и всё заработало, хз почему, буду признателен если кто-то объяснит
545 2352215
>>352182
все не так. во первых, свой код нужно размещать после InitializeComponent. Во вторых, определяешь канвас в хамл и далее просто обращаешься по имени, а в своем коде ну создал ты инстанс канваса, ну заполнил и...конструктор закончился и GC его скушал. В третьих, не давай имена локальным переменным с большой буквы, котята дико орут от котятоцида. В четвертых, зачем там Array? вот создаешь ты массив кнопок, кладешь в него кнопки чтобы...тут же из него сразу эту кнопку достать, а в конце массив просто выбросить и все. В пятых - нахрена эта строка поиска на панели задач, что ты там ищешь что ей можно отдать столько места, да еще и виджет погоды, уууу
546 2352219
>>352215
база
sage 547 2352220
>>352215

> Во вторых, определяешь канвас в хамл и далее просто обращаешься


Не надо, сначала в коде научится как, а потом в хамл переходить
548 2352235
>>352220

>Не надо, сначала в коде научится как


Бесполезная трата времени. 99% будешь использовать хамл, а 1% код, но поскольку хамл это тот же код, выраженный в виде хмл, то там не сильно сложно.
549 2352252
>>352215

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


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

>виджет погоды


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

>Шо я делаю не так?


Если это не мауи, то абсолютно всё не так. Это в XAML надо писать.
551 2352411
>>352378
А что это даст?
552 2352414
>>352411
Декларативность
553 2352422
>>352414
Вафлетивность.
554 2352441
>>352422
Ну тогда удачи в стрельбе себе по ногам
555 2352488
>>352130

>Как будет выглядеть формат JSON-объекта-запроса,


Блин настолько уже привык с odata работать, что вот эту вот ззуйню забыл совсем.
556 2352586
>>352411
Даст возможность не брать за щеку у самого себя же в процессе разработки.
557 2352594
>>352130
Бля, я только половину из этого отвечу наверное.
558 2352607
>>352183
Да нихуя, месяца 3-4 максимум.
Спасибо анонче, я знаю, к чему готовиться теперь примерно.
559 2352613
>>352183
Нет, в процессе обучения это всё само собой потрогается и посмотрится, поскольку это основа основ. По сути как циклы, условия, массивы - всё это основа которая в процессе изучения сама появляется как нужность
560 2352620
>>352613
Я вот пока диплом делал ( мессенджер ), из этого списка процентов 10-15 пощупал от силы
561 2352628
>>352620
Первые 13 пунктов уже гарантировано мог бы заюзать. Это сразу больше половины списка, не говоря уж о том, что можно ебануть апишку и это сразу вся оставшаяся часть. Даже если проект десктопный - инструменты те же абсолютно, меняется только вьюшка грубо говоря и немного структура приложения, так что непонятно что ты там за мессенджер делал
562 2352632
>>352628
Я если что не доебываюсь, у меня у самого уровень на написания диплома был ниже говна из жопы, но это я так, просто к слову о том, что ту хуйню выше учить долго
563 2352691
>>352235

> хамл


>>352378

> XAML


>>352414

> Декларативность


Декларативность это заебца. И в хамле она неплохо реализована, но у хамла есть один минус, как и у любого потомка хмл - дичайшее количество мусорных символов. Когда набираешь его по схеме в студии, проблем нет, интеллисенс тебе всё автодополняет и подстанавливает. А вот когда надо поправить в блокноте, тут-то и вылезает дичайшая жопоболь.
Мне больше по душе ЖСОН. Но к сожалению, на нём очень мало тулкитов. Из найденных мной только один поддерживает кодбихайнд в связке шарпа с жсоном, это... Eto!
Но воще хотелось бы ещё более простой (но декларативный) язык описания интерфейсов. Эх, посаны, знаете, хочеца как-то вот так:
object Form
[TAB] name = "MyForm"
[TAB] title = "My Helloworld Form"
[TAB] size = [800,600]
[TAB] object Label
[TAB][TAB] name = "Label1"
[TAB][TAB] text = "Hello, world!"
[TAB]object Button
[TAB][TAB] name = "Button1"
[TAB][TAB] text = "OK"
564 2352694
>>352586
Это в теории, а на практике соснешь от любого нестандартного пука в сторону, и тут начинается полный балаган. И уже хуй поймешь почему скругления кнопочек находятся в XAML, а отступы находятся в C# и почему ты должен как обезьяна в анекдоте бегать туда-сюда. Вместо того, чтобы в одном месте реализовать все настройки.
565 2352697
>>352691
>>352694
Ну для этого и придумали недавно мауи. Больше никакой ебли с хамл. Разметку ебашишь на шарпике и балдеешь
566 2352748
>>352628
Ну так-то некоторые вещи я использовал, но особо не вникал даже. Да и велосипедов насочинял достаточно.
В общем буду летом НОРМАЛЬНО делать, теорию учить и по собесам похожу.
Опыт смежный есть год ковыряния легаси ERP на MS dynamics ax, параша та ещё
567 2352762
Кто-нибудь пробовал на железках уровня малинки и слабее шарп гонять?
В общем. Я столкнулся с острым желанием это делать. Но вот дела, программулины стартуют ОООООООООООООООЧ медленно. Иногда раздупляется эта фигня до двух минут, иногда даже дольше. Еще и первое время кучу потоков плодит, память как-то странно выделяет на пустом месте. Аналогичная программулина на плюсах - стартует мгновенно и сразу нормально работает, шарповская же - раздупляется довольно долго, как раздуплилась - разница уже не такая большая, порядка 3-4 раз в пользу плюсов, но это уже не так существенно в данных кейсах.
В общем. Вопросы к гуру. Есть ли какой-то способ это вот раздупление ускорить и вообще поясните, чому так. Так-то я бы на плюсах хотел писать, но сейчас в команду - хрен плюсовиков найдешь, а дотнетчиков местный вуз плодит в бешенных масштабах, что легче на них скинуть какую-то некритичную фигню.
568 2352763
569 2352864
>>352763

> Yaml


Википедия: Следует заметить, что наличие варианта записи в однострочном формате делает JSON допустимым подмножеством YAML.
Ништяк! Я вактически уже его выбрал.
>>352697

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


Впереди лжец.
570 2352865
>>352762
C# долго раздупляется на старте из-за того, что компилируется в промежуточный язык CIL, и уже потом при старте программы собирается в бинарник. Именно поэтому на старте долго, но быстро в процессе. Это сделали ради универсальности, но вот такой вот минус. Но вроде как стартовать только первый раз должно долго, и если ты не пересобираешь проект, то другие разы должны быть быстрее.

>Есть ли какой-то способ это вот раздупление ускорить


Выкинуть малинку к хуям. Сколько она щас стоит, тысяч 20?
Ты осознаешь, что можешь купить за эти деньги планшет на виндовс, у которого будет ТАЧ ЭКРАН, БАТАРЕЯ, КАМЕРА. И если хочется, законнектить по USB ардуину — для пинов. И представляешь? Оно не будет греться и будет мощнее.

Я просто в ахуе. Ебаные маркетологи подсадили ребятушек по соусом "компактно и дешево", а оно уже давно не дешево нихуя. Это уже оскорбительное безумие, потому что плюсов от росбери нет вообще: ни цены, ни простоты, ни удобства, ни красоты.
571 2352893
>>352865

>Выкинуть малинку к хуям


Малинка это чтобы понимать мощности. А малинка используется исключительно чтобы быстро можно было закинуть программулину и посмотреть как оно на близком к реаному железу работать будет до того как получим реальные образцы(как же с этого горит на деле, типа блядь, выдать пару экземпляров разрабам - хуй, собирайте из говна и палок что-то сами, завод, хули).
Ну и да. Стартует-то не только в первый раз долго. Любой холодный старт оно чет-там раздупляется. Опять же, создает потоки хрен пойми зачем. Памяти выделят тоже больно много. Я думал, что возможно дело в том, что дотнет что-то там JITом делает, плюс че-то "подгружает" в процессе, ну, типа как я знаю ваши женерики - генерируются в момент первого вызова(как минимум мне дотнетчик так рассказывал), вот я и хочу узнать - что там да как, можно ли как-то это все дело сделать шустрее. Говорю ж, я - плюсовик, и дотнет использовал только когда нужно было на формах какую-нибудь утилитку быстро накидать чтобы потестить что-то, но плюсовиков сейчас хрен найдешь, а дотнет и под ARM стало можно запускать, дотнетчиков - дохрена вокруг, вот и было принято решение, их привлекать к работе, но чет первые тесты с работой на устройствах - не впечатляют, даже в качестве вспомогательного инструмента.
572 2352959
>>352893

>Малинка это чтобы понимать мощности


>как оно на близком к реальному железу работать будет


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

>но плюсовиков сейчас хрен найдешь, а дотнет и под ARM стало можно запускать,


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

>дотнетчиков - дохрена вокруг


А психологов еще больше, можно поискать среди них)
573 2352968
>>352959

> Ты пробовал запускать пустое приложение или консольное?


Это должен быть демон обычный, который своей фигней заниматься должен. Проблема как раз в том, что чтобы остальные демоны стартовали - этот тоже должен, ну и соответственно если эта вот хрень стартует 2 минуты, потом несколько таких будет в перспективе, то пока вся система проинициализируется - может хрен знает сколько времени пройти.
Ну и да. Это не мое решение на шарпе это все делать. Мне нужно теперь вот думать как, мать его, на малине мутить это все.
574 2352992
как думаете, MAUI выстрелит или также будет никому не нужной, как Blazor
575 2353005
>>352992

> также будет никому не нужной


Ставлю бочку солёных дотнетцов на это. Майки опоздали со своим мауи года на джва. Уже есть несколько популярных юи-фреймворков, которые в рот и под хвост выебут твой мауи.
576 2353008
>>352694

>от любого нестандартного пука в сторону, и тут начинается полный балаган


довольно редкая вещь.

>а отступы находятся в C# и почему


конечно не поймешь, ведь они не должна там находиться

>>352697

>Больше никакой ебли с хамл. Разметку ебашишь на шарпике и балдеешь


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

>>352992

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


для мобил почему бы и нет. jetpack compose вышел ня и swift combine тоже неплохо, но это для мобил
Я пробовал jetpack compose для десктопа...не не не.
577 2353054
>>352992
Как эта хуйня собирается конкурировать с флаттером, электроном и вот этим https://youtu.be/-X8evddpu7M я не представляю. Мертворожденный проект
578 2353056
>>353054
Очевидно
Не все хотят писать на говножс и таком же дарт
Если бы не флаттер дарт нах никому не нужен
Аналогично и с жс
579 2353060
>>353056
Учитывая, какой пиздец творят майки с сишарпом с 2017 года, мысль писать на современном жс/тс уже не кажется хуевой
580 2353180
>>353060
А какой пиздец они творят?
581 2353183
>>353060
а какой творят? выбросили половину шарпа? да нет. вроде все на месте
жалко только AppDomain и Thread.Abort
582 2353210
>>352992
Не, до уровня блейзора не опустится.
Просто со временем заполнит те 0,3% рынка, которую сейчас занимает замарин, который пиздецки устарел.

Майки как обычно. Подождали несколько лет пока все ниши займут и решили начать влезать.
583 2353212
>>353210
А что конкретно в замарине устарело? Вот WPF стар и что? - он все равно мощнее своих новомодных альтернатив по фичам.
584 2353412
Аноны, подскажите пожалуйста. Собираюсь новый компьютер покупать, сначала продав нынешний. То есть несколько дней я буду без компьютера, а продолжать учиться надо. Есть ли вариант писать на C# с телефона айфон если что? Сейчас ASP.Net прохожу.
585 2353470
>>353412
Текстовый блокнот
586 2353471
>>353412
>>353470
Я серьезно, кстати. В институте мы сначала писали программу в тетрадке, а потом пытались запустить. Тест на внимательность, так сказать.

У тебя есть пару дней, чтобы все продумать. Смотри не обосрись.
взлом препода.jpg143 Кб, 843x789
sage 587 2353474
>>353412
Чё ебанутый? Пару дней отдыха сделай
>>353471
Пикрил
588 2353534
>>353212

>Вот WPF стар и что?


Вот это

>в замарине устарело


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

>мощнее своих новомодных альтернатив по фичам.



Все новые фреймворки уже предлагают декларативный гуй с хотрелоадом, нормальную среду разработки на любой платформе (2/3 мобильных разрабов, даже ведроидеры, гоняют с маками) и нормальную экосистему либ.
Первые 2 пункта предлагает MAUI, третий VS для мака, четвёртый без коммьюнити не запилить.
589 2353608
>>353534

>Вот это


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

>нормальную среду разработки на любой платформе (2/3 мобильных разрабов, даже ведроидеры, гоняют с маками)


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

>Первые 2 пункта предлагает MAUI


Только вот он еще не существует. И даже когда выйдет - он наследник замарина со всеми его "кастрированный WPF". Или для тебя "десктоп давно умер"?

>и нормальную экосистему либ


ммм. это о чем? причем тут WPF?

все твои аргументы не касаются мощи WPF, а относятся к сопутствующим вещам

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

А когда решил покодить под мобилу для себя, то попробовав замарин (ну ведь тот же хамл и шарп ура ура) - я в итоге выучил котлин и jetpack и юзаю их.
Только что смотрел на синтаксис MAUI (который MVU) - как и ожидалось, ограничения шарпа дают свои плоды и получится разве что на уровне свифт комбайн, а значит все равно останусь на jetpack
590 2353616
>>353412
C# Shell (C# Offline Compiler)
Правда там asp.net core 2.2 максимум. Но для учебы пойдет.
Есть редактор с подсветкой, компиляция. Можно собирать apk-шки или dll-ки. Для asp.net-а запускает локальный хост. Можно нюгеты дергать.
Правда для комфортной работы нужно купить (ну или спиздить), но он какие-то смешные деньги стоит (по крайней мере полгода назад стоил)
591 2353617
>>353412
Бля, не увидел, что у тебя пидорофон. Сорян, тогда мой совет про C# Shell отпадает.
Страдай.
sage 592 2353632
>>353616

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


Купить ничего невозможно совершенно, только на Айфоне есть способ, и то убрали один из двух уже
593 2353660
>>353632
На 4пда ломаные были вроде.
594 2353664
Что быстрее:
10 * 0.5 или 10 / 2 ?
595 2353667
>>353412
Скачай книжку по шарпу на телефон и почитай эти дни. Гораздо полезнее будет.
596 2353668
Сеньйоры помидоры, могу ли я присобачить Identity UserManager в винформы на коре? Если да, то как его инициализировать (у него 9 параметров)?
Inb4: запили апи и обращайся к нему, запили свой UserManager.
597 2353670
>>353668
А в чем проблема-то? Для каждой зависимости манагера есть дефолтная реализация.
598 2353706
>>353664
Второе. В ассемблерном виде код будет следующим:

Для 10*0.5
L0000: vzeroupper
L0003: vmovsd xmm0, [0x7ffd04220458]

Сначала происходит обнуление 128 битов (16 байт) командой vzeroupper, а только потом уже присваивается значение

Код для 10 / 2:
L0000: mov ecx, 5

Тут нихуя не обнуляется, сразу перемещается число 5 в регистр.

Ответ мой очень неточный так как я не программировал никогда на ассемблере.
599 2353714
>>353664
>>353706

Погуглил, я обосрался. https://stackoverflow.com/a/4125074/17025310

А может и нет. Хуй знает.
600 2353723
>>353706
Но ведь си шарп не в ассемблер компилируется, а в IL-код для стековой CLR-машины.
16414546622790.jpg10 Кб, 512x382
601 2353731
>>353608

>все твои аргументы не касаются мощи WPF


Пиздец, сам приплёл WPF и сам же на что-то сгорел.

>Ну да ну да - мир это только мобилы конечно конечно.


Нет, но вот MAUI именно про них. Десктоп и ко там как у флаттера — пришили сбоку потому что могут, но никто не юзает (и не будет).

>все твои аргументы не касаются мощи WPF


Потому что я про него ничего и не говорил, кек.

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


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

>ограничения шарпа дают свои плоды


Какие ограничения? Ты по синтаксису выбираешь, пчел?

>и получится разве что на уровне свифт комбайн


А ты эти базвроды в глаза-то видел?
df6a82d8f778167b2e3c3ab323d9beff.jpg37 Кб, 720x405
602 2353737
>>353723
А эта виртуалка работает в вакууме?
603 2353743
>>353723
Вся хуйня компилируется в конечном итоге в ассемблер. C# -> IL (intermediate language) -> ASM
604 2353791
>>353664
10 >> 1
606 2353798
>>353743
По сути да, ассемблер, но не по факту. По факту есть виртуальная машина с виртуальным процессором, не идентичная реальному железу. Она выполняет ассемблероподобный код в своём формате.
Screenshot 2022-05-10 at 13.11.57.png1,1 Мб, 3862x1028
607 2353800
>>353796
Компилятор в релизе меняет деление на умножение — >>353714 судя по всему, чел на SO был прав — умножение всегда быстрее.
608 2353802
>>353798
А сделано это для того, чтобы
1. Избежать проблем современных архитектур. Нативный машинный код, который выполняется недостаточно быстро на реальном железе, выполняется быстрее на виртуальной машине.
2. Машинный код виртуальной машины универсален везде, где запускается виртуальная машина. Разраб один раз делает реализацию виртуальной машины на ранее неизвестной аппаратной платформе - и вуаля, весь багаж приложух становится доступен там.
609 2353811
>>353802
По факту они 14 лет делали CLR для линупсов
610 2353813
>>353664
Этому
>>353706
и этому

>Ответ мой очень неточный


Он пиздец какой неточный.
Во первых в clr оптимизация идет не только при переводе шарп кода в IL код, но и при дальнейшем переводе IL кода в ассемблерный код конкрентного проца.
Во вторых ты изучаешь как переводятся операции с литералами в IL код. Копмилятор в этом случае будет по максиму пытаться заменить их константными значениями. Поэтому он и пихает вместо 10/2 сразу 5. Т.к. целочисленное деление 10 на 2 всегда будет давать 5. Если поставить именно две переменных и их разделить друг на друга, то выглядеть это все будте уже по другому. Он их сначала кинет на стек, потом совершит операцию и заберет результат со стека.
В третьих как я выше написал это разные действия в одном случае это действие с плавающей точкой в другом это целочисленное деление, так что результат тоже будет разный.
В четвертых большинство конечных компиляторов давно уже умеют при целочисленных операциях заменять все эти разделить умножить на 2 или 0.5 на обычный сдвиг на бит влево/вправо и в конечном итоге вообще похуй.

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

Поэтому не страдай хуйней, а изучай лучше сам шарп.
611 2353944
Посаны, че он выебывается? Классы не могут быть массивами или че?
612 2353946
>>353944
1. Переименуй на нормальные имена
2. В исключении на втором скрине всё написано

Хоть ты и обращаешься к инициализированному массиву длинной 100, однако этот массив пуст. Грубо говоря есть 100 ящиков, но все они пустые. Соотвественно у пустого ящика (объекта класса Kniga) отсутствуют поля nazvanie, avtor, god, obyom.
613 2353947
>>353944
Класс это контейнер, где хранятся свойства. Ты лезешь в контейнер и где там у тебя массив?

Ты либо объявляй в классе массив, либо создавай массив из своих классов (это наверно правильнее).
614 2353956
>>353946
>>353947
Все, разобрался, спс
615 2353957
>>353944
Тебе нужно пройтись по всем ячейками и создать дял каждой новый экземпляр класса "kkkNigga"
1652200355394.gif2 Мб, 375x375
616 2354054
>>353957

> kkkNigga


Ю ниггест!
617 2354099
Если запрос к серверу создается через фетч, а авторизация через куки, то нужно ли использовать антифоржеритокен? Будет ли браузер отправлять куку авторизации жертвы (same-site=Strict) если злодей делает такой же фетч со своего сайта?
изображение.png17 Кб, 502x125
618 2354140
Поцоны, кто-то работал с dnlib?

Как заставить его детектить инструкции внутри делегатов? Код на скрине не возвращает тела делегатов совсем.
619 2354150
>>353731

>Пиздец, сам приплёл WPF и сам же на что-то сгорел.


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

>Нет, но вот MAUI именно про них


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

>Потому что я про него ничего и не говорил, кек.


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

>Бля, так зачем же нужен MAUI?


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

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


WPF это WPF, а замарин это замарин. Нечего их по фичам сравнивать. замарин изначально вообще проект левой конторы. Конкретно в замарин мне не понравилось
1 долгий запуск (не касается фич да)
2 на момент моей пробы физически не было возможности сделать "лонгтаплистенер" на нужно мне элементы. Я почитал советы "а ты сам напиши"
3 ну и что AppShell всегда держит первый скрин в памяти. Потом я понял что этот идиотизм и на андроиде, но было уже поздно, тем более, что в compose это не так

>Какие ограничения? Ты по синтаксису выбираешь, пчел?


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

>А ты эти базвроды в глаза-то видел?


видел. мне как то подарили айпхон + айпат + макобук с целью пересадить меня и "наставить на путь" и мой путь в мобилописание в MVU я начал именно с swift combine (ну сразу после того как в замарин уперся с лонгкликом) ибо "мне для себя и нах учить древности, поэтому только самое новое".
В итоге экосистема эпл меня запарила и я убежал обратно на андроид, а там уже котлин и compose. И я считаю compose гибче и заслуга в этом именно котлина с его скоупами, делегатед проперти и так далее.
619 2354150
>>353731

>Пиздец, сам приплёл WPF и сам же на что-то сгорел.


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

>Нет, но вот MAUI именно про них


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

>Потому что я про него ничего и не говорил, кек.


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

>Бля, так зачем же нужен MAUI?


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

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


WPF это WPF, а замарин это замарин. Нечего их по фичам сравнивать. замарин изначально вообще проект левой конторы. Конкретно в замарин мне не понравилось
1 долгий запуск (не касается фич да)
2 на момент моей пробы физически не было возможности сделать "лонгтаплистенер" на нужно мне элементы. Я почитал советы "а ты сам напиши"
3 ну и что AppShell всегда держит первый скрин в памяти. Потом я понял что этот идиотизм и на андроиде, но было уже поздно, тем более, что в compose это не так

>Какие ограничения? Ты по синтаксису выбираешь, пчел?


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

>А ты эти базвроды в глаза-то видел?


видел. мне как то подарили айпхон + айпат + макобук с целью пересадить меня и "наставить на путь" и мой путь в мобилописание в MVU я начал именно с swift combine (ну сразу после того как в замарин уперся с лонгкликом) ибо "мне для себя и нах учить древности, поэтому только самое новое".
В итоге экосистема эпл меня запарила и я убежал обратно на андроид, а там уже котлин и compose. И я считаю compose гибче и заслуга в этом именно котлина с его скоупами, делегатед проперти и так далее.
620 2354168
Анон, я тут учусь в бекенд на ASP.NET и задумываюсь, как мне пилить пет-проджекты. Это получается мне нужно будет где-то развернуть сервак и поднять там .NET, чтобы можно было все протестировать и показать рекрутеру в рабочем виде или как это вообще делается? Плюс для веб-приложения надо будет делать какую-то морду, это мне надо еще вдовесок учить хотя бы базово HTML, CSS и JS или можно сделать нативно в .NET'е?
621 2354194
>>354168
В 95% случаев достаточно будет гитхаб с этим проектом показать.
Если так уж хочешь - берешь самый дешевый сервак, либо покупаешь у провайдера статический АйПи и разворачиваешь на своей пекарне.
Относительно фронтенда. Взял бутстрап в зубы и быстро заебенил на каком-нибудь Vue по двум туториалам.
zoomer-tide-pods.gif317 Кб, 498x427
622 2354197
>>354150

> я начал с того, что WPF по фичам лучше других


Ты начал с того, что приравнял замарин к впф-у, пчел. Я про впф вообще нихуя не писал, ты просто порвался от своих же шизовысеров.

>вообще то задумка мауи - привнести десктопы в замарин.


Да, именно поэтому они не могли сделать

>очередную версию замарина



>А иначе бы просто сделали очередную версию замарина


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

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


Молодец что ответил на свой же вопрос, есть одно но — десктопы в целом полумёртвые.

>WPF это WPF, а замарин это замарин. Нечего их по фичам сравнивать


Так эту хуйню ты начал с первого сообщения
>>353212

>А что конкретно в замарине устарело? Вот WPF стар и что?



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


У тебя в голове это создаёт какие-то ограничения, проблему понял.

>видел. мне как то подарили


Ок, всем похуй.
623 2354214
>>354197

>Ты начал с того, что приравнял замарин к впф-у, пчел


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

вот цитата от мелких
".NET MAUI is the evolution of Xamarin.Forms, a cross-platform mobile first framework for Android, iOS, and UWP."

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


Ага. Так не могли, настолько разные что
"You don't need to rewrite your Xamarin.Forms apps to move them to .NET Multi-platform App UI (.NET MAUI)."

>Так эту хуйню ты начал с первого сообщения


а ты перечитай. А если не понял, то я повторю - WPF стар но все равно мощнее альтернатив по фичам, в том числе и MAUI. Кроссплатформенность это одна сторона медали, а когда ты упираешься в "я не могу это сделать потому что not supported" - это уже недостаток функционала. Да, я понимаю аргумент что "WPF на линуксах вообще ничего не сделать" (впрочем на MAUI тоже не особо), но с точки зрения предоставленного функционала "хочу этакую кнопку с блекжеком и шлюхами и чтобы вот так вот и не натыкаться на "это не поддерживается" - то тут WPF мощнее других"
Сам то я WPF сменил ибо в нем не фиксят баги, но все замены только усложнят жизнь, а не принесут ничего

>У тебя в голове это создаёт какие-то ограничения,


вменяемые аргументы закончились. ясно )

>Ок, всем похуй.


как и мне. просто я, практик, спорю с теоретиком.

закрыли тему
624 2354216
>>354214

>Сам то я WPF сменил


фикс на "Сам то я WPF сменил бы"
16421751907010.jpg9 Кб, 261x193
625 2354258
>>354214

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


Единственное что WPF показывает — так это то, что десктоп просто стагнирует в полумёртвом состоянии.

А замарин показывает, что в мобилах жизнь бурлит, и проёб времени закончился тем, что уже быстрее запилить 2 нативных приложения на SwiftUI/Combine чем 1 на замарине, чего уж про флаттер и рн говорить, которые мс уже не потеснить.

>WPF WPF WPF MAUI WPF


Спок, шиз.

>вменяемые аргументы закончились. ясно )


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

>просто я, практик,


написавший 2 хэловорда.

Давай, уёбывай в психушку.
626 2354274
>>354194

>В 95% случаев достаточно будет гитхаб с этим проектом показать.


А как я без разворачивания своего сервака научусь с ним взаимодействовать в коде и вообще пойму, как оно все устроено?
627 2354307
>>354258

>Давай, уёбывай в психушку.


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

А теперь еще раз по ОСНОВНОМУ ВОПРОСУ - чем "пиздецки устарел" замарин?
При всей моей нелюбви к нему - ему на замену идет мауи который выглядит так же (не удивляюсь даже что там активно переиспользовалась кодовая база) + поддержка десктопа.

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

combine/compose предлагают кардинально новый подход. мауи же брат близнец замарина. Как альтернативу там пилят MVU подход, но старый (который по твоим словам пиздецки устарел) никуда не делся.

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

никакого "пиздецки устарел и вот вам кардинально новое" - покажи где
628 2354328
>>354168
1) Покупаешь самый дешевый VPS, с самым дешевым доменом. Изучаешь IIS, настраиваешь и потом напрямую из студии делаешь туда publish и можешь показывать, что хочешь, кому хочешь. Туториалов в сети полно.
2) Если ты прицеливаешься на чистый бэк, то изучи swagger. На нем, поковырявшись в настройках, можно вполне неплохую чисто утилитарную морду сделать, которая даст доступ ко всему api с описанием и позволит его конкретно пощупать.
629 2354329
>>354274

>научусь с ним взаимодействовать в коде


С чем ты там помимо api который сам выставляешь взаимодействовать собираешься? Тебе вообще должно быть похуй, где и как он развернут, ты просто посылаешь запросы и получаешь ответы.
Ты можешь его вообще как сервис в винде развернуть и он будет у тебя в фоне постоянно крутиться - взаимодействуйся нехочу.
630 2354330
>>354328
Что так сложно то. Есть же ngrok и даже как расширение к студии
И даже если vps то iis лишнее
631 2354348
>>354330

>ngrok


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

>И даже если vps то iis лишнее


Честно говоря хуй знает. Я пару лет назад день поковырялся, настроил себе - с тех пор оно и крутится. Когда нужно что-то выложить, просто создаю новый поддомен, жмякаю кнопку в студии и проект уже там. Работает и хуй с ним. У меня там помимо всяких тестовых проектов и проектов для резюме еще своя всякая полезная мелочь крутится. По принципу закинул и забыл.
632 2354373
>>354328

>дешевый VPS


>Изучаешь IIS


Дешевый vps на винде? Это фантастика. Да и зачем? Пет проект можно и голым кестрелом выставить в интернет. Ну, если хочется поебаться, то энжинксом прикрыть.
633 2354375
>>354099
Проснулись? Отвечайте!
634 2354421
Не понимаю обобщения. Хочу я, значит, сделать универсальную функцию для типов Point, Vector, Vector2.
Все что мне нужно, это свойства .X и .Y — они есть у всех.
Но как только я делаю операции через этот ваш обобщенный тип T, пытаюсь достучаться чем-то вроде T.X, мне в ебало прилетает вот это:
X не является членом T
И че теперь?
635 2354422
Вот не пойму, допустим я описал модель классом пустышкой со свойствами, а откуда там возьмутся данные? По идее надо писать ещё один класс, который хранит уже реальные данные, имеет свойства работы с ним. Куда его пихать в модель? Контроллер? Почему этот важный момент ни где не описывается толком?
636 2354425
>>354421
Далай интерфей IHasXAndY со свойствами X и Y. И установи ограничение на тип генерика Kek<Lol> where Lol:IHasXAndY
>>354422
Чё?
637 2354433
Мужики, студия перестала обновляться, это только у меня проблема или Ma$$ заблокировало РФ?
638 2354442
>>354433
Не обновляется.
639 2354448
>>354442
Тред можно закрывать.
640 2354452
>>354433
с 2х часов ночи страдаю. Хост вроде не заблокирован (пингуется же) но не качает инсталляционные файлы.
Один раз при сотне перезапусков что то там начало качать, думал заработало но хер
641 2354454
>>354433
вернее даже не пингуется, а там апи отвечает (вот этот апи https://download.visualstudio.microsoft.com/download/pr/), но вот конкретно ссылки никак.
642 2354459
>>354422
Ты вероятно не знаком с конструкторами классов. Гугли что это, ты когда пишешь New, то при создании экземпляра срабатывает дефолтный метод внутри этого экземпляра, который и заполняет все свойствами, и вообще делает все что твоей душе угодно.

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

Несмотря на то, что ты его не писал раньше, он там есть, просто дефолтный и не делает ничего (а должен делать).

//-------------------------------
НО, ты можешь обойтись без конструктора — тогда ты должен заполнять поля класса вручную, после создания экземпляра:
MyClass HuiPizda = new MyClass();
HuiPizda.Djegurda = 666;

Но как ты понял, в случае с массивами это говно не очень удобно и придется буквальной пройтись по каждым ячейкам и назначить данные. Лучше бы это делать на ходу, а для этого и нужны конструкоры (да и вообще, чтобы каждый раз не париться с этой хуйней, особенно когда у тебя внутри этого класса куча других экземпляров класса)
643 2354461
>>354459
Это кал. Есть только один конструктор cons vsl
16417548216301.png203 Кб, 300x283
644 2354462
>>354307
>>353534

>Все новые фреймворки уже предлагают декларативный гуй с хотрелоадом, нормальную среду разработки на любой платформе (2/3 мобильных разрабов, даже ведроидеры, гоняют с маками) и нормальную экосистему либ.

645 2354463
>>354461
Я недостаточно продвинут, чтобы понять данную шутку.
646 2354475
>>354422

>а откуда там возьмутся данные?


Из источников данных. К которым ты будешь делать запросы. А результаты запросов мапить в модели. Ручками или через маппер.

Вот этого >>354459 не слушай. Пихать в конструктор что-либо сложнее прокидывания зависимостей или инициализации коллекций - долбоебство и признак гнилой архитектуры.
647 2354488
>>354475
Я для примера сказал, что в конструкторе можно все т.к. это обычная функция по сути. Просто для понимания. Но в данном случае ему как раз и нужно инициализировать коллекции (или другие экземпляры классов внутри класса).

Просто это ему надо сделать для массива из 100 экземпляров. Он забил массив экземплярами, а сами экземпляры пустые. При обращении к каждому выдает ошибку и ему придется пройтись по каждому экземпляру и забить его изначальными данными, хотя он мог это сделать на стадии конструктора.
648 2354498
>>354425

>Далай интерфей IHasXAndY


Ебань какая-то. Я хочу передать этой функции обычную структуру Point или Vector, а вместо этого я должен буду их приводить к интерфейсу, прежде чем передать.
649 2354509
>>354498
Собсно код

//Интерфейс
public interface IPoint
{
double X { get; set; }
double Y { get; set; }
}


//Метод
public static void Perpendicular<T1, T2>(T StartLine, T EndLine, ref T2 Target)
where T1 : IPoint
where T2 : IPoint
{ ... }


//Вызов не работает по причине:
//Аргумент типа "Point" не наследует или реализует строгий тип "IPoint".

{
Perpendicular<Point, Point, Point>(P1, P2, P3);
}
650 2354538
>>354442
Как ломануть Райдер последней версии?
651 2354541
>>354538
Выще писали. Или в прошлом треде
652 2354557
>>354538
Пост 120й этого треда
Но лучше самому с гитхабов качать а то мало ли
653 2354569
>>354509

>не наследует


Ну ты наследуй. Или не наследуй, выкинь генериеи и сделай перегрузки под конкретные типы как это сделано в System.Math
654 2354597
>>354433
В забуграх тоже не обновляется. Скорее всего тетя Лаура моет сервер обновлений, подождем.
655 2354608
>>354373
А зачем на винде? Все ж должно быть кроссплатформенное, нет? Я планировал накатить какой-нибудь бубунту-сервер и там крутить что мне надо.

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


Мунспик.
656 2354611
>>354569

>Ну ты наследуй.


Я пытаюсь упростить себе жизнь. Лучше уж конвертировать поинт в вектор, если на то пошло.

>выкинь генериеи и сделай перегрузки под конкретные типы как это сделано в System.Math


Ну вот моя функция принимает 3 аргумента, а еще есть как минимум 3 возможных типа: Point, Vector, Vector2. Это сколько мне надо сделать перегрузок, чтобы реализовать все вариации? 3^3?

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

Почему Object позволяет обращаться к свойствам, которые присутствуют только у его потомков, а обобщенный тип — нет? Загадка.
657 2354619
>>354611
А для кого Source Generator придумали?
Я кстати не понял почему вдруг не работает интерфейс ну да ладно
658 2354622
>>354611
но вообще я бы решал через implicit cast
659 2354636
>>354557
Код Райдера выложен на гитхабе? А за что они берут плату? За собранный проект?
660 2354667
>>354622

>implicit cast


Отсутствует в VB, но эт опо сути просто конвертер типов. Я тоже самое сделал через расширения.

>>354619

>Я кстати не понял почему вдруг не работает интерфейс ну да ладно


Мне кажется это слишком сложно для чего-то, что должно быть простым. Это будет такая же библиотека как System.Math, которая считает перпендикуляр. И она ща будет тянуть интерфейсы за собой.
661 2354671
>>354636
Кряк выложен на гитхабе
662 2354673
>>354608
Вот и я спрашиваю зачем на винде. Тебе предложили IIS+VPS, а IIS это винда.
>>354611
Значит ты так и не понял, что такое дженерик.
663 2354748
У меня сработало добавить в hosts
93.184.215.201 download.visualstudio.microsoft.com

что там майки чудят блин
664 2354758
>>354509
Попробуй заменить на IPoint<T>
{
T X
T Y
}
665 2354815
Как в вижле работать только с локальным репозиторием гита без гитхаба? Вижла постоянно суёт этот гитхаб, а я не хочу выкладывать на гитхаб.
666 2354823
Поясните за блейзор, нормальная тема круды шлепать или говно без задач? Реально ли ним можно полностью заменить нативный js? Пока вижу там везде наделали немного другой синтаксис нежели в простом mvc проекте, много ли по нем информации? Блейзор онли для spa или можно и простые страницы крафтить? Мб есть у кого нормальный вводной видео курс?
667 2354827
Где можно почитать/спиздить про архитектуру проекта? Как бы вопрос в том как дизайнить проект так, чтобы не все лежало в одном файлике на 7к строк (видел и похуже), а было распределено по паопчкам/файликам/субпроектам/солюшенам и было легко поддерживаемым кодом.
668 2354833
>>354815
Вот нашёл: https://github.com/github/VisualStudio/issues/2591
Такая же проблема. Видимо баг самой вижлы.
669 2354834
>>354833
>>354815
Так у вас разные проблемы, не?
Анон реквестит наоборот чтобы НЕ создавало гитхаб репу (честно, может не понимаю его проблему, т.к. никогда не было проблем с локальными репами), а в ишью пчел пишет о том, что он хочет создать репу в гитхабе, но та не создается.
670 2354838
>>354823
Минусы:
1) Нету либ (заинтегрять либу из npm не очень просто).
2) Ебалово с интеропом (просто так написать JS-скрипт нельзя).
3) Webassembly js размер бандл слишком огромный.
4) Производительность так себе.

Плюсы:
1) Кодовая база клиента и сервера шарится (переиспользование кода).
2) Стек технологий, которые необходимо знать значительно короче, чем в React/Angular/Vue мире.

Сюда по нашей конторе Блейзор использовани только для каких-то внутренних (не публичных) приложений клиента.
no local git.jpg55 Кб, 752x555
671 2354839
>>354834
У меня тупо нет кнопки "локальный репозиторий". Может это ограничение бесплатной версии и она только в платной?
672 2354844
Привет господа,

Не подскажете есть ли у вас на проектах или у знакомых на слуху какие-то проекты, где блокчейн используется как инструмент для решения какой-то проблемы заказчика? Может слышали какие вообще есть реальные области применения блокчейна как инструмента для более эффективной реализации чего-либо?
Спасибо.
AAAAAAAAAAAAAAAAAAAAAAAAAAAA.png10 Кб, 453x283
673 2354847
>>354839
Врем переустанавливать шиндуз
vs2022 community
674 2354849
>>354839
покажи окно git->settings
git-settings.jpg170 Кб, 971x818
675 2354854
>>354847
У тебя платная версия?

>>354849
Вот
676 2354867
>>354854

>платная


community же, т.е. бесплатная

>Вот


Ну тогда хз.
677 2354876
>>354827
Сейчас везде это используется с CQRS, конечно же.
https://www.youtube.com/watch?v=dK4Yb6-LxAk
678 2354877
>>354854
>>354839
Чел, ну ты чел. Получил такое окно, когда уже создана локальная репа и тогда пункт меню создания репы заменяется на пункт пуша репы.
679 2354881
>>354877
И как это исправить?
680 2354883
>>354881
Что исправить? Ты ку-ку? У тебя уже создано локальная репа.
681 2354884
>>354883
Как туда добавлять изменения без гитхаба?
682 2354888
>>354884
-Через студию (окно git changes)(очень кастрировано).
-Через лубую прогу для гита(кракен, сурстри и т.д.)(кастрировано, но для основных операций хватит)
-Через консоль гита
683 2354891
>>354888
Дак при нажатии кнопки "Отправить" вылазит окно с гитхабом и там нет пункта "Локальный репозиторий"
684 2354895
>>354891
Во-первых, возьми учебник по гиту.
Во-вторых ты не пушь делай, а коммит.
685 2354902
>>354895
Я не понимаю эти пуши, коммиты. У меня только кнопка "Отправить" и всё, а там выбор только гитхаб или азура.
ааа.png20 Кб, 436x375
686 2354904
>>354902

>Я не понимаю эти пуши, коммиты


>Во-первых, возьми учебник по гиту

687 2354907
>>354904
Я думал, это выпадающий список, а не кнопка. Как всегда не очевидный интерфейс вижлы...
Спасибо, теперь всё получилось без гитхабов.
688 2354912
>>354838

> Ебалово с интеропом (просто так написать JS-скрипт нельзя).


Спасибо анон, а вот с этого места поподробнее? Я разве не могу написать скрипт и просто в странице подключить его?
689 2354941
>>354844
Я работал с таким проектом. Подробностей рассказать не могу, т.к. госзаказ и НДА. Блокчейн там используется для цепочки "компоненты -> сборочные единицы -> сертификаты". Возможно еще подписание ЭЦП там завязано, но не уверен.
Насчет эффективности не знаю, не разбирался.
690 2354943
>>354902

>Я не понимаю эти пуши, коммиты.


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

>язык который не собирается без крестов


хорошо наверное работать с несамодостаточным говном?
692 2355028
>>355009
Плохо. Девки не дают, пацаны на районе не уважают, родители из дома выгоняют, прохожие плюют в след. Эх, надо было ассемблер учить. Вот там сила, там дух старой школы.

Серьезно - 2К20 на дворе. Кому должно быть не похуй?
693 2355030
>>354838
>>354912
А чё с интержопом такого? Да, в нет мвц или разор страницах проще конечно, но и здесь норм
В индекс хтмл добавляешь

​ ​<​script​>
​ ​window​.​copyClipboard​ ​=​ ​(​)​ ​=>​ ​{
​ ​navigator​.​clipboard​.​writeText​(​'ОП ХУЙ'​)​;
​ ​}
​ ​</​script​>

В .разор.кс пишешь

​await​ ​JSRuntime​.​InvokeVoidAsync​(​"copyClipboard​"​);
694 2355056
>>354943
Как научиться?
695 2355066
>>355056
На, вот тебе на котиках объяснение:
https://girliemac.com/blog/2017/12/26/git-purr/
проще некуда.
696 2355074
>>355066
хуета какая-то
697 2355077
Вопрос не совсем в тему.

Может кто-то объяснить почему разработчики читов для игр cheathappens используют .NET для своих поделок?

Писали, что у C# дела с доступом к памяти гораздо хуже, чем у Си или крестов. А тут на тебе...
698 2355081
>>355077

>Писали


Кто писал? Пальцем покажи.
699 2355089
Не понимаю я этот ASP.NET. В книжке Фримена он жонглирует моделями, кодом, а давайте напишем так, а давайте сяк, но при этом что это и как работает он не объясняет, типа читайте дальше, где он якобы всё расскажет. Дак мне чтобы написать простой сайт надо все 800 страниц прочитать, дак я забуду начало, к тому моменту, когда дочитаю до конца. Обычно книги пишут, что можно по кусочкам разбирать материал.
Прочитал половину и пытаюсь написать сам простой сайт, но ни черта не выходит. Я просто не понимаю как связывать модели с контроллерами и представлениями. У меня есть класс пустышка, а как туда загрузить данные? У Фримена так и не нашёл места, где он туда запихивает данные, т.е. нет явных операторов new над объектом. Оно типа как-то само создается?
Почему нельзя было сделать нормально без этой неочевидной фигни? У меня горит уже от этой магии. Кто вообще этот ASP.NET придумал? Может ему самому надо лечиться, а он ещё не знает об этом, не представляет.
700 2355093
>>355077
Иногда люди где-то услышат бред с одной стороны, потом бред с другой стороны, затем эти два бреда объединяют в единое целое и этой концентрированной хуйней ставят в ступор специалистов, типа "Вот известно же, что белки срут кверху жопой, но как тогда они варят кумыс?"

Да хуй знает! Ну раз делают, значит проблемы преувеличены.
701 2355098
>>355081
Школьники на перемене поспорили.
i-dunno-face.png82 Кб, 600x436
702 2355110
>>355081
Вот: https://2ch.hk/b/arch/2016-11-01/res/139077463.html#139085777 (М)
Мнение сеньора-разработчика из /b/

>>355093

>Ну раз делают, значит проблемы преувеличены.


Дык, пытаться в байто-ёбство на шарпе изварт или нет? это чем-то обосновано - выбор в пользу шарпа, весто крестов и си?
703 2355124
>>355110

>Дык, пытаться в байто-ёбство на шарпе изварт или нет?


Что такое байтоебство?
704 2355125
А что можно прямо жёстко курнуть по МВВМ. Особенно интересует момент реализации этого с БД.
705 2355133
>>355110
Не хочешь вызывать сборщик мусора — используй структуры, вместо классов, не требующие после себя сборщика. Ах да, это превращается в НИУДОБНА.
StructVsClass.mp49,3 Мб, mp4,
1200x548, 2:24
706 2355136
707 2355206
>>355110
А что cheathappens это игровой движок и его задача 60 раз в секунду обсчитывать сцену?
Во многих играх вон вообще скриптование на Lua или что то подобное используется, что еще медленнее
708 2355208
>>355136
Как такие тесты делать?
709 2355209
>>355208
BenchmarkDotNet
710 2355220
>>355208
Benchmarkdotnet
https://youtu.be/8Slzd1G7f9Q

Я больше запутался, чем открыл для себя. Уже тупо гадание на гуще.
711 2355222
>>355089
Замечательный фреймворк! Нельзя сделать, чтобы на одной странице была форма и результаты. Видите ли модель может быть только одна! Почему на РНР я как угодно могу комбинировать страницы, формы, чтобы выводить, а тут всё прибито гвоздями? И это передовая технология!? Вот реально охота плюнуть в рожу разработчикам.
712 2355224
>>355222
Если тебе так стремно, зачем ты лезешь-то? Сидел бы дальше на уютном ПэХеПе и горя не знал бы.
713 2355231
>>355224
Я слышал, что РНР-программистов заставляют переучиваться на сишарперов.

Но я представить не мог, что в ASP.NET всё настолько плохо.
Вот взять ViewBag. Это что такое? Они считают программиста какой-то красной шапочкой, что он должен складывать "пирожки" в корзинку, чтобы передавать данные от одной части приложения к другой? И вся привязка моделей по сути такая же "корзинка". Ладно бы тут была офигенная гибкость, но нет, всё прибито гвоздями. У меня только одна корзинка, а вторую я взять уже не могу. В итоге я вынужден подстраивать организацию веб-приложения под систему фреймворка, потому что он видите ли по-другому не умеет.
714 2355232
>>355222
бред какой-то
нет никакой разницы в подходах. все RoR подобные фреймворки близнецы.
Исключение - питон, в силу его особенностей (модули) и типа Nette (на пхп) где немного другой подход (который лучше кстати и печально что в асп.нет он не такой)
715 2355594
Блять, хуево сделали этот ваш блейзор, переделывайте.
Как мне передать на страницу компонент .razor данные со стороны сервера типа OnGet()? Я не хочу делать на каждый чих ебучее апи и контроллеры, я хочу хранить и доставать данные из сессии и инитить страницу ними при загрузке.
Почему нельзя было объединить эти подходы?
716 2355649
>>355594
А как ты его изучал? Книг же по нему нет
717 2355678
Планирует ли микрософт выпускать Visual Studio for Linux?
718 2355679
Я смотрю часто для нубов рекомендуют Моша Хамидани и у вас в шапке рекомендуют курс от O'Reilly Media. Все бы хорошо, но обе эти хуйни аж 2015 года выпуска, там еще .нет фреймворк 4.5, который уже три раза окаменел. Есть смысл учиться по этим курсам или лучше поискать что-то более новое? И где это новое можно добыть, чтобы на том же уровне качества подачи?
719 2355680
>>355678
Вроде как на хую они линуксоидов вертели. Поэтому на пингвине только райдер.
720 2355681
>>355649
спросил он в интернете )
721 2355695
>>355680
Я слышал, что микрософт любит линупс
722 2355703
>>355695
Вот только это не касается GUI
даже в их новомодном мауи они линукс не хотят делать
723 2355723
Двач, как-то не удобно даже спрашивать, но я завалился на классической задаче сортировки.....
И я не знаю как сделать сортировку наиболее эффективным образом.

Анончик, отчитай меня!
724 2355772
>>355679
Если тебе чисто язык с нуля, то вполне. Если язык знаешь и нужен advanced левел, то ищи что поновее.
725 2355794
>>355703
Голосуйте здесь за Visual Studio for Linux
https://developercommunity.visualstudio.com/t/visual-studio-for-linux/360479
726 2355860
>>355723
Анана по жопе тапкой!
Быстра пшол в гугл смотреть готовые реализации сортировки деревьев!
727 2355865
>>355723

> отчитай меня


Могу ещё вычитку произвести (читать нараспев, по церковному):
Гооосподи Боже святый всесущий всеведующииииииий
Ныне и присно избави раба божьего Анонимаса от тупняка в его головееееее
И ниспошли ему откровение как древа цифровые ему отсортироваааааать
И чтобы он перестал на двачах вниманиеблядствовааааааааать
728 2355948
Почему string a = 1 + "" работает, а string b = 1 не работает?
45cc23dc3effa663d2f4c8e1b0d7be3b.png103 Кб, 600x654
729 2355962
>>334153 (OP)
Сап, дотнетогоспода.
Нубыч здесь.
Поясните, пожалуйста, за практическое применение следующей хуйне:
1) Небезопасный код
2) Модификатор extern
3) Рекорды (records)
И если на реальной работе применяли, расскажите вкратце про ситуацию, где это может применяться.
Спасибо
730 2355980
>>355962
1 - например при обработке изображений может применяться, для существенного ускорения.
2 - ни разу не попадалось
3 - если архитектура по DDD, тогда полезно.
731 2355982
>>355962
Какие то странные вопросы.
1 небезопасный код вызывать понятно зачем - а как еще использовать то, что не написано на шарпах, хотя бы тот же винапи. Если это вопрос про unsafe, то это оптимизации ибо разница значительная. Тем более в до-span-овую эпоху. И даже спаны это медленнее из-за лишних проверок.
2 хз. ну он нужен для вызова внешних функций. А значит никуда без него. Для обычного чела, что не пишет биндинги - все равно время от времени пишет свой класс NativeMethods (если кодит под десктоп) для вызова винами и пасется на сайте https://www.pinvoke.net/
3 иммутабельная херь. Мне будет полезна при многопотоке. мелкие давно выкатили иммутабле пакет, но там только коллекции и вручную кодирование иммутабельных классов напрягает. Конечно рекорды не полные классы, но все же уже лучше.
732 2355986
>>355962

>Небезопасный код


Оптимизация говна из жопы. https://www.youtube.com/watch?v=JB_6NslNDVg&ab_channel=CODEBLOG

>Модификатор extern


Когда надо вызвать метод из C++ DLL-ки например, ну или из любой другой dll. Гугли p/invoke

>Рекорды


Нужно, чтобы не изменить случайно то, что не должно измениться. Просто удобная фича для того, чтобы код было приятнее писать. По сути как модификаторы доступа, как бы можно все сделать public, но это неудобно с точки зрения разработки.
u30TNFvzP-g.jpg387 Кб, 1772x2048
733 2356016
>>355962

>Небезопасный код


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

> Модификатор extern


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

> Рекорды


Ну вот надо тебе гонять данные и быть увереным что просто так они не изменятся - вот бери рекорды и хуячть. DTO те же самые, оч удобно.
734 2356020
>>355723
Держи наиболее оптимальную сортировку!
void Sort<T>(T[] input, Func<T, T, int> comparer, out T[] sorted)
{
int l = input.Length;
sorted = new T[l];
input.CopyTo(sorted, 0);
for (int i = 0; i < l - 1; i++)
{
for (int j = i+1 ; j < l; j++)
{
if (comparer(sorted, sorted[j]) >= 0)
{
T temp = sorted;
sorted = sorted[j];
sorted[j] = temp;
}
}
}
}
735 2356103
>>355678
Тогда у некоторых компаний исчезнет причина покупать винду, оно им надо? А визуалку по цене винда+визуалка покупать вообше не будут.
736 2356105
>>355948
Потому что в первом случае 1 приводится к строке автоматически, а во втором это инт, можно писать 1.toString()
737 2356107
>>356105

> 1 приводится к строке автоматически


Почему? А почему char + int будет int?
738 2356110
>>356107
Когда в выражении первый или второй член (точно не помню правила, можешь поиграться) является строкой, то всё выражение приводится к строке. А char это не строка.
739 2356136
740 2356138
Решил начать изучение Entity Framework, а там какие-то танцы с бубном, чтобы поработать с базой данных. Мне почему-то казалось, что в таких средах как Visual Studio всё должно работать в стиле нажать кнопочку "Подключить базу данных".
741 2356140
Есть кнопка и её событие, как внутри события получить доступ к свойствам данной кнопки, чтобы поменять их данные? В параметре sender вроде как должна быть инфа, но ничего кроме базовых методов там нет Нафига оно вообще надо?, а в e слишком много вложенных свойств
742 2356152
>>356140
кастуй сендер к баттону
743 2356153
>>356152
Это как?
744 2356156
>>356153
Если уверен, что обработчик прикреплен к кнопке, то так
var button = (Button)sender;
если может быть другой источник события, то
if(sender is Button button){
button...
}
745 2356179
>>356156
Спасибо
746 2356181
Почему когда я объявляю локальную переменную Point (System.Windows), то я могу в дальнейшем присваивать ее свойствам .X, и .Y значения:
Point CurPoint = new Point();
CurPoint.X = 10;


Но если у меня в экземпляре класса есть свойство типа Point, то я уже не могу отдельно менять .X, и .Y — они становятся чем-то вроде ReadOnly, при этом пометки таковой нет, но компилятор ругается, что присвоить им ничего нельзя. Что-то похожее есть во всяких свойствах .Location контролов — там ты не можешь отдельно изменить одну из осей.

Почему так?
747 2356200
>>356181
Официально, бенчмарк дот нет — это пикрил(1).
Сделал три замера и везде результат разный. Хрен с ним со временем, это может быть в рамках погрешности, но чому Rank меняется?

А еще
CurPoint.X = 10; CurPoint.Y = 10;
по времени тоже самое и порой даже медленнее, чем
CurPoint = new Point(10,10);

И ответ почему нельзя менять отдельно свойство .X, если поинт находится в классе, я так и не нашел.
748 2356222
Как сделать так, чтобы при нажатии на кнопку, она не подсвечивалась?
749 2356244
>>356222
Конструировать свою кнопку. Я вообще делаю на основе любого другого элемента, типа canvas. Только там нет события клика — они разбиты на ButtonDown и ButtonUp. Ну и последующий гемор, например пользователь может зажать кнопку мыши на одном элементе, сдвинуть курсор и отпустить кнопку мыши на другом элементе.

Но умные люди говорят, что надо все это дело сооружать на xaml, делать свой стиль. Я пока не дошел до этого. Где-то даже есть пример переделки всего мультибокса.
750 2356246
>>356181
Неужели лучше срать в тред, чем прочитать базу по шарпу? Потому что поинт это структура, т.е. значимый тип. Ты из свойства получаешь копию.
751 2356247
>>356244
Так если речь про впф, то можно просто темплейт кнопки изменить.
752 2356254
>>356244

>Конструировать свою кнопку. Я вообще делаю на основе любого другого элемента, типа canvas


Зачем? Если это WPF (или иже с ним), то там основной принцип что "как работает" отделено от "как выглядит" и настраивать внешний вид элемента по своему есть норма
753 2356255
>>356244
Звучит сложно и страшно
754 2356274
>>356181
Потому что у тебя в твоём классе Point это скорее всего проперти, т.е ты получаешь КОПИЮ структуры и хуй ты чё поменяешь в оригинале. Если так хочется внутри класса менять, то сделай Point приватным филдом и к нему прикрути проперти для доступности этой стракты наружу класса.

Это сделано как костыль от выстрела себе в хуй.
755 2356287
>>356255
Ну вот потому и предложил шатать другой элемент, типа image, canvas или panel. У тебя будет по сути плоское что-то без каких либо паразитных подсветок и эффектов, к которому ты так же привязываешь события по клику мыши, добавляешь иконки и свою подсветку.

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

>>356254
>>356247
Да про это я и писал выше. Но я по какой-то причине органически не перевариваю html\xml-подобную разметку, как будто у тебя есть автомобиль, у которого не поворачивает руль вправо. Это надо сесть и погрузиться конкретно в эти дела.
756 2356307
>>356287

> Но я по какой-то причине


по причине визуального шума конечно же
я как гляну на хамл портянку - уууу
но все же читается на порядок легче чем код.
757 2356453
Я с шарпом вашим деграднул знатно.
Пиздец. Попросил знакомый, что еще в универе учится написать простенький Make-файл. И пиздец. Я не помню как это делается. Часа 4 все либы подключал и вспоминал как там инклуды на плюсах подрубить.
Как же хуево. Мозг просто разжижается от этих ваших нугетов и прочего говна.
758 2356484
>>356453

> Я с шарпом вашим деграднул знатно.


Значит перестал жрать засохшее говно страуса, поздравляю.

> Make-файл


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

> Часа 4 все либы подключал и вспоминал как там инклуды на плюсах подрубить.


Так большинству похуй, они абсолютный путь указывают и мейком это как-то собирают, тупа хардкодя имена сорцов. Нет чтобы по-человечески сделать.
759 2356499
Сап. Ну, выучил я немного основы шарпа, вплоть до коллекций и linq. Несколько программ с бд на wpf написал. Можно наверное дальше двигаться, ASP.Net учить, получается?

Разумеется я сам нагуглю инфу и про метатнит конечно знаю. Но если вы можете что-то на эту тему из собственного опыта подсказать чё где как учить, мне бы это лишним не было
760 2356642
>>356499
Могу посоветовать professorweb.ru, там хоть C# и старых версий, но тему изучается более углубленно.
761 2356842
Используете ли вы Async суффикс в именах асинхронных действий контроллера? С одной стороны принято добавлять суффикс к асинхронным методам, с другой использование nameof() для создания путей, генерирует не очень красивые пути example.com/comment/AddAsync/. Ну тип нахрена светить вовне асинхронный у тебя обработчик или нет.
762 2356854
Мне нужна помощь тех, кто разрабатывал внутренния приложения для компании или предприятия (CAD-системы, системы управления ценообразованием, автоматизация планирования, ERP, WMS).
Расскажите, какая архитектура была у этих приложений, откуда какие данные шли и какие инструменты использовались при разработке?
763 2356893
>>356842

>использование nameof() для создания путей


Ты совсем больной?
sage 764 2356896
>>356842

> Используете ли вы Async суффикс в именах асинхронных действий контроллера?


Да

> использование nameof() для создания путей, генерирует не очень красивые пути example.com/comment/AddAsync/.


Ну так не делай так, лол
765 2356909
>>334153 (OP)
Допустим, у меня есть грид 10 на 10. Возможно ли как-то работать с ним, как с массивом? Обращаться к элементу контейнера по индексам, не зная название?
image160 Кб, 1778x1584
766 2356910
1. Почему статический метод класса String.Format(...):
String Format(IFormatProvider? provider, String format, params object?[] args)
и метод инстанса например Int32.ToString(...):
String ToString(string? format, IFormatProvider? provider)
работают по разному и дают разный результат? Хотя по смыслу ожидаешь строго идентичного поведения.
См. приложенную картинку.

2. Есть ли какой-то вообще смысл в том, как сейчас устроен IFormatProvider? Он принимает Type и возвращает Object. Т.е. имеем и рефлексию и отсутствие типизации. Зачем оно так сделано в строго типизированном языке? Это ж уровень джаваскрипта и питона.
767 2356933
>>356642
Спасибо анон, не знал о нём <3
768 2356942
Допустим, у меня есть грид 10 на 10. Возможно ли как-то работать с ним, как с массивом? Обращаться к элементу контейнера по индексам, не зная название?
769 2356994
>>356942
Всё, понял, произошёл затуп
770 2357038
>>356896
>>356893
А какие варианты? Хардкодить стринги? Запилить константы и вешать атрибуты ActionName() на все методы?
771 2357176
>>357038
ничего не делать. асп знает про суффикс Async
772 2357192
>>356910
Все дело в методе GetFormat.

>Он принимает Type и возвращает Object


В нем в параметре formatType указывается, что нужно вернуть

string.Format ожидает что вернется что то реализующее ICustomFormatter - и только ему принадлежит метод Format

А ToString() у инта ожидает что тот вернет NumberFormatInfo (региональные настройки форматирования числа),

"Параметр provider — это объект, реализующий IFormatProvider интерфейс. Его GetFormat метод возвращает NumberFormatInfo объект, предоставляющий сведения о формате, зависящее от языка и региональных параметров, о формате строки, возвращаемой этим методом. "

например

new NumberFormatInfo() { NegativeSign = "~" };

и он ничего не знает про ICustomFormatter и его метод Format

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


ну родилось оно еще в первом дотнете, а дженерики позже подвезли.
773 2357347
А можно в аргументах метода установить ограничение по размеру массива?

Мне вообще-то нужно что-то вроде структуры Thickness из четырех свойств, но только применительно к четырем углам прямоугольника (Rect не предлагать, это не то).
774 2357355
>>357347
Создай
public struct NotRect : INotRect

а в конструкторе public MyClass(INotRect notRect)
775 2357356
>>357355
Да блин, я думал есть стандартные.
А зачем реализовывать интерфейс? Можно же просто структуру.
776 2357357
>>357356

>Можно же просто структуру.


Имею ввиду просто public struct NotRect
777 2357359
>>357356

>Да блин, я думал есть стандартные.


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

>А зачем реализовывать интерфейс? Можно же просто структуру.


Привычка.
16443357390180.jpg148 Кб, 622x615
778 2357374
Позиция треда по .NET MAUI ?
image.png328 Кб, 500x560
779 2357376
>>355860

>Быстра пшол в гугл смотреть готовые реализации сортировки деревьев!


Угу-Угу

>>356020
Спасибо анон, это лучшее что я смог найти!
780 2357402
>>357347
Кортежи можешь юзать, если не хочешь сам обёртку для данных писать
781 2357406
>>357374
Скорее нет, чем да.
782 2357422
>>357402
А кортеж можно ограничить по числу элементов? Мне-то нужно сообщить пользователю метода, что нужно передать четыре параметра.

Ладно, я уже сделал свою структуру.
783 2357459
>>357422
кортеж, как и любой класс с конструктором или структура с конструктором, потребует этим конструктором задать все значения, коих 4 штукенции
784 2357460
>>357422
Картеж тут не поможет

Картеж хорош для возврата значений

(bool ok, string result) MyFunction()

Потом делаешь var c = myFunction(),

И потом легко получаешь доступ к t.ok и t.result без лишних движений.
785 2357467
>>357460
А я всегда передавал аргументы по ссылке, если нужно было возвратить больше одного значения.
786 2357508
А можно разом создать массив с новыми экземплярами в каждой ячейке?
787 2357534
>>357176
И как сделать чтоб он отсекал асинк?
<form method="post"
asp-route="someRoute"
asp-action=@nameof(KekController.LolAsync)

выдаст .../LolAsync/..
Это же дичь. Как минимум эстетически.
788 2357597
>>357534
это из-за твоего желания использовать nameof
должно быть asp-action="Kek/Lol"
789 2357598
>>357597
Ну так я и говорю, значит хардкодить.
1652731496040.jpg44 Кб, 720x540
790 2357615
>>357374

> Позиция треда по .NET MAUI ?


Сколько десятков тысяч строк в десятках манифестов там генерируется, чтобы написать хеллоуворлд? Напомни, а то я запямятовал.
791 2357678
>>357598
угу там все на конвенциях. не самое лучшее решение
Можно написать свои хелперы, которые отсекут Controller/Async
792 2357679
>>357598
что-то типа такого безумия
https://pastebin.com/kdtEAww5
793 2357723
>>355125
Бамп вопросу.
794 2357741
Аноны, есть ли в asp net core/блейзоре какой-то механизм изподкоробки для получения ошибок с сервера или надо пилить велосипед? Вот у меня есть круд, клиент отправляет через Http.PostAsJsonAsync на контроллер сервера данные для добавления нового пользователя - как мне вернуть назад и посмотреть на клиенте сообщение что такой пользователь уже существует? Где-то есть пример как это белые люди реализуют?
795 2357746
>>357422

> А кортеж можно ограничить по числу элементов?


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

> Мне-то нужно сообщить пользователю метода, что нужно передать четыре параметра.


Пойдет любая структура с конструктором, который принимает твои 4 параметра, в том числе кортеж.
796 2357747
>>357746
Хотя нет, спиздел про ограничение до 16, с другим попутал.
797 2357782
Анон, подскажи, можно ли на .Net Core WebApi создать такую штуку, чтобы можно было маршруты на лету создает.
Например запускаю я сервер и у меня наружу выставлен один только маршрут POST \api\CreateRoute
Я ему в бади отсылаю имя нового маршрута (например MyNewRoute), тип и образец того, что он должне отдавать (джейсончик какой-нибудь например)
И если все норм, то на этом сервере появляется еще один маршрут GET /api/MyNewRoute который будет отдавать то, что я задал.
Цель сделать мок сервис для тестов, который можно конфигурировать на лету, без пересборки и перезапуска сервака.
image.png45 Кб, 632x361
798 2357951
>>356020
Но тут же ошибка!
799 2357996
>>357951
Развивай мышление. Найди и устрани. Изи же.
800 2358015
>>357951
Я не понимаю что такое comparer, что это за дичь, откуда ее брать?
801 2358071
>>358015
его передадут извне.
802 2358073
>>357951
а какой смысл делать out параметр? религия?
803 2358075
>>358015
Comparer - это Func<T, T, int>
Func<T, T, int> - это любая функция вида int F(T t1, T t2)

Подразумевается, что это функция получит два объекта и вернет -1, если t1>t2, 0 если t1=t2 и 1 при t1<t2.
804 2358092
>>358075
А можно нормальную сортировку, без бубнов с подразумевания...

я вот вообще не понял как это работает

Я хочу красивый метод где в одному метсе одним параметров входит не отсортированный, а в обычном старом добром сишном ретурне выходит отсортированный.

Мне алгоритм нужен а не псевдоСахар.

ну или поясни в чем фича.
805 2358095
>>358092

>выходит отсортированный.


сортированный по какому признаку? сортировка она разная бывает
Безымянный.png23 Кб, 554x215
806 2358266
Не могу понять, почему метод Sort() у списка не сортирует его, объясните плез почему.
807 2358268
>>358266
Понял, всё он сортирует, но по возрастанию просто
изображение.png29 Кб, 367x223
808 2358354
Юзаю ентити с постгрее. При добавлении .ToList() пикрелейтед бросает NpgsqlOperationInProgressException.

Как мне тогда преобразовать запрос в лист?
809 2358359
>>358354
Уже починил, надо было просто ToList() раньше делать, сразу после места где был запрос в бд. А в пикрелейтеде у меня уже преобразование полученных из бд сущностей в объекты бизнес логики
810 2358523
>>358092

> поясни в чем фича


Метод анона универсальный. В этом фича. Туда подаётся на вход два массива специализированного под требуемый тип и функция сравнения под этот тип. И метод сортирует что угодно.

Пойми, типом могут быть абстрактные конструкции, которые сравниваются по сложным алгоритмам. Метод анона легко обработает такие типы.
811 2358553
>>358523
А чё не квиксорт а пузырь позорный?
812 2358566
>>358553
Это у автора поста надо спрашивать.
813 2358613
Как на асп нет коре узнать причину статус кода 500 на клиенте, если в контроллере нормально проходишь дебагером return Ok(сущностьнейм);
814 2358616
И в try/catch эксепшена нету.
815 2358644
>>358613

>500


В логах смотреть.
816 2358726
>>357782
Бамп вопросу
817 2358727
>>358613
В фильтрах смотри значит
FQxhQDDaUAYOf2r.jpg753 Кб, 2464x3280
818 2358747
Хм. Хм.
Допустим есть ряд железок уровня малинки.
Вооот.
Допустим у меня есть приложение, которое может к этим малинкам обращаться. На разных малинках - разное ПО крутится. Какие-то используются чтобы включать лампочки в подъезде, какие-то для того чтобы поливалку в огороде. Часть - следит за температурой и влажность в ванне и включает вентиляцию. Ну и какие-то еще хотелось бы присобачить для того чтобы можно было настроить разогрев чайника по таймеру, чтобы еду я домой, а оно мне уже горячий чайник вскипятило, а я чайку попил.
Ну, собственно, у меня есть сервер домашний с белым АйПи к которому я могу подключиться. Проблема на стороне малинок. Суть, я использовал готовые решения для всяких модбасов, чтобы этим всем управлять. Ну, и собственно столкнулся с тем, что мне приходится на стороне моего сервера - дублировать эти вот протоколы, но уже на шарпе. А т.к. я шарп люблю - возникло острое желание - и в малинках его крутить.

Собственно и вопрос-то в чем. Кто-нибудь подобное делал? Насколько это жизнеспособная система? Т.е. условно одна библиотека с реализацией протокльной части для устройства и сервера. С телефончика я услоно шлю по рест-апи на сервер запрос, допустим вида: [post]{"command":"switch_relay", "device_id":10, "delay":"00:00:30", "commandId":"1"}; сервер уже - преобразует это в запрос по протоколу - отправляет на устройство, а потом мне по веб-сокету - на телефоне приходит уведомление, что что команда принята на исполнение, а после этого еще и что выполнена. При этом протокол у устройства и сервера - на шарпе написан и соотвтетственно в малинке - дотнет. Что может пойти не так и вообще, что думаете об этом?
819 2358785
>>358747

>Что может пойти не так и вообще, что думаете об этом?


Запустил ты чайник с работы, приезжаешь, а дом сгорел.
А если серьезно то уже года 3 нет проблем с запуском .net core на малине. Можно напрямую, можно в докере (правда я не в курсе как там из докера с доступом к gpio). Из явных подводных долгий холодный старт и потребление памяти, но в твоем случае это не должно быть сильным минусом.
820 2358856
Мне нужно сделать графическое приложение, что-то вроде базы данных. Я предполагаю сделать блок, на котором будут некоторые другие элементы, в которых будут записаны данные (типа ячейки таблицы). Нажав на некий элемент интерфейса, пользователь должен мочь создать копию такой панели с точно такими же элементами интерфейса, как и первый, но со значениями по умолчанию. Такие в C# возможно, чтобы в ходе работы программы в окне появлялись и исчезали элементы интерфейса? Как такое сделать?
821 2358932
>>358856

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


Да

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


Изучить какой-нибудь фреймворк вроде WinForms или WPF в зависимости от твоих потребностей.
822 2359044
Нафига они в каждой версии всё перелопачивают так, что невозможно ничего сопоставить со старой? Сейчас пытался выполнить пример из книги, а мне фиг с маслом, потому что всё по другому. Ничего не работает и не компилируется даже. Что за бред вообще?!
823 2359051
Каким образом работать в EF, когда есть таблицы без первичного ключа? Допустим, временная таблица для чеков, накладных или прочей хероты.
824 2359058
>>359044
не бери книжку по дотнет 1.1
уже как бы дотнет 6
825 2359087
>>359058
Дак нет книжек по дотнет 6. Ещё не написали.
.png133 Кб, 325x400
826 2359104
>>359087
А пикрил?
827 2359106
>>359104
Это пустая книга и я уже прочитал по 8 версии. Знаний из неё извлёк очень мало.
828 2359118
Читаю Фримена и он выдаёт такие портянки невразумительного кода:
builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration["Data:SportsStoreProducts:ConnectionString"]));
Что это? Куда это? При этом у меня это не компилируется, потому что метода UseSqlServer просто нет.

Вот нахрена так писать, что ничего не работает. Нельзя было сделать проще? Обязательно надо сделать всё через длинные портняки непонятного кода?

ASP.NET вообще такая параша. Что он вообще упрощает? Надо заучивать миллионы такой вот хрени, чтобы запустить простое веб-приложение, когда на том же РНР тоже самое достигается парой строчек абсолютно понятных команд.
Я вот просто не знаю как его изучать. Все старания разбиваются об стену того, что ничего невозможно сопоставить. В книге пишут одно, на деле совершенно другое. В каждой версии разрабы-придурки ещё раз 100 всё поменяют, чтобы гарантировано ничего не работало. Какой-то бред...
829 2359119
>>359118

>UseSqlServer просто нет


Надо Entity Framework подключить вроде
830 2359125
>>359119
>>359118
Этот прав, да
831 2359138
>>358747

> Что может пойти не так и вообще, что думаете об этом?


Серверный скрипт гораздо короче клиентского. Ради 3.5 строчек кода тянуть тяжелый дотнет на портативную железку я бы не стал. Наверняка в этих ваших малинках есть портативные сервера искаропки, я бы потратил энное время в часах, но не более пары дней на изучение имеющихся искаробочных решений и просто сделал бы клиент на шарпе. И протокол свой, с требуемыми типами запросов и ответов. И реализовал бы его на сервере скриптами. И всё.
832 2359143
>>359118

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


Вот тут с тобой согласен. В книгах надо писать подробно расписывая всё по строчкам для новичков и опционально в конце давать однострочный вариант. Как-то так:

> HurrDurr builder = new HurrDurr();


> DBOptions options = new DBOptions();


> config = Configuration["Data:SportsStoreProducts:ConnectionString"];


> options.UseSqlServer(config);


> builder.Services.AddDbContext<ApplicationDbContext>(options);


Or if you're not derp:

> builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration["Data:SportsStoreProducts:ConnectionString"]));

833 2359172
Чистый код - в книге и по жизни
https://youtu.be/5ULrXLwhFe0
834 2359271
Поцоны поцоны. Вот мне надо выполнять некие действия раз в некое время. Генерировать и писать в Бд случайные числа
Ну в пшп это крон. А в АСП нет коре что? Нагуглил Quartz.NET. Его нормальные пацаны юзают чи есть что другое по проще и по лучше?
835 2359282
>>359271

> чи есть что другое по проще и по лучше?


Я бы на твоём месте отталкивался от платформы, на которой у тебя АСП-сервер крутится. В ней, стало быть я бы вызвал стандартный для платформы планировщик, тот же крон для линукса. И далее по накатанной.
836 2359283
>>359271
И вот еще пять секунд в гугле
https://stackoverflow.com/questions/61372133/how-to-run-cron-job-every-day-in-asp-net-core-application
пасаны насоветовали собсна и твой кварц и ещё два конкурента, и громоздкое решение от майков в стиле майков.
837 2359311
Думал, сейчас подрублю NET Core 3.1, чтобы писать спокойно примеры из книжки, но они всё выпилили уже. Пользуйся, этим корявым NET 6! Гады просто!
838 2359374
>>359311
кто выпилил? ставь и страдай.

>>359271
примитивный HostedService с вечным циклом и Task.Delay
839 2359386
>>359374
Микрософты. Есть только 3.1 рантайм, а инструментов разработчика 3.1 нет.
841 2359396
>>359394
А вижла её найдёт? Мне надо, чтобы ещё шаблоны создавала старые, а не из 6 версии, где всё испортили.
842 2359401
>>358932
А на что именно мне оттуда может пригодиться? У меня не так много времени, чтобы учить всё.
843 2359414
>>358856
Я забыл упомянуть, что эта "БД" должна быть просто локальной программой, никакого майэскеля там не нужно, никаких браузеров и веба. Только простая локальная программа и всё.
844 2359425
Как из кода XAML добавить объекту событие, которое находится в каком-то классе кода C#?
845 2359435
>>359425
Вызывать этот какой-то класс из вьюмодели, которую ты к хамлу забиндил, например
846 2359440
>>359396
С шаблонами скорее всего будет облом, впрочем надо ставить и смотреть. Я этого за тебя делать не буду. В самом тяжёлом случае, просто скачай шаблоны с форумов каких-нибудь МСДН-шных.
847 2359464
>>359396
А в чем смысл некрофилии?

дотнет 6 это коре 3.1 + сверху
848 2359471
>>359396

> Мне надо, чтобы ещё шаблоны создавала старые, а не из 6 версии, где всё испортили.


Вот ещё тебе совет из гугла:
1. Создаёшь проект такой командой: dotnet new имяшаблона --framework net5.0
2. Открываешь файл csproj
3. Меняешь <TargetFramework>net5.0</TargetFramework> на <TargetFramework>net6.0</TargetFramework>
4. Профит.
849 2359476
Сап, у меня вопрос!
The C# Player's Guide - какое на данные момент актуальное издание?
Хватит ли b2 лвл, чтобы осилить? Или стоит почитать перевод?
Если будет линк на актуальную pdf + тебе в карму анон. Спасибо!
850 2359479
>>359471
ну в 22 поправили для асп.нет коре проектов эту хероту и там при создании можно поставить галку
851 2359525
>>359476

> какое на данные момент актуальное издание?


5

> Хватит ли b2 лвл, чтобы осилить


Да

> Или стоит почитать перевод


Его нет

> линк на актуальную


https://libgen.is/book/index.php?md5=028E9A86F3D3CA10B2DE8F883D6198B3
852 2359553
>>359525
Благодарю анон!
853 2359599
>>359271
Если у тебя там логики особой нет и выполнение не критично - то >>359374 про примитивный хостед сервис, ну или можешь свой планировщик. Ну или если это на линуксе - дать крону запускать скрипт.
Если у тебя веб-приложение и вот нужно чтобы кластеры-хуястеры и надежно - Hangfire
854 2359653
Фримен и микрософты - козлы! Один всякую хероту пишет непонятную, другие всё меняют постоянно так, что старый код не работает.
Второй день бьюсь и не могу его примеры с базой запустить. Абсолютно ничего не работает.
855 2359668
>>359271
Кварц, нормальная тема.
856 2359672
>>359051
https://docs.microsoft.com/ru-ru/ef/core/modeling/keyless-entity-types?tabs=data-annotations

Либо тупо через чистый sql, в принципе так даже быстрее. Т.к. обычно работа с такими таблицами идет по следующей схеме: "Закинуть сырые данные" -> "Изменить/связать сырые данные с актуальными" -> "Перекинуть их в целевую таблицу"
Такое проще единым sql запросом делать либо напрямую из кода, либо как хранимую процедуру дергать.
857 2359673
>>359311
Ну не пизди, а. На днях только 2022-ю студию поставил, все там есть. И сдк и шаблоны.
858 2359675
>>359414
Sqlite тогда смотри.
image.png32 Кб, 1105x730
859 2359676
>>359311
Вот пример, что в 22-й студии все есть
vs2022inst.jpg152 Кб, 1275x721
860 2359678
>>359673
>>359676
А как установить? У меня только рантайм доступен.
image.png11 Кб, 466x303
862 2359701
Всем привет.
Нужно предотвратить случай, когда 2 пользователя пытаются одновременно оплатить заказ.
Сейчас делаю, как на скрине, оба платежа прерываются.
Если делаю transaction.Rollback(), то ошибка "This SqlTransaction has completed; it is no longer usable.".
Нормальное решение или нет ? Если нет, то подскажите, как реализовать ?
863 2359712
>>359701
Это не должно быть проблемой, ты используешь статический класс? Покажи как имплементирована бизнес логика.
864 2359715
>>359701
И вообще, нахрена тебе там транзакция, для простого добавления рекорда создавать транзакции не нужно, ентити сам это делает.
image.png53 Кб, 978x349
865 2359730
>>359712
Для добавления использую статический метод.
Транзакцию убрал.
866 2359734
>>359730
А где собственно проблема кроме попытки роллбека выполненной транзакции?
867 2359736
>>359712
Кстати в обоих случаях оказывается оба платежа проходят. Думал мб поставить как-то в EF уровень изоляции serializable.
868 2359739
>>359736
Я не понимаю проблему, если не хочешь что бы добавлялись одновременно сделать статический класс и очередь, нет не делай статический класс и очередь. можешь нормально объяснить в чем проблема?
869 2359753
>>359701
Зачем ты вызываешь DIspose, если он автоматически вызовется при выходе из using?
image.png56 Кб, 921x222
870 2359759
>>359739
Ну если одновременно отправить 2 запроса на сервер чтобы обновить одну и ту же запись в таблице (снять деньги со счета), то оба запроса обработаются. Пробовал добавлять таблицу, в которую заносятся счета, которые в данный момент используются в операции и проверку (используется ли сейчас счет), но при одновременном запросе это не помогает.
По идее ведь изоляция транзакций уровня serializable должна решить эту ситуацию, но хз пока, как в EF её настроить, чтобы проверить.
871 2359764
>>359753
Забей, я еблан, показалось, что это каким-то чудом помогло, но на самом деле нет
872 2359780
>>359764
Скинь текущий код, который не работает, тогда
image.png337 Кб, 599x599
873 2359798
>>359759
Я все еще не понимаю, в чем проблема сделать очередь?
У тебя же статический класс.
874 2359847
>>334153 (OP)
Аноны , на связи зеленый джун. Написал тут простенькое wpf приложение на работе. Как сделать так , чтобы после развертывания приложения при помощи установщика можно было обновлять версии приложения без переустановки программы?
2022-05-2013-46-26.png6 Кб, 624x140
875 2359860
Можно при отладке проекта, попутно запускать какую нибудь еще прогу, кроме основной?
2022-05-2013-56-05.png14 Кб, 584x551
876 2359874
>>359847
Насколько я видел в других прогах, отдельным приложением работает проверяльщик — он стучится на сервер и если там есть новый апдейт, то он скачивает его и переустанавливает основную программу.

1. Основная программа при старте запускает проверяльщик
2. Если проверяльщик нашел что-то новое на твоем сервере, то спрашивает у пользователя разрешение на установку.
3. Если пользователь соглашается, то проверяльщик закрывает основную программу, скачивает обновление, переустанавливает, запускает основное приложение и закрывает себя.

Так же и эррор репортинг часто находится отдельным экзешником (все это, конечно находится в основной директории, а не разосрано в програм файлс)
C# Semaphore.mp41,9 Мб, mp4,
608x1080, 0:59
877 2359881
>>359759
Семафор
Тик-ток дети на месте. Меня автор тоже бесит..
878 2359901
>>359881
Ну я это для теста делал. В реале ведь к базе вообще с разных устройств будет обращение.
879 2359908
>>359874
Спасибо большое ,всех благ тебе ,анончик
880 2359918
>>359908
Еще проверку на существование других экземпляров программы проверь, а то мало ли — пользователь не сохранил работу и все похерится.
Обычно программы требуют пользователя закрыть все проекты перед обновлением. Например вижуал студия.
881 2360154
есть инфа от инсайдеров, что MAUI взлетит и займет 40% рынка мобилок
882 2360169
>>360154
А книжки напишут по MAUI?
883 2360210
Блин, а там вышла книжка "Spring в действии" за 2022, а книжки "ASP.NET в действии" свежей нет.
884 2360232
>>360154

> есть инфа от инсайдеров, что MAUI взлетит и займет 40% рынка мобилок


Нет инфы.
885 2360240
>>359701
Всмысле один заказ?
В таком случае в реальном мире выносят это дело на сторону базы. А как ты хотел? Вешаешь constraint и триггеры, делаешь хранимку по оплате, которая должна падать, если товар уже оплачен, избегая таким образом блокировок накладываемых сверху транзакцией.
886 2360273
>>360154
Есть инфа, что ты уже сегодня можешь создавать полнофункциональные кроссплатформенные приложения уровня пикрелейтеда на стабильном и документированном UI-тулките.

https://github.com/picoe/Eto
887 2360287
Как же жопно в шарпе объявляются свойства. Нет дефолтного Set и Get.
В VB есть волшебное слово и никакого визуального мусора.
Property Var as Integer = 5

А еще я сегодня узнал, что можно один проект на шарпе написать, а другой на бейсике и вместе это работает. Какой я у мамы молодец, непонятно нахуя, но забавно ломать пустой мозг.
888 2360288
>>360273
Это что, возврат в виндовс формс?
889 2360299
>>360287

>Как же жопно в шарпе объявляются свойства. Нет дефолтного Set и Get.


Ты тупой?

public string PropertyName {get;set;}

или

public string PropertyName
{
get
{
if(...) ///
}
set
{
// if(...)
_propertyName = value;
}
}
890 2360304
>>360299
Ты разве не видишь, что {get;set;} это далеко не property?
Чисто механически слово набирать проще, чем микс из слов и символов. Да, можно юзать помощник VS, который поле конвертирует в свойство, но все равно я считаю пососной реализацией. Я помощник использую только для конвертации в полноценное свойство, как у тебя на втором примере.

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

Зато у вас int вместо Integer.
891 2360314
>>360288
Ни в коем случае. Твои любимые зумер баззворды MVVM и XAML там есть.
892 2360325
>>360154

>есть инфа от инсайдеров, что MAUI взлетит и займет 40% рынка мобилок


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

>>360169

>А книжки напишут по MAUI?


Это просто переименованная новая версия ксамарина. Уже миллионы книжек написаны.
893 2360329
>>360325

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


Вот с этого момента поподробнее, плиз. Давно присматриваюсь к нему, но никак руки не доходят. Есть годные гайды/туториалы для быстрого вката?
894 2360362
>>360287

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


Через какую же задницу ты гланды удалял изучал VB и C# если этого не знал. Это буквально одна из базовых особенностей .net-а
895 2360363
>>360273
Не, ну вот первый пик на мой взгляд очень охуенный. Все просто как топором вырублено, без всяких пидорских завитушек, скруглений и прочей поебени. Люблю этот старый win3.11 стайл
896 2360381
>>360325

>И всратый ксамл вместо всем знакомого html, с убогой поддержкой css


Нашел что сравнить
html - чисто язык разметки, а xaml - выражение кода через хмл.
897 2360383
>>360325

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


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

>>360329

>но никак руки не доходят


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

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

Вот взять DLL, а там не все так универсально. Библиотека на .net идет нахуй т.к. она управляемая. Вот тебе НО.
enum.png20 Кб, 659x190
899 2360516
Почему я не могу сделать ИЛИ для двух значение енума?
900 2360517
>>360430

>К тому же, в теории там что-то совместимо, а на практике даже в конкретном языке может встретиться какое


Во первых полной 100%-й совместимости в разных платформах не бывает нигде и никогда.
Во вторых для решения этих вопросов и был придуман CTS. Если твои поделия ему соответствуют, то они будут совместимы.
>>360430

>которое перечеркивает все, типа как запрет наследования.


Это вообще мимо, т.к. решение, что запечатать принимает разработчик.
>>360430

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


Ага, еще жидорептилоидов приплети.
901 2360519
>>360516
Наверное потому, что он у тебя не флаговый.
902 2360527
>>360517

>что запечатать принимает разработчик


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

>Ага, еще жидорептилоидов приплети.


При чем тут жидорептилоиды? Я просто пишу, что в 90% случаев всплывает какая-то хуйня, которая делает невозможным совместимость, потому я даже и не пытался совместить проекты на разных языках.
pupa.png5 Кб, 397x88
903 2360533
>>360519
Не. Так можно делать с любым енумом. Но почему-то через генерик не даёт.
904 2360537
>>360533
Генерик это вообще весьма частный случай. Я так же не смог через генерик достучаться к свойствам. У меня был поинт и вектор, и у обоих есть свойство .X, нот хуй там.
905 2360551
>>360537
Да ты-то дурак, не мог нормально иерархию сотворить и ограничения поставить.
906 2360553
Если есть асинхронный метод, ToListAsync, который возвращает Task, то как из него вытащить собственно сам получившийся Лист?
907 2360557
>>360553
var result = await Huy.ToListAsync()
908 2360566
Пока получилось так, может есть подводные и хз, что с производительностью, но вроде работает.
Спасибо, двач, как всегда не помог.
sss.png33 Кб, 776x269
909 2360567
910 2360575
>>360567
Чет, глядя на твой код, сдается мне, что ты неправильно енамы юзаешь.
911 2360595
>>360575
Ну тот код это просто для тестирования. А так задача простая: провалидировать значение енума. С нефлаговым все просто: IsDefined<T>. С флаговым сложнее: надо, чтобы для enum Foo { A = 2, B = 4}, значения -1,0,1,3,8... определялись как недопустимые и валидатор мог работать с любыми енумами. Вот и ебусь. Не я знаю про способ !value.ToString().All(char.IsDigit), но плодить строки это же фу.
912 2360627
Вопрос больше к тем, кто уже работал по специальности, желательно в том числе за бугром. Насколько важно знать что-то из фронтенда? Встречаю весь спектр мнений от "нихуя" до "в совершенстве знать всё + какой-то фреймворк". Спрашивают ли эти знания при приеме в джуны, нужны ли они уже в процессе работы? Если да, то что именно действительно стоит учить?
913 2360631
>>360557
Благодарен
914 2360634
>>360551
Какую иерархию? Это уже готовые структуры. Мне предлагали свое делать, а так каждый дурак сможет и без этих ваших обобщений.
915 2360635
Кто может на примере winforms пояснить, как реализовывается mvvm паттерн? Я никак понять не могу, где должна быть каждая из этих трех частей, как должна выглядеть и как сообщаться с остальными частями.
916 2360638
>>360627
Тащемта секретов тут нет. Чем мельче контора, тем меньше сотрудников в шате, тем сильнее им необходим универсал. Ну и зарплата и качество знаний по каждому вопросу там меньше.

Я думаю, что в теории ты должен знать все огульно, а дальше углубляешься во что-то конкретное. Стартовать тебе все равно придется с шарашек.
917 2360675
>>360635
никто. ибо для винформс мввм не подходит. там подходит MVP
919 2360773
Есть диалоговое окно wpf, в котором можно указать и папку и файл одновременно?
920 2360820
>>360773
Зачем? Почему по очереди нельзя?
921 2360840
>>360820
Представь, что у тебя на клавиатуре вместо одной кнопки delete, будет delete folder и delete file. Удобно? Ну вот, мне надо, чтобы пользователь указал, что ему нужно удалить: это может быть файл, а может быть папка, а может все вперемешку.
922 2360849
Кто нибудь наблюдал баг 2019й, когда невозможно работать окном свойств wpf? Кликаешь по любому свойству и окно коллапсируется. Иногда спустя время очухивается, а иногда нет.
923 2360886
>>360849
Да. Но решилась это апдейтом студии
924 2360987
>>360773
у WPF вообще беда с этими диалогами
https://github.com/dotnet/wpf/issues/438

из представленного там...
- винформс OpenFileDialog может мультивыбрать, но отдаст только имена файлов
- https://www.codeproject.com/Articles/5255769/Csharp-Select-FolderDialog-for-NET-Core-3-0 если убрать флаг FOS_PICKFOLDERS и добавить FOS_PICKFOLDERS, то можешь мультивыбрать, но получение результата нужно переписывать. Как? хз
- ookii-dialogs-wpf там типа уже сделано получение мультирезультата, но если убрать FOS_PICKFOLDERS, то все равно ((IFileOpenDialog)dialog).GetResults(out IShellItemArray results); возвращает только файлы. Так что тоже тупик. Там еще есть ((IFileOpenDialog)dialog).GetCurrentSelection но хз че с этим делать.

так что ничего нету.
925 2361049
Что лучше изучать: джаву или сишарп?
926 2361051
927 2361052
Пацаны. Помогите спроектировать правильно библиотеку для работы с TCP/IP
Смотрите какие сущности я вижу:
IAcceptor - тут все просто, метод Accept - принимает входящие соединение
IConnection - собственно само входящее соединение, имеет метод Open, Close, Input - стрим из которого приложение получает данные этого самого соединения, Output - тут приложение пишет данные и потом под капотом реализующий соединение - отправляет их куда-то
С этим понятно, аксептор нужен для сервера, IConnection - используется и сервером и клиентом.

Но дальше - я придумал выделить сущность IProtocol, которая нужна для того чтобы можно просто было ждать именно Сообщений.
И вот тут уже чет проблемы.
Как я это видел:
interface IProtocol<TMessage, TContext>
{
Task<TMessage> ReceiveMessage(Stream input, TContext context, CancellationToken ct);
Task Send(Stream output, TContext context, CancellationToken ct);
}

И меня смущает во первых - контекст. Я TContext использую, т.к. некоторые протоколы - Stateful и в зависимости от текущего состояния сессии - нужно всякое разное делать, в том числе - при парсинге - учитывать, что этот поток байт вообще этого протокола чи нет.
Во-вторых, то что оно вот так вот размазано. Потому что в коде который я вижу в интернете от, бессомненно, более умных и талантливых людей, обычно просто есть TCPServer, TCPSession и сбоку TCPClient, там просто хендлеры на Receive, Send, а протоколы делаются путем наследования и создания уже внутри клиента или сессии своих особенных штук.
928 2361058
>>361052

>Пацаны. Помогите спроектировать правильно библиотеку для работы с TCP/IP


А чем встроенная плоха?
929 2361062
>>361058
Тем что слишком низкоуровнево.
Я хочу в конечном счете получить что-то типа:

var application = TcpServerBuilder
.Use<SocketListener>(80)
.UseProtocol<HttpProtocol>()
.MapMessages(m => MyApplicationRouter.Map());
application.Run();
930 2361066
>>361051
Меня пугает обилие синтаксического сахара в сишарпе, который надо будет заучивать и в каждой новой версии они ещё накидывают. А вот джава медленно меняется и учить надо меньше и можно по старым книжкам, которые хорошо всё разжёвывают.
931 2361084
>>361066

>и учить надо меньше


и, как следствие, использовать. Там где шарпист обойдется 1 строкой - на жаве будешь городить огород, причем не всегда этот огород будет эквивалентен.
932 2361089
>>361084
Я когда вижу какой-нибудь LINQ, то мне сразу становится плохо.
933 2361090
>>361066
Тебя, по хорошему, должно пугать только то, что шарп все еще детище MS и эти черти слишком уж любят ломать через колено то к чему уже привыкли и что работает, просто потому что один из управленцев решил получить повышение, протолкнул какую-то хуйню и теперь вот у нас так. А вы как-то живите с этим.
Времена начала времен кора - оч это иллиюстрируют, когда нам сказали - теперь вы JSON'ами пользуетесь, потом - ой, чет json-хуйня, давайте обратно к XML. Или куча фигни - сломать, чтобы потом героически починить.
В жаве в этом плане - такое происходит реже и постепенно.
А синтаксис и прочее - ну, это конечно важно, но на самом деле - нихуя. Учится оно по мере использования, и учится на самом деле быстро.
934 2361092
>>361089
А что там такого в LINQ-то? Обычный Fluent(https://ru.wikipedia.org/wiki/Fluent_interface) если мы про обычное использование. В старом варианте - там да, инородная хуйня, похожая на SQL, но тем кто с SQL знаком - даже удобнее было.
935 2361100
>>361089
ну так готовь капельницу. в жава тоже есть такое - Java Stream API
но да - там ДОХРЕНА чего нет.
936 2361187
>>360595

>провалидировать значение енума.


Зачем валидировать флаговый enum ?
Ты работаешь только с теми битами которые ты в нем определил, на остальные тебе должно быть насрать. Даже если там, что-то левое приходит, просто не учитываешь это и все.
937 2361230
Учил C#, сгорел ноут, на нетбук (1 ядро х32, 2гю памяти) visual studio вставать отказался, где можно побомжекодить
938 2361233
>>361230
Я пробовал на vs code, но конечно не так удобно как в вижле.
939 2361312
>>361187
Ну вот так вот получилось. Кстати стоковый EnumDataTypeAttribute проверяет, но там вообще ух. Сначала енум упаковывается в обжект, потом конвертится в андерлаингТайп, который преобразуется в строку. Потом в строку преобразуется енум и сравниваются две строки на равенство. В общем от того, что майки сами не смогли со своими енумами ничего придумать мне полегчало и я тоже оставил у себя проверку через строку
940 2361316
>>360381

> xaml - выражение кода через хмл


Что ты такое блять несешь?.webm
941 2361369
>>361316

>блять несешь?


просвещение в массы.

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

В отличие от хтмл, который никакого отношения к коду не имеет вообще, и потому в нем "выражайся как хочешь - плоди свои тэги, пиши какие угодно атрибуты, вкладывай что хочешь во что хочешь - запретов нет"
image.png285 Кб, 1890x965
942 2361377
>>334153 (OP)
Дорогие Сеньёры-Помидоры СИшарписты, требуется помощь блядским XAML`ом.
Суть такая: делаю курсовую, нужно нашкодить систему управление складомна самом деле складами, но мы опустим эту подробность .
Пытаюсь впендюрить Listbox для вывода бд со списком товаров на складе ,впендюриваю её в StackPanel. В самом StackPanel есть разметка, так вот, эта разметка ебёт мозги и не работает, Вот скриншот со всем эти калом, помогите пожалуйста
943 2361380
>>361377
по коду не понять что изобрести пытаешься
какой то грид в гриде и с чего вдруг TextBlock в DataTemplate должны видеть все эти Grid.Column

что вообще должно быть в итоге то. картинками.
image.png444 Кб, 985x666
944 2361388
>>361380
Конкретно пытаюсь изобрести табличку как на пикреле. TextBlock в DataTemplate мне предложил сама VS, а грид в StackPanel я нахуевертил потому что подумал, что оно сработает. Ну и по поводу привязок блоков к колонне грида - VS не поругалась на это, поэтому предположил, что сработает
945 2361390
>>361388
Кто запрещает взять DataGrid или ListView(с GridView) если нужна скорость?
946 2361401
>>361390
Препод посоветовал организовать это через ListBox, ибо можно сделать темплейт по которому новые данные будут отображаться автоматически
947 2361402
>>361401
что это значит? Я бы понял еще если бы разные шаблоны для разных данных (хотя это может любой списковый компонент), но из картинки этого не следует - там обычная таблица
948 2361403
>>361402
Это была аргументация моего преподавателя, я вообщее в XAML`е не смыслю поэтому и приполз за советом
949 2361411
>>361388

>VS не поругалась на это


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

>>361403

> аргументация моего преподавателя


хз о чем он.
листбокс плохо подходит для создания таблицы. это нужно лепить гриды с SharedSizeGroup. Но зачем??? Если не нужны полностью разные строки, то бери DataGrid - он для этого и придуман.
950 2361544
Работяги, Кто-нибудь делал urn://smev-gov-ru/xmldsig/transform? Поделитесь пожалуйста
951 2361589
Как же я проигрываю с клоунского сишарпа. Когда ты добавляешь себе точку с запятой не потому что логически необходимо, а для того, чтобы мимикрировать под стадо "уважаемых пацанов". Схуя ли форматирование студии заставляет перенести открывающую скобку метода на следующую строку? В 2000х вот за такой перенос, как на пикрил, били по ебалу, насколько я помню.

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

Казалось бы, вот он плюс точки с запятой в шарпе, но нет, кек. Конечно, это не приведет к другим последствиям, но факт примечателен. Точка_с_запятой-бляди, зачем вы ее носите с собой?
952 2361598
>>361589

>Казалось бы, вот он плюс точки с запятой в шарпе, но нет, кек


к жава этих претензий у тебя нет?
953 2361611
>>361589
Тоже интересует этот вопрос. Я не вижу причин, почему не могут сделать парсер, который разбитает код на токены перед компиляцией, такой, чтобы ему не требовались знаки препинания.
Если я пишу:

> string a = "abc" int b = 123


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

> using System using Forms namespace Foo { class Bar { string a int b = 10 bool c Bar(string newA) { if (newA.Length > 0) { c = false a = newA } } } }


Всё прекрасно разделяется на токены без точек с запятой. Ящитаю, это дань традиции, когда парсеры не умели в токенизацию.
brac.png31 Кб, 608x581
954 2361613
>>361589

>форматирование студии заставляет


Прям заставляет?
cd.png34 Кб, 834x321
955 2361615
>>361611
Код он для человеков, машине и брейнфак разпарсить не проблема. А так как люди разные, то и универсального решения нет. Я бы не хотел такое читать и всегда стараюсь разносить по линиям
956 2361616
>>361613
"рекомендует"
Тут ведь интересен сам факт, что эта дефолтная рекомендация не имеет под собой основания конкретно для шарпа. Это было бы логично для бейсика, где знак окончания строки ставится автоматически.

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

Совершенно очевидно, что точка с запятой — маркетинговый ход, чтобы набрать веса среди авторитетной части программистов, болеющих терминальной стадией синдрома утенка. Инструменты студии притворяются, что им нужна эта точка с запятой.
957 2361617
>>361615
Я специально написал одной строкой, чтобы показать, что парсер в конечном итоге работает с одномерным потоком данных, неважно на сколько визуальных строк ты его разобъёшь для своего удобства. Один токен отделяется от другого пробелом, табом, кареткой в любых их сочетаниях. И всё.
958 2361620
>>361615

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



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

А вот при таком подходе проблем не будет. Тут сразу видно принадлежность скобок:
if (false == false) {
KEK.Show();
return;}
2022-05-2311-18-07.png8 Кб, 840x225
959 2361624
>>361620
Истина как всегда посередине.
1485710350181296490.png66 Кб, 468x520
960 2361625
>>361624
Пориджи попытались в демагогию.
961 2361627
>>361624
>>361620
Анон выше вообще-то к точкам с запятой доебался. Почему вы двое на скобки съехали? К ним претензий нет.
962 2361628
>>361627
Так о том и речь, что в шарпе должно быть все равно где начинается скобка — это на усмотрение пользователя. Но студия почему-то намекает, что это важно.
963 2361629
>>361628

> Но студия почему-то намекает, что это важно.


Выше анон скинул скрин, что это "важное" отключаемо в настройках, а значит это вопрос стиля, а не сложностей парсинга.
964 2361630
>>361616

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


Двачую. Надо, чтобы в настройках была аналогичная галка, чтобы отключить требование точек с запятой и писать уже спокойно без них.
965 2361632
>>361628
Это важно когда на кодом работает несколько человек. Но если все согласны использовать другое расположение скобок, то можно настроить. По-умолчания студия форматирует под общепринятые стандарты.
966 2361633
>>361620

> Тут сразу видно принадлежность скобок:


Да с чего это хрен пойми как расположенные скобки для тебя более читаемы, чем выровненные по отступам и с вертикальной соединяющей линией? А теперь накидай скобок от условий, циклов и лямбд.
967 2361636
>>361633
Ну во-первых, так тупо быстрее писать.
А тело блока я воспринимаю наличием табуляции.
В конце нет вот этого злоебучего
}
}
}
когда можно случайно захватить ненужную скобку при копировании.

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

Еще я заметил, что в шарпе не всегда автозавершение работает полноценно. Почему-то в бейсике у меня полноценно пишется .ToString(), а в шарпе я круглые скобки дописываю вручную. Тоже самое касается указания региона. В бейсике #endregion дописывается автоматом.
968 2361638
>>361636
Собственно, автокомплит в шарпе и в бейскике.
969 2361643
>>361636

>Ну во-первых, так тупо быстрее писать


По-подробнее? Я пишу открывающую скобку на той же строке и жму энтер. Студия сама переносит скобку и ставит закрывающую.

> воспринимаю наличием табуляции.


Табуляция ровно такая же.

>нет вот этого злоебучего


Зато такое }}} или вобще рандомно разбросано по строкам?

>случайно захватить


Опять же не понятно почему, они же выровнены табами + подсвечиваются + соединены линией. А вот как выцеплять скобки с концов строк неясно.
970 2361648
Написано, что создайте файл bower.json и вижла сама всё подгрузит. Создал и ничего не произошло. Как заставить вижлу выполнять свою работу? Вот когда не надо, она под руку всякую фигню вставляет, а когда надо загрузить пакеты, то хрен тебе - будет стоять и тупить, как-будто ничего не произошло.
971 2361651
>>361643

>Зато такое }}} или вобще рандомно разбросано по строкам?


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

>Опять же не понятно почему, они же выровнены табами


Речь о секундах, нужна хотя бы секунда чтобы въехать какая куда скобка. А в моем варианте я копирую на автомате.
972 2361658
Хочу использовать await, но он работает только в методе async, который требует вызова await, который работает только в методе async, который ...

Как прервать этот порочный круг? У меня есть таймер, который должен вызвать и ожидать асинхронную функцию. Как это сделать?
973 2361665
Вопрос по зумерскому блейзору - есть у меня несколько одинаковых повторяющихся блоков с элементами (input, checkbox и т.д.). На странице я могу их через foreach "динамически" создать. Вопрос в том как мне их динамически забиндить к шарп коду на клиенте? Написать через коллекции что-то типа @bind-Value="mylistvalues" или есть какое-то более элегантное решение?
974 2361668
*mylistvalues[і], вакаба съела индекс.
>>361665
975 2361669
>>361658

> await, но он работает только в методе async


Да

>async, который требует вызова await


Нет, хоть асинк без эвэйта и тупо

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


Вызвать и ожидать.
>>361651
Дай скрин с кодом как у тебя скобки расставляются.
976 2361672
>>361669

>Вызвать и ожидать.


Я не могу вызвать await, если у меня функция не async.
977 2361674
>>361672

>если у меня функция не async.


Я имею ввиду вызывающую функцию.
978 2361675
>>361672
Почему ты не можешь сделать функцию асинхронной? Ты все еще можешь ожидать таску синхронно, но бойся дэдлоков. Ты можешь работать с тасками как во времена до асинков - через продолжения задач.
979 2361676
>>361658
А зачем таймеру ожидать? это ожидание ни на что не влияет
Влияет если после ожидания перепланировать таймер, чтобы избегать накладок одновременного выполнения - но тогда лучше переписать в вечный цикл с Task.Delay
В общем таймер некуда впихнуть
980 2361677
>>361674
Ну это очевидно. Наличие асинк у вызываемого метода никак не влияет на его вызов. Это же просто указание компилятору развернуть метод в стейт машину.
981 2361679
>>361675

>но бойся дэдлоков


как я понимаю для этого придумали JoinableTaskFactory, хотя сам никогда не использовал
982 2361680
Почему ASP.NET такое говно? Чтобы сделать 3 ссаные ссылки на страницы надо городить огород из каких-то моделей, тэгхелперов, 100500 представлений, превращать контроллер в малопонятную хренотень из абстракций.
Вроде читаешь книгу по языку, то всё понятно, всё красиво. Переходишь к фреймворку и на тебя словно ушат говна выливают.
Не понимаю, в какой момент программирование превратилось в такой кал!?
2022-05-2314-21-16.png4 Кб, 854x162
983 2361717
Студия, за что ты такая свирепая? Почему тебе не нравится var? Ну функция же возвращает переменную явного типа.
984 2361790
>>361230

>Учил C#, сгорел ноут, на нетбук (1 ядро х32, 2гю памяти) visual studio вставать отказался, где можно побомжекодить


>>334153 (OP)

>2. Онлайн-компиляторы:


>— https://ideone.com/


Вот через это реально что-то наговнокодить?
985 2361815
>>361790
Дерьмо какое-то для хело ворлд.

А вс код пробовал? Он же легче даже комьюнити-версии. Там накатишь аддон для шарпа и все.
986 2361871
>>361717
Решарпер ставь ёпта
987 2361873
Как тут относятся к Rider? Есть смысл вместо визуалки попробовать? В идее и пайчарме работал, зашло (кроме градла ебаного).
988 2361934
>>361871
Все это есть и в стандартной студии.
989 2361966
Есть какой варик прикрепить к прекоммиту гита статический анализ кода, прогон линтера типа StyleCop, чтобы не давал коммитнуться при нарушениях в добавляемых файлах?
990 2361985
>>361966
Чекай git hook
991 2361993
>>361873

>Есть смысл вместо визуалки попробовать?


за попробовать не бьют. но пока там нет diagnostic tools - на студии удобнее.
992 2362068
>>360304

>Ты разве не видишь, что {get;set;} это далеко не property?


Повторюсь, ты тупой? get и set в конечном итоге развертываются в 2 метода (коими и являются). Это просто сахар.

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


Не проще. Сам попробуй по написать public string PropertyName {get;set;} или делать 2 метода get/set

>Ну и укороченная версия все равно мусорно выглядит, если так по факту-то.


Не мусорно. Просто ты жабо-долбоеб не можешь принять факт и смириться, что шарп за 10 лет развился раз в 6 лучше чем твоя залупа которой 100 лет в обед.
993 2362072
>>361066

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


Частые релизы с 5-7 апдейтами воспринимается намного лучше и быстрее чем раз в 2 года по 100500 апдейтов какого-то говна. Мало того, что багов будет пиздец как много, так еще и к хуям старая хуйня наебнется, если внезапно отрубили поддержку хуйни_Нейм.

Понятное дело что тебе джуну-мидллу похую че там нового сделали, ты замечаешь изменения только в синтаксисе. А мне вот пара изменений в IL коде критичны, поскольку могут сэкономить кучу времени при условной выборке данных.
994 2362075
>>361658
Я как-то задавал подобный вопрос на стековерфлоу. Дядя мне ответил следующее:

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

995 2362083
>>362068

>Не проще. Сам попробуй по написать public string PropertyName {get;set;} или делать 2 метода get/set


В бейсике я не делаю два метода. В бейсике я пишу:
public Property Name as string
В короткой версии у меня вообще нет {get;set;}

>Это просто сахар.


Не очень сладкий.

>Просто ты жабо-долбоеб


Я бейсикодолбоеб, ты жопой читаешь.
996 2362092
>>362083

>В бейсике я не делаю два метода. В бейсике я пишу:


Чет я проорал. Ты там с завода Красный Октябрь в Волгограде капчуешь?

>Не очень сладкий.


Ладно. видимо написать public Property Name as string это намного быстрее чем get;set;
997 2362094
>>362083

>В бейсике я пишу


А не пихуй? Пишешь prop и жмякаешь tab и студия все сделает.
мимовстрял
998 2362139
>>361985
Вопрос не про гит, а линтеры. Стайлкоп, например, не может в запуск не из вижлы, а его гитхабовский консольный аналог с проблемами.
999 2362146
>>362092

>Ладно. видимо написать public Property Name as string это намного быстрее чем get;set;


Конечно быстрее. У тебя микс из букв и занков.

>>362094

>Пишешь prop и жмякаешь tab и студия все сделает.


Да? Тогда звиняйте.
1000 2362173
>>352130
Кст хороший ответ.
1001 2362457
Как настроить студию, чтобы она не заменяла мой ввод на свои "интеллектуальные" предположения? К примеру, печатаешь одно слово, а она полностью заменяет на другое и вставляет его в код.
Вообще, есть какой-нибудь джентльменский набор настроек, чтобы сделать студию менее навязчивой?
IntelliCode.png31 Кб, 810x658
1002 2362500
1003 2362522
>>362146

>Конечно быстрее. У тебя микс из букв и занков.


студия {} поставит автоматически, ; ставишь правой, get set набирается левой т.к находятся близко друг к другу, пока ты там по всей клаве пройдешься ради всего алфавита - я уже напишу три проперти
1004 2362631
>>362522
Чел, тебе же уже сказали. В последней студии уже достатоно набрать p и нажать tab два раза и у тебя вся конструкция набрана. И остается набрать только тип и название свойства (причем курсор уже стоит там где нужно.
1005 2362676
>>362631
Чел, тебя вчерашний шторм не разбудил.
Достаточно стукнуть хуем по клаве удерживая TAB, и студия сама пишет десять пропертей, конструктор, затем открывает вкладку двача и набирает за тебя капчу.
1006 2362678
>>362676
В 2023-й экспериментальной версии если почесать правое яйцо, то расставляются все точки с запятой в конце строки, а если левое, то добавляется табуляция.
1007 2362691
>>362676
>>362678
Плохо что-ли? Хорошо же.
Главное чтобы кабанчик об этом не знал.
1008 2362781
Учу WPF и меня сильно раздражает, что фреймворк не кросспалтформенный. Стоит ли мне переключиться на изучение авалонии? Какие от этого плюсы и минусы, сильно ли оно отличается друга от друга?
1009 2362789
Какой проект можно запилить, чтобы максимум из >>352130 пощупать/выучить?
1010 2362812
Как MonoDevelop установить на винду в 2022?
1011 2362813
>>362781
плюсы - крос и другая система стилей
минусы - отличаются. будет обычно "блин да вон в WPF есть, а тут как делается, где нормальная дока, а не чат".
Например CollectionViewSource из последнего у меня - правда я авалонию не учил чтобы уж конкретно, просто нужно было сразу писать и я вижу что нету, а искать запаришься. А ранее вот не видно таблицу под линукс - и оказывается нужно добавить стиль дефолтный. А ведь на все это нужно время...если конечно авалония не твой дефолтный движок и ты все это знаешь.
1012 2362815
>>362781
А еще минус для меня - рендер шрифтов. Как ни крути - под виндой лично у меня на мониторе получается МЫЛО.
1013 2362853
>>362781

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


Авалония - это говно от российских наёбщиков.
Юзай православное импортное Eto.Forms
1014 2362894
Как лучше именовать версии?
HuinyaName-1.0.0
или
HuinyaName_1.0.0
или
HuinyaName 1.0.0
1015 2362896
>>362894

> HuinyaName 1.0.0


Я выбираю это.
1016 2362897
Как сделать, чтобы в зависимости от выбранного пользователем шаблона сайта, подгружалось разное представление.
Раньше на РНР это легко делалось через куки. Т.е. скрипт читал значение куки и подгружал нужный шаблон примерно так:
/templates/_COOKIES['template']/index.html
Но как так сделать в ASP.NET? Тут всё гвоздями прибито и ни какой гибкости.
1017 2362904
>>362897

> Тут всё гвоздями прибито и ни какой гибкости.


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

> var template = TemplatesArray[CookieManager.GetByKey("template")];

1018 2362905
>>362897
Сейчас вроде никто уже не использует ASP.net для фронта. Его нормальная ниша это чистый бэк с веб-апи. А фронт все делают либо на React/Angular, либо еще на чем-нибудь.
Так что ты херней маешься на мой взгляд.
1019 2362906
>>362897
Алсо, да. Подтверждаю этого >>362904, асп вполне может в куки, так что наворотить можно чего угодно.
1020 2362908
>>362904
>>362906
Дело не в куках, а в жесткой привязке View к структуре проекта
1021 2362909
>>362897
вечно у тебя проблемы. следи за руками
1 регистрируем services.AddHttpContextAccessor();
2 теперь мы можем в контроллере получить IHttpContextAccessor httpContext)
3 у него можем заглянуть в куки
httpContextAccessor.HttpContext!.Request.Cookies.ContainsKey("...");
httpContextAccessor.HttpContext!.Request.Cookies["..."];
4 на основании велению левой пятки выбираем нужный шаб
return View("FooBar");
или пробрасываем значение во вьюху и пусть там разгребают

1005000 раз повторяю - нет разницы от пхп, руби и так далее
1022 2362911
>>362905
еще как используют.

>А фронт все делают либо на React/Angular,


такая же маркетинговая чушь как и "рсубд устарели, NoSql рулят".
1023 2362939
>>362908
Это ты про mvc? В разор компонентах такого нету.
1024 2362956
>>362939
кто использует Razor Pages - сами себе буратины
1025 2362999
>>362909
Добавлю, что в зависимости от задач, можно это делать не в самом контроллере, а фильтре, чтобы код один и тот же код не пердолить везде.
1026 2363007
>>362911

>такая же маркетинговая чушь как и "рсубд устарели, NoSql рулят"


Ну так-то да, но к сожалению чушь порешавшая рыночек.
Но с другой стороне, на таких проектах у меня есть возможность уютно пилить свой бэк, полностью забив хуй че и как там у них крутится на фронте. Максимум согласовывая ДТО-шки с фронтовиками, а то и вовсе можно им отдельный загон с ними выделить и пусть сами пехаются с ними.
1027 2363243
Изучил основы, всё такое, куда двигаться дальше, как прям сложные вещи начать изучать? Когда сажусь за них, вообще всё сложно и не понятно, интерес пропадает
1028 2363264
>>363243
Значит все норм. Оставайся на комфортном для себя уровне.
1029 2363410
>>363264
Да, очень смешно, я имел ввиду что сложность возрастает раз в 10
1030 2363453
>>363410
Она возрастает только потому, что у тебя слабая база. Ты считаешь что изучил основы, но - нифига подобного. Ты с ними всего-лишь ознакомился и думаешь, что все постиг. А когда пытаешься перейти к более комплексным вещам, то мозг буксует, т.к. не плохо понимает основные кирпичи из которых все состоит.
Грубо говоря - это как если ты пытаешься решать квадратные уравнения только вчера изучив основные арифметические действия и толком еще не понимая где надо складывать, а где умножать.
Концепция того, что "достаточно в чем-то разобраться/понять и ты уже изучил тему" - неверная. Вернее это всего лишь часть процесса познания. А вот во второй части тебе надо именно, что задрачивать навыки, так чтобы они стали автоматическими. Только тогда более сложные вещи станут для тебя настолько же понятны как и основы.
1031 2363455
Как мне перекатиться с впф на бэк? Я просто реально не знаю, с чего начать даже. Чем вы вообще занимаетесь на работе? Каким стэком обмазываться? Как практиковаться? Всё максимально непонятно. Сколько вакансии ни смотрел, чтоб хотя бы примерно понять, куда копать, так и не понял, ибо у каждой свой набор буков непонятных
1032 2363471
>>363453
Как понять, что я освоил основы?
1033 2363558
>>363455
Если по минимуму.

Предусловия.
Хорошая знание C#. Понимание работы с коллекциями, LINQ, интерфейсы, DI, делегаты, анонимные методы, лямбды, расширения, асинхронщина и т.д.
Понимание принципов работы БД. Таблицы, связи, ключи, индексы. Знание SQL хотя бы на уровне простых запросов.
Понимание что такое HTTP запросы, в чем их суть из чего состоят. Умение работать с Postman-ом или Rest Client-ом VSCode. Знание отладочной консоли браузера.

---

Создаешь новый проект ASP.Net Core 3.1 Web Api (именно Api, а не App, не перепутай)

Изучаешь как работает DI. Как прокидывать сервисы.
Изучаешь работу с контроллерами.
Откуда они берутся, как запрос проходит через них, как формируется ответ.
Затем работа с БД и EF. Как подключать, как создавать, как обращаться и гонять данные туда-сюда.
Изучаешь типичные структуры приложений вроде луковой или cqrs. Учишься применять их правильно, а не по уебански.
Изучаешь валидацию и мапперы.
Изучаешь авторизацию.
Изучаешь логгирование.
Изучаешь swagger (опционально, но идеально для показа своих бэкэндерских высеров, если неохота к ним нормальный фронт пилить)

В принципе после этого личинка бекэндера готова. Можешь перекатываться на стажерские позиции и учить дальше.
1034 2363559
>>363471
Когда для тебя это станет как воздухом дышать.
Как минимум ты не должен задумываться что и как делает какая-нибудь конструкция в языке. Ты просто берешь и ебашишь, то что лучше подходит под ситуацию или больше тебе по нраву.
Не будешь задумываться что тебе выбрать for или while, string или StringBuilder и т.д.
Когда ты смотришь какой-нибудь пример из длинного запроса к БД через EF, ты должен именно разбирать что и в каком порядке у тебя по запросу выдается, а не пытаться мучительно вспоминать, что означают всякие => и как работают методы расширений и т.д.

Вобщем, чем меньше ты будешь думать при написании кода, тем лучше ты знаешь язык. Мозг он тренируется точно так же как всякие механические рефлексы вроде вождения или слепой печати. Задрачиваешь ситуации пока в твоей нейросетке не образуется отдельный участок отвечающий конкрентно за то, что тренируешь и дальше он действует сам независимо от тебя.
1035 2363590
>>363558
Спасибо большое. Схоронил
1036 2363633
>>363471
Когда начнешь относиться к коду не как к нерушимым заклинаниям.
1037 2363658
Немного оффтопа, но я тут некоторое время изучаю матчасть по нейросетям, и сделал для себя фундаментальное открытие, благодаря которому вот этот гринтекст считаю некорректным
>>363559

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


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

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



Спасибо всем за внимание. Просто поделился знаниями, мимокрокодя.
1038 2363688
>>363658
Не могу остановиться, потому продолжу. Вот вы понимаете, аноны, я вскрыл фундаментальную ошибку в проектировании искусственного интеллекта. Многие популяризаторы науки стращают народ тем, что якобы вот мы изобретём ИИ, а он нас уничтожит. Это ошибка, базирующаяся на вышеописанном фундаментальном недопонимании работы мозга.

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

Например, садишься в автомобиль, там беспроводной нейроинтерфейс с нейросетью вождения. Подключившись к нему, ты начинаешь осознавать автомобиль, как часть своего тела. Можешь управлять поворотом колёс, словно поворотами шеи. А так же скоростью движения, тормозами, поворотниками, стеклоподъёмниками. Нейроавтомобилю не нужно будет лобовое окно, сенсоры и видеокамеры, через встроенную нейросеть будут выдавать тебе совместимый с твоим мозгом оптический сигнал глазного нерва так, что ты естественным образом будешь видеть и ощущать ситуацию вокруг автомобиля.

И это только самый простой пример, так сказать, потребительский. А ведь подключаемые нейросети будут юзать учёные и изобретать изобретения по КД. Вот вам и пресловутая технологическая сингулярность. И в ней отсутствует главная страшилка 20 века - самоосознающий ИИ-человеконенавистник.
1039 2363691
>>363688
А если в критический момент начнётся сборка мусора?
1040 2363696
>>363691
То мы ему по морде чайником! И отучим собирать!
1041 2363704
Почему Entity Framework надо выкачивать как какую-то левую библиотеку, а она не встроена сразу в дотнет?
1042 2363707
>>363704
Потому что дотнет это не СУБД и доступ данным там не требуется абсолютно всем. И нехуй пихать в него всё подряд.
1043 2363761
>>363704
А зачем? Вдруг я хочу Dapper использовать.
1044 2363794
>>363707
Пусть лежит в пакете SDK, а кому надо вызовет. А так надо обязательное подключению к интернету.

>>363761
Почему тогда ASP.NET встроен? Для него нет замены?
1045 2363806
>>363794

>Пусть лежит в пакете SDK, а кому надо вызовет.


А давай все в SDK покладем - пусть лежит и устаревает

>Почему тогда ASP.NET встроен?


потому что веб фреймворк должен предоставлять работу с бд. так принято. традиция.
1046 2363828
>>363794

>А так надо обязательное подключению к интернету.


Ну да, проблема, ведь основной SDK и винду ты до сих пор на дисках покупаешь.
1047 2363862
А что там с книгами? Почему ничего нового не выходит? Дотнет 6 всё кардинально поменял, а книг по нему до сих пор нет.
1048 2363921
Удалёнку отменяют? Теперь только офисы?
https://youtu.be/1opxyMo2uMQ
2022-05-2617-03-42.png36 Кб, 1505x497
1049 2364075
Кто нибудь делал расширения для VS? Как сделать автозапуск команды при открытии решения?

Нагуглил какой-то ProvideAutoLoad
Я так понял там можно автозапускать при каком либо событии: открытие решения, открытие проекта, закрытие и проч.
Но у меня не фурычит и вообще не понимаю какая команда должна запускаться, если у меня несколько кнопок. Хуета какая-то.
1050 2364083
>>364075

>100500 аннотаций


>1 строчка кода


Современные стандарты программирования...
1051 2364087
>>364083
Че бухтишь дед? Там за одним методом сидит десять методов, которые базируются на 50 методах каждый.
1052 2364162
>>364075
Короче, запускается с ProvideAutoLoad — выполняется все то, что в InitializeAsync, а там только инициализация, естественно.

Ну я взял и добавил туда свой метод Test (пикрил 1), который запускает таймер (пикрил 2). И вот тут начинается ХУЕТА. Сам метод выполняется, запускает таймер, но в дебаге я получаю только одну строку:
### Test ###
После этого тишина, метод Tick не срабатывает и ничего не печатает. При этом, если я эту же функцию запускаю обычно без автозапуска, то событие таймера отрабатывает нормально. Что произошло такого, что событие не отвечает? Как отследить?
1053 2364183
ВНИМАНИЕ, ПЕРЕКАТЧИКИ!
ИЗМЕНИТЕ ШАПКУ НА .NET 6 И C# 10!

ДЛЯ ВИН-ФОРМ НИКТО НЕ ЮЗАЕТ МВВМ, ЮЗАЮТ МВП! ИЗМЕНИТЕ ЕБАНУЮ ШАПКУ!

ДОБАВЬТЕ ИНФУ О MAUI
1054 2364185
>>364162
Какой-то бред. В общем, только я обращаюсь через инициализацию в класс Checking, не важно к какой функции, у меня перестает работать таймер. Что это такое?
1055 2364196
>>364183

> ДЛЯ ВИН-ФОРМ НИКТО НЕ ЮЗАЕТ МВВМ, ЮЗАЮТ МВП! ИЗМЕНИТЕ ЕБАНУЮ ШАПКУ!


Так в шапке и не написано, что мввм в винформс используется
1056 2364229
Надо запилить кравлер с кучей скрапперов(в виде плагинов наверное), и всякие сервисы для парсинга. Решил вкатиться в этот ваш сишарп. Я жс кодерок с 4 годами опыта. Посмотрим на этот ваш дотнет, многопоточку и прочие di.

Начать решил с доки + справочника по с# с петухом на обложке. Посоветуйте, что еще почитать, посмотреть по шарпу, но не для совсем нулевых вкатутось?
1058 2364245
>>364237
Четко, спасибо
1059 2364253
>>364075
>>364162
>>364185
Методом тыка определил, что таймер начинает работать, когда я присваиваю новый экземпляр:
TestTimer = New();

Но так и не понял почему тоже самое не всегда работает на этапе объявления:
private static DispatcherTimer TestTimer = new DispatcherTimer();

Из одного метода работает, а из другого нет. Причем таймер находился в совершенно другом классе и никак не связан с вызывающими методами. Магия какая-то. Есть эксперты почему так происходит?
1060 2364259
>>364253
Сука 3 часа проебался из-за этой хуйни.
1061 2364326
>>364183

> ДОБАВЬТЕ ИНФУ О MAUI


Пошёл нахуй.
image.png231 Кб, 2518x1132
1062 2364429
>>364326

>Пошёл нахуй.


Обосрался что шарпик еще и телефоны начнет захватывать?
1063 2364443
>>364429
Я обосрался в голосину от твоих потуг форсить обосранный убогий хамарин переименованный в новое зумерское название.
1064 2364913
>>364429
Эта та самая жава, которая активно вытесняется котлином на мобилах лол )))
1065 2364924
Метанит - нормальный сайт? Можно ли выучить wpf по метаниту? Что делать, если постоянно возникает ощущение, что я учу язык как-то не так, паралельно с этим забывая то, что я уже знал раньше?
1066 2364936
>>364924
профессорвеб намного лучше имхо.
1067 2364966
Думаю в качестве джуновского пет-проекта замутить что-то вроде Эверноута, но с поправленным функционалом на мой вкус. Сложно ли будет реализовать зеленому и насколько для этого шарп вообще подойдет? Какой фронтовый фреймворк лучше всего заюзатьд для подобной задачи?
1068 2364977
>>364966

>вроде Эверноута


Лучше Obsidian за образец возьми. Но лучше ты вряд ли сделаешь.
1069 2365027
>>364924
Знач вот те таска на неделю: на wpf mvvm сделать просмотр видео, можно загружать файлы в прогу, офк будут должны сохраняться в БД. Битые файлы должны будут обрабатываться соответствующим образом. Потом кинешь репозиторий на гитхабе я те кодревью устрою с пацанами
1070 2365191
>>364966

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


Очевидный Eto.Forms
1071 2365193
>>365191
Гугл говорит, что это десктопный фреймворк, а я пока собираюсь веб делать, чтобы всю эту кухню понять и освоить.
1072 2365196
>>365193
А десктоп не фронтенд? А что? Бэк? Ну надо же. Буду знать.
1073 2365198
>>365196
Я пока в такой терминологии не шарю, понимаю фронт только как часть сайта или веб-приложения, с которой взаимодействует юзер. Это получается десктопный фреймворк можно заюзать в качестве такого вот фронтенда?
1074 2365199
>>365198
А что у тебя по инглишу в четверти?
1075 2365217
>>364924
Нет, метанит это просто справка по языку, если ты его знаешь
1076 2365245
>>365217
Не согласен. Справка по языку если его знаешь, это интеллисенс, в котором помимо автодополнения ещё и описания методов, со всеми перегрузками. Мне больше ничего и не надо.
1077 2365249
Слушайте, вот у меня есть два проекта в решении. Я первый привязываю ко второму, и теперь из второго у меня есть доступ к классам первого.

А как сделать тоже самое, но в обратную сторону? Мне из первого нужны классы второго. Ссылку я добавить не могу, получается зацикленность. Более того, в одном из проектов статический класс, я его даже передать по ссылке не могу.
1078 2365254
>>365249
Ах да, в общем задача такова, что функция из проекта А запускает функцию из проекта Б, которая по итогу своей работы запускает функцию из проекта А.
1079 2365257
>>365254
В функцию проекта б передавай делегат
1080 2365291
>>365249

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


Пересмотреть архитектору проекта
1081 2365297
>>365249
Так нельзя, тебе даже студия запретит так сделать. Вынеси логику общую в отдельный проект. Почитай про DDD
1082 2365303
>>365297
А про что прочитать?
1083 2365305
>>365303
Про DDD.
1084 2365306
>>365305
Про что именно, хули ты мне свои смайлики пихаешь? Смешно, да?
2022-05-2811-30-23.png128 Кб, 447x248
1085 2365307
1086 2365311
>>365306
>>365307
Очень грубо
2022-05-2811-35-17.png3 Кб, 528x52
1087 2365315
>>365297
Что-то сектантское. Что-то уровня девичьих приворотов.
1088 2365318
>>365306
>>365315
Может всё же айти это не твоё?
1089 2365336
>>365199
Я понимаю термин, но не понимаю суть. Есть вот например просто React для веба, а для десктопа уже юзают React Native. Или там у жс есть фреймворк Electron для десктопа, но его же в веб не пихают? Или я просто не встречался? Олсо, чет этот Eto.Forms выглядит всратенько, я хочу стильно модно молодежно, чтобы рекрутеры не подумали, что я дед.
1090 2365339
>>365318
Совершенно точно не мое. Но разве меня это остановит?
Прости за петросянство, тут скорее юмор не мое.
1091 2365342
>>365339
и то и другое не твоё
1092 2365343
>>365336
Тащемта и на десктопе тож есть фронт и бэк. Вообще, бэкенд это вся бизнес-логика. Она может быть одна под несколько платформ: веб, десктоп, мобилы. Фронт же делится на html в вебе и на xaml в десктопе. Вообще вся бизнес логика должна быть максимально отделена от фронтенда для того, чтобы можно было менять всякие формочки или странички без проблем. Таким образом мы получаем 1 бизнес логику и несколько представлений. Фронт и бэк это не только про сайты. Если посмотришь на хх или где-нибудь еще - ищут верстальщиков на xaml для WPF.
jopt.png25 Кб, 700x189
1093 2365849
Вот есть такая штука Utf8JsonWriter и мне нужно записать в него мой объект как пропертю, т.е. получить на выходе:
{
... ,
"jopt": { "foo": "bar" ... },
...
}
Получилось как на пике, но меня не покидает ощущение, что это можно сделать проще. Помогите.
1094 2365862
>>365849
Кстати, видел в зет-скрипте (не относится к шарпу) есть возможность добавить уникальную логику для первого и последнего элемента цикла.

>сделать проще


лямбды?
jopt.png11 Кб, 653x50
1095 2365879
>>365862
Я имел ввиду упростить синтаксис, чтоб не дрочить проперти, а разом объект записать. Думал есть что-то типа writer.WriteObject(string name, object o). Но в итоге как на пике тоже норм получилось.
1096 2365885
>>365879
Правда форматирование отступов едет к хуям. Так что все еще жду ваших советов.
1097 2365900
>>365879
А эти методы самописные или дефолтные?
Если самописные, то юзай конструктор.

Если дефолтные, то сделай наследник класса (если разрешено) и добавь свой метод WriteObject.
Если недоступен, то можно еще расширение сделать.

Но тут вопрос в том, как часто ты это все будешь юзать. Если ты это используешь пару раз, то нет смысла (это я про варианты решения дефолтного случая)
1098 2365985
>>356138
Ты чё охуел? EF тебе по факту и предоставляет функционал уровня "ну я там модель описал ёпта строку подключения скормил и ебать всё работает пока я машку ипу".
1099 2365987
>>356200
Акиньшин что-то у себя в докладе про бенчмарки говорил про подобную хуйню с плавающими результатами.
image.png507 Кб, 578x595
1100 2365989
1101 2366029
>>365985
Там надо миграции делать командой в консоли, а не кнопочкой в вижле!
1102 2366086
Зачем нужен FileStream если есть более специализированные Бинарные/Текстовые потоки?
1103 2366094
>>366086
Ну так тебе не только текст в файлы писать. А для BinaryReader/Writer нужен стрим в которые они будут писать, и для файлов это как раз FileStream.
>>365900
Это стандартный Utf8JsonWriter. Просто для меня удивительно, что в его апи нет метода для записи объекта разом.
1104 2366115
>>366094

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


Извечный конфликт настраеваемости и простоты. Видимо есть какие-то подводные камни, которые ты еще не осознал.

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

Тебе сначала нужно скомпоновать BezierSegment, потом добавить это в PathFigure, потом это добавить в PathGeometry, и только потом добавить в Path, а потом все это добавить на Canvas. Задаешься вопросом: а почему это не сделать одним вложением и тупо задать точки кривой, ну на крайняк сегменты? Начинаешь городить, велосипед и постепенно понимаешь, что если ты хочешь некой универсальности для всех случаев, которые перед тобой возникнут, тебе придется дробить все это на части. И на фоне настраиваемости, какой-то метод, выполняющий все настройки, становится выглядеть куском засохшего кала на волосне, который нужен одному проценту пользователей. Да, всем нужна простая функция, но у каждого свой набор конфигураций, а упрощенная функция внезапно этого не обеспечит.

Так вот, рано или поздно ты осознаешь, что лучше наложить бремя возни с настройками на пользователя, но зато обеспечить больше гибкости. Пользователь сам напишет нужную функцию.
1105 2366117
Почему метанит написан на РНР, а не на сишарпе?

https://metanit.com/sharp/tutorial/1.1.php
1106 2366119
>>366115
Алсо, я не дебил, и взял и написал билдер, который делает все это за раз:

>Тебе сначала нужно скомпоновать BezierSegment, потом добавить это в PathFigure, потом это добавить в PathGeometry, и только потом добавить в Path, а потом все это добавить на Canvas.



Думаешь я это применял в проекте? Да хрен там. Максимум для быстрых тестов.
1107 2366122
>>366117
Метанит же для многих языков, я там бейсик учил, а потом написал зонд на линкус.
Шутка. Там в новостях зонд для линукса написали на бейсике. Но бейсик я действительно учил в метаните.
1108 2366126
>>366117

>Почему метанит написан на РНР, а не на сишарпе?


Потому что в 2012 году C# был плохим языком для написания веб приложений.
1109 2366273
>>366115
По итогу все оказалось проще, хоть и не совсем логично
writer.WritePropertyName("jopt");
JsonSerializer.Serialize(writer, obj, options);
1110 2366301
>>366094

>Ну так тебе не только текст в файлы писать. А для BinaryReader/Writer нужен стрим в которые они будут писать, и для файлов это как раз FileStream.


Все равно не понимаю, какую задачу можно было бы решить только с FileStream, а не любым другим стримом.
1111 2366330
>>365254
Почему ты просто не сделаешь в проекте Б - событие, на которое подпишешься в том же проекте A?
А вообще, по хорошему, ты какую-то странную архитектуру придумал. Разбивать на проекты нужно как раз для того чтобы у тебя логику можно было переиспользовать и изолировать слои друг от друга.
Так вот, как ты себе представляешь ситуацию, когда третий проект будет хотеть и B - дергнуть функцию, а это вызовет дерганье хуйни из A? Сам-то подумай, как это потом отлаживать.
Если не хочешь события- просто хуйни все в один проект и не выебывайся.
1112 2366342
>>366301
FileStream как следует из названия нужен, чтобы работать в файлом. Х.з. что тут не понятного. При создании StreamReader/Writer с указанием пути он просто автоматически создает внутри FileStream. И про какие любые другие потоки ты говоришь? Есть MemoryStream, он пишет в память и не трогает файлы. Binary... пришет в любой стрим и не привязан к файловому. StreamWriter тоже может работать с любым стримом.
1113 2366414
>>366301
ты можешь сколько угодно наворачивать абстрактных стримов, но в итоге тебе все равно придется написать код, который будет открывать файловый дескриптор, работать с ним, правильно закрывать. И все это будет с контрактом стрима - вот это и есть FileStream

Так что с любым другим стримом ты не можешь писать в файл, ведь они тупо не знают ничего про файл, про системные вызовы и так далее.
7.png44 Кб, 681x444
1114 2366439
>>366414
>>366342
Я понял. В голове просто все смешалось поначалу с этими стримами. Я не сообразил, что одно работает поверх другого.
1115 2366567
Почему сраная виржуал студио лагает сильнее, чем даже игровые движки? А они полноценное 3д пространство рендерят в реальном времени, а не просто строчки кода
1116 2366583
>>366567
Если тебе от студии нужен только рендер кода, то возьми notepad++ vs code.
1117 2366633
>>366567
было бы что рендерить. основное делает видяха.
1118 2366656
>>366583

> vs code


А там winforms и wpf есть? А maui?
1.png12 Кб, 328x487
1119 2366707
>>366439
Не то чтобы в тему. Но пиздец как же меня эта лесенка из скобок заебала в шарпах.
Вот уродливо же.
И как охуенно в сях...
1120 2366732
>>366707
Что мешает писать как и в сях? Кроме здравого смысла - ничего. Но здравый смысл лучше послушать
1121 2366782
>>366567
Там парсинг всего проекта в риалтайме, с логикой. Ты условно переменную удалил, а студия начинает шарить и смотреть как это повлияло на проект. Твои игори до сих пор не могут в то, чтобы можно было пнуть рандома на одном конце карты и чтобы это повлияло на события на другом конце. Можно ли в ведьмаке срубить дерево, из-за которого краснолюд не получит работу, сопьется и не построит мост в Новиграде? Ммм?

Кстати, студия какая-то непостоянная. Когда переходил на c#, то она предлагала такой вариант создания нового экземпляра:
Huemoe H = new();
А потом в какой-то момент такая "Нихуяшеньки, давай вот так:"
Huemoe H = new Huemoe();
(хотя может это потому что я подключил inelsence)

То настаивает на упрощенном варианте каких-то вещей, но при этом не любит вот это:
var H = new Huemoe();
Хотя присваеваемый тип очевиден и неопределенности быть не может.
image.png16 Кб, 251x506
1122 2366783
В чем разница и что это такое?
1123 2366841
Вот что мне не хватает в вижле, дак это автодобавление using, при написание кода. Приходится ручками дописывать их, а если не напишешь, то "интеллектуальная" система не понимает, что я хочу.
1124 2366847
>>366841
Хз, само добавляет же почти всегда. Может какие-то классы из некоторых нюгетов не понимает, но в целом всякие ефы, юзинги локальных классов - все добавляет по альт ентеру
1125 2366858
>>366841

>"интеллектуальная" система не понимает, что я хочу.


1. Понимает и может сама добавить (см. контекстное меню подсказок). Просто есть как минимум два логичных варианта решения задачи: добавить юзинг или дописать к типу полное имя. И тут студия уже не понимает какие у тебя планы.
2. Добавление юзинга на автомате может привести к конфликту имен нескольких библиотек, и вот такое тихое добавление может попить тебе крови. Только вот вчера с этим столкнулся — добавил юзинг и мне перекосоебило весь проект, пришлось даже перезагружать (удалил юзинг, собрал проект, а студия все равно видит конфликт).

Так что самый подходящий вариант — первый, полуавтоматический. Напиши функцию из отсутствующей либы, и если она стандартная, то ПКМ из подсказки выбери один из вариантов: добавить using, или дописать полное имя.
1126 2366907
>>366783
Разница в возвращаемых значениях. Это варианты реализации IEnumerable

>>366841

>Приходится ручками дописывать их, а если не напишешь


и правильно. откуда кому то знать когда нужно диспозить. даже человек не всегда знает (потому что сам паттерн диспоза очевиден, но с недостатками).
1127 2366954
>>366707
Во первых ты можешь настроить конфиг проекта и студия сама будет тебе их расставлять как надо.
Во вторых стиль К&R, который тебе нравится - уебанский. Он может быть экономит тебе целую строку текста (байтики сейчас дорогие да), но зато ебет мозг при изучении и рефакторинге хоть сколько нибудь комплесного кода. Не будь утырком используй стиль Олмана.

>>366782

>Кстати, студия какая-то непостоянная. Когда переходил на c#, то она предлагала такой вариант создания нового экземпляра:


Это тоже все настраивается в конфиге проекта.
1128 2366956
Если я запущу отдельным такском
await Task(() => File.SetCreationTime(targetFile, curTime));

То это ведь не гарантирует, что таск завершится только когда функция завершит свою работу? В этом случае он бесполезен?
1129 2366959
>>366956
await - это сахар для
var a = GetAwaiter.Task();
a.OnCompletion(){ };
1130 2366966
>>366959
А что подразумевается под a.OnCompletion(){ };
Чем это отличается от того, что функция дошла до конца? Ну стартанул я в таске копирование файла, которое длится пять минут, в это время таск мгновенно комплит не дожидаясь фактического завершения копирования.

Т.е. по сути это ничем не отличается от вызова обычной функции?
1131 2366971
Аноны, где можно спиздить все курсы по шарпу с ITVDN?
1132 2366977
>>366966
Я что-то в конец запутался в основах. Почему когда я копирую файл, программа не дожидается завершения функции и начинает выполнять следующие? Разве не должно быть последовательное выполнение операций? Где та грань, когда я должен вызывать await и просто пользоваться a = 5 + 3; без ожидания?

Почему не сделали наоборот, чтобы можно было указать, что "вот эта функция должна работать синхронно — не жди, иди дальше"?
Тогда почему фризится GUI при циклах? Совсем каша.
1133 2366998
>>366966
В этом и суть, что когда доходишь до перевого awaita управление возвращается в основной поток, а этот с задачей продолжается фоном
1134 2367003
>>366998
Но await не даст идти дальше, пока не завершится таск.
Это блокировка того, что должно идти своим ходом.
Ничего не понимат.
1135 2367006
>>366956
если там Task.Run то гарантирует. в этом случае он полезен если что то должно выполняться в фоновом потоке и нужно дождаться результата. Нормально для вызовов из GUI
1136 2367036
>>366977
Потому что ты путаешь Task и Thread.

Task - это параллельное программирование, не многопоточное.

Попробуй перепиши программу например так
Task T = (асинхронная задача)

остальной код.
await T;
1137 2367145
https://www.youtube.com/watch?v=9CDgPgWF9IY

Мнение по required вместо конструктора?
1138 2367163
В чем разница using и try/catch? Юзинг освобождает низкоуровневые ресурсы, но при этом не ловит исключения?
1139 2367167
>>367163

>В чем разница using и try/catch?


Может using и try/finally?
1140 2367169
>>367145

>Мнение по required вместо конструктора?


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

>>367163
using !=catch а finally
1141 2367171
>>367167
>>367169
В смысле using вызывает Диспос метод, но не ловит исключения, в этом отличие?
1142 2367172
>>367171
именно так
эквивалент
try{
...
finally{
.Dispose()
}
1143 2367173
>>367172
спасибо, понял
1144 2367176
>>367145
Битва ради чего? Ради фигурных скобочек вместо круглых? Что мешает писать вот так:
public class Test
{
public Test(int Huy, int Pizda, int Djigurda){}
}

public void Main()
{
var t = new Test(
Huy: 1,
Pizda: 2,
Djigurda: 3);
}

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

Типа как в RectangleGeometry, который не принимает x, y, with, height, а принимает Rect, который как раз и принимает x, y, with, height.

Если у тебя десятки обязательных аргументов, то это повод задуматься. В чем смысл этого дерьма?
1145 2367180
В смысле нельзя в шарпе передать аргумент опционально по ссылке? А в бейсике можно.
1146 2367183
1147 2367187
>>367183
да, но чтобы аргумент был необязательным.
1148 2367189
>>367180
Как это в бейсике?
1149 2367204
>>367189
вот так
Sub Test(Optional ByRef a As String)
End Sub
1150 2367205
>>367204

>Sub Test(Optional ByRef a As String = "")


фикс
1151 2367295
>>367176
Как я понимаю, все ради того, чтоб не писать конструктор просто лишний раз когда особо и не надо, вот этот весь
ctor(string a, int b){
A=a;
B=b;
}
Понятно что во всяких di нет смысла в этом, а в среднем по больнице - вполне идея.
Не уверен пока только как погроммист будет понимать, что там реквайред, а не конструктор
1152 2367321
>>367295

>Не уверен пока только как погроммист будет понимать, что там реквайред, а не конструктор


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

А внешне, думаю, будет выглядеть абсолютно так же, как если бы там писался кастомный конструктор. Он ведь и так сейчас автоматически создается, даже если пользователь не писал. Что поменялось? Будет так же невидимая рука рынка шарпа делать всю работу за программиста.
1153 2367324
>>367205
А если прогнать через IL и посмотреть что выходит?
freeman-kozel.jpg27 Кб, 632x236
1154 2367331
Какой же Фриман всё таки козёл! Написал нерабочий код, а я должен разгребать. Посмотрел в версии книги для асп 3.1 он полностью переписал всё так, что у него даже файлы другие и всё по-другому. А мне теперь разгребай. Да откуда я должен знать, почему эти сранных методов нет!? Очевидно, микрософты - козлы, их выпилили. Зачем? Хрен его знает! Надо же создавать иллюзию работы, вот и выпиливают куски кода. И ведь прошло всего 3 года. В другом языке это всё бы работало без проблем, но только не здесь. Измения ради изменений.
2022-05-3018-39-12.png183 Кб, 474x314
1155 2367332
>>367145
Летит программист в высокоуровневом крылатом сишарпе, все выше, и выше, и выше.
Так и не нашел старую озвучку — одно говно новое, поэтому будет только скрин.
1156 2367347
>>367331

> а я должен разгребать



да. это недостаток достоинства модели подключения модулей асп.нет кор. Удобство - подкинул нюгет пакет и services.AddFooBar и радость. Но если чужой отрывок кода и просто тупо не знаешь что нужно подключать. Даже знание неймспейса не поможет ибо к какой либе оно относится. И решарперовский поиск по нюгету оп неймспейсу не особо помогает.

И это мешает читать чужой код не в иде ибо хз из какого неймспейса класс.
1157 2367353
>>367295
кейс

обычный класс анемик модели с кучей get/set. как любят разные орм.
И вот мы создаем такой объект и думаем "а как бы тут защититься от человеков" - и лепим конструктор. Но вот беда - поля то все равно открыты... и закрываем их. И тут уже ломается наш орм который не умеет через конструктор все делать. Ну делаем для орм пустой конструктор - и снова опасность от человеков который макакооспой заражаются.
делаем конструктор интернал - и ничего не работает.

туда же и сериализаторы разные. Я аж удивляюсь что нельзя сделать интернал/привате конструктор.

Вот для таких случаев очень не хватает required,
1158 2367730
Что лучше в начале прочитать: Рихтера или Скита?
1159 2367732
>>367730
А какой у тебя уровень? Если низкий то тебе рано скита читать. Если нет понимания архитектур, паттернов и прочего, а только знания синтаксиса и возможностей C# - то нет смысла читать скита
1160 2367740
>>367732
Уровень: прочитал Троелсена.
1161 2367746
>>367740
Это ни о чем не говорит. Зайди на sharplab.io и сделай асинхронный метод какой-нибудь и посмотри во что он компилируется компилятором. Или сделай метод с yield return. Если поймешь хотя бы больше половины - читай Скита
1162 2367792
Подскажите дорожную карту изучения ASP.NET Core
1163 2367823
помогите с тестом:
.core 5.0 апи метод контроллера должен вернуть сгенерированный файл txt в кодировке windows-1251, попробовал несколько вариантов из гугла, файл всегда в кодировке utf-8
1164 2367842
(int) всегда берёт ближайшее большее целое?
1165 2367977
>>367823
я конечно хз че там с кодировками, но всегда можно отдать как байты.
1166 2368000
советую, пока не поздно, вкатится в разработку на MAUI
платформа выглядит крайне перспективной на айти рынке
майки наконец смогли показать, что они могут в кроссплатформенность
1167 2368020
>>368000
шутник )))
1168 2368022
>>367977

>но всегда можно отдать как байты.


А ты не очень умный.
1169 2368030
>>368022
не буду спорить. я не настолько умен, чтобы плодить кодировки. предпочитаю использовать везде юникод.
1170 2368043
>>367977
да был бы у меня выбор пихнул бы всё в пдф.
но вот нужен именно txt в определенной кодировке
1171 2368074
>>368043
ну если не работает
https://docs.microsoft.com/ru-ru/dotnet/api/microsoft.aspnetcore.http.results.text?view=aspnetcore-6.0
(внимание также на комментарии по ссылке)
то я напомню, что http протокол, как и любой другой, шлет байты.
1172 2368088
Как вы изучали ASP.NET Core?
1173 2368098
>>367792
>>368088
Сначала изучи тему сетей и протоколов, osi, весь стек tcp/ip, попрактикуйся с реализацией этих алгоритмов на чистом Си. Потом уже можешь к асп переходить.
1174 2368099
>>368098

>Сначала изучи тему сетей и протоколов, osi, весь стек tcp/i


Чек. У меня даже сертификат Cisco CCNA есть

>попрактикуйся с реализацией этих алгоритмов на чистом Си


Зачем мне тогда асп, если я напишу сам всё?
1175 2368189
>>368000
Даже линупс приложения можно писать?
1176 2368256
Кто нибудь писал расширения для студии?
Как там выводить сообщения в Immediate Window?
1177 2368287
>>368189
Сообщество будет поддерживать.
1178 2368387
Интересна тема машинного обучения. Стоит ли мне учить какой-то другой, заточенный под эту задачу язык?
1179 2368422
>>368387
Да, другой.
И тема машинного обучения в плавне "интересности" сильно переоценена. Если у тебя мозг явно не заточен под это (и я не про любовь в математике и решение задач, а скорее колупание в статистике), то будет смертельно скучно.
1180 2368532
Как сконвертировать байты в мегабайты?
мегабайты = байты /1000000
мегабайты = байты / 1024/ 1024

И что показываешь виндовс в проводнике? Мебибайты или мегабайты? Почему нас в школе учили, что в мегабайт равен 1024 байту?
1181 2368534
>>368422
Так процесс всегда скучен. Интересен результат.
1182 2368553
>>368532
Самое простое для запоминания.
Байт - единица хранения данных.
Бит - единица скорости передачи данных
1183 2368556
>>368532

>что в мегабайт равен 1024 байту?


готовили из вас кассиров для пятерочки. в мегабайте 1024 килобайта, а не байта

а меби юзают только маркетолухи для разводняка народа и все. Программисты этим не страдают. Правда есть оговорка, что маркетолухи решают, вот как ДЕБИЛЫ с кнопкой пуск, да и вообще всей 10+ виндой, но все же....

Кто проводник писал - программисты или маркетолухи?
1184 2368557
>>368532

>И что показываешь виндовс в проводнике? Мебибайты или мегабайты? Почему нас в школе учили, что в мегабайт равен 1024 байту?


Учили тебя правильно. Но есть такие ублюдки как маркетологи. Которые решили, что мы будем писать на жестком диске 100Мб и все будут думать, что там 102400 байт, а на самом деле там будет 10000, а разницу в карман. Та же самая фигня и с гигабайтами и с террабайтами.
Ну так вот, Билли не прогнулся под мудаков и винда показывает честные x1024 все единицы. А вот у пингвинояблочников соснули и жрут маркетологический высер.
1185 2368561
>>368532

> Как сконвертировать байты в мегабайты?


Так

> мегабайты = байты /1000000



> И показываешь виндовс в проводнике?


Мебибайты

> Почему нас в школе учили, что в мегабайт равен 1024 байту?


Потому что так написано в Постановлении Правительства РФ
Естественно, там не 1024 байта в мегабайте, а 1024 килобайта
1186 2368617
>>368557
Вот это нежданчик, не знал.
1187 2369497
А правда, что сейчас все отказываются от Visual Studio в пользу VS Code?
1188 2369537
>>369497
кто эти все? меньше слушай байки.
1189 2369590
>>369497
вс код, насколько я встречал, в основном служил для редактирования. Если тебе нравится урезанный функционал, то вперед, если тебе нравится добирать плагинами то, что из коробки у студии, то вперед.

Единственное, как это дерьмо влияет на жизнь — это лезет в выдачу поисковика при запросе студии.
1190 2369599
Слушайте, а можно как-то игнорировать хит по элементу, который расположен слоем выше в WPF? Я так понял, если есть хоть 0,1 непрозрачности, то он будет блокировать хит нижнего элемента.

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

Еще была идея сделать битый пиксель в иконке.
1192 2369638
>>364936
в профессоре совсем нет ничего про async await.
1193 2369658
>>367003
и правильно сделает, что не даст идти дальше. Поскольку метод Main завершится быстрее, чем скопируется твой файл во вторичной таксе.
1194 2369692
>>334569

>nullable eference types - спорная штука


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

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


Кал говна
1195 2369695
>>334924
Не делай так никогда. Partial тоже не используй, разве что если хочешь генерируюмую часть от самописной отделить.
1196 2369699
>>335532
Солид не для вкатунов. Просто забудь пока для него. Пока не поешь говнокода на проектах, не поймешь зачем он нужен. Говнокод можно кстати написать, если слишком упарываться по солиду, потому что в этом деле нужно искать баланс.
image.png15 Кб, 903x483
1197 2369703
Двач, нужна помощь.
Есть кнопка, создающая на windows форме массив кнопок. Нужно модифицировать этот код так, чтобы программа создавала эти кнопки в виде цветков. Пытался найти в гугле и что-то нифига дельного не нашел. Код можно глянуть тут https://0bin.net/paste/SxhzkgTX#9gwqRes9DFl4kdmFRL53+BLC-R6x36mzGCxLzG/6FtY
1198 2369705
>>339422
pluralsight.
1199 2369710
>>342956
В превью версии можешь, в 11 шарпе добавили дженерик математику. Олсо в джаве фейковые дженерики со стиранием типов в рантайме.
1200 2369715
>>369703
Что значит в виде цветков?
1201 2369716
>>346975
Двачую базированного шарписта. Хотя не во всем с ним согласен.
image.png266 Кб, 416x396
1202 2369721
>>369715
ну что-то в виде вот этого
1203 2369736
>>369703
Растровых? Тогда кидай .png на бэкграунд c прозрачным фоном, у кнопки выстави флат-стиль и выстави в ноль обводку.

Если нужно поменять контур кнопки, то надо переходить на wpf. Я именно из-за этого туда и перешел — там можно векторный контур использовать в качестве формы кнопки.
1204 2369745
>>369599
Чекай isHitTestVisible
1205 2369751
>>369745
Охренеть. Какая же клевая штука, я уже нацелился городить города. Вообще-то я уже непоправимо нагородил кое чего.
1206 2369790
>>369751
А нужно было всего лишь нормально погуглить..
1207 2369821
>>369710
А что там с ковариантностью и контравариантностью?
1208 2369935
А можно как-то узнать, что экземпляр класса удален?
Вот я создал
var R = new MyRectangle();
а потом снова
R = new MyRectangle();

Как узнать, что первый удален со всеми данными? Писали, что сборщик мусора сделает все сам, но у меня например был случай, когда там оставалась подписка на событие и экземпляр продолжал спамить в консоль, хоть переменной я уже присвоил новый экземпляр. Как быть уверенным?
1209 2369989
>>369935
Деструктор написать. Но и там вроде гарантий нет.
Есть ещё iDisposable
1210 2370009
>>369935
R = null
1211 2370031
>>370009
Разве это не просто удалит ссылку?
1212 2370039
>>369935
Переходить на концепцию lifetime-ов. Для веба обычно людям хватает того, что встроено в DI (лично мне не очень), а для десктопа нужно пошире решение.

>>369989

>Деструктор написать


финализатор не будет вызван ибо объект не потерян

>Есть ещё iDisposable


Очевидная, но слабая концепция
1213 2370126
>>369935
Вызвать GC.Collect, GC.WaitForPendingFinalizers и проверить что объект - null
А что ты хотел в управляемой среде-то?
А такие проблемы как у тебя - решаются профилировщиком и следованием гайдлайнам.
0 fEhv9-qJAAfBkDOT.png11 Кб, 536x160
1214 2370131
Вот я пишу свой велосипедный http-сервер. Ну, типа чтобы лучше понять как это все работает.
Ну, собственно - когда я пробую дудосить этот вот сервер - примерно прикриплейд наблюдается. Т.е. горбатый коллектор - постоянно что-то там удалить хочет.
Я и пулы памяти вроде использую, и переиспользую AsyncEventArgs, но вот такая вот хрень.
Как мне узнать причину и какие есть способы снизить число дерганья GC?
1215 2370256
>>370031
Если на объект нет ссылок GC смывает его в парашу.
1216 2370430
Задача со звездочкой.

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

В общем суть такая, у меня есть список объектов у которых внутри могут быть списки с такими же списками, глубина условно не ограничена. Так вот мне надо имея айди обьекта удалять его из любого уровня в котором он бы не находился, я пока придумал только фор форов н-форов, что делать Анон?
1217 2370442
>>370430
Подписывать объекты при их создании на ивент удалить(айди). Если айди == мой, то удалить себя.
1218 2370447
>>370430
Ну или рекурсией ещё. В рекурсивной функции будет только один фор, который перебирает список чайлдов и для каждого чайлда вызывает эту же рекурсивную функцию. Таким образом, ты вызываешь один раз удалить(айди) для корневого элемента, он сначала смотрит, не равен ли айди его собственному, если равен, то сам сразу и удаляется. Иначе вызывает удалить(айди) для каждого чайлда, который так же вызывает для каждого своего чайлда, который также... ну ты понел.
1219 2370453
>>370447
А чем это лучше фора в форев н-форов?
1220 2370456
>>370442
А вот тут поподробнее, как это сделать, первый раз о таком слышу.
есть, где пример как это работает?
1221 2370467
>>370456

> есть, где пример как это работает?


Есть. В МСДН. Я уже на обед убегаю. Давай сам. Учись добывать инфу.
1222 2370473
>>370453
Лаконичнее в плане кода. Но затратнее в плане памяти. Вообще задача говно, а не со звездочкой, и все только потому, что кто-то дико проебался с проектированием классов.
1223 2370482
>>370430
Типичный поиск по графу. Хочешь в глубину, хочешь в ширину.
image.png288 Кб, 860x784
1224 2370487
>>370482
А можно это сложный и долгий алгоритм обойти вот как этот >>370442 анон предложил? Он что-то адекватное запостил?
1225 2370489
>>370487
Я как-то не понял например что значит "удалить себя"
1226 2370503
>>370489

> что значит "удалить себя"


Удалить ся из списка и отдать ся во власть ГЦ. Или если объект диспозабл - диспознуться.
image.png288 Кб, 860x784
1227 2370508
>>370503
ММ, ясно... ничего не понял.
1228 2370515
>>370430
Анон хочет удалить:

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


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


>>370508
Ему посоветовали, как удалить. То что не понял ты - конечно печально для тебя.
1229 2370518
>>370515
Извини бро, но диспозабл элемента коллекции в коллекции которая не должна диспоузнутся это звучит как толстый троллинг... ну или я не понял
1230 2370525
>>370518

> ну или я не понял


Или я невнятно выразился. Я имел ввиду:
1. Удалиться из коллекции.
2. И только потом, в зависимости от типа объекта:
2.1. Ничего не делать, ГЦ сам всё сделает.
2.2. Самостоятельно диспознуться, если объект диспозабл.
1231 2370539
>>370525
Но у меня же в евент хандлере не будет доступа к родительской коллекции.
image.png9 Кб, 694x85
1232 2370543
>>370525
Ну вот кстати что пишут на стак оверфлов по поводу этого.
1233 2370568
>>370430
Просто Сериализируй твою коллекцию и удали все что тебе надо из нее одним заходом с помощью обычного регакса, а потом десериализируй обратно, ИЗИ ЖЕ НУ!
1234 2370637
Шарпаны, сколько примерно может стоить написания враппера для двача?
1235 2370650
>>370637
Студенты могут сделать такое на лабе.
1236 2370652
>>370543
Поэтому бери старую добрую рекурсию.
1237 2370654
>>370652
Да, я подозревал что магии не получиться,
прям закон сохранение вычислительной способности получается.
1238 2370667
>>370650
Что-то ты переоценивашь студентов. Даже в рамках курсовой 95% не сможет.
1239 2370812
>>370487

>Он что-то адекватное запостил


Нет. Это оверхед. Граф обойти проще.
1240 2370816
>>370568
самый правильный подход.
1241 2370822
Пересел с крестов на шарп. Это просто язык богов. Столько возможностей, голова кругом идёт.
1242 2370823
>>370812
Что есть "обход графа" как не фор форов, до которого додумался вопрошающий изначально?
1243 2370833
>>370822
только выразительности не хватает, наследие поганой жавы
1244 2370836
>>370833

> выразительности не хватает


Например?
1245 2370877
>>370836
все познается в сравнении. тебе не с чем сравнить, поэтому для тебя норм.
я же пишу еще на котлин и питоняше и у меня на шарпе глаз дергается. в котлин упор на минимизации синтаксического шума (хотя не без WTF иногда), в шарпе же "делаем свою жаву".

такого добра много, но все вспоминать..., да и где грань между "синтаксически уродливо" и "нет такого функционала вообще"
- точки с запятой.
- if не возвращает значение (хотя бы switch завезли но то такое).
- нет блоков let, also, with и т.д. if(param is {} v) выглядит уродливо. Своя реализация Let тоже. Ну Also еще можно слепить как extension
- определение ламбд где необходимо всегда упомянуть параметры (нет неявного it) и проставить =>
- уродливая сигнатура функций вида Func<int, string, string> - бррр
- нет Unit в шарпе. Я уже ранее писал, что это адски мешает если ты либописатель и либописатели обычно просто плюют на все и вводят свой Unit (пример реактив и тот же Medaitr)
- неймспейсы. тут товарищ выше писал что хер поймешь откуда класс. но это 2 стороны одной медали - в котлине нужно указать весь импорт и это может быть емко. Но тут я за котлин ибо можно *
- в котлин можно функции без классов, а также можно делать extensions для статически классов. в шарпе приходится лепить ClassEx
- val (а не только var) полезен. А еще так обозначаются свойства. В
- в шарпе все лепят IList, который к тому же не кастануть к IReadOnlyList (поэтому и лепят IList)
- как же достало что нельзя использовать везде Array.EmptyList<T> ибо "неизвестно во время компиляции".
- аналогично с string.Empty
1246 2370898
>>370877
Дак в котлине всё равно JVM со всеми недостатками рантайма типа стирания типов.
1247 2370901
>>370898
но разговор то о выразительности кода (лаконичность, минимальность "а как это выразить"), а не о рантайме

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

на шарпе же вечно "да сколько можно писать этот new" ) или какой то анализатор жалуется на Task.Run "рекомендуется использовать перегрузку принмающий скедулер" и просто мозг сломаешь подобрать эту перегрузку из подсказок (а если зайти в доку то там от <<<<>>>> глаза потекут)

шарп сильно слаще жавы, но все же в основе своей "делаем свою жаву"
1248 2370935
>>370877

> тебе не с чем сравнить


Говори за себя, вычислитель знания по переписке.
1249 2370940
>>370935
лол.ты сам сказал что пересел с крестов. Был бы в твоем багаже более выразительный язык чем кресты - ты бы скромнее в оценке шарпа.
1250 2370941
>>370901
Получается лучше изучать джаву, а потом переходить на котлин, а не маяться с сишарпом?
1251 2370944
>>370941
нет конечно
жава вообще страх и ужас.
И я так то не защищаю котлин, а критикую шарп
но нахожусь то я все равно в треде про шарп.

котлин более выразителен - факт
но жава рантайм все портит.
1252 2370954
Вот все говорят: начинайте с практики, а потом читайте книги/изучайте теорию.
Ок, сажусь писать свой сайт на ASP.NET. И что я могу без теории написать? Ничего! Только потыкать стандартную заготовку и закрыть редактор.
1253 2370957
>>370940

> ты сам сказал


Ты что-то путаешь, я крестов ваще не знаю. И "пересаживаться" мне не надо. Я просто беру нужный язык и пишу на нём, держа под рукой документацию. Ифы и форы там везде одинаковые.
1254 2370958
>>370954
Речь не про продакшен-левел веб-сервисы, дурилка, а про простые программки уровня калькулятора.
1255 2370962
>>370944

> котлин более выразителен - факт


Какой факт? Чем именно эта параша более выразительна? Это же не язык, а дрисня!
1256 2370969
>>370958
Ещё проблема, что по ASP.NET MVC 6 нет книг. Я находил только старые книги по ASP.NET MVC 2 на русском и 3.1 на английском. Но они уже не актуальные и код из них не работает.
Я где-то с апреля пытаюсь разобраться, но всё разбивается о эту несовместимость.
1257 2370992
>>370969
Попробуй МСДН вместо книг. Будь современным!
1258 2370999
>>370957

>Ты что-то путаешь, я крестов ваще не знаю


бывает. тут все аноны, а мне откуда знать кто тут кто. Первоначалный пост был про "пересел с крестов".

>>370962

>Чем именно эта параша более выразительна?


много чем. достаточно сделать порт с одного на другое увидеть разницу. Там сразу минимизирован синтаксический мусор вида new, ;, единственный параметр в лямбде (вместо него неявный it), if возвращает результат, изначально нормальный switch, вменяемые enum, у которых значение может быть не только число, наличие Unit из коробки, val, изначальное разделение коллекций на мутабельный и нет, возврат из лямбд и так далее
А всякие там делегация свойств, расширение скоупов, расширение статиков позволяют делать шикарные DSL.

Я люто ненавижу жаву и ее рантайм, но выразительность котлина отрицать не могу - получается короче и менее замусорено чем в шарпах.
1259 2371006
>>370969

>по ASP.NET MVC 6 нет книг


За каким хуем вы все в эту 6-ку с нуля лезете-то?
3.1 вполне себе актуальна, на данный момент и инфы по ней достаточно. Изучаешь, практикуешься. Потом перескочить на 6 будет дело недели-двух времени.
1.png63 Кб, 1547x908
1260 2371011
>>370430
Я бы как-то так делал...
1261 2371020
>>371011
Ты рекурсию нарисовал.
1262 2371021
>>371006

> За каким хуем вы все в эту 6-ку с нуля лезете-то?


В этом треде сидят сороки-белобоки, любящие всё новое, блестящее.
1263 2371026
>>371021

>всё новое,


почти год уже дотнету 6, который при этом LTS
1264 2371028
>>371020
Ну да. Что в этом плохого?
1265 2371033
>>371028
Ничего. Её сразу предложили в треде, некоторые покочевряжились, но в конце все сошлись в том, что рекурсия топ. А ты её нарисовал блок схемой, даже не зная, что это она и есть.
1266 2371050
>>371026

>почти год уже дотнету 6, который при этом LTS


Ебаклак еле 7 месяцев с релиза прошло, какой год.
Ты попробуй сначала проекты нормальные найди на 6-м дотнете-то, чтобы имело смысл за него браться игнорируя все предыдущее.
1267 2371052
>>370969
А там разница кроме стартап.кс есть? Я вот сделал свой минидвач на мвц на .нет6 по книжке для 3.1. Литералли разницы никакой
1268 2371054
>>371050
мне искать не нужно. у меня давно перешли. это ведь не равносильно переходу с 4.8 на кор
Ощущения крайне положительные.

>>371052
вот именно что разница не "старое все сломалось нах". Да и стартуп никуда не делся. Ну да пришлось програмс.кс подправить.
1269 2371189
>>371050
Зачем искать проекты на 6 дотнете, если на него прекрасно переносятся проекты с 5 + новые фичи и повышение производительности. Сколько проектов не перенес, только одно ломающее изменение в Npgsql было.
1270 2371200
>>371020
Это поиск по графу в глубину
1271 2371231
>>371200

> кококо, это баззворд по баззворду


Это рекурсия, чувак.
1272 2371244
>>371231
Алгоритм можно реализовать как рекурсивно, так и итеративно.
2022-04-2208-46-10.png63 Кб, 1410x533
1273 2371254
>>370901

>больше ориентирован на задаче и самый минимум на том "а как это выразить"


Смотрел недавно какое-то видео по питону и мне чуть не поплохело. Типа
a = 5
b = 5
a is b //true

a = 1200
b = 1200
a is b //false

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

Как в бэ скинули родмап по джаваскрипту, а там какие-то поднятия, какие-то let помимо var. Но если все это посмотреть, то дерьмо создано только для того, чтобы уйти от логики большинства языков, и что характерно создает проблему, которую либо вот так оставляют, называя ее ПОДНЯТИЕМ, к примеру, либо фиксят изобретением велосипеда, типа var на смену let (нахера ее изначально придумывали, дундуки?)

Ну да МЫ ЖЕ ДОЛЖНЫ СОСРИДОТАЧИВАТЬСЯ НА ЗОДАЧЕ, а в итоге голова засрана какой-то хуйней из исключений из правил. Ебал я в рот петухон и жаваскрипт.
1274 2371268
Можно в студии как-то чистить список ошибок? Иногда возникают такие, типа ошибки записи в файл, когда вроде файл давно освобожден, сборка успешно прошла, но ошибка висит мертвым грузом и не собирается уходить.
1275 2371295
Ньюфаговопрос. Вот есть у меня два класса, в каждом есть большой жирный метод. В другом классе я хочу вызывать эти методы, но не сразу, а сначала часть метода из первого класса, потом часть из второго, потом снова часть из первого (с того места, где в прошлый раз была остановка) и так далее. Какие мне слова гуглить для такой реализации?
1276 2371297
>>371254
потому что ты ожидаешь что питоновский is то же самое что шарповский, а это не так.
(кстати это типичная проблема "со своим уставом...". Я изучил туеву хучу языков, но с котлин у меня была проблема, пока я не перестал искать аналогии с шарпом и тогда произошел взрывной рост обучения)

в питоне все норм с типами, это не пхп, где все приводится в число и не жаваскрипт, где вообще хз что происходит.

> а там какие-то поднятия, какие-то let помимо var.


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

В шарпе как то не приживается это все. Вот кто использует контрактное программирование от мелких, кроме них самих в фреймворке? Даже в визуал студии слепили свое vs-validation. Кто использует IReadOnlyList вместо "везде IList"? Все на авось, все по нашему.

>в итоге голова засрана какой-то хуйней из исключений из правил


поверь это не так. Питон прост как сатиновые трусы, то есть основан на простых принципах и о них не думаешь. Я много пишу на обоих языках и на питоне в разы быстрее именно из-за нулевой загруженности "а как тут выразить". И, самое главное, есть подсказки типов, из-за чего intellisence работает.
1277 2371302
>>371295
пишешь ручную кооперативную многозадачность? зачем?
Обычно они решаются (если нет async/await) через yield (генераторы в питоне, файберы в руби, а в шарпе ...ну посмотри на корутины в Unity). в общем гугли c# корутины
1278 2371340
>>371297

>я хз че такое let, но если иммутабельная переменная, то штука полезная.


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

>пока я не перестал искать аналогии с шарпом


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

>потому что ты ожидаешь что питоновский is то же самое что шарповский


А шарповский он логичен, у меня не вызвало никаких вопросов. А у питона это типа "ну ты должен с этим смириться, ты должен держать в голове еще один подводный камень".
1279 2371343
>>371295

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


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

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

>Я способен что-то отпустить, если оно покажется мне более простым или функциональным


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

>или подписку на события


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

>А шарповский он логичен, у меня не вызвало никаких вопросов


это работает в обе стороны. если бы ты был питонист, то при изучении шарпа бы точно так же жаловался. И is в питоне означает "тот же самый объект", что не менее логично чем "var is string"
1281 2371359
>>371345

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


Я тебе на примерах расписал, что могу.

>И is в питоне означает "тот же самый объект"


Я был бы согласен, если бы это работало всегда. Теперь поясни, почему это те же самые объекты
a = 5
b = 5
a is b //true
хотя это разные переменные с разными ID. И почему тут внезапно они стали действительно разными, как и должно быть:
a = 1200
b = 1200
a is b //false

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

>var is string


Си шарп как раз сравнивает ссылки. А ты приводишь пример сравнения по типу.
1282 2371367
>>371359

>Теперь поясни, почему это те же самые объекты


потому что в питоне все объект, то есть вообще все. все построено вокруг этого. И само собой это не дается даром, поэтому питон кеширует числа от 0 до не помню сколько ради экономии памяти (аналог шарповского string.Intern) - и на этом все.

Не мешает ибо вряд ли кто захочет сравнивать тождественность ссылки для числа вместо простого сравнения через ==. is это аналог ReferenceEquals. И даже если бы в шарпе числа были ссылочными, часто бы ты использовал ReferenceEquals? Да и вообще часто используешь ReferenceEquals?

>Си шарп как раз сравнивает ссылки.


Не знаю о чем ты. is в шарпе это изначально оператор проверки типа (https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/type-testing-and-cast#is-operator)

c#: obj is MyType
python: isinstance(obj, MyType)
1283 2371368
>>371359
не забывай. питон старше шарпа на 10 лет и даже старше жавы. Он появился еще до всех этих концепций современного программирования и в нем заложены простые принципы, которые удачные и поэтому в 22 году этот язык такой популярный
1284 2371406
Мне тут бабки во дворе рассказали, что любое считывание значения от пользователя надо оборачивать в TryParse. Мол, быстрее работает и ошибок можно избежать. Ладно если надо просто проверить, число ли ввел юзер, а вот если надо еще проверить, что это число меньше 100 и больше 0 и надо повторять запрос до корректного ввода, то получается достаточно большой огород из циклов и условий. Это норма или можно как-то лаконичнее это сделать?
1285 2371410
>>371406
для валидации согласованности данных используются валидаторы. А считывать через Try или исключения - тут холивар
1286 2371480
Почему порядок инициализации членов классов такой всратый? C# специально так проектируют, чтобы он как можно более непонятный и нелогичный был?
image.png273 Кб, 720x478
1287 2371635
>>371480

>1 пик

1288 2371660
>>371635
Двачую этого. Какой-то патриот реши тральнуть кириллицей. Игнорируем петуха.
1289 2371702
>>371660

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


Ебало имаджинировали, как он после каждого слова переключал раскладку?
1290 2371708
>>371480

>Класс Поле


В котором поле _Поле
1291 2371719
Почему по джаве столько классных докладов, а по сишарпу вообще ничего нет?
1292 2371722
>>371719
шта шта? да одного дотнетконф и дотнетру на трубе смотреть не пересмотреть
1293 2371767
Сап, аноны. Никто не знает где можно книгу «ASP.NET CORE В ДЕЙСТВИ» (2021, на русском) скачать? Просто я ебал, у меня нет 2-3к сейчас… В интернете нашёл только версию на английском. Попытался начать читать конечно, но выходит супер медленно, я слишком слаб.
Её можно купить в PDF формате. Ну неужели блять никто не слил её в интернет?

Вообще не понимаю как этот ASP.Net осилить уже
1294 2371775
>>371767
Ну или посоветуйте книжку по asp.net не ниже 5.0 на русском пожалуйста
1295 2371850
>>371775
Метанит
1296 2371892
Подскажите как инициализировать COM-компоненту на C#.
1297 2371895
>>371850
Я слышал, что там майнер встроен
wtf.png20 Кб, 1439x258
1298 2371905
Как это работает? У меня мозг уже вытекает.
- Вызываю services.ConfigureApplicationCookie, он принимает Action<ConfigureApplicationCookie> в качестве конфигуратора
- Я ему скармливаю лямбду options => options..., где options это очевидно ConfigureApplicationCookie
- Затем настраивая этот ConfigureApplicationCookie я вызываю options.EventsType, который внезапно принадлежит не ConfigureApplicationCookie, а AuthenticationSchemeOptions и эти типы никак между собой не связаны. Как такое может быть?
1299 2371908
>>371895
Это было на professorweb.
1300 2371909
>>371850
Двачую. Вкатуны какой-то кал лезут добывать в бумажной оболочке, то вообще всякие Герберты Щиты с С# эры палеолита. Когда бля все тоже самое написано на Метаните и за бесплатно. ВСЕ сука тоже самое, главное под актуальную версию и местами даже лучше.
myWVKi67VI4.jpg28 Кб, 320x314
1301 2371912
>>371892
ПАМАХИТЕ НУ КТО НИБУДЬ.
1302 2371914
>>371905

> - Я ему скармливаю лямбду options => options..., где options это очевидно ConfigureApplicationCookie



> https://docs.microsoft.com/ru-ru/dotnet/api/microsoft.extensions.dependencyinjection.identityservicecollectionextensions.configureapplicationcookie?view=aspnetcore-6.0



>и эти типы никак между собой не связаны


> public class CookieAuthenticationOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions



Троллишь чи шо?
1303 2371915
>>371909
Я не знаю троллишь ты чи нет. Но вот лично мой опыт: я посмотрел метанит, увидел кучу годных коротких кукбуков. Если этого там нет что мне надо - посмотрел на SO. Если и там нет - пошел уже на MSDN. Из книг по шарпу читал только CLR via C# и то в вузе, просто потому что препод-ебанат заставлял ее прочитать и принимал по ней зачеты, понял на тот момент из нее я ровно нихуя.
1304 2371917
>>371914

>Троллишь чи шо?


Блять. Реально мозг вытек. Я смотрел по F12 и не увидел наследования, а теперь смотрю есть. Короче всем удачи, я поехал в дурку.
1305 2371926
>>371767
У меня есть, кину в тренд как домой приду
format.png78 Кб, 941x358
1306 2371932
У всех ломается форматирование разора при добавлении sucktion section или время переустанавливать шиндуз?
1307 2371950
>>371909
Дак проблема, что это сайт, который в любой момент может закрыться. А книгу можно скачать на читалку и спокойно почитывать, не портя глаза.
1308 2371955
>>371932
Тоже ломается. А иногда чинится лол, оче ебано работает кароч
1309 2371957
>>371950

>это сайт, который в любой момент может закрыться


Если не будешь закрывать вкладку - не закроется.
1310 2371958
>>371932
Да, у всех. У меня на трёх ПК так, не ебу с чем связано. Думаю майкам просто впадлу делать нормально форматирование страниц и они забили хуй.
1312 2371974
>>371958
Мне в джава-треде сказали, что шаблонизаторы не нужны и теперь все делают REST API приложениям. Это в ответ на то, что Razor лучше Thymeleaf.
image.png172 Кб, 600x600
1313 2371985
>>371972
Спасибо.
1314 2371986
int characterCount = s == null ? 0 : s.Length;

int characterCount = s?.Length ?? 0;

Почему-то мне первая строчка гораздо понятнее, чем этот шарповский сахар, который надо ещё разворачивать в голове.
1315 2371996
>>371986
Дело привычки, наверно. Но сахар раскрывается на йоба выражениях. Пример из мсдн:
return setsOfNumbers?[indexOfSetToSum]?.Sum() ?? double.NaN;
1316 2371997
>>371986
Тернарные операторы для конченых долбоебов дрочащих на кол-во строк
1317 2372013
>>371926
Ебаааать спасибо анон
1318 2372020
У кого-нибудь есть C# 9.0. Справочник. Полное описание языка Джозеф Албахари в электронной версии?
1319 2372055
>>371660
Оно так намного понятнее и читаемее для носителей русского языка. Смысла сейчас использовать английский - никакого.

>>371702

>Ебало имаджинировали, как он после каждого слова переключал раскладку?


Раскладка переключается за пол секунды. Да, это добавляет капельку неудобства я вообще себе хочу педаль сделать под стол, чтобы когда ее нажимаешь - использовалась английская раскладка, а когда отпускаешь - русская, да все руки не доходят, но если программист предпочитает экономить секунды на нажатия клавиш написанию простого, понятного и читаемого кода - это говнокодер, а не программист. И это я еще молчу про экономию времени на этапе, когда ты лезешь в гугл чтобы узнать, как правильно "бухгалтерия" переводится или не ошибся ли ты в написании "frequency".
1654431424481.png878 Кб, 800x600
1320 2372068
>>372055
Хаха! Маладец! Всё по делу разложил!
1321 2372070
>>372055

>как правильно "бухгалтерия" переводится или не ошибся ли ты в написании "frequency".


То, что ты чмоня не умеяющая в английский, не означает, что остальным так проще.
Раскладку туда-сюда переключать тебя может и не заебывает, если ты аутист которому в кайф повторяющиеся механические движения. А вот дергать мозг из одного языка в другой такое себе удовольствие для нормального человека.
1322 2372071
Как делать вывод отчётов в впф из ебучего сервера отчётов?
1323 2372079
>>371926
Боюсь проебать момент и потеряться. Если можешь, то продублируй в тележку ещё пожалуйста @arabskiyrock
1324 2372080
>>372055

>Раскладка переключается за пол секунды


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

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


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

>как правильно "бухгалтерия"


Да пиши ты транслитом.

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


Ясно, жир.
1325 2372105
>>371635
Вот вы над челом >>371480 ржете. А я в реальности видел такой код в реальном проекте. Т.е. вот так вот:
private Mutex поле_критическаяСекция;
private int поле_числоПовторений;
private int поле_времяОжиданияМиллисекунды;
private Socket поле_сервер;

...

И вот знаете что. Это был довольно понятный код. И этот код с 2005 года никто не трогал. Хотя прогер уже давно в MS съебал работать.
Такие вот дела.
1326 2372112
>>372105
1Сник.
1327 2372128
>>372070

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


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

>>372080

>Это да, но у тебя полсекунды через каждые полсекунды. В сумме это много времени.


И очень качественный код. Выбор очевиден.

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


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

>Да пиши ты транслитом.


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

>Ясно, жир.


Ну да жир. Жертвовать качеством кода потому, что долго кнопку нажать - не говнокодерство. Яснопонятно.
1328 2372204
Прочитал сейчас эту статейку: https://docs.microsoft.com/ru-ru/aspnet/core/tutorials/first-mvc-app/adding-model?view=aspnetcore-6.0
И от неё у меня разболелась голова и теперь ещё депрессивное состояние. Это что теперь реально сами не пишут код, а пользуются командами для его генерации?
1329 2372235
>>372204
Ну, для простых крудов - почему нет?
Но том примере - не так и много нагенерированного кода.
1330 2372319
Есть мнение, что программист может освоить фреймворк за 4-5 дней. Я вот с прошлого года не могу ASP.NET освоить.
1332 2372372
>>372328
Ебать анон. Благослави тебя господь! Не знаю как тебя благодарить. Огромный респект
1333 2372505
>>372328
Спасибо, анон.
1334 2372556
>>372319
ASP.NET огромен. ЗА 4-5 дней его не освоишь.
1335 2372609
Что-то не пойму, даже LTS версия поддерживается только 3 года. Получается, что надо переписывать свои программки каждые 3 года, потому что ОС обновится, обновит дотнет и старые проги отвалятся. Как тогда поддерживают легаси проекты по 10-20 лет?
1336 2372624
>>372609
Ничего там не обновится. Только в логах будет писать, что вы дескать на неподдерживаемой версии.
1337 2372685
Можно ли как-то заставить заполнять енум? как интерфейс, вот что бы для каждого енума надо было добавлять какое-то значения иначе будет ошибка компиляции.

В чем соль

У нас есть ебейший енум с правами на овер 100+ енумов
и нужно сделать так что бы когда кто-то добавляет в енум новую позицию он ОБЕЗАТЕЛЬНО добавил названия в другом месте реляцию ЕнамХСтарница, и что бы без добавления такой реляции солюция даже не билдовалась.

Это реально сделать?
1338 2372764
>>372685
Юнит тест сделай, который будет проверять совпадение всех полей. Ну или валидатор делающий то же самое где-нибудь в стартапе. Смотря какой подход ты считаешь менее говнокодистым. То что сам по себе твой разросшийся енам уже говнокод, оставим за скобками
1339 2372846
>>372764

>То что сам по себе твой разросшийся енам уже говнокод, оставим за скобками



Ну предположим я могу поменять на что угодно, но надо что бы отсутствия записи именно провоцировало ошибку компиляции, потому что речь идет о правах пользователей, и иначе при запуске и попытке что-то делать система может поломаться, могут быть созданы ошибки, мусор в дб в сесиях, уязвимости,и тп, ни в коем случае нельзя допустить даже простую компиляцию проекта
1340 2372878
>>372846
Помазать тестами и запилить CI, чтобы с проваленными тестами нельзя было слить изменения.
1341 2372882
>>372878
что такое CI?
1342 2372894
>>372319
Кто автор этого мнения? Обоссать, обосрать и посадить у параши его. Из того же разряда, как стать программистом за полгодика.
1343 2372898
>>372204
Все эти авто-генераторы от VS - белеберда, тупо сахар, какая-то культура мышепрограммирования от майкрософт, чтобы завлечь в свою прекрасную VS. Тебе все равно в этом сгенеренном коде придется разбираться и поправлять его. Пользы от этих штук никакой. Проще самому с нуля пальчиками и клавиатурой набацать классов. Клавопрограммирование > мышепрограммирование.
1344 2372899
>>371950
Качаешь сайт, в чем проблема. А еще есть куча сервисов с историей инета.
Какой-нибудь сайт по проге (и не только), по сути - это интерактивная книга, просто в восприятие хомо-сапиенса эта идея еще не ужилась.
Сам страдал книгодрочерством раньше.
1345 2372921
>>334153 (OP)
Братишка, я тебе покушать принес.
1346 2372925
>>372882
Понял. Ну что можно сказать, земля пухом вашей шараге.
1347 2372931
>>372921
Хуйня, не по солиду, переделывай. Почему секс знает от том, случился он или нет. Если секса нет, то его и быть не должно. Почему логика получения секса написана в классе хуя да еще и захардкожена. Теперь тебе придется менять класс хуя, когда ты будешь добавлять возможность гомоебли.
1348 2372989
>>372931

>Изучил солид.


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

1349 2373061
>>372894
В каком-то подкасте на дотнетру слышал. Там они рассуждали, что можно взять джуна без знания фреймворков и он всё за пару дней изучит.
1350 2373081
>>372020
Уже же есть по c# 10
1351 2373107
Я начинаю изучать C# с виндовс формс. Как повесить на кнопку открытие другой формы?
1352 2373123
И ещё, как сделать так, чтобы первой открывалась одна определённая форма?
1353 2373124
>>372989

>Сап двачик, айти фсё!1 Чому не берут на работу??

1354 2373125
>>373107
>>373123
Загугли далбаеб
1355 2373126
>>373107
Создаёшь в обработчике нажатия объект формы_2 и вызываешь у него show (кажется)
1356 2373129
>>373125
Сам ты долбоёб. И вообще, гугл это вражеский сайт, так что надо писать "заяндекси"!
1357 2373153
Как и чем можно пилить отчёты (желательно, чтобы ещё можно по данным запроса)? FR и прочая триал-херота как бы нахуй. Как можно провернуть?
1358 2373186
>>373129
Хорошо долбоёб. Ты можешь думать что хочешь, но раз ты не способен загуглить банальную хуйню - иди нахуй
1.png43 Кб, 527x764
1359 2373245
>>372931
Я бы сделал как-то так...
1360 2373261
>>373245
Полная хуйня. Это избыточно. Переделывай.
16486586841880.jpg74 Кб, 749x689
1361 2373266
>>373261
А по мне в самый раз.
Я бы только реципиенту какие-нибудь абстрактные атрибуты добавил, чтобы стратежки по выбору партнеров можно было легче пилить. Ну и выделил бы какой-нибудь SexResult.
Другое дело, что тут выходит, что секс обязательно подразумевает поставщика и потребителя. С точки зрения бизнес-логики не совсем верно в ситуации, когда у нас они могут меняться ролями или учавствовать сразу несколько.
1342816731624.jpg45 Кб, 745x800
1362 2373311
Здрасте.
Думаю поизучать С#. Мне это нужно для атоматизации сборок в 3D cad системах вроде кати, макса, солида. Я так понял что С# более менее пересекается во многих программах такого уровня. Есть конечно С++, но я быстрее себе ноги отсрелю )
Собственно вопрос: книги в шапке сейчас актуальны?
Может есть онлайн курсы хорошие?
Конечный вариант для меня это создание окошка в скнопками и параметрами которые будут менять модель в кад системе.
1363 2373316
>>373311
Шапка хуйня. Вот норм. https://ru.stackoverflow.com/q/416584/422180
1364 2373331
>>373316
Спасибо
1365 2373429
>>373266
Можно участнику секса предлагать оффер секса, со списком других участников и их фетишей/ориентаций и возможно оплаты. В зависимости от оффера, фетишей и способностей участника, происходит отказ или выбор стратегии секса.
1366 2373431
>>373429
Так же каждый участник секса должен содержать коллекцию типа SexRequirement, по которой будут проверяться потенциальные участники и если требование не выполняется, производится отказ или если участников достаточное количество выполняется GangRapeStrategy.
1367 2373434
>>373316
Там половина старьё не актуальное по 4 и 5 версиям шарпа, а сейчас уже 10 актуальная.
1368 2373464
>>373107

>Я начинаю изучать C# с виндовс формс.


Если что, напоминаю, что на дворе 2022г.
1369 2373472
>>373081
Не карманный справочник?
.png88 Кб, 333x499
1370 2373473
1371 2373475
>>373473
Пока не украли?
1372 2373477
>>373475
На рутрекере есть
1373 2373484
>>373311

>Я так понял что С# более менее пересекается во многих программах такого уровня.


Разве? Я ничего не знаю про кад-системы, но обычно, если автоматизация заключается в "получить параметры, вызвать с параметрами" - то ее выполняют на баше, а в противном случае - на питоне.
1374 2373523
>>373311

>Я так понял что С# более менее пересекается во многих программах такого уровня.


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

Поэтому прежде чем браться за C#, крайне желательно узнать какие варианты сами CAD системы тебе дают иначе просто зря время потратишь.
1375 2373529
Этой весной учил джаву и спринг. В целом было всё понятно, но инфы по спрингу мало и обучение застопорилось. Решил посмотреть ASP.NET. По нему инфы гораздо больше, но при этом я в упор не понимаю этот фреймворк. Все пишут про какие-то бесконечные конфигурации, промежуточное программное обеспечение, а как написать простое веб-приложение никто не пишет. В том же спринге достаточно расставить аннотации и уже получаем готовый контроллер, а здесь вообще ничего не понятно.
1376 2373532
>>373529

>а как написать простое веб-приложение никто не пишет.


Через app.UseMap((context)=> "Spring SUCK")
1377 2373629
помогите вкатышу, чет вообще не одупляю. Подключаю js файл в html'e, если просто запустить то все окей. Если дело происходит через виртуалку visual studio выдает ошибку Uncaught SyntaxError: Unexpected token '<'. я так понимаю он js файл найте не может. Так как правильно там путь этот прописывать я уже все пробовал. да, дайте нраграду за самый тупой вопрос
1378 2373651
>>373629
Скриншоты кидай, ничего не понятно, что ты там "просто" запускаешь.
1379 2373655
>>373529

>а здесь вообще ничего не понятно.


Создаешь класс. Наследуешь от BaseController. Все контроллер готов.
1380 2373658
>>373629

>как правильно


Не использовать студию для веб дрисни. Она плохо переваривает js, html, xml и прочие подобные штуки.
1381 2373682
>>373658
Дак значит это правда, что все отказываются от студии и переходят на вс код?
1383 2373771
>>373759
Замени <meta />
на <meta>
1384 2373784
>>373682
Нет. Для .net языков студия в самый раз.
1385 2373789
>>373771
ничего не дало, если просто хтмл файл в браузере открыть, все норм, джс-файл подключается. Если через вебсервер visual studio, то вот такая ебала, не видит файл, хз как путь прописать
1386 2373800
>>373759
А ты добавил в конвеер промежуточного программного обеспечения обработку статических файлов? И почему папка называется html, а не wwwroot?
1387 2373818
>>373784
Посмотрел свежую книгу Фримана по асп 6 и там он всё делает через командную строку в расчёте на работу с вс кодом, а не на вижлу как в старых книгах.
1388 2373831
>>373800
это асп кор эмпти проект
я еще не знаю че это такое
1389 2373837
>>373831
Это тебе не РНР. Тут код сишарпа решает куда что отправлять и если не прописал, то ничего работать не будет.
1390 2373853
>>373837
понял, спасибо, учу дальше
1391 2373861
>>373475
Сейчас бы дрочить на книги по последней версии решета, когда можно задрочить предпоследнюю, а о новых 3 фичах на мсдн прочитать.
1392 2373880
>>373861
Дак старые версии уже не работают. Ты пишешь код из книжки, а он не компилируется. И что читатель должен делать, если он только учится, а не профи в языке?
1393 2373884
На что можно поделить, чтобы получить ноль и без ошибок?
Умножение не подходит.
1394 2373894
>>373884
А точнее, на какие целочисленные значения нужно умножить или поделить 10, чтобы получить три значения:
0, 5, 10

При условии, что используется только умножение или только деление.
1395 2373899
>>373880
9-ка не работает, что?
1396 2373903
>>373880

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


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

Единственное из нерабочего, что я видел, это Set в VB — это выпилили с концами. И еще что-то было вместо Object раньше.
1397 2373904
>>373903

>И еще что-то было вместо Object раньше.


Вспомнил, Variant это называлось. Т.е. это не конкретно object, но использовался как универсальный тип.
1398 2373910
>>373861
Это книга, не учебник, а справочник, в котором разъясняют логику шарпа, а не учат программированию.
1399 2373934
>>373818

>всё делает через командную строку


Можно подумать те кто в Visual Studio работают не через командную строку все делают.
1400 2373936
>>373880

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


А что тебе мешает создать проект именно под ту версию по которой книга написана и работать с ней. Все будет компилироваться. Потом уже когда научишься перейдешь на новую версию.
1401 2373957
>>373936
Дак старые версии не установишь, они не поддерживаются. Только 3.1, да и та работает через пень-колоду.
Пробовал писать код с книжки Фримана по асп 2 и на одном моменте столкнулся, что код не поддерживается и даже заменить его не чем. На гитхабе нашёл код под новую версию, то полностью это место переписано - новые файлы и логика совершенно иная. Я уж молчу, что невозможно установить нугет пакеты старых версий, которых в репозитории просто нет.
1402 2374022
>>361233

>Я пробовал на vs code, но конечно не так удобно как в вижле


>>361815

>Дерьмо какое-то для хело ворлд.


>


>А вс код пробовал? Он же легче даже комьюнити-версии. Там накатишь аддон для шарпа и все.



Накатил. Правда приходится смотреть уроки от Школа itProger, они единственные кто на нем пишут
1403 2374175
Есть несколько разных классов со своими уникальными свойствами. Мне нужно вывести в окно все свойства класса, внести изменения и снова записать.

Есть какой-то грамотный подход, кроме как создавать if else для проверки типа каждого класса и потом на каждый из этих классов еще по два метода для чтения и записи свойств, которые я должен прописывать вручную?
1404 2374180
>>374175
Рефлексия же.
1405 2374215
>>374175
Тебе со вложенностями или без?
1406 2374224
>>374175

var property = typeof(MyClass).GetProperty("propName", BindingFlags.Statis | BindingFlags.Public);

property.SetValue(myClassObj, smthValue);
1407 2374271
>>373957

>Дак старые версии не установишь,


Ну зачем пиздеть если не знаешь.
Вот тебе скрины и Visual Studio 2022. Обмазывайся чем хочешь.
image.png27 Кб, 475x749
1408 2374272
>>373957

>невозможно установить нугет пакеты старых версий


Тоже пиздеж. Вот тебе скрин оттуда же из нюгет менеджера.
Это не говоря уже о том, что можно подключать свои репы, либо вообще руками их закидывать.
1409 2374643
>>372071
Бамп вопросу. Вообще, нихуя непонятно, как это. В основном птолько пдф-файлы как-то, из генераторов отчётов всякие триалки ФР-ок и т.д.
1410 2374765
Можно ли одномерный массив вывести в консоль по рядам? Например, у меня есть массив с числами от 0 до 8, я хочу вывести его так:
0 1 2
3 4 5
6 7 8

В гугле нихуя не нашел, там все про многомерные.
1411 2374787
>>374765
Так и выведи по элементу через цикл
1412 2374798
>>374787
Так оно выводится либо целой строкой через Console.Write();, либо одним столбиком через Console.WriteLine(); А мне надо по рядам.
1413 2374810
>>374798
Так ставь новую строку каждые n-символов
1414 2374813
Что означает сие заклятие?
colorData |= color.G << 8;

Чуть длиннее
// Compute the pixel's color
int colorData = color.R << 16; // R
colorData |= color.G << 8; // G
colorData |= color.B << 0; // B
1415 2374834
>>374765
В твоём посте три строки и три столбца.
По какой формуле ты бы вычислил в какой строке число? Поделил бы нацело на число столбцов. Если 3 разделить на 3, получим 1. И действительно, тройка у нас в первой строке, начиная с нуля, разумеется. Теперь осталось высчитать в каком число столбце? Если мы поделим 4 на 3 нацело, получим 1 и в остатке 1. Нихуясебе! Остаток это же как раз номер столбца! Стало быть, для любого одномерного массива, если число столбцов подразумевается постоянным в каждой строке, то двумерные координаты будут таковы:
Xn = N mod ColumnsCount;
Yn = N div ColumnCount;
1416 2374838
>>374813

> Что означает сие заклятие?


> colorData |= color.G << 8;


Сдвиг влево на 8 регистров.
Было
0000 0000 0000 0001
Стало
0000 0001 0000 0000
image.png134 Кб, 1268x712
1417 2374890
1418 2374899
>>374890
Мы вам перезвоним.
изображение.png26 Кб, 946x188
1419 2374914
Нет перегруженного метода для "Control.KeyPress", который соответствует делегату "KeyPressEventHandler".

Что делать? Как теперь сделать валидацию для колонок dataGridView?
mcmahongif.jpg38 Кб, 600x542
1420 2375103
16532153027840.mp41,7 Мб, mp4,
576x1024, 0:15
1421 2375114
>>334153 (OP)
Я конечно дико извиняюсь за такой вопрос, и скорее всего меня щас обоссут, но все таки, как вкатиться с нуля в ваш этот с#? В шапке сразу предлагается читать книги, чет это слишком для нюкека, может есть какие то видеокурсы на ютубе реально годные, чисто воодные чтобы хотя бы иметь базовое представление. В том же треде по джаваскрипт там есть понятный роадмап что учить с чего начать и куча уроков, а у вас что?
Screenshot (5).png29 Кб, 311x263
1422 2375120
>>374834
>>374890
Тем временем я))
1423 2375121
>>375114

> чет это слишком для нюкека


В шапке как раз для таких

> 7. Что почитать?


> — The C# Player's Guide, третье издание (RB Whitaker) — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.

1424 2375123
>>375121
А на ру есть?
1425 2375128
>>375114
Начни с канала SimpleCode на ютубах, там годный курс по самым основам. Дальше таки стоит почитать книжки, язык достаточно объемный. А последующий роадмап будет целиком зависеть от того, в какую сферу ты пойдешь: веб, десктоп, мобилки, игоры и так далее. Скорее всего тебе нужен веб, можешь в гугле написать asp.net roadmap и будет тебе роадмап.
1426 2375129
>>375123
Нет
1427 2375130
>>375121
Третье издание еще актуально? А то там уже пятое вышло.
1428 2375132
>>375128
Книжек на ру нет нормальных, я правильно понимаю?
1429 2375136
>>375114
Ищи на торрентах курсы от Александра Шевчука
1430 2375138
>>375132
Есть такой талмуд: Язык программирования C#9 и платформа .NET 5: основные принципы и практики программирования. Автор Троелсен Эндрю. Но это прям талмуд >1к страниц с подробным разбором всего и вся.
1431 2375151
>>375130
О, нарыл пятое, надо будет поглядеть.

>>375132
Учи англюсик, все равно без него никуда. Пыхти, потей со словарем, запишись на курсы и так далее. Это один из ключевых скиллов при приеме на работу, на нем в разы больше инфы, намного больше мест для задавания тупых вопросов.
1432 2375154
Мой гениальнейший нет линк запрос выдает вот это:
LINQ expression could not be translated. client evaluation explicitly by inserting a call to 'AsEnumerable', 'AsAsyncEnumerable', 'ToList'

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

Так вот, если идти простым путём явно запустить выполнение запроса на клиентской части то можно на сайте майков найти предостережение что не стоит в клиента грузить большие объёмы данных, может серьезно просесть по производительности. Большие это сколько в граммах? Применить Тулист на таблице в 2000-3000 строк это уже много или ещё нет?
1433 2375181
>>375114
Не хочу показаться токсичным. Но.
Какого блядь хуя? Что это сейчас была за хуйня? Какие еще видевокурсы? Бери книгу и читай. Блядь.
1. Книга - это быстрее чем видево.
2. Книга - больше информации.

И главное. Как с таким майндсетом ты "вкатываться" собираешься? Как будешь решать задачи, которые требуют глубокого изучения, чтения всяких датащитов, общения с вендорами. Пиздец. Блядь. Видева.
1434 2375182
>>375114
1. Начни с синтаксиса языка

2. Теперь ООП
•‎ Тут должен разобраться с async/await (или как минимум научиться юзать, но не понимать как это работает)

Первые два пункта закрывают следующие каналы на ютубе: CodeBlod, SimpleCode, Andrey Shirokoryadov

3. Теперь работа с БД: EFCore и SQL запросы. Тут ты должен скачать MS SQL MANAGEMENT STUDIO. Обязательно к изучению:
•‎ Базовые SQL запросы (select, insert, join..)
•‎ CodeFirst, Database First
•‎ Migrations
•‎ Ключи
•‎ Настройка сущностей (класс ModelBuilder)

4. Теперь переходим к десктопу: WPF
•‎ Учишь MVVM. Тут сначала создаешь всё руками, затем плавно перекатываешься в использование Microsoft.Toolkit.Mvvm
•‎ Учишь dependency injection (microsoft.di, autofac)
•‎ Учишь
•‎ Работа с Json, Xml (опционально protobuf)

5. Расширеный C#:
•‎ Reflection
•‎ Linq
1435 2375194
>>375182
Нахуя ему WPF? Может он ему нахуй не упал. По БД еще есть курс по PostgreSQL у Engineer Spock.
1436 2375195
>>375182
Странный порядок изучения.

Я бы давал так:
1.
Основы информатики(про байтики, АЛУ, ОЗУ и проч.)
Основы матана(базовый уровень, чтобы знал что такое матрица, что такое транспонирование матрицы, чтобы слово кватернион не пугало)
Дискретная математика(задача коммивояжера , всякие обходы, хуеды)
Алогоритмы-хуигаритмы, структуры данных.
Сети(какие, что, зачем, уровни модели оси)

2. Начинаем с Си. Пишем на си простой http-сервер, пишем базу данных, пишем компилятор, пишем движек для 2д игры.

3. Теперь поняв какое же си говно - берем, открываем MSDN и погнали.

4. Гуглим рефакторинг-гуру и статью рандомную про солид.

5. Идем устраиваться на работу, флекся тем, что можешь 1M-проблем сервер поднять на чистом си, без единого дедлока, и что ваш шарп писали индусы.

???

Профит
1437 2375197
>>375181
Ну не все такие умные как ты. Мне инглишь еще подтянуть нужно, чтобы читать книги на нем комфортно.
1438 2375200
>>375195
А мне говорили что матан в программировании не нужен...
1439 2375201
>>374890
пройди епамовский курс хотябы, хуй знает где ты это дерьмо нашел
как вкатыш вкатышу говорю
1440 2375202
>>375194

>Нахуя ему WPF


А нахуя ему ASP? На WPF задачки поинтереснее чем писать обосранный бэкенд шаблонный
1441 2375203
>>375181
хуйня, лучше пусть всеже теже видосы ютубные посмотрит где все разжовано пережевано, а потом сверху книгой отшлифует
1442 2375218
>>375201

>пройди епамовский курс хотябы,


Да? И зачем, что интересного я там узнаю?

>хуй знает где ты это дерьмо нашел.


На коленке где-то за минуту состряпал.

>как вкатыш вкатышу говорю


М-м-м. Советики от опытных.
1443 2375219
>>375195
Этого солевого не слушай есесна.

>>375202
Твой интерес никого не ебет, если ты хочешь получить работу. Вакансий на асп намного больше чем на впф, потому что десктоп в 2022 - это ругательное слово. К тому же, асп я ему предложил исходя из того, что он уже интересовался говноскриптом, а значит скорее всего хочет в веб.
1444 2375229
>>375218
на алгоритмы хоть троху подрочат там, ты ж хуй откроешь сам
1445 2375236
>>375219

>а значит скорее всего хочет в веб


Не хочет. Это навязанное мнение, такое же как и среди долбоёбов "пайтон крутой яп". Он вкатился в жс потому что все вкатываются в жс

>десктоп умер


слышу это уже лет 7, всё никак не умрет что ли?
1446 2375246
>>375236

>слышу это уже лет 7, всё никак не умрет что ли?


Он уже несколько лет мертв. Это не значит, что он исчез или что на нем совсем нет вакансий, но это очень нишевые проекты. Вся главная елда сейчас происходит в вебе, а в ближайшее десятилетие туда уйдет вообще все.
1447 2375259
>>374765
Я бы сделал как-то так...
1448 2375264
>>375246

>Вся главная елда сейчас происходит в вебе, а в ближайшее десятилетие туда уйдет вообще все.


Уже представил как докер, ПО для бд, корпоративное ПО, ПО для графики, дизайна, моделирования, мессенджеры, читы-лаунчеры для игр, утилиты для пк переезжают в веб?
1449 2375266
>>375264

> ПО для бд, корпоративное ПО, ПО для графики, дизайна, моделирования, мессенджеры,


Уже перекатились в массе, лол.
Ты где последние 5 лет был?
1450 2375268
>>375266

>Уже перекатились в массе, лол.


Например? Мини утилитки которые там у фотки фон стирает? Ну тут да.
1451 2375271
>>375268

> корпоративное ПО


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

> ПО для графики


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

> дизайна


Фигма - из коробки в вебе.

> моделирования


Если не рассматривать блендер, то ситуация аналогична ФШ. Еще и продаем свои мощности для рендера-хуендера.

> мессенджеры


Найди мне современный ПОПУЛЯРНЫЙ мессенджер не на вебе, лол.
1452 2375282
>>375271

>Фигма - из коробки в вебе.


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

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

>Мини утилитки


Ты смеешься, а все к этому идет. Ты думал нас ждет суперсложынй софт и супернафаршированные соцсети, а в итоге приходим к фигме, тиктоку и мобильным играм нет требующих действий от игрока.
1454 2375470
>>374838

>Сдвиг влево на 8 регистров.


Да, но какова цель вот этого всего
int colorData = color.R << 16; // R
colorData |= color.G << 8; // G
colorData |= color.B << 0; // B

Хранить в одной переменной все три числа? Как обратно вернуть? Никогда не понимал как люди орудуют сдвигами регистров на ходу.
1455 2375481
>>374914
Ты че туда пихаешь? Событие, на которое ты подписался, уже сформировало аргументы, это обычно sender и eventArgs. Скорее всего твой метод Column_KeyPress имеет несоответствующие аргументы. И прикол в том, когда ты создаешь подписку, то на аргументы часто похуй (можно даже без аргументов завести), но когда ты подписку удаляешь, то вот тогда тебе дают леща.

Я бы обратил внимание на EventArgs — именно его часто модифицируют в зависимости от того, какие аргументы нужно передавать, поэтому это может быть MouseEventArgs если событие связано с мышью, ButtonEventArgs для клавиш, НебоИАллахEventArgs. А в твоем случае смотри подсказку, у тебя KeyPressEventArgs.

Погугли как создавать свое собственное событие и как его вызывать. У тебя отпадут вопросы.
1456 2375485
>>375470

>Как обратно вернуть?


Выпихнуть лишнее за край (останутся нули), потом поместить значащий кусок в начало, и так для каждого числа.
1457 2375494
>>375229
И чем плох алгоритм на скрине, в контексте заданной задачи?

Циферки выводятся? Выводятся.
Выводятся как в условии задачи? Да.
Алгоритм универсальный? Да.
Простой как валенок? Да.

"Чего тебе еще надобно, пес?"
1458 2375497
>>375470

>Никогда не понимал как люди орудуют сдвигами регистров на ходу.


Изучи двоичную и шестнадцатеричную систему и как они между собой соотносятся. Считай все цветовые переменные только в шестнадцатеричной системе. Мозг перестроится и будет очень удобно.
1459 2375554
>>375264

>ПО для графики, дизайна, моделирования


Это все пишется не на решетках с впф, лол, там сплошные кресты. На впф щас делают в основном всякие внутренние корпорастические продукты и изредка что-то другое, но тенденция явно гаснущая. Простой десктопный софт пилят на говноскрипте в основном, ибо кроссплатформенно, быстро, молодежно. Более сложный как писали 20 лет назад на крестах, так и будут продолжать еще столько же как минимум.
1460 2375594
Как в WPF свойству одного элемента присвоить свойство другого?

Хочу MyRectangle2 присвоить ширину MyRectangle1
<Rectangle x:Name="MyRectangle1" Width="15" />
<Rectangle x:Name="MyRectangle2" Width="MyRectangle1.Width" />
1461 2375597
>>375594
нужно биндинг, только не на Width, а на ActualWidth
1462 2375603
>>375594
>>375597
Все, разобрался
{Binding Width, ElementName=MyRectangle1}

>только не на Width, а на ActualWidth


Вот эта хрень работает смотря где. Если в режиме стрейч, то ActualWidth показывает верно, но попадалось, что то ли вбитое вручную, толи еще почему, но ActualWidth выдавал 0, а вот Width показывал нужный размер.
1463 2375607
>>375603
Width не является реальным размером.
bandicam 2022-06-09 12-41-07-092.mp4208 Кб, mp4,
328x372, 0:07
1464 2375615
А в WPF есть какое-то решение, когда ты юзаешь MouseMove и курсор выходит за пределы элемента и захват теряется. Не хочется юзать цикл потом морочиться с ограничением координат, когда уже есть MouseMove.
1465 2375622
Существуют ли в природе аноны которые юзают юнит тесты?
помогите вкатывальщику разобраться как они должны работать.

вот смотрите есть функции которая добавляет рекорды в БД
и есть вот такой тест для нее.
Как проверит что собственно все прошло хорошо и добавились рекорды там где надо а там где не надо не добавились?
1466 2375657
>>375494
Не знаю что ему не понравилось, но мне то что если ввести уже двузначное число - оно поедет и будет некрасиво.
1467 2375676
Что лучше выбрать: Razor Pages или MVC?
1468 2375680
>>375622
Мне кажется, что юнит тесты писать для своей функции, это как разговаривать самому с собой. В большинстве случаев ты уже знаешь, что тест выдаст и данное занятие с моей точки зрения выглядит бессмысленным.

Другое дело, когда функция чужая и нет желания разбираться как она устроена — тогда ты тыкаешь в нее палкой из тестов. Тогда смысл тестов появляется. Я это так понял.
1469 2375681
>>375622
Юзаю. В твоём кейсе ты должен мокать репу и смотреть что там в репе после того как ты выполнил тест.
1470 2375683
>>375680
Повторишь это себе, когда через 2 года нужно будет быстро пофиксить баг или новую фичу впиндерить(естественно дедлайн вчера, а то что ты про фичу только сейчас узнал - твои проблемы), а ты в результате все нахуй сломал.
1471 2375684
>>375683
А если ошибка в юнит-тесте? Может стоит писать юнит-тесты на юнит-тесты?
1472 2375686
>>375684
Юнит тестах почти нет логики, там обычно набор контрольных входящих значений и выходящих.
Как вообще можно в этом облажаться?
1473 2375687
>>375681
Куда её мокать? В корыто с кипятком что ли?
image.png235 Кб, 500x270
1474 2375688
>>375680

>В большинстве случаев ты уже знаешь, что тест выдаст


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

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

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

Не знаю, может кому-то это лишнее, но будучи вкатанном я учился программированию на этих сервисах с задачками, и как-то привык к этим галочкам сигнализирующим выполнение задачи, без них как-то... некомфортно что ли.
image.png94 Кб, 836x409
1475 2375729
>>375681
Что-то такое? Как мне в замещающую функцию передать параметры, то что я нашел в нете не работает.
1476 2375755
>>375681
В общем в итоге получилось что-то такое, так будет хорошо?
1477 2375761
>>375259
А зачем это лютое иезуитство для такой простой задачи, если можно сделать как я сделал: >>375120? Не врубаюсь, будучи ньюфагом.
1478 2375768
>>375657
Решается добавлением указания формата.
1479 2375769
>>375676
Web Api и забить хер на фронт.
1480 2375774
>>375761
А теперь переделай так, чтобы не по три, а по два числа в ряду было.
А потом так чтобы по четыре.
Повторяй с разными значениями, пока не дойдет.
1481 2375917
сколько же нужных штук имеют статус internal
Gen2GcCallback, ValueStringBuilder, StringBuilderCache, DelegateHandler, че то там с Path SpecialChars
утомляет копипастить или рефлексией лезть
1482 2375932
>>375729
Для таких штук проще сделать мок руками и использовать листик, в котором обычным линку что-то доставать.
Если у тебя SRP соблюден и интерфейсы не раздуты - то с этим проблем не должно возникнуть.
>>375755
Соложновато вникнуть. Но выглядит ок.
Ток ассерт лучше не True, а заменить на Equal и выводить сообщение какое-то с полезной инфой.
1483 2375943
>>375470

> какова цель вот этого всего


RRRR 0000 GGGG 0000 BBBB
Вот такое число получится в бинарном виде. Вместо Р, Г и Б, соответственно вышеуказанные значения. Заметь, между цветами остаются промежутки, чтобы не наложились.
Потому что значок палочки - это побайтовое ИЛИ, которое добавит цвета к уже имеющимся (наложит, да, как в фотошопе), но поскольку мы сдвигаем цвета в разные регистры, то смешивания не будет.
1484 2375946
>>375943

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


Что за хуйню ты несешь? Какие нахуй промежутки если сдвиг побайтно идет?
1485 2375950
>>375946
За такие шутки в оперативке бывают промежутки.
1486 2375969
>>375946

> Какие нахуй промежутки если сдвиг побайтно идет?


Вот такие, например, представим себе, что
Color.R это FA
Color.G это CE
Color.B это 8D
тогда, вышеуказанный код приведет к вот такому числу:
FA 0000 00CE 0000 008D
1487 2376119
>>375969

> FA 0000 00CE 0000 008D


Вообще то к FACE8D, там же побитовый сдвиг, а 1111 1111 это как раз FF (255)
1488 2376164
>>375969
Ты совсем ебобо?
Команды >> и << это битовый сдвиг и соответственно <<8 это сдвиг на 8 бит или 1 байт, Так же как <<16 это сдвиг на 16 бит или всего два байта.

Соответственно в твоем случае будет 0xFACE8D, без всяких промежутков.

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

Есть какое-то решение?
1490 2376263
>>376164
Чего еще ожидать от вебшарпомакак, они же даже не отличают байты от битов.
1654854813983.jpg96 Кб, 1280x720
1491 2376345
>>376263

> не отличают байты от битов


Простите. Я обосрался.
1492 2376448
Зачем для ссылочных типов приписывают "?", если ссылке и так можно null присвоить?
К примеру:
string? str;
1493 2376456
>>376448
Это новая (относительно) фича из 8-го шарпа. Nullable Reference Type.
Вот тут достаточно просто для понимания:
https://metanit.com/sharp/tutorial/3.50.php

За остальным на МСДН.
1494 2376491
>>375676
Какой-то выбор между калом и калом. webapi конечно же.
1495 2376492
>>376263
На сях под линукс поди пишешь? Давно с тяночкой ебался?
2022-06-1016-20-28.png1 Кб, 141x118
1496 2376496
Можно ли в XAML распарсить стринг.

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

Мне бы какой парсер, чтобы я в свойстве Content писал что-то вроде "H:/255/%", дальше это разбивалось на три строки по разделителю "/", например.
1497 2376497
>>376263
Вообще по факту, весь этот языковой шовинизм это признак недопрограммиста и инцела в том числе, само-удовлетворяющегося своей некоей элитарностью, по факту везде свои заморочки. Но да, если ты прогаешь и не отличаешь биты от байтов - ты мразь и гнида конченая.
Есть база, а начем ты прогаешь - какая вообще разница. Можно одинаково говнокодить на любом языке и нихера при этом не понимать.
1498 2376609
>>376497
Представь картину, что, слесарю (к примеру) кто-то-то начает затирать, что "Забивать гвозди молотком - это фу и вообще зашквар, а вот закручивать шурупы отверткой - топчик и вообще круто". Как думаешь похуй ему будет или нет?
Вот и программисту, для которого различные ЯП-ы - это те же самые инструменты для слесаря, должно быть похуй, кто-что думает о его инструменте или о том как он им пользуется?
1499 2376667
>>376496
Короче любые математические операции и вызовы функций это такой гемор, что не стоит того. Хотя на хабре челик заморачивался чтобы это делалось проще.
1500 2376695
>>376609
Нет, разбухтевшийся двачер должен быть обязательно попущен конечно же
1501 2376752
Сап, сосач. Прошёл собес на дотнет дева, как быстро вкатиться?
Мимо бакалавриат CS + Java dev experience.
1502 2376754
1503 2376760
>>376754
А причём тут sandbox?
https://sbox.facepunch.com/news
1504 2376765
>>375195
Ебало представили долбоеба, который учит основы ВТ, вместо того, чтобы учить сам ЯП?
1505 2376980
>>376752
Дак ты прошёл или планируешь пройти? Или проходил, но тебе отказали, потому что не смог ответить на вопросы?
1506 2377077
>>373934
Значит лучше сразу учиться на VS Code?
1507 2377096
>>373934

>не через командную строку все делаю


ни разу не использовал командную строку в вижле.
1508 2377097
>>377096
А как ты миграции делаешь?
1509 2377100
>>377097
ты определись "все делают" или что то

лично я никак не делаю. мне не нужно.
1510 2377107
>>377100
Ты синьёр-помидор или вкатутося, которая решила, что "нинужна"?
1511 2377211
>>377077
Учиться можно на чем угодно. Просто на VSCode для нормальной работы нужно обмазаться плагинами и по идее нужно понимание какие тебе нужны и как они работают. Плюс нужно много чего настроить будет в итоге.
В Visual Studio уже есть почти все из коробки, но многое из этого новичку может не понадобиться.
Но в Visual Studio мощнее отладчик, поумнее интелисенс, больше разных тулзов, анализаторов и т.д. С тестами удобнее работать. Плюс опять же большие проекты (а если еще и с сабмодулями), в VSCode крайне сложно будет ковырять.
Вообще я бы посоветовал осваивать и то и то одновременно.
1512 2377226
Сап, шарпята. Смотрите есть некий класс, методы из которого используются в других классах. Каким должен быть этот некий класс? Статиком со статическими методами или лучше впендюрить его через депенденси и пксть каждый кому он нужен свой инстанс получает? Что нам на этот счет говорят бэст пратисис? Как лучше и почему?
1513 2377229
>>377226

>Статиком со статическими методами


У тебя по минимуму должно быть таких классов. Я обычно статику юзаю только для классов сериализациии/десериализации каких-нибудь условных строк или файлов
Лучше офк регать в контейнер какой-нибудь и юзать где надо
1514 2377254
>>377107
у меня другой профиль. Впрочем я не ставлю в один ряд "выполнение в консоли ибо так работает тулза" и "делаю в консоли от нехер делать, даже если можно не делать"

Понятно зачем в книгах пишут "добавляете нюгет пакет вот такой командой", но в реальной жизни проще залезть в гуи.
1515 2377307
Когда мы подключает ms sql server через Microsoft.Data.SqlClient, где в итоге хранится СУБД? Она должна быть заранее скачана и базы создаются внутри нее или она скачивается вместе с этим пакетом и где-то там хранится? Где в итоге искать и просматривать получившиеся БД?
1516 2377335
>>334358
>>335898
Главный вопрос: где INotifyPropertyChanged ?
1517 2377337
>>336527
Теперь только креки, если не покупал лицуху на год.
2022-06-1119-13-35.png1 Кб, 201x40
1518 2377344
А как в студии сделано, что файл с классом является дочерним элементом другого файла. Как это реализовано не используя папки?
1519 2377366
WPF окно рисуется на глазах.
Можно как-то отключить визибилити, пока все стрейчевые элементы растягиваются и адаптируются?
1520 2377410
>>377335
Нуууу. Считаю что не нужон в модели.
Взаимодействие со стейтом должно происходить через какое-нибудь хранилище, которое по хорошему - имеет иммутабельный стейт, а уведомление об изменении модели происходит после комита нового стейта.
1521 2377413
>>377410

>Считаю что не нужон в модели.


Двачаю. Лишняя нагрузка модели. Можно просто сделать нотифайпропертиченжед на модель во вьюмодел и будет тот же результат.
1522 2377414
>>377366
Можно. Гугли события загрузки окна + погугли как отрисовывается WPF окно
2022-06-1121-39-15.png8 Кб, 203x342
1523 2377446

>Гугли события загрузки окна


Ты про Initialized и Loaded? Первому вообще по барабану, даже пальцем не пошевелит, все начинает отрисовываться при Loaded.

После идет ContentRendered. Рекомендовали минимизировать окно до инициализации, а в ContentRendered выставить нормальный размер. Но у меня старт с минимизацией шатает все зависимости.
1524 2377470
>>377344
Открой csproj и посмотри какая там структура. Видел еще плагин чтобы так размещать файлы, не помню как называется.
1525 2377475
>>375114
В чем проблема сразу читать книги? В книгах обычно есть вводная часть, с базовыми представлениями, читать все умеют. Если ты совсем ноль и у тебя условно нет понимания даже что такое цикл и переменная, помноженное на неосиляторство - то тебе проще будет начать с какого-нибудь джеэса или питона, чтобы в условном браузере или юпитере потыкать в это самое программирование без лишних телодвижений.

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


У нас есть Рихтер. Просто читай его перед сном по 2 часа каждый день, вместо Библии, - и все будет.
1526 2377479
>>375195

>Основы матана(базовый уровень, чтобы знал что такое матрица, что такое транспонирование матрицы, чтобы слово кватернион не пугало)


>Дискретная математика(задача коммивояжера , всякие обходы, хуеды)


Нахуй это нужно? Говно без задач.

>2. Начинаем с Си. Пишем на си простой http-сервер, пишем базу данных, пишем компилятор, пишем движек для 2д игры.


Ты совсем ебанутый.

>флекся тем, что можешь 1M-проблем сервер поднять на чистом си


Тебя за одно это не возьмут, подумав что шиз какой-то, с которым лучше не связываться.
1527 2377480
>>377413
И на экране будут обновляться все свойства модели, вместо одного? Заебись оптимизация.
1528 2377484
>>375246

>Вся главная елда сейчас происходит в вебе, а в ближайшее десятилетие туда уйдет вообще все.


А в вебе вся главная елда сейчас происходит в ноде. js, вся хуйня.
1529 2377489
>>375264

>Уже представил как докер, ПО для бд, корпоративное ПО, ПО для графики, дизайна, моделирования, мессенджеры, читы-лаунчеры для игр, утилиты для пк переезжают в веб?


Ты же понимаешь, что в одной лишь верстке лендингов народу больше занято, чем программистов, занимающихся всем вот этим вот, суммарно существует?
1530 2377494
Как защититься от региональных тонкостей при переводе числа с плавающей запятой в стринг?
1531 2377495
>>375282

>ВЛГ(стример) недавно ругался на своего работника


Но он его работник. Сечешь, да? Это как ошибка выжившего, только наоборот.
1532 2377502
>>377479

>Нахуй это нужно?


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

> Ты совсем ебанутый


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

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


Возьмут. Меня же взяли.
1533 2377506
>>376980
Я прошёл собес.
1534 2377510
>>377494
Назначить вручную форматы при запуске..
изображение.png54 Кб, 1227x258
1535 2377604
Хочу спросить, насколько нормально/часто встречается валидация и пробрасивание исключений в конструкторе класа?
На стажировке дали тесты, по которым надо именно так сделать.

Просто я раньше видел что модели чисто дто, а логика создания на другом слое (CQRS например).
1536 2377606
>>377475
У меня получается только 1 час читать, потом ступор начинается.
1537 2377613
>>376496

> Можно ли в XAML распарсить стринг.


Может и можно, но зачем? Ведь не рекомендуется смешивать код (логику) и данные. ХАМЛ - это данные, код туда пихать не надо.
1538 2377644
>>377475
Можно ли вообще рассматривать Рихтера как учебник по сишарпу? Там предполагается, что язык уже знаешь, и хочешь узнать тонкости выполнения в среде CLR. Причём знания какого-нибудь С++ не сильно помогут.
1539 2377645
>>377613

>но зачем


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

Каким образом мне им назначить текст?
1540 2377650
>>377604
Зависит от того как принято в коллективе архтектуру строить.
С анемичной моделью - обычно у тебя есть отдельный сервис ЧтоТоТамValidator, который и будет отвечать за то, чтобы сущность была валидна.
В богатой модели - ты эту логику можешь в конструктор запихнуть, гарантируя таким образом, что сущность, которая некую бизнес-логику выполняет - никогда не будет создана.

Срачей на эту тему множество и делают и так и так. Я - сторонник богатой модели, но с ней проблемы в том, что инструментария обычно нет - и тебе придется извращаться, чтобы класс Age в базу запихнуть, потому хуйнуть анемичную модель и нахуячить сверху кучу классов для валидаци, хуилидации и прочего - бывает быстрее.
1541 2377652
>>377650

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


Если данные для инициализации невалидны или не полны.
1542 2377671
>>377650
Понял, спасибо
1543 2377796
>>377366

Наверное, тебе нужно это:
Visibility.

Collapsed: Do not display the element, and do not reserve space for it in layout.
Hidden: Do not display the element, but reserve space for the element in layout.
Visible: Display the element.
1544 2377798
>>376496
IValueConverter посмотри
1545 2378639
Почему в треде столько вопрос по WPF. В рашке все шарпистам за впф что-ли только платят?
1546 2378641
new { id = 5 }
Это что за покемон?
1547 2378643
>>378639
Бэкенд захвачен джавой, но по Спрингу мало инфы
1548 2378673
>>378641
List<int> xs = new();
List<int> ys = new(capacity: 10_000);
List<int> zs = new() { Capacity = 20_000 };

Ты про это видимо
1549 2378722
Правда ли сейчас и в ближайшей перспективе джуну без опыта работу найти практически нереально? Если да, то что вообще делать, есть какие-то хитрожопые пути? Например, годные пет-проекты или еще что-то.
1550 2378727
>>378722

>есть какие-то хитрожопые пути?


Через постель
1551 2378782
>>334153 (OP)
Работает кто на западного барина на дотнете на нормальных проектах с нормальной зп?
(нормальная это от 50$ в час для человека с опытом 3+ года опыта)
нормальные проекты это не говно легаси с вебформами
1552 2378783
>>378782
Сам вопрос где вы ищите эти вакансии, потому что в линкдине какой-то тухлят
1553 2378824
Аноны, у кого-нибудь был опыт c XAML Islands?
В чем суть. Корпорация зла разрабатывает пакет для React Native под винду, react-native-windows, но, как в анекдоте, есть нюанс.
Совершенно случайно эта хуйня билдит только UWP приложения.
Полпроебанный дня позволили узнать, что есть такая штука как XAML Islands и с помощью нее можно всунуть UWP контролы внутрь win32 приложений(Похуй какое, впф, формы, хоть винапи, мне нужна ебаная экзешка).
На сайте майков есть гайды, но там то ли устарело, то ли у меня знаний не хватает, то ли uwp получаются не как в примере.

Я уже скоро ебанусь, спасите.
1554 2378839
>>378727
Я бы рад, но я ниоч.
1555 2378948
как открыть новое окно на месте старого? wpf
1556 2378959
>>378948
А что стало со старым? :D
1557 2378961
>>378639
Наверное, потому что все хотят делать асп нет сервисы, а ебаться с хамл разметками и мввм не очень хотят.
1558 2378963
>>378961
Я бы лучше писал десктопные приложения, но приходится учить этот дурацкий асп.нет тупой.
1559 2378964
>>378959
получается так: при запуске программы открывается первое окно, на нем есть кнопка,которая открывает другое окно с информацией, допустим мы перемещаем это первое окно влево, нажимаем на кнопку, оно закрывается(прячется ) и открывается другое окно с той самой информацией, но появится оно не на месте предыдущего, а на месте стартовой позиции, которая указана в свойствах
1560 2379004
>>378641
>>378673
не, это анонимный тип:
var v = new { Amount = 108, Message = "Hello" };
1561 2379032
>>378964
Конкретно по твоему вопросу в лоб:
Юзай публичные свойства. Создаешь в своем классе окна что-то типа:
public StartupLocation as Size {Get; Set;}

Затем когда ты создашь новый экземпляр своего окна, то у тебя появится доступ к данной переменной извне. Типа
MyWindow1 MyWindow = new MyWindow;
MyWindow1.StartupLocation = new Size(200,150); //тут ты передал внутрь экземпляра данные еще до запуска окна
MyWindow1.Show;

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

Но если по уму, и не страдать хуйней с миллионами окон, и если у тебя WPF, то там есть так называемые страницы. Ты можешь с ними работать как с отдельными окнами, ничего не теряешь по функционалу, при этому у тебя будет только одно главное окно, В КОТОРОЕ ты загружаешь свои страницы.
1562 2379039
>>379032

>public StartupLocation as Size {Get; Set;}


Простои анон, у меня бейсик головного мозга:
public Size StartupLocation { get; set; }
1563 2379042
>>379032

>MyWindow1 MyWindow = new MyWindow;


И тут обосрался. Забыл, что тип переменной идет впереди в шарпе. Еще у вас скобочки автоматом не подставляются.
MyWindow MyWindow1 = new MyWindow();
1564 2379048
>>379042
Спасибо за помощь, особенно с этими страницами, а то в нашей шараге приходится все самостаятельно изучать
1565 2379118
Господа программисты, поясните вкатывальщику за C#. Как обстановка с поиском первой работы, перспективами? Не хочу я в попсовый питон или джаву. А вот на крестах нравилось в универе прогать, вроде как языки похожие
1566 2379149
>>379118

>вроде как языки похожие


Разве что буквой С в названии.
1567 2379203
>>377604

>Хочу спросить, насколько нормально/часто встречается валидация и пробрасивание исключений в конструкторе класа?


Если нужно для погуглить. Если это отнеосится к конструкторам моделей, то этот подход называется DDD (Domain Driven Development). Когда какая-то логика работы с моделью не по слоям размазывается, а по максимуму заезжает в саму модель. Подход в чем-то хорош, но я не сторонник такого подхода, мне больше с анемичными моделями нравится работать.
Если же у тебя какая-то логика прокидывается в конструкторах сервисов, то это ублюдочный подход. Особенное при использовании DI, т.к. в случае какой-то ошибки, у тебя посыпется вся цепочка зависимостей и хрен знает где у тебя этот эксепшен вылезет.
1568 2379206
>>379118

>Господа программисты, поясните вкатывальщику за C#.


Если зарплатные ожидания процентов на 50% урежешь, то можешь вкатиться. Но новички мало где нужны. Вот если хотя бы год проработаешь где-нибудь, то тогда уже работа сама тебя искать будет, а до этого тяжко.
1569 2379250
Каким образом сделать сохранение FlowDocument в XPS (или другой формат) так, чтобы содержимое распределилось по всей ширине листа, а не в левом углу блять?
1570 2379263
Замаялся со старыми книгами. Скачал свежую книгу Фримана по асп 6 на английском. Хотя я в английском не бум-бум, но зато можно переписывать код оттуда и он рабочий. Написал уже половину SportsStore и косяков не встретил.
1571 2379353
А модно в цикле foreach узнать индекс элемента?
1572 2379364
>>379353
Можно, но не нужно. Если у тебя появилась такая необходимость, то ты где-то проебался. Foreach не для этого.
1573 2379468
>>379364
Необходимости нет, чисто из-за лени. В Форич писать меньше.
1574 2379471
Приветствую шарпо-бояр итт. Прошу не обсыкать меня сходу, а отнестись с пониманием моего долбоебства - я вкатун. Имею вопрос и попрошу ответить на него, обращая внимания на короткий бекграунд.

Был опыт html/css, так же консольные проложения на пайтоне в далёком 2020 году. Но тогда я всё забросил. Тащемта вопрос я нихуя не шарю и не претендую даже, поэтому прошу совета:
1) Стоит ли вкатываться на .NET (ASP.NET Core) в 2к22 вкатуну или лучше стандартный JS/React с декларативычами (хтмл ксс)? Web направление, если что. Почему такой тупой вопрос, потому что в большинстве вакансий рядом с .NET присутствует ещё и какой-нить JS\React и хочется не проебаться, могу заинвестить пол года времени целыми днями, если что.
2) Как легко потом с поиском работы ASP.NET Core vs JavaScript? Английский, если что, крепкий В1, мб В2 даже. Сложно ли найти компанию за рубежом (я не в РФ) на ремоут?
3) Может кто-то проходил/знает курсы Epam (UpSkill)? Как они, котируются ли (если рассматривать направления .NET и Frontend)? Эйчарки написывают/названивают?

Зарание спасибо за любой ответ.
1575 2379503
>>379471
Надо выбирать то, что нравится самому. Можно потратить 1-2 недели на каждый язык и потом уже решить, что тебе больше нравится.
Я вот сам легко выучил сишарп, но споткнулся об фреймворки. Сейчас сижу и не знаю что делать. Так что все эти рассуждения стоит/не стоит - пустые, потому что может оказаться, что ты сам не осилишь этот путь.
1576 2379517
>>379503

>Я вот сам легко выучил сишарп


Сколько времени потратил и почему споткнулся об фреймворки?
1577 2379601
>>379471

>Стоит ли вкатываться на .NET (ASP.NET Core) в 2к22 вкатуну или лучше стандартный JS/React


Зависит, часто к дотнету еще ангуляр просят
>>379471

>Сложно ли найти компанию за рубежом (я не в РФ) на ремоут?


Определи что значит за рубежом
Если ты в Европе и планируешь работать на локальный рынок проблем не будет
Если ты в условной Грузии и собираешься работать на заказчиков в США \ Европе то с JS будет проще т.к вакансий просто больше.
Если ты вдруг в Штатах, то бери JS, на дотнете как правило энтерпрайз с кучей легаси и говна, стартапы пишут но значительно реже.
1578 2379602
>>379517
Это наверное тот додстер, который про версии аспнета срет второй тренд уже
1579 2379603
>>379517
За 3 месяца + 1 месяц джавы, потому что по сишарпу нет такой классной книги как Б. Эккель "Философия Java". Но я и до этого знал многие языки программирования, так что это не первый язык.
Мало актуальной литературы по фреймворкам и уровень сложности значительно выше, чем при изучении языка и написании простых программ. Также есть отторжение от архитектурного подхода в самом фреймворке. Я когда писал свой сайт на чистом РНР, то выбрал более простую, но в тоже время легкорасширяемую архитектуру. Было одно удовольствие писать код. Здесь же надо применять всякие мерзкие штуки, которые насильно вставили во фреймворк.
К примеру, все запросы к БД я писал на чистом SQL, потому что язык и так хорошо подходит для работы с данными и зачем нужна прослойка вроде ORM, мне не понятно. А возни с ней больше, чем в обработке простого SQL-запроса.
1580 2379607
>>379603

>сишарпу нет такой классной книги как Б. Эккель "Философия Java".


Я конечно знал что мамонты еще читают книги, но сейчас 2022 год где документация более чем исчерпывающая

Книги есть, например Троелсен
>>379603

>Мало актуальной литературы по фреймворкам


Вся актуальная информация есть в документации.
>>379603

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


Не хочешь не применяй, создаешь самый простой шаблон и получаешь просто шаблон с сервером под копотом и обработчиками в стиле node js
>>379603

>зачем нужна прослойка вроде ORM, мне не понятно


Берешь ADO.NET (no ORM)\ Dapper (microORM) и лепишь свои голые запросы если душе угодно, никто не заставляет использовать EF

>>379603

>выбрал более простую, но в тоже время легкорасширяемую архитектуру


Проиграл с того, какую ты там архитектуру мог выбрать более расширяемую чем на дотнете
1581 2379618
>>379607

>Троелсен


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

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

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

>Стоит ли вкатываться на .NET (ASP.NET Core) в 2к22 вкатуну или лучше стандартный JS/React с декларативычами (хтмл ксс)?


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

>React


Это говно знают все собаки в твоем дворе, можешь сходить поинтересоваться. Да, вакансий много, но вкатунов в десятки раз больше. Педаль лучше Ангуляр, где 3,5 калеки в месяц на вакансию откликаются. На Реакт заебешься работу искать.
1583 2379643
Буквально сегодня наткнулся на код по асп.нет:

TagHelperOutput output = new TagHelperOutput("div",
new TagHelperAttributeList(),
(cache, encoder) => Task.FromResult(content.Object));

И там такие строчек по 10 штук в каждом методе. Как их вообще осознавать?
1584 2379686
>>379643

>Как их вообще осознавать?


Выучить язык.
1585 2379701
>>379643
Да легко. Создаётся TagHelper, который в HTML будет подменятся <div> с пустыми атрибутами и заполненным данными из content.Object. Что тут сложного?
1586 2379735
>>379686
Я выучил, но это каждый раз приходится разгадывать эти ребусы.

>>379701
Почему content.Object, а не просто content?
1587 2379799
>>379735

>Почему content.Object, а не просто content?


Надо смотреть на сам объект content, без него сложно сказать, что там происходит.
1588 2379849
>>379643

> Как их вообще осознавать?


Ctrl+клик на

> TagHelperOutput


И читать-читать-читать. До просветления.
1589 2379858
>>379618

>Ты явно не читал Эккеля


В следующий раз зайди в тред с 1С и скажи им что они Страуструпа не читали

Нахуя мне книги для вкатунов с тонной воды читать еще и для другого стека
>>379618

>Аналог Троелсена по джаве двухтомник Хорстмана


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

>>379618

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


>>379618

>Мне в детстве кто-то подарил справочник по Delphi, но по нему я не смог освоить Delphi, потому что даже паскаль тогда не знал.


Я для тебя видимо открою секрет, документация это более широкий термин нежели сгенерированный по XML набор гиперссылок с минимальным содержанием.
Про то что документация сейчас != документация в книжке рассказывать нужно?
Документация это в том числе туториалы, нормальные примеры и приложения.

>Мало актуальной литературы по фреймворкам


Ух бля, по Spring дохуя "актуальной" литературы. (нет)

Ее нет, потому что документация сейчас примитивная с картинками \ видосами \ сиди да код копируй из снипетов.

У маек одна из лучших документаций и полно примеров хороших подходов в том числе для людей с опытом
(https://github.com/dotnet-architecture/eShopOnContainers)

Что ты планируешь делать когда будет 2+ года опыта работы и нужно будет разбираться с Azure \ Kubernetes \ микросервисами?
Тоже "книжку" АКТУАЛЬНУЮ ПОСЛЕДНЕЙ ВЕРСИИ искать будешь?

>>379618

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


Так может есть какая-то причина, почему все-таки ORM нужны а не "ой сложно, я вот на чистом SQL хуяк хуяк накидал запросов и архитектура у меня лучше"?
1589 2379858
>>379618

>Ты явно не читал Эккеля


В следующий раз зайди в тред с 1С и скажи им что они Страуструпа не читали

Нахуя мне книги для вкатунов с тонной воды читать еще и для другого стека
>>379618

>Аналог Троелсена по джаве двухтомник Хорстмана


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

>>379618

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


>>379618

>Мне в детстве кто-то подарил справочник по Delphi, но по нему я не смог освоить Delphi, потому что даже паскаль тогда не знал.


Я для тебя видимо открою секрет, документация это более широкий термин нежели сгенерированный по XML набор гиперссылок с минимальным содержанием.
Про то что документация сейчас != документация в книжке рассказывать нужно?
Документация это в том числе туториалы, нормальные примеры и приложения.

>Мало актуальной литературы по фреймворкам


Ух бля, по Spring дохуя "актуальной" литературы. (нет)

Ее нет, потому что документация сейчас примитивная с картинками \ видосами \ сиди да код копируй из снипетов.

У маек одна из лучших документаций и полно примеров хороших подходов в том числе для людей с опытом
(https://github.com/dotnet-architecture/eShopOnContainers)

Что ты планируешь делать когда будет 2+ года опыта работы и нужно будет разбираться с Azure \ Kubernetes \ микросервисами?
Тоже "книжку" АКТУАЛЬНУЮ ПОСЛЕДНЕЙ ВЕРСИИ искать будешь?

>>379618

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


Так может есть какая-то причина, почему все-таки ORM нужны а не "ой сложно, я вот на чистом SQL хуяк хуяк накидал запросов и архитектура у меня лучше"?
1590 2379862
>>379858

>Так может есть какая-то причина, почему все-таки ORM нужны


потому что требуют ))))
image.png52 Кб, 1350x334
1591 2379888
Подскажите, пожалуйста: хочу добавить пакет NuGet, но мне вываливает кучу ошибок, что чет не установлено, где-то надо версию понизить. Существуют ли какие-то дефолтные наборы пакетов System, чтобы не ебать себе мозги и не устанавливать по одному?
image.png9 Кб, 450x246
1592 2379892
>>379888
Тут вообще нихуя не понятно, в NuGet максимум 1.5.0 можно скачать, откуда 5.0.0 мне высрать?
1593 2379899
>>379888
>>379892
Ааааааааа, ебать меня в сраку, я ебал макаку. Это офлайн пакеты. Нихуя я дебил.
1594 2379902
>>379899
Пиздец, NuGet.org подрубил, и все само скачалось.
1595 2380079
>>379858
Я уже половину Рихтера прочитал. Нормально он пишет. Только это не помогает понять АСП.

Собственно, по АСП пробовал читать Фримана, но там проблема, что нет свежей книги, а 2.0 уже не работает совсем ни как.
Пробовал читать Эндрю Лока, но он слишком углубляется в теорию и приводит мало примеров кода. Вроде как понимаешь принцип работы, но ни строчки кода не можешь написать.

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

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

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


>


Кому-нибудь другому эту сказку расскажи
У спринга API за 9 лет не поменялся и весь код рабочий, ага

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

>>380079

>Вроде как понимаешь принцип работы, но ни строчки кода не можешь


Вот это да, оказывается писать код его нужно ПЫТАТЬСЯ писать

>>380079

> К примеру, блейзор нигде не используют, потому что книг по нему нет.



1. Blazor in Action,
2. Microsoft Blazor: Building Web Applications in .NET 2nd,
Web Development with Blazor: A Hands-on Guide for .NET Developers to Build Interactive UIs with C#,
3. Learning Blazor: Build Single-Page Apps with WebAssembly and C#,
4. Blazor Revealed: Building Web Applications in .NET,
5. Exploring Blazor: Creating Hosted, Server-side, and Client-side Applications with C#,
6. Blazor WebAssembly by Example: A Project-based Guide to Building Web Apps with .NET, Blazor WebAssembly, and C#,
7. An Introduction to Building Applications with Blazor: How to get started creating applications using this exciting easy to use Microsoft C# framework,
8. Building a Web App with Blazor and ASP .Net Core: Create a Single Page App with Blazor Server and Entity Framework Core

Мне продолжать?

>>380079

>К примеру, блейзор нигде не использую


Конечно, вкатут у которого рынок ограничен российским авторитетно заявляет что НИГДЕ НЕ ИСПОЛЬЗУЕТСЯ.
Дальше пойдут виляния жопой и НИГДЕ сменится вполне очевидным МАЛО используется.

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

Реальность такова, что проще написать фронт на ангуляре, чем ебаться со смесью говна Silverlight + Knockoutjs коим он и является

--------

Годы идут, документация собирается сообществом и пишется максимально просто, доступно и без воды, а вкатуны и дальше жрут говно от АВТОРНЕЙМ вместо того чтобы начинать потреблять оригинальный контент и решать задачи на работе за пару часов, вместо пары дней
1596 2380646
>>380079

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


>


Кому-нибудь другому эту сказку расскажи
У спринга API за 9 лет не поменялся и весь код рабочий, ага

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

>>380079

>Вроде как понимаешь принцип работы, но ни строчки кода не можешь


Вот это да, оказывается писать код его нужно ПЫТАТЬСЯ писать

>>380079

> К примеру, блейзор нигде не используют, потому что книг по нему нет.



1. Blazor in Action,
2. Microsoft Blazor: Building Web Applications in .NET 2nd,
Web Development with Blazor: A Hands-on Guide for .NET Developers to Build Interactive UIs with C#,
3. Learning Blazor: Build Single-Page Apps with WebAssembly and C#,
4. Blazor Revealed: Building Web Applications in .NET,
5. Exploring Blazor: Creating Hosted, Server-side, and Client-side Applications with C#,
6. Blazor WebAssembly by Example: A Project-based Guide to Building Web Apps with .NET, Blazor WebAssembly, and C#,
7. An Introduction to Building Applications with Blazor: How to get started creating applications using this exciting easy to use Microsoft C# framework,
8. Building a Web App with Blazor and ASP .Net Core: Create a Single Page App with Blazor Server and Entity Framework Core

Мне продолжать?

>>380079

>К примеру, блейзор нигде не использую


Конечно, вкатут у которого рынок ограничен российским авторитетно заявляет что НИГДЕ НЕ ИСПОЛЬЗУЕТСЯ.
Дальше пойдут виляния жопой и НИГДЕ сменится вполне очевидным МАЛО используется.

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

Реальность такова, что проще написать фронт на ангуляре, чем ебаться со смесью говна Silverlight + Knockoutjs коим он и является

--------

Годы идут, документация собирается сообществом и пишется максимально просто, доступно и без воды, а вкатуны и дальше жрут говно от АВТОРНЕЙМ вместо того чтобы начинать потреблять оригинальный контент и решать задачи на работе за пару часов, вместо пары дней
1597 2380654
>>378824
Бамп
1598 2380728
Команда закрытия окна Close точно высвобождает все ресурсы?
У меня странная хрень, что при каждом новом экземпляре окна начинает все сильнее тормозить программа.
image.png31 Кб, 590x321
1599 2380776
Аноны, подскажите - это я еблан, или лыжи не едут? Почему у меня максимум больше 10, а минимум меньше на 10? Массив заполняю через рандом некст.
1600 2380777
>>380728
ну если не подвесил само окно или что-то связанное с ним, то да
1601 2380778
>>380776

>Почему у меня максимум больше 10, а минимум меньше на 10?


шта? на скрине минмах 5-75. о чем ты
1602 2380779
>>380778
Посмотри вывод массива наверху: самое маленькое число там 15, а самое большое 85.
1603 2380780
Алсо, 10 на самом верху не часть массива. 10 я ввожу с консоли.
1604 2380781
>>380779
все это ерунда. мы не видим код, который заполняет массив и выводит список. Алсо в выхлопе вообще нет чисел, которые в результате. Предлагаешь нам гадать по частям кода, когда сам с дебагером и полным кодом сидишь...
image.png63 Кб, 455x657
1605 2380782
>>380781

> мы не видим код, который заполняет массив и выводит список


Держи.

>дебагером


Я начал вкат совсем недавно, и не умею им пользоваться.
1606 2380785
>>380782
убери +'\n' - он тебе левые числа в консоли пишет
он твое число суммирует с (int)'\n' и сумму пишетв консоль. И ты видишь то, чего нет в массиве
1607 2380786
>>380785
Понял, спасибо большое. Уже голову сломал с этой хуйней.
1608 2380796
>>380786
На будущее, вообще не используй '\n' в строках.
Для этого есть Environment.NewLine
1609 2380836
>>380646
Выходят новые версии Спринга, но старые всё также можно легко загрузить через мавен. Это не как у Микрософт, где через год они убирают старую версию из всех репозиториев или принудительно обновляют винду, что у тебя всё ломается.

Все книги по Блейзору на английском!

Я заходит на сайт Микрософт и пытался читать документацию, но это справочник, а не учебник. Откуда я знаю какую из 100500 функций в 100500 классов применять?
Книги читаются не пару дней, а месяц минимум. Особо толстые и дольше. Троелсена я читал наверно полгода, потому что книга жутко скучная. Успел в перерыве и по WPF почитать и ASP и даже Скита с Рихтером. Последние кстати гораздо веселее пишут и легче читаются, хоть и материал более сложный.
1610 2380840
Почему в вижле, когда создаёшь папку, то просто вводишь название и папка создаётся, а чтобы создать файл, то открывается какой-то монструозный мастер создания файла с миллионов шаблонов? Почему они не сделают такое же простое создание файлов как в VS Code?
1611 2380851
>>380836

>где через год они убирают старую версию из всех репозиториев


Да ты заебал уже ныть об этом в треде. Никто ничего не убирает.
Тебе уже наглядно, сука, показывали, что все версии доступны.
1612 2380854
>>380840
Потому что иди нахуй, вот почему.
1613 2380995
>>380796
Всегда завидовал шарпистам, что у них есть \n, \t, когда в бейсике нужно писать vbCrLf или Chr(13) & Chr(10), а оказывается у вас тоже длинные поезда, засоряющие читабельность.
2022-06-1612-46-02.png2 Кб, 147x168
1614 2381015
>>380840
Какой именно файл? Я вообще перетягиваю из проводника какую нибудь картинку или рандомный файл и он автоматом отображается в вижле. Я так туда даже файлы иллюстратора или корела кидаю, чтобы можно было запустить иллюстратор прямо из студии.

А если это какой нибудь класс или интерфейс, то тебе для удобства дают выбрать шаблон. Ты же хочешь не просто пустой текстовый файл, а файл с каким-то начальным блоком кода и xaml шаблонами.
1615 2381054
>>380995
и только в 11 шарпе сделают """
1616 2381118
Можно как-то отследить общее количество подписок например на Button Click? Мне кажется из-за этого у меня каждый новый экземпляр еще сильнее тормозит программу.
1617 2381142
>>381118
Можно. У делегата можно получить список инвокаторов (или как оно там). Вот только зачем? С чего вдруг у тебя на кнопке вешается не пойми кто кроме ближайшего code-behind в количестве одной штуки?

Обычно дело утечка памяти из-за забытых подписок (из-за чего лично полностью перешел на LifeTime паттерн), но блин не на кнопке же
1618 2381159
>>380851
Кроме базового дотнет нужны ещё инструменты, а они не работают, потому что микрософт перешли на новые. В книге Фримана по АСП 2 используется bower, а сейчас надо всё через libman загружать. И помимо этого куча мелочей не работает.
Так что гладко только на бумаге...
1619 2381172
>>381159
Эволюция есть эволюция. И приемы из асп2 не все применимы в современном асп. Но применимы в асп2. Берешь тогдашнюю студию, тогдашний фреймворк и вперед - все там будет тогдашнее.
1620 2381182
>>381159

>Мам, я не могу найти релевантную информацию и читаю говно мамонта, а потом пытаюсь скампелиравать под новую версию копипасту оттуда, а она не компелироваться, памаги, пачиму мир так жесток


Ты никогда не вкатишься. Разработчик должен уметь адаптироваться к изменению технологию и находить информацию. Почитать книжку и посмотреть видосик для вката не выйдет.
1621 2381212
>>380995
Это не проблема шарпа или какого-то конкретного языка. А совместимости систем. Эта хуйня идет еще с первых терминалов и принтеров. Просто одни делали так, что достаточно подать на устройство одну команду перехода на следующую строку и аппарат сам передвинет каретку вниз и в начало строки. А другие решили, что должно быть две разные команды на спуск вниз и на возврат к началу строки. И естественно создатели разных систем ну никак не могли прийти к одному стандарту и поэтому просто /n сработает у тебя в винде и выдаст хуйню на линухе. И наоборот.

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

Еще алсо, если тебе часто приходится форматировать строки подобным образом, то где-то у тебя проеб в архитектуре вывода сообщений. Такое допустимо для лабораторных работ ну или максимум для логов, но не в основном флоу программы.
ColorPicker.mp41,2 Мб, mp4,
616x364, 0:12
1622 2381213
>>381142
Нашел одну кастомную подписку. У меня было несколько страниц, которые райзят событие, но это событие изменяет штук десять текстбоксов, причем частота там со скоростью MouseMove.

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

>из-за чего лично полностью перешел на LifeTime паттерн


Надо посмотреть. Меня уже эти подписки начинают пугать.
1623 2381215
>>381159

>Так что гладко только на бумаге...


Ну что я могу сказать. Хуево быть тобой.
Я в свое время вкатывался в Dot.Net Core 3.1 не прочитав ни одной книги, только MSDN и несколько статей. Сейчас вот пилю микросервисы на .net6 вообще не читав никаких статей по нему кроме чейнджлога.
Так что ты либо соберись и учись добывать и обрабатывать информацию, либо это не твое.
1624 2381222
>>381212

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


Так я в основном использую в Debug.WriteLine или что-то в этом роде. Никак не могу привыкнуть к отладчику, мне проще логи читать. А точки останова как туман войны.
1625 2381224
>>381213

>Надо посмотреть. Меня уже эти подписки начинают пугать.



Концепция проста. Есть отписки, есть Dispose, но как все это дело не забыть вызвать? Да и когда вызвать? Если мне передали в конструктор IDisposable, и я сам IDisposable, то должен ли я делать Dispose у этой зависимости?

Вот это все решает лайфтайм паттерн. Это когда есть кто-то, кто отвечает за "когда все дропать". Все имеет lifetime токен (типа как CancellationToken только lifetime) и с ним подписываешься и вообще все. И в ус не дуешь кого кому отписывать - за это отвечает тот, кто заведует твоим lifetime. И когда этот кто-то дропнет lifetime, то все умрет и отпишется и задиспозится автоматически

в вебе попроще. там есть DI который используется как Lifetime Manager - "пришел запрос, родили scope, в конце дропнули и все рады"

В десктопе же все живет, рождается, умирает хз как. И немощи
DI явно не хватает. Нужен не scope примитив, а мощный тулз
Поэтому я использую вот это
https://www.youtube.com/watch?v=Sq_h5bVWJ0k

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

хотя конечно WPF к этому предрасположен, как мужик к деторождению, но все же живу как то.
1626 2381239
>>381224

>Хорошо знать языки


>Что такое out, что такое readonly


Инфоцыгане такие инфоцыгане. Это не основная тема видео, но чет проиграл.
1627 2381241
>>381212
Нет, просто микрософты своровали СР/М-86 и назвали МС-ДОС, но ума не хватило сделать как в юниксах.
1628 2381244
>>381215
А до этого какой был уровень? Наверняка знал АСП с фреймворка
1629 2381245
Это нормально в тестовом на бэк джуна на C# заставлять работать с сырым TCP?
1630 2381249
>>381239
Ну идея проста. та же самая идея (и реализация) в - CancellationToken-ах. Разница только в семантике - токены отмены привычно отменяют действия, а токены лайфтайма - отменяют все. Как то подписываться с CancellationToken не делают, а подписка с lifetime уже норм. Но грань очень очень тонкая. Настолько, что мелкие в своем асп юзают CancellationToken как ApplicationLifetime события - от чего мозг плывет ибо от событий ожидаешь....событий.

>>381245
ну работать же, а не жарить его )
1631 2381272
>>381182
Степан Береговой сказал, что можно через книжки:
https://youtu.be/BG4nnMR7uTs
16476848243270.jpg68 Кб, 604x583
Ньюфаг спрашивает 1632 2381273
Решил выучить язык, потому что есть одна идея небольшого приложения, которое сильно облегчит мне жизнь. Попробовал петухон, забил хуй, потому что нахуй он мне нужон, я хочу сделать виндовую программу с гуем, а бэкэнд и консольное приложение. Начал учить шарп. Пока всё нравится, всё в целом понятно, вижуал студия за тебя пишет код, только таб нажимай, всё что надо подчёркивается. Короче буду учить шарп.

Нравится, это конечно хорошо, но вопрос: а что в итоге-то можно делать со знанием шарпа? Ест-но никто меня в контору не позовёт сразу на зп, игоры на юнити делаются не за месяц.
Я имею в виду, что какой-нибудь жаба скриптер может не сдохнуть с голоду, потому что всегда кому-нибудь нужно будет сделать сайт. А как подрабатывают шарписты?
1633 2381297
>>381273

>А как подрабатывают шарписты?


Шарп - это про энтерпрайз. То есть прямая противоположность подрабатыванию. Так что если шарписту зачем-то хочется подрабатывать - то он делает это как все: учит js, ноду, реакт? и пиздует на фриланс-биржу.
1634 2381300
>>381272

> Степан Береговой сказал


Ну ты и еблан!
Поебать что сказал рандомный инфоцыган с ютуба. Его задача, чтобы ты ему просмотр принёс, лайк и подписку с колокольчиком. Ты принёс, молодец.
1635 2381301
>>381297
Чушь от начала и до конца.
1636 2381309
>>381301
Если он говорит чушь, то расскажи как на самом деле.
1637 2381314
>>381309
шарпист берет шарп и ищет заказы на шарпе
ваш кэп
1638 2381315
>>381314
Кэп, я ньюфаг, ёпт. Я не ебу какие заказы есть на шарпе для подработки, я поэтому и спрашиваю в профильном треде. Для меня шарп это пока что какие-то приложения для винды, юнити и вроде что-то там с бэкендом делают. Я даже специально залез на коворк и при поиске шарпа там 99% объявлений: сделаю десктопное приложение, и 1% - сделаю игру на юнити/проконсультирую. Покажи какие услуги ищут у шарпистов, будь ласка.
1639 2381326
>>381315
>Я не ебу какие заказы есть на шарпе для подработки
Никаких нет. Это язык для создания огромных бэкендов командами из десятков человек. От кого конкретно ты собрался подработку получать? Максимум, что тебе светит найти - лабу какому-нибудь студенту за 300 рублей сделать. Если очень сильно повезет.

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


Такие себе у тебя представления. 85% работы на шарпе - создание и поддержка монолитов на ASP.NET. Юнити - процентов 5, а всякие приложения для винды, для мобилок и прочего - еще процента 3 суммарно.
1640 2381328
>>381326
И добавь еще сюда то, что C# - он в основном на западном рынке используется, в России с ним сейчас будет вдвойне хуже. У нас тут люди больше js, php и java для бэка используют.
1641 2381331
>>381315
Увы, у нас нечего ловить. Знание англ + скил и западные биржи (правда щас с этим жопца по понятным причинам)
И вообще никто не заставляет зацикливаться на одном языке. выучи несколько. В итоге и останешься на одном, если не перфекционист
1642 2381347
>>381273
Десигнер. Делаю для себя плагины и микрописечки, даже в мыслях не было использовать шарп как единственный инструмент для заработка. Мне кажется, чтобы зарабатывать чисто на шарпе, это надо быть узкоспециализированным сверхбогом. Вообще, даже у нас в десигне, умение разбираться чисто в своей области уже никого не впечатляет — либо надо учить что-то смежное, либо надо задрачивать область до блеска. Иначе будешь сосать бибу за 10к в месяц в рогах и копытах, на уровне теть Глаш, условно "знающих фотошоп".
1643 2381354
>>381347
знать проф несколько языков тоже дорого стоит. Голова не резиновая.
1644 2381356
Здаров, шарпята. Что есть годного для шарпа для обработки и создания эксель файлов? Epplus пойдет? На современном коре пашет? Там последняя халявная версия 4 какая-то древняя. За посвежее пизды не дадут? планируется небольшая приложушка для нужд фирмы, но чисто паре человек для внутреннего пользования Ещё знаю CLosedXML но там чукча не читатель, чукча писатель. Может ещё что-то знаете
1645 2381366
>>381328
Получается я зря учу сишарп и надо было всё-таки дальше учить джаву?
1646 2381376
>>381366
Ты блять программирование учи, блять, а не язык, блять! Паттерны учи, СОЛИДы! Зная это всё ты будешь просто брать новый модный молодёжный язык и писать на нём без задней мысли, даже не уча.
.jpg112 Кб, 800x1094
1647 2381381
Вопросец.
Вот я хочу сделать примерно следующее. Есть некая сущность с которой по разному можно взаимодействовать: читать из нее что-то, писать, вызывать экшоны. Допустим это некое устройство. Мобилка, например: можем посмотреть ФС, можем IMEI посмотреть, можем время посмотреть, можем запустить приложение какое-то, посмотреть СМСки пользователя, можем реагировать на действия пользователя и регистрировать их, можем включить-выключить фонарик.
Ну, собственно, сейчас у меня есть некая сущность которая описывает вообще все что можно делать с таким вот устройтвом. И вот в контексте современных устройств - там дохуя всего. Не оч удобно.
Так вот, что я хочу. Я хочу немного абстрагироваться и дать себе возможность настроить что я хочу видеть, как часто что-то опрашивать и сохранять для статистики.

Ну, собственно, что я придумал: Сущность Page - некий шаблон странички, которую я буду уже фронтендом рисовать. Суность Block - это карточка нужная для позиционирования внутри Page, по сути просто имя-описание блока, состояние закрыто-открыто и все. Ну и Widget - сущность с каким-то элементом управления/отображения данных, допустим - просто индикатор: вкл/выкл с горящей иконкой; табличка с какими-то элементами, допустим логи работы с временем, типом сообщения, сообщением; график для каких-то исторических измеряемых величин; текстовый элемент в который можно поместить допустим последнее считанное значение.

Ну дык вот. Я не совсем понимаю как это вместе связать. До того как я придумал вот эту вот штуку с Page и прочим - были сущности Device, DeviceType, DeviceTypeTemplate, DataObject, DeviceTemplateDataObject, DeveceDataObject, типа тип - это просто описание устройства, шаблон - связывает некие операции и данные с типом, чтобы можно было при добавлении устройства подтянуть нужное, а потом уже у устройства поудалять-подобавлять нужное. А теперь я хочу оставить это же, но при этом сделать типа: Создать страничку, появляется пустая страничка, на ней я надобавлял блоков, надобавлял виджетов в блоки, и потом могу переключать устройства и чтобы страничка на основе этого подтягивала нужные данные. Но вот как это вот связать я чет не понимаю(((
.jpg112 Кб, 800x1094
1647 2381381
Вопросец.
Вот я хочу сделать примерно следующее. Есть некая сущность с которой по разному можно взаимодействовать: читать из нее что-то, писать, вызывать экшоны. Допустим это некое устройство. Мобилка, например: можем посмотреть ФС, можем IMEI посмотреть, можем время посмотреть, можем запустить приложение какое-то, посмотреть СМСки пользователя, можем реагировать на действия пользователя и регистрировать их, можем включить-выключить фонарик.
Ну, собственно, сейчас у меня есть некая сущность которая описывает вообще все что можно делать с таким вот устройтвом. И вот в контексте современных устройств - там дохуя всего. Не оч удобно.
Так вот, что я хочу. Я хочу немного абстрагироваться и дать себе возможность настроить что я хочу видеть, как часто что-то опрашивать и сохранять для статистики.

Ну, собственно, что я придумал: Сущность Page - некий шаблон странички, которую я буду уже фронтендом рисовать. Суность Block - это карточка нужная для позиционирования внутри Page, по сути просто имя-описание блока, состояние закрыто-открыто и все. Ну и Widget - сущность с каким-то элементом управления/отображения данных, допустим - просто индикатор: вкл/выкл с горящей иконкой; табличка с какими-то элементами, допустим логи работы с временем, типом сообщения, сообщением; график для каких-то исторических измеряемых величин; текстовый элемент в который можно поместить допустим последнее считанное значение.

Ну дык вот. Я не совсем понимаю как это вместе связать. До того как я придумал вот эту вот штуку с Page и прочим - были сущности Device, DeviceType, DeviceTypeTemplate, DataObject, DeviceTemplateDataObject, DeveceDataObject, типа тип - это просто описание устройства, шаблон - связывает некие операции и данные с типом, чтобы можно было при добавлении устройства подтянуть нужное, а потом уже у устройства поудалять-подобавлять нужное. А теперь я хочу оставить это же, но при этом сделать типа: Создать страничку, появляется пустая страничка, на ней я надобавлял блоков, надобавлял виджетов в блоки, и потом могу переключать устройства и чтобы страничка на основе этого подтягивала нужные данные. Но вот как это вот связать я чет не понимаю(((
1648 2381382
>>381376
А меня потом возьмут на работу на удалёнку с теоретическими знаниями паттернов и солидов, но без знания шарпа и асп.нет?
1649 2381383
>>381354
Как будто на один язык надо сил меньше. В случае с одним языком тебе знать надо не просто профессионально, а суперпрофессионально. В сумме это то же количество затраченной энергии, только шанс успеха понижается.
1650 2381384
>>381382
Ой всё. Траль тупостью кого-нибудь ещё.
1651 2381385
>>381384
Я про то и говорю, что спрашивают знание конкретных языков: сишарпа или джавы, и технологий: асп.нет или спринг.
1652 2381389
>>381366

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


Если из России - то js и php учи, в новой то реальности. А может и вообще си, если плохо все пойдет, на заводе то всем похуй на твое знание веб-фреймворков.

>>381376

>Ты блять программирование учи, блять, а не язык, блять! Паттерны учи, СОЛИДы!


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

Ничего не спасает, ни хайд, ни коллапс.
1654 2381393
>>381382
Не бывает джуниоров на удаленке, тебя в любом случае на нее не возьмут.
.png60 Кб, 1350x830
1655 2381397
>>381381
В принципе пока писал - подумал - учитывая что у операции и данные - отдельно - можно их связать с виджетами. А сами странички не привязывать ни к чему, и на фронтенде, который будет на Angular - запрашивать саму страничку, а потом каждому компоненту виджета передавать выбранное устройство - и он с сервера уже это будет тянуть. Наверное так будет норм. Но я пока не уверен.
Для наглядности - нарисовал что я примерно хочу.
1656 2381407
>>381383

>тебе знать надо не просто профессионально, а суперпрофессионально


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

>>381389

>Чтобы учить программирование - надо сначала на работу устроиться


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

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

Пример - вот я понимаю async/await и не понимаю "как можно не понимать такое простое как оно работает". А ведь когда я впервые столкнулся с этим подходом (а это был шарп, на котором я писал с момента рождения шарпа), то у меня были сложности с пониманием. Потому что НЕПРИВЫЧНО
Туда же ФП, разные паттерны, солиды. Это когда освоишь "тьфу хули там сложного то", а поначалу мозг не отформатирован. Но упарываться не нужно - главное форматирование.
И тот же я никак не могу освоить толком реактивное программирование. Я легко его читаю, но мне трудно на нем писать, сложно думать в этой парадигме. Я себя заставлю, читаю чужие исходники (правда понимаю, что они еще меньше думают в этой парадигме чем я) но идет туго.
1657 2381411
>>381407

>Пример - вот я понимаю async/await и не понимаю "как можно не понимать такое простое как оно работает"



То, что ты понимаешь как работает, не означает ничего. Оно понятно до тех пор, пока работа чего-то очевидного начинает работать не так, как ожидаешь — вот тогда и приходит осознание, что на самом деле ты ничего не понимаешь.
1658 2381414
>>381411
Ты просто пиздобол, которому охота спорить ниочём.
1659 2381456
>>381414
Если я запустил несколько асинхронных функций, каждая из которых обращается к общей переменной, функции мешают друг другу?
1660 2381501
>>381456
Если ты запустил их на пуле и никакой синхронизации их выполнения, то у тебя многопоточный доступ
1661 2381505
Есть какой-то вариант без ракетостроения, чтобы ограничить частоту обработки событий?

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

Для первой важна высокая частота итераций, чтобы все выглядело плавно (каждые 5 тиков), а для второй это не важно, достаточно паузы в 100-200 тиков.

И еще левая часть это интегрированная страница, сперва там отрабатывается всё: определяются координаты, вычисляется цвет, перекрашивается все что нужно, а потом вызывает событие, которое ловит блок справа и переписывает данные в текстовой части. И правая часть самая прожорливая.
Я уж и асинк использовал в связке с вейт ол, но помогло отчасти — происходят бесючие микрофризы с непредсказуемой частотой.
1662 2381536
>>381244
Нет, вообще не знал. Шел по цепочке Basic->Asm->C->Delphi->C#, хорошо шарил за алгоритмы. Потом просто перекатился на .net Core и тогда же и стал учить Asp.Net Core.
Че там в нем до кора было, вообще в душе не ебу и не собираюсь узнавать, т.к. в принципе не собираюсь с таким легаси работать.
1663 2381537
>>381273

>А как подрабатывают шарписты?


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

>там 99% объявлений: сделаю десктопное приложение,


Это говорит только о том, что десктопщики нахуй никому не сдались сейчас, т.к. десктоп по сути мертв.
>>381328

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


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

Алсо, нытье вроде "Бла-бла, после тех самых событий все изменилось, майкрософт ушел - всем пиздец" - хуита голима. Они никогда и не присутствовали в России от слова совсем, а во вторых не изменилось н-и-х-у-я.
1665 2381578
>>381505
Да.
Что-то Типа:

DateTime last;
object _syncRoot = new();
void OnZalupa(object sender, EventArgs a){
lock(_syncRoot){
if(DateTime.Now - last < TimeSpan.FromDay(365)){
return;
}
last = DateTime.Now;
}
...остальная хуйня.
}
1666 2381592
>>381456
Ты троллишь так? Мне просто сложно поверить, что человек в 2022 году будет такой вопрос задавать.
1667 2381606
Razor Pages - это реинкарнация WebForms?
1668 2381629
>>381578
Не, ну это ракетостроение. Так-то я и сам сделал.
1669 2381670
Почему многие говорят, мол, читай Рихтера, чтобы изучить шарп, а там даже про коллекции ничего не сказано. Да и вообще такое ощущение, что книга написана наполовину, потому что очень много тем не разобрано. В общем, я думал, что Рихтер - это крутая книга, а оказалось, что какие-то авторские заметки на тему.
1670 2381671
>>381505
или Task.Delay с отменой можно свелосипедить
1671 2381674
>>381578
как раз это не пчелы
событие может закончиться раньше чем сработает правило и в итоге будет неверное значение.
1672 2381715
Кто-нибудь, разумеется кроме меня, собирается делать перекат?
Кто там новую шапку хотел - ваш час пробил.
1673 2381720
>>381715
Пофиг на шапку. Главное, кореяночек не забудь!
1674 2381721
>>381720
Увы, я не могу менять шапку
14956996275291.jpg42 Кб, 200x200
1675 2381790
>>381715

>Кто там новую шапку хотел


Считаю, что все желающие должны получить по шапке.
1676 2381796
>>381790
по НОВОЙ шапке, ибо эта уже устарела
1677 2381828
>>378722

>есть какие-то хитрожопые пути?


Да. Учить реакт. И вордпресс.
1678 2382022
>>378722

>Правда ли сейчас и в ближайшей перспективе джуну без опыта работу найти практически нереально?


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

>есть какие-то хитрожопые пути?


Нет. Только учиться, зарабатывать опыт, делать проекты и пытаться вкатиться. Есть вероятность, что попадешь в контору, которая вот именно сейчас не против принять джуна на развитие.
изображение.png12 Кб, 661x228
1679 2382033
В чем разница?
1680 2382051
>>382033
Наверно в первом случае идет речь о net.Core — очередная попытка в кроссплатформенность. Если ты не собираешься запускать приложение на мобильном шиндовс или линуксе, то юзай фреймворк.

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

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

Короче. Есть устаревшая проторенная дорожка на net framework, а есть новая менее неизведанная и полная приключений net.Core. По какой сам пойдешь, на какую глаз положишь? Пока ты будешь изучать net.core, это говно устареет и уже все будут дрочить вовсю на web
1681 2382053
>>381539

>Все нормально с ним на местном рынке.


>Да вакансий меньше раза в два чем на джаву


Нет. Даже до спецоперации вакансий было раза в 3 меньше, чем на джаве, а потом - их количество упало еще раза в 3. А джуновских вакансий - и вовсе раз в 5 меньше стало, чем до войны.

>А после выхода .net 6-го он стал той самой писечкой на которой все хотят пилить монолиты и микросервисы для своих стартапов.


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

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


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

>Алсо, нытье вроде "Бла-бла, после тех самых событий все изменилось, майкрософт ушел - всем пиздец" - хуита голима. Они никогда и не присутствовали в России от слова совсем, а во вторых не изменилось н-и-х-у-я.


Причем тут майкрософт? Ушли бодишопы (или просто прекратили наем), а это половина рынка дотнета в России и 80% джуниорских вакансий.
1682 2382061
>>382033
одно для дотнета 5-6 (которое выросло из кор)
второе для легаси .нет 4.8, которое старый фреймворк
1683 2382066
>>382053

>на дотнете конфигурации для конфигураций конфигураторов. Монолиты для стартапов - такое есть


ты попутал со старым дотнетом что ли. чего там неудобного то. новый дотнет активно задвигается как микросервисы. все для этого есть (хотя и на старом все для этого было просто микросервисы очень спорно когда нужны)
1684 2382071
>>382061

> одно для дотнета 5-6 (которое выросло из кор)


А куда xaml делся?
1685 2382108
>>382066

>новый дотнет активно задвигается как микросервисы.


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

Я конечно мог бы координату хита смещать для своих расчетов, но проблема в том, что у меня криво срабатывают события типа MouseLeave.
1687 2382165
>>382053
И что ты предлагаешь? Учить джаву?
1688 2382173
>>382149
Все, нашел. Оказывается в редакторе студии есть специальный инструмент, который устанавливает координаты хотспота в .CUR.

Но теперь другой вопрос. XAML в упор отказывается видеть локальный адрес файла, хотя в коде вот это работает
StreamResourceInfo info = Application.GetResourceStream(New Uri("/ResourceFiles/CursorTest.cur", UriKind.Relative));
H_Ring.Cursor = New System.Windows.Input.Cursor(info.Stream);


А вот неработающий код в XAML (Ошибка: не удается найти ресурс)
<Page.Resources>
<Cursor x:Key="TestCursor">ResourceFiles/CursorTest.cur</Cursor>
</Page.Resources>


Чому так?
1689 2382180
>>382071
никуда не делся. Проекты из .нет4.8 работают и под 5-6
Так что разница только в рантайме, что весомо, но если у тебя легаси, то выхода нет (ну возможно и в формате файла csproj (не хочу проверять))
1690 2382205
>>382053

>Микросервисы никто на нем не пилит


Ой, да ладно. Нам вон с корешем на все лето работы накидали этих микросервисов пилить на .net6. За каждый по сотке на человека. Если после основной работы по вечерам где-то по час...два уделять времени на это то на каждый по неделе, максимум две уходит (ну т.е. фуллтайма дня 3..4 максимум. И это мы даже еще не мидлы.
1691 2382210
>>382053

> дотнете конфигурации для конфигураций конфигураторов


Я хуй знает на каком ты там дотнете пишешь, что такой хуйней страдать приходится. Ни разу больше чем стандартной конфигурации для моделей ничего не прописывал.
2022-06-1721-07-01.png10 Кб, 785x131
1692 2382226
>>382173
Создаю имедж, прикрепляю из тех же ресурсов и все норм, у курсора ошибка. И странный формат, нет Source.
2022-06-1721-17-35.png5 Кб, 366x208
1693 2382243
>>382226
В свойствах указал, что это ресурс.
1694 2382244
>>382243
>>382226
Короче, нахуй. Указал через и сработало
Cursor="{Binding Source=/ResourceFiles/CursorTest.cur}"
Жопа какая-то.
1695 2382309
>>382051
>>382061
Вы хотите сказать, что в WPF впилили кроссплатформенность? Он что под линуксом запускается? Не верю!
2022-06-1723-09-03.png22 Кб, 762x430
1696 2382330
>>382309
Кроссплатформа по макросовтовски.
Сначала да, потом нет и вообще такого никогда не было. Мы даже приставку Core выпилим.
1697 2382337
>>382309
WPF - Windows Presentation Foundation. В названии явно указано предназначение. Кор без гуи должен быть кроссплатформенным. А WPF, базирующееся на кор просто для того, чтобы не поддерживать старое.
1698 2382445
Юзает ли тут кто-то ABP Framework? Как вам?
1699 2382463
>>382337

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


Ахаха, линукс навечно без гуя, консольки хватит.
1700 2382500
Как вернуть отображение класса Program при создании консольного приложения?
1701 2382507
>>382500
Ни как. Микрософт его убрали.
1655533927545.png407 Кб, 540x524
1702 2382533
>>382330

> which is not easy


Для трансконтинентальной корпорации это нот изи. Хотя куча индюков пилит авалонии и этоформсы тока в путь. Ясно-понятно.
1703 2382570
>>382500
Создаешь приложение на .net5, потом в свойствах проекта меняешь на .net6
1704 2382587
>>382533

>Для трансконтинентальной корпорации это нот изи.


Анриал энжин 4 давно под кучу платформ игры конвертирует — просто выбираешь целевую платформу и все. А ведь в игре интерфейс это всего лишь десятая часть всех задач.
1705 2382627
А правда, что шарпистов заставляют быть фуллстеками?
1706 2382640
>>382627

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


Правда
мимо бывший WPF, заставили быть фуллстеком в вебе
1707 2382641
Задача: отправить по tcp число и получить число в ответ. В ответе само число и мусор справа и слева (пробелы, точки, другие знаки).
Как делаю:
Создаю TcpClient
Вытягиваю из него NetworkStream
Из стрима создаю StreamReader, StreamWriter
writer.WriteLine(request)
writer.Flush()
reader.DiscardBufferedData()
var response = reader.ReadToEnd()
Потом пробегаю регуляркой и вытягиваю число.

Так вот, проблема в том, что иногда приходит что-то вроде ,.,.,. 69
А запросить в следующий раз - придёт ,.,.,. 69420.. .
И, вероятно, нормальным ответом может быть просто 69420
Как вообще такую херню нормально обработать?
1708 2382664
>>382500
они уже вернули в обновах последней студии. добавили галку которую нужно поставить при создании проекта.
1709 2382692
>>382641
ну ты же понимаешь что ты не привел кода сервера, который это самое число получает, чтобы потом вернуть.
.png64 Кб, 696x443
1710 2382804
>>382641
Я бы так делал...
1711 2382919
>>382587

>в игре интерфейс


В игре нет интерфейса, там только картинки, которые движок и так рисует. Такие рисованые интерфейсы давно есть и без твоих ссаных унрылов, imgui и подобия. Только мало кому нужны такие фейки, только в те же игрульки встраивать в основном.
1712 2382926
>>382919
Типа в WPF не картинки. Скажи, какой элемент я не смогу реализовать в анриале.
1713 2382931
>>382926
В WPF веб-браузер, вдупли разницу.
1714 2382932
>>382926
Ну, попробуй на анриале сделать древовидный список с возможностью драг-н-дропа, при этом чтобы элемент списка мог быть кастомным, т.е. тута картинка, тама - только текст, а вот тута - кнопка.
1715 2382941
>>382931
В анриале есть даже нода веббраузера. Но я так и не понял в чем отличие. Парсер XML? Или что?

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


Вся база для этого есть. Нет готовой функции, но я не вижу здесь чего-то сложного. Нарисовать графическую фигуру можно, вывести текст можно, вывести растровую иконку можно. У всего есть хитбокс, события и логика.
1716 2382959
Все перекатываются с веба на десктоп или это период дипломов?
1717 2382973
>>382959
Кто все? Пара новичков (типа меня), которые очевидно делают запросы чаще остальных ИТТ.
Я вообще пишу плагин для приложения, мне веб не поможет.
1718 2383054
Изучаю язык по книге Прайса М., C# 9 и .Net 5.0, насколько она актуальна? И насколько критично, что в книге используется VS Code, а не полноценное IDE?
1719 2383055
>>382959
Ну, я как раз диплом на крестах, питоне и гошке защитил, теперь изучаю шарп для трудоустройства на первую работу. Думаю за 2 недельки осилю на джуна.
1720 2383057
>>383054

>Изучаю язык по книге Прайса М., C# 9 и .Net 5.0, насколько она актуальна? И насколько критично, что в книге используется VS Code, а не полноценное IDE?


Пиздец...
1721 2383058
>>383057
Поясни
1722 2383062
>>383058
Ты тупой. Что пояснить?
1723 2383063
>>383062
Ну и почему я тупой?
1724 2383066
Господа! Давно изучил синтаксис (нет не до конца развиваться всегда куда есть), но слегка смущён разнообразием вакансий на шарпе. От чего возникает вопрос в какое направление вкатываться дальше. Вроде как чаще всего фигурирует асп нет, то десктопный софт (wpf) кажется как то поэротичнее, а Юнити так вообще вроде изи для вката. Поэтому призывай к вашей помощи дать совет куда копать дальше, чтобы не терять время
1725 2383070
>>383055
И сколько уже изучил?
1726 2383072
>>383063
Потому что ты не умеешь гуглить.
1727 2383074
>>383066
А ты сам-то что хочешь? Если тебя прям тошнит от жса и штмл - тебе в WPF. Если терпимо - в ASP. Уровень ЗП примерно одинаковый, но работы больше в АСП.
1728 2383076
>>383074
Говорят, что с работой туго. Многие перекатываются в джаву.
1729 2383077
>>383066
Что нравится туда и копай.
1730 2383087
>>383076

>Говорят, что с работой туго. Многие перекатываются в джаву.


Нихуя не туго. Если ты совсем-совсем без опыта, то да. Но с год+ опыта уже куда угодно устроишься
1731 2383091
>>383087
Дак где его взять этот 1+ год опыта?
1732 2383092
>>383091
Устроиться на работу. На завод например поддерживать легаси. Я в резюме написал что у меня 6 месяцев опыта. Просто напиздел чтобы устроиться хоть куда-то
1733 2383110
>>382664
>>382570
Спасибо, работает. А аргумента для команды dotnet new нет?
1734 2383136
>>382587
Причём тут анрил энжин блеать?
1735 2383137
>>383092
Чуть меньше года на заводе поддерживаю легаси, никому я нахуй не нужон
1736 2383171
>>383137
Пизди в резюме
А
Устраивайся
1737 2383176
>>383171
А если спросят?
1738 2383214
Советую вкатываться в MAUI пока не поздно. Скоро будет полноценный релиз данного творения от майков со всеми соответствующими допилами. По прогнозам инсайдеров, платформа совершит прорыв в сфере кроссплатформенных приложений и поглотит львиную долю рынка.
1739 2383217
>>383214
тоже были по поводу этого мысли, думаю примерно так и будет
16474776032550.mp4678 Кб, mp4,
576x312, 0:08
1740 2383220
1741 2383223
>>383214

>Советую вкатываться в MAUI пока не поздно.


Тоже самое вопили про WPF, в итоге это говно стало НИНУЖНЫМ до того, как я успел вкатиться. Через месяц мы узнаем, что не все так однозначно, есть НЮАНСЫ, поэтому у нас будет десять вариаций MAUI, каждая не работает, поэтому мы все переосмыслили и выкатываем новое творение KHui, оно сырое, спешите откушать пока не поздно, ссылочка в описании.
1742 2383226
>>383214

>По прогнозам инсайдеров


Голоса в твоей голове?
1743 2383231
>>383223
я не думаю, что майки будут наступать на те же грабли, что и прошлый раз
изображение.png11 Кб, 328x439
1744 2383282
Создал папку для второго проекта в vscode, но компилируется все равно первый. И подсветка синтаксиса во второй не работает. В чем проблема? В launch.json указан путь для первого проекта, при попытке удалить и сконфигурировать повторно всё то же самое.
1745 2383316
>>383176
Ты заебал, иди нахуй. Я после 6 месяцев на заводе устроился на 50к
1746 2383331
>>383231

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


>C# 1 - не кроссплатформенное говнище только под винду


>MAUI 1 - не кроссплатформенное говнище только под винду



ебало майков которые непонимают чому не выстрелило имагине?
1747 2383388
С чего начать вкат если уже знаю плюсы?
1748 2383390
>>383388

> знаю плюсы?


Хорошая шутка.
1749 2383394
>>383390
Хорошо, ебло, специально для тебя - шарю в С++ на том уровне, когда способен высрать рабочую хуйню которая хотя бы конпелироваться будет.
1750 2383439
>>383176
Так пиздеть надо подготовившись
Безымянный.jpg59 Кб, 963x573
1751 2383458
не понял
C# основан на JS?
1752 2383468
>>381389
чому жс и пхп, если на ебаный петон большо всего вакансий?
1753 2383489
там майки уже запретили с России грузить виновс.
Скоро и .нет запретят?
Что надо скачать заранее, чтоб с# работал на компе у меня?
1754 2383590
1755 2383632
На чем щас вообще пишут в компаниях? Когда вот указывают в вакансиях asp net 6 значит ли что по умолчанию человек должен знать ещё mvc?
1756 2383691
А вы знали, то EF сохраняет сущности в порядке их Id, а не в порядке их добавления через Add? Теперь знаете.
>>383632
Наверно нужно. Если проект чисто апишный, то не будет вью части, а модели и контроллеры останутся.
1757 2383699
>>383458
Во-первых, JScript != JavaScript. Во-вторых, JScript != JScript.NET. В-Третьих, нет С# никак не связан ни с JScript ни с JScript.NET (ну кроме того, что оба под .net clr), картинку рисовал дебич.
1758 2383701
>>383458
Кста, покажи фулл, там наверно еще куча лулзов от джавафила.
1759 2383743
>>383331
Учитывая, как яростно они впихивает в Винду Линукс и андроид рантайм - хз конечно
1760 2383764
>>383701
я уже закрыл сайт тот
1761 2383765
>>383701
но помню что там по скорости было написано, что
C# медленнее C, а Жава - быстрее C#
1762 2383768
Что нужно знать чтобы пилить мультиплатформенные проги с гуи?
1763 2383769
>>383768
Нужно знать, что мультиплатформенный гуй это говно.
1764 2383771
>>383769
Чому?
1765 2383844
>>383771
потому что не выглядит нативным для каждой из систем, слабая интеграция (то есть выглядит как говно и говном является)

А для программиста имеет кучу ограничений по созданию если гуи общий. Либо умноженной мороки программирования своего гуи в каждой платформе.
1766 2383921
Аноны, возможно ли собрать кроссплатформенные либы под одну конкретную платформу? Что за дегенерат придумал при сборке под винду требовать собирать для android, ios и mac catalyst? Причём для ведра надо ещё Android SDK, NDK и Java поставить. Даже в инструкции по сборке от индусов написано что я должен всё это дерьмо поставить. Они там совсем ахуели? До .NET 6 такой хуйни не было, а теперь MAUI и половина других новых кроссплатформенных либ требуют всё это говно. А я ведь всего лишь хотел собрать проект из папки samples на 100 строк кода.
Ещё дико бесит что теперь для всех проектов вкладка параметров проекта содержит разные параметры - жму properties и каждый раз как в первый раз, куча каких-то строк, чуть ли не xml заставляют редактировать в документации по MAUI даже пишут что надо копипастить в xml строки, пиздец какой-то.
А ещё больше очко горит когда либы майков собираются через мокропиську nuke.
Нахуй они это делают? С каждой версией всё пиздецовее становится процесс сборки, а билды из одного экзешника превращаются в кучу файлов. Недавно писал консольную софтину и оно собирает её в два файла даже при выборе single-file publish - exe и dll с таким же именем, без dll экзешник не запускался...
1767 2383923
>>383844
Ну бля, а если насрать на натив и рисовать везде одно и тоже? Может я полноэкранку хочу ебануть?
1768 2383934
>>383223

>Через месяц мы узнаем, что не все так однозначно, есть НЮАНСЫ, поэтому у нас будет десять вариаций MAUI


Не знаю, вроде весьма однозначно: линукса нет, а интерфейс описывается ксамелом. Мертворожденный кал, одним словом.

>>383468

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


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

>>383489

>Что надо скачать заранее, чтоб с# работал на компе у меня?


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

>>383765

>C# медленнее C, а Жава - быстрее C#


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

>>383844

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


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

>оно собирает её в два файла даже при выборе single-file publish


>To embed those files for extraction and get exactly one output file, like in .NET Core 3.x, set the property IncludeNativeLibrariesForSelfExtract to true.

1770 2383939
Насколько smooth и быстрым будет перекат из плюсов к вам?
1771 2383950
>>383934

> # сегодня намного быстрее жавы


Что-то в бенчмарках веб-серверов джава традиционно ебёт шарп даже не напрягаясь.

> почти догоняет Си


Шарп может только догнать джаву по потреблению памяти. В гей-бенчмарке .net 6 с AOT дал прирост в десятки процентов, а отставание от сишки всё ещё в разы. Говорить про скорость, когда шарп выступает скриптовым языком для вызова нативных библиотек - это дикость, вон питон тоже так может. Когда дело доходит до реализации алгоритмов на чистом шарпе, так сразу получаем потребление памяти гигабайтами и скорость как у дженерик параши уровня js.
1772 2384043
>>383950

>В гей-бенчмарке .net 6 с AOT дал прирост в десятки процентов


Причем тут AOT, болезненный? Ты там в своих бенчмарках скорость компиляции измеряешь?

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


Каких таких нативных библиотек? Что ты там с шарпом делаешь, больной ублюдок?

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


Фантазии фантазера. По потреблению памяти на алгоритмах - разница чисто в размере среды выполнения, какие такие гигабайты? По скорости, если в твоих алгоритмах переиспользовать что переиспользуется, все остальное заменив стракт рефами и спанами - то разница с СИ будет процентов в 20 от силы. Или просто дауны как всегда, собрали приложение со сборщиком мусора в сервер-моде, и потом показывают, мол смотрите, он сожрал всю память?
1773 2384064
>>383691

>EF сохраняет сущности в порядке их Id, а не в порядке их добавления через Add


А ты знал, что в такие проблемы ебут мозг только тем даунам, которые до сих пор в 2К22 году используют упорядоченные Id-шники, вместо GUID-ов.
1774 2384067
>>383923
Да рисуй что хочешь. У каждого свой путь. Авалония рисует сама, МАУИ пытается в натив бэкенды, Я про то, что кроссплатформенные вещи из-за своего "кросс" являют собой абстракцию (как ORM над базами данных), а значит всегда меньше возможностей чем натив (из за попыток усидеть на всех стульях).

>>383934

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


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

просто у пользователя выбора нет и приходится жрать, что дают.
1775 2384070
>>383950

>Что-то в бенчмарках веб-серверов джава


в бенчмарках чего?
Опять сравнивают теплое с мягким
1776 2384127
C# - отличный хобби-язык: сложный, интересный, мне нравится. Жаль, что в постфевральской России рынок труда для него не завезли.
1777 2384128
img.jpg38 Кб, 295x368
1778 2384136
>>384128
А прикиньте, как ждунам сейчас, по 3к откликов на вакансию.
1779 2384138
>>384136
В России HTML ПРОГРАММИСТОМ(!!1!) проще устроиться, чем дотнетчиком.
1780 2384140
>>384136
У меня в НСК на жаве без опыта 10 вакух, на шарпе 13, на питоне 16.
1781 2384190
>>384136
HTML программист == .NET разработчик
1782 2384206
Я правильно понимаю что из сабжа я могу выжать 100% потенциала даже если я сижу на пингвине?
image.png46 Кб, 850x509
1783 2384312
Мне кажется, что ItemsCollection_B лучше, потому что при большом количестве итемов будет быстрее, чем А.
Но среди изучаемых материалов я вижу овердохуя А.

Таки мне не правильно кажется?
И как всё же будет "лучше"?
ЯП на ХХ.jpg109 Кб, 882x1038
1784 2384319
>>383934

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



Ну как-то так.
1785 2384320
>>384127
а юнити
1786 2384321
>>384312
У тебя туннельное зрение, ты акцентировал внимание на одной проблеме, не замечая, как вылезают другие, причем ирония ситуации в том, что именно они руинят все плюсы, к которым ты стремишься.

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

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

Ты должен разделить задачу на то, что должно использоваться чаще всего, и на то, что должно использоваться иногда. Вариант A этому удовлетворяет: на первом месте там список, и если ВДРУГ нужно обратиться по имени, то мы используем соответствующее свойство. А если в 95% случаев нам нужно обращаться по ключу итема, то мы делаем словарь базой и перебором возвращаем индекс или массив (как у тебя, ток нахер выкинуть лист)
ЯП на Хабрк.jpg99 Кб, 786x824
1787 2384323
>>384136
Пиздишь
1788 2384324
>>384140
нск это новосибирск или что?
1789 2384325
>>384321

>(как у тебя, ток нахер выкинуть лист)


Ну и два словаря это тоже как бы не тоже. И вообще у тебя словари обращаются в сторонний лист, что тоже не оче быстро. Бенчмарком тестировал скорость?
1790 2384329
>>384321
В листах и словарях дублируются ссылки на объекты Item, то есть потребление памяти сравнительно небольшое, но при этом, хоть и ценой большЕго потребления памяти, но вариант В будет быстрее А, когда итемов станет овер9000.

>(как у тебя, ток нахер выкинуть лист)


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

>>384325

>И вообще у тебя словари обращаются в сторонний лист


Зачем? Я ж в словари ссылки на объект добавлю к каждому ключу и всё.
1791 2384334
>>384329
А ячейка со ссылкой что, занимает ноль места в памяти? При овер9000 она тоже будет занимать много места.

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

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


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

>Наверно это будет оптимальный вариант.


Кек, а ты попробуй. У тебя щас будет ДИЛЕММА между name и id.
Насколько я знаю, когда я пользовался скриптами в других программах, типа фотошопа или корела, там просто есть правило — получать итем по ID. А все остальное, типа имени, цвета — это все уже берется из самого объекта. Это сука база. И поэтому, если нам надо было найти имя объекта, мы перебирали по ID или просто список, и уже в каждом итеме узнавали его имя и сравнивали с искомым значением. И любая функция, любое свойство завязано на ID. И нет, нет там плохой производительности, если все обращаются по ID.

А твой подход, он как бы добавляет анархии, и тогда все последующие функции, которые будут работать с твоим списком, будут делаться по принципу кто в лес, кто по дрова. И я уже вангую, что ты будешь делать миллиард перегузок для каждого случая.
1792 2384357
Можно ли внутри where чекнуть коллекцию на null? Вот здесь где-то

>.Where(element=> list.Contains(element.Id)


Не хочется чёт в if до запроса проверять, придётся в else запрос дублировать. ? не сработает
1793 2384376
>>384357
Нагуглил
2594efd4ae3350full.jpg116 Кб, 640x480
1794 2384400
Ну шо анон посоветуй годный способ роскомназд

Стоит ли сейчас снижать ожидаемый уровень за до за жрат 1к usd? Или есть надежда что ситуация улучшится в ближайшие месяцы?

Или может стоит укатить на во фронт и учить ангуляр/реакт?

мимо дебил к дерьмовым опытом: год вин-форм + год asp фреймворка под iis
image.png136 Кб, 480x363
1795 2384465
Аноны, с точки зрения быстроты трансфера данных, что лучше, отправлять картинку с помощью SignalR, или с помощью SignalR
тригернуть нормальный GETзапрос
1796 2384479
Посоветуйте сервис с задачками с проверкой для с#
1797 2384623
>>384400
Нет, 1k$ после двух лет - позор.
1798 2384689
>>384064
И что? EF так же отсортирует сущности перед добавлением, хоть инт, хоть гуид.

>упорядоченные Id-шники, вместо GUID-ов.


Мань, PK из гуидов тоже будет отсортирован в базе или ты предлагаешь базе каждый раз фулскан делать для поиска записи по PK? Лол. И кстати из за это для PK используют специальные генераторы guid'овб которые генерируют их в порядке увеличения, чтобы при каждой вставке не перестраивать весь индекс, как если использовать полностью рандрмный гуид. Совсем двачер смузи обдолбался.
1799 2384700
Бля, если человек за 2 годы опыта 1к$ просить хочет, сколько околовкатуну ожидать? МРОТ?
1800 2384702
>>384312

>Но среди изучаемых материалов я вижу овердохуя А.


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

Собственно, из всего этого и следует ответ на твой вопрос - ты видишь первый кейс потому, что на практике у тебя будет не лист, на практике у тебя будет контекст базы данных, и код, описанный в первом кейсе, будет ормкой превращаться в запрос к базе данных. А там уже, на стороне базы данных, будет выполняться что-то похожее на твой код из второго кейса, что тебе абсолютно не нужно писать самому.
image.png1 Кб, 156x27
1801 2384707
1802 2384711
>>384700

>Бля, если человек за 2 годы опыта 1к$ просить хочет, сколько околовкатуну ожидать? МРОТ?


На отечественном рынке дотнета? Примерно столько же. Только это вкатун штуку баксов платить должен, чтобы его на стажировку взяли.
ee5589a42c11baa22e5780aa9aec8566.jpg41 Кб, 750x625
1803 2384751
>>384623
Бля, а шо делать братан, я уже 4 месяца без работы. Если б я ша в рахе был бы, мог бы изи на 2 года гепнуться и ждать у моря погоды.

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

>>384700
Я ваше не завидую ша вкатунцам. У меня в ленте линкедина уже пошло нытье от джунов с курсов, что они хоть что-то по полгода ищут.

За те 4 месяца, что я без работы видел только одну вакансию на джуна, так что крепись, анон.
image.png86 Кб, 528x746
1804 2384759
>>384700
Энжой
1805 2384766
>>384759
Сука. И что вот мне делать? Только закончил вуз, сейчас пытаюсь устроиться джуном на нет. Опыта работы нет.
1806 2384779
>>384766
Подожди что будет месяца через 3-4. Может все устаканится.

Но мое имхо сейчас учить дотнет сейчас плохая затея. Поясню.
1. Всем нужны универсальные спецы. Почти во всех вакансиях уровня мидл/джун+ требуют или знания фронта или CI/CD. Знание sql/ef вообще не обсуждается, требуется просто везде. Плюс ебанную кучу побочного говна кафки, рэбиты, редисы.

Мне как-то спросили на собесе на одном знаю ли я Си, ебать.

2. Дрочка на теорию. Хуже только у С++. Знаю знакомого питониста и фронта, их ваше этой хуйней не дрочат. У нас же если не вызубрил Рихтера, ты не человек нахуй.

3. Потолок признания тоже высокий. На западе cеньер это 5+, лид 7+. В той же жаве сеньоров от 3+ набирают. На фронте 3+ уже иногда лидами называют себя.

4. ASP не взлетает, хуй знает почему, думаю тут репутация Майкрософта хуевая.

5. Сраебота с опытом. Тут возможно чисто моя проблема. Попал на хуевый проект - cчитай время зря проебал. Лично знаю что 5 лет опыта дрочки вин форм + sql, на рынке по зп приравнены к году хорошего проекта (asp 5 + азура + кубер + ef + редис)
1807 2384788
>>384759
>>384751
Бля, эт что, на фриланс что ли лезть?
1808 2384818
>>384759

>Я делал некоммерческий проект на стажировке


А кто его заставляет писать в резюме, что проект был некоммерческий.
1809 2384863
>>384779

>Подожди что будет месяца через 3-4. Как ебанёт так уже ничего беспокоить не будет.


Поправил, можешь не благодарить.
1810 2385150
Как же меня достало коллапсить все функции. Что за студия вредитель, почему она всегда все раскрывает? Да лучше бы она наоборот все коллапсировала.
1811 2385187
>>383768

> Что нужно знать чтобы пилить мультиплатформенные проги с гуи?


Eto.Forms
>>383844

> не выглядит нативным для каждой из систем


Выглядит. Собирает на нативных виджетах выходной файл (win, gtk, mac).

> слабая интеграция


Интеграция на уровне дотнета. Что умеет дотнет, то умеет выходное приложение.

> имеет кучу ограничений по созданию


Ограничения только между десктопом и мобилами. Но даже ето можно урегулировать.
1812 2385190
>>384067

> Авалония


Моча

> МАУИ


Говно
1813 2385248
>>383934

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


Тыскозал? Тупость сказал.
Сегодня нет никакой необходимости использовать ненативный гуй. Гуевая система только одна - винда, выбор отсутствует, нет смысла не использовать винду.

Еще есть мобилки, но попытка делать универсальное приложение под десктоп и мобилки на самом деле выдает мобилочное приложение под десктоп. Просто дерьмо ёбаное, потому что мобилка ну никак не является аналогом десктопа даже близко. Невозможно универсальное приложение, если его не обрезать под самую убогую систему - мобилки. Это по сути не универсальные приложение, а тупо отказ от десктопного софта как такового, т.е. отказ от нормального софта в пользу убогого мобилочного дерьма. Деградация, дегенерация, регресс. Кто это пропагандирует - сам дегенерат, вот и всё.
1814 2385260
>>385187

>Eto.Forms


И получаем ограничение на уровне "лепим формочки на винформс". Какие ограничения? да те же самые из-за которых при выборе между WPF и формами выбирают WPF

>>385190
очень ценю твое мнение, вот если бы оно БЫЛО ПО ТЕМЕ.
1815 2385262
>>385248
именно. мир ебанулся. тянут свои моб приложения на дотнет как есть. то в виде метрошного говна, в котором только лютый примитив допустим, то в виде "а давайте эмулрятор андроида в винде сделаем ура ура"
1816 2385277
>>385150
Ctrl+M+O?
1817 2385304
>>385260

> И получаем ограничение на уровне "лепим формочки на винформс".


Там есть зумерский МВВМ с ХАМЛ, если ты об этом. Тебя трудно понять, зумерок. Мямлишь что-то невнятное.
1818 2385370
>>385304
то есть отделение логики контрола от визуальной составляющей, что позволяет просто сделать нужное, а не устраивать магию с ручным рисованием контрола. про сложные контролы вообще жопа - потому и сущствуют всякие телерик. Как с этим у ето.формс? Подозреваю, что никак.

А также не имея проблем с разных DPI. Как с этим у формочек?
1819 2385388
Студия 2022 предлагает только WPF Framework. Какого компонента не хватает для NEt 6?
1820 2385492
>>385388
Скрин приложи, непонятно нихуя
1821 2385517
>>385388
в установке компонентов там же галочки ставишь какие SDK Targets должны быть или как то так
1822 2385526
>>384779

>4. ASP не взлетает, хуй знает почему, думаю тут репутация Майкрософта хуевая.


Да нормально заходит. Просто зачем он в России? ASP - энтерпрайзный фреймворк, а у нас нет не только большого количества новых стартапов, которые и будут выбирать новый асп вместо проверенного спринга, так еще и у тех стартапов, которые есть - охват и нагрузки маленькие, им и на экспрессе норм, типа подумаешь, будут платить за веб-сервер 2к баксов в месяц вместо 500 долларов, разница меньше зарплаты одного программиста, зато жсеры универсальнее и толпами по улице ходят.
1823 2385530
>>384788

>Бля, эт что, на фриланс что ли лезть?


Фриланс - это как успешный поиск новой работы 2 раза в неделю. Т.е. ты один раз работу найти не смог, но надеешься находить ее по 2 раза в неделю.
1824 2385546
>>385492
>>385517
Все нашел.
"Разработка классических приложений"
Image 1.png31 Кб, 634x460
1825 2385559
>>385546
ну это как бы само собой. а я говорил про это
Богдан 1826 2385560
Дарова шарпистеряне. Сори что спамлю. Тред создавал, но там тишина. Вот сама история. Попробую по тредам с языками пройтись и так решить мб... Заранее благодарен!
Закончил вузик в мск по ит специальности. И получилось так, что вроде и что-то делать пытался за время учёбы, а по итогу хуй в стакане. Сейчас дата сосист на питоне, но контора такая, что по факту я нихуя не знаю. Выиграл пару хакатонов даже пока учился. И вот теперь бесповортно пришло время выбирать как жить дальше. Как вообще найти стажировку себе или джуновину. Какой язык взять, чтобы точно начать карьеру можно было. Знаю все и по немного по факту, но на деле языка который я бы реально знал на достойном уровне нет. ООП понимаю вроде как. Я планирую выбирать из этого примерно: Java/C#/C++/(Мб питон, но не уверен насчёт него). Хотелось бы услышать совета от знающих людей... И что вообще сделать чтобы максимально эффективно и быстро найти полноценную норм работу себе(или стажировку)
1827 2385565
Какой же ущербный шрифт в 22й версии. Мусорный какой-то с засечками и болдом, а я думал откуда у анона типа этого >>380782
Думал это версия 1837 года.

И самое печальное, хотел вернуться в 2019ю, а там шрифт тоже изменен. Типа синхронизации. И я теперь не знаю, какой у меня был шрифт.
1828 2385568
>>385565
Для шарпа всегда шрифт был consolas
а лучшая тема - с 2017 синяя
1829 2385570
>>385568

>Для шарпа всегда шрифт был consolas


Точно, он. Начинаю вспоминать.
А новый какой-то слипшийся.
1830 2385646
Всем ку шарписты, я Pytyon Junior Developer с коммерческим опытом в +- год, сейчас в своей стране я не могу найти ни 1 работы, решил попутно изучать си шарп + JS, посоветуйте годный материал для прошареного в основах и стоит ли сразу браться за ASP если +- имеешь опыт в с++/с и т.д?
1831 2385666
>>385560

>И что вообще сделать чтобы максимально эффективно и быстро найти полноценную норм работу себе(или стажировку)


Ты опоздал. Где-то до января еще можно было вкатиться относительно легко на низовые должности. Сейчас это практически как выйграть в лотерею.
Если ты закончил вуз по it специальности и у тебя нет вариантов куда устроится, то крайне хуево быть тобой. Да что там говорить, ты даже с языком толком не определился. Т.е. ты по факту просрал несколько лет своей жизни.
Так что отправляйся переучиваться и возвращайся когда будешь готов.
Алсо, язык вообще насрать какой. В твоей ситуации можешь брать любой, руководствуясь исключительно личными предпочтениями.
1832 2385750
>>385646
на ruSO ищи "учебные ресурсы язык_нейм"
1833 2385795
>>385370

> Подозреваю, что никак.


Плохо подозреваешь. Лучше бы взял и почитал. Всё там есть.

> проблем с разных DPI. Как с этим у формочек?


У бэка проблем нет, потому что бэк там как раз таки отделен от визуальной составляющей, которая вынесена во фронты (win (wpf/forms на выбор), gtk, mac) у которых с DPI так, как ты сам знаешь.

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

Охуенная система! Я сначала не понял, нахуя так много либ. А потом кааак понял! А потом каак въехал!
1834 2385808
>>385795

>Лучше бы взял и почитал. Всё там есть.


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



И все таки выходит что никак. Ты не понимаешь что такое lookless control.
Это не про отделение "бэк отдельно, а гуишки отдельно", а про способность вида "берем комбокбокс и ЛЕГКО!!! лепим внутри гриды с прогрессбарами и картинками сисек".

Такое возможно в Авалонии, потому что он рисует все сам (Кк и WPF), но ясен пень невозможно в том же гтк и формсах, где на выбор "стандартный контрол" или "них..я"
1835 2385819
Какая же ебань эта ваша студия 2022. Секунд десять запускается и секунд десть закрывается. Раз в пять медленнее 19й. Т.е. они своей ссаной горячей перезагрузкой просто нахуй убили производительность.

Я ведь перешел, потому что в обновлении напугали, что NET 5 больше не поддерживается. У меня нет слов, одна ненависть, аж зубы скрипят.
1836 2385820
>>385819
Мне интересно. А зачем вообще продолжать сидеть на 5 нете если есть 6?
1837 2385825
>>385820
Ну вот перешел и пожрал говна. Для моего приложения пятого хватало, 19я комфортно и быстро запускалась даже без горячей перезагрузки.

Теперь же, создание простой программки сродни запуску космолета. Какая-то хуйня жрет 4Гб. Ебал я в рот.
1838 2385827
>>385825
ну "жрет" это ожидаемо. как никак 64 битную сделали. В остальном разницы не увидел. Как была тяжелой так и осталась.
1839 2385829
>>385825
>>385827
Все, вырубил нахрен горячую перезагрузку и начало более или менее запускаться.
1840 2385835
>>385827
Ну я считай мгновенно перешел с 19 на 22, поэтому заметил разницу. Если переходить постепенно от версии к версии, то может и незаметно.
1841 2385849
>>385835
дык между 19 и 22 нет промежуточных. Лично я перестал пользоваться решарперовским Build & Run - студия теперь вроде бы собирает с такой же скоростью.
1842 2385903
>>375622
Тесты заебись, если проект пишется заебись.
Если хуёво пишется, то протестировать чаще всего нереально.
Но если начать их всё таки писать, и превозмогать, начинаешь понимать вот эту хуйню про связность и зацепление, абстракции, солиды и прочее вот это хипстерское и абсолютно бесполезное, ненужное задротское говно, ну ты понял.
На прошлой работке перекатывали проект на DDD, вот там было круто обмазывать новый функционал тестами.
К твоему вопросу про БД, это уже скорее не юнит, а интеграционный тест.
Погляди в сторону моков, если просто протестить юнит, если надо вкупе с БД, то посмотри на инмемори, либо можно задрочиться и каждый раз поднимать БД на тест.
1843 2386000
В чем причина?

> значение "netstandart2.1" в TargetFramework не распознано

1844 2386016
>>385565
А попробуй вообще JetBrains Mono. Я как попробовал, везде на него перекатился, даже в терминале.
1845 2386033
>>386000
Замени 2.1 на 2_1
1846 2386091
>>386016
Интересный шрифт, спасибо. Каскадию пытался вытерпеть, но открыв на следующий день проект, просто все слилось — не было визуального понимания блока.
1847 2386161
>>386033
Не помогает.
1848 2386170
>>386000

>netstandarT2.1


netstandarD2.1

Нет, ну мы тут будем твои опечатки исправлять?
image.png51 Кб, 922x375
1849 2386174
Реквестирую советов мудрых. Так мудро придумано?
1850 2386181
>>386174
ну вместо while(true) можно и так.
1851 2386184
>>386174
Да, норм.
1852 2386399
>>386184
Спасибо, приятно знать что goto всё еще рулит.

>>386181

>while(true)


Выглядит как шиза.
1853 2386409
>>386016
Хороший все-таки шрифт. Уже немного привык, и в xaml хорошо смотрится. Спасибо, анон.
1854 2386410
>>386399
вообще то наоборот - переход по goto выглядит чужеродно
для семантики "повторять циклично" как бы цикл выглядит естественным, а не прыжки туда сюда по невнятной логике

так что goto незаменим только как break N
В остальном не нужен.
1855 2386420
>>386174
А в чем прикол? у тебя в конце цикла переход в начало цикла. Оно как бы само перейдет.
2022-06-2216-48-57.png92 Кб, 1124x452
1856 2386427
>>386420
Пикча отвалилась. Чем у тебя Ignore от Retry отличается? Значит Retry у тебя дефолтное решение и не требует лишних телодвижений.
1857 2386430
>>386420
>>386427
А, понял в чем суть, но я бы использовал вайл с индексом. Хотя с другой стороны он небезопасен и усложняет код.
1858 2386433
>>386181

>while(true)


А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
А когда этот цикл закончится?
1859 2386448
Нужно ли читать Рихтера?
1860 2386451
>>386433
на break. ваш КЭП

Там же, где обычно и прерываются циклы.
1861 2386459
>>386451
А будет ли брейк???
1862 2386462
>>386451
Там где "true" обычно брейк и пишется. Для этого условие и создано.
Шкала рихтера.mp46 Мб, mp4,
1016x724, 0:24
1863 2386466
>>386448
Его не читают, а слушают.
1864 2386467
>>386462
while(true){
try{
//что то делаем
break;
}catch(НужныйИсключение){
варнянгаем и делаем паузу если хотим
}
}

и нахера ваш goto
1865 2386642
>>386459
Обычно брейк вешается на кнопочку с крестиком.
1866 2386644
Как отсортировать Point только по X координате?
1867 2386647
>>386644
массив Point
1868 2386662
>>386644
myArray.ToList().OrderBy(x => x.X).ToArray(), возможно можно обойтись без ToList()
Или вот так
Array.Sort(array, p => p.X)
1869 2386671
>>386459
Тут лучшие умы computer science доказать этого не могут, а тут ты у шарпистов спрашиваешь
1870 2386739
Как получить ноль от деления по модулю, если делитель больше делимого? Без if.
1871 2386755
>>386739
В C# оператор есть %, возвращает остаток от деления, если остаток 0 - вернет 0.
1872 2386779
>>386755
В вот и нетути. К примеру:
70 % 90 = 70

А мне надо, чтобы было:
120 % 90 = 30
70 % 90 = 0

В VB обратный слэш возвращает целое число от деления, типа
70 \ 90 = 0, при этом 120 \ 90 = 1
Но это опять if
1873 2386800
>>386174
На любом более-менее реальном проекте тебя за такое выебут. А потом отпиздят. А потом обоссут. и на всякий случай еще и пальцы переломают чтобы ты вообще кодить не мог.
Запомни на всякий случай в современном мире в языках высокого уровня нет нормальных кейсов для применения goto. Единственный возможный случай это применение в switch и то только если у тебя жадный алгоритм и во главе угла стоит оптимизация и скорость пиздец как важна. Но тебе такое не светит, так что забудь про goto.
1874 2386804
>>386779

>А мне надо, чтобы было:


>120 % 90 = 30


>70 % 90 = 0



public int MyDivide(int x, int y) => x > y ? x%y : 0;
1875 2386863
1) Как вы совладаете с архитектурой? Заметил что ловлю дикие тормоза просто чтобы продумать какая должна быть инфраструктура/каркас приложения и на инфраструктурный код очень медленно у меня идет. Нужно загрузить в оперативную память мозга все модели и их свойства, контроллеры и т.д. и я ловлю мемориранаут. Где вы рисуете визуальные блоки/схемы?
2) Как совладать с ef DatabaseContext? У меня есть сущность которую я добавляю в бд в одном контроллере, делаю detach и dispose контекста, дальше в другом контроллере делаю modify и ловлю ексепшн "already begin tracked by another context". Я тупо не могу понять где еще он может отслеживаться.
1876 2386957
>>386863
1) За тебя всё придумали - design patterns. Учишь их и в зависимости от задачи используешь тот или иной, но можно и комбинировать, тоже хорошо получается. А с опытом само придёт.
2) Неси конкретный пример с версией EF (или попробуй поиграться с DbContext.Entry)
1877 2386983
Что быстрее передать в аргументы: лист или массив?
1878 2386986
>>386983

>Что быстрее передать в аргументы: лист или массив?


Превратим в

>Что быстрее передать в аргументы: ссылку на лист или ссылку на массив?


Упростим до

>Что быстрее передать в аргументы: ссылку или ссылку?



Как думаешь, какой ответ?
1879 2386988
>>386986
А с чего ты решил, что он передает ссылку? Может ему нужна именно копия.
1880 2387014
>>386986
Когда ты передаешь массив в функцию, разве не создается копия массива? Если ты ставишь ref, то тогда передается адрес.
1881 2387040
>>384788
Фриланс сдох 24.02, осталось только разве что лабы студентам на винформах делать. На дотнете фриланса особо и не было никогда.

>>384766
Айти в РФ более чем наполовину выкосило, осталась только работа в банках либо на государство.
Попробуй походи по всяким заводам и нии, хоть какой-то опыт может получишь.
1882 2387044
>>384700
Вкатун в ДС 35-40к рублей где-то стоит. Но вообще это вкатун с минимальным опытом. Совсем без опыта - бесплатная стажировка где-то 3-4 месяца, потом на 25-30к переводят. Это в Москве, повторяю.
1883 2387047
>>384400

>Стоит ли сейчас снижать ожидаемый уровень за до за жрат 1к usd?


Да, другого выхода по сути и нет.

>>384400

>есть надежда что ситуация улучшится в ближайшие месяцы?


Нет, айти умерло. Кое-как перебивайся на хуевых говноработах за мрот, учи инглишь и съебывай.
1884 2387057
>>381539

>микросервисы для своих стартапов


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

Стартапы на дотенете нужно искать где-нибудь в Калифорнии, Лондоне, Берлине, а не в Москве. Стартапов у нас особо и не было никогда, а теперь и подавно не будет.
1885 2387113
Бля, ну это же тупо невнимательность, могли уж на собес то позвать...
1886 2387151
>>387113
Если они не будут доебываться до этого, то перед ними встанет два чела с абсолютно равными навыками. Вот они и начинают искать хоть какую-то мелочь, которая бы отличала тебя от другого претендента. И чем сильнее схожи вы, тем мелочнее причина.
image.png122 Кб, 1186x457
1887 2387456
Когда будут гринтреды из голанга? Даже в жабу их уже завезли спустя 6 лет
1888 2387462
>>387456
как понять "даже в жаву завезли"?

из вики
"В Java 1.1 green threads являлись единственной потоковой моделью (моделью распараллеливания потоков), используемой в JVM[7], по крайней мере, в Solaris. Ввиду того, что green threads обладают ограничениями в сравнении с native threads, в последующих версиях Java основной упор сделан на native threads. "
1890 2387492
>>335545
Да, пофиксили.
1891 2387498
>>387492
никто не запрещает просто пойти и создать нужный файл <имяпродукта>.exe.vmoptions в нужном месте.

просто у шарпистов ЛЕНЬ.Такая же, которая мешает перекатить тред.
1892 2387587
>>387014
Вам мы точно не перезвоним.
1893 2387673
>>387587
А можно где-то почитать про вот такую базу? Я же ведь вот это утверждение где-то и подхватил. Как читаемое не воспринимать по своему?
1894 2387711
Почему в шарпе нет нормальной инкапсуляции, как в крестах?
1895 2387741
>>387014
Создаётся копия ссылки на массив.
1896 2387746
>>387462

>как понять "даже в жаву завезли"?


Чел, проджект луум (project Loom, virtual threads) завезли в JDK 19, которая выйдет уже в сентябре этого года.
1897 2387753
>>387673

>А можно где-то почитать про вот такую базу?


Любая книжка по C#. Одна из первых глав: Value and Reference Types
Если хочешь прям кишки понимать, то Рихтера.
>>387673

>Я же ведь вот это утверждение где-то и подхватил. Как читаемое не воспринимать по своему?


Вникать в прочитанное, а не пытаться накладывать свой х.з. где подхваченный недоопыт на новые данные.
1898 2387758
>>387741

>Создаётся копия ссылки на массив.


И если я начну менять массив в другой функции, то я изменю оригинал, даже если там не стоит ref?
1899 2387760
>>387711
Например?
1900 2387764
>>387758
Если стоит ref, можно сделать new [].
Если реф не стоит - можно обращаться к элементам и их менять.
1901 2387794
>>387760
Например в шарпе доступ к полям получают напрямую, можно вызывать поле через точку и тут же присваивать значение. В крестах такое считается лютым говнокодом, и для каждой переменной создаются отдельные сеттер и геттер.
1902 2387798
>>387764
Проверил. Если внутри другой функции изменить список или массив, то меняется оригинал.

Удивительно как я до этого сотни раз не наткнулся на это. Всегда ставил ref. А почему же тогда, остальные структуры, типа поинт или интеджер передаются в качестве дубликатов. Массив же тоже структура?
1903 2387800
>>387794
Так в шарпе тоже самое. Применять публичные поля — лютый зашквар, для этих целей используется свойства, у которых есть параметр set и get. Что не так?
1904 2387811
>>387794
В старых версиях бейсика примерно так же было: чтобы изменить значение поля класса, надо было использовать Set. Синтаксический мусор, почему этим должен заморачиваться пользователь? Пусть этим морочится создатель поля. Ограничения на Get и Set есть в свойствах шарпа.
1905 2387813
>>387798
Массив это объект, он хранится в куче и передаётся по ссылке. Инт и стракт это value type, они передаются копированием.

var k = new int [10];
это сокращение для
var k = Array.CreateInstance(typeof(int), 10);
изображение.png52 Кб, 768x618
1906 2387816
1907 2387818
>>387798

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



Ты сейчас путаешь ссылочный тип и ссылка.
Ссылка - это адрес памяти.
Ссылочный тип - объект, хранящийся в куче (heap)
1908 2387825
Бля, может юнити начать учить, раз никому вкатун на asp не нужен?
1909 2387828
На бейсик вообще забили. Оказывается у шарпистов есть IntelliSence, который дописывает строку. Вот когда юзаю бейсик, вообще тишина, хотя опции общие.
1910 2387853
>>387828
Попробуй в настройках пошариться. Или Rider попробуй.
1911 2387862
>>387746
Джависты сидят на 8 джаве, которая в поддержке до 2030, так что похуй абсолютно на гринтреды. Их юзать будут в максимум 10% от всех проектов
1912 2387889
>>387853
Да те же самые настройки. Я же только новую студию поставил.
Список подсказок выпадает, но вот такой штуки, чтобы серым цветом подсказывало целые комбинации, типа пикрила — нет.
1913 2387907
>>387828
Зачем он нужен? Это же не бейсик, а буквально шарп, только с неудобным бейсиковским синтаксисом.
1914 2387910
>>387889
Это не интеллисэнс, это нейронка. А на VB никто не пишет, поэтому не обучили.
1915 2387930
>>387907
В шарпе визуально не поймешь наследование это или реализация интерфейса, если в названии интерфейса не стоит префикс "I-". В бейсике это длинные незапоминаемые слова, но зато сразу видно что и где:
Public Class Employee
Inherits Person
Implements IAccount
End Class

И вообще, эта тенденция перекладывать часть информации на название (которое из без того может быть длинным), типа дописывать "Async", мне не очень нравится. В бейсике функция сама сообщает, что она поддерживает ожидание. Может это вызовет проблемы с показыванием списка в intelliSence, когда у тебя есть оба варианта, но почему бы не реализовать так же, как это сделано с перегрузками?

Так что я не скажу, что C# по всем параметрам имеет удобный синтаксис. Про свойства уже писал не раз.
1916 2387993
>>387746
ага вижу. делают плохое подобие котлина.
ну то жава, там даже такое в радость.
1917 2388013
>>387930

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


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

Можно ли его юзать как аналог ShowDialog?
1919 2388061
>>388060
*временнОй предел
1920 2388062
>>388013
Ну да, кстати.
1921 2388066
>>388060

>что await нельзя юзать для долгих ожиданий


Чушь чушная
1922 2388099
>>388060
Юзал await для ожидания запроса на 2 минуты, норм.
1923 2388211
>>388099
Ну две минуты — недолго. Я имею ввиду, что есть шанс, что пользователь откроет окно (которое технически не должно отнимать много времени), но вдруг решит свернуть приложение на час.

Я просто думаю стоит ли мне событие генерировать или эвейта достаточно. Или хотя бы детектить, что эвейт всё.
1924 2388231
>>387993
В котлине были только корутины, а это несколько иная технология, нежели гринтреды со своим планировщиком.

>>387862
Доля восьмилетней восьмерки потихоньку снижается ежегодно. Там, где проект держат на плаву либо переезжают на котлин, либо на уже на 17.
1925 2388267
Что-то я не пойму, как объявить делегат в коде верхнего уровня.

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

1926 2388289
>>388267
Это значит на уровне импортирования библиотек, выше чем начинается первый неймспейс или класс.

Using
...
Delegate
...
Namespace
{
Class
{
}
}
1927 2388295
>>388289
Это я знаю, но в 9+ версии при создании приложения по умолчанию не генерируется неймспейс, класс и main, вот я и спрашиваю, как в таком случае прописывать делегат, майки ведь явно это предусмотрели.
1928 2388307
>>388295
А, ну да, видел это дерьмо. Там же ссылка на статью с подробностями.
https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/top-level-templates

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

Ну либо отключить упрощенный формат. Я мимоходом это заметил, но пока работаю со старыми проектами и не вдавался в подробности.
1929 2388586
Прохожу четвертый курс по шарпу (на этот раз это книга), уже могу рассказать весь синтаксис, если меня ночью разбудить. Но как сука нормально раскидывать логику по разным классам? Никто этого толком не объясняет в курсах и книгах, заебали. Я решаю все задачи, они работают как надо, но потом смотрю на свой код и на код препода - у него все четко и лаконично, а у меня вечно все распихано хуй пойми куда, пачка классов с одними методами (пушта я не ебу, какие данные туда пихать в поля и проперти и зачем), а в каком-нибудь основном классе наоборот целая куча логики. Совершенно непонятно, как связывать классы, как они должны работать: по цепочке или один главный должен вызывать вспомогательные. Вообще нихуя не понимаю. Куда копать, чтобы понять?
1930 2388610
>>388586
Хм. Странно.
Ведь в каждом треде твердят, что можно всему научиться самому. Без курсов, без вышки, без менторов. Неужели пиздят?
1931 2388627
>>388586

>Куда копать, чтобы понять?


Ну а если серьезно, то копать в сторону паттернов и принципов программирования. Вроде ООП, КОП, SOLID, инверсия управления, паттерны GoF, DDD, TDD, ONION, CQRS, UoW и т.д. и т.п. Только не на уровне "пройти собес", а по серьезному с прицелом на то как все это нужно на практике применять.
Вобщем, дохрена всего, где-то на полгода...год плотной учебы.
Можешь попробовать найти какую-нибудь стажировку (сорт оф импосибл на данный момент) ну или искать того кто все это тебе объяснит.
1932 2388630
Как в темплейте биндить свойство другого элемента? Как Пупе получить контент Лупы?

<ControlTemplate TargetType="TextBox">
<StackPanel>
<Label x:Name="Lupa" Content="Zarplata" />
<Label x:Name="Pupa"/ Content="{ Binding ElementName=Lupa, Path=Content}">
</StackPanel>
</ControlTemplate>

Я проклинаю WPF и тек, кто наставила стили настраивать там. Все что имеет более или менее сложную логику, с мудреными отступами, превращается в ад. Кодом я бы написал это за три секунды.
1933 2388660
>>388627
О, благодарочка, пойду копать.
изображение.png82 Кб, 716x534
1934 2388674
Можете растолковать этот момент? Допустим 42 хранится в другом участке памяти, а почему тогда string не хранится?
1935 2388705
>>388674
да откуда ж знать о чем это он. тут только часть код и все вырвано из контекста.

А без контекста у него пурга написана...значение 42 переданное...сравнении ссылочных типов.

42 не ссылочный тип, а правила сравнения зависит от типа сравнения. тот же стринг ссылочный, но сравнивается по содержимому

Если судить по тексту то он принимает 42 как object, получает упаковку и хрен пойми как потом сравнивает. У стринга же упаковки не происходит.
1936 2388708
>>388705

> да откуда ж знать о чем это он. тут только часть код и все вырвано из контекста.


Есть класс thing с полем Data типа object. В нем одна функция, которая принимает также object и сравнивает его с Data
1937 2388709
>>388708

> одна функция


Один метод, фикс.
1938 2388714
>>388708
ну при сравнении обжект он только и может что сравнивать ссылки
с 42 он сравнивает обертки и ссылки разные
при строке обертки нет и ссылки одинаковые
1939 2388725
>>388708
хотя немного уточнений
в примере строка физически ссылается на одно место - работает интернирование
но даже если нет и хз как он сравнивает, но Equals виртуальный, то есть он перегружен в string и все равно были бы равны, даже с разными ссылками
1940 2388884
>>388674
Интернирование. При компиляции все одинаковые строковые литералы являются одним и тем же объектом в памяти (пик1). При этом, помимо того что разные 42 это разные объекты, при присвоении значимого типа к переменной ссылочного типа происходит упаковка и каждый раз это будет новый объект.
Короче, RTFM.
>>388725

> хз как он сравнивает


Для стрингов переопределен ==

>Equals виртуальный, то есть он перегружен в string


в инте тоже
Поэтому можно сделать вывод, что в методе Process используется либо == либо ReferenceEquals
1941 2388885
>>388884
>>388674
Да дополню, как я написал в предыдущем посте, нам неизвестно содержимое метода Process. Если там сравнение идет через ==, то дело в том, что он переопределен для строк и сравнивает значения. Если сравнение идет через ReferenceEquals, то дело в интернировании - одинаковые литералы ссылаются на один и тот же объект.
1942 2388930
А есть базированная книжка по ноде по типу Рихтера? Чтобы прям с нуля новичкам объяснялось, что там с кодом происходит и как V8 этот java script выполняет?
1943 2388976
А можно наследовать функцию? Я вывел повторяющийся код, но все равно в каждой следующей функции мне надо объявлять N переменных и вызывать N функций. Паттерн одинаковый, меняется только середина.
1944 2389073
Вот те, кто считает, что MAUI заменит все на десктопах...покажите мне DataGrid на нем. Я вот вижу датагрид от девэкспресс...но он явно мобильный (и поэтому убогий)

вывод - может какой то мобилоид и портирует свой софт на десктоп и получится как с метро приложениями
Ну и всякие простые поделки можно

Но при такой "поддержке" линукса и фичастости - хз зачем оно нужно десктопщикам
1945 2389085
>>388976

>А можно наследовать функцию


Что ты имеешь в виду?
Если что методы public и protected наследуются, private тоже, но ты не сможешь их вызвать в наследнике. Если нужно написать другое тело метода - в базовом помечаешь метод или свойство как abstract или virtual, а в наследниках переопределяешь с помощью override. Так же можно обозначить метод как override sealed (или типа того, не помню точно) и тогда метод будет переопределен как законченный, все дальнейшие наследники наследника не смогут переопределить реализацию sealed метода.
1946 2389091
>>388976
вложи метод в метод. обычное дело
1947 2389163
Анон, мне тут нужно по определенным причинам перелезть на линух, а я как раз параллельно учусь на шарпоида. Была бы возможность купить райдер - вопрос бы не возник, а так из вариантов остается только вскод. Насколько он плох в сравнении со студией, можно ли на нем нормально учить асп.нет, можно ли будет юзать вскод на работе в будущем или нахуй пошлют?
1948 2389166
>>389163
Кто запрещает зарегать образовательную почту и получить райдер бесплатно?
1949 2389211
>>389166
Щас ее зарегать достаточно проблематично и жетбрейнсы далеко не всегда это просто так хавают. Могут еще начать реально проверять и отключать.
1950 2389240
>>389073

>Но при такой "поддержке" линукса и фичастости - хз зачем оно нужно десктопщикам


Блин, десктоп на винде то уже мертв и воняет, нахуй он на линуксе то вам?
1951 2389247
>>389163
Vs code годнота лютая
1952 2389265
>>389240
десктоп хоронят и хоронят. прям как винду, которая мастдай да никак не дай
1953 2389309
>>389247
А я сколько ни гуглил - пишут, что он люто тормозной, если поставить все нужные плагины, и по возможностям даже близко не тянет на продакшн. Ввиду своих малых познаний я пока не понимаю, чем это чревато и таки можно ли на нем нормально работать.
1954 2389314
А у меня вот такой вопрос, чисто пользовательский. Допустим фотошопы всякие будут в вебе, но как устанавливать плагины? Этот вопрос как-то решается вообще? Я конечно понимаю, что будущее за упрощением инструментария жертвуя функционалом, и пориджи со своей фигмой не могут даже осилить стандартный функционал профессионального пакета, но что делать остальным? Смириться? Даже не на самом большом предприятии есть скриптики и плагины, без которых будет ну очень худо.

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

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

В моем понимании это что-то мобильное и компактное, или даже бытовое.
1956 2389372
Шарпяне, где в настройках проекта можно указать выходные пути для dll при сборке? Чтобы они не лежали все в одном корне с .exe.
1957 2389421
>>389372
Знаю что есть тулза, чтобы мерджить все DLL и вшивать в exe. А можно поинтерисоваться для чего перемещать?
1958 2389438
Я правильно понимаю, что экзешник собранный получающийся при сборке кода на шарпе, это по сути упакованный код на промежуточном языке, а экзешник скомпиленный из си того же, готовый бинарный код?
1959 2389439
>>389318

>В моем понимании это что-то мобильное и компактное, или даже бытовое.


То есть непригодное для коммерческой разработки?
1960 2389454
>>389421
Корень проекта после сборки выглядит гипер засрано, хочется по своим папка разложить длл от нюгет пакетов
1961 2389500
>>389439
Это же ниже чем вс комьюнити. Я вот не понимаю, нафига себя ограничивать на своем рабочем месте? Это же как дизельный генератор — он хорош в походе или на даче, но нахрена его юзать в повседневной жизни? Это такая принципиальная цель, или что?
2022-06-2614-57-03.png15 Кб, 388x476
1962 2389503
>>389454
По-моему так во всех прогах. Я встречал отдельные папочки для только подключаемых плагинов и ресурсов.
16422799386310.jpg68 Кб, 899x528
1963 2389641
Учу сейчас шарп на метаните. С какой примерно главы я могу считать себя джуном и идти искать галеру?
1964 2389725
>>389500
Я не специально, мне для других задач крайне нужен линукс на постоянку, а там нет студии (а теперь и райдера). Если б оно там было, то и вопрос бы не возник.
1965 2389728
>>389641
Ни с какой. Путь в джуны начнется, когда ты закроешь это говно и найдешь нормальный источник.
1966 2389738
В общем.
Пилил я на работе сервер TCPшный. Ну, и меня чет оч грызет вот что. При 5к соединений он жрет 300МБ оперативки. И я не могу понять - много это или мало. Типа раньше был такой же сервер на жаве - он жрал 2 гига, но его другой человек писал, я хз что там да как. Но я понимаю, что на плюсах бы я должен был бы получить где-то 50МБ при этих же 5к соединений в худшем случае, как раз со всеми этими трейсами, логгированием и прочим.
В общем. Успокойте меня, скажите, что я ничего неправильно не делал и 300МБ на 5к соединений это норма.
1967 2389746
>>388976
void Foo(){
Console.WriteLine("Foo")
}

void Bar(int x){
Console.WriteLine(x);
Foo();
}
1968 2389825
>>389746
Да епр. Ему нужно что то подобие паттерна "шаблонный метод"
Вот только кроме наследования еще есть делегирование

и через делегирование для методов это делается просто
public static void Main(string[] args)
{
var method1 = () => BaseMethod(() => Console.WriteLine("mutable part 1"));
var method2 = () => BaseMethod(() => Console.WriteLine("mutable part 2"));
method1();
method2();
}

private static void BaseMethod(Action mutablePart)
{
Console.WriteLine("stable pre");
mutablePart();
Console.WriteLine("stable post");
}
1969 2389840
>>389825
Я не знаю как ты понял чего ему надо. Но видимо ты прав.

Хотя учитывая:

> Я вывел повторяющийся код, но все равно в каждой следующей функции мне надо объявлять N переменных и вызывать N функций. Паттерн одинаковый, меняется только середина


Я в душе не ебу как делегирование и шаблонный метод ему помогут.
Без кода короче, хуй знает.
1970 2389942
>>389728

>нормальный источник.


Это какой, например?
1971 2389955
1972 2389965
>>389942
А можешь объяснить, чем метанит-то хуевый?
1973 2389979
>>389965
Тем, что большинство тем там расскрываются поверхностно. Научиться синтаксису языка - хуйня, это быстро, а писать нормальный код - дело практики и времени. Если активно обучаться будешь полгодика-год то изи выйдешь на уровень джуна. Запомни: джуниор это программист который умеет писать код, но не имеет коммерческого опыта. Имхо вот требования к джуну (все знания - поверхностные, ты просто должен уметь этим пользоваться):

1. LINQ, Основы рефлексии, C#
2. EFCore
3. Automapper
4. NoSql бд (MongoDb) + Postgresql
5. DI
6. Serilog
1974 2390050
>>389979

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


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

>>389965

>А можешь объяснить, чем метанит-то хуевый?


А ты попробуй написать собственный проект и вопросики отпадут. Точнее начнут появляться вопросы, ответы к которым ты не найдешь на метаните.
1975 2390076
>>389840

>Я в душе не ебу как делегирование и шаблонный метод ему помогут.


Ну так и помогут. В общий метод передается делагат, который и выполняется в том месте где нужна изменяющаяся часть, а все остальное одинаковое.
1976 2390077
>>389965
Он не хуевый, просто это не учебник. Максимум сборник референсов для того, чтобы освежить память если что-то забыл.
1977 2390078
>>389979

>3. Automapper


Терпеть не могу эту хуету. С какого-то момента писать мапперы руками становиться намного проще, чем пердолить все условия для этой хуйни.
1978 2390085
>>390077
А есть какие-нибудь актуальные учебники по 11 шарпу? Глянул на торрентах и большая часть - это допотопная хуйня по 7 версии, в лучшем случае по 9.
1979 2390087
>>389979
По идее все технологии кроме самого шарпа, SQL, ASP и базового кодерского мышления (солид, паттерны, алгоритмы и структуры) опциональны. У каждой компании свой стек, под все учиться всю жизнь будешь. Самое главное - очень хорошо знать базу, остальное на месте поймешь за пару дней в гугле. Плюс личные проекты, где ты так или иначе поймешь, как оно все устроено, и поюзаешь еще всяких разных штук. Еще сейчас полезно хотя бы немного знать фронт: жс + тот же ангуляр.
1980 2390088
>>390085
Привет фронтендерам. 11 еще только в тестовой версии, полноценно выйдет вроде только в ноябре. Откуда по нему сейчас возьмутся актуальные учебники? Седьмая версия полностью валидна, девятая тем более. Потом просто сахар доучишь и все.
1981 2390101
>>390085
Учишь 7-й. Там все актально. После того как выучишь 7-й, на освоение новых вещей из 8, 9, 10 уйдет неделя, максимум две.
1982 2390132
>>390050

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


Побольше констант и энумов - код будет точь в точь, как у профи дидов.
1983 2390142
>>389979
Каким образом некоммерческий программист будет уметь пользоваться перечисленным говном? Разве оно используется в некоммерческих программах?
1984 2390144
>>390050

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


Двачаю. Я на первой работе проект переписывал с нуля раз 7 и всё равно не доволен.
1985 2390145
>>390142

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


Эти технологии используются вообще везде для любого проекта.
1986 2390231
>>390145
сказки фантазии
1987 2390265
>>390231
>>389979

>1. LINQ


>2. EFCore



Вот эти две вещи встречаются везде. И их стоит знать, остальное из списка это nice to have и разобраться в них дело пары часов. От себя добавлю, что всё больше людей, которых я собеседую хуй клали на unit тестирование и все они были посланы нахуй.

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

>Мимо-восемь-лет в .net

1988 2390271
class TurboFat<T>
{
List<T> _list;
public ReadOnlyCollection<T> ROC => new(_list);
}

или

class SlimSlowpoke<T>
{
List<T> _list;
ReadOnlyCollection<T> _roc;
public ReadOnlyCollection<T> => _roc;
public Yoba() { _list = new(); _roc = new(_list); }
}

Как определиться между вариантами? Знаний у меня чуть больше, чем нихуя, кроме предположения, что вариант 1 занимает больше памяти, но быстрее, а вариант 2 медленнее, но память экономит.
image.png830 Кб, 1042x803
1989 2390277
Пацаны, а вы как обычно именуете булевы переменные? Везде ли используете префикс Is?

Допустим, слова Completed или Authenticated нет смысла писать с Is. У микрософтов где-то используют Is вместе с такими словами, а где-то нет. В книге по кодестайлу рекомендуют писать проще, то есть не использовать Is там, где и так всё понятно.

Я просто заметил, что иногда булевы свойства могут пересекаться с событиями в плане названий, если ты не используешь приписку Is. Допустим, у меня есть класс-сервис с свойством bool Connected. Мне понадобилось добавить событие, которое бы срабатывало, когда устанавливалось соединение. Разумное название для такого события - Connected, но тогда получается конфликт со свойством. Правда, я нашёл выход сделав событие ConnectionStateChanged<bool>
1990 2390282
>>390277
Использую "is" или "has". Но нужно избегать названий типа "IsNotConnected" потому что тогда "!IsNotConnected" выглядит странно.
1991 2390302
>>390265
ну так будь точным. знать концепции или конкретный инструмент.
Везде...в вакансиях, что конечно важно для джуна (да и то только асп.нет)
1992 2390305
>>390271
что вообще пытаешься сделать хз
заводишь коллекцию и используешь. Наружу выставляешь как ридонли через интерфейс (или обертку если параноик)
1993 2390311
>>390305

>что вообще пытаешься сделать хз


Что-нибудь. Просто что-нибудь.

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


Можно ведь обратно привести к исходному типу и сделать всё, что угодно.

>(или обертку если параноик)


Я не параноик, но хотел сделать так, типа чтобы точно не было возможности что-то изменить извне. Вопрос как лучше - создать заранее объект обёртки и передавать ссылку, или при каждом обращении создавать обёртку заново?
1994 2390319
Там майки сваливают с России.
.нет разрабам пизда?
1995 2390320
>>390311
Можно не быть параноиком, но в шарпе слишком поздно ввели очевидные (фейспалмище) IReadOnly интерфейсы и поэтому обертки сами собой будут.

>опрос как лучше - создать заранее объект обёртки и передавать ссылку


Конечно же лучше не создавать лишний раз то, что можно не создавать.
1996 2390389
>>390319
.NET и сам шарп - это фосс продукты, то есть с ними ничего сделать в принципе нельзя. Азур вроде уже отрубили, но он заменяем. Могут сделать вендекапец конкретно для нас, но это тоже не беда - пересядем на линукс, только вот для него иде нету, райдер у нас не достать. Ну, будем как деды писать в вскоде. А вообще можно просто врубить впн и продолжать весело сидеть в вижуал студии комьюнити. Как-то так.
1997 2390438
Microsoft удалит Россию из библиотеки System.Globalization.
1998 2390459
>>390389
MonoDevelop
1999 2390474
>>390459
Он мертв.
2000 2390604
>>389979

> Запомни: джуниор это программист который умеет писать код, но не имеет коммерческого опыта.


Ждунов без коммерческого опыта С# нонче берут только в госпомойки на .net 4.5 и винформы
2001 2390612
>>390604
Ну и норм для первого опыта
image.png98 Кб, 989x764
2002 2390620
На сайте периодически появляются файлы запросы?, мне нужно отслеживать их появление и считать текст с них. Как я могу это реализовать, с чего вообще начать?
2003 2390626
>>390604
Это пока. Когда столкнутся с огромным дефицитом мидлов и старше - начнуть брать даже бомжей с помойки, отмывать и учить.
2004 2390630
>>390620
С гугления класса FileSystemWatcher
2005 2390631
>>389314
Бамп вопросом. Плагины для веб-приложений реализуемы?
2006 2390646
>>389314

>Допустим фотошопы всякие будут в вебе


Не будут. Браузеры не будут иметь доступа к файловой системе юзера как минимум и на этом уже можно закончить.
2007 2390660
>>334153 (OP)
А есть у кого-нибудь на примете годный опенсорсный проект на микросервисах? Чтобы понять, как правильно с ними строить архитектуру. Или учебный курс в рамках которого такой проект реализуется.
Мимо-5-лет-пишу-монолиты
2008 2390661
>>390646

>к файловой системе юзера


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

Это тебе обрисовка ситуации в бущуем.
2009 2390662
>>390646
В смысле не имеют? А как мы скачиваем и загружаем пикчи? Я вижу другую проблему с облачными сервисами - ресурсы. Одно дело если это црмка какая-нибудь и совсем другое фш и прочее. На данный момент и на ближайшее будущее это будет либо слишком дорого, либо для ограниченного круга лиц (ынтырпрайз например). Плюс нужны бешеные каналы интернета, которые есть очень далеко не везде.
2010 2390668
>>390662
Так в фотошопе добрая часть инструментария уже работает на стороне.
2011 2390736
>>390662
Компоненты HTML еще не настолько развиты чтобы заменить десктоп полностью это раз, два - браузеру по большей части не доступен функционал IO, который доступен десктопу (реестр, файловая система, экран, микрофоны итд итп). Ты можешь только загрузить вручвную на сайт файл и редачить, но не можешь напрямую взаимодействовать с компонентами ОС как это делает десктоп, вот и получается тебе. Огромная часть ПО - десктоп, браузеры ограничены всратым HTML который годен только для отображения, но не для редактирования и тем более уж рисования и прочих сложных систем вроде размытия, рендера итд.
2012 2390747
>>390736
Зачем системе взаимодействовать с реестрами и компонентами ОС, когда вся логика работает на сервере и ей важен доступ к компонентам ОС сервера?
2013 2390750
>>390668
Это интересно какой? У меня фш наглухо отключен от интернетов и там все работает.

>>390736
Я думаю еще возможно движение в сторону простой видеотрансляции, как у нвидии с играми, забыл название. То есть весь пк превратится в выделенные ресурсы в дата-центре с накатанной сверху ос, там же будет работать весь софт. А у юзера будет только монитор с клавиатурой и мышью/тачпадом. Офк, все это сделают закрытым и проприетарным, а железо либо вообще перестанут продавать просто так, либо оно будет дохуя стоить. Но это еще очень не скоро, мощностей нужно ебанись.
2014 2390758
>>390750

>наглухо отключен от интернетов и там все работает.


В последнем. Новый функционал, где используется нейронные фильтры, типа лендскейп миксера https://youtu.be/3YZQ08GHbyA
2015 2390767
>>390758
А, ну это говно никто не юзает.
2016 2390818
>>389979
Шо это за хуйню ты тут выложил?

Вот нормальный список для джуна:
База
Информатика. ЦП, АЛУ, ОЗУ, базовая архитектура компуктеров, системы счисления.
ОС. Чтобы не срал в штаны, когда на другой системе ему вместо BigEndian LittleEndian прилетит и уебок не сможет догадаться в hex перевести и посмотреть. Это самый минимум. По хорошему, про то что такое ос, зачем нужно, какие механизмы используют, какие бывают. Как разные многозадачность реализуют и это вот все.
Сети. Блядские модели оси. Чтобы уебок, не фантазировал себе будто его байтики по эфиру какому-то передаются туда-сюда.
Многопоточка. Примитивы синхронизации, проблемы которые бывают, как решать. Всегда ли пизже чем однопоточка.
ООП. Базовая хуйня плюс пара паттернов.
SQL на уровне составить сложный запрос, а потом с помощью плана запроса - оптимизировать его, знать про индексы, какие бывают, знать про хранимки

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

.NET
История, может пояснить что было раньше, почему было хуево и как кора дала вторую жизнь. Чем вообще кора от .net'а старого отличается, кроме ко-ко-ко кроссплатформенности
Чем ссылочные типы отличаются от значащих
Коллекции
Женерики
Асинхронщина. Что зачем и почему. Плюсом будет, если сможет свою имплементацию простенькую написать, для банального таймера.
Parrallel. Когда оно лучше чем асинхронщина. Вообще, что делает.
Interlocked, как работает, зачем надо.
IDisposable, когда надо, когда не надо.
Финализаторы, чем от деструкторов отличаются, когда надо, когда не надо.
Ковариативность, контрвариативаность,

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

Вот нормальный список для джуна:
База
Информатика. ЦП, АЛУ, ОЗУ, базовая архитектура компуктеров, системы счисления.
ОС. Чтобы не срал в штаны, когда на другой системе ему вместо BigEndian LittleEndian прилетит и уебок не сможет догадаться в hex перевести и посмотреть. Это самый минимум. По хорошему, про то что такое ос, зачем нужно, какие механизмы используют, какие бывают. Как разные многозадачность реализуют и это вот все.
Сети. Блядские модели оси. Чтобы уебок, не фантазировал себе будто его байтики по эфиру какому-то передаются туда-сюда.
Многопоточка. Примитивы синхронизации, проблемы которые бывают, как решать. Всегда ли пизже чем однопоточка.
ООП. Базовая хуйня плюс пара паттернов.
SQL на уровне составить сложный запрос, а потом с помощью плана запроса - оптимизировать его, знать про индексы, какие бывают, знать про хранимки

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

.NET
История, может пояснить что было раньше, почему было хуево и как кора дала вторую жизнь. Чем вообще кора от .net'а старого отличается, кроме ко-ко-ко кроссплатформенности
Чем ссылочные типы отличаются от значащих
Коллекции
Женерики
Асинхронщина. Что зачем и почему. Плюсом будет, если сможет свою имплементацию простенькую написать, для банального таймера.
Parrallel. Когда оно лучше чем асинхронщина. Вообще, что делает.
Interlocked, как работает, зачем надо.
IDisposable, когда надо, когда не надо.
Финализаторы, чем от деструкторов отличаются, когда надо, когда не надо.
Ковариативность, контрвариативаность,

Собственно это темы, которые джун должен знать. А вот то что ты перечислил - в массе говнотехнологии, которые еще и далеко не везде юзаются, тот же серилог - нахуй не нужен, автомапер - говно без задач, а EF - так вообще пизда говна ебаная, которая жрет памяти охуевшая мразь и при этом там столько церемоний, что проще взять и руками сделать.
2017 2390823
А это что получается, после выхода C# 9.0 операторы ==, !=, &&, || больше не нужны? Новый вариант записи выглядит читабельнее и приятнее. Что думаете? Будете переходить на новые операторы?
2018 2390829
>>390818
Да. В дотнет еще забыл добавить
Делегаты, события, почему события говно и когда таки можно.
Статика, чем от обычных классов/методов отличается, когда надо, когда не надо.
Виртуальные методы, абстрактные классы.
Интерфейсы
Какие есть методы у Object и на кой хуй они нужны.
2019 2390883
>>334153 (OP)
Хочу начать научиться программированию на C#.
Есть макбук на м1. Хочу использовать последнюю версию Visual Studio, которая унифицирована с виндозовской по интерфейсу.

Какие подводные камни?
2020 2390885
>>390823
Говнина ебаная, размазывающая легкочитаемый лаконичный синтаксис в аморфную кашу.
Единственное, что из этого хоть как-то стоит использовать - is not в сочетании с null. Все.
2021 2390886
Аноны, нужен ваш совет. Вот допустим, есть у меня пикрил1. До какого момента ориентировочно по нему учиться? Просто открывая вакансии, список требований сбивает меня с толку. Вот как понять, что у меня уже уверенные знания с# и я могу переходить к изучению следующего пункта?
2022 2390887
>>390818

>когда на другой системе ему вместо BigEndian LittleEndian прилетит и


Хм. Я не спорю что знать такое приятно и полезно. Но где современной кодомакаке придется с таким сталкиваться, с трудом себе представляю. Я сам с такими ньюансами сталкивался когда в лохматые годы под спектрум кодил и лет 10 назад в промышленных устройствах. С тех пор как в энтерпрайз ушел даже близко ничего такого не было.
2023 2390888
>>390886
Эта книжка содержит хорошо если процентов 20 от того что тебе нужно выучить.
2024 2390890
>>390888
А можешь посоветовать книгу, где будет хотя бы половина нужных знаний?
2025 2390892
>>390626
Тут то и настанет мой звездный час
2026 2390902
>>390890
Когда ж вы шапку уже читать начнете.
Для обучения:

>— C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen) — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином.


Читаешь внимательно, разбираешь каждую тему. Находишь/решаешь примеры. Закрепляешь.

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

>— C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari) — просто выжимка из книги сверху, можно всегда держать рукой.


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

Алсо, эти книги есть для 9-й версии (возможно и для 10-й), но учить спокойно можно и на 8-й (и даже на 7-й)

После этого можешь считать, что ты знаешь шарп и где-то процентов на 60 готов к реальной работе. Далее тебе нужно учить фреймворки, паттерны, шаблоны и т.д.
2027 2390903
>>390890
И еще совет. Сразу забей хуй на фреймворки типа WinForms и WPF.
Не вылезай из консольных приложений, пока не будешь свободно плавать в стандартном синтаксисе.
2028 2390953
Можете посоветовать годные книги по нашему стеку? Не обязательно по дотнету, а те, которые вам очень понравились?
image.png538 Кб, 600x600
2029 2391003
>>390953
Вот эту советую.
Пиздуй шапку читать, там все давно уже насоветовано.
2030 2391019
>>390474

> Он мертв.


Он опенсорц. Возьми исходники и оживи. В этом суть опенсорца. Он бессмертен. Он может казаться мёртвым, но на самом деле он спящий. Как Ктулху.
2031 2391021
>>390271
Вот это используй https://metanit.com/sharp/tutorial/2.33.php быстрее чем куча, а коллекции это куча.
2032 2391026
>>390277
is isItem, isNot isNotItem, has hasItem, b bItem.

b boolean типа говорит какой это тип данных.
2033 2391050
>>391026
Про второе уже писали - долбоебизм, т.к. в логических условиях, любое отрицание идет по пизде в плане понимания.
Лучше такие конструкции заменять на положительные. Например вместо IsNotPresent использовать IsMissing и т.д.
Четвертое параша оставшаяся от C, не имеет смысла в шарпах.
2034 2391055
>>391050
как вариант, я не использую isNot, но использовал его когда сидел на луа love2d.
2035 2391091
Так, а в модальном окне не детектится событие mouseLeave?
2036 2391127
>>390282
Пикрелейтед - как микрософты в основном именуют булевы свойства. Вроде логично. Но с другой стороны. Слово "Enabled" - это прошедшее время, а значит вместо Is нужно писать Was.

Или вот взять булево свойство, которое обозначает успех операции. У микрософтов можно встретить 3 вариант: Success, IsSuccess и IsSuccessful. Грамматически вернее всего последний пример вроде как?
2037 2391131
>>391091
Даже если модальное окно запускает другое окно, но в обычном режиме, то там тоже все идет по пизде.
2038 2391138
>>391127
Я иногда меняю местами слова в словосочетаниях тупо для удобного поиска в IntelliSence, или логической группировки. Да и Is приписываю просто чтобы все ISы были в одном месте.

>Successful


Слишком длинно томущо. Охуей в Environment.NewLine и попробуй это применить на практике.
2039 2391143
>>391127

>Но с другой стороны. Слово "Enabled" - это прошедшее время, а значит вместо Is нужно писать Was.


Учи инглиш, чтобы не be butthurt. Все правильно, это passive voice.
2040 2391144
>>391127
Со своей колокольни и многолетнего опыта скажу, что называть переменные стоит так, чтобы максимально просто понять, для чего она служит. Назовёшь ты её Enabled или IsEnabled, или Enbl - если в контексте всего кода легко понять, что она значит, то ты всё сделал правильно. Гайдлайны майкрософта это хорошо и полезно, но слепо следовать их советам не стоит, это всего лишь рекоммендации. Если в тиме какие-то разногласия по этому поводу, то выработайте свои правила наименования переменных но почти всегда всем похуй.
>>390282 анон
2041 2391172
Почему в шарпе нет явного обозначения ссылочных типов как в крестах?
2042 2391188
Почему, когда я создаю новый экземпляр окна, оно тут же появляется, хотя я не использовал метод Show?
2043 2391191
>>391172
А чем тебе маркеры Structure и Class не нравятся?
2044 2391198
>>391188
Потому что иди на хуй, вот почему. Сука, тут, блядь, нету ни одного экстрасенса. Принеси свой вонючий код и покажи его нам, а мы скажем где ты съебланил.
2045 2391266
>>391198
Да я ебу что показывать? Там дохуя чего. Я думал что есть какие-то "НО", которое заставит запуститься окно.
Может поле какое.

Короче, есть два окна StrokeProperties и ColorPicker.
В первом окне я нажимаю на кнопку и в событии создается новый экземпляр ColorPicker, весь остальной код я закомментировал. В самом событии есть подписка на четыре события: Window_Initialized, Window_Loaded, ContentRendered.
Внутри этих событий все закомментировано, кроме сообщения в виде печати строки в окно интерпретации. Вот порядок их срабатывания:

## StrokeProperties: MouseLeftButtonUp
### ColorPicker: Window_Initialized
### ColorPicker: Window_Loaded
### ColorPicker: ContentRendered

Есть еще сообщение из функции Show (Shadowing), но его в списке нет, при этом какого-то хрена срабатывает Loaded и ContentRendered
Вот код под запускающей кнопкой:
ColorPicker CP = New ColorPicker();

Может че в xaml. Вот свойство окна:
<Window x:Class="ColorPicker"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ColorCurve"
mc:Ignorable="d"
Title="ColorPicker" Width="690" Height="375" Topmost="True" AllowsTransparency="True" Background="Transparent" WindowStartupLocation="CenterScreen" WindowStyle="None"
ShowInTaskbar="False" HorizontalAlignment="Stretch" VerticalAlignment="Top" SizeToContent="WidthAndHeight" Visibility="Visible" WindowState="Normal" ResizeMode="NoResize"
Initialized="Window_Initialized" Loaded="Window_Loaded" ContentRendered="Window_ContentRendered" >
2045 2391266
>>391198
Да я ебу что показывать? Там дохуя чего. Я думал что есть какие-то "НО", которое заставит запуститься окно.
Может поле какое.

Короче, есть два окна StrokeProperties и ColorPicker.
В первом окне я нажимаю на кнопку и в событии создается новый экземпляр ColorPicker, весь остальной код я закомментировал. В самом событии есть подписка на четыре события: Window_Initialized, Window_Loaded, ContentRendered.
Внутри этих событий все закомментировано, кроме сообщения в виде печати строки в окно интерпретации. Вот порядок их срабатывания:

## StrokeProperties: MouseLeftButtonUp
### ColorPicker: Window_Initialized
### ColorPicker: Window_Loaded
### ColorPicker: ContentRendered

Есть еще сообщение из функции Show (Shadowing), но его в списке нет, при этом какого-то хрена срабатывает Loaded и ContentRendered
Вот код под запускающей кнопкой:
ColorPicker CP = New ColorPicker();

Может че в xaml. Вот свойство окна:
<Window x:Class="ColorPicker"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ColorCurve"
mc:Ignorable="d"
Title="ColorPicker" Width="690" Height="375" Topmost="True" AllowsTransparency="True" Background="Transparent" WindowStartupLocation="CenterScreen" WindowStyle="None"
ShowInTaskbar="False" HorizontalAlignment="Stretch" VerticalAlignment="Top" SizeToContent="WidthAndHeight" Visibility="Visible" WindowState="Normal" ResizeMode="NoResize"
Initialized="Window_Initialized" Loaded="Window_Loaded" ContentRendered="Window_ContentRendered" >
2046 2391296
>>391198
Ну че, нашел? А я нашел. Дело действительно в xaml, конкретно в теге свойств окна Visibility="Visible". А теперь поясните шо происходит?
2047 2391346
>>390902

> C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen)


Понял. А этой книги в пдф у тебя случайно нет? На торрентах не нашел, а 5к на озоне за нее отдать не могу - я нищееб.
2048 2391351
>>390885
Тебе надо проверить инт, равен ли он 3, 8 или 69. Твои действия?
2049 2391409
>>391346
Ты не станешь программистом.
2050 2391424
>>391003
Я читал книги из шапки...
2051 2391444
>>390823
>>390885
>>391351
Там что, синтаксис бейсика изобрели? Каково ощущение, что вас опускают до уровня домохозяек?
image.png643 Кб, 1023x683
2052 2391491
>>391444

> Каково ощущение, что вас опускают до уровня домохозяек?


Если код становится красивее и понятнее, то почему бы и нет.
16159840288613.jpg147 Кб, 882x1080
2053 2391498
>>391409
Почему не станет? Может, он там с зарплатой 20к хуй без соли доедает. Конечно, у него пятерка на книжку не найдеться.
2054 2391635
>>391491
Да просто забавно, как бейсик ссаными тряпками гнали, и все больше и больше заимствований я вижу. В целом, идея-то хорошая — взять все лучшее из бейсика, а бейсик похоронить.
Надо еще Properties забрать.
2055 2391898
>>391444

> синтаксис бейсика изобрели?


>>391635

> бейсик


> заимствований


Не помню такого в бейсике. Начинал с ВБА в офисном пакете, пересел на стандалон ВБ5, потом ВБ6. Не помню такого.
2056 2392020
>>391346

> На торрентах не нашел


Даже для C# 10, не пизди
2057 2392067
>>391898
вба это говно мамонта, но по-моему даже там "or" и "and" были.
2058 2392072
В чем принципиальное отличие DLL на net5 и framework? Нельзя просто так обратиться к библиотеке?
2059 2392097
>>392072
Из проекта на framework ты не обратишься к core библиотеке, наоборот можно.
Библиотеку на core можно собрать под разные платформы. На framework только под винджу.
2060 2392099
>>391346
Сцук, первая ссылка в гугле.
2022-06-2913-52-03.png2 Кб, 380x68
2061 2392111
>>392097
Ну ё-моё. У меня стороннее приложение обращается к неуправляемой библиотеке. Конвертер я сделал, но сборку Core приложение отказывается жрать и падает.

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

У меня был запасной, как я полагал временный вариант — передачу информации в .exe через MemoryMappedFile, но это супер уебанский и неудобный вариант и я не хочу светить exe-шник, чтобы юзер своими потными ручками его не запускал. Есть какие нибудь мысли более грамотные?
2062 2392187
>>392111
А что за библиотека? Может можно ЕЁ пересобрать/переделать под фреймворк?
2063 2392311
Где глянуть примеры приложений на андроид написанных на xamarin?
2064 2392317
Можно ли это конвертировать из C++ в C#

float Test(char someText, double optValue, char outputBuffer, int optBuffer1Size,
char pOptBuffer2, int optBuffer2Size, char* zData)
{
strcpy(outputBuffer, "Hello!");
return 0.0f;
}


Вся проблема с outputBuffer. Это что-то вроде MemoryStream и передается ссылкой. Есть сторонная программа внутренним языком скритинга. Скрипт обращается к DLL с функцией выше, но преде этим выделяет память. Команда выглядит так:
[MemCreate, _mem , 256, 0] // _mem - имя переменной, 256 - выделенная память,
После отработки функции, я могу обратиться к _mem и получить данные.

Я попытался сделать аналог на C#. Да, на крестах неуправляемая библиотека, но я это уже превозмог.
private float Test(ref IntPtr someText, double optValue, ref IntPtr outputBuffer, int optBuffer1Size, ref IntPtr pOptBuffer2, int optBuffer2Size, string[] zData)
{
outputBuffer = "Hello!";
return 0.0f;
}


И у меня просто пустота на выходе. Точнее выдает либо пустоту, либо рандомный символ. Еще я читал про IntPtr, и делал даже так
outputBuffer = Marshal.StringToHGlobalAnsi("Hallo! Again!")
Это не помогло. А MemoryStream нужно стринговое название "переменной", но никак не ссылка.
2022-06-2919-01-20.png23 Кб, 1169x197
2065 2392318
>>392317
Ах тыж бля, все звездочки по пизде пошли. Вот скрин когда на C++.
2066 2392320
>>392187
Ну вот я не хотел этого. Подстава на пустмо месте.
2067 2392326
>>392318

> на C++


Но он на Си
2068 2392329
>>392326
Ну вот тонкостей я не знаю. Находится в main.cpp
Лучше расскажи, что за магия происходит?
Почему простое присвоение переменной в C# ничего не происходит?
2069 2392373
Сап, програмач. Аноны, которые учились в вузах, подскажите пожалуйста Московские вузы, где изучают C#.

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

и не надо мне рассказывать про то что вуз не нужен, я всё знаю, пропустим этот момент
2070 2392403
>>390818
Ты забыл дописать, что начинать надо с чистого С, а лучше с ассемблера. После окончания мехмата мгу офк, никак не раньше. А после изучения всего тобой предложенного радостно поскакать в ООО "Хуи и залупы" и ковырять там легаси говно на винформс до пенсии, унижая всех своими познаниями на двачах.

>>390886

>Аноны, нужен ваш совет.


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

>>391019
Жаль пока не дают пенсию за то, что ты вынужден сам себе писать рабочие инструменты. Так бы я с радостью, но мне надо работать, а не хуйней заниматься.
1113.jpg34 Кб, 473x1000
2071 2392425
>>392318
Бамп анончег.
Аргумент char⚹ оutputBuffer
превратил в Ref string оutputBuffer
дальше присваиваю строку outputBuffer = "Hallo! Again!"

При каждом новом выполнении функции, выдает разный результат из кракозябр. Куда копать? неужели С#ом никак не заменить C?
2072 2392428
>>392425
Алсоу, если я до использования функции что нибудь впишу в по адресу оutputBuffer, то у меня функция вообще падает.
2022-06-2921-43-14.png6 Кб, 324x153
2073 2392449
>>392428
>>392425
Новые вводные. Не передаю аргумент по ссылке, вот тупо
string оutputBuffer
При этом текст меняю до применения функции, и внутри функции все успешно читается. Что, мать его, не так делаю?
2074 2392574
>>390626

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


Не столкнутся. Половина шарпа - галеры. А они либо не нанимают, либо вообще уходят из России. C# закончился.
2075 2392582
>>390885

>Говнина ебаная, размазывающая легкочитаемый лаконичный синтаксис в аморфную кашу.


Это для свича, маня. Покажи, каким ты синтаксисом свичи делать собрался.
2076 2392645
>>392320

>Подстава на пустмо месте.


Ты говоришь так, как будто тебе кто-то когда-то обещал вечную совместимость со всеми предыдущими версиями. Тогда тебе лучше в джаву, там вон народ до сих пор на восьмой версии сидит и им норм.
16565185361000.png23 Кб, 1169x197
2077 2392663
>>392449
Да что за дерьмо? Как заменить этот ебаный char⚹ оutputBuffer из С++? Все советы на стаковерфлоу касаются импорта библиотеки, это не подходит.

Как только я использую string оutputBuffer или же IntPtr оutputBuffer , у меня внутри функции все адекватно читается, но не перезаписывается.

Но если я использую ref, то я читаю какой-то бред и около-пустоту. Как сделать аналог пикрила, на на шарпе? Даже Try не помогает защититься от вылета и отловить ошибку.
2078 2392667
>>392663
Еще кое что. Если я использую Marshal.PtrToStringAnsi(OutputBuffer) то получаю пустоту, если я захочу использовать Marshal.PtrToStringUni или же Marshal.PtrToStringAuto, то получаю краш.
videoplayback.mp4297 Кб, mp4,
640x360, 0:06
2079 2392692
>>392663
>>392667
Ебаный в рот этого казино. Надо было использовать StringBuilder без всяких ref.
outputBuffer As StringBuilder
Он и так работает по ссылке.
2080 2392748
>>392692
Это какое-то издевательство судьбы надо мной. Оказывается, что работает просто string outputBuffer.

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

И ведь недавно поднимался вопрос на тему ref и стрингов. И все равно те же грабли.
9QmrjujkIfE.jpg47 Кб, 590x425
2081 2392760
>>392748
Хотя нет, вот чего я раньше не знал и действительно раньше просто string не работал.

Для начала снова обрисую ситуацию и заранее извиняюсь, что я засрал тред. Начнем с вводных данных:
В мою функцию передается массив символов по ссылке - Char*. Принимаю я их с помощью аргумента string outputBuffer.

Когда я просто присваиваю
outputBuffer = "Какой-то текст"
то снаружи функции не наблюдается изменений. Но если я использую, что-то типа
outputBuffer.Replace ("Старый текст", "Какой-то текст")
то изменения видны и снаружи.

В чем дело? Типа присвоением я создаю новую ссылку? Я всегда думал, присвоение значения это изменение данных по ссылке.
2082 2392810
>>392760
В C# строки иммутабельны. Поменять строку по ссылке ты можешь только через unsafe.
Пека5.jpeg60 Кб, 800x487
2083 2392836
В очередной раз прокатили с работой. Просил 1800usd.
Обычные причины отказа:
-Нет опыта с облаками
-Нет опыта настройки пайп-лайнов гита
-Слабые теоретические знания фронта
-Нужен английский уровня С1

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

>>384400 -кун
1656585691251.jpg2 Кб, 200x200
2084 2392846
>>384400

> дебил к дерьмовым опытом


>>392836

> Просил 1800usd

2085 2392850
>>392836
Учи ангуляр. Шли нахуй?, если просят C1 за 1800.
2086 2392865
>>392846
Да, бля я бы и бесплатно согласился поработать пару месяцев, чтоб получить этот ебаный опыт с облаками этими вашими.
2087 2392903
>>392836
С учетом требований за сотыгу, я бы не переживал на твоем месте.
2088 2393030
>>392373
1. Идёшь в любой вуз где учат основам, алгоритмам, плюсам
1а. (Опционально) там ещё и не должны сильно ебать
2. Учишь актуальный шарп самостоятельно
3. ??????
4. PROFIT!
2089 2393062
Анон, в продакшне кто-то юзает до сих пор абстрактные классы или они уже в истории и все сидят на интерфейсах? Из свифта например это недоразумение выбросили.
2090 2393064
>>393062
Да, ведь назначение у них разное.
2091 2393084
>>392810

>В C# строки иммутабельны.


О спасибо!
2092 2393150
>>393064
Может и разное, но по итогу все твердое и густое едят одной вилкой, а не выпендриваются набором из разновидностей столовых приборов.

Я прям щас расписался в своей неопытности
2093 2393159
>>393062
В абстрактные классы ты можешь запихнуть методы, которые не нужно реализовывать, но которые можно использовать "из коробки".

В интерфейсах ты можешь только реализовывать свойства и методы, остальное придется дописывать ручками. Для того, чтобы реализовать полноценный абстрактный класс, тебе придется:
1) Написать базовый класс
2) Написать интерфейс
А зачем, когда абстрактным классом ты можешь сделать это за раз? Иногда это менее гибко, если речь идет о множественном наследовании, но иногда "нахуя"?
2094 2393179
>>392187

>Может можно ЕЁ пересобрать/переделать под фреймворк?


Ну вот мне нужно WPF окно, но при этом оно должно запускаться из библиотеки классов. А из предложенного студией мне доступна библиотека "классов WPF на net 5-6".

И что в такой ситуации делать? Винформс это говнище с отсутствующим функционалом.
2095 2393216
>>393064
>>393159
А, я разобрался со свифторианами, у них есть экстеншены, с помощью которых можно с ноги закинуть дополнения в любой класс, а у нас это получается нужно делать изначально как раз с помощью абстрактных классов. Ну вот вроде наконец и разобрался, не прошло и недели.
2096 2393240
Есть макбук на м1.
Какие подводные для кодинга на сишарп на нем?
2097 2393241
>>393216

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


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

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

Такие дела.
2098 2393243
Есть более надежный способ защиты, крмое try? У меня приложение вылетает даже с ней.
2099 2393250
>>393240
Винду придется ставить, если хочешь нормальную иде. Либо ищи способ купить райдер.
2100 2393282
>>393179
Разобрался, переделал другой шаблон. Только теперь встал вопрос:
dll запускает окно и тут же закрывается (потому что окно не модальное)
А можно как-то ожидать закрытия не используя async?
2101 2393285
>>393250
>>393240
А разве этот ваш мауи© не для маков тоже делают? Значит там и студия есть (от майков можно ожидать всякое). К тому же во всех туторах настоятельно рекомендуют покупать мак, если захотим пилить на мауи© под мак (из-за ограничений в лицензии эплоблядей)
Снимок экрана 2022-07-01 в 02.57.53.png471 Кб, 2386x922
2102 2393289
>>393285

>студия есть (от майков можно ожидать всякое)


Да студия-то есть, причем нативная, для м1

Я просто не пойму, подойдет ли вообще мак ось, причем на м1, для полноценной учебы и работы с сишарпом
2103 2393293
>>393289
Да хрен знает. Самому интересно какие там различия. Понятно что под нетфреймворк путь тебе заказан. Остается мауи и веб.
15025420974940.jpg39 Кб, 442x409
2104 2393296
>>393289
А если тебе скажут, что не подойдет, ты продашь? Ты начни по туторам делать и потом нам расскажешь о подводных камнях.
2105 2393298
>>393285
Какой в пизду мауи? Брось каку. В дотнете стоит юзать только асп.нет и впф, все остальное - это эксперименты майков над психикой разработчиков.

>во всех туторах настоятельно рекомендуют покупать мак, если захотим пилить на мауи© под мак


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

>>393289
Это обрубок студии, который к виндовой студии почти никакого отношения не имеет. По сути это бывший опенсорсный Mono Develop, в котором майки поменяли логотип и забили хуй на это поделие. Как иде - полное говно.
2106 2393305
>>393298

>Им надо - пусть пилят


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

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

>я пишу приложуху для хуйдожников


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

>Тут в шапке и в теме много советов.


Да вас, честно говоря, хуй поймешь. Я сам, помню, тут спрашивал по поводу книг. Набегает несколько человек, каждый предлагает свой вариант и хуесосит варианты остальных. Кому верить-то? Тот же метанит, упомянутый в шапке - его тут не обхуесосил только ленивый.
2109 2393354
Бамп вопросом.

Вызывается функция из DLL, эта функция запускает окно WPF

public static void RunWindow()
{
W = new MyWindow();
W.Show();
}


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

Я пытался тупо без async поставить while с ожиданием закрытия, но запускается окно по видимому в одном и том же потоке, поэтому интерфейс блокируется циклом. Как решается подобная задача, чтобы немодельное окно работало само по себе, а запускающий метод RunWindow не блокировал его и при этом ожидал завершения работы окна?
2110 2393540
Расскажите про конвертацию .net в нативный код. Чет смущает, что я могу дотпиком восстановить исходник своей программы, разве что комментариев нет.
2111 2393596
>>393312
The Player's Guide тут несколько раз упоминали - очень годно для старта. Уже слито последнее издание по C#10 и .NET6 (ищи и найдешь). Послее нее уже можешь идти дрочить WPF, если ты именно на указанную тут >>390886 вакансию собираешься. А там по ходу дела доучишь нужные темы более глубоко и освоишь инструменты вроде гита и так далее.
2112 2393658
Аноны, у меня очень нубский вопрос, но из-за этого я даже не знаю как такое гуглить.

В общем смотрите пик. По задумке это должно обновить запись в базе но это так не работает потому что в момент присвоения Entity framework теряет объект и больше не трекает его в итоге... получается пик номер 2, что бы не присваивать новый объект нужно в ручную перебирать каждое свойство объекта, и это гребаный АД

надо что то в стиле сделатьхорошо(любойисходнийОбект, любойНовыйОбект)
2113 2393666
>>393658
Попробуй загрузить исходный с .AsNoTracking(), а обновленный добавить в dbContext через .Update . По идее при сохранении контекста должен тогда уйти запрос на обновление всех полей у строки с заданным id.
2114 2393677
>>393666
Это было супер быстро, люблю тебя двач, спасибо Анон, два чая тебе, пофикшено,
2115 2393777
Как думаете, когда C# эволюционирует в новый Си-язык? Мне кажется он сейчас слишком перегружен, хотя микрософты старательно избавляются от легаси говна, но всё же. Не могут же они до бесконечности навешивать новый функционал и переписывать фреймворки.
2116 2393850
>>393777
Куда ему в новый, он только родился по сути.
image.png93 Кб, 1277x827
2117 2393873
А Я НЕ ПОНЯЛ

Раньше же микрософты рекомендовали НЕ использовать префиксы для приватных полей. А теперь наоборот рекомендуют использовать "_", да ещё и "s_" для статических полей. Что за дела? Это вдруг стало стандартом?
2118 2393949
>>334154

> — C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price) — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь.


Уже вышла новая редакция с c# 10, в которой автор перешел с вскода на студию.
2119 2393974
Какое же говно это расширение классов. Синтаксис максимально не очевидный.
QcEn7XJOuHc.jpg69 Кб, 550x550
2120 2393976
>>393873
РЕГИСТР ВЕРБЛЮДА
2121 2393977
>>393949
Там в шапке почти все уже какое-то некроговно.

>>393974
Ну-ка покажи.
2122 2394007
В чем конкретные отличия get-only от использования init и филдов с readonly? Вроде бы во всех случаях мы можем задать значение только в конструкторе.
2123 2394009
>>394007
все это разные вещи
одно филд, другое свойство, а третье вообще не для конструкторов придумано
2124 2394010
>>393873

>Раньше же микрософты рекомендовали НЕ использовать префиксы для приватных полей.


Не рекомендовали использовать прочерк для именования классов. До сих пор не рекомендуют.

Прочерк активно используется в бейсике т.к. там отсутствует чувствительность к регистрам и нельзя сделать так:
value = Value // лично я такое осуждаю
поэтому там делается так:
_Value = Value
Возможно это осуждаю не один я и это очередной пример слияния с уходящим на покой бейсиком.

А еще не рекомендовали префиксы, дублирующие информацию о типе, вроде TextBox именовать как tb_MyText
2125 2394016
>>394009
Ну с филдой понятно, она отдельно. Но зачем кто-то будет делать init и прописывать значения при инициализации, если можно просто сделать конструктор? Непонятно применение.
2126 2394020
>>394016
Вот ты всяким либам сериализации, мапперам дтошек, ормкам расскажи что "юзайте всегда конструктор с параметрами, че это вы".
2127 2394022
>>394020
А, я до таких дебрей пока не дошел еще.
2128 2394087
>>394010

> До сих пор не рекомендуют


Почему же. Вот их свежий кодестайл
https://github.com/dotnet/runtime/blob/main/docs/coding-guidelines/coding-style.md
2129 2394090
>>394087
Я не вижу прочерков в названиях классов. Может я жопой смотрю.
image.png170 Кб, 1279x1084
2130 2394093
>>394090

> прочерков в названиях классов


А, не заметил, что ты про классы написал. Но они в целом не рекомендовали прочерк в именах. И ещё "s_", который теперь рекомендуют.

DO NOT use underscores, hyphens, or any other nonalphanumeric characters.

DO NOT use a prefix for field names. For example, do not use "g_" or "s_" to indicate static fields.
2131 2394102
>>334153 (OP)
Посоветуйте годные видеоуроки на русском, дорогие анончики. Чисто для старта. К книгам и прочим материалам хочу только в процессе перейти
1007099424.jpg113 Кб, 477x700
2132 2394112
Какую книгу по wpf всё таки прочитать? Пока попробывал на пике и точка, неплохая
Петцольд лютая душниловка
2133 2394116
А как в условиях санкций загружать пакеты на nuget? Пока еще все работает, но ведь дальше могут отключить аккаунты.
2134 2394125
>>394093
Я вот тоже не понимаю с чего вдруг в шарпе VB заставляет дублировать информацию, которая и так видна.

Чего мне не хватает, так это как-то визуально отделить поле от элемента графического интерфейса.
2135 2394127
>>394102
Канал #SimpleCode, Христ
2136 2394128
>>394102
Все что угодно, только не Леша Корепанов и Sergey Nemchinskiy, если не хочешь засрать голову бесполезным говном.
2137 2394157
>>393596

>ищи и найдешь


Нихуя не нашел. Просмотрел несколько страниц гугла и яндекса, проверил наши торренты и пират бай, и еще несколько англоязычных, специализирующиеся на книгах. Нашел только третью версию на рутрекере. Надеюсь, она не устарела?
2138 2394165
>>394102
Кроме Симплкода особо никого и нету. Есть еще курс от Ильи Фофанова, но он немножк сумбурный, хотя основы даст. Он щас его выкладывает у себя на канале в свободный доступ. Но Симплкод таки лучше.

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

>>394128
Немчинский поп-инфу рассказывает, то есть это скорее развлечение, нежели образование какое-то.

>>394157
Третья немного устарела. Новая, так уж и быть, тут: twirpx(тчк)com. Там вообще почти все книги в наиболее новых изданиях есть.
2139 2394179
>>393873
Подчеркивание в начале имен приватных полей уже года 2...3 как стандарт. Это в первую очередь позволяет избавиться от дохуилиона "this." в конструкторах и локальных методах/функциях.
Насчет "s_" пока не встречал. Но большое количество статических полей само по себе не слишком частый случай (в нормальной архитектуре по крайней мере), чтобы выделять для этого отдельный префикс. Тут обычно каждый лепит как привык, ну т.е. с простым подчеркиванием, как у нестатических полей.
2140 2394180
>>394165

>Кроме Симплкода особо никого и нету.


Христ, это что-то среднее между экстримкодом и симплкодом.
image.png160 Кб, 700x371
2141 2394183
2142 2394184
>>394180
Еще он не сходу говорит как надо делать, а сначала идет по предсказуемому, но неправильному пути, показывает какой пиздец из этого получается, а уже потом показывает верный подход.
2143 2394185
>>394102
Канал ExtremeCode на ютубе. Старый плейлист "C# для маленьких и тупых"
Плюс еще несколько видосов того же времени.
Современные не смотри, там они уже просто хуйню ради хуйни снимают.
2144 2394190
>>394184
Такой подход для обучения лютое говно.
Т.е. ты ничего не знаешь по теме, чел начинает тебе что-то рассказывать. Т.к. ты не в теме то нормально проанализировать информацию не можешь и поэтому мозг запоминает ее как есть. А потом тебе так хуяк, "все говно, давай по новой".
На определенной итерации такой хуеты, твой собственный мозг пошлет тебя и ты заебешься разгребать кашу у себя в голове.
2145 2394209
>>394190
Я считаю напротив. Если человек не осознает почему ему нужно следовать конкретным правилам, то он не будет им следовать. Это как копипастить из стакофоверфлоу, в мозгу ничего не задержится. А потом рождаются либерахи, которым видите ли противны старые устои и начинают изобретать велосипеды грабли, на которые наступили миллионы раз их предки.

>А потом тебе так хуяк, "все говно, давай по новой"


Я так детей своих буду учить. Дети в хуй не ставят теоремы в школе — их надо сперва заебать окольными путями, а потом показать, что их гемор можно было заменить одной формулой. Возможно это будет повод меня ненавидеть, но я использую метод дополнительного пряника, чтобы компенсировать потраченное время.
2146 2394223
А можно в WPF как-то создать массив кнопок и не создавать для каждой подписку на событие? Это же потом чистить вилкой.
Есть какие-то альтернативные пути?
2147 2394229
>>394209

>Я считаю напротив. Если человек не осознает почему ему нужно следовать конкретным правилам,


Каким нахуй правилам он должен следовать если он самих правил не знает, и даже о чем эти правила говорят.
Это как если прийти в спортзал, тебе показывают приседания, а после того как ты наприседаешь, тебе скажут, "ну ты понял, почему ты таким образом грудные не накачаешь? Поэтому давай я тебе покажу отжимания, вот их нужно было делать"
2148 2394250
>>394229

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


В данном примере сложно применить такой подход — он будет либо незаметен, либо деструктивен для здоровья. На примере с кодом это лишние 10 минут, зато более информативен.
2149 2394278
>>334153 (OP)
Шарпаны. Что нужно в .editorconfig прописать, чтобы нельзя было русские (и вообще unicode) символы использовать в именах переменных, классов, интерфейсов и т.д.?
2150 2394287
Продолжаю изучать язык, и сейчас дошёл до ILSpy, в учебнике с его помощью открывают System.IO.Filesystem.dll и получают пик 1, а у меня там только пик 2. В чем причина?
img.png106 Кб, 1074x757
2151 2394296
>>394287
Хз, но я нашел нужный тебе System.IO в System.Private.CoreLib.
2152 2394559
>>393540
Бамп вопросом или можно заюзать обфускатор, то какой? Все что я читал, было написано лет 10 назад и все склонялись к мнению, шо говно.

У меня нет ничего суперсекретного, нормальный программист сделает без меня и намного лучше, но я открываю дикдотпиком и там просто картина маслом.
2153 2394570
>>394559
Емнип, код жабы и шарпа никак нормально не обфусцировать.
2154 2394595
>>394278
Бамп вопросу.
2155 2394597
>>394559
Поверь - проще забить хуй. Проще не в том смысле, что обфусцировать сложно, а в том, что тебе должно быть насрать на то, что кто-то посмотрит твой код.
2156 2394641
Пасаны, я запутался. Что такое сервисы в шарпе? Это что-то про DI?.. И чем сервис будет отличаться от статика и синглтона, если я правильно применяемость понимаю..
2157 2394685
>>394597

>тебе должно быть насрать на то, что кто-то посмотрит твой код


Большой и богатый энтерпрайз не может себе такого позволить. Во-первых, могут спиздить какие-то решения, обеспечивающие конкурентное преимущество. Во-вторых, недоброжелатели могут в этом коде найти уязвимости и использовать их в своих целях.
2158 2394711
Важный вопрос.
Как снизить потребление памяти в связке webApi+Sqite без EF?
Просто как. Оно жрет в определенный момент 100МБ. Что как-то много. Типа у меня просто один поток, который берет из БД следующую задачу на чтение чего-то из стороннего апи, читаю, сохраняю в БД результат. При каждом запросе к БД - руками открываю соединие, закрываю руками, диспозю. Вроде как особо объектов не создаю, но 100МБ - жрется. Если я эти же задачи реализую путем чтения из файлика - такой фигни нет, но это геморно и вообще тупо. Из объектов что создаю - это как раз сущности из БД, чтобы задачу достать и послать куда надо HTTP-запросец, потом - получить ответ и все.

Код примерно следющий:

while(true){

var task = _repo.GetNextTask();
var taskResult = _api.ExecuteTask(task);
_repo.SaveResult(taskResult);
Thread.Sleep(500);

}
2159 2394773
>>394685
Ты долбоеб или как. Энтерпрайз наружу максимум апиш-ку от своего приложения выставит, и то не всю. А все остальное будет крутится в его внутренней сети под впн-ом и ты самого приложения даже и не увидишь.
2160 2394823
>>394685
Этого >>394773 двачую. Это во-первых.
Во-вторых. Пиздинг чужих решений - это хуета из под коня. В реальном мире важнее занять первыми нишу и как можно большее количество пользователей захапать, а не ебаться с тем чтобы 2 года страдать непонятной хуйней, в итоге пока вы MVP выкатили - все пользователи у конкурента и фич там столько, что даже если они откроют исходники - вы на их анализ и перетаскивание себе - еще 2 года потратите.
В-третьих, использование уязвимостей в своих нехороших целях - это суд и 100500 лярдов долларов и несколько пожизненных, потому что в контексте вреда - вы уже можете нарисовать любую сумму, а каждый случай использования уязвимости рассматривается в международных судах как отдельное нарушение. Т.о. если кто-то нашел уязвимость - он обязан сообщать, если сообщения не было - суд; если было, а вы такие ебланы и проигнорировали, то хоть сколько ты там код прячь - вы ебланы. Ну и да, Кому надо - тот и до аппаратного уровня дойдет и что угодно сделает, а потому страдать непонятной хуйней ссылаясь на каких-то там нехороших людей - это детский лепет.
2161 2394846
>>394773
>>394823
Сразу видно людей, которые никогда не сталкивались с опсеком.
2162 2394860
>>394641
сервис - широкое понятие от "вечноработающего демона" до обычного сервисного класса, в который впихнута какая то логика

Тебе нужно почту отправить... ты пишешь код отправки (подключение, отправка, отключение) и тебе нужно его куда то положить чтобы был порядок. Вот так и рождается у тебя сервисный класс
2163 2394883
>>394846
Сталкивался. И даже видел как народ несколько месяцев обфусцировал библиотеку которой не должно было быть в сертифицируемом софте. А так же наблюдал грустные ебала руководства которые эту идею выдали и потом не прокатило, потому что вскрывается это на раз.
Если у тебя опсек, то ты явно не будешь критические модули писать на языках подобных джаве/шарпу, или если будешь, то не будешь выставлять наружу ничего критического на чем тебя можно пробить.
2164 2394884
>>394860
Вроде понятно, но.
Вот допустим мввм. Когда класс пойдет в папку Models, а когда в Services?
2165 2394894
>>394884

> Когда класс пойдет в папку Models, а когда в Services?


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

User - модель
UserEmailSendService - сервис
2166 2394903
>>394894
А как тогда разделять бизнес логику и логику приложения?.. (domain/business и application)
2167 2394907
>>394903
Ее разделение не на уровне в какую папочку что ложить происходит.
Короче. Смотри код, это почти кристально чистый пример того как дела делают сейчас
https://github.com/dotnet-architecture/eShopOnContainers
2168 2394908
>>394883

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


И тут в комнату заходит бабло. У тебя целый офис шарпистов, вся инфраструктура под него. Нанимать целый новый отдел, включать его в работу, налаживать взаимодействие команд - это ебейшие затраты денег и времени.
2169 2394909
>>394907
Спасибо!
2170 2394912
>>394908

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


И поэтому ты идешь на двач, спрашивать советов, как тебе лучше обфусцировать свое дерьмо. Good choice.
image556 Кб, 2880x1462
2171 2394992
Зачем в NumberFormatInfo свойство NumberDecimalSeparator сделали как string, а не char? Ведь в принципе среди всех локалей встречается только 3 разных децимал сепаратора: это точка, это запятая и это мумаййиз (тоже по сути запятая).
Стринг же не снижает перформанс при парсинге и форматтинге.
Оверинжиниринг и обобщение сверх меры, так ведь?
2172 2394997
>>394685

>какие-то решения, обеспечивающие конкурентное преимущество


Анон, код у всех примерно одинаковый сегодня.
Это в 1980-х в какой-то команде мог оказаться гениальный красноглазик и порвать рынок суперфичей. Сегодня прорывов в софте нет и не будет.
2173 2394998
>>394992
Ты можешь гарантировать, что это всегда будет точка или запятая? Вот для какого-нибудь научного софта для разделения целой и дробной части нужно будет .. использовать. Что будешь делать, если у тебя char использовался?
2174 2395000
>>393540
Ну если ты не совсем макака, то можешь поковырять сорсы rolsyn'а, там есть весь код, который из шарпа делает IL, и который из IL делает машинный код. Дальше покури, как устроены exe-шники под винду, и этот машинный код запакуй в exe-шник и его отдавай конечному потребителю. Наверняка кстати что-то такое опенсорсное есть.
2175 2395004
>>394998
Так-то ты прав, но. Для таких интересных случаев, как и например для 20-ричных систем исчисления племени охотников на крокодил с озера Чад, можно будет запилить свой кастомный нумбер формат инфо, парсер и форматтер, а для 99.9999999% юзеров съэкономить машинные такты. Всяких стандартных интерфейсов для такой кастомизации в шарпе предостаточно.
2176 2395005
>>394883
Тот же юнити транспилирует шарп в плюсы. Что мешало, например, сделать также и потом биндить нативную дллку?
2177 2395008
>>395005
Потому что у нас есть CLR. Нахуй в какие-то там плюсы транслировать, если байткод после оптимизаций - почти не отличается от плюсового?
2178 2395014
>>395008

>Нахуй


Человек задался вопросом как обфусцировать библиотеку. Вот - за этим. Чтобы дотпиком любой школьник не смотрел куда не положено.
2179 2395070
У меня перестала выводиться региональная валюта, вместо символа рубля просто знак вопроса. В чем дело может быть?
2180 2395097
Как научиться читать и писать сложные регулярки?
2181 2395188
>>395005

>Что мешало, например, сделать также и потом биндить нативную дллку?


Ничего не мешало, так же как не мешает делать и сейчас. Гугли AOT компиляцию в C# и пользуйся на здоровье.
2182 2395193
>>395097
Как дедушка ленин завещал. "Учиться, учиться, учиться."
Учить теорию, начинать с простых примеров. Задрачивать их до автоматизма. Переходить к более сложным и так же задрачивать. Удачные решения разбирать и записывать. Чаще использовать в работе и т.д.
Другого способа нет.
2183 2395249
А куда Ngen сохраняет результат? В консоли пишется успех, но исходный файл неизменный. К тому же второй раз отказывается проводить операцию.
2184 2395268
>>395097
Регулярки никто не читает. Их пишут один раз для конкретной задачи.
Их проще переписать с нуля, чем искать ошибку.
Это как скрипты для билда или установки, их проще выкинуть и написать новые.
Ну а про писать сложные. Уже классическая хохма: "У вас проблема, и вы собрались использовать регулярные выражения для её решения. Теперь у вас две проблемы."

Так что вердикт: не нужно.
2185 2395824
Анон, чо там про кроссплатформенным приложениям? Стульев очень много. Вне мира .NET это React Native + ElectronJS и Flutter. В мире .NET еще целые Avalonia с UNO и MAUI. Из всех понятно выглядит только сравнение жс-поделий с Флаттером - второй шустрее и лучше, но надо учить отдельный язык, который больше нигде не нужен, и до кучи гугл в любой момент может все это дело прихлопнуть. А вот про остальное инфы очень мало. Мауи еще можно выбросить, потому что без линукса. Как выбирать между жс-калом, Флаттером, Авалонией и Уно? Собираюсь писать несложные приложения, которые опционально будут взаимодействовать с веб-бекендом и пристойно работать на всех платформах (десктоп + мобилки), чтобы одну кодовую базу написать и не ебать мозги.
164715269310-krot-info-p-krokodil-gena-smeshnoi-smeshnie-fo[...].jpg88 Кб, 1200x764
2186 2395839
Анон как преодолеть бредовую ситуацию импорта библиотек?

Ситуация:
Приложение Application.exe импортирует unmanaged либу по некому специфическому пути:
[DllImport("E:\Libraries\Biba.dll")]

А та библиотека, в свою очередь, импортирует managed библиотеку по локальному пути
using Boba;
Библиотека лежит там же в "E:\Libraries\"

Я-то думал, что Biba.dll будет искать Boba.dll относительно своего нахождения, а оказывается библиотека ищется относительно пути запускающей программы Application.exe
Как мне заставить Biba.dll искать либу относительно своего адреса?
2187 2395850
>>395839
Че бесит, что если бы я Boba.dll сделал тоже unmanaged и импортировал его так:
[DllImport("Boba.dll")], то искался бы относительно импортирующего.
2188 2395853
>>395824
Тебе не позавидуешь.
2189 2395863
>>395824
Флаттер на самом деле по ощущениям как сын шарпа и питона какого-нить. Я его не учил, разобрался по гайдам и чисто по ощущениям нашлепал нужную себе штуку, получилось даже норм.
2190 2395871
>>395839
>>395850
Как же бесит.

>Просто добавьте в конфигурацию вашего приложения probing privatePath


Это не мое приложение — я делаю плагин. Приложение подгружает мою либу, видит референс и пытается искать его по месту своего запуска, а не в папке с плагинами.
ууух, бля. И что за все время существования нельзя было сделать возможность установки относительного пути? До сих пор в свойствах netframework нельзя установить относительный путь запускаемого приложения. Энтерпрайз-лежбище котиков.
lyKfI9W9-1g.jpg59 Кб, 600x483
2191 2395899
>>395871
Нарыл "позднее связывание"
Вы шо, ебанулись такие простыни, да еще через медленный рефлекшн делать? Методы и неймспейсы использовать "вслепую" — без IntelleSence. Я ебал в рот. Это же смешно, это издевательство над здравым смыслом. Огороды тупо из-за того, что нельзя указать относительный путь, хотя это возможно реализовать с неродной unmanaged библиотекой.
2192 2396172
Есть массив Char, у которого в конце ряд ячеек null. Как такой очистить?
2193 2396211
Посоветуйте алгоритм, который нужно использовать, чтобы распарсить и вычислить арифметическое выражение типа 1 + 2 (3 - 4 / 5).
Ещё до кучи, нужен класс, который получает в качестве аргумента строку типа: "1
x + 2 * (3 - 4 / x)" и имеет метод double Calculate(x), который это бы вычислил. Как это реализовать?
Что почитать на эту тему?
2194 2396302
>>395863
А что там в сравнении с Авалонией и Уно? Юзал кто-нибудь эти поделки?
2195 2396320
>>396211
1 - регулярка, 2 - польская запись?
2196 2396737
>>396320

>2 - польская запись?


Да.
2197 2397031
Петушня, а вы слышали, что такое Javadoc? А у вас такое есть? Петушарперы, голос! Ахахахахахахахаха
2198 2397057
>>397031
Swagger?
2199 2397070
>>397057
То есть единого решения от самих разработчиков языка у вас нет?
2200 2397079
>>397031
Да, есть. В .csproj надо прописать:
<GenerateDocumentationFile>True</GenerateDocumentationFile>
2201 2397081
Есть ли в новых дотнетах какой-то атрибут, которым можно помечать элементы enum'а, чтобы задать текст, которым этот enum будет выводиться в ToString()?
Или всё опять нужно велосипедить?
2202 2397083
>>397081
Можно пример желаемого?
2203 2397102
>>397083
Имеем енумчик:
public enum BinaryInfixOperator
{ Add, Subtract, Multiply, Divide}


Надо, чтобы BinaryInfixOperator.Add.ToString() выводился как "+", а не как "Add".
2022-07-0518-47-36.png12 Кб, 922x266
2205 2397180
Зачем данный господин использует using?
Разве переменная, которую он использует не удалится сборщиком мусора при выходе из функции?
2206 2397182
>>397102
Не, это вряд ли.
2207 2397186
>>397180
Переменная-то удалится, а вот обект процесса в химе нет. Он будет висеть и ждать сборки мусора. А заодно и держать системные неуправляемые ресурсы (дескрипторы и т.д.), которые только при финализации перед уборкой данного объекта освободятся. С using'ом он тоже в химе до сборки мусора висеть будет, но системные ресурсы отдаст сразу.
2208 2397187
>>397186
* в хипе висеть будет
2209 2397203
А как быть с
Process.GetProcessesByName()
который возращает массив тех же процессов и не может быть using? Да и MSDN не используются юзинги.
https://docs.microsoft.com/ru-ru/dotnet/api/system.diagnostics.process.getprocessesbyname?view=net-6.0

Мне кажется это пустая перестраховка.
2210 2397205
2211 2397206
Дарова щеглы.
Я вам тут классику почитать принёс:
https://en.wikipedia.org/wiki/Microserfs
2212 2397256
>>397203
Ну, в случае с массивом нужно просто в цикле для каждого объекта вручную метод .Dispose() дёрнуть. Ну или можешь свою обёртку написать и ее в using'е использовать, чтобы при выходе из блока все переданные в нее объекты задиспозились.
2213 2397345
Изучаю ВПФ - объясните плиз чем принципиально вот эти две реализации RelayCommand отличаются? В целом понятно что обе делают, но почему в первой пасте выглядит попроще, а во второй накручено всякого и интерфейс реализуется через ICommand.CanExecute вместо просто CanExecute?

https://pastebin.com/1JY3n29h

https://pastebin.com/aqZU1vGy
2214 2397469
>>397345
первая попроще потому что там решили не заморачиваться с типом параметра в Action (а также с его возможным отсутствием)
Во втором случае это сделано

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

и это еще не накручено. Вот еще больше накручено https://pastebin.com/zbrtXwBD
2215 2398144
Анон, тут такая задача возникла. Есть класс A, в проперти которого содержится двумерный массив инстанций классов, имплементирующих интерфейс B (B1, B2, B3 etc). В одном из классов B есть важная bool проперти (она только в этом классе, в интерфейсе ее нет). Как из класса С (то есть вообще левого) прочитать эту bool проперти? Она public { get; }. Целый день ебусь - никак не выходит.
2216 2398167
ГУИ или бекэнд?
2217 2398212
>>398167
Хуи
16565245274460.webm881 Кб, webm,
1280x720, 0:06
2218 2398219
2219 2398220
>>398144
Тебе надо привести обратно к твоему классу B1(или что там у тебя)
Читай про даункаст и апкаст.

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

Т.е. тебе надо что-то вроде этого:
MyClass B1 = Array[0]; // я бейсикодебил, мог что-то проебать в синтаксисе
С этого момента у тебя снова будут доступны все доп свойства.
2220 2398290
>>398220
Пасиба, анон. Тоже думал про даункаст (или это апкаст, хз), но как-то он с первых попыток не получился и я забил. А сейчас поковырял еще и эта хуета наконец заработала. Фух, день прожит не зря.
2221 2398322
Кто нибудь нашёл инфу по документации?
2222 2398397
Кто нибудь запускал юнит тесты .NET 6 VS 2022 на линуксе? Чего-то нихера у меня не пашет, пишет якобы среда WSL не сконфигурирована хотя вроде все по инструкцции сделал. Более того, до этого из студии на той же WSL собирал сишный проект на CMake и все сходу завелось, студия сама предложила доустановить на линукс недостающие компоненты.
2223 2398424
Заберите своего долбоеба из жава треда
2224 2398428
>>398424
Простите, Тамара Николавна, что мой негодник опять натворил?

На самом деле это вселенский долбоеб-беспризорник, срущий в каждом профильном треде.
2225 2398429
>>398424
Дезва это кал для долбоёбов.
2226 2398432
>>398424
Имхо ему в вашем треде самое место. А то у вас там весь мир на жабе написан, а на дотнете до сих пор ничего (вообще ничего, воооообще, лол).
2227 2398486
>>398397
НИЕЕЕЕТ!!!!! ТУПОЙ ЖАБАЖАУН!!!!! ПЕТУШАРП КРОСС-ПЛОТ-ФОРММ-МЕНН-ННЫЙ И ДОТ! ТВЕРДО И ЧЕТКО!!!!!!
2228 2398511
Почему для работы с массивами нужно использовать статический класс Array, вместо работы с ними напрямую?
2229 2398521
>>398486
В петушиный джезва-загон, животное!
2230 2398523
>>398511
Потому что операции двухместные
2231 2398525
>>398521
Ох как порвался, любо дорого посмотреть!
2232 2398740
как же шарпоблядь визжит, джава джедаи опять победили
2233 2398746
>>398740
Ебло, хоть на двоичном коде фичи пиши. Если ты делаешь то, что нужно, оно работает как нужно и ты ещё за это бабки получаешь - ты уже победил.
2234 2398949
>>398746
Фитчм
2235 2398957
>>398746
Не обращай внимания. Это наш локальный жавашиз. Можете его зарепортить
2236 2399055
Как запросом можно получить информацию с сайта, которая появляется в коде только после клика?
2237 2399060
Почему в каждом треде всегда находится один агрессивный <нейм>шиз, скатывающий тематику в пустой срач? Статистика или заговор?
2238 2399064
А перекат будет нормальный или утонем?
2239 2399066
Есть какие то новости по документации?
2240 2399256
Про документацию узнали что-нибудь?
2241 2399286
Катитесь, шапка нинужна
>>2399284 (OP)
>>2399284 (OP)
>>2399284 (OP)
1657283573094.gif2 Мб, 375x375
2242 2399720
>>398212

>ГУИ?


Хуи!

> Бэкэнд?


Хуекэнд!
2243 2400171
>>394180
Конченный мудак который нихуя не обьясняет
Какие-то свои винформочки дрочит и пропускает 70 процентов всей темы
2244 2402061
>>397345
ICommand.CanExecute
Это называется явная реализация интерфейса (implicit interface implementation):
https://stackoverflow.com/questions/143405/c-sharp-interfaces-implicit-implementation-versus-explicit-implementation
2245 2402763
Прочёл троелсона c# 9 .net 5 и рихтера. Что делать дальше? Куда податься, если c# далеко не приоритет на снг и, помимо всего прочего, дерьмософт начали вводить санкции для руснявых девелоперов?
2246 2403412
>>402763
Что за санкции? А вообще ты кал прочитал, троллсен это кал, почитай барта де смета хотя бы.
2247 2403498
>>403412
Можешь подробнее расписать чем он плох? куда ни глянь, везде пихают троелсона да штился(based)
2248 2403582
>>403498
Я вообще не представляю зачем его рекомендуют, чувак просто не умеет писать, он излагает не последовательно, не даёт точных определений а просто "пиздит" на заданную тему довольно сумбурно в результате если вдумыватьв в текст будет больше вопросов чем ответов.

Единственное моё объяснение почему он стал популярным - т.к. он описывает не только язык а еще кучу прикладных фреймворков вроде асп и впф (другое дело что там описание такое краткое что кодить на них все равно не сможешь) и видимо нашел свою аудитория среди западных студентов раздолбаев которые пытаются сэкономить и покупают одну книку вместо десяти.
2249 2403679
>>403582
тогда такой вопрос: достаточно ли сайта metanit.com для основ, а далее изучать конкретные направления по составляющи? Т.е. в полной ли мере там раскрываются основы?(Планирую подтянуть ещё одного человека не хотелось бы обосраться)
2250 2403716
>>403679
Так ты уже рихтера прочитал, это мега продвинутый уровень, зачем тебе курсы?

Я хз про курсы, не воспринимаю их, только по книжкам все изучаю.
2251 2409468
Прочел RB Whitaker The C# Player's Guide, который тут неоднократно советовали. Могу ли я теперь считаться джуном и пытаться найти галеру?
2252 2423191
>>392067

> вба это говно мамонта


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

> отточеная проверенная временем технология


а в другом месте

> говно мамонта

2253 2423194
>>393282

> dll запускает окно и тут же закрывается (потому что окно не модальное)


Не потому.
А потому, что в длл нет майнлупа. Когда-то давно я боролся с этой проблемой и как-то заборол. Но то было вообще не в сишарпе, а во фрипаскале, и я не помню, как заборол проблему, а если бы и помнил, тебе вряд ли это помогло бы.
ЕМНИП, майнлуп создаётся, когда мы пишем Application.Run(); и доступ к нему через инстанс Application. И вроде как я пробрасывал ссылку на этот инстанс из приложения, в либу. Что-то как-то так было вроде.
2254 2423529
Перекат >>2423030 (OP)
Тред утонул или удален.
Это копия, сохраненная 4 августа 2022 года.

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

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