Сохранен 537
https://2ch.hk/pr/res/2186992.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C#/Сишарп/.NET Тред #32 /csharp/

 Аноним 18/10/21 Пнд 20:02:24 #1 №2186992 
image
Прошлый тред: >>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
Аноним 18/10/21 Пнд 20:03:11 #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
Аноним 18/10/21 Пнд 20:03:41 #3 №2186996 
Спиженные книги на русеке: https://mega.nz/folder/zdoCBLqY#Q6eS_76VECpQZmPmw9vLew

Шапка протухнет к следующему перекату.
Аноним 18/10/21 Пнд 20:17:35 #4 №2187016 
Прошлый тред - самый хуевый тред. Одни деды декстопчики, вкатуны со своими квадратами и надменные сениоры, которым лень два слова написать.

Вот бы декстоп нахуй, вкатунов в гугл отправлять и обсуждать себе орхитектуры говно бекендов, эх...
Аноним 18/10/21 Пнд 20:19:30 #5 №2187017 
>>2187016
+
хейтер залез не под конец, а в середине.

Перекатчик с пхп в шарфы, ты теперь срать будешь вначале треда?
Аноним 18/10/21 Пнд 20:25:31 #6 №2187025 
>>2187016
>>2187017
Вы зумерки, бекенд на шарпе нахуй не нужен. И никогда он не был основным рынком решетки
Аноним 18/10/21 Пнд 20:36:57 #7 №2187039 
image.png
image.png
image.png
image.png
О. Вот и дед возбудился и начал галлюцинировать:
>>2187025
Аноним 18/10/21 Пнд 21:45:03 #8 №2187095 
>>2186992 (OP)
Сколько по времени учить С#, если я немного умею в питухон и жс?
Аноним 18/10/21 Пнд 21:57:14 #9 №2187106 
>>2187095
Неизвестно.
Но если айсикью трехзначное, ты мотивирован и будешь 8 часов в день штудировать и развиваться, то через 3 месяца ты будешь лучше половины посетителей этого треда и третины вкатунов. Но именно, что 8+ часов в день тебя будет переть от того, что ты делаешь.
Ты с направлением определись сразу.
Вот может и спорно, но вот прям вчистую учить С# и не надо, можно пройти метаинт, а дальше уже изучать выбранную платформу и по ходу дела задумываться о языке.
Аноним 18/10/21 Пнд 22:22:36 #10 №2187135 
>>2187106
Я просто открыл роадмап и охерел от количества всего. Пока не вникался что конкретно зачем нужно, но показалось, что 3 месяца - это очень оптимистично. Сам умею немного в ООП, паттерны. На кодварсах решаю задачи на 4-5 кю (на питонах). По другому хз как передать уровень своей некомпетентности.
Аноним 18/10/21 Пнд 22:28:10 #11 №2187142 
>>2187135
Так блядь роадмап в любой другой платформе будет такой же. Только вместо 1-2 общепризнаных либ как в .нет там будет "выберете сами" или даже "напишете сами" а потом на реальном проекте выучите другое
Аноним 19/10/21 Втр 11:26:49 #12 №2187416 
Ньюфаг, пытаюсь запилить сорт оф записную книжку с Авалонией и МВВМ.

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

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

Где распологать всё то, что не относится к интерфейсу? Например проверку нового объект Note перед тем, как внести его в коллекцию, и что-то вроде истории удалённых объектов.
Аноним 19/10/21 Втр 12:16:45 #13 №2187441 
>>2187416
>Есть класс Note, состоящий из id, названия, содержания, даты создания и т.п. Где его желательно расположить?
Слой доступа к данным и/или слой домена.

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

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

Есть еще другой способ. Наговнить все в одной либе и потом отрефакторить.
Аноним 19/10/21 Втр 12:38:55 #14 №2187454 
image.png
>>2187441
>Слой доступа к данным и/или слой домена.
пикрелейтед.
Можешь примерно описать структуру проекта/солюшена?
Я сейчас думаю как-то так:
проект УИ (по шаблону авалонии):
- Views
- ViewModels
- Models
- Program.cs
- App.axaml
библиотека "ядро" (class library):
- Note.cs
- некий класс, включающий в себя коллецию инстансов Note и всякую логику.

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

>вместо твоей авалонии.
Она тебе не нравится?

>Наговнить все в одной либе и потом отрефакторить.
У меня хоть как выйдет говно, я ж не умею ничего, но хотя бы видимость порядка будет.
Аноним 19/10/21 Втр 12:47:29 #15 №2187460 
>>2187454
>Она тебе не нравится?
Причем здесь это? Я тебе говорю как разделять код, чтобы он не был так хуевый. Это достигается многими способами, начиная от деления на разные библиотеки и заканчивая тестами. Обычно оно как, все насрано в одном месте и обмазано глобальным стейтом или синглтоном, что даже тесты не прикрутишь.

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

>выйдет говно
Считаешь, что все пишут сразу идеальный код? Зачем было тогда придумывать понятие "рефакторинг"? Шанс необходимости рефакторинга можно уменьшить, если все дробить на очень мелкие составляющие, но ты потом заебешься ориентироваться в изобилии абстракций.
Аноним 19/10/21 Втр 13:01:43 #16 №2187468 
>>2187460
>Причем здесь это?
Показалось, что она тебе не нравится, не более.

>Хуевое название, что-то на уровне менеджер или контроллер, делает хуй пойми что. Домен (тоже самое) намного лучше.
Ну ядро типа занимается непосредственной работой, а УИ просто оболочка... Я бы назвал как-нибудь типа NotebookCore и второй проект UI, а надо как? NotebookDomain и UIDomain?

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

Энивэй, та структура, которую я написал, для начала пойдёт?
Аноним 19/10/21 Втр 13:16:05 #17 №2187480 
>>2187468
>Энивэй, та структура, которую я написал, для начала пойдёт?
Напиши прототип, выкинь и напиши с нуля по уму. Нет никаких "идеальных" структур проектов, потому что в зависимости от проекта эта "идеальная" структура может нарушать ряд принципов.

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

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

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

>Я бы назвал как-нибудь типа NotebookCore и второй проект UI, а надо как?
На шарпе общепринято называть неймспейсы и проекты в виде: МояКонторка.ПроектНейм.ХуйняНейм, например ТриКопыта.Блокнот.ДесктопUI. Название проектов еще можно сократить просто до ХуйняНейм, но только в обозревателе решений.
Аноним 19/10/21 Втр 13:24:18 #18 №2187485 
>>2187016
>орхитектуры
Давай обсуждать. Как организовать "орхетектуру" десктопного приложения, чтобы оно было по типу консольного (непрерывный поток выполнения с передачей управления, когда это нужно самой программе, а не формочкам), но вписывалось в событийный механизм современных десктопных приложений?
Аноним 19/10/21 Втр 13:52:38 #19 №2187501 
>>2187485
Дежурный шизик на месте.
Аноним 19/10/21 Втр 15:53:51 #20 №2187585 
Пасаны, опять вопрос по Хамарину.
Хочу добавить к элементу в stacklayout tapgesturerecognizer, чтоб на новую страницу переходить по нажатию на элемент.
Как только в хамл вставляю для стаклэйоута <StackLayout.GestureRecognizers><> - стаклэйоут перестает реагировать на нажатия. Скроллить могу, нажимать на элементы - нет.
Аналогично для других элементов, если к лейблу присрать - тоже пропадает возможность на него жать
Щито я не так делаю?
Кусок на пастбине https://pastebin.com/HyxeVSbs
Аноним 19/10/21 Втр 16:12:24 #21 №2187590 
>>2187585
А тебе там оно в дебаг не пишет ни каких биндинг еррор?
Аноним 19/10/21 Втр 16:18:02 #22 №2187597 
>>2187590
Ну вроде везде чисто, ни на что не ругается. Я перебиндил на всякий к команде попроще, по которой явно видно в приложении, что она вызывается - ничего не происходит.

Делаю всё как в примерах
Аноним 19/10/21 Втр 16:25:11 #23 №2187603 
>>2187597
Попробуй подцепить метод, а не команду и проверить сработает ли. Мне все таки кажется проблема в биндинге.
Аноним 19/10/21 Втр 16:45:39 #24 №2187622 
>>2187603
Неа ничего. Дополнительно выяснилось, что именно наличие тэга <TapGestureRecognizer/> блокирует нажатия, похуй что внутри - пустой, с методом или с командой
Аноним 19/10/21 Втр 16:50:26 #25 №2187629 
>>2187622
Мне кажется я наткнулся на вот этот баг https://github.com/xamarin/Xamarin.Forms/issues/5187
Но не очень уверен тащемто
Аноним 19/10/21 Втр 17:11:25 #26 №2187653 
image
>>2187585
Вполне рабочий код.
Аноним 19/10/21 Втр 17:16:14 #27 №2187667 
>>2187653
Скинь пожалуйста целиком вьюху, прошлый раз у меня ничего не работало из-за неё как раз, сравнить хочу
Аноним 19/10/21 Втр 17:20:08 #28 №2187670 
>>2187667
https://pastebin.com/kyVBbS6T
Аноним 19/10/21 Втр 22:50:10 #29 №2188138 
image.png
>>2187653
Нашел решение. Оказывается, биндится по умолчанию не туда и нужно подкостылить, чтоб биндилось к вьюмодели (пикрел)
https://devblogs.microsoft.com/xamarin/5-quick-tips-for-collectionview/
Аноним 19/10/21 Втр 22:50:45 #30 №2188139 
13.png
Как имплементировать сюда многострочные коментарии?
Аноним 19/10/21 Втр 23:43:11 #31 №2188185 
>>2188138
Странные у тебя проблемы. Я явно показал, откуда берется SearchCommand. Про то, что ты пытаешься вытащить команду из vm, речи не шло. И такое решение будет мешать выделить item в отдельный компонент.
Аноним 20/10/21 Срд 00:19:08 #32 №2188199 
>>2188185
Блин сложно. Как раз с таким решением сейчас ищу как item в отдельный элемент выделить, чтоб на новую страницу нужный SearchResponse передавать.
А как тогда лучше сделать это всё, если есть модель (пакет из нюгета, в нем как раз SearchResponse), вьюмодель с командами нужными (в этой же вьюмодели обсёрколлекшн<SearchResponse>) и вью?
Аноним 20/10/21 Срд 07:04:01 #33 №2188291 
>>2188199
SearchResponse - это vm. Нет ничего плохого пробрасывать команды.
Аноним 20/10/21 Срд 07:45:57 #34 №2188301 
Когда релиз студии 2022 и дотнет 6? 1 ноября?
Аноним 20/10/21 Срд 09:01:23 #35 №2188312 
>>2188301
9-11 ноября.
Аноним 20/10/21 Срд 14:16:46 #36 №2188522 
В впф у меня есть ImageBrush, у которого ImageSource это BitMap. Так вот, первоначально я инициализирую битмап и картинка появляется, всё нормально, но когда я пытаюсь её обновить и заменить на другую картинку, то этого не происходит, чтобы я ни делал. То есть, urisource обновляется, битмап обновляется, но картинка не обновляется. Я уже и кэш отключил у битмапа и всё. В чём может быть проблема?
Аноним 20/10/21 Срд 14:38:36 #37 №2188532 
>>2188522
>Маааам! Я рисовал в альбоме красной краской, потом помыл кисточку и набрал зеленой краски, но рисунок в альбоме все равно красный!
Аноним 20/10/21 Срд 15:06:09 #38 №2188547 
>>2188532
Ты дурак? Я всё прибиндил нормально
Аноним 20/10/21 Срд 15:11:48 #39 №2188556 
>>2188547
>Маааам! Я забиндил нормально! Всмысле уже нарисовано???
Аноним 20/10/21 Срд 15:14:40 #40 №2188560 
>>2188547
>Я всё прибиндил нормально
Вот тот чел >>2187597 тоже думал, что прибиндил нормально, а потом понял, что обосрался >>2188138 . Не будь как тот чел.

Аноним 20/10/21 Срд 19:27:25 #41 №2188918 
500b267ecdbe84696a2d5c0429459b2a.jpg
Смотрите. В базе лежит дерево. Классический вид:
id, parentId?, какая-то полезная информация

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

И в чем проблема. 1. Я бы хотел сразу такую вот няшу получать из базы, но не знаю как это сделать. 2. Если таки буду уже на стороне приложения разворачивать - я не представляю как обойти дерево не используя рекурсию, а говорят что рекурсия - бяка...
Помогите, люди добрые, кто чем может.
Аноним 20/10/21 Срд 19:42:23 #42 №2188933 
>>2188918
>id, parentId?, какая-то полезная информация
На фронт отдаешь это, пусть фронт сам ебеться.
Аноним 20/10/21 Срд 20:13:42 #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 после коммита транзакции в нее.
Аноним 21/10/21 Чтв 09:21:50 #44 №2189220 
>>2188963
EF используется?
Аноним 21/10/21 Чтв 09:34:37 #45 №2189222 
>>2188963
Связь one to one. В EF через ссылку на класс в проперти.

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

Можешь на канвасе в впф делать ещё
Аноним 21/10/21 Чтв 13:19:07 #48 №2189349 
>>2189346
Можно. Но тебе надо будет забыть про ООП и изнасиловать себе мозг ECS или его вариациями реализации. Потому что, например, с текстовыми роглайками ECS не работает. ООП с играми в принципе не работает.
Аноним 21/10/21 Чтв 13:22:27 #49 №2189352 
>>2189347
Им надо эту доку обновить. Потому что на C# можно еще на анриле писать из готовых движков.
Аноним 21/10/21 Чтв 18:14:46 #50 №2189618 
>>2189349
>ООП с играми в принципе не работает
Хуйню сморозил и доволен.
Посмотри, блядь, код дума 3. Его уже нормальные люди писали и там нормальное такое ООП по всем канонам. Да, не монструозно как в тырпрайзе, но это проблемы не дума, а как раз тарпрайза, в котором в ванг пытаются играть и наделать миллиард слоев НА ВСЯКИЙ СЛУЧАЙ.
Аноним 21/10/21 Чтв 18:35:40 #51 №2189658 
>>2189618
Научись читать весь текст, а не вырывать из контекста.
Аноним 21/10/21 Чтв 18:42:34 #52 №2189670 
>>2189658
Что тут, блядь, из контекста вырвано? Ты сморозил хуйню, а теперь жопой виляешь. Хули ты как телка? Обосрался, ну так и скажи: Да, я чмо, на самом деле люблю попиздеть за то в чем не шарю, но я это признаю и понимаю. Не, нужно начинать про какие-то там вырывания из контекста придумывать. Стыд и срам. Подрости, чел. Мужчины - признаются что обосрались и идут дальше с гордо поднятой головой, детишки - прячут голову в песок, думая что так никто говно на штанах не заметит.
Аноним 21/10/21 Чтв 18:43:24 #53 №2189672 
>>2189670
Скрыл дауна.
Аноним 21/10/21 Чтв 18:48:06 #54 №2189677 
>>2189672
Ясно. Ты наверное так же на кодревью - ой, ну вы не так поняли, это не говнокод, просто вырвано из контекста, а когда тебе не верят - плачешь и убегаешь. Молодец. Что тут скажешь. Сразу видно будущего тимлида.
Аноним 21/10/21 Чтв 21:58:24 #55 №2189854 
Чем шарп отличается от плюсов? Чем пизже чем хуже
Аноним 21/10/21 Чтв 21:59:01 #56 №2189855 
>>2189854
Чем чай отличается от гречки? Чем пизже чем хуже
Аноним 22/10/21 Птн 06:57:01 #57 №2190072 
>>2189854
Шарп работает на виртуальной машине как Джава, а плюсы генерируют код сразу для процессора. В шарпе есть сборщик мусора, а в плюсах убираться за собой надо самому.
Аноним 22/10/21 Птн 07:08:31 #58 №2190077 
>>2189854
Второй не нужен, а первый тоже. Получается ничем.
Аноним 22/10/21 Птн 07:41:38 #59 №2190081 
может кто поделиться вопросами с собесов на позицию Fullstack Developer .NET Angular?
Аноним 22/10/21 Птн 08:49:20 #60 №2190100 
>>2190081
%н%%е%%т%
Аноним 22/10/21 Птн 09:35:29 #61 №2190110 
Как в OnActionExecuting добавить параметер для урл? например хочу к ссылке добавить параметром какое-то значение из сесии, и что бы это добавлялось автоматически на каждой странице
Аноним 22/10/21 Птн 09:59:10 #62 №2190116 
в гугл уже давно используется таргетированый поиск, а есть ли способ БАНИТЬ сайты из поиска?
тоесть вот есть какой-то сайт, я знаю что это говно полное но гугл раз за разом пихает мне это в первых позициях, могу я навсегда забанить сайт из выдачи?
Аноним 22/10/21 Птн 11:19:13 #63 №2190160 
У меня снова встал вопрос и хуй, но с ним я разобрался. Как правильно организовать кэш в асп нет коре мвц? Вот есть гланге, на которой есть новости-хуёвости и шапка, где есть всякое связанное с аккаунтом. Очевидно, нет смысла каждый раз лезть в базу, выгребать из-нее новости, потом ентити->дто->вьюмодель->html и вот это все на каждый заход на глангу (ну и другие страницы, где контент редко обновляется). Вот этот хтмл можно закешировать для всех на диск или в рам. А вот часть с аккаунтом она у каждого своя. Вобщем как это организовывают те, кто умеет программировать?
Аноним 22/10/21 Птн 11:42:29 #64 №2190183 
>>2190072
>плюсы генерируют код сразу для процессора
https://en.wikipedia.org/wiki/C%2B%2B/CLI

>в плюсах убираться за собой надо самому
С умными указателями не особо-то и надо + ссылка выше.
Аноним 22/10/21 Птн 11:45:34 #65 №2190185 
>>2190160
Сколько серверов?
Аноним 22/10/21 Птн 11:47:18 #66 №2190187 
>>2190110
Погуглил за тебя https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.actionexecutingcontext.actionparameters?view=aspnet-mvc-5.2
Аноним 22/10/21 Птн 11:56:09 #67 №2190192 
>>2190183
Плюс QT тоже по особенному работает.
Аноним 22/10/21 Птн 12:03:04 #68 №2190197 
>>2190185
1
Аноним 22/10/21 Птн 12:06:59 #69 №2190199 
>>2190197
https://docs.microsoft.com/en-us/dotnet/api/system.runtime.caching.memorycache?view=dotnet-plat-ext-5.0&viewFallbackFrom=net-6.0
Аноним 22/10/21 Птн 12:16:41 #70 №2190202 
>>2190199
Ну пиздец. Я же не спрашивал где мне хранить кэш. Меня интересует как это организовывают и какие есть стандартные механизмы для этого. Есть же всякие атрибуты, которые можно навесить на экшен. Дожна ли вьюха как-то доставать данные из кэша, или он должен быть полем вьюмодели и вставляться в странице через Html.Raw. Нужно ли хранить строку, сгенерированную через Render, или можно как-то кешировать partialview. И т.д и т.п.
Может где-то есть хороший пример организации этого дела.
Аноним 22/10/21 Птн 12:23:39 #71 №2190206 
>>2190202
Нет стандартных механизмов.

