Какая архитектура хорошая с Fluent NHibernate? - PullRequest
1 голос
/ 06 июля 2011

Я занимаюсь разработкой приложения с использованием MVC 3 и Fluent NHibernate. я хочу знать, какой будет лучшая архитектура для приложения, например, следует ли разделить бизнес-уровень, DAL и уровень хранилища, определить класс сущности и класс отображения в бизнесе позже, все интерфейсы находятся в хранилище, а вся логика данных - в DAL. Есть идеи, как лучше всего справиться с приложением?

Спасибо

Ответы [ 3 ]

4 голосов
/ 06 июля 2011

Вы можете определить свои бизнес-объекты в отдельный слой. Тогда у вас могут быть интерфейсы, определяющие операции CRUD с этими бизнес-объектами (репозиториями). Тогда у вас будет конкретная реализация этих репозиториев: в вашем случае используется NHibernate. Здесь у вас будет логика доступа к данным и сопоставления FluentNHibernate. Наконец, у вас будет сервисный уровень, который будет определять сложные бизнес-операции, состоящие из нескольких простых операций CRUD в ваших бизнес-объектах. Бизнес-уровень также может содержать логику проверки бизнеса.

Сервисный уровень и уровень доступа к данным будут слабо связаны благодаря интерфейсам, которые реализуют ваши репозитории, бизнес-уровень не должен знать о конкретных реализациях этих репозиториев.

Наконец, ваши контроллеры MVC будут работать с сервисными методами и бизнес-объектами. Именно на уровне пользовательского интерфейса (приложение MVC) вы также определяете модели представления, чтобы действия контроллера могли отображаться между бизнес-объектами и моделями представления и передавать эти модели представления представлениям.

1 голос
/ 06 июля 2011

В моем мнении Архитектура S # arp - это отличная кодовая база для изучения хорошо спроектированной, слабо связанной и управляемой доменом архитектуры проектирования для проектов ASP.NET MVC, использующих NHibernate с Fluent NHibernate в качестве ORM.

1 голос
/ 06 июля 2011

A очень Хороший проект с открытым исходным кодом, на который стоит обратить внимание: CodeCampServer

Это то, с чего я начал, и он использует интересующий вас стек (MVC, Fluent NHib)

...