Подскажите, пожалуйста, правильный подход к оформлению логики приложения, взаимодействующего с базой данных c# wpf mvvm

посоветуйте, пожалуйста, как правильнее действовать. Пишу программу с иcпользованием WPF и MVVM, которая взаимодействует с базой данных. Действия стандартные: добавление, редактирование, удаление, отображение списка.

Вопрос 1. Что правильнее, создать отдельное окно для редактирования, отдельное для создания элемента или одно общее окно для добавления и редактирования функционал которого будет меняться в зависимости от того какую команду выбрал пользователь и от ее параметров.

Вопрос 2. То же самое с методами в Model, что правильнее, создать единый метод например AddEditDeleteUser который все будет делать в зависимости от параметров или для каждого действия свой метод (AddUser(), EditUser(), DeleteUser())

Вопрос 3. В Model есть классы сущности, например, User.cs и т.п. где лучше хранить логику работы с данными (add,edit, delete, select, filter) в самом классе сущности или сделать общий класс, например Dataworker.cs

Вопрос 4. То же самое с ViewModel лучше делать отдельный класс UserVM.cs или в общем ИмяПроектаVM.cs для хранения команд, свойств зависимостей и т.п.


Ответы (1 шт):

Автор решения: Support Fito

В силу своих знаний:

  1. Как вам будет удобно. В принципе можно всё и в 1 окно поместить (пример https://metanit.com/sharp/wpf/22.4.php).
  2. Для каждого действия свой метод.
  3. Конечно создать класс для работы с данными. Не писать эту работу внутри класса сущности.
  4. Отдельный класс ViewModel стоит делать на каждую твою View, а не на класс сущности.
→ Ссылка