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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
image101 Кб, 941x1025
C#/Сишарп/.NET Тред #32 /csharp/ 2186992 В конец треда | Веб
Прошлый тред: >>2176736 (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 2186994
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 2186994
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
3 2186996
Спиженные книги на русеке: https://mega.nz/folder/zdoCBLqY#Q6eS_76VECpQZmPmw9vLew

Шапка протухнет к следующему перекату.
4 2187016
Прошлый тред - самый хуевый тред. Одни деды декстопчики, вкатуны со своими квадратами и надменные сениоры, которым лень два слова написать.

Вот бы декстоп нахуй, вкатунов в гугл отправлять и обсуждать себе орхитектуры говно бекендов, эх...
5 2187017
>>187016
+
хейтер залез не под конец, а в середине.

Перекатчик с пхп в шарфы, ты теперь срать будешь вначале треда?
6 2187025
>>187016
>>187017
Вы зумерки, бекенд на шарпе нахуй не нужен. И никогда он не был основным рынком решетки
7 2187039
О. Вот и дед возбудился и начал галлюцинировать:
>>187025
8 2187095
>>186992 (OP)
Сколько по времени учить С#, если я немного умею в питухон и жс?
9 2187106
>>187095
Неизвестно.
Но если айсикью трехзначное, ты мотивирован и будешь 8 часов в день штудировать и развиваться, то через 3 месяца ты будешь лучше половины посетителей этого треда и третины вкатунов. Но именно, что 8+ часов в день тебя будет переть от того, что ты делаешь.
Ты с направлением определись сразу.
Вот может и спорно, но вот прям вчистую учить С# и не надо, можно пройти метаинт, а дальше уже изучать выбранную платформу и по ходу дела задумываться о языке.
10 2187135
>>187106
Я просто открыл роадмап и охерел от количества всего. Пока не вникался что конкретно зачем нужно, но показалось, что 3 месяца - это очень оптимистично. Сам умею немного в ООП, паттерны. На кодварсах решаю задачи на 4-5 кю (на питонах). По другому хз как передать уровень своей некомпетентности.
11 2187142
>>187135
Так блядь роадмап в любой другой платформе будет такой же. Только вместо 1-2 общепризнаных либ как в .нет там будет "выберете сами" или даже "напишете сами" а потом на реальном проекте выучите другое
12 2187416
Ньюфаг, пытаюсь запилить сорт оф записную книжку с Авалонией и МВВМ.

Есть класс Note, состоящий из id, названия, содержания, даты создания и т.п. Где его желательно расположить? В Models?

Где расположить коллекцию, которая будет хранить инстансы Note?

Где распологать всё то, что не относится к интерфейсу? Например проверку нового объект Note перед тем, как внести его в коллекцию, и что-то вроде истории удалённых объектов.
13 2187441
>>187416

>Есть класс Note, состоящий из id, названия, содержания, даты создания и т.п. Где его желательно расположить?


Слой доступа к данным и/или слой домена.

>Где расположить коллекцию, которая будет хранить инстансы Note?


Смотря, где использовать.

>Где распологать всё то, что не относится к интерфейсу?


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

Есть еще другой способ. Наговнить все в одной либе и потом отрефакторить.
image.png591 Кб, 600x521
14 2187454
>>187441

>Слой доступа к данным и/или слой домена.


пикрелейтед.
Можешь примерно описать структуру проекта/солюшена?
Я сейчас думаю как-то так:
проект УИ (по шаблону авалонии):
- Views
- ViewModels
- Models
- Program.cs
- App.axaml
библиотека "ядро" (class library):
- Note.cs
- некий класс, включающий в себя коллецию инстансов Note и всякую логику.

Дальше как я понимаю мне нужна ещё модель NoteModel, похожая на Note, и отдельная коллекция типа List<NoteModel>, которая уже будет выводиться на экран. При этом все изменения некоего класса должны каким-то образом повторяться в List<NoteModel> (на ивентах наверно).
Насколько это херово? Без МВВМ было бы наверно проще, но пусть будет по нему.

>вместо твоей авалонии.


Она тебе не нравится?

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


У меня хоть как выйдет говно, я ж не умею ничего, но хотя бы видимость порядка будет.
15 2187460
>>187454

>Она тебе не нравится?


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

>библиотека "ядро"


Хуевое название, что-то на уровне менеджер или контроллер, делает хуй пойми что. Домен (тоже самое) намного лучше.

>выйдет говно


Считаешь, что все пишут сразу идеальный код? Зачем было тогда придумывать понятие "рефакторинг"? Шанс необходимости рефакторинга можно уменьшить, если все дробить на очень мелкие составляющие, но ты потом заебешься ориентироваться в изобилии абстракций.
16 2187468
>>187460

>Причем здесь это?


Показалось, что она тебе не нравится, не более.

>Хуевое название, что-то на уровне менеджер или контроллер, делает хуй пойми что. Домен (тоже самое) намного лучше.


Ну ядро типа занимается непосредственной работой, а УИ просто оболочка... Я бы назвал как-нибудь типа NotebookCore и второй проект UI, а надо как? NotebookDomain и UIDomain?

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


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

Энивэй, та структура, которую я написал, для начала пойдёт?
17 2187480
>>187468

>Энивэй, та структура, которую я написал, для начала пойдёт?


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

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

>Ну ядро типа занимается непосредственной работой


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

>как всё организовывать по MVVM


Я уже отвечал в треде на похожий вопрос. Твой MVVM - это часть UI и в нем используются вещи, специфические для UI. M - модели UI, V - UI, VM - логика работы UI. Какая разница какой используется UI?

>Я бы назвал как-нибудь типа NotebookCore и второй проект UI, а надо как?


На шарпе общепринято называть неймспейсы и проекты в виде: МояКонторка.ПроектНейм.ХуйняНейм, например ТриКопыта.Блокнот.ДесктопUI. Название проектов еще можно сократить просто до ХуйняНейм, но только в обозревателе решений.
18 2187485
>>187016

>орхитектуры


Давай обсуждать. Как организовать "орхетектуру" десктопного приложения, чтобы оно было по типу консольного (непрерывный поток выполнения с передачей управления, когда это нужно самой программе, а не формочкам), но вписывалось в событийный механизм современных десктопных приложений?
19 2187501
>>187485
Дежурный шизик на месте.
20 2187585
Пасаны, опять вопрос по Хамарину.
Хочу добавить к элементу в stacklayout tapgesturerecognizer, чтоб на новую страницу переходить по нажатию на элемент.
Как только в хамл вставляю для стаклэйоута <StackLayout.GestureRecognizers><> - стаклэйоут перестает реагировать на нажатия. Скроллить могу, нажимать на элементы - нет.
Аналогично для других элементов, если к лейблу присрать - тоже пропадает возможность на него жать
Щито я не так делаю?
Кусок на пастбине https://pastebin.com/HyxeVSbs
21 2187590
>>187585
А тебе там оно в дебаг не пишет ни каких биндинг еррор?
22 2187597
>>187590
Ну вроде везде чисто, ни на что не ругается. Я перебиндил на всякий к команде попроще, по которой явно видно в приложении, что она вызывается - ничего не происходит.

Делаю всё как в примерах
23 2187603
>>187597
Попробуй подцепить метод, а не команду и проверить сработает ли. Мне все таки кажется проблема в биндинге.
24 2187622
>>187603
Неа ничего. Дополнительно выяснилось, что именно наличие тэга <TapGestureRecognizer/> блокирует нажатия, похуй что внутри - пустой, с методом или с командой
25 2187629
>>187622
Мне кажется я наткнулся на вот этот баг https://github.com/xamarin/Xamarin.Forms/issues/5187
Но не очень уверен тащемто
image257 Кб, 1981x536
26 2187653
>>187585
Вполне рабочий код.
27 2187667
>>187653
Скинь пожалуйста целиком вьюху, прошлый раз у меня ничего не работало из-за неё как раз, сравнить хочу
image.png46 Кб, 787x436
29 2188138
>>187653
Нашел решение. Оказывается, биндится по умолчанию не туда и нужно подкостылить, чтоб биндилось к вьюмодели (пикрел)
https://devblogs.microsoft.com/xamarin/5-quick-tips-for-collectionview/
13.png81 Кб, 1510x681
30 2188139
Как имплементировать сюда многострочные коментарии?
31 2188185
>>188138
Странные у тебя проблемы. Я явно показал, откуда берется SearchCommand. Про то, что ты пытаешься вытащить команду из vm, речи не шло. И такое решение будет мешать выделить item в отдельный компонент.
32 2188199
>>188185
Блин сложно. Как раз с таким решением сейчас ищу как item в отдельный элемент выделить, чтоб на новую страницу нужный SearchResponse передавать.
А как тогда лучше сделать это всё, если есть модель (пакет из нюгета, в нем как раз SearchResponse), вьюмодель с командами нужными (в этой же вьюмодели обсёрколлекшн<SearchResponse>) и вью?
33 2188291
>>188199
SearchResponse - это vm. Нет ничего плохого пробрасывать команды.
34 2188301
Когда релиз студии 2022 и дотнет 6? 1 ноября?
35 2188312
>>188301
9-11 ноября.
36 2188522
В впф у меня есть ImageBrush, у которого ImageSource это BitMap. Так вот, первоначально я инициализирую битмап и картинка появляется, всё нормально, но когда я пытаюсь её обновить и заменить на другую картинку, то этого не происходит, чтобы я ни делал. То есть, urisource обновляется, битмап обновляется, но картинка не обновляется. Я уже и кэш отключил у битмапа и всё. В чём может быть проблема?
37 2188532
>>188522

>Маааам! Я рисовал в альбоме красной краской, потом помыл кисточку и набрал зеленой краски, но рисунок в альбоме все равно красный!

38 2188547
>>188532
Ты дурак? Я всё прибиндил нормально
39 2188556
>>188547

>Маааам! Я забиндил нормально! Всмысле уже нарисовано???

40 2188560
>>188547

>Я всё прибиндил нормально


Вот тот чел >>187597 тоже думал, что прибиндил нормально, а потом понял, что обосрался >>188138 . Не будь как тот чел.
500b267ecdbe84696a2d5c0429459b2a.jpg602 Кб, 875x1246
41 2188918
Смотрите. В базе лежит дерево. Классический вид:
id, parentId?, какая-то полезная информация

На фронте нужно:
id, полезная информация, children[]

И в чем проблема. 1. Я бы хотел сразу такую вот няшу получать из базы, но не знаю как это сделать. 2. Если таки буду уже на стороне приложения разворачивать - я не представляю как обойти дерево не используя рекурсию, а говорят что рекурсия - бяка...
Помогите, люди добрые, кто чем может.
42 2188933
>>188918

>id, parentId?, какая-то полезная информация


На фронт отдаешь это, пусть фронт сам ебеться.
43 2188963
Дали разобраться в одной хуйне в .net приложении. Есть таблица email_audit, содержащая информацию об отправленных имейлах (текст, адрес, сс, время отправки). Мне нужно сделать таблицу email_to_note с email id (авто-инкремент инт, берущийся из аудита) и note id (получаю от клиента), чтобы каждый раз когда создавалась запись в email_audit и передавалась note id, то в таблице email_to_note создавалась соответствующая запись. UoW + Repository.
Как можно сделать это красиво? Я просто новичок в этом и не вижу способ как создать запись в таблице email_to_note не вызывая search по email_audit после коммита транзакции в нее.
44 2189220
>>188963
EF используется?
45 2189222
>>188963
Связь one to one. В EF через ссылку на класс в проперти.

Увлекаться с one to one не советую, как и со слепым следованием 3НФ при проектировании базенки.
46 2189346
Можно ли на C# делать игры?
47 2189347
>>189346
https://dotnet.microsoft.com/apps/games/engines

Можешь на канвасе в впф делать ещё
48 2189349
>>189346
Можно. Но тебе надо будет забыть про ООП и изнасиловать себе мозг ECS или его вариациями реализации. Потому что, например, с текстовыми роглайками ECS не работает. ООП с играми в принципе не работает.
49 2189352
>>189347
Им надо эту доку обновить. Потому что на C# можно еще на анриле писать из готовых движков.
50 2189618
>>189349

>ООП с играми в принципе не работает


Хуйню сморозил и доволен.
Посмотри, блядь, код дума 3. Его уже нормальные люди писали и там нормальное такое ООП по всем канонам. Да, не монструозно как в тырпрайзе, но это проблемы не дума, а как раз тарпрайза, в котором в ванг пытаются играть и наделать миллиард слоев НА ВСЯКИЙ СЛУЧАЙ.
51 2189658
>>189618
Научись читать весь текст, а не вырывать из контекста.
52 2189670
>>189658
Что тут, блядь, из контекста вырвано? Ты сморозил хуйню, а теперь жопой виляешь. Хули ты как телка? Обосрался, ну так и скажи: Да, я чмо, на самом деле люблю попиздеть за то в чем не шарю, но я это признаю и понимаю. Не, нужно начинать про какие-то там вырывания из контекста придумывать. Стыд и срам. Подрости, чел. Мужчины - признаются что обосрались и идут дальше с гордо поднятой головой, детишки - прячут голову в песок, думая что так никто говно на штанах не заметит.
53 2189672
>>189670
Скрыл дауна.
54 2189677
>>189672
Ясно. Ты наверное так же на кодревью - ой, ну вы не так поняли, это не говнокод, просто вырвано из контекста, а когда тебе не верят - плачешь и убегаешь. Молодец. Что тут скажешь. Сразу видно будущего тимлида.
55 2189854
Чем шарп отличается от плюсов? Чем пизже чем хуже
56 2189855
>>189854
Чем чай отличается от гречки? Чем пизже чем хуже
57 2190072
>>189854
Шарп работает на виртуальной машине как Джава, а плюсы генерируют код сразу для процессора. В шарпе есть сборщик мусора, а в плюсах убираться за собой надо самому.
58 2190077
>>189854
Второй не нужен, а первый тоже. Получается ничем.
59 2190081
может кто поделиться вопросами с собесов на позицию Fullstack Developer .NET Angular?
60 2190100
>>190081
%н%%е%%т%
61 2190110
Как в OnActionExecuting добавить параметер для урл? например хочу к ссылке добавить параметром какое-то значение из сесии, и что бы это добавлялось автоматически на каждой странице
62 2190116
в гугл уже давно используется таргетированый поиск, а есть ли способ БАНИТЬ сайты из поиска?
тоесть вот есть какой-то сайт, я знаю что это говно полное но гугл раз за разом пихает мне это в первых позициях, могу я навсегда забанить сайт из выдачи?
63 2190160
У меня снова встал вопрос и хуй, но с ним я разобрался. Как правильно организовать кэш в асп нет коре мвц? Вот есть гланге, на которой есть новости-хуёвости и шапка, где есть всякое связанное с аккаунтом. Очевидно, нет смысла каждый раз лезть в базу, выгребать из-нее новости, потом ентити->дто->вьюмодель->html и вот это все на каждый заход на глангу (ну и другие страницы, где контент редко обновляется). Вот этот хтмл можно закешировать для всех на диск или в рам. А вот часть с аккаунтом она у каждого своя. Вобщем как это организовывают те, кто умеет программировать?
64 2190183
>>190072

>плюсы генерируют код сразу для процессора


https://en.wikipedia.org/wiki/C++/CLI

>в плюсах убираться за собой надо самому


С умными указателями не особо-то и надо + ссылка выше.
65 2190185
>>190160
Сколько серверов?
67 2190192
>>190183
Плюс QT тоже по особенному работает.
68 2190197
70 2190202
>>190199
Ну пиздец. Я же не спрашивал где мне хранить кэш. Меня интересует как это организовывают и какие есть стандартные механизмы для этого. Есть же всякие атрибуты, которые можно навесить на экшен. Дожна ли вьюха как-то доставать данные из кэша, или он должен быть полем вьюмодели и вставляться в странице через Html.Raw. Нужно ли хранить строку, сгенерированную через Render, или можно как-то кешировать partialview. И т.д и т.п.
Может где-то есть хороший пример организации этого дела.
71 2190206
>>190202
Нет стандартных механизмов.

>всякие атрибуты


Антипаттерн.
image.png18 Кб, 1232x136
72 2190209
>>190187
Я это находил, но это не работает
73 2190213
>>190206
Ну пиздец х2.

>Нет стандартных механизмов


Но должны же быть какие-то бест практисес и базовые принципы

>Антипаттерн.


Возможно. Но весь мвц на них плотно сидит. Даже есть ResponseCacheAttribute, но я так понимаю это для хттп уровня
74 2190225
>>190209
Атрибут отличается на разных платформах.
75 2190226
>>190213

>Но должны же быть какие-то бест практисес и базовые принципы


У тебя слишком общая задача.
76 2190232
>>190225
ну предположим ActionArguments у меня работает но урл от этого не меняется, а filterContext.RouteData.Values вообще не работает
77 2190241
>>190226
Да куда уж конкретней-то. Не проканало с новостями, тогда другой пример. Есть имиджборда, но не анонимная. Треды читаются на порядки чаще, чем обновляются. Я не хочу на каждый запрос треда дрочить БД и генерировать хтмл. Но при этом не могу полностью перейти на ститачные страницы как двач, потому что есть еще и секция уникальная для каждого пользователя. Как в данном случае грамотно кэшировать общие части?
78 2190242
>>190232
Урл в браузере?
79 2190244
>>190241
Кешировать часть контента. Вопрос все равно общий.
80 2190245
81 2190246
>>190245
Много хочешь. Жабаскрипт в помощь.
82 2190248
>>190244

>Кешировать часть контента



>Как организовать кэширование контента в приложении?


>Нужно кэшировать!


Ну пиздец х3.

> Вопрос все равно общий.


Ну давай я уточню. Какой информации не хватает?
83 2190253
>>190241
Подписался на вопрос.
Можно кешировать бизнессслой, просто в инмемори запихивать ентити. Плюс: чисто, можно организовать граммотно ивалидацию. Минусы: ну таки это не кеш хтмла готового. Но я думаю, что все равно должно летать.
Можно кешировать веб апи. Плюсы: да, наверное проще. Если бизнесалой сложный и не требует внутреннего кеширования, то мен ше шансов проебаться.
Где то видел годную статью, лень гуглить, поищи на офф сайте майков.
Я.бы, если нет супер.хайлоада, но есть немного времени заморочится, бизнесслой кешировал бы.
84 2190256
>>190248
Не хватает стека технологии. Очевидно, что если ты используешь SPA на фронте, то контент не надо и кешировать, и вообще запрашивать. В противном случае, более общее решение сохранять в оперативной памяти или в редисе. Если используется кор, то делается через мидлварь. Через атрибут тоже можно сделать, но будут проблемы с иоком и необходимо реализовывать аналог диспатчера. Более же извращенное решение можно найти например в CQRS, когда в базе данных находится красивая схема (с 5 нормальной формой например) или вообще event store, а данные кешируются в дополнительной базе данных (обычно приводится в пример MongoDB) вообще без нормализации, без реляционных зависимостей и в более вольной форме.

Любое решение можно реализовать самому, найти готовый пакет или сделать по образу и подобию.
85 2190258
>>190256
Если используется облако, то cdn или что-то похожее на лоад балансер - тоже решение.
86 2190265
>>190258
Ну, а если ты совсем изврат, то Akka или Orleans.
87 2190268
>>190265
И я тут еще немного подумал, и кешировать можно в обратном прокси. Кароче ты понел.
88 2190269
>>190253
Примерно так и планировал. Думал сделать прокси для сервисов, которые работают с бд, так у меня будет возможность инвалидировать кэш при создании постов (если продолжать аналогию с двачем) без размазывания логики по разным местам. По идее разор компилируется во что-то промежуточное и оптимизированное и сильной просадки при генерации ответа не должно быть. Хотя кэшировать отрендеренный партиалвью тоже заманчиво.
>>190256
Написал же в самом начале обычный asp core mvc.

> Очевидно, что если ты используешь SPA на фронте, то контент не надо и кешировать, и вообще запрашивать.


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

>сохранять в оперативной памяти или в редисе


Да какая разница где кэш хранить. Вопрос то всё еще не про это.

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


А по-подробнее? Вот есть сгенерированный ответ от контроллера с динамическими данными, как туда вставить закешированную часть?
>>190258
Ну это если через ajax грузить страницу частями, а если клиенту уходит готовая страница нельзя же отдать одному челу страницу с данными аккаунта от другого.
89 2190281
>>190269

>Хотя кэшировать отрендеренный партиалвью тоже заманчиво.


PartialView можно кешировать.

>Зачем 100 раз лезть в базу


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

>И я не понял что значит не запрашивать данные?


Зачем клиенту запрашивать одно и тоже по несколько раз? Оставляешь MVC и часть запросов реализовываешь как WebAPI по условию, например.

>Да какая разница где кэш хранить.


От способа хранения кеша отличается и реализация. На фронте есть например localStorage.

>как туда вставить закешированную часть?


Берешь и вставляешь по условию или по типу реквеста, в чем проблема? У тебя мидлвари по цепочке вызываются. Если данные надо достать из кеша, прерываешь цепочку.

>Ну это если через ajax


Нет, ты не понял, что это. К ajax это не имеет никакого отношения. У тебя добавляется дополнительный сервер между фронтом и твоим основным сервером.
90 2190288
>>190281

>PartialView можно кешировать.


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

>Зачем клиенту запрашивать одно и тоже по несколько раз?


Не клиенту 100 раз, а 100 клиентов зайдут на страницу. Ну или клиент нажмет 100 раз ctrl+f5.

>реализовываешь как WebAPI


Ну переписывать на вебапи + фронт это уже перебор. Задача не такая сложная чтоб так радикально все перекраивать хД.>>190281

>На фронте есть например localStorage


Да не про какой пронт никто и не говорил, нету никакого фронта.
>>190281

>Берешь и вставляешь по условию или по типу реквеста, в чем проблема?


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

>Если данные надо достать из кеша, прерываешь цепочку.


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

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


И как он мне поможет, если без аякса? Страница-то должна придти целой. Что мне промежуточный сервер закеширует данные другого пользователя?
91 2190293
>>190288

>Задача не такая сложная


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

>Не клиенту 100 раз, а 100 клиентов зайдут на страницу. Ну или клиент нажмет 100 раз ctrl+f5.


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

>его кешировать в виде отрендеренного хтмл в виде строки или есть другие способы


В виде строки. Зачем тебе другие варианты?

>Задача не такая сложная



>В том что нельзя менять уже готовый ответ?


Нет, как только я пишу про детали реализации, ты пишешь

>>Да какая разница где кэш хранить.



>Страница-то должна придти целой.


Ты еще не понял, что страницу надо делить на части?
92 2190309
>>190293
Потом выяснится, что твой кеш ненужен был, потому что 100 клиентов на страницу - пук в воздух.
93 2190315
>>190293

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


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

>CQRS


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

>Где не подходит


>В небольших приложениях/системах;


>В преимущественно CRUD-приложениях.


А это краткое описание борды.

>Ты еще не понял, что страницу надо делить на части?


Так как её поделить? На сервере поделено на partialview. На клиенте браузер с NoJs. Мои действия?
>>190293

>В виде строки. Зачем тебе другие варианты?


Мало ли есть что-то о чем я не знаю.

>Нет, как только я пишу про детали реализации, ты пишешь


>Да какая разница где кэш хранить.


Какая разница относиться, к тому хранить ли кэш в файле, оперативе или бд, мне кажется разницы быть не должно (я не про скорость, а про обращение с кэшем). Но вот как через мидлварь в страницу, которую создал контроллер вставить данные из кеша я с радостью почитаю.
94 2190319
>>190315

>Так как её поделить? На сервере поделено на partialview.


PartialView и есть деление, только на стороне сервера. Кешируешь PartialView например как [OutputCache(Duration = 10)]. Хз, что тебе еще надо.

>Мало ли есть что-то о чем я не знаю


>мне кажется разницы быть не должно


Ну, если ты своей интуиции веришь больше. Хули спрашиваешь тогда?
95 2190325
>>190319

>[OutputCache(Duration = 10)]. Хз, что тебе еще надо.


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

>Ну, если ты своей интуиции веришь больше. Хули спрашиваешь тогда?


Ну если есть разница, в чем она? Пусть будет кэш в оперативе.
96 2190328
>>190325

>А этот кэш можно вручную инвалидировать а не по таймеру?


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

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


Кеш в оперативке не будет работать:
- с двумя серверами
- с большим количеством данных
- с высокой нагрузкой, особенно, если данные шарятся между пользователями
Это только то, что я приводил в качестве примеров, остальное найдешь сам.
97 2190331
>>190328

>Я тебе сразу написал


Да ты в основном хрень какую-то несешь слабосвязанную с моим вопросом или же капитанишь. Вот тот анон >>190253 написал коротко и по делу
98 2190333
>>190331

>в основном хрень


Да ты охренел. Про инмемори - это мой самый первый пост. Иди нахер.
99 2190336
>>190333
Хоть инмемори, хоть инфайл. Вопрос-то не об этом.
100 2190349
>>190336
А в чем? Разбил на части, сохранил нужную часть, очистил когда надо. У тебя изначально дерьмовая архитектура и ты нехуя не понимаешь в программировании, раз рассматриваешь вопрос о добавлении сервисов и мнишь, что все знаешь.
101 2190370
>>190349
Мань, не бомби. Я не собираюсь заходить на пятый круг в попытках разъяснить тебе вопрос, тем более, что есть уже тот, кто понял.

> Разбил на части, сохранил нужную часть, очистил когда надо


И закешировать! Ты опять пишешь очевидные вещи.

>не понимаешь в программировании


Я думал, я не двусмысленно на это намекнул в первом своем сообщении.

>Вобщем как это организовывают те, кто умеет программировать?


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

>изначально дерьмовая архитектура


То ты не можешь понять что за стек у меня, когда я сразу написал asp core mvc, начал нести чушь мимо кассы, а тут прям не видя ничего всё прнюхал. Браво.

>раз рассматриваешь вопрос о добавлении сервисов и мнишь


Ну да профи сервисы не добавляют хД

>что все знаешь.


Тебе показалось. Но очевидную чушь могу увидеть.
Чао.
102 2190377
>>190370

>И закешировать! Ты опять пишешь очевидные вещи.


Ты спрашиваешь очевидные вещи. Реализовал кеширование и сброс кеша по условию, сохранять умеет в любое место: https://pastebin.com/KLd7hLp0
Точно так же выглядит код без кеширования.
image.png32 Кб, 774x282
103 2190386
Почему у меня здесь луп?
104 2190390
>>190386
Из-за редиректа.
image.png26 Кб, 676x223
105 2190393
>>190390
Боже мой, эта пятница, мозг уже вообще не сображает
106 2190589
>>186992 (OP)
БЛЯДЬ, КАК ЖЕ СТУДИЯ ЗАЕБАЛА ПРОЕБЫВАТЬ ПРОФИЛЬ!
ПИЗДЕЦ СУКА НАХУЙ БЛЯДЬ, КАЖДУЮ ЕБАНУЮ ВЕРСИЮ ОНИ ДЕЛАЮТ ОДНО И ТО ЖЕ ГОВНО!
СУКА, СКОЛЬКО МОЖНО УЖЕ БЛЯДЬ СВАЛИВАТЬСЯ В ЭТИ ВЫРВИГЛАЗНЫЕ СИНИЕ ПИЗДЕЦЫ!
ПОСЛЕ КАЖДОГО ПЕРЕЗАПУСКА, БЛЯДЬ, ДАЖЕ ПОСЛЕ ПЛАНОВОГО, ВЫПОЛНЕННОГО ЧЕРЕЗ ЗАКРЫТИЕ ПРОЕКТА И МЕНЮШКУ ВЫХОДА!
ДВЕНАДЦАТАЯ, ЧЕТЫРНАДЦАТАЯ, ПЯТНАДЦАТАЯ, ШЕСТНАДЦАТАЯ, А ТЕПЕРЬ ЕЩЕ И БЕТКА СЕМНАДЦАТОЙ!
БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ!
107 2190596
>>189618

>код дума 3


https://pvs-studio.com/ru/blog/posts/cpp/0120/
Говнище, отдаленно напоминающее ООП. Больше похоже на структурное программирование с километровыми классами и дублированием кода. В свое время игра была очень прожорливая.

Один только хедер для плеера на 1000 строк кода
https://github.com/TTimo/doom3.gpl/tree/master/neo/game

Код на 9000 строк кода
https://github.com/TTimo/doom3.gpl/blob/master/neo/game/Player.cpp
108 2190601
>>190589
Rider жиии есть!
109 2190616
>>190601

> Променять одно говно на другое



Охуенный план. Почему бы просто студии не перестать проебывать профили? За нее по крайней мере уже уплочено.
110 2190623
>>190616
У райдера есть тоже свои косяки. В будущем, при переходе на х64, студия будет жрать в разы больше оперативки.
111 2190625
>>190623
Да пусть жрет, оперативы как говна. А вот нервов на удаление .vs осталось мало.
113 2191191
>>190623
Студия перегружена менюшками и кнопочками. Вот чтобы создать просто файлик, надо открыть меню, перейти в подменю, открывается доп. окно с выбором миллионов типов файлов и только тогда можешь создать файлик. В том же VS Code - это делается 1 кнопкой за 1 нажатие.
114 2191216
>>191183
Опять майки залили говна 2% красноглазиков на линуксах
115 2191236
>>191216
Это большой минус для тех, кто использует блейзор. Использовать дебаг/релоад для обычных приложений не есть гуд. На тему, когда выкатывают новую фичу, не надо сразу бежать и переписывать на нее легаси код.
116 2191391
>>191236
О чём там речь воообще?
117 2191397
Изучил C#, а ASP.NET не получается изучить. В нём всё максимально не понятно и не очевидно. Пока идёшь по учебнику, вроде бы всё работает. Но стоит попробовать шаг влево/шаг вправо и сразу наталкиваешься на проблемы.
Как вы изучали ASP.NET? Нравится ли он вам вообще?
118 2191410
>>191397
Читай дальше.
Если чета не понимаешь пиосто забей. Через неделю вернись и мнова прочитай.
Асп нет коре мвц очень логичен.
Что именно тебе не понятно?
119 2191465
>>191391
Втихаря удалили фичу из релиз кандидата.
120 2191594
>>191410
На РНР из простых элементов как из кубиков можно написать свой движок любой сложности. И соответственно все движки используют такой же функционал. В итоге зная синтаксис языка, легко понимаешь фреймворк.
В ASP.NET же используется какой-то надъязык над C#, т.е. повторить в консольном приложении этот фреймворк невозможно. Приходится изучать совершенно новую среду, отличную от консоли и со своими жесткими требованиями.
Стикер511 Кб, 512x409
121 2191600
Пацаны, ASP.NET запускается в консольном приложении, но я повторю:

>В ASP.NET же используется какой-то надъязык над C#, т.е. повторить в консольном приложении этот фреймворк невозможно. Приходится изучать совершенно новую среду, отличную от консоли и со своими жесткими требованиями.

122 2191604
>>191600
И что? Ты писал на шарпе свой движок, просто в пустом консольном проекте начал писать и написал?
Я вот на РНР писал свой движок и на нём базу абонентов для одной конторы. И мне даже заплатили за это, хотя на тот момент я был вообще зеленым студентом.
image33 Кб, 520x104
123 2191609
124 2191712
Нихуя не понимаю. Есть asp net core проект. Сделал Add -> Docker support. Появилось 2 фала Dokerfile в папке проекта и .dockerignore в папке солюшена. В игнор добавил
/proj-name/wwwroot/shityshit
После запуска в образе, лежит папка shityshit со всеми файлами. Как правильно добавить исключить её из образа?
125 2191723
>>191712
Удали первый слеш.
126 2191732
>>191723
Да там две звездочки макаба съела. Вроде работает, если запускать в релиз моде, а при дебаге студия игнорирут файл.
127 2191757
>>191732
Приколы самой студии, через docker build . все работает.
128 2191788
>>191594
// Создаем "слушателя" для указанного порта
Listener = new TcpListener(IPAddress.Any, Port);
Listener.Start(); // Запускаем его

И повторяй что хочешь.
В ASP Net за тебя уже все сделали.
А надъязык это ты про что?
129 2191811
>>191183
>>191216
На фичу как таковую всем похуй, здесь важен факт что МС в очередной раз вертит комьюнити на хую, рекомендую перекатываться на ГОвно \ питухон \ ноду
Типичный мс в очередной раз обосрался, кто бы мог подумать
130 2191815
>>191811

>ГОвно


Говно.

>питухон


Говно.

>ноду


Говно, автору стыдно.
131 2191816
Хочу реализовать динамический поиск по коллекции моих объектов.
Т.е будет текстовое поле куда я могу написать Name.StartWith("Jonh") && Age >= 40 && Salary < 10000
Т.е как будто я использую linq, но не из кода, а прям в рантайме в текст бокс пишу. Хочу не наивную реализацию где я каждое свойство/поле сам хардкодом забью, а чтобы если я изменил объект и добавил скажем Gender, мне не пришлось для этого еще писать код. Куда копать? Уверен есть какие-то готовые реализации, но знания не позволяют даже выйти на правильное гугление.
132 2191820
>>191816
FluentValidation

>Name.StartWith("Jonh")


Культура потерялась.
133 2191825
Тьфю бля, у тебя поиск. Оставь так.
134 2191844
>>191820
Посмотрел, но это же вроде только из кода, а я хочу уже из приложения.
Что-то типа такого вот хочу https://docs.picotorrent.org/en/master/pql.html
Хочу фильтровать коллекции по тому что в свойствах и делать комплексные правила без миллиона чекбоксов.
Слегка усложню предыдущий пример.
Name.StartWith("Jonh") && Age >= 40 && (Salary < 10000 || Status=="Director")
И чтобы это все писалось в уже в готовой программе в чекбоксе.
135 2191859
>>191844
Своя дсл шоле? FluentValidation генерит рулсеты, которые можно кастить во что хочешь. Если у тебя жопаскрипт, есть готовая либа, которая кастит стандартные рулы и можно своим говноподелием расширять.
136 2191875
>>191859
Перефразирую чего я хочу, так как мы вроде бы не понимаем друг друга.
Я вот не понял что такое дсл.
Вот есть у меня консольное приложение в нем коллекция из 100500
public class Customer {
public int Id { get; set; }
public string Surname { get; set; }
public string Forename { get; set; }
public decimal Discount { get; set; }
public string Address { get; set; }
}
Я хочу иметь возможность написать обычной строкой НЕ В КОДЕ, вот такое
Surname.StartWith("Jonh") && Id > 1000 && (Address == "NY" || Discount < 50)
и на выходе чтобы оно мне дало коллекцию именно поэтому правилу.
Все это тупо строчка приходящая в консоль из ReadLine().
Только затем я хочу иметь возможно добавить скажем еще одно свойство
public bool Gender {get;set;}
И чтобы добавив тупо эту строчку мне больше ничего не нужно было писать в программе, а я смог строкой передать
Surname.StartWith("Jonh") && Id > 1000 && (Address == "NY" || Discount < 50) && Gender==true
137 2191878
>>191875
Дсл https://ru.wikipedia.org/wiki/Предметно-ориентированный_язык

Алгоритм:
1. описываешь формальный грамматику через бнф
2. строишь лексический анализатор
3. строишь синтаксическое дерево
4. визитёром обходишь дерево и выполняешь действие

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

б) В фшарпе это дерьмо сильнее развито. Есть много разных либ типа FParsec. Пишется за 1-2 часа на что-то из примера. Для тебя писать не собираюсь.