>всякие атрибуты
Антипаттерн.
Аноним 22/10/21 Птн 12:28:27 #72 №2190209 
image.png
>>2190187
Я это находил, но это не работает
Аноним 22/10/21 Птн 12:36:17 #73 №2190213 
>>2190206
Ну пиздец х2.
>Нет стандартных механизмов
Но должны же быть какие-то бест практисес и базовые принципы
>Антипаттерн.
Возможно. Но весь мвц на них плотно сидит. Даже есть ResponseCacheAttribute, но я так понимаю это для хттп уровня
Аноним 22/10/21 Птн 12:50:23 #74 №2190225 
>>2190209
Атрибут отличается на разных платформах.
Аноним 22/10/21 Птн 12:51:22 #75 №2190226 
>>2190213
>Но должны же быть какие-то бест практисес и базовые принципы
У тебя слишком общая задача.
Аноним 22/10/21 Птн 12:57:45 #76 №2190232 
image.png
image.png
>>2190225
ну предположим ActionArguments у меня работает но урл от этого не меняется, а filterContext.RouteData.Values вообще не работает
Аноним 22/10/21 Птн 13:12:58 #77 №2190241 
>>2190226
Да куда уж конкретней-то. Не проканало с новостями, тогда другой пример. Есть имиджборда, но не анонимная. Треды читаются на порядки чаще, чем обновляются. Я не хочу на каждый запрос треда дрочить БД и генерировать хтмл. Но при этом не могу полностью перейти на ститачные страницы как двач, потому что есть еще и секция уникальная для каждого пользователя. Как в данном случае грамотно кэшировать общие части?
Аноним 22/10/21 Птн 13:13:15 #78 №2190242 
>>2190232
Урл в браузере?
Аноним 22/10/21 Птн 13:15:11 #79 №2190244 
>>2190241
Кешировать часть контента. Вопрос все равно общий.
Аноним 22/10/21 Птн 13:17:20 #80 №2190245 
>>2190242
ДА!
Аноним 22/10/21 Птн 13:19:03 #81 №2190246 
>>2190245
Много хочешь. Жабаскрипт в помощь.
Аноним 22/10/21 Птн 13:19:54 #82 №2190248 
>>2190244
>Кешировать часть контента

>Как организовать кэширование контента в приложении?
>Нужно кэшировать!
Ну пиздец х3.

> Вопрос все равно общий.
Ну давай я уточню. Какой информации не хватает?
Аноним 22/10/21 Птн 13:29:49 #83 №2190253 
>>2190241
Подписался на вопрос.
Можно кешировать бизнессслой, просто в инмемори запихивать ентити. Плюс: чисто, можно организовать граммотно ивалидацию. Минусы: ну таки это не кеш хтмла готового. Но я думаю, что все равно должно летать.
Можно кешировать веб апи. Плюсы: да, наверное проще. Если бизнесалой сложный и не требует внутреннего кеширования, то мен ше шансов проебаться.
Где то видел годную статью, лень гуглить, поищи на офф сайте майков.
Я.бы, если нет супер.хайлоада, но есть немного времени заморочится, бизнесслой кешировал бы.
Аноним 22/10/21 Птн 13:37:36 #84 №2190256 
>>2190248
Не хватает стека технологии. Очевидно, что если ты используешь SPA на фронте, то контент не надо и кешировать, и вообще запрашивать. В противном случае, более общее решение сохранять в оперативной памяти или в редисе. Если используется кор, то делается через мидлварь. Через атрибут тоже можно сделать, но будут проблемы с иоком и необходимо реализовывать аналог диспатчера. Более же извращенное решение можно найти например в CQRS, когда в базе данных находится красивая схема (с 5 нормальной формой например) или вообще event store, а данные кешируются в дополнительной базе данных (обычно приводится в пример MongoDB) вообще без нормализации, без реляционных зависимостей и в более вольной форме.

Любое решение можно реализовать самому, найти готовый пакет или сделать по образу и подобию.
Аноним 22/10/21 Птн 13:39:49 #85 №2190258 
>>2190256
Если используется облако, то cdn или что-то похожее на лоад балансер - тоже решение.
Аноним 22/10/21 Птн 13:47:32 #86 №2190265 
>>2190258
Ну, а если ты совсем изврат, то Akka или Orleans.
Аноним 22/10/21 Птн 13:52:36 #87 №2190268 
>>2190265
И я тут еще немного подумал, и кешировать можно в обратном прокси. Кароче ты понел.
Аноним 22/10/21 Птн 13:53:23 #88 №2190269 
>>2190253
Примерно так и планировал. Думал сделать прокси для сервисов, которые работают с бд, так у меня будет возможность инвалидировать кэш при создании постов (если продолжать аналогию с двачем) без размазывания логики по разным местам. По идее разор компилируется во что-то промежуточное и оптимизированное и сильной просадки при генерации ответа не должно быть. Хотя кэшировать отрендеренный партиалвью тоже заманчиво.
>>2190256
Написал же в самом начале обычный asp core mvc.
> Очевидно, что если ты используешь SPA на фронте, то контент не надо и кешировать, и вообще запрашивать.
А вот мне не очевидно. Зачем 100 раз лезть в базу со своими джоинами и аггрегациями и получать 100 раз одинаковый результат, если можно получить 1 раз и за кешировать. И я не понял что значит не запрашивать данные? Откуда клиент их возьмет?
>сохранять в оперативной памяти или в редисе
Да какая разница где кэш хранить. Вопрос то всё еще не про это.
>Если используется кор, то делается через мидлварь
А по-подробнее? Вот есть сгенерированный ответ от контроллера с динамическими данными, как туда вставить закешированную часть?
>>2190258
Ну это если через ajax грузить страницу частями, а если клиенту уходит готовая страница нельзя же отдать одному челу страницу с данными аккаунта от другого.
Аноним 22/10/21 Птн 14:01:48 #89 №2190281 
>>2190269
>Хотя кэшировать отрендеренный партиалвью тоже заманчиво.
PartialView можно кешировать.

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

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

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

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

>Ну это если через ajax
Нет, ты не понял, что это. К ajax это не имеет никакого отношения. У тебя добавляется дополнительный сервер между фронтом и твоим основным сервером.
Аноним 22/10/21 Птн 14:18:56 #90 №2190288 
>>2190281
>PartialView можно кешировать.
Так вот я и спрашивал, его кешировать в виде отрендеренного хтмл в виде строки или есть другие способы.
>Зачем клиенту запрашивать одно и тоже по несколько раз?
Не клиенту 100 раз, а 100 клиентов зайдут на страницу. Ну или клиент нажмет 100 раз ctrl+f5.
>реализовываешь как WebAPI
Ну переписывать на вебапи + фронт это уже перебор. Задача не такая сложная чтоб так радикально все перекраивать хД.>>2190281
>На фронте есть например localStorage
Да не про какой пронт никто и не говорил, нету никакого фронта.
>>2190281
>Берешь и вставляешь по условию или по типу реквеста, в чем проблема?
В том что нельзя менять уже готовый ответ? И как ты себе представляешь я в респонс стрим куда -то что-то впишу?
>Если данные надо достать из кеша, прерываешь цепочку.
Если бы вся страница могла быть в кеше я бы и отдавал статику как двач. Но на странице ест еще и часто меняющиеся данные, уникальные для каждого пользователя. Я же уже несколько раз это писал.
>>2190281
>У тебя добавляется дополнительный сервер между фронтом и твоим основным сервером.
И как он мне поможет, если без аякса? Страница-то должна придти целой. Что мне промежуточный сервер закеширует данные другого пользователя?
Аноним 22/10/21 Птн 14:24:19 #91 №2190293 
>>2190288
>Задача не такая сложная
Ты несколько постов подряд увиливаешь от нормального описания задачи, а не запуск ракет в космос. Написать борду - это как раз про запуск ракет в космос.

>Не клиенту 100 раз, а 100 клиентов зайдут на страницу. Ну или клиент нажмет 100 раз ctrl+f5.
CQRS как раз и придумали для таких индивидов. Только клиентов и нажиманий на несколько порядков больше в секунду.

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

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

>Страница-то должна придти целой.
Ты еще не понял, что страницу надо делить на части?
Аноним 22/10/21 Птн 14:35:44 #92 №2190309 
>>2190293
Потом выяснится, что твой кеш ненужен был, потому что 100 клиентов на страницу - пук в воздух.
Аноним 22/10/21 Птн 14:41:14 #93 №2190315 
>>2190293
>Ты несколько постов подряд увиливаешь от нормального описания задачи, а не запуск ракет в космос. Написать борду - это как раз про запуск ракет в космос.
Ладно, карты на стол. Я пишу борду и теперь мне надо закешировать треды, чтобы каждый раз не ломиться в базу не формировать 100 раз одинаковую часть ответа. Только в отличии от двача она (борда) не такая анонимная и есть функционал связанный с аккаунтами.
>CQRS
Я конечно посмотрю еще, но выглядит будто нужно переусложнить приложение, а потом придти и спросить как к cqrs прикрутить кэширование. Ну и вот это тоже
>Где не подходит
>В небольших приложениях/системах;
>В преимущественно CRUD-приложениях.
А это краткое описание борды.
>Ты еще не понял, что страницу надо делить на части?
Так как её поделить? На сервере поделено на partialview. На клиенте браузер с NoJs. Мои действия?
>>2190293
>В виде строки. Зачем тебе другие варианты?
Мало ли есть что-то о чем я не знаю.
>Нет, как только я пишу про детали реализации, ты пишешь
>Да какая разница где кэш хранить.
Какая разница относиться, к тому хранить ли кэш в файле, оперативе или бд, мне кажется разницы быть не должно (я не про скорость, а про обращение с кэшем). Но вот как через мидлварь в страницу, которую создал контроллер вставить данные из кеша я с радостью почитаю.
Аноним 22/10/21 Птн 14:47:24 #94 №2190319 
>>2190315
>Так как её поделить? На сервере поделено на partialview.
PartialView и есть деление, только на стороне сервера. Кешируешь PartialView например как [OutputCache(Duration = 10)]. Хз, что тебе еще надо.

>Мало ли есть что-то о чем я не знаю
>мне кажется разницы быть не должно
Ну, если ты своей интуиции веришь больше. Хули спрашиваешь тогда?
Аноним 22/10/21 Птн 14:56:44 #95 №2190325 
>>2190319
>[OutputCache(Duration = 10)]. Хз, что тебе еще надо.
Возможно мне это и нужно, почитаю. А этот кэш можно вручную инвалидировать а не по таймеру? Например создали пост и мне нужно обновить кэш.
>Ну, если ты своей интуиции веришь больше. Хули спрашиваешь тогда?
Ну если есть разница, в чем она? Пусть будет кэш в оперативе.
Аноним 22/10/21 Птн 15:01:43 #96 №2190328 
>>2190325
>А этот кэш можно вручную инвалидировать а не по таймеру?
Я тебе сразу написал, что нет никаких общих решений или бест практик. Хочешь сделать шаг в сторону, пишешь свое решение или используешь библиотеку от васяна.

>Ну если есть разница, в чем она? Пусть будет кэш в оперативе.
Кеш в оперативке не будет работать:
- с двумя серверами
- с большим количеством данных
- с высокой нагрузкой, особенно, если данные шарятся между пользователями
Это только то, что я приводил в качестве примеров, остальное найдешь сам.
Аноним 22/10/21 Птн 15:12:51 #97 №2190331 
>>2190328
>Я тебе сразу написал
Да ты в основном хрень какую-то несешь слабосвязанную с моим вопросом или же капитанишь. Вот тот анон >>2190253 написал коротко и по делу
Аноним 22/10/21 Птн 15:16:24 #98 №2190333 
>>2190331
>в основном хрень
Да ты охренел. Про инмемори - это мой самый первый пост. Иди нахер.
Аноним 22/10/21 Птн 15:23:40 #99 №2190336 
>>2190333
Хоть инмемори, хоть инфайл. Вопрос-то не об этом.
Аноним 22/10/21 Птн 15:38:00 #100 №2190349 
>>2190336
А в чем? Разбил на части, сохранил нужную часть, очистил когда надо. У тебя изначально дерьмовая архитектура и ты нехуя не понимаешь в программировании, раз рассматриваешь вопрос о добавлении сервисов и мнишь, что все знаешь.
Аноним 22/10/21 Птн 15:58:18 #101 №2190370 
>>2190349
Мань, не бомби. Я не собираюсь заходить на пятый круг в попытках разъяснить тебе вопрос, тем более, что есть уже тот, кто понял.
> Разбил на части, сохранил нужную часть, очистил когда надо
И закешировать! Ты опять пишешь очевидные вещи.
>не понимаешь в программировании
Я думал, я не двусмысленно на это намекнул в первом своем сообщении.
>Вобщем как это организовывают те, кто умеет программировать?
А тебе понадобилось несколько десятков постов, чтоб дойти до этого. То что ты тоже не умеешь программировать, я понял с самого начала.
>>2190349
>изначально дерьмовая архитектура
То ты не можешь понять что за стек у меня, когда я сразу написал asp core mvc, начал нести чушь мимо кассы, а тут прям не видя ничего всё прнюхал. Браво.
>раз рассматриваешь вопрос о добавлении сервисов и мнишь
Ну да профи сервисы не добавляют хД
>что все знаешь.
Тебе показалось. Но очевидную чушь могу увидеть.
Чао.
Аноним 22/10/21 Птн 16:07:59 #102 №2190377 
>>2190370
>И закешировать! Ты опять пишешь очевидные вещи.
Ты спрашиваешь очевидные вещи. Реализовал кеширование и сброс кеша по условию, сохранять умеет в любое место: https://pastebin.com/KLd7hLp0
Точно так же выглядит код без кеширования.
Аноним 22/10/21 Птн 16:20:10 #103 №2190386 
image.png
Почему у меня здесь луп?
Аноним 22/10/21 Птн 16:23:31 #104 №2190390 
>>2190386
Из-за редиректа.
Аноним 22/10/21 Птн 16:25:06 #105 №2190393 
image.png
>>2190390
Боже мой, эта пятница, мозг уже вообще не сображает
Аноним 22/10/21 Птн 19:08:15 #106 №2190589 
image.png
image.png
>>2186992 (OP)
БЛЯДЬ, КАК ЖЕ СТУДИЯ ЗАЕБАЛА ПРОЕБЫВАТЬ ПРОФИЛЬ!
ПИЗДЕЦ СУКА НАХУЙ БЛЯДЬ, КАЖДУЮ ЕБАНУЮ ВЕРСИЮ ОНИ ДЕЛАЮТ ОДНО И ТО ЖЕ ГОВНО!
СУКА, СКОЛЬКО МОЖНО УЖЕ БЛЯДЬ СВАЛИВАТЬСЯ В ЭТИ ВЫРВИГЛАЗНЫЕ СИНИЕ ПИЗДЕЦЫ!
ПОСЛЕ КАЖДОГО ПЕРЕЗАПУСКА, БЛЯДЬ, ДАЖЕ ПОСЛЕ ПЛАНОВОГО, ВЫПОЛНЕННОГО ЧЕРЕЗ ЗАКРЫТИЕ ПРОЕКТА И МЕНЮШКУ ВЫХОДА!
ДВЕНАДЦАТАЯ, ЧЕТЫРНАДЦАТАЯ, ПЯТНАДЦАТАЯ, ШЕСТНАДЦАТАЯ, А ТЕПЕРЬ ЕЩЕ И БЕТКА СЕМНАДЦАТОЙ!
БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ!
Аноним 22/10/21 Птн 19:10:22 #107 №2190596 
>>2189618
>код дума 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
Аноним 22/10/21 Птн 19:14:25 #108 №2190601 
>>2190589
Rider жиии есть!
Аноним 22/10/21 Птн 19:21:18 #109 №2190616 
>>2190601
> Променять одно говно на другое

Охуенный план. Почему бы просто студии не перестать проебывать профили? За нее по крайней мере уже уплочено.
Аноним 22/10/21 Птн 19:23:15 #110 №2190623 
>>2190616
У райдера есть тоже свои косяки. В будущем, при переходе на х64, студия будет жрать в разы больше оперативки.
Аноним 22/10/21 Птн 19:24:56 #111 №2190625 
>>2190623
Да пусть жрет, оперативы как говна. А вот нервов на удаление .vs осталось мало.
Аноним 23/10/21 Суб 08:27:37 #112 №2191183 
>>2186992 (OP)
https://github.com/dotnet/sdk/issues/22247
Dotnet bros...
Аноним 23/10/21 Суб 09:15:31 #113 №2191191 
>>2190623
Студия перегружена менюшками и кнопочками. Вот чтобы создать просто файлик, надо открыть меню, перейти в подменю, открывается доп. окно с выбором миллионов типов файлов и только тогда можешь создать файлик. В том же VS Code - это делается 1 кнопкой за 1 нажатие.
Аноним 23/10/21 Суб 10:19:42 #114 №2191216 
>>2191183
Опять майки залили говна 2% красноглазиков на линуксах
Аноним 23/10/21 Суб 11:02:57 #115 №2191236 
>>2191216
Это большой минус для тех, кто использует блейзор. Использовать дебаг/релоад для обычных приложений не есть гуд. На тему, когда выкатывают новую фичу, не надо сразу бежать и переписывать на нее легаси код.
Аноним 23/10/21 Суб 14:18:30 #116 №2191391 
>>2191236
О чём там речь воообще?
Аноним 23/10/21 Суб 14:23:13 #117 №2191397 
Изучил C#, а ASP.NET не получается изучить. В нём всё максимально не понятно и не очевидно. Пока идёшь по учебнику, вроде бы всё работает. Но стоит попробовать шаг влево/шаг вправо и сразу наталкиваешься на проблемы.
Как вы изучали ASP.NET? Нравится ли он вам вообще?
Аноним 23/10/21 Суб 14:35:29 #118 №2191410 
>>2191397
Читай дальше.
Если чета не понимаешь пиосто забей. Через неделю вернись и мнова прочитай.
Асп нет коре мвц очень логичен.
Что именно тебе не понятно?
Аноним 23/10/21 Суб 15:24:36 #119 №2191465 
>>2191391
Втихаря удалили фичу из релиз кандидата.
Аноним 23/10/21 Суб 18:04:17 #120 №2191594 
>>2191410
На РНР из простых элементов как из кубиков можно написать свой движок любой сложности. И соответственно все движки используют такой же функционал. В итоге зная синтаксис языка, легко понимаешь фреймворк.
В ASP.NET же используется какой-то надъязык над C#, т.е. повторить в консольном приложении этот фреймворк невозможно. Приходится изучать совершенно новую среду, отличную от консоли и со своими жесткими требованиями.
Аноним 23/10/21 Суб 18:09:56 #121 №2191600 
Стикер
Пацаны, ASP.NET запускается в консольном приложении, но я повторю:
>В ASP.NET же используется какой-то надъязык над C#, т.е. повторить в консольном приложении этот фреймворк невозможно. Приходится изучать совершенно новую среду, отличную от консоли и со своими жесткими требованиями.
Аноним 23/10/21 Суб 18:14:09 #122 №2191604 
>>2191600
И что? Ты писал на шарпе свой движок, просто в пустом консольном проекте начал писать и написал?
Я вот на РНР писал свой движок и на нём базу абонентов для одной конторы. И мне даже заплатили за это, хотя на тот момент я был вообще зеленым студентом.
Аноним 23/10/21 Суб 18:19:57 #123 №2191609 
image
>>2191604
Аноним 23/10/21 Суб 20:27:41 #124 №2191712 
Нихуя не понимаю. Есть asp net core проект. Сделал Add -> Docker support. Появилось 2 фала Dokerfile в папке проекта и .dockerignore в папке солюшена. В игнор добавил
/proj-name/wwwroot/shityshit
После запуска в образе, лежит папка shityshit со всеми файлами. Как правильно добавить исключить её из образа?
Аноним 23/10/21 Суб 20:41:53 #125 №2191723 
>>2191712
Удали первый слеш.
Аноним 23/10/21 Суб 20:53:45 #126 №2191732 
>>2191723
Да там две звездочки макаба съела. Вроде работает, если запускать в релиз моде, а при дебаге студия игнорирут файл.
Аноним 23/10/21 Суб 21:26:23 #127 №2191757 
>>2191732
Приколы самой студии, через docker build . все работает.
Аноним 23/10/21 Суб 22:11:54 #128 №2191788 
>>2191594
// Создаем "слушателя" для указанного порта
Listener = new TcpListener(IPAddress.Any, Port);
Listener.Start(); // Запускаем его

