Я начинаю новый проект, поэтому пришло время переоценить, как я это делаю.Инкапсуляция слоя без перегрузки модели?
В последнее время я создал проект уровня 3 уровня/уровня (UI, Domain, Data) с каждым уровнем с собственной отдельной моделью. У DAL есть данные, используемые объектом Domain, который сопоставил их с моделями домена, которые были использованы пользовательским интерфейсом, который сопоставил их с ViewModels.
Это позволило провести некоторую дифференциацию на каждом уровне (особенно в пользовательском интерфейсе), но отображение было крайне утомительным (Automapper помог немного), а уровни домена и данных были в основном 1: 1, при этом наиболее подходящими были модели представления пользовательского интерфейса. ,
Я пытаюсь понять, как упростить для моего следующего проекта, и я мог бы использовать некоторые предложения.
Редактировать: Как бы то ни было, я рассматриваю возможность использования набора dto между уровнем домена и уровнем данных. Он больше блокирует меня в структуре datbase, но сохраняет много сопоставлений между идентичными типами.
Недостатком является то, что я заблокирован в ASP.NET MVC (не плохо), и я не хочу размещать MVVM поверх MVC. Как бы то ни было, я могу создать набор DTO, которые будут разделяться между доменом и данными, с UI, поддерживающим модели просмотра. Недостатком является то, что он блокирует меня в структуре базы данных немного больше, но я мог бы добавить случайные исключения. –
MVVM и MVC аналогичны «шаблонам проектирования», поэтому я не буду использовать их оба. –