в) Так как у тебя чистый шарп, можно изъебнуться:
в.1) Загрузить в аппдомен в рантайме кусок шарпа и выполнить.
в.2) Есть ответление розлина - шарп скрипт. На нем все делается за 5-10 строк кода, но он то еще дерьмище. Прожорливое и хер пойми как аппдомен выгрузить.
138 2191882
Нехуя себе, думал грамматика на шарп давно протухла https://github.com/antlr/grammars-v4/tree/master/csharp
Только шестой шарп осилили.
139 2191891
>>191875
Такое еще есть, но хуй знает можно там твой случай сделать или нет
https://github.com/mparlak/Flee
140 2191913
tldr: Live share в VS с WPF проектом не работает, или работает хуево. Кто сталкивался с таким? Или есть другие варианты где можно нормально работать над одним проектом в реальном времени?

Вопросец, но он больше связан с самим VS
Вводные:

>Надо кое как над одним проектом работать


>Опа, Live Share, спасибо pajeetsoft


>Так ебана wpf значит нахуй xaml ебать нахуй тааак ну ка окно Designer(где собственно гуи и формочки надо пилить)


>Второй человек присоединлся к сессии


А теперь сама проблема: где Designer блять. Хост сессии (я) конечно его вижу, в среде легко нахожу и перемещаю. У гостя нихуя, вот как блять работать если он сам даже открыть или посмотреть собственно окно с графикой не может. Че за нахуй.