И повторяй что хочешь.
В ASP Net за тебя уже все сделали.
А надъязык это ты про что?
Аноним 23/10/21 Суб 22:57:07 #129 №2191811 
>>2191183
>>2191216
На фичу как таковую всем похуй, здесь важен факт что МС в очередной раз вертит комьюнити на хую, рекомендую перекатываться на ГОвно \ питухон \ ноду
Типичный мс в очередной раз обосрался, кто бы мог подумать
Аноним 23/10/21 Суб 23:01:55 #130 №2191815 
>>2191811
>ГОвно
Говно.

>питухон
Говно.

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

>Name.StartWith("Jonh")
Культура потерялась.
Аноним 23/10/21 Суб 23:09:24 #133 №2191825 
Тьфю бля, у тебя поиск. Оставь так.
Аноним 23/10/21 Суб 23:28:04 #134 №2191844 
>>2191820
Посмотрел, но это же вроде только из кода, а я хочу уже из приложения.
Что-то типа такого вот хочу https://docs.picotorrent.org/en/master/pql.html
Хочу фильтровать коллекции по тому что в свойствах и делать комплексные правила без миллиона чекбоксов.
Слегка усложню предыдущий пример.
Name.StartWith("Jonh") && Age >= 40 && (Salary < 10000 || Status=="Director")
И чтобы это все писалось в уже в готовой программе в чекбоксе.
Аноним 23/10/21 Суб 23:38:53 #135 №2191859 
>>2191844
Своя дсл шоле? FluentValidation генерит рулсеты, которые можно кастить во что хочешь. Если у тебя жопаскрипт, есть готовая либа, которая кастит стандартные рулы и можно своим говноподелием расширять.
Аноним 23/10/21 Суб 23:56:02 #136 №2191875 
>>2191859
Перефразирую чего я хочу, так как мы вроде бы не понимаем друг друга.
Я вот не понял что такое дсл.
Вот есть у меня консольное приложение в нем коллекция из 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

Аноним 24/10/21 Вск 00:09:53 #137 №2191878 
>>2191875
Дсл https://ru.wikipedia.org/wiki/Предметно-ориентированный_язык

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

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

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

в) Так как у тебя чистый шарп, можно изъебнуться:
в.1) Загрузить в аппдомен в рантайме кусок шарпа и выполнить.
в.2) Есть ответление розлина - шарп скрипт. На нем все делается за 5-10 строк кода, но он то еще дерьмище. Прожорливое и хер пойми как аппдомен выгрузить.
Аноним 24/10/21 Вск 00:26:26 #138 №2191882 
Нехуя себе, думал грамматика на шарп давно протухла https://github.com/antlr/grammars-v4/tree/master/csharp
Только шестой шарп осилили.
Аноним 24/10/21 Вск 00:53:41 #139 №2191891 
>>2191875
Такое еще есть, но хуй знает можно там твой случай сделать или нет
https://github.com/mparlak/Flee
Аноним 24/10/21 Вск 01:46:16 #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 обновлены.
Аноним 24/10/21 Вск 15:08:50 #141 №2192163 
Собственно вопрос не особо относится к треду(за исключением языка, лол), но задам.
Суть: я n-лет работал в смежном поприще - коллектив(в рамках фирмы) один и тот же, перекатываюсь в разрабы, и есть подозрение что код-ревью в любой другой конторе для меня будет намного менее болезненным, чем в этой. Просто потому что в прошлой роли я хорош, а в этой пока нет, но социальные связи уже образовались. Думаю дропнуть нахуй, и перекатиться в другую фирму, только мне кажется это не очень рациональным - дропать чисто чтобы мне было спокойнее, лол.
Аноним 24/10/21 Вск 16:07:44 #142 №2192243 
>>2192163
Уже есть офферы? А то без опыта не очень то много предложений. Я бы поработал год на текущем месте. Во-первых, ты не знаешь наверняка как оно будет тут, а во-вторых, опыт. Но если будут душить, то конечно надо дропать.
Аноним 24/10/21 Вск 17:15:17 #143 №2192329 
image.png
image.png
Почему ньютонсофтовский JsonConvert.SerializeObject может возвращать пустую строку? Пытаюсь записать словарь с ключом, который представляет собой кортеж, написал под это свой класс конвертера, на пикрелейтедах как пользуюсь им и как выглядит метод записи в самом конвертере.
Аноним 24/10/21 Вск 21:48:00 #144 №2192567 
Аноны, что можно на asp.net core сделать (чисто бэкенд часть), чтобы свои знания закрепить? А то я читаю статьи и мне кажется, что из головы вылетает, хоть я и перечитываю их
Аноним 24/10/21 Вск 22:33:39 #145 №2192602 
>>2192329
Чекни в дебагере, что у тебя в value приходит?
Аноним 25/10/21 Пнд 01:31:11 #146 №2192733 
>>2192602
Приходит словарь, как и должен. В похожих вопросах на стаке в основном речь заходит об экземплярах классов, о словарях или каких-нибудь других структурах вопросов нет или не нагуглил
Аноним 25/10/21 Пнд 01:47:47 #147 №2192745 
>>2192567
Сделай двач.
Аноним 25/10/21 Пнд 09:52:23 #148 №2192843 
>>2192745
бля, я уже делал имиджборду, ток на mvc 5
Аноним 25/10/21 Пнд 11:06:31 #149 №2192900 
>>2192843
покажи
Аноним 25/10/21 Пнд 11:14:36 #150 №2192906 
Я заметил, что после 2019 резко перестали переводить новые книги. Зарубежом выходит масса книг по .Net, а у нас ничего не издаётся.
Аноним 25/10/21 Пнд 11:25:51 #151 №2192914 
>>2192906
А кто их купит-то? Переводят мажорные версии, а то пока переводишь книгу по нет5, уже напишут по нет6. А кому база нужна, тому и по 3,1 подойдет.
Аноним 25/10/21 Пнд 11:49:37 #152 №2192951 
image.png
image.png
image.png
>>2190390
>>2190390
Хорошо, я действительно не понимаю как работает инвок, что бы я не делал я получаю бесконечный луп, почему так?
Аноним 25/10/21 Пнд 11:57:46 #153 №2192964 
В ЛогинАсинк попадает? Если нет, то очевидно, луп такой:
зпрос->инвокеасинк->редирект->зпрос->инвокеасинк->редирект->...
Аноним 25/10/21 Пнд 12:00:18 #154 №2192965 
image.png
>>2192964
В логин попадает если сделать вот так, луп при этом продолжается
Аноним 25/10/21 Пнд 12:03:46 #155 №2192968 
>>2192965
Что поменялось?
Аноним 25/10/21 Пнд 12:05:07 #156 №2192970 
image.png
>>2192968
инвоке теперь перед ретурном
Аноним 25/10/21 Пнд 12:09:34 #157 №2192973 
>>2192965
А при заходе в логин какой луп? Внутри сервера или браузер все равно дрочит запросами?
Аноним 25/10/21 Пнд 12:11:29 #158 №2192976 
>>2192973
в логине же нет никакого лупа, по хорошему он должен вернуть вьющку и на это все, я не понимаю в чем проблема
Аноним 25/10/21 Пнд 12:19:41 #159 №2192987 
>>2192976
>луп при этом продолжается
>нет никакого лупа
Хм..
Так есть луп, когда в логин попадает или нет?
Аноним 25/10/21 Пнд 12:24:59 #160 №2192999 
image.png
image.png
>>2192987
я иммею ввиду что он сполкойно возвращает вьюшку, тоесть буквально он входит в вьюшку и рендерит хтмл а потом все по новой, как такое возможно?
Аноним 25/10/21 Пнд 12:28:27 #161 №2193004 
>>2192999
>Внутри сервера или браузер все равно дрочит запросами?
Аноним 25/10/21 Пнд 12:34:51 #162 №2193011 
>>2193004
так что происходит, пофиксить как?
Аноним 25/10/21 Пнд 12:41:53 #163 №2193018 
>>2193011
Это я у тебя спрашиваю что у тебя происходит.
Аноним 25/10/21 Пнд 12:43:33 #164 №2193019 
Наверное платина, но спрошу, чем же все таки отличается мидл от сеньера.

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

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

Может конечно дело в том что в рф требования к спецам выше чем в европе. И спрашивать даже у джуна что такое потоковое голодание и кластеризованный индекс это норма.
Аноним 25/10/21 Пнд 12:45:15 #165 №2193024 
>>2193018
откуда мне знать? если бы я знал откуда взялся этот луп я бы не пришел сюда, я отправил все скрины, написал как это работает сейчас, заходит в логин. возвращает страницуи даже рендерит ее, при этом в браузере она не появляется, сразу после того как рендер заканчивается начинается следуйщий инвоке
Аноним 25/10/21 Пнд 12:48:22 #166 №2193025 
>>2193004
что значит вообще
>браузер все равно дрочит запросами?
Аноним 25/10/21 Пнд 12:49:13 #167 №2193027 
>>2193024
>откуда мне знать?
F12 в браузере, не?
>возвращает страницуи даже рендерит ее, при этом в браузере она не появляется, сразу после того как рендер заканчивается начинается следуйщий инвоке
Вот я у тебя и спрашиваю, луп исключительно на сервере или браузер шлет постоянно новые запросы?
Аноним 25/10/21 Пнд 13:03:04 #168 №2193038 
>>2192733
Тогда куда метод serialize должен пихать строку? Возвращает ли он что-то?
Аноним 25/10/21 Пнд 13:06:41 #169 №2193039 
>>2193019
>чем же все таки отличается мидл от сеньера
Стажем, зарплатой.
Аноним 25/10/21 Пнд 14:25:17 #170 №2193112 
>>2193039
>зарплатой
Ну такое. Зарплата это весьма гибкая вещь, сильно зависящая от того насколько кабану горит закрыть дыру в штате. Я знаю и мидлов которые в втб по 300к получают, так и сеньеров которые 200к еле еле выпрашивают на галерах.

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

Вот напрямую спрошу, я вот считаю себя крепким мидлом. Что мне мешает заявлять себя как сеньера? Навыдумывать себе кейсов, и докинуть годик-два опыта? По каким ключевым вопросам меня могут вывести на чистую воду?
Аноним 25/10/21 Пнд 14:32:57 #171 №2193121 
>>2193112
Ты же понимаешь, что эти градации разные в каждой компании? Можешь назвать себя сеньером, где-то пройдешь, а где-то на мидла со скрипом. Плюс очень зависит от релевантности опыта, можешь быть джава сеньером, но в компании, которая промышляет заскелем возьмут джуном авансом.
Аноним 25/10/21 Пнд 16:46:39 #172 №2193222 
>>2193038
Serialize пихает строку в writer, который JsonWriter. Судя по отладчику, он меняется относительно начального состояния, но данных в нём нужных нет. Сам класс вообще написал по примеру с доков ньютонсофта.
Аноним 25/10/21 Пнд 17:37:06 #173 №2193280 
>>2193222
А какая у тебя вообще должна быть структура жсона для твоего словаря? Сам по себе словарь должен быть большим объектом, а именами атрибутов ты пытаешься сделать кортежи? Не проще ли создать какой-то класс, который бы представлял структуру жсона, потом сделать перевод твоего словаря в объект этого класса и потом уже сериализовать этот объект?
Аноним 25/10/21 Пнд 20:56:07 #174 №2193451 
Вот бы пишите десктоп умер, сейчас всё в веб. Дак и зачем тогда нужен C# в вебе? Ведь веб-приложение пишется всё равно на javascript, а не на C#. Получается как раз сила C# в десктопе, потому что можно писать сравнительно просто такие приложения.
Аноним 25/10/21 Пнд 20:58:34 #175 №2193456 
>>2193280
Сделал класс со структурой жсона, всё заработало, код чище стал. Спасибо, анон!
Аноним 25/10/21 Пнд 21:49:48 #176 №2193488 
>>2193451
Жир потек.
Аноним 25/10/21 Пнд 21:58:52 #177 №2193497 
>>2193019
Так бля они одно и то же спрашивают ВСЕХ.
Жунов даже пуще дрючат, с синивором могут за жизнь потереть и все, а жуна ебать "игрой в компилятор" и архитектурой.
Аноним 25/10/21 Пнд 21:59:51 #178 №2193499 
>>2193451
Ну да. Фулстек это норм.
Кор + онгуляр = выбор мужчин честной судьбы.
Аноним 25/10/21 Пнд 21:59:56 #179 №2193500 
>>2186992 (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/


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

зачем вы вкатываетесь в это говно?
Аноним 25/10/21 Пнд 22:16:33 #180 №2193511 
>>2186992 (OP)
Как проверить, эскапнута ли строчка жсоном или унескапнута?
Вот пример: https://rextester.com/UTLTOA70159
надо отличить str от json, где спецсимволы и вся хуйня эскапнута, а в str и str2 она унэскапнута.
Аноним 25/10/21 Пнд 22:31:47 #181 №2193522 
>>2193500
Начнем с того, что говно тут только ты.
ЗП - норм, даже по твоей ссылке.
Весь вой поднялся из-за одной новой фичи. Пиздец горе.
Мне вот вообще пахую на этот хотрелоад из сосноли.
Попенсорс и не такую хуйню видел. Начиная от заброшек, заканчивая переводом на анальную лицензию.
Аноним 25/10/21 Пнд 22:45:36 #182 №2193535 
>>2193511
Ну так при сериализации оно еще раз ескейпится, глянь в дебаге, у тебя там походу двойные бекслеши в JsonString.
Не понятно, что ты хочешь и зачем.
Аноним 25/10/21 Пнд 23:00:09 #183 №2193543 
>>2193500
А что не так с зп? Или не на первом месте = говно?
Вообще зп на шарпе, как и на плюсах, зачастую разбавляется заводчанами, которые варятся в своём мирке, уволиться никуда по этой причине не могут, и соответственно требовать повышения зп не могут, поэтому и работают годами за 60-90к.
Аноним 25/10/21 Пнд 23:23:00 #184 №2193559 
>>2186996
Плюс в карму, братан.
Аноним 25/10/21 Пнд 23:35:13 #185 №2193573 

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

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

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

>>2193522
>ЗП - норм, даже по твоей ссылке.
>ниже только у пхп
>ЗП НОРМ

1) средняя зп в штатах и рф дно (спасибо VBA, Unity)
2) вы смотрите на среднюю когда смотреть еще нужно на диапазон
3) то что зп ниже только у php вас не смущает?
Аноним 25/10/21 Пнд 23:40:44 #186 №2193575 
>>2193535
>Ну так при сериализации оно еще раз ескейпится, глянь в дебаге, у тебя там походу двойные бекслеши в JsonString.
Ткни кнопочку "Run it (F8)", там видно всю хуйню.

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

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

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

Однако, если надо унескапнуть назад,
то надо знать, где строчка ескапнутая, а где унескапнутая.
ПОтому что в JSON-файле, может быть нечто наподобие:
"C:\blyadina\tupaya"
и тогда, \b и \t соответственно, унескапнется в бекспейс и табуляцию,
чего моё величество не возжелало бы, от слова совсем.
Аноним 25/10/21 Пнд 23:44:05 #187 №2193578 
>>2193573
>3) у проектов которые входят в .net foundation взяли и сменили лицензию
Так это попенсорсники и сменили, а не майки же, не?
>1, 2, 4
Пахую. Какие-то десткие разборки.

>а вот шизам которые стартуют проекты будет проще обосновать фаундерам почему дотнет брать не стоит
Ну только идейным попенсорсникам, что ли. Да и вообще, как обычно идет "обоснование", у кабана есть 5 рыл на .нет - "Обосновываем" .нет. 5 рыл на жаве - жаву. 5 рыл геев - берем ГО. 5 рыл пожилых геев - ноду.
Аноним 25/10/21 Пнд 23:59:58 #188 №2193586 
image.png
>>2193575
В дебаге смотри.
Сериализорваная стринга, внезапно, начинается с ескейпленых кавычек.

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

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

>Но похоже, что ты идешь куда-то не туда
>и тебе надо как-то глобальную задачу решать иначе.
Мне просто надо было отличить ескапнутую бекслешами строчку от унескапнутой,
потому что они будут браться из жсон-файла,
а этот файл можно писать руками, безо всяких бекслешей внутри.
Например "мой охуеннейший текст внутри жсона. Он не содержит никаких ебучих кавычек, и вообще даже символа сброса строки. И в этой строчке, у меня, внезапно путь C:\random\nasasyvanie".
Вот с такой строчкой надо знать как работать, унескапать \r и \n там, или же нет.
Аноним 26/10/21 Втр 07:51:48 #190 №2193659 
>>2193578
Нет, сменили именно менеджеры маек которые в .net foundation

