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

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

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

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

таблица в SQL-серверетаблица CustomerDataTable в DALКласс клиента в BLLкласс BLL.Customer во всех приложениях

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

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

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

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

Ответы на вопрос(4)

Ваш ответ на вопрос