Многоуровневая связь ASP.Net

Мы разрабатываем многоуровневое веб-приложение. Характеристики:

  • 3 уровня, уровень данных, бизнес-уровень, уровень пользовательского интерфейса.
  • Запрограммирован на C #
  • Уровень данных использует структуру сущностей

В настоящее время мы планируем, что уровень данных будет возвращать IEnumerable<T> на бизнес-уровень через сущности linq 2, а бизнес-уровень будет возвращать данные на уровень пользовательского интерфейса.

Поскольку уровень пользовательского интерфейса не знает о существовании уровня данных, как он будет обрабатывать результат IEnumerable, переданный ему из BLL, где T определено на уровне данных?

Есть ли какой-нибудь ХОРОШИЙ пример того, как это сделать. Обратите внимание, что я новичок в фабриках / интерфейсах / абстракции для слабого связывания слоев.

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


person Chris Klepeis    schedule 14.05.2010    source источник


Ответы (1)


Определите ваши объекты данных в отдельном проекте или, по крайней мере, в отдельном пространстве имен, чтобы слой Display мог иметь ссылку на объекты, но не на DAL, имеющий доступ к базе данных.

person derek    schedule 14.05.2010
comment
Поскольку Entity Framework автоматически создает DTO, а моя модель данных сущности находится на моем уровне данных, как я могу сделать так, чтобы Visual Studio создавала эти DTO в другом месте? - person Chris Klepeis; 14.05.2010
comment
В итоге я использовал T4 для создания DTO для меня. - person Chris Klepeis; 20.05.2010