Аноним 26/10/21 Втр 08:09:37 #191 №2193660 
>>2193573
Как можно было так себе поднасрать перед выпуском net6
Аноним 26/10/21 Втр 10:21:09 #192 №2193706 
>>2193660
Тем временем Oracle вернула бесплатное коммерческое использование и поддержку до следующего lts + год для Oracle JDK (не путать с OpenJDK, которая под GPL и всегда бесплатна) https://habr.com/ru/company/haulmont/blog/577966/
Аноним 26/10/21 Втр 11:19:31 #193 №2193735 
>>2193499
Ты можешь отправить html страничку с javascript через любой веб-сервер и C# там вообще не нужен.
Аноним 26/10/21 Втр 11:52:12 #194 №2193766 
>>2193735
C# > Node.js
Аноним 26/10/21 Втр 12:07:06 #195 №2193776 
>>2193766
Сейчас бэкенд - это обёртка над базой данных. Почти во всех книгах по ASP.NET рассматривается один и тот же пример с онлайн-магазином, где модель просто возвращает список товаров. Получается, что клиенту достаточно послать этот список в удобном формате (json или xml), а он уже сам отобразит это красивенько. Поэтому View-модуль устарел и не нужен, его смело можно заменить на клиенте.
Аноним 26/10/21 Втр 13:02:42 #196 №2193819 
>>2193706
Пока не перешли на жаба 17, не вернули. У некоторых нет жаба 11 даж.
Аноним 26/10/21 Втр 13:03:23 #197 №2193822 
>>2193776
Веб - не только круды над базой данных.
Аноним 26/10/21 Втр 13:21:32 #198 №2193850 
>>2193706
Все равно джаву больше не используют для новых проектов
Аноним 26/10/21 Втр 15:19:59 #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 посчитать и остальное?
Если уж грязный пхпшник такое сделал, то неужели для дотнет господ это будет сложно?
Аноним 26/10/21 Втр 15:34:02 #200 №2193967 
image.png
image.png
>>2186992 (OP)
Помогите по-братски. Использую библиотеку dislin но видимо я неправильно её подключил. В нугете её не было я нашёл и скачал какой-то файл через ftp, в ахуе, в первые такое видел, потом через консоль прописал в папке сетап и вроде че-то установилось, папку даже выбрал как и было написано в readme, тоже в ахуе с этого, никогда этой консолью ничего не сетапил, потом вижу эту папку с библиотекой и закидываю её в проект, просто перетягиваю мышкой папку, мне кажется возможно здесь я сделал че-то не так, надо было именно длл как-то добавить? просто когда длл перетянул там пусто че-то.
Теперь тут ошибка что мол не может длл загрузить. А че не так?
Делаю по гайду с хабра https://habr.com/ru/post/125611/
Аноним 26/10/21 Втр 15:36:05 #201 №2193968 
image.png
>>2193967
вот когда просто длл перетягиваю тут пусто как-то, видимо что-то не то
Аноним 26/10/21 Втр 15:39:31 #202 №2193971 
>>2193967
ПКМ по проекту -> add -> reference -> ищещь свою дллллллл
Аноним 26/10/21 Втр 15:44:05 #203 №2193977 
2021-10-26 15-43-25.mkv
>>2193971
А потом что? У меня все равно не грузит че-то
Аноним 26/10/21 Втр 15:53:35 #204 №2193984 
Безымянный.png
>>2193977
>А потом что?
ХЗ.
У тебя что за проект, коре? Статья-то 2011 года, там дай б-г FW4 чтоб использовался.
Аноним 26/10/21 Втр 15:55:33 #205 №2193986 
2021-10-26 15-43-25.mp4
>>2193984
Ладно, реально залупа какая-то, придется другую библиотеку искать.
Аноним 26/10/21 Втр 15:59:43 #206 №2193991 
>>2193986
Так тебе disInk_d подключать не надо. disInk_d используется desnet'ом и должна лежать рядом с disink'ом/
Аноним 26/10/21 Втр 16:22:11 #207 №2194015 
>>2193991
Да там даже если одну длл подключаешь ошибку выводит
Аноним 26/10/21 Втр 16:28:21 #208 №2194021 
>>2193960
>если я хочу отобразить время где-то в верхней части страницы?
Декорируешь класс дополнительными данными.

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

>Может ЕФ уже имеет что-то для этого?
Умеет даже запрос показывать.

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

>то неужели для дотнет господ это будет сложно?
Не секьюрно.
Аноним 26/10/21 Втр 16:30:20 #209 №2194023 
>>2193960
Нахуй это на сайт вешать?
Открой для себя Application Insights или подобное
Аноним 26/10/21 Втр 16:42:32 #210 №2194035 
>>2193776
Та хуй с тобой, вротендер.
Реквести у админа конекшн стринг и сам ебись с БД, мне похуй.
Ах да, ты, наверное, наслушался всяких кодлесс, но тогда реквести пурчейз своего говносервиса, который закроется через год.
Аноним 26/10/21 Втр 20:45:33 #211 №2194341 
А как на шарпе писать крутые консольные приложения типа Norton Commander?
Аноним 27/10/21 Срд 00:15:26 #212 №2194463 
Почему везде говорят и подчеркивают, что async/await не ускоряют процессорные операции? Разве при асинхронном программировании в дотнете код не выполняется в разных потоках из пула потоков, вместо одного потока для синхронного кейса, тем самым обеспечивая параллелизм и ускоряя выполнение?
Аноним 27/10/21 Срд 03:58:41 #213 №2194528 
Подкинте какие-нибудь примеры-исходники простых сайтов на ASP для ковыряния-обучения. Чтобы вот поковыряться, понять как это все делать
Аноним 27/10/21 Срд 11:02:01 #214 №2194657 
>>2194341
Берешь и пишешь. Можешь сам написать библу для рисования в консоли, можешь найти на гите, как-то попадались либы для рисования меню и для окон.
>>2194463
Не обязательно. В частном случае может и параллельно выполниться. Просто надо различать однопоточность/многопоточность синхронно/асинхронно последовательно/параллельно.
>>2194528
Возьми Фримена. Там как раз разработка магазина идет через книгу и попутно объясняется что да как.
Аноним 27/10/21 Срд 11:48:12 #215 №2194692 
>>2186992 (OP)
Подскажите как можно отличить строчку, полностью эскапнутую с помощью encodeURIComponent, от строчки, где только часть эскапнутая (в частности URL), а часть - не эскапнутая, то есть она, эта строчка, блядь, не полностью, а частично эскапнутая,
а значит её нахуй не нужно унескапать.

https://rextester.com/FGDJ87550
В примере здесь, первый метод, после унескапинга,
выдаёт результат:
>крысинное говно, тебе - сюда: https://ru.wikipedia.org/wiki/История_дерьма
и это хуёвый результат, потому что урл не эскапнутый, блядь,
и хэш текста совсем не тот получается, так что эту хуйню не нужно унескапать, а надо как-то отличить от эскапнутой строчки, и вырубить унескапинг этот ебучий.

Есть идеи, что можно сделать с этой хуйней?
Аноним 27/10/21 Срд 12:05:05 #216 №2194715 
>>2194692
Нихуя не понял, но звучит так, как буд-то тебе надо разбить распарсить строку на части урл/не урл и затем каждую часть анэскейпнуть или нет.
не обязательно в массив, нынче есть няшные Span<T>.
Аноним 27/10/21 Срд 12:06:48 #217 №2194720 
>>2194715
уууу макаба. там перед курсивом звездочка-сноска была, а последняя строка это пояснение этой сноски.
Аноним 27/10/21 Срд 12:38:50 #218 №2194751 
>>2194715
Мне бы, скорее, какой-то regexp, который затестил бы строчку, на наличие символов, которые заменяет encodeURIComponent. Какие символы эта функция заменяет, я не знаю, я в JavaScript треде задал этот вопрос. Так вот, если эти символы есть в строчке, то унескапать не нужно. А если есть символ процента, и нет этих символов, то значит строчка ескапнута, и надо бы её унескапнуть.

