Связь между BLL и DAL

Настройка решения:

  • DAL (библиотека классов)
  • BLL (библиотека классов)
  • Common (библиотека классов (некоторые общие функции - перечисления, ведение журнала, исключения, ...))
  • Application1 (приложение Windows)
  • Application2 (приложение Windows )
  • WebApp (веб-приложение)
  • ...

Допустим, у меня есть сущность Customer , которая является:

  • таблицей на сервере SQL
  • CustomerDataTable в DAL
  • классом Customer в BLL
  • BLL.Customer class во всех приложениях

Какие типы объектов BLL и DAL должны использовать для связи - DataTable или List (например)? В первом случае логика BLL должна преобразовать объект Customer в DataTable и отправить его в DAL. Во втором случае уровень DAL должен знать о классе Customer, который находится на уровне BLL. Но изначально DLL ссылается на DAL, а не наоборот ...

Должен ли я поместить все классы в отдельную сборку, на которую ссылаются все остальные (Common, BusinessObjects, ...)? В этом случае я мог бы использовать класс Customer во всех своих проектах.

Стоит ли мне вообще беспокоиться о разделении DAL и BLL, когда я знаю, что только один BLL будет использовать мой DAL. В этом случае я мог бы объединить их в один проект.

PS - Я читаю о DataTables, и многие люди говорят, что мы вообще не должны их использовать. Какие варианты лучше? Может быть, мне пора изучить некоторые инструменты отображения ORM :)

7
задан sventevit 17 October 2010 в 08:23
поделиться