>Дефолтная комбинация шифт-F7 не работает


>Нет панельки снизу справа маленькой где можно например вертикально разделить окна, и там как раз и окно designer появляется


>нет специальгого окна где от кода xaml можно перейти сразу к окну designer


>в настройках text editor и xaml стоят обычные настройки, при это гость сам у себя конечно-же может проделывать всё то, что не может в сессии live share. VS обновлены.

141 2192163
Собственно вопрос не особо относится к треду(за исключением языка, лол), но задам.
Суть: я n-лет работал в смежном поприще - коллектив(в рамках фирмы) один и тот же, перекатываюсь в разрабы, и есть подозрение что код-ревью в любой другой конторе для меня будет намного менее болезненным, чем в этой. Просто потому что в прошлой роли я хорош, а в этой пока нет, но социальные связи уже образовались. Думаю дропнуть нахуй, и перекатиться в другую фирму, только мне кажется это не очень рациональным - дропать чисто чтобы мне было спокойнее, лол.
142 2192243
>>192163
Уже есть офферы? А то без опыта не очень то много предложений. Я бы поработал год на текущем месте. Во-первых, ты не знаешь наверняка как оно будет тут, а во-вторых, опыт. Но если будут душить, то конечно надо дропать.
143 2192329
Почему ньютонсофтовский JsonConvert.SerializeObject может возвращать пустую строку? Пытаюсь записать словарь с ключом, который представляет собой кортеж, написал под это свой класс конвертера, на пикрелейтедах как пользуюсь им и как выглядит метод записи в самом конвертере.
144 2192567
Аноны, что можно на asp.net core сделать (чисто бэкенд часть), чтобы свои знания закрепить? А то я читаю статьи и мне кажется, что из головы вылетает, хоть я и перечитываю их
145 2192602
>>192329
Чекни в дебагере, что у тебя в value приходит?
146 2192733
>>192602
Приходит словарь, как и должен. В похожих вопросах на стаке в основном речь заходит об экземплярах классов, о словарях или каких-нибудь других структурах вопросов нет или не нагуглил
147 2192745
>>192567
Сделай двач.
148 2192843
>>192745
бля, я уже делал имиджборду, ток на mvc 5
149 2192900
>>192843
покажи
150 2192906
Я заметил, что после 2019 резко перестали переводить новые книги. Зарубежом выходит масса книг по .Net, а у нас ничего не издаётся.
151 2192914
>>192906
А кто их купит-то? Переводят мажорные версии, а то пока переводишь книгу по нет5, уже напишут по нет6. А кому база нужна, тому и по 3,1 подойдет.
152 2192951
>>190390
>>190390
Хорошо, я действительно не понимаю как работает инвок, что бы я не делал я получаю бесконечный луп, почему так?
153 2192964
В ЛогинАсинк попадает? Если нет, то очевидно, луп такой:
зпрос->инвокеасинк->редирект->зпрос->инвокеасинк->редирект->...
image.png37 Кб, 733x344
154 2192965
>>192964
В логин попадает если сделать вот так, луп при этом продолжается
155 2192968
>>192965
Что поменялось?
image.png8 Кб, 673x85
156 2192970
>>192968
инвоке теперь перед ретурном
157 2192973
>>192965
А при заходе в логин какой луп? Внутри сервера или браузер все равно дрочит запросами?
158 2192976
>>192973
в логине же нет никакого лупа, по хорошему он должен вернуть вьющку и на это все, я не понимаю в чем проблема
159 2192987
>>192976

>луп при этом продолжается


>нет никакого лупа


Хм..
Так есть луп, когда в логин попадает или нет?
160 2192999
>>192987
я иммею ввиду что он сполкойно возвращает вьюшку, тоесть буквально он входит в вьюшку и рендерит хтмл а потом все по новой, как такое возможно?
161 2193004
>>192999

>Внутри сервера или браузер все равно дрочит запросами?

162 2193011
>>193004
так что происходит, пофиксить как?
163 2193018
>>193011
Это я у тебя спрашиваю что у тебя происходит.
164 2193019
Наверное платина, но спрошу, чем же все таки отличается мидл от сеньера.

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

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

Может конечно дело в том что в рф требования к спецам выше чем в европе. И спрашивать даже у джуна что такое потоковое голодание и кластеризованный индекс это норма.
165 2193024
>>193018
откуда мне знать? если бы я знал откуда взялся этот луп я бы не пришел сюда, я отправил все скрины, написал как это работает сейчас, заходит в логин. возвращает страницуи даже рендерит ее, при этом в браузере она не появляется, сразу после того как рендер заканчивается начинается следуйщий инвоке
166 2193025
>>193004
что значит вообще

>браузер все равно дрочит запросами?

167 2193027
>>193024

>откуда мне знать?


F12 в браузере, не?

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


Вот я у тебя и спрашиваю, луп исключительно на сервере или браузер шлет постоянно новые запросы?
168 2193038
>>192733
Тогда куда метод serialize должен пихать строку? Возвращает ли он что-то?
169 2193039
>>193019

>чем же все таки отличается мидл от сеньера


Стажем, зарплатой.
170 2193112
>>193039

>зарплатой


Ну такое. Зарплата это весьма гибкая вещь, сильно зависящая от того насколько кабану горит закрыть дыру в штате. Я знаю и мидлов которые в втб по 300к получают, так и сеньеров которые 200к еле еле выпрашивают на галерах.

>Стажем


Это тоже такой себе критерий. Можно в какой-нибудь госхуйне wpf годами пердолить. А можно за пару лет в каком-нибудь стартапе с хорошим ментором охуенно задрочиться.

Вот напрямую спрошу, я вот считаю себя крепким мидлом. Что мне мешает заявлять себя как сеньера? Навыдумывать себе кейсов, и докинуть годик-два опыта? По каким ключевым вопросам меня могут вывести на чистую воду?
171 2193121
>>193112
Ты же понимаешь, что эти градации разные в каждой компании? Можешь назвать себя сеньером, где-то пройдешь, а где-то на мидла со скрипом. Плюс очень зависит от релевантности опыта, можешь быть джава сеньером, но в компании, которая промышляет заскелем возьмут джуном авансом.
172 2193222
>>193038
Serialize пихает строку в writer, который JsonWriter. Судя по отладчику, он меняется относительно начального состояния, но данных в нём нужных нет. Сам класс вообще написал по примеру с доков ньютонсофта.
173 2193280
>>193222
А какая у тебя вообще должна быть структура жсона для твоего словаря? Сам по себе словарь должен быть большим объектом, а именами атрибутов ты пытаешься сделать кортежи? Не проще ли создать какой-то класс, который бы представлял структуру жсона, потом сделать перевод твоего словаря в объект этого класса и потом уже сериализовать этот объект?
174 2193451
Вот бы пишите десктоп умер, сейчас всё в веб. Дак и зачем тогда нужен C# в вебе? Ведь веб-приложение пишется всё равно на javascript, а не на C#. Получается как раз сила C# в десктопе, потому что можно писать сравнительно просто такие приложения.
175 2193456
>>193280
Сделал класс со структурой жсона, всё заработало, код чище стал. Спасибо, анон!
176 2193488
>>193451
Жир потек.
177 2193497
>>193019
Так бля они одно и то же спрашивают ВСЕХ.
Жунов даже пуще дрючат, с синивором могут за жизнь потереть и все, а жуна ебать "игрой в компилятор" и архитектурой.
178 2193499
>>193451
Ну да. Фулстек это норм.
Кор + онгуляр = выбор мужчин честной судьбы.
179 2193500
>>186992 (OP)
А что его обсирать?
Это делают майкрасофт дважды за месяц с разницей в 2 недели

https://www.theregister.com/2021/10/05/microsoft_net_foundation_under_fire/

https://www.theverge.com/2021/10/22/22740701/microsoft-dotnet-hot-reload-removal-decision-open-source

И рыночек - смотреть на зарплаты - https://habr.com/ru/company/getmeit/blog/585398/

перепощу из соседнего треда

зачем вы вкатываетесь в это говно?
180 2193511
>>186992 (OP)
Как проверить, эскапнута ли строчка жсоном или унескапнута?
Вот пример: https://rextester.com/UTLTOA70159
надо отличить str от json, где спецсимволы и вся хуйня эскапнута, а в str и str2 она унэскапнута.
181 2193522
>>193500
Начнем с того, что говно тут только ты.
ЗП - норм, даже по твоей ссылке.
Весь вой поднялся из-за одной новой фичи. Пиздец горе.
Мне вот вообще пахую на этот хотрелоад из сосноли.
Попенсорс и не такую хуйню видел. Начиная от заброшек, заканчивая переводом на анальную лицензию.
182 2193535
>>193511
Ну так при сериализации оно еще раз ескейпится, глянь в дебаге, у тебя там походу двойные бекслеши в JsonString.
Не понятно, что ты хочешь и зачем.
183 2193543
>>193500
А что не так с зп? Или не на первом месте = говно?
Вообще зп на шарпе, как и на плюсах, зачастую разбавляется заводчанами, которые варятся в своём мирке, уволиться никуда по этой причине не могут, и соответственно требовать повышения зп не могут, поэтому и работают годами за 60-90к.
184 2193559
>>186996
Плюс в карму, братан.
185 2193573
>>193522

>Весь вой поднялся из-за одной новой фичи. Пиздец горе.


>



1) в .net foundation половина важных шишек это менеджеры из МС
2) манагерка зашла и закоммитила в репозиторий не читая code conduct, попросили переделать - сказала что я тут мейнтеина репозиторий (послала нахуй) и сама апрувнула и вмержила изменения
3) у проектов которые входят в .net foundation взяли и сменили лицензию
4) потерли фичу и обосравшись вернули назад с попытками damage control ВЫ НЕТ АК ПОНЧЯЛИ

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

>>193522

>ЗП - норм, даже по твоей ссылке.


>ниже только у пхп


>ЗП НОРМ



1) средняя зп в штатах и рф дно (спасибо VBA, Unity)
2) вы смотрите на среднюю когда смотреть еще нужно на диапазон
3) то что зп ниже только у php вас не смущает?
186 2193575
>>193535

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


Ткни кнопочку "Run it (F8)", там видно всю хуйню.

>Не понятно, что ты хочешь и зачем.


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

Изначально, я хотел просто писать текст в виде JSON-значения, внутри файла.
Но текст, может содержать символы ", ', :, [, { которые являются JSON-символами.
И ещё, этот текст может содержать символы сброса строки CR, LF, CRLF, и прочие ёба-символы.

Да, можно тупо прописать utf-8 байты в base64 и не ебать себе мозг...
Но я хочу, чтобы, внутри JSON'а, текст был человекочитаемым.
Лучший вариант, это эскапить всё говно (какое, я пока не знаю, какие спецсимволы, блядь).
И судя по всему, метод JSONConvert вполне себе норм эскапает бекслешами, всю эту парашню ебучую.

Однако, если надо унескапнуть назад,
то надо знать, где строчка ескапнутая, а где унескапнутая.
ПОтому что в JSON-файле, может быть нечто наподобие:
"C:\blyadina\tupaya"
и тогда, \b и \t соответственно, унескапнется в бекспейс и табуляцию,
чего моё величество не возжелало бы, от слова совсем.
187 2193578
>>193573

>3) у проектов которые входят в .net foundation взяли и сменили лицензию


Так это попенсорсники и сменили, а не майки же, не?

>1, 2, 4


Пахую. Какие-то десткие разборки.

>а вот шизам которые стартуют проекты будет проще обосновать фаундерам почему дотнет брать не стоит


Ну только идейным попенсорсникам, что ли. Да и вообще, как обычно идет "обоснование", у кабана есть 5 рыл на .нет - "Обосновываем" .нет. 5 рыл на жаве - жаву. 5 рыл геев - берем ГО. 5 рыл пожилых геев - ноду.
image.png16 Кб, 900x114
188 2193586
>>193575
В дебаге смотри.
Сериализорваная стринга, внезапно, начинается с ескейпленых кавычек.

А почему ты н еможешь знать явно по какому-то призначу что у тебя?
Можешь пытаться десерилизовать, если она не "заескейплена", то ексепшн выборосит.
Но похоже, что ты идешь куда-то не туда и тебе надо как-то глобальную задачу решать иначе.
189 2193607
>>193575
По кавычкам задетектить можно, походу:
https://rextester.com/JVRTH25447
Но это не совсем то. Что если кавычки обрезаются?

>Можешь пытаться десерилизовать, если она не "заескейплена", то ексепшн выборосит.


Вот, это вроде заебись критерий: https://rextester.com/ODUL66872
Но он работает когда кавычки есть в начале и в конце.
А они могут обрезаться...
Значит, надо будет их просто добавить, если они обрезаются.

>Но похоже, что ты идешь куда-то не туда


>и тебе надо как-то глобальную задачу решать иначе.


Мне просто надо было отличить ескапнутую бекслешами строчку от унескапнутой,
потому что они будут браться из жсон-файла,
а этот файл можно писать руками, безо всяких бекслешей внутри.
Например "мой охуеннейший текст внутри жсона. Он не содержит никаких ебучих кавычек, и вообще даже символа сброса строки. И в этой строчке, у меня, внезапно путь C:\random\nasasyvanie".
Вот с такой строчкой надо знать как работать, унескапать \r и \n там, или же нет.
190 2193659
>>193578
Нет, сменили именно менеджеры маек которые в .net foundation
191 2193660
>>193573
Как можно было так себе поднасрать перед выпуском net6
192 2193706
>>193660
Тем временем Oracle вернула бесплатное коммерческое использование и поддержку до следующего lts + год для Oracle JDK (не путать с OpenJDK, которая под GPL и всегда бесплатна) https://habr.com/ru/company/haulmont/blog/577966/
193 2193735
>>193499
Ты можешь отправить html страничку с javascript через любой веб-сервер и C# там вообще не нужен.
194 2193766
>>193735
C# > Node.js
195 2193776
>>193766
Сейчас бэкенд - это обёртка над базой данных. Почти во всех книгах по ASP.NET рассматривается один и тот же пример с онлайн-магазином, где модель просто возвращает список товаров. Получается, что клиенту достаточно послать этот список в удобном формате (json или xml), а он уже сам отобразит это красивенько. Поэтому View-модуль устарел и не нужен, его смело можно заменить на клиенте.
196 2193819
>>193706
Пока не перешли на жаба 17, не вернули. У некоторых нет жаба 11 даж.
197 2193822
>>193776
Веб - не только круды над базой данных.
198 2193850
>>193706
Все равно джаву больше не используют для новых проектов
199 2193960
Бродя по телекоммуникационной сети "Интернет" я набрел на один сайт, у которого в подвале нашел такую весч:

>Took 0.02 seconds (db:0.01) and 2.00MB of RAM; Used 276 files and 14 queries; Sent 13 events; 0 cache hits and 6 misses


И мне прям захотелось, аж засвербило, себе на сайт сделать плюс минус такое-же. Вот и вопрос, а как?
Первое что пришло в голову (после мочи), это поставить мидлварю, которая запишет время начала запроса, а потом во вьюхе сравнить время. Вроде ок. Но во-первых, что если я хочу отобразить время где-то в верхней части страницы? Т.е. вьюха посчита время, а генерация остальной части заняла еще в два раза больше времени? Во-вторых, а как засеч время выполнения запросов к бд? Обвешивать все запросы стопвотчами и складывать время? Это же будет размазано по всему приложению. Может ЕФ уже имеет что-то для этого? В-третьих, а как RAM посчитать и остальное?
Если уж грязный пхпшник такое сделал, то неужели для дотнет господ это будет сложно?
200 2193967
>>186992 (OP)
Помогите по-братски. Использую библиотеку dislin но видимо я неправильно её подключил. В нугете её не было я нашёл и скачал какой-то файл через ftp, в ахуе, в первые такое видел, потом через консоль прописал в папке сетап и вроде че-то установилось, папку даже выбрал как и было написано в readme, тоже в ахуе с этого, никогда этой консолью ничего не сетапил, потом вижу эту папку с библиотекой и закидываю её в проект, просто перетягиваю мышкой папку, мне кажется возможно здесь я сделал че-то не так, надо было именно длл как-то добавить? просто когда длл перетянул там пусто че-то.
Теперь тут ошибка что мол не может длл загрузить. А че не так?
Делаю по гайду с хабра https://habr.com/ru/post/125611/
image.png77 Кб, 1890x825
201 2193968
>>193967
вот когда просто длл перетягиваю тут пусто как-то, видимо что-то не то
202 2193971
>>193967
ПКМ по проекту -> add -> reference -> ищещь свою дллллллл
2021-10-26 15-43-25.mkv3,4 Мб, webm,
1920x1080, 0:15
203 2193977
>>193971
А потом что? У меня все равно не грузит че-то
Безымянный.png4 Кб, 417x205
204 2193984
>>193977

>А потом что?


ХЗ.
У тебя что за проект, коре? Статья-то 2011 года, там дай б-г FW4 чтоб использовался.
2021-10-26 15-43-25.mp41,9 Мб, mp4,
1920x1080, 0:15
205 2193986
>>193984
Ладно, реально залупа какая-то, придется другую библиотеку искать.
206 2193991
>>193986
Так тебе disInk_d подключать не надо. disInk_d используется desnet'ом и должна лежать рядом с disink'ом/
207 2194015
>>193991
Да там даже если одну длл подключаешь ошибку выводит
208 2194021
>>193960

>если я хочу отобразить время где-то в верхней части страницы?


Декорируешь класс дополнительными данными.

>а как засеч время выполнения запросов к бд?


Stopwatch + мидлварь + DRY.

>Может ЕФ уже имеет что-то для этого?


Умеет даже запрос показывать.

>а как RAM посчитать и остальное?


GC.GetTotalMemory

>то неужели для дотнет господ это будет сложно?


