Создание развязанного N-уровневого приложения с Entity Framework и VB.NET - PullRequest
5 голосов
/ 11 октября 2008

Итак, мы создаем приложение с

  • UI Layer (веб, мобильный, Ajax-клиент и т. Д.)
  • Уровень сервиса / API
  • Уровень бизнес-логики
  • Уровень доступа к данным

Наша цель - обеспечить зависимость Entity Framework от уровня обслуживания до DAL. Это означает, что уровень обслуживания будет только принимать и возвращать POCO (простые старые объекты CLR).

В настоящее время мы вручную кодируем уровень отображения между уровнем обслуживания и уровнем бизнес-логики, который преобразует POCO в объекты EF и наоборот.

Итак, короче говоря, страница имеет форму, форма имеет код, который принимает содержимое формы, помещает их в POCO, отправляет на уровень обслуживания. Уровень обслуживания преобразуется в объект EF, отправляет его на уровень бизнес-логики, который выполняет определенные преобразования объекта, а затем взаимодействует с DAL, чтобы сохранить его.

Да, это немного утомительно , но нам было интересно, есть ли лучший способ?

Да , я знаю, что кто-то опубликовал адаптер EF Poco, но все это на C #, и мы бы предпочли решение VB.NET.

Да , Переключение на NHibernate является последним средством, поскольку мы уже глубоко в нашем цикле разработки.

Ответы [ 2 ]

2 голосов
/ 11 октября 2008

Вы должны выполнять бизнес-логику для POCO. Вся цель ORM состоит в том, что это деталь реализации. Бизнес-логика должна быть реализована в доменной модели и в доменных сервисах - в бизнес-приложении «домен» означает «бизнес». DAL должен быть там, чтобы взять POCO и сохранить его - в вашем случае это означает отображение и сохранение объекта EF.

Во всяком случае, это теоретическая модель / NHibernate.

1 голос
/ 15 октября 2008

Можете ли вы выдержать зависимость на уровне сервиса от интерфейсов EF ? Вы могли бы реализовать IPOCO .

Существует даже способ сделать это автоматически .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...