Вот собственно и всё что я хотел выше.
Аноним 27/10/21 Срд 13:08:39 #219 №2194786 
>>2194657
Дак простым Console.Write такое не напишешь. Тут нужны дополнительные функции.
Аноним 27/10/21 Срд 13:15:52 #220 №2194800 
>>2194751
>Какие символы эта функция заменяет, я не знаю
Эм.. Открываем доку:
encodeURIComponent() escapes all characters except: A-Z a-z 0-9 - _ . ! ~ * ' ( )>>2194751
> если есть символ процента, и нет этих символов, то значит строчка ескапнута
Уверен? %20 это экейпнутый пробел или уже анескейпнутая строка "процент-два-ноль"?
Довольно странно, что строка может придти в неизвестном виде. Что за шизо-апи такое делвает?
Аноним 27/10/21 Срд 13:17:26 #221 №2194803 
>>2194786
Чому? Символ писать можно, указать позицию курсора можно. Что еще надо?
Аноним 27/10/21 Срд 14:35:55 #222 №2194937 
>>2194803
Как указывать позицию курсора?
Аноним 27/10/21 Срд 14:53:34 #223 №2194968 
>>2194937
Внезапно Console.SetCursorPosition
Аноним 27/10/21 Срд 15:22:05 #224 №2195017 
>>2194968
Ни в одной книге такого не встречал.
Аноним 27/10/21 Срд 15:27:46 #225 №2195026 
>>2194657
>Просто надо различать однопоточность/многопоточность синхронно/асинхронно последовательно/параллельно.
Так именно про это и речь - в дотнете в общем случае асинхронный код выполняется параллельно или не выполняется? Потоков то у нас несколько.
Аноним 27/10/21 Срд 15:31:44 #226 №2195037 
>>2195017
В книгах про гейстрой можешь встретить. Но такую хуйню я смотрю на msdn.
Аноним 27/10/21 Срд 15:47:43 #227 №2195076 
>>2195017
Ну пиздец. А ты когда писал .Write, тебе не интересно было посмотреть, что там еще есть?
>>2195026
>в общем случае
Что за общий случай? Асинхронные методы, которые есть в стандартной библиотеке почти всегда будут IO-bound. Если ты нагородишь await Foo(); await Bar(); await FooBar(); методы будут выполняться асинхронно но последовательно на потоках из пула.
Аноним 27/10/21 Срд 16:03:17 #228 №2195114 
>>2195076
>Что за общий случай?
Ну, когда у нас не условный режим рабочей станции или что-нибудь еще, где программа в одном потоке работает.
>Если ты нагородишь await Foo(); await Bar(); await FooBar();
Нет, если я нагорожу условный
var tasks = new Task[] { Foo(), Bar(), FooBar()};
await Task.WhenAll(tasks);
Они могут выполняться параллельно на потоках из пула?
Аноним 27/10/21 Срд 16:07:15 #229 №2195123 
>>2195114
>Они могут выполняться параллельно на потоках из пула?
Могут, а могут и нет. Как решит планировщик.
Аноним 27/10/21 Срд 16:17:29 #230 №2195143 
>>2195123
Ну т.е. cpu-bound операции тоже ускорятся (за счет выполнения на нескольких процессорах)?
Аноним 27/10/21 Срд 16:29:01 #231 №2195168 
>>2195143
Если тебе нужна параллельное выполнение, то используй TPL. Асинк/авэйт тебе таких гарантий не даст. Может выполнит параллельно, а может последовательно,а оверхед еще и замедлит выполнение.
Аноним 27/10/21 Срд 17:02:04 #232 №2195213 
>>2195076
Интересно, но откуда я узнаю? Книг мало выпускают и ещё большую часть не переводят. В итоге сидишь как фуфел без знаний.
Аноним 27/10/21 Срд 17:45:50 #233 №2195273 
>>2195168
>Асинк/авэйт тебе таких гарантий не даст.
Так я и пытаюсь разобраться, а в чем, собственно, разница? Если в одном и в другом случае код выполняется в разных потоках, то с чего он гарантию не даст? Не будет же дотнет игнорировать свободные потоки в пуле, а шедулеру вообще похуй, что ты там в своих потоках делаешь.
Да и, собственно, сама проблема не в том, что мне надо, просто в нескольких разных источниках про async/await прямо подчеркнули, что это не даст выигрыша в скорости вополнения кода, не предполагающего ожидания внешних результатов, а это немного противоречит моим представлениям, вот и пытаюсь разобраться.
Аноним 27/10/21 Срд 18:36:55 #234 №2195310 
>>2195114
>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), и то не факт
Аноним 27/10/21 Срд 18:45:22 #235 №2195318 
>>2195310
>чем последняя операция (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;
Аноним 27/10/21 Срд 18:45:44 #236 №2195319 
>>2194800
>Эм.. Открываем доку:
>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
Аноним 27/10/21 Срд 19:40:29 #237 №2195359 
>>2195273
Подумой
https://dotnetfiddle.net/XnBWJ2
Аноним 27/10/21 Срд 20:10:53 #238 №2195394 
>>2195319
Блядь, братишка, это ты хотел сначала "ескейпить", а теперь в урл енкод подался?

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

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

В любом случае надо следовать правилу: недоверять инпутам и ВСЕГДА санитайзить
Аноним 27/10/21 Срд 21:05:54 #239 №2195431 
>>2195359
Эм. Я не он. Но теперь сам сомневаюсь.
Что ты хотел показать своим примером? Работа там ,как он и хотел ,выполняется в разных тредах. Общее время меньше.
Аноним 27/10/21 Срд 22:18:14 #240 №2195516 
>>2195431
Он хотел показать как не стоит писать на шарпе и как не стоит мерять производительность.
Аноним 28/10/21 Чтв 04:15:02 #241 №2195696 
>>2195394
>Блядь, братишка, это ты хотел сначала "ескейпить", а теперь в урл енкод подался?
Ага. Но лучше, наверное, впилить и то и то.

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

>Какую задачу ты решаешь (глобальную, а не "мне надо со строкой ебаться")?
Всё началось с впиливания этой вот фичи:
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
для разных кейсов, так,
чтобы принимая на вход различным образом закодированные строчки, метод выдавал сырую строчку, не пидорася её хэш (хэш поста).
Аноним 28/10/21 Чтв 04:35:24 #242 №2195701 
>>2195394
>Какого хуя ты там для базы что-то валидируешь и что оно может быть незаенкоженым и зачем ему вообще быть заенкоженым?
Заенкоженным оно должно быть внутри жсона, просто чтобы 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-быдлокода, например?
>и ВСЕГДА санитайзить
Тут тебя не понял, проясни.
Аноним 28/10/21 Чтв 09:00:36 #243 №2195723 
>>2195431
В первом случае IO-bound операция, поток освобождается и идет запускать другие таски. Во втором, CPU-bound, операция по вычислению последнего знака числа ПИ. Там поток не освобождается (по сути там просто return Task.CompletedTask) и все идет последовательно в одном потоке. Я к тому, что просто вызов эвейт на таске не гарантирует параллельное выполнение.
>>2195516
Те че, пёс. Это продакт-реди топ бенчмарк с 9к звезд на гитхабе.
Аноним 28/10/21 Чтв 09:09:51 #244 №2195726 
>>2195701
> реквестом рекурсивного запроса
Твое нежелание читать доки достойно восхищения нет
https://sqlite.org/lang_with.html
>распознать какому посту какой хэш соответствуе
В душе не ипу принцип работы наноборды, но как тебе такая идея: сначала эскейпишь текст, а потом считаешь хэшь? Все строки будут заэскейплены, клиент будет обязан анескейпнуть не зависимо от содержания.
Аноним 28/10/21 Чтв 11:47:44 #245 №2195827 
>>2195726
>Твое нежелание читать доки достойно восхищения нет
>https://sqlite.org/lang_with.html
Там многобукв и все они английские. С какого параграфа начать, блять?
Я вообще у них реквестировал готовый запрос, а не доки.
Ещё бы ссылку на учебник по сиквелу скинули, ну ёбанарот.

>>распознать какому посту какой хэш соответствуе
>>всмысле глазами узнать, в жсоне, а то там нечитабельный бейс
>В душе не ипу принцип работы наноборды, но как тебе такая идея: сначала эскейпишь текст, а потом считаешь хэшь? Все строки будут заэскейплены, клиент будет обязан анескейпнуть не зависимо от содержания.
Это один из вариантов, да.
А так-то там вариантов куча: https://github.com/username1565/nanoboard/blob/dev/test_NBPack/Validation/RawPostsToValidate.json
и по дефолту там base64.
Аноним 28/10/21 Чтв 12:12:02 #246 №2195860 
>>2195827
>параграфа начать, блять?
Там где большими буквами Recursive. У постгрепро есть отличная документация на русском (по постгресу разумеется) https://postgrespro.ru/docs/postgresql/14/queries-with#QUERIES-WITH-RECURSIVE
Аноним 28/10/21 Чтв 12:14:41 #247 №2195869 
>>2195827
Кстати, почему бы тебе заодно не подзадрачивать автора в ишью на гитхабе? Он то знает свой проект и наверняка что-то предложит.
Аноним 28/10/21 Чтв 12:18:08 #248 №2195873 
>>2195869
Или то репо это твой форк?
Аноним 28/10/21 Чтв 13:15:15 #249 №2195969 
>>2195869
Уже задрачивал, поначалу, только там лишь 3.5 нанона: https://github.com/nanoboard/nanoboard/issues
>>2195873
Так и есть, сижу и пердолюсь с кодом, сам, помаленьку уже несколько лет
Аноним 28/10/21 Чтв 15:29:01 #250 №2196111 
>>2195723
>просто вызов эвейт на таске не гарантирует параллельное выполнение
Так может это и хорошо? И там ВЫШЕ (планировщик) сам все решит?
Иначе мы можем создать больше тредов и они на переключении контекста сдохнут.
Ну я это так, мысли вслух.
Аноним 28/10/21 Чтв 16:58:34 #251 №2196233 
>>2195860
Ну и как эту хуйню тестить? Куда её копипастить, блядь? Дай нормальный запрос уже. Хули вы ебёте мне мозг.
Аноним 28/10/21 Чтв 20:36:04 #252 №2196545 
>>2196233
Я ебу какой запрос тебе нужен
Аноним 28/10/21 Чтв 22:48:36 #253 №2196681 
Выше по треду наблюдается харкач дривен девелопмент.
Новый тренд?
Аноним 28/10/21 Чтв 23:26:01 #254 №2196738 
Реквестирую литературу по многопоточности для легаси шарпа 4.0 2010 года.
Сам пока что смог нагуглить только "Pro .NET 4 Parallel Programming in C#".
Неужели это всё или я гуглить не умею?
Аноним 29/10/21 Птн 08:20:23 #255 №2196882 
>>2196545
Надо запрос, чтоб достать из таблицы базы данных - все ветви дерева в виде дочерних записей - до нужной глубины, в частности 3, включая родителя.
Аноним 29/10/21 Птн 08:37:42 #256 №2196888 
>>2196882
Ёпта, дай скрипт инициализации с тестовыми данными (желательно под sqlite) и ожидаемый результат. И возможно я снизойду и высру тебе запрос.
Аноним 29/10/21 Птн 10:01:03 #257 №2196953 
>>2196888
Я уже сам, вроде, высрал, в базоданном треде. Там вся хуйня есть, можешь не срать говнокодом, не дуйся, а то геморрой вылезет.
Аноним 29/10/21 Птн 10:51:18 #258 №2197006 
>>2196953
Ты просишь помощи, но я должен лазить на дваче по тредам и искать твои посты. Кек, лол.
Аноним 29/10/21 Птн 10:58:46 #259 №2197011 
>>2197006
Насчет запроса, я уже сказал, что я его сварганил сам, пока вы там чешетесь. Задачу ты должен бы понять ещё с полуслова.
Но ты уже снизошёл, у меня - ниже плинтуса, до уровня крысятничества, червь. Косари мои ебучие где?
Аноним 29/10/21 Птн 10:59:52 #260 №2197012 
>>2197011
Галоперидола выпей, шиз.
Аноним 29/10/21 Птн 14:11:46 #261 №2197209 
image.png
Я же могу так делать? до кукки пользователь иммеет доступ но не к сесси же? какие подводные?
Аноним 29/10/21 Птн 14:46:05 #262 №2197233 
>>2197209
Кажись данные и так клиенту не уходят: "The in-memory cache provider stores session data in the memory of the server where the app resides. "
Чего ты вообще добиться хочешь?

И вообще - сессия хуйня, старайся без сессий.
Аноним 29/10/21 Птн 14:55:47 #263 №2197242 
>>2197233
ну как чего, сделать так что бы пользователь мог залогиниться, передать ему роль, идентити я юзать по опредленным причинам не могу, поэтому интересуюсь безопасно ли держать ключ сессии в контексте
Аноним 29/10/21 Птн 16:45:01 #264 №2197332 
>>2197242
Стопе, братишка.
Ты можешь клеймсы (да и любое говно) держать в аторизационной куке. Единственный минус - кука в размере больше станет.
Идентити с его схемой ДБ юзать не обязательно.
Ну или, ты откуда те роли будешь брать? С БД же какой? Вот оттуда и бери, можешь кеш использовать.

Твое решение с сессиями - костыль само по себе, а код твой вообще ничего не проверяет по сути.
Аноним 29/10/21 Птн 17:01:57 #265 №2197345 
>>2197332
>Ну или, ты откуда те роли будешь брать? С БД же какой? Вот оттуда и бери, можешь кеш использовать.
нет родей, даже базы для паролей нет, они могут быть во многих местах однорвеменно, и более того они даже менятся могут со многих мест, я знаю что это пиздец тупо но я не смог убедить что это хуйня полна.
в итоге мне было сказано "ты у себя ничего не держишь"

>а код твой вообще ничего не проверяет по сути.
по сути он проверяет не поменялась ли сессия, идея проста, пользователь не может поминять ключ сессии на сервере а значит если он у себя будет что-то там мутить с паролями, ролями и тп это все будет валидно только для него
Аноним 29/10/21 Птн 17:56:54 #266 №2197427 
image.png
image.png
>>2197345
Аноним 29/10/21 Птн 18:09:46 #267 №2197440 
>>2197345
Ну и вот тебе в потверждение
https://stackoverflow.com/questions/14773598/asp-net-mvc-is-it-safe-to-keep-sensitive-info-in-session
Аноним 30/10/21 Суб 09:59:16 #268 №2197878 
image.png
Ну пиздец. Это только в россии так?
Аноним 30/10/21 Суб 10:20:10 #269 №2197889 
>>2197878
Да, в рублях платят только в России.
лучше бусы дававй.webm
Аноним 30/10/21 Суб 10:37:02 #270 №2197897 
>>2197878
Стату портит то, что на джаве все топовые компании сидят и зарплаты у них всегда выше. А второе, возможно десктоп дидов засчитали за .NET разрабов, а работают они за рыбную котлетку
Аноним 30/10/21 Суб 13:23:14 #271 №2197996 
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9

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

Анон, что означает
>default!
?
Аноним 30/10/21 Суб 13:29:18 #272 №2198002 
>>2197996
deafault - значение по-умолчанию, длястринга это налл
! - указание компилятору, что ты понимаешь, что ты присваиваешь налл свойству, и null reference exception на твоей совести. (см. Nullable reference types)
Аноним 30/10/21 Суб 13:38:43 #273 №2198011 
>>2198002
Спасибо
Аноним 30/10/21 Суб 17:55:34 #274 №2198270 
Немного мимо треда, но всё же: как вообще люди приходят к тому, что работают на чём-то одном (дотнет, жава, петухон и далее по списку), как пришли к дотнету вы сами, аноны?

Сейчас на втором курсе вуза нахожусь, хочется глубоко вкатиться во что-то окончательно и последние два месяца пишу на шарпах. До этого год писал на плюсах, юзал питон в мл и бэкэнде, ковырялся с вебом в целом. Особых проблем с освоением не испытывал, если нормально читал документацию, но всё равно хз как выбрать во что вкатиться.
Аноним 30/10/21 Суб 18:17:23 #275 №2198301 
>>2198270
Если вкатываешься и сознательный, то смотри что популярно, что развивается, но не на основе хайпа.

Я сам просто на курсы попал да и потом взяли на работу. Вот и вся история. За 7 лет, в принципе, не пожалел.
СЕйчас ищу новое место работы, вроде бы вакухи есть, оферы приходят. Правда я не с россии. Судя по харкачу в россии с .нет похуже, одни деды-декстопщики. Декстоп - мертв, туда точно не иди.
Аноним 30/10/21 Суб 22:15:32 #276 №2198542 
>>2198301
Окей, спасибо. В принципе с работой не всё так плохо в том месте, где живу, hh выдаёт хоть какие-то вакансии по бэкэнду.

Не понимаю ещё в чём прикол того, что почти все компании указывают требуемый опыт работы от 1 до 3 лет - это блеф такой или они действительно разворачивают студентов по различным причинам?
Аноним 31/10/21 Вск 02:13:53 #277 №2198641 
>>2197878
Где такие вакансии-то? Почему мне с 2 годами - плотют на текущем месте 55к, а те кто зовут на собесы вилку в 80к максимум предлагают? А? А? А? Я жи фуллстак!!! Ангуляр знаю, вью знаю, дотнет - знаю... Что за фигня-то?
Аноним 31/10/21 Вск 05:29:53 #278 №2198670 
>>2186992 (OP)
Если я хочу вкатиться в бекенд девелоперы то пошел я нахуй, да и за плечами имею дженерик веб-проект с рецептами, что еще запилить, чтобы работодатель не смотрел на меня как кретинчика, заспидранившего 2-часовой курс на ютубе? Имеют ли вес сертификаты и какие можно задрочить, если мелкомягкий 70-483 больше недоступен?
Аноним 31/10/21 Вск 11:20:54 #279 №2198749 
>>2198641
Ну 2 года это может быть засидевшийся жун.
Или окологосговно какое-то.
Или ты просто траль.
Аноним 31/10/21 Вск 11:25:48 #280 №2198752 
>>2198670
Ящитаю, шо всем поебать.
Ну может серт от увожаемых контор и даст немного буста.
Но самый большой буст - те самые 1-2 года опыта...
Так что думай, если есть время - ну дрочи свои курсы, если по фасту надо - ищи куда жопу приткнуть не важно даже куда (лишь бы не госконтора или около того), галеры для этого лучшее место. Через год-два сьебешь мидлом на 200к.
Аноним 31/10/21 Вск 12:03:07 #281 №2198791 
>>2198670
>что еще запилить, чтобы работодатель не смотрел на меня как кретинчика, заспидранившего 2-часовой курс на ютубе?
Сделай
1. Магазин по продаже чего-нибудь(драконьих дилдо например) с докрами-ребитами-авторизацией-ролями-системой оплаты и чтобы разворачивалось оно одним выполнением скрипта. Сервисов пусть будет штук 5(ну, классическое: гейтвей, товары, оплата, корзина, авторизация, можешь еще что-то придумать если так уж хочется), плюс всякая инфраструктурная хуетень которая будет в зависимости от нагрузки поднимать дополнительные инстансы.
2. Компилятор своего языка с блекджеком и шлюхами, чтобы при этом его могла подхватить студия(ну, т.е. подсветка синтаксиса работала, был какой-никакой дебаг)
3. Свой веб-фреймворк
4. Своя CMS
Думаю для джуна этого достаточно.
Аноним 31/10/21 Вск 12:16:55 #282 №2198807 
>>2198791
Это траленг?
Аноним 31/10/21 Вск 12:29:48 #283 №2198815 
>>2198807
Чому ты так думаешь?
Каждый из пунктов что тут написан делается за выходные, разве что кроме компилятора в случае когда у тебя нет образования(с образованием компилятор так же делается за выходные)
Я же не говорю о интерпрайз уровне или опенсорс для коммунити. Пруф оф концепт, но без откровенного говнокода.
Аноним 31/10/21 Вск 13:18:15 #284 №2198854 
>>2198815
Понятно, что сделать сырой продукт по каждому из пунктов можно и за пару часов, но он имеет в виду, что если серьезно подходить к каждому проекту - то там работы на годы.
Аноним 31/10/21 Вск 13:26:03 #285 №2198860 
>>2198815
Почему тогда микрософты пилят свои проекты годами, а каждый джун это может сделать за выходные?
Аноним 31/10/21 Вск 19:29:33 #286 №2199234 
11.JPG
22.JPG
>>2186992 (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
Аноним 31/10/21 Вск 21:23:05 #287 №2199340 
>>2199234
Проверь что у тебя проект не .NET5.0.

Попробуй добавить через browse из папки C:\Windows\Microsoft.NET\Framework\v4.0.30319
Аноним 01/11/21 Пнд 12:19:28 #288 №2199652 
>>2198752
Счииается ли годом опыта год опыта на другом язке+технологии? Хочу с дата инженегра на питоне перекатиться в дотнет.
Аноним 01/11/21 Пнд 14:42:52 #289 №2199727 
Получается ещё надо TypeScript для Angular учить? Тут .Net фиг выучишь когда-либо, а они предлагают ещё целую вселенную веба изучать. Не слишком ли дофига знаний для таких зарплат?
Аноним 01/11/21 Пнд 15:12:23 #290 №2199750 
>>2199727
Фронтендом занимаются только джуны, которым лапшу на уши повесили.
Аноним 01/11/21 Пнд 15:17:12 #291 №2199752 
>>2199750
Я пока ноль полный и даже не джун
Аноним 01/11/21 Пнд 15:25:26 #292 №2199755 
>>2199652
Большой плюс. Но только на жуна возьмут, скорее всего.
Зачем тебе перекатываться? ДС на айпе же, не?
Аноним 01/11/21 Пнд 19:48:45 #293 №2199973 
какие темы надо знать чтобы начать читать CLR via C#. Джеффри Рихтер?
Аноним 01/11/21 Пнд 19:56:13 #294 №2199990 
>>2199973
Никакие. Книга старье.
Аноним 01/11/21 Пнд 21:30:12 #295 №2200052 
>>2199973
Да хуй знает. Я так и не осилил.
Судя по тому, что я наблюдаю, книга оверкил (когда вы блядь последний раз смотрели как оно там компилится вообще?), знания такого уровня требуются только на каком-то жестком хайлоаде. И то, скорее всего да, книга подустарела. Но умные дядьки говрят, что все еще хороша.
Аноним 02/11/21 Втр 09:05:01 #296 №2200330 
изображение.png
Как же заебал этот блядский спермовысер лочить процессы под дебагом после каждых 5-6 скачков по брекпоинтам. Я заебался уже их уже перезапускать
Аноним 02/11/21 Втр 10:46:10 #297 №2200386 
>>2200330
Intel Atom?
Аноним 02/11/21 Втр 11:41:56 #298 №2200455 
Когда выйдут новые книги на русском? Столько новых технологий и нет ни одной книги по ним.
Аноним 02/11/21 Втр 12:29:51 #299 №2200488 
>>2200455
>русском
>новые
>Когда
Никогда. Очевидно же.
Аноним 02/11/21 Втр 14:08:01 #300 №2200600 
Тупой вопрос..
Смотрите. Есть ряд железок.
У железок есть веб-интерфейс.
Железки подключаются к моему приложению, я сохраняю в базе информацию нужную мне для взаимодействия.
Что я хочу. Я хочу проксировать туда трафик к веб-интерфейсу железок.
В чем проблема. Я не хочу на каждый запрос лезть в базу и проверять знаю ли я о такой железке.
Кроме как сделать словарь где я ключем АйДи железки и значением - ip я ничего не придумал, но мне этот вариант почему-то не нравится, плюс если железок миллиард - это будет довольно жирный такой словарь.
Чего делать-то чтобы проксировать трафик и с одной стороны - не лазить в базу, с другой не городить огород из всяких словарей, кешей и прочих штук?
Аноним 02/11/21 Втр 15:30:27 #301 №2200693 
>>2200600
Тебе похуй к какому айпишнику прилетит?
Ты баланс лоадинг изобретаешь?

Хз. В любом случае, или ацелевой айпишник должен приходить или ты его должен сам мапить по айди. Первое - хуита бо айпишники будут меняться и клиенты надо будет как-тоо бновлять. Второе - ну а точно будет миллиард? Ну будет да и будет, я бы у себя хранил таки конфиг.
Аноним 02/11/21 Втр 16:07:29 #302 №2200730 
Вот вы говорите, что десктоп мёртв, а как без десктопа? Всё равно же нужны такие приложения.
Вот, к примеру, на андроиде не очень-то любят заходить через браузер, а предпочитают отдельное приложение. Также же и на ПК, проще запустить прогу, чем лезть в браузер.
Тем более десктопные приложения лаконичные, более легковесные, чем тяжёловесные веб-приложения, которые долго грузяться и лагают.
Аноним 02/11/21 Втр 16:56:26 #303 №2200759 
>>2200730
>Также же и на ПК, проще запустить прогу, чем лезть в браузер.
"ты странный"
Если что-то тяжелое и важное- то да, прогу. Для всякой мишуры - дите нахуй со своими декстоп/тилибон приложениями.

Ну а по технологиям - да вообще не видно новых декстоп проектов, поэтому (почти) любой декстоп проект воняет дедами которые н есмогли в веб перекатиться.
Аноним 02/11/21 Втр 17:38:11 #304 №2200807 
>>2200693
>Ты баланс лоадинг изобретаешь?
Не. Просто у устройств - динамический АйПи и естественно у них нет никакого домена по которому к ним можно было бы обратиться. Ну и идея в том что после смены АйПи устройство ко мне на сервер постучалось - сказало текущий АйПи, ну а я мог подключиться к своему серверу и уже к веб-морде устройства обращаться.
Аноним 02/11/21 Втр 18:37:16 #305 №2200860 
>>2200759
Но ведь веб - это не шарп. Спрашивается, зачем тогда нужен шарп?
Аноним 02/11/21 Втр 18:54:37 #306 №2200873 
>>2200860
Кокрастоке шарп.
Спрашивается - зачем нужен ты со своим декстопом?
Аноним 02/11/21 Втр 19:05:38 #307 №2200884 
>>2200873
Мне просто нравится писать красявые и моднявые десктопные приложения. Сразу виден результат работы и удовлетворение от неё.
А в консоли писать скучно. ASP.NET вообще подбешивает.
Аноним 02/11/21 Втр 19:08:25 #308 №2200888 
>>2200884
>Сразу виден результат работы и удовлетворение от неё.
Есть веб фулстеки.

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

На предыдущих работах я сталкивался с десктопными приложениями как сис. админ. Там и формирование справок, финансовые отчетности, полнофункциональное решение для юристов с миллионом окошек, менюшек и т.п.
А мне говорят - не, сейчас всё в веб. А кто тогда эти проги разрабатывает?
Аноним 02/11/21 Втр 19:17:01 #310 №2200898 
>>2200807
Так ты изобретаешь пуш?
Аноним 02/11/21 Втр 19:39:30 #311 №2200940 
>>2200488
По Java больше книг на русском и при этом свежие по актуальной версии. А шарп в лучшем случае я находил по нет 3.1, а нет 5 и тем более 6 приходится только мечтать.
Аноним 02/11/21 Втр 19:48:54 #312 №2200956 
>>2200940
>тем более 6 приходится только мечтать
Который не вышел? Покажи книги на русеке по Java 17, который уже вышел. Не говоря, что на проекте ты будешь только мечтать хотя бы на Java 11 писать. У меня от многих терминов глаз дергается при его переводе на русек в книге + болезнь неправильно ставить ударения у многих на инглише.
Аноним 02/11/21 Втр 19:54:54 #313 №2200972 
>>2200894
>А кто тогда эти проги разрабатывает?
Давно не делают новые проги для десктопа:
- старье, написанное на делфи хуй знает когда, например total commander
- системные консольные утилиты на си/плюсах как ffmpeg
- всякие фотошопы; много пользы от еще одного фотошопа?
- игры

Все корпоративное дерьмо и документооборот давно переезжает в веб по ряду причину.
Аноним 02/11/21 Втр 19:56:29 #314 №2200975 
>>2200956
А по WPF самая последняя книга за 2011, хотя лучше читать Петзольда за 2008, потому что он учит писать, а не просто перечисляет фишечки.
Аноним 02/11/21 Втр 20:00:22 #315 №2200981 
>>2200975
WPF давно не обновлялся. Зачем по WPF выпускать новую книгу?
Аноним 02/11/21 Втр 20:02:26 #316 №2200982 
>>2200972
А ты знаешь как прикручена работа с ЭЦП в этом вашем вебе? Через java-аплеты! Приходится устанавливать определенную версию JRE, чтобы это говно работало. Так что весь ваш веб - это костыльное решение, чтобы облегчить работу программистам, но не пользователям и не тех. поддержке. Десктопные приложения в этом плане более стабильны и предпочтительны.
Про ГИСы я вообще молчу. Это говно вообще никогда не работает как заявлено. Там видимо вообще отбитые пишут.
Аноним 02/11/21 Втр 20:07:08 #317 №2200991 
>>2200894
>И что там в фуллстеке от шарпа?
Внезапно - шарп. На котором есть ASP - один из лучших и быстрых веб фреймворков.
Ну, или даже блейзор - все тебе будет на шарпе.

> Там и формирование справок, финансовые отчетности
Ну я же говорю, документооборот для михалычей.
Аноним 02/11/21 Втр 20:07:48 #318 №2200993 
>>2200981
По последней версии WPF нет книги и хотелось бы книгу уровня Петзольда. Потому что текущие книги - ни о чём. Примеров мало и в основном посвящены xaml. А Петзольд прям на шарпе фигачит примеры, а xaml как довесок, чтобы красоту навести.
Аноним 02/11/21 Втр 20:07:50 #319 №2200994 
>>2200982
>Через java-аплеты
Это ты у своего банка спроси. На этой борде некоторые даже выебываются, что работают на банк. Такое же гос говно с дремучим легаси и бюрократией.

>Десктопные приложения в этом плане более стабильны и предпочтительны
Только если на тебя не вешают CI/CD или покрытие UI тестами и твоей софтиной пользуется 1 человек.
Аноним 02/11/21 Втр 20:08:46 #320 №2200995 
>>2200991
По Blazor нет вообще ни одной книги! Как на нём писать - не понятно.
Аноним 02/11/21 Втр 20:08:48 #321 №2200996 
Смотрите, только вкатун, а уже дед: >>2200982
Аноним 02/11/21 Втр 20:10:16 #322 №2201000 
image.png
>>2200995
Не пизди.
А вообще, ты похож на шизоида, который срал тут недавно.
на всякий случай пошлю тебя нахуй: иди нахуй
Аноним 02/11/21 Втр 20:11:51 #323 №2201005 
>>2201000
>2022
Вы из будущего пишите? Хорошие книги напишут?
Аноним 02/11/21 Втр 20:13:36 #324 №2201007 
>>2201005
Ты же сам побежешь искать новейшие книги, которые каждых пять сек устаревают, вот они и подсуетились.
Аноним 02/11/21 Втр 20:15:31 #325 №2201014 
>>2200993
>По последней версии WPF
Это по какой версии?

>в основном посвящены xaml
По шарпу или по архитектуре есть другие книги без привязки к WPF. Тебе об этом уже писали.
Аноним 02/11/21 Втр 20:22:36 #326 №2201024 
>>2201014
Я видел книги по WPF 4.5, а сейчас уже WPF 5 и скоро WPF 6 выйдет.

Я изучил уже консольные приложения. Я так-то вообще профи и легко изучаю новые языки. Начинал ещё с Ассемблера, С++, Паскаль, РНР, Perl и многие другие. И в ВУЗе я сдавал программирование на отлично, только с математикой ленился и порой плохо сдавал.
Аноним 02/11/21 Втр 20:36:48 #327 №2201040 
>>2201024
>WPF 5
Это неудачный порт на кор и патчи, которые фиксят баги порта. Совсем скоро его выкинут из сдк в ворклоад или вовсе задепрекейтят.
Аноним 02/11/21 Втр 20:40:04 #328 №2201045 
>>2201040
Я ждал MAUI в ноябре, но говорят, что его не будет. Плюс ещё надо ждать книги, чтобы понять как на нём писать.
В то же время на Java уже есть кроссплатформенные библиотеки для написания десктопных приложений. Да что далеко ходить? Rider написан на Java. А где IDE на C#?
Аноним 02/11/21 Втр 20:53:02 #329 №2201061 
>>2201045
Ты уже обосрался с Java 17 и WPF 5.

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

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

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

Приведи популярные кроссплатформенные программы на Java, чтобы поддерживало iOS, иначе это вшивая кроссплатформа.
Аноним 02/11/21 Втр 22:23:14 #330 №2201136 
>>2201045
>Rider написан на Java.
и на C# в том числе, Rider это Intellij + Resharper (который на c#)
>>2201045
>А где IDE на C#?
>
ВНЕЗАПНО
- Visual Studio
- MonoDevelop (не нужно)

>>2201045
>Я ждал MAUI в ноябре, но говорят, что его не будет
Не нужно ибо есть
https://avaloniaui.net/

Аноним 02/11/21 Втр 22:26:31 #331 №2201142 
>>2201136
>v0.10.10
Аноним 02/11/21 Втр 22:35:33 #332 №2201156 
>>2201142
>>v0.10.10
я уже и забыл что на дваче преимущественно одни СТО сидят, и ПОД БИЗНЕС ТУЛЗЫ ВЫБИРАЮТ, а не свои свисто перделки
Аноним 02/11/21 Втр 22:39:56 #333 №2201162 
>>2201156
Если бы это была хотя б альфа, но нет. Это очень далекая омега центавра. Этот номер версии говорит о двух фактах: апи изменится и наличие багов.
Аноним 02/11/21 Втр 22:43:14 #334 №2201171 
>>2201162
>апи изменится
Форкни нужную версию
> наличие багов
Пофикси.
Аноним 02/11/21 Втр 23:04:17 #335 №2201199 
>>2201162
>Этот номер версии говорит о двух фактах: апи изменится и наличие багов
Далеко не факт, мало ли по каким еще причинам они хотят оставаться на "начальном этапе"
Другим это не особо мешает, вон даже какой-то клиент под битки запилили, wasabiwallet.io, но да, нужно не забывать что у типичного двачера то ПОТРЕБНОСТИ ОГОГО и ЧЕГО ТО ДА ТОЧНО НЕ ХВАТИТ
Аноним 02/11/21 Втр 23:11:08 #336 №2201210 
>>2201199
>Далеко не факт
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 научился писать?

>нужно не забывать что у типичного двачера
Такую либу невозможно пропихнуть.
Аноним 02/11/21 Втр 23:22:34 #337 №2201223 
>>2201210
>Тесты на UI научился писать?
Не пишу, есть отдельная команда, а на проектах где ее нет не работаю
>>2201210
>Такую либу невозможно пропихнуть.
Конечно, типичному двачеру ничего не пропихнуть, ему бы кнопку "бабло" или "сделать красиво"
Аноним 02/11/21 Втр 23:25:17 #338 №2201229 
>>2201223
Я десктоп не пишу. Свои фантазии оставь при себе.
Аноним 02/11/21 Втр 23:55:20 #339 №2201244 
>>2201223
>ему бы кнопку "бабло" или "сделать красиво"
А кому нет-то? А блядь? Отвечай?
Аноним 03/11/21 Срд 00:54:22 #340 №2201304 
Вот хорошая вакуха, наверное https://jobs.dou.ua/companies/devsdata-llc/vacancies/186578/
Но я как синиор крудошлеп чувствую себя букашкой.
Аноним 03/11/21 Срд 00:59:00 #341 №2201308 
>>2201244
>А кому нет-то?
Мне.
Аноним 03/11/21 Срд 09:20:33 #342 №2201391 
Дак что вы предлагаете? Забить на WPF и MAUI, и учить дурацкий ASP.NET и Angular на TypeScript?
Аноним 03/11/21 Срд 10:29:36 #343 №2201426 
Как в C# проект добавить msbuild команды?
Аноним 03/11/21 Срд 10:38:58 #344 №2201439 
>>2201391
Предлагаю вкатиться тебе жабаскрипт и не ебать себе головушку.

>>2201426
Глянь nuke.
Аноним 03/11/21 Срд 10:51:07 #345 №2201462 
>>2201439
нах?
Аноним 03/11/21 Срд 12:13:55 #346 №2201565 
Ещё тут на днях узнал, что по Java есть классный двухтомник Хорстманна. Я был просто в восторге от этой книги. Она написана понятным языком, всё разложено по полочкам, что не возникает недопонимания. Первые 100 страниц прочитал залпом за один день. Только вот из-за этой одной книги готов изучать Java вместо C#.
Вот почему по C# нет таких же классных книг?
Аноним 03/11/21 Срд 12:17:12 #347 №2201571 
>>2201391
>дурацкий ASP.NET
За базар ответишь?
Аноним 03/11/21 Срд 12:19:08 #348 №2201575 
>>2201565
Иди уже нахуй, шизоид со своими книгами.
Завтра зеленог ослоника прочитаешь и
"Я был просто в восторге от этой книги. Она написана понятным языком, всё разложено по полочкам, что не возникает недопонимания. Первые 1000 страниц прочитал залпом за один день. Только вот из-за этой одной книги готов стать поехавшим"
Аноним 03/11/21 Срд 12:40:22 #349 №2201607 
>>2201571
Да, писал свой движок на РНР. Всё было гораздо проще и понятнее. Лёгкая масштабируемость. Не было ни каких "магических" названий файлов, которые движок обрабатывал по-особому. Это всё явно прописывалось.
Из чужих движков работал немного с Laravel. Ничего про него не читал, а с ходу внёс правки в сайт, какие требовались.
А что в ASP.NET? Это какой-то монстр, где все важные детали скрыты и заменены малопонятными методами, о которых можно узнать, если прочитаешь многотомные мануалы. Изменяешь код в одном месте, валится в другом, казалось бы совсем не связаном с ним. Как масштабировать сайт, я так и не понял. Шаг влево - шаг вправо и ничего не работает.
Аноним 03/11/21 Срд 12:53:35 #350 №2201620 
>>2201575
Если книг читать не будешь - скоро грамоту забудешь!
Аноним 03/11/21 Срд 14:02:50 #351 №2201683 
>>2186992 (OP)
Хочу писать на вашем языке, есть что по гуи для мака? Если только не какао, тогда я могу свифт юзать. Мне бы кроссплатформенное
Аноним 03/11/21 Срд 14:09:22 #352 №2201689 
>>2201683
Шарп не может в кроссплатформенное гуи. MAUI ещё не вышел, а WPF только под винду.
Аноним 03/11/21 Срд 14:15:27 #353 №2201692 
>>2201689
>Шарп не может в кроссплатформенное гуи
Пруфы?
Аноним 03/11/21 Срд 14:25:32 #354 №2201705 
nowpflinux.jpg
>>2201692
Такое сообщение выдаётся в линупсе (убунта 20.04)
Аноним 03/11/21 Срд 14:27:24 #355 №2201707 
>>2201705
Впф онли винда. На это не иллюзорно намекает первая буква сокращения.
Аноним 03/11/21 Срд 14:28:56 #356 №2201709 
>>2201707
Когда будет lpf тогда? mpf?
Аноним 03/11/21 Срд 14:30:19 #357 №2201712 
>>2201709
У тебя каша в голове.
Аноним 03/11/21 Срд 14:46:37 #358 №2201728 
>>2201565
Есть у c# unleashed например
Аноним 03/11/21 Срд 14:47:24 #359 №2201730 
>>2201692
А кто может?
Аноним 03/11/21 Срд 14:48:47 #360 №2201731 
>>2201730
Из того, что сразу есть в студии, хуюнити. Можешь прилепить даж свой мввм.
Аноним 03/11/21 Срд 14:58:15 #361 №2201740 
>>2201728
Во-первых, её нет на русском. Во-вторых, она только по самому языку, а у Хорстманна основной объём по фреймворкам и много внимания уделено именно графическим приложениям.
Ближайшим аналогом можно считать Троелсенна, но он скучно пишет. Я его читаю перед сном и всегда крепко засыпаю.
Аноним 03/11/21 Срд 14:59:35 #362 №2201742 
>>2201731
Это же недоигровой кал, при чем тут УИ фреймворки?

>>2201740
Ява ГУИ это лол, хорошо пошутил.
Троллсен это кал, он просто тупой мужик и не умеет писать, все его книги говно.
Аноним 03/11/21 Срд 15:04:32 #363 №2201747 
>>2201607
Да, точно тот вкатун.
Ну чтож, не срослось у тебя. Собсвенно: алибидерчи, но у тебя нету права со своим "опытом" обсирать АСП.
Аргументы тебе уже приводились, если ты не хочешь осилить + понять зачем так сделано (и отказаться от того, что тебе жмет) - иди нахуй в свои ПХП.
Аноним 03/11/21 Срд 15:06:06 #364 №2201751 
>>2201712
Сейчас все гос. конторы переходят на русские ОС (линупсы) и им срочно надо перенести говнопрограммы с винды на линупс. Так что десктоп в нашей стране очень актуален. А ваш веб не везде можно применить.
Аноним 03/11/21 Срд 15:07:36 #365 №2201754 
>>2201742
>Троллсен это кал
Тогда книг по шарпу вообще нет. Ну разве что книга Флёнова - Библия C#.
Аноним 03/11/21 Срд 15:16:54 #366 №2201763 
>>2201754
По языку биллиг сойдет для начала, есть еще аблахари, липперт (вообще один из создателей языка).
Аноним 03/11/21 Срд 15:17:56 #367 №2201764 
>>2201751
Для этого есть уже 15 лет либы на моно не первой паршивости.
Аноним 03/11/21 Срд 15:18:39 #368 №2201765 
>>2201751
В госконторах платят копейки. Вся суть ойти в этой стране что за счет дохода в $ средняя зп более менее.
Аноним 03/11/21 Срд 15:19:57 #369 №2201766 
>>2201765
Госконторы не нанимают программистов, они покупают готовый продукт.
Аноним 03/11/21 Срд 15:25:38 #370 №2201774 
>>2201751
Вот это уникальная возможность быть швабрированым за 20к рубльов и виноватым, когда продукт обосреться ибо КОМУНАДО отьели 90% бюджета! А главное большая честь!
Мммм, работал я лет 10 назад на гос, все 10 лет мечтаю вернуться. И хуй стоял там кста.
Аноним 03/11/21 Срд 15:40:00 #371 №2201793 
>>2201763
>биллиг
>C# 3.0 2008
Насколько актуально?

>липперт
Нет русека
Аноним 03/11/21 Срд 15:49:42 #372 №2201807 
>>2201793
> Насколько актуально?

Если с нуля изучаешь, то для начала сойдет. Но там только голый язык без библиотек.
Аноним 03/11/21 Срд 15:50:37 #373 №2201808 
>>2201766
И платят в рублях, копейки. То что распилят кодерам точно не достанется.
Аноним 03/11/21 Срд 15:52:37 #374 №2201811 
>>2201689
>MAUI

Поддержка линукса только на уровне комьюнити, а не официальная.
Ну и мне чет кажется, что нормального мауи на линухе не будет.
Аноним 03/11/21 Срд 15:52:51 #375 №2201812 
>>2201808
Зато в резюме можно будет добавить "Работал на увожаемого Виктора Иваныча по специальности - пидорас"
Аноним 03/11/21 Срд 15:53:02 #376 №2201813 
>>2201807
Из новых книг читал Прайса, но там "голопом по европам", но плюс, что книга про кроссплатформу и ни какой вижуал студии (только vs code).
Ещё начинал читать Гриффитса, но она ещё более скучная, чем Троелсен. И там тоже только про язык, без платформы .Net.
Аноним 03/11/21 Срд 15:54:21 #377 №2201815 
>>2201812
Лично у меня даже грамота благодарственная есть от министерства экономики за хорошую работу.
Аноним 03/11/21 Срд 15:59:00 #378 №2201821 
>>2201740
>у Хорстманна основной объём по фреймворкам и много внимания уделено именно графическим приложениям

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

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

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

https://www.jetbrains.com/lp/compose-mpp/
Аноним 03/11/21 Срд 16:03:32 #379 №2201827 
>>2201821
> Как минимум долгие годы это был единственный способ создать рабочий кроссплатформенный ГУИ.

Он вырвиглазный настолько, что назвать его гуем язык не поворачивается.
Аноним 03/11/21 Срд 16:06:03 #380 №2201828 
>>2201821
>единственный способ создать рабочий кроссплатформенный ГУИ
На плюсах как-то писали и пишут кроссплатформу и ничего.
Аноним 03/11/21 Срд 16:09:52 #381 №2201834 
>>2201045
>на Java уже есть кроссплатформенные библиотеки для написания десктопных приложений

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

>>2200982
>прикручена работа с ЭЦП в этом вашем вебе? Через java-аплеты!
Это ты видимо в совсем уж легаси проект попал, раз у тебя апплеты. В крупных известных банках никаких апплетов уже нет лет 5 точно.
Аноним 03/11/21 Срд 16:15:37 #382 №2201841 
>>2201827
>Он вырвиглазный настолько

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

>>2201828

На плюсах только на Qt можно кроссплатформу писать. Поэтому либо жаба, либо плюсы. А вообще где-то до 2010-х годов никакой кроссплатформы не было толком, на моей памяти все прогрммы были целиком и полностью под винду, под линуксом в основном только браузеры были и все.
Аноним 03/11/21 Срд 16:47:27 #383 №2201873 
Закиньте аниме в шапку при перекате в следующий раз, чтобы приятнее было здесь находится. Может и количество токсичных анонов тогда поубавиться слегка
Аноним 03/11/21 Срд 16:59:22 #384 №2201895 
>>2201873
Я сижу с работы с отключенной графикой что бы начальник не видел.
Аноним 03/11/21 Срд 17:13:50 #385 №2201913 
>>2201873
Аниме + стандартная (текущая)
Мимо токсичный дед
Аноним 03/11/21 Срд 17:15:22 #386 №2201916 
>>2201913
>токсичный дед
Ебать ты.
Решетки говно, кстати, чем больше пишу - тем больше говно.
еще более токсичный дед
Аноним 03/11/21 Срд 17:18:14 #387 №2201924 
>>2201916
> чем больше пишу - тем больше говно
Все так.
Как теперь с новыми решетками отвечать на вопрос "интерфейс вс абсрактный класс" то?

У меня токсичность 13см, а у тебя?
Аноним 03/11/21 Срд 17:20:04 #388 №2201927 
>>2201924
>отвечать на вопрос "интерфейс вс абсрактный класс" то?
Можно в ебало плюнуть, например.
>а у тебя?
Старость не радость, уже не 19 а всего 18
Аноним 03/11/21 Срд 17:26:52 #389 №2201943 
zGxD3c2zCXs.jpg
>>2201873
Вот такую в шапку
Аноним 03/11/21 Срд 17:29:41 #390 №2201953 
>>2201943
Хуита.
Хочу нормальное мужицкое аниме.
Аноним 03/11/21 Срд 17:32:57 #391 №2201961 
>>2201943
Кпопер, не вынуждай говорить правду о тебе.
самый токсичный дед
Аноним 03/11/21 Срд 17:42:11 #392 №2201981 
>>2201943
Захотелось монитор облизнуть
Аноним 03/11/21 Срд 17:42:40 #393 №2201982 
>>2201981
Инцел, спок.
Аноним 03/11/21 Срд 18:58:49 #394 №2202115 
Изучаешь-изучаешь C#, платформу .NET, а на собесе будут спрашивать за JavaScript.
Не кажется ли вам, что веб убивает такие языки как C#?
Аноним 03/11/21 Срд 19:06:31 #395 №2202125 
>>2202115
Нет. Веб это будущее.
ЖС, если с ТС - норм.
Аноним 03/11/21 Срд 19:33:47 #396 №2202188 
>>2201841
>На плюсах только на Qt можно кроссплатформу писать.
Нет, не только Qt.
Аноним 03/11/21 Срд 19:42:49 #397 №2202203 
>>2202188
Для Qt всего одна книга есть и то, она коряво написано. Типа вот у нас такая штука. Конец. Следующая глава про штуку №2.
Я поэтому и ушёл из С++ в C#, потому что тут больше книг по десктопу.
Аноним 03/11/21 Срд 20:01:32 #398 №2202227 
logo.png
>>2201943
>>2201981
Как насчет пика ближе к реальности?
Аноним 03/11/21 Срд 20:05:14 #399 №2202234 
>>2202227
Неплохо. Фон только подправить
Аноним 03/11/21 Срд 20:10:32 #400 №2202243 
687474703a2f2f64697367757374696e676d656e2e636f6d2f77702d636[...].jfif
sci-fi-trash-31-634x1024.jpg
sci-fi-trash-6-636x1024.jpg
>>2202203
> потому что тут больше книг
ПОчему ты не уйдешь тогда в тело сталина, телепортиванное в фентези?
Аноним 03/11/21 Срд 20:13:04 #401 №2202249 
logo.png
>>2202234
Аноним 03/11/21 Срд 20:17:51 #402 №2202252 
>>2202249
Ну я имел ввиду под серый. Но так антураж ЖСстреда - тоже ок.
Аноним 03/11/21 Срд 20:19:09 #403 №2202253 
>>2202249
Может в кольцо еще что-то типа кубера пиздануть? Таки фронта-бека уже маловато
Аноним 03/11/21 Срд 20:20:05 #404 №2202256 
>>2202249
И двойную ЛЛ ф форме хуя.
Кративчик пошел.
Брейншторм кароч
Аноним 03/11/21 Срд 20:30:20 #405 №2202263 
>>2202243
Я люблю хорошие книги по программированию. Чтобы там было хорошее оформление, материал структуирован и сама книга большая по объёму.
Аноним 03/11/21 Срд 20:44:55 #406 №2202283 
logo.png
>>2202256
>>2202253
Про лл не понял
Аноним 03/11/21 Срд 20:46:59 #407 №2202287 
image.png
>>2202283
Типа такого.
С нашивками - прекол.
Значек кубера чуть меньше сделай.
Аноним 03/11/21 Срд 20:56:39 #408 №2202297 
logo.png
>>2202287
Надо притормозить, а то расценят как вайп ниграми
Аноним 03/11/21 Срд 21:09:01 #409 №2202309 
>>2202297
Согласен, перебарщивать с технологиями не надо.
Ну жун фулстек получился.
Аноним 03/11/21 Срд 21:10:20 #410 №2202312 
>>2202297
Надо добить тред и перекатить лол.

Какой архитектуры придерживаетесь? Ну там мультлеер, онион, микросервисы? Если микросервисы, тоуже похуй шо там?
Как и что в общие либы для микросервисов вычленете?
Аноним 03/11/21 Срд 21:24:40 #411 №2202331 
>>2202312
>Как и что в общие либы для микросервисов вычленете?
Приватный нугет + дублирование кода.
Аноним 03/11/21 Срд 21:26:33 #412 №2202333 
>>2202331
А в целом? Кждый микрик на слои разделяете? Или пох?
Нащо дублирование?
Аноним 03/11/21 Срд 21:47:20 #413 №2202373 
>>2202188
>Нет, не только Qt.

А на чем? Ну так-то можно хоть на опенгл писать гуи, но ведь никто не делает так.
Из относительно популярных фреймворков для С++ я только Qt знаю. На GTK все-таки немного затруднительно под винду писать, хоть и возможно.
Аноним 03/11/21 Срд 23:07:53 #414 №2202425 
>>2201763
Албахари ощущается как ебучий справочник, хотя ответы на почти все вопросы даёт. По шарпам хотелось бы что-то типа руководства для начинающих по джаве от Шилдта, читается полегче. мимовкатун-студент
Аноним 03/11/21 Срд 23:17:02 #415 №2202435 
>>2202333
Дублирование из-за баундари контекста. Слои по клин коду.
Аноним 03/11/21 Срд 23:18:35 #416 №2202437 
>>2202373
>но ведь никто не делает так
Делают. Например ImGui, который есть и на шарпе.
Аноним 03/11/21 Срд 23:27:49 #417 №2202444 
>>2202435
>Слои по клин коду
Это какие?
Меня чет тригерят выражения "по клин коду". Чистый код = хороший код, а не что там пидоры те понакарябали
Аноним 03/11/21 Срд 23:39:52 #418 №2202448 
>>2202444
Я неправильно написал. Вариация Clean Architecture. Это сильно от проекта зависит. Есть проекты, где от нахер не нужен. Например, если надо делать действие по флоу.
Аноним 04/11/21 Чтв 00:46:26 #419 №2202487 
Поясните мне вот за шо.
ВПФ это уже гавно мамонта?
Если мне сейчас нужно будет гуй накидать на виндовс то изучать хамарин?
Так то мне гуи эти нахуй не упали, консолька маст хев, но все же мб когда пригодится.
А про ВинФОрм ваще уже можно забыть?
Аноним 04/11/21 Чтв 00:49:44 #420 №2202491 
>>2202487
Про декстоп уже можно забыть
Аноним 04/11/21 Чтв 13:54:35 #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? Тип, используемый в куче других классов, должен уметь вытаскивать собственные атрибуты.
}
}
Аноним 04/11/21 Чтв 13:58:06 #422 №2202849 
>>2202846
https://stackoverflow.com/questions/7305787/get-all-properties-which-marked-certain-attribute
?
Аноним 04/11/21 Чтв 14:03:41 #423 №2202853 
>>2202849
Рандомчик с гугла? Ну ок.
Видишь он там делает typeof (NormDoc)? Получает свойства NormDoc. Его NormDoc - это мой C. Мне нужны не свойства C, мне нужны свойства класса, в котором C используется как свойство, при том что я этот класс не знаю.
Я чет не могу вдуплить как мне на "породивший" экземпляр выйти. Вот BaseType вижу но это не то.
Аноним 04/11/21 Чтв 14:14:36 #424 №2202869 
>>2202491
>Про декстоп уже можно забыть

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