Не секьюрно.
209 2194023
>>193960
Нахуй это на сайт вешать?
Открой для себя Application Insights или подобное
210 2194035
>>193776
Та хуй с тобой, вротендер.
Реквести у админа конекшн стринг и сам ебись с БД, мне похуй.
Ах да, ты, наверное, наслушался всяких кодлесс, но тогда реквести пурчейз своего говносервиса, который закроется через год.
211 2194341
А как на шарпе писать крутые консольные приложения типа Norton Commander?
212 2194463
Почему везде говорят и подчеркивают, что async/await не ускоряют процессорные операции? Разве при асинхронном программировании в дотнете код не выполняется в разных потоках из пула потоков, вместо одного потока для синхронного кейса, тем самым обеспечивая параллелизм и ускоряя выполнение?
213 2194528
Подкинте какие-нибудь примеры-исходники простых сайтов на ASP для ковыряния-обучения. Чтобы вот поковыряться, понять как это все делать
214 2194657
>>194341
Берешь и пишешь. Можешь сам написать библу для рисования в консоли, можешь найти на гите, как-то попадались либы для рисования меню и для окон.
>>194463
Не обязательно. В частном случае может и параллельно выполниться. Просто надо различать однопоточность/многопоточность синхронно/асинхронно последовательно/параллельно.
>>194528
Возьми Фримена. Там как раз разработка магазина идет через книгу и попутно объясняется что да как.
215 2194692
>>186992 (OP)
Подскажите как можно отличить строчку, полностью эскапнутую с помощью encodeURIComponent, от строчки, где только часть эскапнутая (в частности URL), а часть - не эскапнутая, то есть она, эта строчка, блядь, не полностью, а частично эскапнутая,
а значит её нахуй не нужно унескапать.

https://rextester.com/FGDJ87550
В примере здесь, первый метод, после унескапинга,
выдаёт результат:

>крысинное говно, тебе - сюда: https://ru.wikipedia.org/wiki/История_дерьма


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

Есть идеи, что можно сделать с этой хуйней?
216 2194715
>>194692
Нихуя не понял, но звучит так, как буд-то тебе надо разбить распарсить строку на части урл/не урл и затем каждую часть анэскейпнуть или нет.
не обязательно в массив, нынче есть няшные Span<T>.
217 2194720
>>194715
уууу макаба. там перед курсивом звездочка-сноска была, а последняя строка это пояснение этой сноски.
218 2194751
>>194715
Мне бы, скорее, какой-то regexp, который затестил бы строчку, на наличие символов, которые заменяет encodeURIComponent. Какие символы эта функция заменяет, я не знаю, я в JavaScript треде задал этот вопрос. Так вот, если эти символы есть в строчке, то унескапать не нужно. А если есть символ процента, и нет этих символов, то значит строчка ескапнута, и надо бы её унескапнуть.

Вот собственно и всё что я хотел выше.
219 2194786
>>194657
Дак простым Console.Write такое не напишешь. Тут нужны дополнительные функции.
220 2194800
>>194751

>Какие символы эта функция заменяет, я не знаю


Эм.. Открываем доку:
encodeURIComponent() escapes all characters except: A-Z a-z 0-9 - _ . ! ~ * ' ( )>>194751

> если есть символ процента, и нет этих символов, то значит строчка ескапнута


Уверен? %20 это экейпнутый пробел или уже анескейпнутая строка "процент-два-ноль"?
Довольно странно, что строка может придти в неизвестном виде. Что за шизо-апи такое делвает?
221 2194803
>>194786
Чому? Символ писать можно, указать позицию курсора можно. Что еще надо?
222 2194937
>>194803
Как указывать позицию курсора?
223 2194968
>>194937
Внезапно Console.SetCursorPosition
224 2195017
>>194968
Ни в одной книге такого не встречал.
225 2195026
>>194657

>Просто надо различать однопоточность/многопоточность синхронно/асинхронно последовательно/параллельно.


Так именно про это и речь - в дотнете в общем случае асинхронный код выполняется параллельно или не выполняется? Потоков то у нас несколько.
226 2195037
>>195017
В книгах про гейстрой можешь встретить. Но такую хуйню я смотрю на msdn.
227 2195076
>>195017
Ну пиздец. А ты когда писал .Write, тебе не интересно было посмотреть, что там еще есть?
>>195026

>в общем случае


Что за общий случай? Асинхронные методы, которые есть в стандартной библиотеке почти всегда будут IO-bound. Если ты нагородишь await Foo(); await Bar(); await FooBar(); методы будут выполняться асинхронно но последовательно на потоках из пула.
228 2195114
>>195076

>Что за общий случай?


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

>Если ты нагородишь await Foo(); await Bar(); await FooBar();


Нет, если я нагорожу условный
var tasks = new Task[] { Foo(), Bar(), FooBar()};
await Task.WhenAll(tasks);
Они могут выполняться параллельно на потоках из пула?
229 2195123
>>195114

>Они могут выполняться параллельно на потоках из пула?


Могут, а могут и нет. Как решит планировщик.
230 2195143
>>195123
Ну т.е. cpu-bound операции тоже ускорятся (за счет выполнения на нескольких процессорах)?
231 2195168
>>195143
Если тебе нужна параллельное выполнение, то используй TPL. Асинк/авэйт тебе таких гарантий не даст. Может выполнит параллельно, а может последовательно,а оверхед еще и замедлит выполнение.
232 2195213
>>195076
Интересно, но откуда я узнаю? Книг мало выпускают и ещё большую часть не переводят. В итоге сидишь как фуфел без знаний.
233 2195273
>>195168

>Асинк/авэйт тебе таких гарантий не даст.


Так я и пытаюсь разобраться, а в чем, собственно, разница? Если в одном и в другом случае код выполняется в разных потоках, то с чего он гарантию не даст? Не будет же дотнет игнорировать свободные потоки в пуле, а шедулеру вообще похуй, что ты там в своих потоках делаешь.
Да и, собственно, сама проблема не в том, что мне надо, просто в нескольких разных источниках про async/await прямо подчеркнули, что это не даст выигрыша в скорости вополнения кода, не предполагающего ожидания внешних результатов, а это немного противоречит моим представлениям, вот и пытаюсь разобраться.
234 2195310
>>195114

>var tasks = new Task[] { Foo(), Bar(), FooBar()};


>await Task.WhenAll(tasks);


>Они могут выполняться параллельно на потоках из пула?



Зависит от того что у тебя в Foo, Bar и FooBar

Если у тебя Foo это операция, внутри которой не используется поток (через Task.Run например) то у Bar & FooBar даже не запустятся, пока внутри Foo не будет сделан await \ не вернется результат

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

Если же у тебя везде используется внутри Task.Run то там они выполняются параллельно на разных потоках
В теории может быть ситуация что у тебя поток запускающий первый Task освободился раньше чем последняя операция (FooBar), и то не факт
235 2195318
>>195310

>чем последняя операция (FooBar) началась


быстро фикс

алсо это все проверяется на практике в пару строк кода

static async Task<bool> SmthAsync()
{
var st = new Stopwatch();

st.Start();

while (true)
{
if (st.ElapsedMilliseconds / 1000 > 7)
{
break;
}
}

Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Console.WriteLine(DateTime.Now);

return true;
}

static async Task<bool> SmthForkAsync() => await Task.Run(SmthAsync);

