Является ли .net Maui Communitytoolkit.mvvm icommand плохая практика в ViewModel в .net maui? [закрыто]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Является ли .net Maui Communitytoolkit.mvvm icommand плохая практика в ViewModel в .net maui? [закрыто]

Сообщение Anonymous »

Я работал над приложением .NET MAUI, используя шаблон MVVM, и я начинаю подвергать сомнению общую практику размещения свойств ICOMMAND в ViewModels. Хотя это кажется стандартным подходом во многих учебных пособиях и примерах, я обеспокоен, что он нарушает принципы чистой архитектуры. Смешивание обязанностей < /h3>
ViewModels должно быть посредниками между моделями и представлениями, сосредоточив внимание на преобразовании данных и управлении состоянием. Тем не менее, Icommands в просмотре моделей часто в конечном итоге обрабатывают: < /p>
  • Навигационная логика (

    Код: Выделить всё

    await Shell.Current.GoToAsync("../")
    )
  • Взаимодействие UI (отображение оповещений)
  • Операции по стойкостью данных (прямые вызовы базы данных)
, похоже, нарушает принцип единой ответственности, заставляя ViewModels слишком много. Повышенная связь < /h3>
Когда ViewModels содержат команды, которые выполняют навигацию или специфичные для пользовательского интерфейса операции, они тесно связаны с структурой пользовательского интерфейса, что затрудняет повторное использование или порт на разные платформы. < /P>
3. Трудности тестирования < /h3>
Команды, которые выполняют навигацию, показывают диалоги или взаимодействие с фреймворными службами, требуют обширного смещения в модульных тестах, что добавляет сложности и может сделать тесты хрупкими. < /P>
4. Архитектурная ясность
В чистой архитектуре не следует ли обрабатывать операции данных с помощью услуг/репозиториев, а также навигация посредством специальных навигационных услуг? Почему у ViewModel есть команды, которые напрямую сохраняют данные или перемещаются между страницами? changes
[*]View code-behind subscribes to these events and handles UI-specific concerns
[*]Services handle all data operations
[*]Navigation is managed by a dedicated service that the View interacts with

Am I overthinking this, or is there merit to removing ICommand Свойства от ViewModels в пользу более строгого разделения проблем? Существуют ли существенные недостатки этого альтернативного подхода, который мне не хватает?>

Подробнее здесь: https://stackoverflow.com/questions/794 ... del-in-net
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • CommunityToolKit.Mvvm 8.4.0 и предупреждение MVVM Toolkit MVVMTK0045
    Anonymous » » в форуме C#
    0 Ответы
    68 Просмотры
    Последнее сообщение Anonymous
  • CommunityToolkit.mvvm 8.4.0 и MVVM Toolkit Warning Mvvmtk0045
    Anonymous » » в форуме C#
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • CommunityToolkit.Mvvm.Input.RelayCommand не работает на iOS (MAUI .NET 8.0)?
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • CommunityToolkit.Mvvm.Input.RelayCommand не работает на iOS (MAUI .NET 8.0)?
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • CommunityToolkit.Mvvm.Input.RelayCommand не работает на iOS (MAUI .NET 8.0)?
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»