>>2202487
>А про ВинФОрм ваще уже можно забыть?
Да не, живет еще дохуя где, но преимущественно в рамках поддержки наследия. Если для себя, то вкатывайся сразу в впф. Он еще актуален там, где актуален десктоп. Хамарин расширительная хуйня, никому сам по себе он не нужен.
Аноним 04/11/21 Чтв 14:23:44 #425 №2202874 
>>2202846
>>2202849
>>2202853
Вопрос снят: https://stackoverflow.com/questions/9854900/instantiate-a-class-from-its-textual-name
Аноним 04/11/21 Чтв 14:24:29 #426 №2202876 
>>2202846
>>2202849
>>2202853
>>2202874
Блядь, мимо: https://stackoverflow.com/questions/34424787/reflection-to-get-parent-object/34424897
Аноним 04/11/21 Чтв 17:03:27 #427 №2203127 
Сап, погромисты, мой друг нормис после нескольких лет работы на себя решил вкатиться в работу на барина, до этого никогда не работал по этому профилю, оцените, что с резюме?
Аноним 04/11/21 Чтв 17:04:07 #428 №2203130 
image.png
>>2203127
Блять, отвалилось
Аноним 04/11/21 Чтв 17:11:01 #429 №2203142 
>>2203127
Раздел-то про шарп, а не про вам перезвонят.