static async Task Main(string[] args)
{
await Task.WhenAll(SmthAsync(), SmthForkAsync(), SmthAsync(), SmthForkAsync(), SmthForkAsync());
return;
235 2195318
>>195310

>чем последняя операция (FooBar) началась


быстро фикс

алсо это все проверяется на практике в пару строк кода

static async Task<bool> SmthAsync()
{
var st = new Stopwatch();

st.Start();

while (true)
{
if (st.ElapsedMilliseconds / 1000 > 7)
{
break;
}
}

Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Console.WriteLine(DateTime.Now);

return true;
}

static async Task<bool> SmthForkAsync() => await Task.Run(SmthAsync);

static async Task Main(string[] args)
{
await Task.WhenAll(SmthAsync(), SmthForkAsync(), SmthAsync(), SmthForkAsync(), SmthForkAsync());
return;
236 2195319
>>194800

>Эм.. Открываем доку:


>encodeURIComponent() escapes all characters except: A-Z a-z 0-9 - _ . ! ~ * ' ( )


ОООО, ебать, пасиб. Воть шо получилось: https://rextester.com/NDFDG59641
Но это не точно.

>Уверен? %20 это экейпнутый пробел или уже анескейпнутая строка "процент-два-ноль"?


Ну кто будет писать "процент-два-ноль", блядь, ещё и руками? Нахуй кому это всралось?
Но ты прав, могут быть такие долбоёбы,
поэтому на этот случай хуйня выше - выдаёт фалсе, если есть другие чары в строке:

>str = "Процент два ноль (%20) есть в этой строчке";


>Console.WriteLine(NeedUnescape(str)); //false



>Довольно странно,


>что строка может придти в неизвестном виде.


Строка может быть вообще разных видов.
Это может быть бейс, это может быть тупо строка с текстом,
это может быть ескапнутая строка с помощью JsonConvert.SerializeObject(str),
это может быть encodeURIComponent(str),
это может быть блядь, хуй знает что ещё.

>Что за шизо-апи такое делвает?


В общем, этот метод, должен бы выдавать годную строчку, с тем же хэшем, а не какую-то другую хуйню, покалеченную:
https://github.com/username1565/nanoboard/blob/82f7595e3e875d391b5a847308581a41b9f650d6/nanodb.exe-source/Database/PostsValidator.cs#L49-L115
238 2195394
>>195319
Блядь, братишка, это ты хотел сначала "ескейпить", а теперь в урл енкод подался?

Ты блядь можешь нормально описать ЧТО ТЕБЕ НАХУЙ НАДО в итоге? Какую задачу ты решаешь (глобальную, а не "мне надо со строкой ебаться")?
Какого хуя ты там для базы что-то валидируешь и что оно может быть незаенкоженым и зачем ему вообще быть заенкоженым?

Ты хочешь побороть SQL Injection (хотя там у тебя, вроде бы и сиквела нету) или XSS атаку?
Или юзеры/клиенты будут напрямую копаться в твоих данных?

В любом случае надо следовать правилу: недоверять инпутам и ВСЕГДА санитайзить
239 2195431
>>195359
Эм. Я не он. Но теперь сам сомневаюсь.
Что ты хотел показать своим примером? Работа там ,как он и хотел ,выполняется в разных тредах. Общее время меньше.
240 2195516
>>195431
Он хотел показать как не стоит писать на шарпе и как не стоит мерять производительность.
241 2195696
>>195394

>Блядь, братишка, это ты хотел сначала "ескейпить", а теперь в урл енкод подался?


Ага. Но лучше, наверное, впилить и то и то.

>Ты блядь можешь нормально описать ЧТО ТЕБЕ НАХУЙ НАДО в итоге?


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

>Какую задачу ты решаешь (глобальную, а не "мне надо со строкой ебаться")?


Всё началось с впиливания этой вот фичи:
https://github.com/username1565/nanoboard/blob/82f7595e3e875d391b5a847308581a41b9f650d6/nanodb.exe-source/Server/FileHandler.cs#L824

Ссылающейся на этот вот впиленный апи-хендлер:
https://github.com/username1565/nanoboard/blob/82f7595e3e875d391b5a847308581a41b9f650d6/nanodb.exe-source/Server/DbApiHandler.cs#L39
https://github.com/username1565/nanoboard/blob/dev/nanodb.exe-source/Server/DbApiHandler.cs#L110
Запускающий этот вот метод:
https://github.com/username1565/nanoboard/blob/dev/nanodb.exe-source/Server/DbApiHandler.cs#L752-L778
На выходе - заэскапленный JSON, внутри свойства message.

Я заметил, что он является человекочитаемым, в отличие от base64, который хуй прочитаешь прямо с JSON'a, и его - надо декодить.

дальше, я знаю, что этот вот метод в NBPack.cs: https://github.com/username1565/nanoboard/blob/dev/nanodb.exe-source/PngTransport/NBPack.cs#L857-L866
В случае, когда bypassValidation=true:
https://github.com/username1565/nanoboard/blob/82f7595e3e875d391b5a847308581a41b9f650d6/nanodb.exe-source/PngTransport/NBPack.cs#L20
перезаписывает хэши нанопостов,
после чего, они проходят упрощенную валидацию.

Это значит, что когда полная валидация (pow и каптча) - отключена, и включена bypass Validation = true,
то посты можно вгрузить в базу безо всяких каптч,
примерно вот в таком вот формате:
https://github.com/username1565/nanoboard/blob/dev/test_NBPack/Validation/RawPostsToValidate.json
Грубо-говоря, их можно просто написать руками внутри JSON-файла, и даже не считать их хэши, а просто указать replyTo, и message.

Из строчек message, очевидно, что строчки могут иметь разный формат кодирования, ведь если писать руками message, то внутри могут содержаться JSON-символы ",[,',{,:, и прочая лабуда, вроде концов строки \n, \r\n, \r и других СПЕЦСИМВОЛОВ, которые надо бы ЭСКАПНУТЬ.

Первое, что пришло в голову - это просто использовать encodeURIComponent и System.Uri.UnescapeDataString(String)
но оно все-равно нихуя нечитабельное, блядь, получается, в закодированном виде, особенно когда там есть кириллица.

Собственно, из всей этой хуйни, появилось две задачи,
1. Подобрать наилучшую кодировку с эскапнутыми спецсимволами,
которая являлась бы человекочитаемой,
чтобы можно было, блядь, прочесть, нанопост,
внутри самого JSON'а, и понять что это за пост,
без его декодинга
(судя по всему сериализованный JSON - это лучший вариант).
2. Переписать вот это вот всё:
https://github.com/username1565/nanoboard/blob/82f7595e3e875d391b5a847308581a41b9f650d6/nanodb.exe-source/Database/PostsValidator.cs#L82
для разных кейсов, так,
чтобы принимая на вход различным образом закодированные строчки, метод выдавал сырую строчку, не пидорася её хэш (хэш поста).
241 2195696
>>195394

>Блядь, братишка, это ты хотел сначала "ескейпить", а теперь в урл енкод подался?


Ага. Но лучше, наверное, впилить и то и то.

>Ты блядь можешь нормально описать ЧТО ТЕБЕ НАХУЙ НАДО в итоге?


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

>Какую задачу ты решаешь (глобальную, а не "мне надо со строкой ебаться")?


Всё началось с впиливания этой вот фичи:
https://github.com/username1565/nanoboard/blob/82f7595e3e875d391b5a847308581a41b9f650d6/nanodb.exe-source/Server/FileHandler.cs#L824

Ссылающейся на этот вот впиленный апи-хендлер:
https://github.com/username1565/nanoboard/blob/82f7595e3e875d391b5a847308581a41b9f650d6/nanodb.exe-source/Server/DbApiHandler.cs#L39
https://github.com/username1565/nanoboard/blob/dev/nanodb.exe-source/Server/DbApiHandler.cs#L110
Запускающий этот вот метод:
https://github.com/username1565/nanoboard/blob/dev/nanodb.exe-source/Server/DbApiHandler.cs#L752-L778
На выходе - заэскапленный JSON, внутри свойства message.

Я заметил, что он является человекочитаемым, в отличие от base64, который хуй прочитаешь прямо с JSON'a, и его - надо декодить.

дальше, я знаю, что этот вот метод в NBPack.cs: https://github.com/username1565/nanoboard/blob/dev/nanodb.exe-source/PngTransport/NBPack.cs#L857-L866
В случае, когда bypassValidation=true:
https://github.com/username1565/nanoboard/blob/82f7595e3e875d391b5a847308581a41b9f650d6/nanodb.exe-source/PngTransport/NBPack.cs#L20
перезаписывает хэши нанопостов,
после чего, они проходят упрощенную валидацию.

Это значит, что когда полная валидация (pow и каптча) - отключена, и включена bypass Validation = true,
то посты можно вгрузить в базу безо всяких каптч,
примерно вот в таком вот формате:
https://github.com/username1565/nanoboard/blob/dev/test_NBPack/Validation/RawPostsToValidate.json
Грубо-говоря, их можно просто написать руками внутри JSON-файла, и даже не считать их хэши, а просто указать replyTo, и message.

Из строчек message, очевидно, что строчки могут иметь разный формат кодирования, ведь если писать руками message, то внутри могут содержаться JSON-символы ",[,',{,:, и прочая лабуда, вроде концов строки \n, \r\n, \r и других СПЕЦСИМВОЛОВ, которые надо бы ЭСКАПНУТЬ.

Первое, что пришло в голову - это просто использовать encodeURIComponent и System.Uri.UnescapeDataString(String)
но оно все-равно нихуя нечитабельное, блядь, получается, в закодированном виде, особенно когда там есть кириллица.

Собственно, из всей этой хуйни, появилось две задачи,
1. Подобрать наилучшую кодировку с эскапнутыми спецсимволами,
которая являлась бы человекочитаемой,
чтобы можно было, блядь, прочесть, нанопост,
внутри самого JSON'а, и понять что это за пост,
без его декодинга
(судя по всему сериализованный JSON - это лучший вариант).
2. Переписать вот это вот всё:
https://github.com/username1565/nanoboard/blob/82f7595e3e875d391b5a847308581a41b9f650d6/nanodb.exe-source/Database/PostsValidator.cs#L82
для разных кейсов, так,
чтобы принимая на вход различным образом закодированные строчки, метод выдавал сырую строчку, не пидорася её хэш (хэш поста).
242 2195701
>>195394

>Какого хуя ты там для базы что-то валидируешь и что оно может быть незаенкоженым и зачем ему вообще быть заенкоженым?


Заенкоженным оно должно быть внутри жсона, просто чтобы JSON был валидным.
Конечно же, заенкоженную хуйню следует правильно задекодить, и колючевое слово здесь - именно ПРАВИЛЬНО задекодить.

>Ты хочешь побороть SQL Injection (хотя там у тебя, вроде бы и сиквела нету)


Я думаю впилить туда SQLite, но я SQL херово знаю, лол. Вон, засрал шардинговый тред датабазный, реквестом рекурсивного запроса, так никто и не ответил, лол.

>или XSS атаку?


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

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


Основная задача состояла в том, чтобы глядя на JSON, распознать какому посту какой хэш соответствует, и распознать сразу, без декодинга бейса, потому что бейс хуй прочитаешь - он нечитабелен.
Ведь по умолчанию, там все посты кодируются в бейсе, вот так:
https://github.com/username1565/nanoboard/blob/dev/nanodb.exe-source/Database/PostsValidator.cs#L117-L123

>В любом случае надо следовать правилу: недоверять инпутам


А что может быть в инпутах такого, что может поломать шарп?
Что-то вроде XSS-быдлокода, например?

>и ВСЕГДА санитайзить


Тут тебя не понял, проясни.
243 2195723
>>195431
В первом случае IO-bound операция, поток освобождается и идет запускать другие таски. Во втором, CPU-bound, операция по вычислению последнего знака числа ПИ. Там поток не освобождается (по сути там просто return Task.CompletedTask) и все идет последовательно в одном потоке. Я к тому, что просто вызов эвейт на таске не гарантирует параллельное выполнение.
>>195516
Те че, пёс. Это продакт-реди топ бенчмарк с 9к звезд на гитхабе.
244 2195726
>>195701

> реквестом рекурсивного запроса


Твое нежелание читать доки достойно восхищения нет
https://sqlite.org/lang_with.html

>распознать какому посту какой хэш соответствуе


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

>Твое нежелание читать доки достойно восхищения нет


>https://sqlite.org/lang_with.html


Там многобукв и все они английские. С какого параграфа начать, блять?
Я вообще у них реквестировал готовый запрос, а не доки.
Ещё бы ссылку на учебник по сиквелу скинули, ну ёбанарот.

>>распознать какому посту какой хэш соответствуе


>>всмысле глазами узнать, в жсоне, а то там нечитабельный бейс


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


Это один из вариантов, да.
А так-то там вариантов куча: https://github.com/username1565/nanoboard/blob/dev/test_NBPack/Validation/RawPostsToValidate.json
и по дефолту там base64.
246 2195860
>>195827

>параграфа начать, блять?


Там где большими буквами Recursive. У постгрепро есть отличная документация на русском (по постгресу разумеется) https://postgrespro.ru/docs/postgresql/14/queries-with#QUERIES-WITH-RECURSIVE
247 2195869
>>195827
Кстати, почему бы тебе заодно не подзадрачивать автора в ишью на гитхабе? Он то знает свой проект и наверняка что-то предложит.
248 2195873
>>195869
Или то репо это твой форк?
249 2195969
>>195869
Уже задрачивал, поначалу, только там лишь 3.5 нанона: https://github.com/nanoboard/nanoboard/issues
>>195873
Так и есть, сижу и пердолюсь с кодом, сам, помаленьку уже несколько лет
250 2196111
>>195723

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


Так может это и хорошо? И там ВЫШЕ (планировщик) сам все решит?
Иначе мы можем создать больше тредов и они на переключении контекста сдохнут.
Ну я это так, мысли вслух.
251 2196233
>>195860
Ну и как эту хуйню тестить? Куда её копипастить, блядь? Дай нормальный запрос уже. Хули вы ебёте мне мозг.
252 2196545
>>196233
Я ебу какой запрос тебе нужен
253 2196681
Выше по треду наблюдается харкач дривен девелопмент.
Новый тренд?
254 2196738
Реквестирую литературу по многопоточности для легаси шарпа 4.0 2010 года.
Сам пока что смог нагуглить только "Pro .NET 4 Parallel Programming in C#".
Неужели это всё или я гуглить не умею?
255 2196882
>>196545
Надо запрос, чтоб достать из таблицы базы данных - все ветви дерева в виде дочерних записей - до нужной глубины, в частности 3, включая родителя.
256 2196888
>>196882
Ёпта, дай скрипт инициализации с тестовыми данными (желательно под sqlite) и ожидаемый результат. И возможно я снизойду и высру тебе запрос.
257 2196953
>>196888
Я уже сам, вроде, высрал, в базоданном треде. Там вся хуйня есть, можешь не срать говнокодом, не дуйся, а то геморрой вылезет.
258 2197006
>>196953
Ты просишь помощи, но я должен лазить на дваче по тредам и искать твои посты. Кек, лол.
259 2197011
>>197006
Насчет запроса, я уже сказал, что я его сварганил сам, пока вы там чешетесь. Задачу ты должен бы понять ещё с полуслова.
Но ты уже снизошёл, у меня - ниже плинтуса, до уровня крысятничества, червь. Косари мои ебучие где?
260 2197012
>>197011
Галоперидола выпей, шиз.
image.png50 Кб, 1088x407
261 2197209
Я же могу так делать? до кукки пользователь иммеет доступ но не к сесси же? какие подводные?
262 2197233
>>197209
Кажись данные и так клиенту не уходят: "The in-memory cache provider stores session data in the memory of the server where the app resides. "
Чего ты вообще добиться хочешь?

И вообще - сессия хуйня, старайся без сессий.
263 2197242
>>197233
ну как чего, сделать так что бы пользователь мог залогиниться, передать ему роль, идентити я юзать по опредленным причинам не могу, поэтому интересуюсь безопасно ли держать ключ сессии в контексте
264 2197332
>>197242
Стопе, братишка.
Ты можешь клеймсы (да и любое говно) держать в аторизационной куке. Единственный минус - кука в размере больше станет.
Идентити с его схемой ДБ юзать не обязательно.
Ну или, ты откуда те роли будешь брать? С БД же какой? Вот оттуда и бери, можешь кеш использовать.

Твое решение с сессиями - костыль само по себе, а код твой вообще ничего не проверяет по сути.
265 2197345
>>197332

>Ну или, ты откуда те роли будешь брать? С БД же какой? Вот оттуда и бери, можешь кеш использовать.


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

>а код твой вообще ничего не проверяет по сути.


по сути он проверяет не поменялась ли сессия, идея проста, пользователь не может поминять ключ сессии на сервере а значит если он у себя будет что-то там мутить с паролями, ролями и тп это все будет валидно только для него
image.png53 Кб, 960x329
268 2197878
Ну пиздец. Это только в россии так?
269 2197889
>>197878
Да, в рублях платят только в России.
лучше бусы дававй.webm
270 2197897
>>197878
Стату портит то, что на джаве все топовые компании сидят и зарплаты у них всегда выше. А второе, возможно десктоп дидов засчитали за .NET разрабов, а работают они за рыбную котлетку
271 2197996
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9

[code]public string FirstName { get; init; } = default!;[/code]

Анон, что означает

>default!


?
272 2198002
>>197996
deafault - значение по-умолчанию, длястринга это налл
! - указание компилятору, что ты понимаешь, что ты присваиваешь налл свойству, и null reference exception на твоей совести. (см. Nullable reference types)
273 2198011
>>198002
Спасибо
274 2198270
Немного мимо треда, но всё же: как вообще люди приходят к тому, что работают на чём-то одном (дотнет, жава, петухон и далее по списку), как пришли к дотнету вы сами, аноны?

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

Я сам просто на курсы попал да и потом взяли на работу. Вот и вся история. За 7 лет, в принципе, не пожалел.
СЕйчас ищу новое место работы, вроде бы вакухи есть, оферы приходят. Правда я не с россии. Судя по харкачу в россии с .нет похуже, одни деды-декстопщики. Декстоп - мертв, туда точно не иди.
276 2198542
>>198301
Окей, спасибо. В принципе с работой не всё так плохо в том месте, где живу, hh выдаёт хоть какие-то вакансии по бэкэнду.

Не понимаю ещё в чём прикол того, что почти все компании указывают требуемый опыт работы от 1 до 3 лет - это блеф такой или они действительно разворачивают студентов по различным причинам?
277 2198641
>>197878
Где такие вакансии-то? Почему мне с 2 годами - плотют на текущем месте 55к, а те кто зовут на собесы вилку в 80к максимум предлагают? А? А? А? Я жи фуллстак!!! Ангуляр знаю, вью знаю, дотнет - знаю... Что за фигня-то?
278 2198670
>>186992 (OP)
Если я хочу вкатиться в бекенд девелоперы то пошел я нахуй, да и за плечами имею дженерик веб-проект с рецептами, что еще запилить, чтобы работодатель не смотрел на меня как кретинчика, заспидранившего 2-часовой курс на ютубе? Имеют ли вес сертификаты и какие можно задрочить, если мелкомягкий 70-483 больше недоступен?
279 2198749
>>198641
Ну 2 года это может быть засидевшийся жун.
Или окологосговно какое-то.
Или ты просто траль.
280 2198752
>>198670
Ящитаю, шо всем поебать.
Ну может серт от увожаемых контор и даст немного буста.
Но самый большой буст - те самые 1-2 года опыта...
Так что думай, если есть время - ну дрочи свои курсы, если по фасту надо - ищи куда жопу приткнуть не важно даже куда (лишь бы не госконтора или около того), галеры для этого лучшее место. Через год-два сьебешь мидлом на 200к.
281 2198791
>>198670

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


Сделай
1. Магазин по продаже чего-нибудь(драконьих дилдо например) с докрами-ребитами-авторизацией-ролями-системой оплаты и чтобы разворачивалось оно одним выполнением скрипта. Сервисов пусть будет штук 5(ну, классическое: гейтвей, товары, оплата, корзина, авторизация, можешь еще что-то придумать если так уж хочется), плюс всякая инфраструктурная хуетень которая будет в зависимости от нагрузки поднимать дополнительные инстансы.
2. Компилятор своего языка с блекджеком и шлюхами, чтобы при этом его могла подхватить студия(ну, т.е. подсветка синтаксиса работала, был какой-никакой дебаг)
3. Свой веб-фреймворк
4. Своя CMS
Думаю для джуна этого достаточно.
282 2198807
>>198791
Это траленг?
283 2198815
>>198807
Чому ты так думаешь?
Каждый из пунктов что тут написан делается за выходные, разве что кроме компилятора в случае когда у тебя нет образования(с образованием компилятор так же делается за выходные)
Я же не говорю о интерпрайз уровне или опенсорс для коммунити. Пруф оф концепт, но без откровенного говнокода.
284 2198854
>>198815
Понятно, что сделать сырой продукт по каждому из пунктов можно и за пару часов, но он имеет в виду, что если серьезно подходить к каждому проекту - то там работы на годы.
285 2198860
>>198815
Почему тогда микрософты пилят свои проекты годами, а каждый джун это может сделать за выходные?
286 2199234
>>186992 (OP)
Захотел написать скриптмод для гта
скачал вижулстудию19
делаю по гайду, там есть пункт добавить длл скриптуха в референсы
ок
следующий пункт, добавить
"system.windows.forms.dll"
В других туторах пункт зовется
system_windows_forms
у обоих версия 4

у меня

system.windows.forms.dll

вообще нет и хз где его скачать
а на добавление в референс

system_windows_forms

который версии 2,4, а не 4, как в туторах, выдает ошибку (пик1)
нэт фреймворк ставил последний с сайта майков

помогите Т__Т
где этот system.windows.forms.dll взять и почему его нигде не гуглится на сайте майков, только какие то левые сайты, в каком пакете этот длл должен быть

делаю как тут
https://youtu.be/8D8xWA1sk-8?t=142
286 2199234
>>186992 (OP)
Захотел написать скриптмод для гта
скачал вижулстудию19
делаю по гайду, там есть пункт добавить длл скриптуха в референсы
ок
следующий пункт, добавить
"system.windows.forms.dll"
В других туторах пункт зовется
system_windows_forms
у обоих версия 4

у меня

system.windows.forms.dll

вообще нет и хз где его скачать
а на добавление в референс

system_windows_forms

который версии 2,4, а не 4, как в туторах, выдает ошибку (пик1)
нэт фреймворк ставил последний с сайта майков

помогите Т__Т
где этот system.windows.forms.dll взять и почему его нигде не гуглится на сайте майков, только какие то левые сайты, в каком пакете этот длл должен быть

делаю как тут
https://youtu.be/8D8xWA1sk-8?t=142
287 2199340
>>199234
Проверь что у тебя проект не .NET5.0.

Попробуй добавить через browse из папки C:\Windows\Microsoft.NET\Framework\v4.0.30319
288 2199652
>>198752
Счииается ли годом опыта год опыта на другом язке+технологии? Хочу с дата инженегра на питоне перекатиться в дотнет.
289 2199727
Получается ещё надо TypeScript для Angular учить? Тут .Net фиг выучишь когда-либо, а они предлагают ещё целую вселенную веба изучать. Не слишком ли дофига знаний для таких зарплат?
290 2199750
>>199727
Фронтендом занимаются только джуны, которым лапшу на уши повесили.
291 2199752
>>199750
Я пока ноль полный и даже не джун
292 2199755
>>199652
Большой плюс. Но только на жуна возьмут, скорее всего.
Зачем тебе перекатываться? ДС на айпе же, не?
293 2199973
какие темы надо знать чтобы начать читать CLR via C#. Джеффри Рихтер?
294 2199990
>>199973
Никакие. Книга старье.
295 2200052
>>199973
Да хуй знает. Я так и не осилил.
Судя по тому, что я наблюдаю, книга оверкил (когда вы блядь последний раз смотрели как оно там компилится вообще?), знания такого уровня требуются только на каком-то жестком хайлоаде. И то, скорее всего да, книга подустарела. Но умные дядьки говрят, что все еще хороша.
изображение.png6 Кб, 547x206
296 2200330
Как же заебал этот блядский спермовысер лочить процессы под дебагом после каждых 5-6 скачков по брекпоинтам. Я заебался уже их уже перезапускать
297 2200386
>>200330
Intel Atom?
298 2200455
Когда выйдут новые книги на русском? Столько новых технологий и нет ни одной книги по ним.
299 2200488
>>200455

>русском


>новые


>Когда


Никогда. Очевидно же.
300 2200600
Тупой вопрос..
Смотрите. Есть ряд железок.
У железок есть веб-интерфейс.
Железки подключаются к моему приложению, я сохраняю в базе информацию нужную мне для взаимодействия.
Что я хочу. Я хочу проксировать туда трафик к веб-интерфейсу железок.
В чем проблема. Я не хочу на каждый запрос лезть в базу и проверять знаю ли я о такой железке.
Кроме как сделать словарь где я ключем АйДи железки и значением - ip я ничего не придумал, но мне этот вариант почему-то не нравится, плюс если железок миллиард - это будет довольно жирный такой словарь.
Чего делать-то чтобы проксировать трафик и с одной стороны - не лазить в базу, с другой не городить огород из всяких словарей, кешей и прочих штук?
301 2200693
>>200600
Тебе похуй к какому айпишнику прилетит?
Ты баланс лоадинг изобретаешь?

Хз. В любом случае, или ацелевой айпишник должен приходить или ты его должен сам мапить по айди. Первое - хуита бо айпишники будут меняться и клиенты надо будет как-тоо бновлять. Второе - ну а точно будет миллиард? Ну будет да и будет, я бы у себя хранил таки конфиг.
302 2200730
Вот вы говорите, что десктоп мёртв, а как без десктопа? Всё равно же нужны такие приложения.
Вот, к примеру, на андроиде не очень-то любят заходить через браузер, а предпочитают отдельное приложение. Также же и на ПК, проще запустить прогу, чем лезть в браузер.
Тем более десктопные приложения лаконичные, более легковесные, чем тяжёловесные веб-приложения, которые долго грузяться и лагают.
303 2200759
>>200730

>Также же и на ПК, проще запустить прогу, чем лезть в браузер.


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

Ну а по технологиям - да вообще не видно новых декстоп проектов, поэтому (почти) любой декстоп проект воняет дедами которые н есмогли в веб перекатиться.
304 2200807
>>200693

>Ты баланс лоадинг изобретаешь?


Не. Просто у устройств - динамический АйПи и естественно у них нет никакого домена по которому к ним можно было бы обратиться. Ну и идея в том что после смены АйПи устройство ко мне на сервер постучалось - сказало текущий АйПи, ну а я мог подключиться к своему серверу и уже к веб-морде устройства обращаться.
305 2200860
>>200759
Но ведь веб - это не шарп. Спрашивается, зачем тогда нужен шарп?
306 2200873
>>200860
Кокрастоке шарп.
Спрашивается - зачем нужен ты со своим декстопом?
307 2200884
>>200873
Мне просто нравится писать красявые и моднявые десктопные приложения. Сразу виден результат работы и удовлетворение от неё.
А в консоли писать скучно. ASP.NET вообще подбешивает.
308 2200888
>>200884

>Сразу виден результат работы и удовлетворение от неё.


Есть веб фулстеки.

>моднявые


>десктопные приложения


Взаимоисключающие параграфы. В реальности тебя ни в адобе, ни в автокад, ни даже на известную ИДЕ не возьмут, будешь мыхалычам систему документооборота пилить
309 2200894
>>200888
И что там в фуллстеке от шарпа? Отправить index.html клиенту? А вся логика будет на каком-нибудь Angular, который на TypeScript? Зачем тогда учить шарп?

На предыдущих работах я сталкивался с десктопными приложениями как сис. админ. Там и формирование справок, финансовые отчетности, полнофункциональное решение для юристов с миллионом окошек, менюшек и т.п.
А мне говорят - не, сейчас всё в веб. А кто тогда эти проги разрабатывает?
310 2200898
>>200807
Так ты изобретаешь пуш?
311 2200940
>>200488
По Java больше книг на русском и при этом свежие по актуальной версии. А шарп в лучшем случае я находил по нет 3.1, а нет 5 и тем более 6 приходится только мечтать.
312 2200956
>>200940

>тем более 6 приходится только мечтать


Который не вышел? Покажи книги на русеке по Java 17, который уже вышел. Не говоря, что на проекте ты будешь только мечтать хотя бы на Java 11 писать. У меня от многих терминов глаз дергается при его переводе на русек в книге + болезнь неправильно ставить ударения у многих на инглише.
313 2200972
>>200894

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


Давно не делают новые проги для десктопа:
- старье, написанное на делфи хуй знает когда, например total commander
- системные консольные утилиты на си/плюсах как ffmpeg
- всякие фотошопы; много пользы от еще одного фотошопа?
- игры

Все корпоративное дерьмо и документооборот давно переезжает в веб по ряду причину.
314 2200975
>>200956
А по WPF самая последняя книга за 2011, хотя лучше читать Петзольда за 2008, потому что он учит писать, а не просто перечисляет фишечки.
315 2200981
>>200975
WPF давно не обновлялся. Зачем по WPF выпускать новую книгу?
316 2200982
>>200972
А ты знаешь как прикручена работа с ЭЦП в этом вашем вебе? Через java-аплеты! Приходится устанавливать определенную версию JRE, чтобы это говно работало. Так что весь ваш веб - это костыльное решение, чтобы облегчить работу программистам, но не пользователям и не тех. поддержке. Десктопные приложения в этом плане более стабильны и предпочтительны.
Про ГИСы я вообще молчу. Это говно вообще никогда не работает как заявлено. Там видимо вообще отбитые пишут.
317 2200991
>>200894

>И что там в фуллстеке от шарпа?


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

> Там и формирование справок, финансовые отчетности


Ну я же говорю, документооборот для михалычей.
318 2200993
>>200981
По последней версии WPF нет книги и хотелось бы книгу уровня Петзольда. Потому что текущие книги - ни о чём. Примеров мало и в основном посвящены xaml. А Петзольд прям на шарпе фигачит примеры, а xaml как довесок, чтобы красоту навести.
319 2200994
>>200982

>Через java-аплеты


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

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


Только если на тебя не вешают CI/CD или покрытие UI тестами и твоей софтиной пользуется 1 человек.
320 2200995
>>200991
По Blazor нет вообще ни одной книги! Как на нём писать - не понятно.
321 2200996
Смотрите, только вкатун, а уже дед: >>200982
image.png623 Кб, 1425x375
322 2201000
>>200995
Не пизди.
А вообще, ты похож на шизоида, который срал тут недавно.
на всякий случай пошлю тебя нахуй: иди нахуй
323 2201005
>>201000

>2022


Вы из будущего пишите? Хорошие книги напишут?
324 2201007
>>201005
Ты же сам побежешь искать новейшие книги, которые каждых пять сек устаревают, вот они и подсуетились.
325 2201014
>>200993

>По последней версии WPF


Это по какой версии?

>в основном посвящены xaml


По шарпу или по архитектуре есть другие книги без привязки к WPF. Тебе об этом уже писали.
326 2201024
>>201014
Я видел книги по WPF 4.5, а сейчас уже WPF 5 и скоро WPF 6 выйдет.

Я изучил уже консольные приложения. Я так-то вообще профи и легко изучаю новые языки. Начинал ещё с Ассемблера, С++, Паскаль, РНР, Perl и многие другие. И в ВУЗе я сдавал программирование на отлично, только с математикой ленился и порой плохо сдавал.
327 2201040
>>201024

>WPF 5


Это неудачный порт на кор и патчи, которые фиксят баги порта. Совсем скоро его выкинут из сдк в ворклоад или вовсе задепрекейтят.
328 2201045
>>201040
Я ждал MAUI в ноябре, но говорят, что его не будет. Плюс ещё надо ждать книги, чтобы понять как на нём писать.
В то же время на Java уже есть кроссплатформенные библиотеки для написания десктопных приложений. Да что далеко ходить? Rider написан на Java. А где IDE на C#?
329 2201061
>>201045
Ты уже обосрался с Java 17 и WPF 5.

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

>Java уже есть кроссплатформенные библиотеки для написания десктопных приложений


На шарпе тоже есть и на порядок больше. И что дальше?

>А где IDE на C#?


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

Приведи популярные кроссплатформенные программы на Java, чтобы поддерживало iOS, иначе это вшивая кроссплатформа.
330 2201136
>>201045

>Rider написан на Java.


и на C# в том числе, Rider это Intellij + Resharper (который на c#)
>>201045

>А где IDE на C#?


>


ВНЕЗАПНО
- Visual Studio
- MonoDevelop (не нужно)

>>201045

>Я ждал MAUI в ноябре, но говорят, что его не будет


Не нужно ибо есть
https://avaloniaui.net/
331 2201142
>>201136

>v0.10.10

332 2201156
>>201142

>>v0.10.10


я уже и забыл что на дваче преимущественно одни СТО сидят, и ПОД БИЗНЕС ТУЛЗЫ ВЫБИРАЮТ, а не свои свисто перделки
333 2201162
>>201156
Если бы это была хотя б альфа, но нет. Это очень далекая омега центавра. Этот номер версии говорит о двух фактах: апи изменится и наличие багов.
334 2201171
>>201162

>апи изменится


Форкни нужную версию

> наличие багов


Пофикси.
335 2201199
>>201162

>Этот номер версии говорит о двух фактах: апи изменится и наличие багов


Далеко не факт, мало ли по каким еще причинам они хотят оставаться на "начальном этапе"
Другим это не особо мешает, вон даже какой-то клиент под битки запилили, wasabiwallet.io, но да, нужно не забывать что у типичного двачера то ПОТРЕБНОСТИ ОГОГО и ЧЕГО ТО ДА ТОЧНО НЕ ХВАТИТ
336 2201210
>>201199

>Далеко не факт


https://github.com/AvaloniaUI/Avalonia

>Avalonia is ready for General-Purpose Desktop App Development. However, there may be some bugs and breaking changes as we continue along into this project's development.



>Другим это не особо мешает


Тесты на UI научился писать?

>нужно не забывать что у типичного двачера


Такую либу невозможно пропихнуть.
337 2201223
>>201210

>Тесты на UI научился писать?


Не пишу, есть отдельная команда, а на проектах где ее нет не работаю
>>201210

>Такую либу невозможно пропихнуть.


Конечно, типичному двачеру ничего не пропихнуть, ему бы кнопку "бабло" или "сделать красиво"
338 2201229
>>201223
Я десктоп не пишу. Свои фантазии оставь при себе.
339 2201244
>>201223

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


А кому нет-то? А блядь? Отвечай?
340 2201304
Вот хорошая вакуха, наверное https://jobs.dou.ua/companies/devsdata-llc/vacancies/186578/
Но я как синиор крудошлеп чувствую себя букашкой.
341 2201308
>>201244

>А кому нет-то?


Мне.
342 2201391
Дак что вы предлагаете? Забить на WPF и MAUI, и учить дурацкий ASP.NET и Angular на TypeScript?
343 2201426
Как в C# проект добавить msbuild команды?
344 2201439
>>201391
Предлагаю вкатиться тебе жабаскрипт и не ебать себе головушку.

>>201426
Глянь nuke.
345 2201462
>>201439
нах?
346 2201565
Ещё тут на днях узнал, что по Java есть классный двухтомник Хорстманна. Я был просто в восторге от этой книги. Она написана понятным языком, всё разложено по полочкам, что не возникает недопонимания. Первые 100 страниц прочитал залпом за один день. Только вот из-за этой одной книги готов изучать Java вместо C#.
Вот почему по C# нет таких же классных книг?
347 2201571
>>201391

>дурацкий ASP.NET


За базар ответишь?
348 2201575
>>201565
Иди уже нахуй, шизоид со своими книгами.
Завтра зеленог ослоника прочитаешь и
"Я был просто в восторге от этой книги. Она написана понятным языком, всё разложено по полочкам, что не возникает недопонимания. Первые 1000 страниц прочитал залпом за один день. Только вот из-за этой одной книги готов стать поехавшим"
349 2201607
>>201571
Да, писал свой движок на РНР. Всё было гораздо проще и понятнее. Лёгкая масштабируемость. Не было ни каких "магических" названий файлов, которые движок обрабатывал по-особому. Это всё явно прописывалось.
Из чужих движков работал немного с Laravel. Ничего про него не читал, а с ходу внёс правки в сайт, какие требовались.
А что в ASP.NET? Это какой-то монстр, где все важные детали скрыты и заменены малопонятными методами, о которых можно узнать, если прочитаешь многотомные мануалы. Изменяешь код в одном месте, валится в другом, казалось бы совсем не связаном с ним. Как масштабировать сайт, я так и не понял. Шаг влево - шаг вправо и ничего не работает.
350 2201620
>>201575
Если книг читать не будешь - скоро грамоту забудешь!
351 2201683
>>186992 (OP)
Хочу писать на вашем языке, есть что по гуи для мака? Если только не какао, тогда я могу свифт юзать. Мне бы кроссплатформенное
352 2201689
>>201683
Шарп не может в кроссплатформенное гуи. MAUI ещё не вышел, а WPF только под винду.
353 2201692
>>201689

>Шарп не может в кроссплатформенное гуи


Пруфы?
nowpflinux.jpg176 Кб, 723x609
354 2201705
>>201692
Такое сообщение выдаётся в линупсе (убунта 20.04)
355 2201707
>>201705
Впф онли винда. На это не иллюзорно намекает первая буква сокращения.
356 2201709
>>201707
Когда будет lpf тогда? mpf?
357 2201712
>>201709
У тебя каша в голове.
358 2201728
>>201565
Есть у c# unleashed например
359 2201730
>>201692
А кто может?
360 2201731
>>201730
Из того, что сразу есть в студии, хуюнити. Можешь прилепить даж свой мввм.
361 2201740
>>201728
Во-первых, её нет на русском. Во-вторых, она только по самому языку, а у Хорстманна основной объём по фреймворкам и много внимания уделено именно графическим приложениям.
Ближайшим аналогом можно считать Троелсенна, но он скучно пишет. Я его читаю перед сном и всегда крепко засыпаю.
362 2201742
>>201731
Это же недоигровой кал, при чем тут УИ фреймворки?

>>201740
Ява ГУИ это лол, хорошо пошутил.
Троллсен это кал, он просто тупой мужик и не умеет писать, все его книги говно.
363 2201747
>>201607
Да, точно тот вкатун.
Ну чтож, не срослось у тебя. Собсвенно: алибидерчи, но у тебя нету права со своим "опытом" обсирать АСП.
Аргументы тебе уже приводились, если ты не хочешь осилить + понять зачем так сделано (и отказаться от того, что тебе жмет) - иди нахуй в свои ПХП.
364 2201751
>>201712
Сейчас все гос. конторы переходят на русские ОС (линупсы) и им срочно надо перенести говнопрограммы с винды на линупс. Так что десктоп в нашей стране очень актуален. А ваш веб не везде можно применить.
365 2201754
>>201742

>Троллсен это кал


Тогда книг по шарпу вообще нет. Ну разве что книга Флёнова - Библия C#.
366 2201763
>>201754
По языку биллиг сойдет для начала, есть еще аблахари, липперт (вообще один из создателей языка).
367 2201764
>>201751
Для этого есть уже 15 лет либы на моно не первой паршивости.
368 2201765
>>201751
В госконторах платят копейки. Вся суть ойти в этой стране что за счет дохода в $ средняя зп более менее.
369 2201766
>>201765
Госконторы не нанимают программистов, они покупают готовый продукт.
370 2201774
>>201751
Вот это уникальная возможность быть швабрированым за 20к рубльов и виноватым, когда продукт обосреться ибо КОМУНАДО отьели 90% бюджета! А главное большая честь!
Мммм, работал я лет 10 назад на гос, все 10 лет мечтаю вернуться. И хуй стоял там кста.
371 2201793
>>201763

>биллиг


>C# 3.0 2008


Насколько актуально?

>липперт


Нет русека
372 2201807
>>201793

> Насколько актуально?



Если с нуля изучаешь, то для начала сойдет. Но там только голый язык без библиотек.
373 2201808
>>201766
И платят в рублях, копейки. То что распилят кодерам точно не достанется.
374 2201811
>>201689

>MAUI



Поддержка линукса только на уровне комьюнити, а не официальная.
Ну и мне чет кажется, что нормального мауи на линухе не будет.
375 2201812
>>201808
Зато в резюме можно будет добавить "Работал на увожаемого Виктора Иваныча по специальности - пидорас"
376 2201813
>>201807
Из новых книг читал Прайса, но там "голопом по европам", но плюс, что книга про кроссплатформу и ни какой вижуал студии (только vs code).
Ещё начинал читать Гриффитса, но она ещё более скучная, чем Троелсен. И там тоже только про язык, без платформы .Net.
377 2201815
>>201812
Лично у меня даже грамота благодарственная есть от министерства экономики за хорошую работу.
378 2201821
>>201740

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



У хорстманна только лишь джавакор изложен (java se). И да, swing gui тоже относится к java se. Может в будущем его выпилят или заменят чем-то более разумным, но пока что в стандартную жабу входят формочки 20 летней давности.

>>201742

>Ява ГУИ это лол, хорошо пошутил



Как минимум долгие годы это был единственный способ создать рабочий кроссплатформенный ГУИ. Популярность электрон начал набирать после 2015 где-то, а до того либо жаба, либо c++/qt.
Поэтому всякие IDE от джетов написаны на жабе. Сейчас свинг в жабе уже сильно устарел, однако jb начали свой ферймворк пилить, может у них что получится, а то мауи кажись под линуксами будет oche huewo работать.

https://www.jetbrains.com/lp/compose-mpp/
379 2201827
>>201821

> Как минимум долгие годы это был единственный способ создать рабочий кроссплатформенный ГУИ.



Он вырвиглазный настолько, что назвать его гуем язык не поворачивается.
380 2201828
>>201821

>единственный способ создать рабочий кроссплатформенный ГУИ


На плюсах как-то писали и пишут кроссплатформу и ничего.
381 2201834
>>201045

>на Java уже есть кроссплатформенные библиотеки для написания десктопных приложений



Кроме jb-compose и awt/swing/fx на жабе нихуя нет. Хотите десктопы - берите qt или electron, все остальное либо завязано полностью на винду, либо параша.

>>200982

>прикручена работа с ЭЦП в этом вашем вебе? Через java-аплеты!


Это ты видимо в совсем уж легаси проект попал, раз у тебя апплеты. В крупных известных банках никаких апплетов уже нет лет 5 точно.
382 2201841
>>201827

>Он вырвиглазный настолько



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

>>201828

На плюсах только на Qt можно кроссплатформу писать. Поэтому либо жаба, либо плюсы. А вообще где-то до 2010-х годов никакой кроссплатформы не было толком, на моей памяти все прогрммы были целиком и полностью под винду, под линуксом в основном только браузеры были и все.
383 2201873
Закиньте аниме в шапку при перекате в следующий раз, чтобы приятнее было здесь находится. Может и количество токсичных анонов тогда поубавиться слегка
384 2201895
>>201873
Я сижу с работы с отключенной графикой что бы начальник не видел.
385 2201913
>>201873
Аниме + стандартная (текущая)
Мимо токсичный дед
386 2201916
>>201913

>токсичный дед


Ебать ты.
Решетки говно, кстати, чем больше пишу - тем больше говно.
еще более токсичный дед
387 2201924
>>201916

> чем больше пишу - тем больше говно


Все так.
Как теперь с новыми решетками отвечать на вопрос "интерфейс вс абсрактный класс" то?

У меня токсичность 13см, а у тебя?
388 2201927
>>201924

>отвечать на вопрос "интерфейс вс абсрактный класс" то?


Можно в ебало плюнуть, например.

>а у тебя?


Старость не радость, уже не 19 а всего 18
zGxD3c2zCXs.jpg460 Кб, 1280x854
389 2201943
>>201873
Вот такую в шапку
390 2201953
>>201943
Хуита.
Хочу нормальное мужицкое аниме.
391 2201961
>>201943
Кпопер, не вынуждай говорить правду о тебе.
самый токсичный дед
392 2201981
>>201943
Захотелось монитор облизнуть
393 2201982
>>201981
Инцел, спок.
394 2202115
Изучаешь-изучаешь C#, платформу .NET, а на собесе будут спрашивать за JavaScript.
Не кажется ли вам, что веб убивает такие языки как C#?
395 2202125
>>202115
Нет. Веб это будущее.
ЖС, если с ТС - норм.
396 2202188
>>201841

>На плюсах только на Qt можно кроссплатформу писать.


Нет, не только Qt.
397 2202203
>>202188
Для Qt всего одна книга есть и то, она коряво написано. Типа вот у нас такая штука. Конец. Следующая глава про штуку №2.
Я поэтому и ушёл из С++ в C#, потому что тут больше книг по десктопу.
logo.png485 Кб, 505x783
398 2202227
>>201943
>>201981
Как насчет пика ближе к реальности?
399 2202234
>>202227
Неплохо. Фон только подправить
400 2202243
>>202203

> потому что тут больше книг


ПОчему ты не уйдешь тогда в тело сталина, телепортиванное в фентези?
logo.png554 Кб, 505x783
401 2202249
402 2202252
>>202249
Ну я имел ввиду под серый. Но так антураж ЖСстреда - тоже ок.
403 2202253
>>202249
Может в кольцо еще что-то типа кубера пиздануть? Таки фронта-бека уже маловато
404 2202256
>>202249
И двойную ЛЛ ф форме хуя.
Кративчик пошел.
Брейншторм кароч
405 2202263
>>202243
Я люблю хорошие книги по программированию. Чтобы там было хорошее оформление, материал структуирован и сама книга большая по объёму.
logo.png555 Кб, 505x783
406 2202283
>>202256
>>202253
Про лл не понял
image.png986 Кб, 552x873
407 2202287
>>202283
Типа такого.
С нашивками - прекол.
Значек кубера чуть меньше сделай.
logo.png558 Кб, 505x783
408 2202297
>>202287
Надо притормозить, а то расценят как вайп ниграми
409 2202309
>>202297
Согласен, перебарщивать с технологиями не надо.
Ну жун фулстек получился.
410 2202312
>>202297
Надо добить тред и перекатить лол.

Какой архитектуры придерживаетесь? Ну там мультлеер, онион, микросервисы? Если микросервисы, тоуже похуй шо там?
Как и что в общие либы для микросервисов вычленете?
411 2202331
>>202312

>Как и что в общие либы для микросервисов вычленете?


Приватный нугет + дублирование кода.
412 2202333
>>202331
А в целом? Кждый микрик на слои разделяете? Или пох?
Нащо дублирование?
413 2202373
>>202188

>Нет, не только Qt.



А на чем? Ну так-то можно хоть на опенгл писать гуи, но ведь никто не делает так.
Из относительно популярных фреймворков для С++ я только Qt знаю. На GTK все-таки немного затруднительно под винду писать, хоть и возможно.
414 2202425
>>201763
Албахари ощущается как ебучий справочник, хотя ответы на почти все вопросы даёт. По шарпам хотелось бы что-то типа руководства для начинающих по джаве от Шилдта, читается полегче. мимовкатун-студент
415 2202435
>>202333
Дублирование из-за баундари контекста. Слои по клин коду.
416 2202437
>>202373

>но ведь никто не делает так


Делают. Например ImGui, который есть и на шарпе.
417 2202444
>>202435

>Слои по клин коду


Это какие?
Меня чет тригерят выражения "по клин коду". Чистый код = хороший код, а не что там пидоры те понакарябали
418 2202448
>>202444
Я неправильно написал. Вариация Clean Architecture. Это сильно от проекта зависит. Есть проекты, где от нахер не нужен. Например, если надо делать действие по флоу.
419 2202487
Поясните мне вот за шо.
ВПФ это уже гавно мамонта?
Если мне сейчас нужно будет гуй накидать на виндовс то изучать хамарин?
Так то мне гуи эти нахуй не упали, консолька маст хев, но все же мб когда пригодится.
А про ВинФОрм ваще уже можно забыть?
420 2202491
>>202487
Про декстоп уже можно забыть
421 2202846
class A
{
[MyAttr("Это А")]
public C SomeShit {get;set;}
}
class B
{
[MyAttr("Это Б")]
public C SomeOtherShit {get;set;}
}
class C
{
override void ToString()
{
// Как здесь достать атрибуты свойств SomeShit/SomeOtherShit в экземплярах A/B, не зная сами типы A/B? Тип, используемый в куче других классов, должен уметь вытаскивать собственные атрибуты.
}
}
423 2202853
>>202849
Рандомчик с гугла? Ну ок.
Видишь он там делает typeof (NormDoc)? Получает свойства NormDoc. Его NormDoc - это мой C. Мне нужны не свойства C, мне нужны свойства класса, в котором C используется как свойство, при том что я этот класс не знаю.
Я чет не могу вдуплить как мне на "породивший" экземпляр выйти. Вот BaseType вижу но это не то.
424 2202869
>>202491

>Про декстоп уже можно забыть



Хуя манямир у вебстудийных зумерков.

>>202487

>А про ВинФОрм ваще уже можно забыть?


Да не, живет еще дохуя где, но преимущественно в рамках поддержки наследия. Если для себя, то вкатывайся сразу в впф. Он еще актуален там, где актуален десктоп. Хамарин расширительная хуйня, никому сам по себе он не нужен.
427 2203127
Сап, погромисты, мой друг нормис после нескольких лет работы на себя решил вкатиться в работу на барина, до этого никогда не работал по этому профилю, оцените, что с резюме?
image.png308 Кб, 923x767
428 2203130
>>203127
Блять, отвалилось
429 2203142
>>203127
Раздел-то про шарп, а не про вам перезвонят.

Никто не любит насебяшников. Лучше придумай что друг работал на дядю, просто по личным причинам был ограничен в выборе работодателя и поэтому приходилось работать за конверт. Мало кто поверит что еще остались конторы с серой оплатой погромистов, но еще меньше кто поверит что успешный самнасебятель вот просто захотел поработать на дядю, а не облажался и побежал за зарплатой или тупо не заебался перемогать и решил найти себе непыльную хуйню с гарантированным доходом.
430 2203144
>>203142
Да я ему и писал, что не стоит про бизнес упоминать, т.к выглядит не очень, как будто он прям такой делюган. На самом деле то он просто роботов писал для своей биржевой торговли, 90% кодинга было, 10% торговли.
Сходил на пару собесов, пока что в одной конторе думают, но сам не хочет туда, там визуал бейсик требуют учить)
431 2203173
>>203144
Блок обо мне не нужен. В обратной хронологии дата, контора, проект, краткое описание проекта (что за херня, а не многопоточность и алгоритмы) + стек технологий, роль на проекте.
15959776.jpg36 Кб, 640x454
432 2203264
Закрываю скоро третий год во второй кампании, пришло время перекатываться, а везде теперь требуют кафки/кубернетес, а я с ними не работал на текущем месте, вот же СУКА.

Опыт по .NET разный, но с микросервисами немного только работал, а по моим наблюдениям работа на .NET разбивается на три подвида:

1. Фулл-стак крудошлёп - имхо бесперспективная хуйня в плане специализации, уровня принеси подай в стартапе / мелкой продуктовке, где каждый год нужно с сумками перелазить на другую шлюпку аля очередной ФРЕЙМФОРК для фронта.

2. Гречка забитая - типичная конторка, где средний пациент просиживает на стуле спокойно 10+ лет, делая новые проектики в 2к21 на винФормс. Про контейнеры здесь не слышали, веб разной степени уебищности уже встречается, но в отличии от первого типа, тут вам не стартап, а энтерпрайз со всем колхозом. Работают по методике Kaban. В качестве бонуса может прилагаться WebForms/WCF либо другая забытая цивилизацией технология.

3. Alpha* - уже перешли на .NET6.0, часто встречается Линукс, Майкрософт презирают. Микросервисная архитектура, пишут книги для форексов, софт для алго-трейдинга, всякий хай лоад. К фронту/десктопу тут не прикасаются. От первых двух типов отделены световыми годами.

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

Хуево получается, кампании первых двух типов для переката мне не интересны, а третьему типу - уже не интересен я. Нахуй так жить вообще.
3.
433 2203279
>>203127
На приеме у венеролога:
- Понимаете доктор у моего друга тут такая проблема... Ну он
недавно познакомился с девушкой..
- Ладно снимайте штаны и показывайте своего друга!!!
434 2203282
>>203127
>>203130
Как-то... странно выглядит. Чувствуется, что гребец не галерный.
Вапервых, на онглийском должно быть.
И пересмотри на опечатки "net" - ну среьезно? Тебе самому не стыдно?
Вместо "роботл роботу на себя" напиши кртко о проекте: в какой сфере, какие технологии, какие роли занимал .

"Собвсвенные типи данных" - каво?
435 2203283
>>203279
Да не, он просто от двачей далек, поэтому я за него тут. Да и ему страшно прям все так в лицо выслушивать, он то начинал еще в те времена, когда вкат на изи был, поэтому все это время пока бабки с биржи шли, жил в мыслях, что если вдруг кончится, то быстро перекатится в офис. Ну вот щас бабки перестали капать, а в офис брать не спешат.
436 2203288
>>203264

>Майкрософт презирают


> используют "высеры" Майкрософта


Как называется эта болезнь?
437 2203292
>>203282
Спс, все ему передам
Стикер319 Кб, 512x512
438 2203293
>>203264
После кубернетесов на тебя будут вешать тучки с облачками и билд пайплайнами. Админы (не девопсы) будут отвечать только за секурити.
439 2203304
>>203282

>роботл роботу на себя"


>"Собвсвенные типи данных" - каво?



— Одно слово — румын.
— Так он же болгарин
— Да?! А какая разница
440 2203311
>>203288
Сознательность.

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

У них есть много говна, у них есть хорошие продукты. Alpha* как раз не жрёт слепо продукцию Майкрософт по типу упоротых яблочников и гречки, фанатов любимой кампании, а выбирают только сливки, чем .NETCore и является.

>>203293
Тяжело.
441 2203317
>>203304
Каво (2)?
У меня в клаву мусор забился, опечатываюсь.
442 2203321
>>203311

>энтерпрайза


Как будто что-то плохое
image.png570 Кб, 576x384
443 2203339
>>203311

>Сознательность.


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

444 2203367
>>203264
Считаю Azure лучшим облачным провайдером, презираю амазон, его веб1.0 интерфейс и ональную модерацию ВСЕГО блядь, на любой пук - пиши в саппорт.
445 2203376
>>203367
дваждую.
Но ты не альфа*, получается. Слишком клятых майков хвалишь.
image.png427 Кб, 650x917
446 2203455
Шарпач, пикрил подходит в качестве учебного пособия для обучения?
kek.png181 Кб, 1226x711
447 2203484
Спасайте, то ли я ебнулся, то ли хз. Почему выдается НРЕ, если я проверяю на налл первым же условием?
448 2203489
>>203484
У тебя HasClaim падает после операции ИЛИ?
449 2203497
>>203484
>>203489
Отбой, я понял что я тупой.
450 2203499
>>203455
В качестве учебного пособия подходит то что будет заставлять тебя не сидеть на жопе и пилить код.
Ну серьезно. Я на первую работу шарпоняшей попал вообще из-за того что хрюша не отличала C# от C++, а на месте слишком нужны были кадры, потому никаких особых смотрин и ворчаний не было, просто дали неделю на изучение шарпа и сразу таски начали кидать.
451 2203500
>>203293
Нахуа куберы в облачках, если они и без них все могут?
Ну вотя пиздолю арм темплейтом свое говно в азур, выбираю аппсервисплан - и мне поебать, оно само скейлится.
Что мне даст кубер?
452 2203501
>>203499
Кек, я тоже устраивался на джуниор C++ разраба.

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

Ну я в общем вышел покурить и больше не возвращался в ту контору на самом деле нормально ушел, быстро соорентировался.
453 2203508
>>203500
У кода без докера постоянно проблемы с энвом. Когда много контейнеров, их сложно становится поддерживать, если например я хочу запустить на дев машине. На дев машине мне масштабирование может быть и не нужно, но я манал запускать докер контейнер по отдельности. В облаках можно и без кубернетеса хостить и масштабировать докер контейнеры, но зачем делать дважды одно и тоже?
454 2203665
>>201924

>Как теперь с новыми решетками отвечать на вопрос "интерфейс вс абсрактный класс" то?


А в чём подвох? Не увидел в последних обновлениях ничего такого.
мимовкатун
455 2203670
>>203665
В том что раньше ответ был:
Интерфейс не содержит реализации.
Сейчас - вполне может содержать.
>>201924

> Как теперь с новыми решетками отвечать на вопрос "интерфейс вс абсрактный класс" то?


Ну, как минимум интерфейсы все еще не могут иметь внутреннего стейта. Абстрактный класс - может.
456 2203677
>>186992 (OP)
Сап, не работал с .Net 2 года, всё это время либо чилил, либо ебошил на чистом старом C прошивки под мк, короче суть в том, что я этот фрейморк нехило так подзабыл...

Вообщем как вкатиться опять? Я думаю, что если буду начинать с самого начала, то вкачусь с утроенной скоростью, т.к. всё учил уже до этого, но как-то не хочется опять с книжками дрочиться но все равно прийдется. У меня есть 10 месяцев, чтобы вкатиться в fullstack разработку, стоит ли мне повторять основы?
457 2203682
>>203677
Там за 2 года не так все поменялось, лол. Появились Span, Memory, рекорды и прочее по мелочи.
Я не знаю что ты там будешь на .net делать, но абстрактно - туду-лист сделать советую(ну, типа если десктоп или замарин - MVVM, если веб - апишку, а фронт на каком-нибудь реакте/vue/ангуляре, если фуллстек полностью на .net - посмотри на блазор, ну или классические MVC), для доступа к базе - ef core/dapper
458 2203771
анон как сделать что-то вроде этого
у нас есть число например 6666

и делитель 1000

и надо узнать сколько нужно раз сделать что бы получилось
1) 1000
2) 1000
3) 1000
4) 1000
5) 1000
6) 1000
7 666
459 2203775
>>203771
я вообще не знаю как эта операция называется, это похоже на деление с остатком но не то
460 2203799
На каком языке писать коммиты в гит для пет-проекта который пойдёт в портфолио для работодателей в моём мухосранске? На русском или английском? А комменты в коде? А документация/readme? Мне привычнее всё на английском, но не знаю как принято в русской корпоративной среде.
461 2203800
>>203771
Чтобы получилось что?
462 2203809
1.png13 Кб, 392x430
463 2203840
464 2203867
>>203840
а это точно найболее быстрый способ? так и я могу написать но такой вот цыкл выглядит страшно
465 2203917
Этто. Сделайте пожалуйста кодревью моих трудов. Если не сложно.
https://github.com/SecretPenguinusBot/ToDoApp/tree/main/src/backend
466 2203936
>>203867
Ну, можешь цикл заменить на:
number/d
Разницы не будет)))
467 2203938
>>203936
а иначе никак нельзя? задачка вроде простенькая, какую-то формулу, или магический оператор?
1.png8 Кб, 381x136
468 2203940
>>203938
Куда проще-то?
469 2203941
>>203809
return 7;
470 2203957
>>203917
- не .NET 6
- нет вообще настроек для сваггера
- есть AddNewtonsoftJson
- UseSqlite вместо чего-нибудь типа постреса
- нет аутентификации и авторизации
- нет валидации
- название неймспейса с маленькой буквы
- EntryPoint и RunAsync - это какое-то петрясянство - удали
- какой-то очень кривой коннекшен стринг без секурити и юзер сикретов
- JsonIgnore в Entity - говнокодер!
- очень сильно насрали в IRepositoryActionResult.cs + настрой иде, чтобы форматировало файл на сохранении, прикрути хотя бы editorconfig
- в IRepositoryActionResult.cs изобретение пятого колеса
- неправильное использование иока
- бесполезные логи
- использование OkResultWithData выглядит как дичь
- не используется cancellationToken, не однородный код с = default
- дублирование кода в try-catch в репозиториях
- не плоди ненужные папки для контроллеров
- дублирование кода для респонса в контроллерах
- не перечисляй атрибуты через запятую и не пиши все на одной строке в коде, что ты экономишь? читабельность просто пиздец
- пустые строчки в начале файла перед юзингами
- контроллер валидацией не занимается
- магическое число 500
- ApplicationContext - какой-то вздрочь, не называй классы как Context, Manager и так далее, код вообще пиздец в файле
- версия проекта не так делается, как и название
- ApplicationBootrstrap - бред
- ServerTimeImpl - удали эту херь и перепиши код таким образом, чтобы она не понадобилась
- тесты где?

