Я создаю n-уровневое приложение с MVC, Ninject и NHibernate (мой первый опыт использования этих технологий). Для ясности ярусы представляют собой уровень "данных", уровень "Услуги" и "веб-уровень" (все это отдельные проекты).
С MVC у вас есть ваши модели, находящиеся в папке "Модели". Кажется необходимым поместить мои модели здесь для создания сильно типизированных представлений и, как правило, придерживаться философии MVC.
Однако, с NHibernate, мне также нужны мои модели в уровне "Данные", так что это может произойти, и что NHibernate может создавать фактические объекты для возврата на уровень сервиса.
Дублирование классов по проектам не очень DRY, и абстрагирование их в свою библиотеку, похоже, не очень хорошо работает с MVC (ни на практике, ни на философии).
Любые мысли? Как вы структурируете свои объекты O/RM против моделей MVC?