Каков наилучший практический подход для разработки n-уровневых приложений с помощью Entity Framework? - PullRequest
2 голосов
/ 21 мая 2010

Я строю приложение, используя сущностные рамки. Я использую шаблон T4 для создания объектов самопроверки.

В настоящее время я думаю о создании кода платформы сущностей в отдельном проекте. В этом же проекте у меня будут частичные классы с дополнительными методами для сущностей.

Я думаю о создании отдельного проекта для сервисного уровня (WCF) с методами для верхнего уровня / уровня представления. Уровень WCF будет ссылаться на проект структуры объекта. Методы на уровне WCF будут возвращать объекты или принимать объекты в качестве параметров.

Я думаю о создании третьего проекта для уровня представления (ASP.net), он будет делать вызовы к службе WCF, но также должен будет ссылаться на объекты, так как методы WCF принимают эти типы в качестве параметров / типов возврата .

Короче говоря, я хочу использовать объекты STE, сгенерированные шаблоном T4, в качестве DTO для использования во всех слоях.

Первоначально я думал о создании слоя бизнес-логики, который отображается на каждую сущность. Пример: если у меня есть класс клиента, бизнес-уровень будет иметь класс CustomerBLL, а затем сервисный уровень будет использовать методы в customerBLL. Я также пытался создать DTO на этом бизнес-уровне. Однако я обнаружил, что этот подход очень трудоемкий, и я не вижу большой выгоды, так как это создаст дополнительные работы по техническому обслуживанию.

Какова лучшая практика для n-уровневой разработки приложений с использованием Entity Framework 4?

1 Ответ

0 голосов
/ 24 апреля 2012

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

Я полагаю, что разбивка проектов, как следует из следующего, будет хорошим подходом (по крайней мере, для меня это сработало:))

  • Сущности в одном проекте
  • логика персистентности в другом проекте (репозитории, единица работы реализация)
  • WCF в одном проекте
  • Презентационный слой

Надеюсь, это поможет.

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