Не тянешь даж на трейни.
470 2203957
>>203917
- не .NET 6
- нет вообще настроек для сваггера
- есть AddNewtonsoftJson
- UseSqlite вместо чего-нибудь типа постреса
- нет аутентификации и авторизации
- нет валидации
- название неймспейса с маленькой буквы
- EntryPoint и RunAsync - это какое-то петрясянство - удали
- какой-то очень кривой коннекшен стринг без секурити и юзер сикретов
- JsonIgnore в Entity - говнокодер!
- очень сильно насрали в IRepositoryActionResult.cs + настрой иде, чтобы форматировало файл на сохранении, прикрути хотя бы editorconfig
- в IRepositoryActionResult.cs изобретение пятого колеса
- неправильное использование иока
- бесполезные логи
- использование OkResultWithData выглядит как дичь
- не используется cancellationToken, не однородный код с = default
- дублирование кода в try-catch в репозиториях
- не плоди ненужные папки для контроллеров
- дублирование кода для респонса в контроллерах
- не перечисляй атрибуты через запятую и не пиши все на одной строке в коде, что ты экономишь? читабельность просто пиздец
- пустые строчки в начале файла перед юзингами
- контроллер валидацией не занимается
- магическое число 500
- ApplicationContext - какой-то вздрочь, не называй классы как Context, Manager и так далее, код вообще пиздец в файле
- версия проекта не так делается, как и название
- ApplicationBootrstrap - бред
- ServerTimeImpl - удали эту херь и перепиши код таким образом, чтобы она не понадобилась
- тесты где?

