Лучший UI Framework, структура Solutions, нужные Channels

preview_player
Показать описание
Подкаст RadioDotNet выпуск №93 от 23 мая 2024 года

Разговоры на тему .NET во всех его проявлениях, новости, статьи, библиотеки, конференции, личности и прочее интересное из мира IT.

Темы:

[00:00:00] — Приветствие

[00:01:40] — Сравнение UI-фреймворков на .NET

[00:19:50] — Secure container build and publish with .NET 8

[00:36:10] — Lightweight In-Memory Message Bus Using .NET Channels

[00:45:10] — How To Structure Your .NET Solutions — Architecture And Trade-Offs

[01:16:00] — Кратко о разном

Голоса выпуска:
• Анатолий Кулаков

Звукорежиссёр:

Фоновая музыка:

Спасибо за помощь:
• Александр
• Сергей
• Владислав
• Шевченко Антон
• Лазарев Илья
• Гурий Самарин
• Виктор
• Руслан Артамонов
• Александр Ерыгин
• Сергей Бензенко
• Александр Лапердин
• Ольга Бондаренко
• Дмитрий Сорокин
• Сергей Краснов
• Константин Ушаков
• Андрей Фазлеев
• Басим Аль-Джевахири

Рекомендации по теме
Комментарии
Автор

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

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

sergeykuzmin
Автор

Было бы интересно послушать про будущее десктопа на Windows. Я не уверен, что чистый MAUI можно запускать на винде. Остается только WPF, WinForms и WinUI 3. Первые два, насколько я понимаю, майкрософт неохотно поддерживает и уж точно не призывает писать на них. WinUI 3 как-то затерялся в информационном шуме, хотя это же наследие WPF, XAML Islands, UWP, Win UI 2, но он не такой удобный и зрелый как WPF, и последние мои попытки использовать его наводили на мысль, что WinUI несильно дружит с MVVM дизайном.
Возможно Майки видят будущее в Blazor Everywhere, включая и Windows.

denisantropov
Автор

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

bananasba
Автор

Все указывает на то, что MS при покупке mono просто пообещали, что не будут убивать xamarin/maui какое-то время. И сейчас выделяют минимум ресурсов на поддержку. Как будто там всего 5 человек и то, на парт-тайме. Ну и в МС, зная, что xamarin/maui скоро сами же убьют, нигде не используют сами.

sergeymikolaitis
Автор

Да давайте подробнее про avalonia! что там как сейчас?

ArseniySergeev
Автор

Я только как год работаю на MAUI, но могу сказать что там много проблем в основном утечки памяти и лагающий UI
там есть такие проблемы с UI которые конкретно не дают пожить (самое бесяче это мерцающая клавиатура , но это редко)
в основно это градиенты.
Я активно слежу что там делает команда разработчиков вот только закончил читать preview.4.10690 ... что нового в maui? - ничего
зато они выкатили огромные списки исправления ошибок которые сами и наделали, там и правда есть очень важные проблем которые они решили , но вот есть и те которые они уже 2 год чинят, ощущение что на maui забили 50 на 50 просто там столько было ошибок что они весь год их чинили

АндрейГалуза-ом
Автор

Microsoft, же сказала, что самый лучший фрейворк для винды - это, Qt😁😁😁

MrCommanderKid
Автор

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

СытуСыкун-нж
Автор

Зачем .NET Channels когда есть ConcurrentQueue и SynchronizedCollection

exAlexey
Автор

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

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

более того, gdi+ это обмазка над gdi, и мало того что gdi+ забаговано, так оно ещё и медленное, т.е. по сути ничего кроме gdi и нет

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

AEFC
Автор

обоже боже какая ну какая архитектура?
нет никакой архитектуры, её придумали какие то одичалые бесполезные в начале 2000-ых

вместо архитектуры существует вменяемое определение из теории информации, оно называется архитектурным дискретным [неделимым] логическим представлением [и реализацией] куска данных
этот кусок данных внезапно[!] называется __типом__

смысл архитектуры изобретён давным давно, он называется __типизацией__
вменяемая архитектура - это вменяемая типизация, и вот тут и встаёт конкретный вопрос - а что это такое?
что такое __вменяемая__ __типизация__ ?

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

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

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

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

далее рекурсия, это же очевидно

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

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

AEFC
Автор

Зашел проверить свой контейнер, whoami, app

vasiliylu
Автор

все чего то там ищщут ищщут! какие то фреймворки какую то бредовую бесполезную ерунду
фреймворк ровно один, он называется нативный gdi, который вкарячен прямиком в ядро вёнды
недомозгов не хватает ага, что бы освоить 50 функций gdi?

и ага, вменяемая архитектура всегда крутит юи даже не в собственном потоке, а в собственном процессе, и вам никто не мешает накарячить юи на сишнячке, и пусть оно вменяемо крутится само по себе

AEFC
Автор

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

AEFC