Никто не любит насебяшников. Лучше придумай что друг работал на дядю, просто по личным причинам был ограничен в выборе работодателя и поэтому приходилось работать за конверт. Мало кто поверит что еще остались конторы с серой оплатой погромистов, но еще меньше кто поверит что успешный самнасебятель вот просто захотел поработать на дядю, а не облажался и побежал за зарплатой или тупо не заебался перемогать и решил найти себе непыльную хуйню с гарантированным доходом.
Аноним 04/11/21 Чтв 17:14:12 #430 №2203144 
>>2203142
Да я ему и писал, что не стоит про бизнес упоминать, т.к выглядит не очень, как будто он прям такой делюган. На самом деле то он просто роботов писал для своей биржевой торговли, 90% кодинга было, 10% торговли.
Сходил на пару собесов, пока что в одной конторе думают, но сам не хочет туда, там визуал бейсик требуют учить)
Аноним 04/11/21 Чтв 17:38:22 #431 №2203173 
>>2203144
Блок обо мне не нужен. В обратной хронологии дата, контора, проект, краткое описание проекта (что за херня, а не многопоточность и алгоритмы) + стек технологий, роль на проекте.
Аноним 04/11/21 Чтв 19:08:53 #432 №2203264 
15959776.jpg
Закрываю скоро третий год во второй кампании, пришло время перекатываться, а везде теперь требуют кафки/кубернетес, а я с ними не работал на текущем месте, вот же СУКА.

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

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

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

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

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

Хуево получается, кампании первых двух типов для переката мне не интересны, а третьему типу - уже не интересен я. Нахуй так жить вообще.
3.
Аноним 04/11/21 Чтв 19:44:46 #433 №2203279 
>>2203127
На приеме у венеролога:
- Понимаете доктор у моего друга тут такая проблема... Ну он
недавно познакомился с девушкой..
- Ладно снимайте штаны и показывайте своего друга!!!
Аноним 04/11/21 Чтв 19:48:24 #434 №2203282 
>>2203127
>>2203130
Как-то... странно выглядит. Чувствуется, что гребец не галерный.
Вапервых, на онглийском должно быть.
И пересмотри на опечатки "net" - ну среьезно? Тебе самому не стыдно?
Вместо "роботл роботу на себя" напиши кртко о проекте: в какой сфере, какие технологии, какие роли занимал .

"Собвсвенные типи данных" - каво?
Аноним 04/11/21 Чтв 19:48:50 #435 №2203283 
>>2203279
Да не, он просто от двачей далек, поэтому я за него тут. Да и ему страшно прям все так в лицо выслушивать, он то начинал еще в те времена, когда вкат на изи был, поэтому все это время пока бабки с биржи шли, жил в мыслях, что если вдруг кончится, то быстро перекатится в офис. Ну вот щас бабки перестали капать, а в офис брать не спешат.
Аноним 04/11/21 Чтв 19:51:28 #436 №2203288 
>>2203264
>Майкрософт презирают
> используют "высеры" Майкрософта
Как называется эта болезнь?
Аноним 04/11/21 Чтв 19:53:23 #437 №2203292 
>>2203282
Спс, все ему передам
Аноним 04/11/21 Чтв 19:54:12 #438 №2203293 
Стикер
>>2203264
После кубернетесов на тебя будут вешать тучки с облачками и билд пайплайнами. Админы (не девопсы) будут отвечать только за секурити.
Аноним 04/11/21 Чтв 20:04:21 #439 №2203304 
>>2203282
>роботл роботу на себя"
>"Собвсвенные типи данных" - каво?

— Одно слово — румын.
— Так он же болгарин
— Да?! А какая разница
Аноним 04/11/21 Чтв 20:11:22 #440 №2203311 
>>2203288
Сознательность.

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

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

>>2203293
Тяжело.
Аноним 04/11/21 Чтв 20:16:18 #441 №2203317 
>>2203304
Каво (2)?
У меня в клаву мусор забился, опечатываюсь.
Аноним 04/11/21 Чтв 20:18:42 #442 №2203321 
>>2203311
>энтерпрайза
Как будто что-то плохое
Аноним 04/11/21 Чтв 20:33:51 #443 №2203339 
image.png
>>2203311
>Сознательность.
>Отрицать что большая часть продукции Майкрософта - говно для нормичей и энтерпрайза, будет только упоротый фанат
Аноним 04/11/21 Чтв 21:11:19 #444 №2203367 
>>2203264
Считаю Azure лучшим облачным провайдером, презираю амазон, его веб1.0 интерфейс и ональную модерацию ВСЕГО блядь, на любой пук - пиши в саппорт.
Аноним 04/11/21 Чтв 21:20:16 #445 №2203376 
>>2203367
дваждую.
Но ты не альфа*, получается. Слишком клятых майков хвалишь.
Аноним 04/11/21 Чтв 22:14:22 #446 №2203455 
image.png
Шарпач, пикрил подходит в качестве учебного пособия для обучения?
Аноним 04/11/21 Чтв 23:06:08 #447 №2203484 
kek.png
Спасайте, то ли я ебнулся, то ли хз. Почему выдается НРЕ, если я проверяю на налл первым же условием?
Аноним 04/11/21 Чтв 23:11:28 #448 №2203489 
>>2203484
У тебя HasClaim падает после операции ИЛИ?
Аноним 04/11/21 Чтв 23:23:47 #449 №2203497 
>>2203484
>>2203489
Отбой, я понял что я тупой.
Аноним 04/11/21 Чтв 23:29:34 #450 №2203499 
>>2203455
В качестве учебного пособия подходит то что будет заставлять тебя не сидеть на жопе и пилить код.
Ну серьезно. Я на первую работу шарпоняшей попал вообще из-за того что хрюша не отличала C# от C++, а на месте слишком нужны были кадры, потому никаких особых смотрин и ворчаний не было, просто дали неделю на изучение шарпа и сразу таски начали кидать.
Аноним 04/11/21 Чтв 23:33:33 #451 №2203500 
>>2203293
Нахуа куберы в облачках, если они и без них все могут?
Ну вотя пиздолю арм темплейтом свое говно в азур, выбираю аппсервисплан - и мне поебать, оно само скейлится.
Что мне даст кубер?
Аноним 04/11/21 Чтв 23:36:24 #452 №2203501 
>>2203499
Кек, я тоже устраивался на джуниор C++ разраба.

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

Ну я в общем вышел покурить и больше не возвращался в ту контору на самом деле нормально ушел, быстро соорентировался.
Аноним 04/11/21 Чтв 23:51:02 #453 №2203508 
>>2203500
У кода без докера постоянно проблемы с энвом. Когда много контейнеров, их сложно становится поддерживать, если например я хочу запустить на дев машине. На дев машине мне масштабирование может быть и не нужно, но я манал запускать докер контейнер по отдельности. В облаках можно и без кубернетеса хостить и масштабировать докер контейнеры, но зачем делать дважды одно и тоже?
Аноним 05/11/21 Птн 13:09:46 #454 №2203665 
>>2201924
>Как теперь с новыми решетками отвечать на вопрос "интерфейс вс абсрактный класс" то?
А в чём подвох? Не увидел в последних обновлениях ничего такого.
мимовкатун
Аноним 05/11/21 Птн 13:22:39 #455 №2203670 
>>2203665
В том что раньше ответ был:
Интерфейс не содержит реализации.
Сейчас - вполне может содержать.
>>2201924
> Как теперь с новыми решетками отвечать на вопрос "интерфейс вс абсрактный класс" то?
Ну, как минимум интерфейсы все еще не могут иметь внутреннего стейта. Абстрактный класс - может.
Аноним 05/11/21 Птн 13:31:18 #456 №2203677 
>>2186992 (OP)
Сап, не работал с .Net 2 года, всё это время либо чилил, либо ебошил на чистом старом C прошивки под мк, короче суть в том, что я этот фрейморк нехило так подзабыл...

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

и делитель 1000

и надо узнать сколько нужно раз сделать что бы получилось
1) 1000
2) 1000
3) 1000
4) 1000
5) 1000
6) 1000
7 666

Аноним 05/11/21 Птн 16:03:34 #459 №2203775 
>>2203771
я вообще не знаю как эта операция называется, это похоже на деление с остатком но не то
Аноним 05/11/21 Птн 16:32:33 #460 №2203799 
На каком языке писать коммиты в гит для пет-проекта который пойдёт в портфолио для работодателей в моём мухосранске? На русском или английском? А комменты в коде? А документация/readme? Мне привычнее всё на английском, но не знаю как принято в русской корпоративной среде.
Аноним 05/11/21 Птн 16:33:18 #461 №2203800 
>>2203771
Чтобы получилось что?
Аноним 05/11/21 Птн 16:41:04 #462 №2203809 
>>2203800
7
Аноним 05/11/21 Птн 17:19:55 #463 №2203840 
1.png
>>2203771
Аноним 05/11/21 Птн 17:43:09 #464 №2203867 
>>2203840
а это точно найболее быстрый способ? так и я могу написать но такой вот цыкл выглядит страшно
Аноним 05/11/21 Птн 18:38:08 #465 №2203917 
Этто. Сделайте пожалуйста кодревью моих трудов. Если не сложно.
https://github.com/SecretPenguinusBot/ToDoApp/tree/main/src/backend
Аноним 05/11/21 Птн 19:26:08 #466 №2203936 
>>2203867
Ну, можешь цикл заменить на:
number/d
Разницы не будет)))
Аноним 05/11/21 Птн 19:27:57 #467 №2203938 
>>2203936
а иначе никак нельзя? задачка вроде простенькая, какую-то формулу, или магический оператор?
Аноним 05/11/21 Птн 19:29:37 #468 №2203940 
1.png
>>2203938
Куда проще-то?
Аноним 05/11/21 Птн 19:32:41 #469 №2203941 
>>2203809
return 7;
Аноним 05/11/21 Птн 20:02:57 #470 №2203957 
>>2203917
- не .NET 6
- нет вообще настроек для сваггера
- есть AddNewtonsoftJson
- UseSqlite вместо чего-нибудь типа постреса
- нет аутентификации и авторизации
- нет валидации
- название неймспейса с маленькой буквы
- EntryPoint и RunAsync - это какое-то петрясянство - удали
- какой-то очень кривой коннекшен стринг без секурити и юзер сикретов
- JsonIgnore в Entity - говнокодер!
- очень сильно насрали в IRepositoryActionResult.cs + настрой иде, чтобы форматировало файл на сохранении, прикрути хотя бы editorconfig
- в IRepositoryActionResult.cs изобретение пятого колеса
- неправильное использование иока
- бесполезные логи
- использование OkResultWithData выглядит как дичь
- не используется cancellationToken, не однородный код с = default
- дублирование кода в try-catch в репозиториях
- не плоди ненужные папки для контроллеров
- дублирование кода для респонса в контроллерах
- не перечисляй атрибуты через запятую и не пиши все на одной строке в коде, что ты экономишь? читабельность просто пиздец
- пустые строчки в начале файла перед юзингами
- контроллер валидацией не занимается
- магическое число 500
- ApplicationContext - какой-то вздрочь, не называй классы как Context, Manager и так далее, код вообще пиздец в файле
- версия проекта не так делается, как и название
- ApplicationBootrstrap - бред
- ServerTimeImpl - удали эту херь и перепиши код таким образом, чтобы она не понадобилась
- тесты где?