Не тянешь даж на трейни.
471 2203960
>>203957
С половиной согласен. С остальным - пошол нахуй ," дажелень объяснять".мавроди.джпг. на трейни тянет
472 2203964
>>203960

>дажелень объяснять


Только перечень проблем занял простыню текста. Ты необучаемый. Попробуй фронтенд.
0b418b4098521671f3788c6deff3c828.jpg139 Кб, 600x557
473 2204005
>>203957

>не .NET 6


Он еще в превью жи.

> нет вообще настроек для сваггера


А зочем?

> UseSqlite вместо чего-нибудь типа постреса


У меня нет постгреса на ноутбуке(((

> нет аутентификации и авторизации


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

> название неймспейса с маленькой буквы


Ну, это из-за того что при создании проекта с консоли - неймспейс по имени папки делается, а папка с маленькой

> EntryPoint и RunAsync - это какое-то петрясянство - удали


Почему? Мне нравится.

> какой-то очень кривой коннекшен стринг без секурити и юзер сикретов


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

> JsonIgnore в Entity - говнокодер


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

> очень сильно насрали в IRepositoryActionResult.cs + настрой иде, чтобы форматировало файл на сохранении, прикрути хотя бы editorconfig


У меня нет иде((( Я пишу в виме.

> - в IRepositoryActionResult.cs изобретение пятого колеса


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

>неправильное использование иока


Не понял

> бесполезные логи


Согласен

> использование OkResultWithData выглядит как дичь


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

> не используется cancellationToken


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

> дублирование кода в try-catch в репозиториях


А как надо-то?

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


Ну, так это пока там один контроллер. А потом появятся всякие DTO и прочие штуки. Куда их девать-то? Не к базе же они относятся, а к тому что получает контроллер и что отдает.

> не перечисляй атрибуты через запятую


Я не экономлю, просто мне так больше нравится.

> пустые строчки в начале файла перед юзингами


Оставлены для того чтобы вставить копирайт проще было!

> контроллер валидацией не занимается


Это я знаю. Но делать фильтр пока не хотелось, а валидации в репке как мне кажется не место.

> магическое число 500


Ну, допустим тут я согласен, с другой стороны это же статускод который все знают. Как 0 в Си, все знают что это значит.

> версия проекта не так делается, как и название


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

> ApplicationBootrstrap - бред


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

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


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

> тесты где?


За полтора часа только это успел(((

> Не тянешь даж на трейни.


Окей(((
0b418b4098521671f3788c6deff3c828.jpg139 Кб, 600x557
473 2204005
>>203957

>не .NET 6


Он еще в превью жи.

> нет вообще настроек для сваггера


А зочем?

> UseSqlite вместо чего-нибудь типа постреса


У меня нет постгреса на ноутбуке(((

> нет аутентификации и авторизации


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

> название неймспейса с маленькой буквы


Ну, это из-за того что при создании проекта с консоли - неймспейс по имени папки делается, а папка с маленькой

> EntryPoint и RunAsync - это какое-то петрясянство - удали


Почему? Мне нравится.

> какой-то очень кривой коннекшен стринг без секурити и юзер сикретов


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

> JsonIgnore в Entity - говнокодер


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

> очень сильно насрали в IRepositoryActionResult.cs + настрой иде, чтобы форматировало файл на сохранении, прикрути хотя бы editorconfig


У меня нет иде((( Я пишу в виме.

> - в IRepositoryActionResult.cs изобретение пятого колеса


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

>неправильное использование иока


Не понял

> бесполезные логи


Согласен

> использование OkResultWithData выглядит как дичь


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

> не используется cancellationToken


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

> дублирование кода в try-catch в репозиториях


А как надо-то?

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


Ну, так это пока там один контроллер. А потом появятся всякие DTO и прочие штуки. Куда их девать-то? Не к базе же они относятся, а к тому что получает контроллер и что отдает.

> не перечисляй атрибуты через запятую


Я не экономлю, просто мне так больше нравится.

> пустые строчки в начале файла перед юзингами


Оставлены для того чтобы вставить копирайт проще было!

> контроллер валидацией не занимается


Это я знаю. Но делать фильтр пока не хотелось, а валидации в репке как мне кажется не место.

> магическое число 500


Ну, допустим тут я согласен, с другой стороны это же статускод который все знают. Как 0 в Си, все знают что это значит.

> версия проекта не так делается, как и название


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

> ApplicationBootrstrap - бред


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

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


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

> тесты где?


За полтора часа только это успел(((

> Не тянешь даж на трейни.


Окей(((
0b48331100b81facbf8e0a8bc24fe661.png229 Кб, 464x750
474 2204021
>>203957
Да. Я чет совсем охуел и сразу вопросы задавать стал.
Спасибо за фидбек. Вот.
475 2204078
>>204005

>Он еще в превью жи.


4 дня до релиза.

>идентити-сервер стал платным


Это OAuth. Можно было бы и без OAuth.

>Почему?


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

>тут хотел быстренько


Зачем тогда просить ревью, если код тяпляп?

>А как правильно-то было бы?


Инфраструктура должна быть такая, чтобы ты не делал Ctrl+C и Ctrl+V одного и того же. Резалты мог аспешные переюзать.

>А в репке - как-бы суть же в том, что ct - использовать если допустим пользователь запросил из базы здоровую фигню


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

>А как надо-то?


Мидлварь.

>статускод который все знают


Да никто не знает. Перейди в бугурт тред и почитай его.

>Или имя приложения должно будет локализованным быть


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

>Каким образом мне это провернуть иначе?


Проблема в тестах.

>Опять же - сами майки в кестреле подобную штуку используют.


Можно вынести или в базу данных (дата не указана = текущая дата), или пробрасывать дату через весь код.

>За полтора часа только это успел


Откуда ограничение в полтора часа?
475 2204078
>>204005

>Он еще в превью жи.


4 дня до релиза.

>идентити-сервер стал платным


Это OAuth. Можно было бы и без OAuth.

>Почему?


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

>тут хотел быстренько


Зачем тогда просить ревью, если код тяпляп?

>А как правильно-то было бы?


Инфраструктура должна быть такая, чтобы ты не делал Ctrl+C и Ctrl+V одного и того же. Резалты мог аспешные переюзать.

>А в репке - как-бы суть же в том, что ct - использовать если допустим пользователь запросил из базы здоровую фигню


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

>А как надо-то?


Мидлварь.

>статускод который все знают


Да никто не знает. Перейди в бугурт тред и почитай его.

>Или имя приложения должно будет локализованным быть


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

>Каким образом мне это провернуть иначе?


Проблема в тестах.

>Опять же - сами майки в кестреле подобную штуку используют.


Можно вынести или в базу данных (дата не указана = текущая дата), или пробрасывать дату через весь код.

>За полтора часа только это успел


Откуда ограничение в полтора часа?
476 2204092
>>204078

> Резалты мог аспешные переюзать.


Аспешные резалты в репе? А ты точно прогромист?

>Можно вынести или в базу данных (дата не указана = текущая дата), или пробрасывать дату через весь код.


Хуета. Все он правильно с датой сделал. Разве что назвать надо не серверТайм (апликейшн код не должно беать на сервере он там или в где), а дейтТаймПровайдер или типа того.
477 2204096
>>204092

>Аспешные резалты в репе?


В контроллере.

>Хуета


Провайдер в список Manager, Context.
478 2204098
>>204096

>Manager, Context


Ну как тогда называть-то а?
Давай тогда еще к "контроллер" придеремся.
479 2204100
>>204096

>>Аспешные резалты в репе?


>В контроллере.


Так разве у него там и так не аспшные? Там он в репе свои велосипедные ОкРезалты юзает.
480 2204101
>>204098
Контроллер - нормальное название в паттерне MVC. Но ненормальное название просто левому коду (не веришь, глянь как на Unity пишут говнокодеры, это их любимое слово). Называть вещи надо осмыслено. Менеджер и провайдер - нехуя не осмысленно. Делает хуй пойми что.
481 2204105
>>204101
Ну а как его назвать-то?
Ладно, менеджер - довольно пространно, но как блядь назвать класс, который делает всякое РАЗНОЕ с ентитей?
Провайдер - нормальное название, поставщик чего-то, в данном случае поставщик даты.
482 2204111
>>204098

>Context


+
И не понимаю, чего ты к Context приебался. Тоже довольно точно описывает себя (в отрыве от примера кода выше, не помню что там в контексте)
483 2204112
>>204105
Зачем тогда тебе нужны репозитории? Такие же поставщики данных.

Класс не должен делать всякое разное. Нарушаешь Single Responsibility.
484 2204116
>>204101
Ты Сакутина пересмотрел?
Провайдер - одно из стандартных имен для интерпрайза. Посмотри код самого дотнета современного, а лучше асп. Или посмотри на джаву, где провайдер погоняет контекстом и сверху ресолверы с хендлерами. Это как раз таки понятные любому человеку, который занимается разработкой вещи, в отличии от "предметноориентированных" названий, где чтобы понять что это блядь за хуета - ты должен быть в контексте предметной области.
485 2204117
>>204116
Нет. Объясню на простом примере. Что делает UrlProvider? Или StringProvider?

Резолверы - антипаттерн.
486 2204118
>>204112

>Такие же поставщики данных.


Нет. Хранилище, а не поставщик. Да и ,во вторых, все-таки есть общепринятые правила, понятные всем с первого взгляда.

Да, на счет менеджера - буддет понятно "свалка для всего".

>Класс не должен делать всякое разное. Нарушаешь Single Responsibility.


Зато ПРОСТО, не нарушил КИСС.
Ну и как бы ты сделал обычный круд для юзера?

>>204116
А на счет менеджера и контекста что скажешь?
487 2204121
>>204118
Так поставляет что? Я бы тебе показал охуенный код провайдера, что ты сам охуеешь, но не могу.
488 2204123
>>204118

>менеджера и контекста


Бывают еще хелперы, хендлеры, коры, энжайны.
489 2204128
>>204117
дает возможность получить КАКУЮ-то урлу или стринг, возмржно дефолтную, если без параметров.
Окей. КарентДейтТаймПровайдер будет лучше, но карент можно скипнуть ибо всем и так понятно.

"Резолверы " - шо це?
Гугл ведет к стратегии и ДИ резолверу

>>204121
дейтТайм, очевидно же.

>>204123
И норм. В ринципе сразу понятно что это.

Так как вы круд простой спроектируете, то, умники? С анемичной моделью.
490 2204130
>>204118

>менеджера


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

> контекста


В обычной практике - сущность которая сосредотачивает в себе некий стейт и всю нужную информацию для него. Опять же нормальная тема, причем далеко не только на этапе прототипа. Все эти контроллеры, мидлвары, фильтры и прочее из ASP по факту вращаются вокруг того самого HttpContext'а. Как-то живем. Работа с базой в EF так же происходит через контекст. Никто не жалуется. Из других языков - в андроид-разработке - контекст на контексте и контекстом погоняет. В спринге - тоже контекстов куча. Как-то разбираются люди и ведут разработку.
491 2204132
>>204128
Резолвер - это сервис локатор. Используется внутри ДИ. Но тебе ничего не мешает пропихнуть его в какой-либо класс и резолвить что хочешь.

>КАКУЮ-то урлу или стринг


Ну, вот так баги и фиксятся по несколько часов, дней, недель. Есть класс, делает хуй пойми что, надо идти в имплементацию. Пока ходил по разным классам, забыл что делал первый.
492 2204135
>>204130

>На этапе прототипирования


Прототип выкидывать надо и писать с нуля. Иначе никто такой класс резать не будет. Будет висеть 15+ лет.
493 2204138
>>204130
А составные части как назовете-то? Ну вот, на примере юзерменеджера?

>>204132
Стоп стоп.
Каким это образом дейтТаймПровайдер стал сервис локатором? Это фектори по сути. Мы кокрастоке решили проблему, убрали околосервис локатор ДейтТайм.Ноу.
Ок. Назвем ДейтТаймФектори? Хуита. Все равно цель-то другая.
494 2204140
По мотивам, лол:

I know this is a pretty old thread but the concept of ‘SomethingManager’ has gripped me for years since I first encountered the concept and I’ve been mulling it over ever since. To me it seems that the business of software is a multi-level occupation that involves essentially three layers.

We’re not only in the business of creating software, we’re in the business of creating processes to create software and to that end we’re in the business of creating organizations which create processes to create software.

It’s pretty well known according to Conway’s Principle that organizations that design systems (i.e. processes or software) will essentially design systems that mirror the communication patterns within the organization and which reflect the quality of communications within the system. This type of self-similarity cannot be avoided, especially long-term and at scale.

If the *Manager pattern is an anti-pattern at the software level, my instinct tells me it’s also an anti-pattern at the org level and these people who are going around managing the rest of us are pretty much designed to enforce compliance and whatever vacuous purpose the manager class serves.

I feel we ought to extrapolate from the code that if the SomethingManager doesn’t serve in the code it also doesn’t serve in the culture.
495 2204142
>>204138

>Каким это образом дейтТаймПровайдер стал сервис локатором?


Таким, что я отвечал на две разные темы. С друг другом не связанные.
496 2204148
>>204142
Ну окей.
Не понятно зачем ты вообще тогда "резолверы" упомянул.

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

Менеджер - да, год обжект. Как правило содержит почти всю логику, связанную с обьектом и взаимодействие с репозиторием.
497 2204152
>>204148

>Не понятно зачем ты


Потому что я отвечал на стену текста.

>В общем, у меня мнение, что провайдер - ок.


Что делает UrlProvider или StringProvider?
498 2204178
>>204148

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


Кстати не всегда плохая практика на самом деле.

Банально. Давай преставим что тебе нужно сделать микросервис для интеграции вашей системы с внешней. По сути задача: есть внешнее апи. Есть ваш микрорсервис в котором нужны данные из внешней системы, но они представлены немного в другом виде. Нужно сделать микросервис, который по cron'у - запрашивать данные из внешней системы, если нашел новые - конвертировать их в объекты пригодные для уже вашего домена и сохранять уже у вас.
Ты можешь конечно сделать:
CronExpression
CronTrigger
ExternalApiHttpClient
NewDataChecker
Mapper
InternalApiHttpClient

А можешь сделать один класс IntegrationDaemon и в нем все это делать. А наружу вытащить только методы Start, Stop и Options. И поддерживать такой код будет значительно легче, чем то что ты мог наделать вот тем вот пиздецом ООПшным.


>>204152
Что делает User? Что делает Program? Что делает HttpClient? Что делает CPP_Compiler? Что делает AABB? Что делает AST? Что делает Lexer? Что делает Parser? Что делает ExpressionEvaluator?
Что говнокодер там написал - то они и делают. Охуеть. Да? Внезапно.
499 2204195
>>204178

>Охуеть. Да? Внезапно.


Ну ты обосрался, потому что на вопрос не можешь ответить и пошел вилять жопой второй раз. Внезапно, да.
500 2204203
>>204195
Потому что это имена классов и без контекста классы - могут делать что угодно. Как и любой другой класс, у которого ты знаешь только имя.
Point - хорошее имя.
Однако, в одном случае это точка в математическом смысле и хранит в себе координаты, плюс в зависимости от того богатая или анемичная у нас модель - может содержать в себе логику по всяким операциям с точкой, еще и в зависимости от домена там может быть точка на двумерной плоскости, в трехмерном пространстве или в n-мерном пространсте, если мы какие-то математические штуки пишем.
А в другом случае - это лексема при парсинге.
А в третьем - точка как символ в тексте.
И во всех случаях это имя нормальное, но просто увидев его, не видя хотя бы интерфейса - ты не скажешь, что это за Point.
501 2204240
>>204138

>ДейтТайм.Ноу


Не понимаю таких людей. Раскладку сменить лапки болят? Почему читатель (коих много, а писатель всегда один) должен тратить лишнее время на то, чтобы понять что ты там имел в виду?
502 2204252
>>204178

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


Потом классы на 9000 строк. Я тут только пару строчек добавлю.

>который по cron'у


Quartz или FluentScheduler: Job (Execute) + Scheduler (Start/Stop). Без CronExpression, CronTrigger, IntegrationDaemon. Mapper - это что, файл для всех маппингов на еще 9000 строк кода?

>ExternalApiHttpClient


>InternalApiHttpClient


Ага, SuperInternalApiHttpClient. Я не собираюсь дублировать модели, хардкодить ссылки и обрабатывать сериализацию. Rpc можно давно сделать даже из Http через OpenAPI.

>NewDataChecker


NewDataValidator

>наделать вот тем вот пиздецом ООПшным


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

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

Касательно DateTime все еще не убедил. Это такое минное поле, в которое лучше не лезть. Чтобы потом не плодить UtcNow/Now на Offset, TimeZone, TimeSpan, Epoch. И не был такой соблазн добавить в этот Provider еще чего, да побольше. DateTime лучше выкинуть из проекта как и идею написать на него Provider.
503 2204358
>>203957

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


Вот за такой совет тебе надо запретить приближаться к исходникам ближе чем на 300 метров. Другое дело, что не надо изобретать велосипед и взять NodaTime.
504 2204380
>>204178

>Что делает User


Срет невалидными данными в мое прекрасное творение.

>Что делает Program


Моя - делает заебись. Остальные делают говно.

>Что делает HttpClient


Клиент? Увожаемый человек. А сколько сотыг он платит?

>Что делает CPP_Compiler


Удалено по требованию г-на майора
505 2204392
>>204358

>NodaTime


А зачем? Что он дает, чего нету в стандартной либе?
506 2204432
>>204392
Умеет нормально работать со временем ¯\_(ツ)_/¯
А то пориджи сначала засирают код с DateTime.Now/DateTime.UtcNow, а потом узнают, что мир оказывается живет не только в разных часовых поясах, но и по разным календарям.
507 2204448
>>204432
Пример какой-то?
Не знаю, ни разу не нужны были "разные календари".
По сути DateTime.UtcNow хватало на беке, больше дрочи с датами на фронте.
ыс.png5 Кб, 1184x73
508 2204464
>>204448
Ну если нужно только зафиксировать момент, то utc хватает. Но все равно нужен интерфейс часов, а не дергать статические классы. А то потом тестик написать придется, который проверит поведение в новогоднюю ночь, а если все прибито к DateTime.Now, то такой тест можно запустить только раз в год (ну или там вот такое проверить https://ru.wikipedia.org/wiki/Дополнительная_секунда).
Даже майки уже начинают о чем-то догадываться и накостылили DateOnly/TimeOnly и используют пик
509 2204483
>>204464
Да понятно, что инжектить надо не о том разговор.

ЧТо это за костыль на пике? Они округляют, что ли? Типа быстрее математических операций?

За доп секунду не понял. Ну стандартный дейтТайм учтет же ее? Ну да и норм.
https://stackoverflow.com/a/55993613
ыщщкы.png7 Кб, 1242x113
510 2204498
>>204483

>Они округляют, что ли?


Ну да.
511 2204562
>>204101

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


Вот прямо за живое задел.
512 2204651
>>204498
Побитный сдвиг туда-обратно не быстрее будет?
513 2204658
>>204651
А не, не будет. Круглые секунды так не получатся.
514 2204815
Почему вот в примере с чистой архитектурой интрфейсы в Application слое? Разве не должны быть в Domain?
https://github.com/jasontaylordev/CleanArchitecture/tree/main/src/Application/Common/Interfaces
515 2204829
>>204815

> в примере с чистой архитектурой


Открыл рандомный файл и проиграл (https://github.com/jasontaylordev/CleanArchitecture/blob/main/src/Domain/ValueObjects/Colour.cs )
-пустой статический конструктор
-пустой приватный конструктор, который не используется
-сначала создается объект, потом валидируется параметр для его создания
Челу явно платят за количество написанных строк.
516 2204835
>>204829
Иди блядь матчасть изучай
https://www.jetbrains.com/help/resharper/EmptyConstructor.html
+ пустой приватный шоб интсанс создать извне низзя было
517 2204840
>>204835
Может ты сначала изучишь что-нибудь? Если удалить пустой приватный без параметров, а оставить приватный с параметрами кто извне сможет создать инстанс?
518 2204848
>>204840
Он он оба конструктора юзает, так что твой доеб все равно не защитан.
519 2204853
>>204835
Где, там где в инициализаторе сразу задается свойство, для установки которого есть конструктор? При том, что состояние с кодом налл там явно невалидное.

И нахуя ты скинул ссылку на синглтон, если в коде фабричные методы, которые создают разные инстансы?
520 2204855
>>204848
А может ты сможешь оправдать private set для Code вместо ридонли?
521 2204857
>>204855
Может мне вообще сейчас все проперти начать оправдывать и филды юзать?

>>204853

>И нахуя ты скинул ссылку на синглтон, если в коде фабричные методы, которые создают разные инстансы?


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

Вообще, мне больше начальный вопрос интересует:
Почему интрфейсы в Application слое? Разве не должны быть в Domain?
522 2204866
>>204857

>Может мне вообще сейчас все проперти начать оправдывать и филды юзать?


Что? Ты мне скажи зачем давать возможность перевести состояние класса в невалидеое, если можно не давать? Напомню, что проперти тоже может быть ридонли.
>>204857

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


Только это не имеет отношения к коду в котором нет ни синглтона ни ленивой инициализации.
>>204857

>Почему интрфейсы в Application слое


Чел не стесняется говнокодить, в примере-эталон, а ты такие вопросы задаёшь. Но вообще, интерфейсы объявляет тот, кто их будет использовать (ну или посредник), но не тот, кто их реализует.
523 2204872
>>204866

>Что? Ты мне скажи зачем давать возможность перевести состояние класса в невалидеое, если можно не давать? Напомню, что проперти тоже может быть ридонли.



Ну внутри класса - делай шо хочешь, паблик From(string code) он проверяет. Инстанс создает, наверное, чтобы не хранить кода в отделных стрингах.
Чего ты доебался я не понимаю.

>Но вообще, интерфейсы объявляет тот, кто их будет использовать (ну или посредник), но не тот, кто их реализует.


Так где их надо было засовывать, в Домейн таки?
524 2204878
>>204872

>Ну внутри класса - делай шо хочешь


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

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


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

>Так где их надо было засовывать


ХЗ, говорю же, проиграл на первом же файле.
spf.png41 Кб, 884x325
525 2204879
>>204878

>(пик)

526 2204887
>>204878

>ХЗ


Ну бля. 7к звезд почти, а ты хзкаешь.
527 2204890
>>204887
Создай ишью на гитхабе, пусть автор или кто знаком с проектом пояснит. Вроде там движуха какая-то есть.
528 2205040
за путина
529 2205154
Как лучше поступать с ветвями, которые уже не используются? Можно ли в VS скрыть их из списка всех ветвей не удаляя, чтобы если что увидеть, какие коммиты на ней были сделаны?
530 2205170
>>205154
Замержил - удаляй.
531 2205264
>>205154
Так ты мержи без фф, а ветку удаляй. Ветка это же всего лишь ссылка на коммит - можно удалять, можно создавать из любой точки.
532 2205292
Простой вопрос но я заебался искать: в какой версии шарпа было добавлено ключевое слово params?
533 2205299
>>205292
В первой
534 2205305
>>205299
Точно, спасибки!
https://www.ecma-international.org/publications-and-standards/standards/ecma-334/

Какое же гугл 2021 говно, охуеть просто.
535 2205523
536 2206472
>>203940
а зачем там ваил?
537 2374105
Цель вкатиться в backend веб разработку. Накачу базовый курс C#, а затем смотрю на ASP.NET? Есть ли альтернативные решения, которые будут иметь больше смысла?
Тред утонул или удален.
Это копия, сохраненная 14 июня 2022 года.

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

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