Мы должны закодировать приложение цифровых вывесок для университетского проекта. Сначала мы используем язык и рамки: .Net, C#, инфраструктура сущностей (с планами использования NHibernate), Winforms (с планами использования WPF).В каком слое должна идти модель домена?
Нам сказали сделать это таким образом, который позволит нам легко изменить логику представления и настойчивости.
Из-за этого мы решили работать с тремя уровнями: слой пользовательского интерфейса, который «знает» уровень обслуживания (или уровень бизнес-логики), уровень обслуживания, который знает уровень сохранения и уровень сохранения. Каждый из них - отдельный проект. В настоящее время классы домена или классы сущностей (в данном случае такие классы, как Кампания, RSSFeed, Пользователь и т. Д.) Содержатся в пространстве имен «Модель» в рамках проекта или уровня сохранения.
Мы определили некоторые интерфейсы для логики доступа к данным, чтобы можно было легко переключать носители.
Вопросы были бы следующими: если для изменения логики персистентности нам пришлось бы изменять фактические ссылки на проекты для замещающих (например, Entity Framework для NHibernate), где должны определяться эти интерфейсы? Что еще более важно, где должны быть определены классы домена? Является ли он «допустимым» для добавления другого слоя с именем, например «Domain», известного уровнем сохранения и уровнем обслуживания?
Прошу прощения, если что-то, что я написал, как странно, мой письменный английский немного ржавый.