Не тянешь даж на трейни.
Аноним 05/11/21 Птн 20:10:13 #471 №2203960 
>>2203957
С половиной согласен. С остальным - пошол нахуй ," дажелень объяснять".мавроди.джпг. на трейни тянет
Аноним 05/11/21 Птн 20:11:34 #472 №2203964 
>>2203960
>дажелень объяснять
Только перечень проблем занял простыню текста. Ты необучаемый. Попробуй фронтенд.
Аноним 05/11/21 Птн 21:08:44 #473 №2204005 
0b418b4098521671f3788c6deff3c828.jpg
>>2203957
>не .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 - удали эту херь и перепиши код таким образом, чтобы она не понадобилась
И каким образом? Вот у таски есть время создания. В дальше будет класс, который будет проверять задачи у которых истек дедлайн. Опять же - сами майки в кестреле подобную штуку используют.
> тесты где?
За полтора часа только это успел(((

> Не тянешь даж на трейни.
Окей(((
Аноним 05/11/21 Птн 21:27:34 #474 №2204021 
0b48331100b81facbf8e0a8bc24fe661.png
>>2203957
Да. Я чет совсем охуел и сразу вопросы задавать стал.
Спасибо за фидбек. Вот.
Аноним 05/11/21 Птн 22:42:35 #475 №2204078 
>>2204005
>Он еще в превью жи.
4 дня до релиза.

>идентити-сервер стал платным
Это OAuth. Можно было бы и без OAuth.

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

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

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

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

>А как надо-то?
Мидлварь.

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

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

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

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

>За полтора часа только это успел
Откуда ограничение в полтора часа?
Аноним 05/11/21 Птн 23:23:02 #476 №2204092 
>>2204078
> Резалты мог аспешные переюзать.
Аспешные резалты в репе? А ты точно прогромист?
>Можно вынести или в базу данных (дата не указана = текущая дата), или пробрасывать дату через весь код.
Хуета. Все он правильно с датой сделал. Разве что назвать надо не серверТайм (апликейшн код не должно беать на сервере он там или в где), а дейтТаймПровайдер или типа того.
Аноним 05/11/21 Птн 23:28:05 #477 №2204096 
>>2204092
>Аспешные резалты в репе?
В контроллере.

>Хуета
Провайдер в список Manager, Context.
Аноним 05/11/21 Птн 23:33:06 #478 №2204098 
>>2204096
>Manager, Context
Ну как тогда называть-то а?
Давай тогда еще к "контроллер" придеремся.
Аноним 05/11/21 Птн 23:34:31 #479 №2204100 
>>2204096
>>Аспешные резалты в репе?
>В контроллере.
Так разве у него там и так не аспшные? Там он в репе свои велосипедные ОкРезалты юзает.
Аноним 05/11/21 Птн 23:34:55 #480 №2204101 
>>2204098
Контроллер - нормальное название в паттерне MVC. Но ненормальное название просто левому коду (не веришь, глянь как на Unity пишут говнокодеры, это их любимое слово). Называть вещи надо осмыслено. Менеджер и провайдер - нехуя не осмысленно. Делает хуй пойми что.
Аноним 05/11/21 Птн 23:44:56 #481 №2204105 
>>2204101
Ну а как его назвать-то?
Ладно, менеджер - довольно пространно, но как блядь назвать класс, который делает всякое РАЗНОЕ с ентитей?
Провайдер - нормальное название, поставщик чего-то, в данном случае поставщик даты.
Аноним 05/11/21 Птн 23:47:54 #482 №2204111 
>>2204098
>Context
+
И не понимаю, чего ты к Context приебался. Тоже довольно точно описывает себя (в отрыве от примера кода выше, не помню что там в контексте)
Аноним 05/11/21 Птн 23:48:11 #483 №2204112 
>>2204105
Зачем тогда тебе нужны репозитории? Такие же поставщики данных.

Класс не должен делать всякое разное. Нарушаешь Single Responsibility.
Аноним 05/11/21 Птн 23:51:25 #484 №2204116 
>>2204101
Ты Сакутина пересмотрел?
Провайдер - одно из стандартных имен для интерпрайза. Посмотри код самого дотнета современного, а лучше асп. Или посмотри на джаву, где провайдер погоняет контекстом и сверху ресолверы с хендлерами. Это как раз таки понятные любому человеку, который занимается разработкой вещи, в отличии от "предметноориентированных" названий, где чтобы понять что это блядь за хуета - ты должен быть в контексте предметной области.
Аноним 05/11/21 Птн 23:54:34 #485 №2204117 
>>2204116
Нет. Объясню на простом примере. Что делает UrlProvider? Или StringProvider?

Резолверы - антипаттерн.
Аноним 05/11/21 Птн 23:55:48 #486 №2204118 
>>2204112
>Такие же поставщики данных.
Нет. Хранилище, а не поставщик. Да и ,во вторых, все-таки есть общепринятые правила, понятные всем с первого взгляда.

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

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

>>2204116
А на счет менеджера и контекста что скажешь?
Аноним 05/11/21 Птн 23:58:42 #487 №2204121 
>>2204118
Так поставляет что? Я бы тебе показал охуенный код провайдера, что ты сам охуеешь, но не могу.
Аноним 06/11/21 Суб 00:00:39 #488 №2204123 
>>2204118
>менеджера и контекста
Бывают еще хелперы, хендлеры, коры, энжайны.
Аноним 06/11/21 Суб 00:07:31 #489 №2204128 
>>2204117
дает возможность получить КАКУЮ-то урлу или стринг, возмржно дефолтную, если без параметров.
Окей. КарентДейтТаймПровайдер будет лучше, но карент можно скипнуть ибо всем и так понятно.

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

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

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

Так как вы круд простой спроектируете, то, умники? С анемичной моделью.
Аноним 06/11/21 Суб 00:11:40 #490 №2204130 
>>2204118
>менеджера
Очевидно, что это класс в котором содержится вся куча логики и он находится на вершине иерархии данного поддомена занимаясь управлением состояния. На этапе прототипирования - вполне нормальная вещь, впоследствии, если можно, - будем резать на составные части, если пользоваться менеджером станет неудобно и через него будет проходить много изменений.
Господи, да посмотри код кестрелла. Там такой же ConnectionManager на каком-то этапе был, который занимался тем что смотрел не истекло ли время жизни соединений при очередном HeartBeat и убивал дохлые. Потом порезали.

> контекста
В обычной практике - сущность которая сосредотачивает в себе некий стейт и всю нужную информацию для него. Опять же нормальная тема, причем далеко не только на этапе прототипа. Все эти контроллеры, мидлвары, фильтры и прочее из ASP по факту вращаются вокруг того самого HttpContext'а. Как-то живем. Работа с базой в EF так же происходит через контекст. Никто не жалуется. Из других языков - в андроид-разработке - контекст на контексте и контекстом погоняет. В спринге - тоже контекстов куча. Как-то разбираются люди и ведут разработку.
Аноним 06/11/21 Суб 00:12:02 #491 №2204132 
>>2204128
Резолвер - это сервис локатор. Используется внутри ДИ. Но тебе ничего не мешает пропихнуть его в какой-либо класс и резолвить что хочешь.

>КАКУЮ-то урлу или стринг
Ну, вот так баги и фиксятся по несколько часов, дней, недель. Есть класс, делает хуй пойми что, надо идти в имплементацию. Пока ходил по разным классам, забыл что делал первый.
Аноним 06/11/21 Суб 00:14:19 #492 №2204135 
>>2204130
>На этапе прототипирования
Прототип выкидывать надо и писать с нуля. Иначе никто такой класс резать не будет. Будет висеть 15+ лет.
Аноним 06/11/21 Суб 00:18:18 #493 №2204138 
>>2204130
А составные части как назовете-то? Ну вот, на примере юзерменеджера?

>>2204132
Стоп стоп.
Каким это образом дейтТаймПровайдер стал сервис локатором? Это фектори по сути. Мы кокрастоке решили проблему, убрали околосервис локатор ДейтТайм.Ноу.
Ок. Назвем ДейтТаймФектори? Хуита. Все равно цель-то другая.
Аноним 06/11/21 Суб 00:18:50 #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.
Аноним 06/11/21 Суб 00:20:45 #495 №2204142 
>>2204138
>Каким это образом дейтТаймПровайдер стал сервис локатором?
Таким, что я отвечал на две разные темы. С друг другом не связанные.
Аноним 06/11/21 Суб 00:28:04 #496 №2204148 
>>2204142
Ну окей.
Не понятно зачем ты вообще тогда "резолверы" упомянул.

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

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

Аноним 06/11/21 Суб 00:32:41 #497 №2204152 
>>2204148
>Не понятно зачем ты
Потому что я отвечал на стену текста.

>В общем, у меня мнение, что провайдер - ок.
Что делает UrlProvider или StringProvider?
Аноним 06/11/21 Суб 00:55:34 #498 №2204178 
>>2204148
>содержит почти всю логику, связанную с обьектом и взаимодействие с репозиторием
Кстати не всегда плохая практика на самом деле.

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

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


>>2204152
Что делает User? Что делает Program? Что делает HttpClient? Что делает CPP_Compiler? Что делает AABB? Что делает AST? Что делает Lexer? Что делает Parser? Что делает ExpressionEvaluator?
Что говнокодер там написал - то они и делают. Охуеть. Да? Внезапно.
Аноним 06/11/21 Суб 01:13:07 #499 №2204195 
>>2204178
>Охуеть. Да? Внезапно.
Ну ты обосрался, потому что на вопрос не можешь ответить и пошел вилять жопой второй раз. Внезапно, да.
Аноним 06/11/21 Суб 01:22:54 #500 №2204203 
>>2204195
Потому что это имена классов и без контекста классы - могут делать что угодно. Как и любой другой класс, у которого ты знаешь только имя.
Point - хорошее имя.
Однако, в одном случае это точка в математическом смысле и хранит в себе координаты, плюс в зависимости от того богатая или анемичная у нас модель - может содержать в себе логику по всяким операциям с точкой, еще и в зависимости от домена там может быть точка на двумерной плоскости, в трехмерном пространстве или в n-мерном пространсте, если мы какие-то математические штуки пишем.
А в другом случае - это лексема при парсинге.
А в третьем - точка как символ в тексте.
И во всех случаях это имя нормальное, но просто увидев его, не видя хотя бы интерфейса - ты не скажешь, что это за Point.
Аноним 06/11/21 Суб 02:21:42 #501 №2204240 
>>2204138
>ДейтТайм.Ноу
Не понимаю таких людей. Раскладку сменить лапки болят? Почему читатель (коих много, а писатель всегда один) должен тратить лишнее время на то, чтобы понять что ты там имел в виду?
Аноним 06/11/21 Суб 02:57:07 #502 №2204252 
>>2204178
>Кстати не всегда плохая практика на самом деле.
Потом классы на 9000 строк. Я тут только пару строчек добавлю.

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

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

>NewDataChecker
NewDataValidator

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

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

Касательно DateTime все еще не убедил. Это такое минное поле, в которое лучше не лезть. Чтобы потом не плодить UtcNow/Now на Offset, TimeZone, TimeSpan, Epoch. И не был такой соблазн добавить в этот Provider еще чего, да побольше. DateTime лучше выкинуть из проекта как и идею написать на него Provider.
Аноним 06/11/21 Суб 11:38:32 #503 №2204358 
>>2203957
>- ServerTimeImpl - удали эту херь и перепиши код таким образом, чтобы она не понадобилась
Вот за такой совет тебе надо запретить приближаться к исходникам ближе чем на 300 метров. Другое дело, что не надо изобретать велосипед и взять NodaTime.
Аноним 06/11/21 Суб 12:18:40 #504 №2204380 
>>2204178
>Что делает User
Срет невалидными данными в мое прекрасное творение.

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

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

>Что делает CPP_Compiler
Удалено по требованию г-на майора
Аноним 06/11/21 Суб 12:24:46 #505 №2204392 
>>2204358
>NodaTime
А зачем? Что он дает, чего нету в стандартной либе?
Аноним 06/11/21 Суб 13:05:06 #506 №2204432 
>>2204392
Умеет нормально работать со временем ¯\_(ツ)_/¯
А то пориджи сначала засирают код с DateTime.Now/DateTime.UtcNow, а потом узнают, что мир оказывается живет не только в разных часовых поясах, но и по разным календарям.
Аноним 06/11/21 Суб 13:16:51 #507 №2204448 
>>2204432
Пример какой-то?
Не знаю, ни разу не нужны были "разные календари".
По сути DateTime.UtcNow хватало на беке, больше дрочи с датами на фронте.
Аноним 06/11/21 Суб 13:32:54 #508 №2204464 
ыс.png
>>2204448
Ну если нужно только зафиксировать момент, то utc хватает. Но все равно нужен интерфейс часов, а не дергать статические классы. А то потом тестик написать придется, который проверит поведение в новогоднюю ночь, а если все прибито к DateTime.Now, то такой тест можно запустить только раз в год (ну или там вот такое проверить https://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%D0%B0).
Даже майки уже начинают о чем-то догадываться и накостылили DateOnly/TimeOnly и используют пик
Аноним 06/11/21 Суб 13:51:54 #509 №2204483 
>>2204464
Да понятно, что инжектить надо не о том разговор.

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

За доп секунду не понял. Ну стандартный дейтТайм учтет же ее? Ну да и норм.
https://stackoverflow.com/a/55993613
Аноним 06/11/21 Суб 14:07:58 #510 №2204498 
ыщщкы.png
>>2204483
>Они округляют, что ли?
Ну да.
Аноним 06/11/21 Суб 15:39:05 #511 №2204562 
>>2204101
>глянь как на Unity пишут говнокодеры, это их любимое слово
Вот прямо за живое задел.
Аноним 06/11/21 Суб 17:28:43 #512 №2204651 
>>2204498
Побитный сдвиг туда-обратно не быстрее будет?
Аноним 06/11/21 Суб 17:34:06 #513 №2204658 
>>2204651
А не, не будет. Круглые секунды так не получатся.
Аноним 06/11/21 Суб 20:45:11 #514 №2204815 
Почему вот в примере с чистой архитектурой интрфейсы в Application слое? Разве не должны быть в Domain?
https://github.com/jasontaylordev/CleanArchitecture/tree/main/src/Application/Common/Interfaces
Аноним 06/11/21 Суб 21:05:16 #515 №2204829 
>>2204815
> в примере с чистой архитектурой
Открыл рандомный файл и проиграл (https://github.com/jasontaylordev/CleanArchitecture/blob/main/src/Domain/ValueObjects/Colour.cs )
-пустой статический конструктор
-пустой приватный конструктор, который не используется
-сначала создается объект, потом валидируется параметр для его создания
Челу явно платят за количество написанных строк.
Аноним 06/11/21 Суб 21:14:50 #516 №2204835 
>>2204829
Иди блядь матчасть изучай
https://www.jetbrains.com/help/resharper/EmptyConstructor.html
+ пустой приватный шоб интсанс создать извне низзя было
Аноним 06/11/21 Суб 21:22:27 #517 №2204840 
>>2204835
Может ты сначала изучишь что-нибудь? Если удалить пустой приватный без параметров, а оставить приватный с параметрами кто извне сможет создать инстанс?
Аноним 06/11/21 Суб 21:28:16 #518 №2204848 
>>2204840
Он он оба конструктора юзает, так что твой доеб все равно не защитан.
Аноним 06/11/21 Суб 21:31:18 #519 №2204853 
>>2204835
Где, там где в инициализаторе сразу задается свойство, для установки которого есть конструктор? При том, что состояние с кодом налл там явно невалидное.

И нахуя ты скинул ссылку на синглтон, если в коде фабричные методы, которые создают разные инстансы?
Аноним 06/11/21 Суб 21:34:58 #520 №2204855 
>>2204848
А может ты сможешь оправдать private set для Code вместо ридонли?
Аноним 06/11/21 Суб 21:42:56 #521 №2204857 
>>2204855
Может мне вообще сейчас все проперти начать оправдывать и филды юзать?

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

Вообще, мне больше начальный вопрос интересует:
Почему интрфейсы в Application слое? Разве не должны быть в Domain?
Аноним 06/11/21 Суб 21:54:29 #522 №2204866 
>>2204857
>Может мне вообще сейчас все проперти начать оправдывать и филды юзать?
Что? Ты мне скажи зачем давать возможность перевести состояние класса в невалидеое, если можно не давать? Напомню, что проперти тоже может быть ридонли.
>>2204857
>там поясняется зачем приватный конструктор
Только это не имеет отношения к коду в котором нет ни синглтона ни ленивой инициализации.
>>2204857
>Почему интрфейсы в Application слое
Чел не стесняется говнокодить, в примере-эталон, а ты такие вопросы задаёшь. Но вообще, интерфейсы объявляет тот, кто их будет использовать (ну или посредник), но не тот, кто их реализует.
Аноним 06/11/21 Суб 22:03:44 #523 №2204872 
>>2204866
>Что? Ты мне скажи зачем давать возможность перевести состояние класса в невалидеое, если можно не давать? Напомню, что проперти тоже может быть ридонли.

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


>Но вообще, интерфейсы объявляет тот, кто их будет использовать (ну или посредник), но не тот, кто их реализует.
Так где их надо было засовывать, в Домейн таки?
Аноним 06/11/21 Суб 22:17:38 #524 №2204878 
>>2204872
>Ну внутри класса - делай шо хочешь
Ну уж нет. Если что-то может пойти не так оно пойдет не так. Не, я понимаю это демо, где-то переупростил, где-то переусложнил чтобы что-то показать. Но тут он выдал хуйню ради нихуя.
>чтобы не хранить кода в отделных стрингах
И не надо (пик). Я же говорю, чел просто раздул класс, наверно для солидности или чтоб внимание отвлечь.
>Так где их надо было засовывать
ХЗ, говорю же, проиграл на первом же файле.
Аноним 06/11/21 Суб 22:18:19 #525 №2204879 
spf.png
>>2204878
>(пик)
Аноним 06/11/21 Суб 22:28:10 #526 №2204887 
>>2204878
>ХЗ
Ну бля. 7к звезд почти, а ты хзкаешь.
Аноним 06/11/21 Суб 22:32:41 #527 №2204890 
>>2204887
Создай ишью на гитхабе, пусть автор или кто знаком с проектом пояснит. Вроде там движуха какая-то есть.
Аноним 07/11/21 Вск 04:42:04 #528 №2205040 
за путина
Аноним 07/11/21 Вск 13:01:36 #529 №2205154 
Как лучше поступать с ветвями, которые уже не используются? Можно ли в VS скрыть их из списка всех ветвей не удаляя, чтобы если что увидеть, какие коммиты на ней были сделаны?
Аноним 07/11/21 Вск 13:24:12 #530 №2205170 
>>2205154
Замержил - удаляй.
Аноним 07/11/21 Вск 15:36:55 #531 №2205264 
>>2205154
Так ты мержи без фф, а ветку удаляй. Ветка это же всего лишь ссылка на коммит - можно удалять, можно создавать из любой точки.
Аноним 07/11/21 Вск 16:18:37 #532 №2205292 
Простой вопрос но я заебался искать: в какой версии шарпа было добавлено ключевое слово params?
Аноним 07/11/21 Вск 16:31:26 #533 №2205299 
>>2205292
В первой
Аноним 07/11/21 Вск 16:39:57 #534 №2205305 
>>2205299
Точно, спасибки!
https://www.ecma-international.org/publications-and-standards/standards/ecma-334/

Какое же гугл 2021 говно, охуеть просто.
Аноним 07/11/21 Вск 19:39:32 #535 №2205523 
Перекат
>>2205513 (OP)
>>2205513 (OP)
>>2205513 (OP)
Аноним 08/11/21 Пнд 10:08:56 #536 №2206472 
>>2203940
а зачем там ваил?
Аноним 07/06/22 Втр 19:36:20 #537 №2374105 
Цель вкатиться в backend веб разработку. Накачу базовый курс C#, а затем смотрю на ASP.NET? Есть ли альтернативные решения, которые будут иметь больше смысла?
comments powered by Disqus

Отзывы и предложения