Возврат DTO против DataTable из DAL

Можно ли, чтобы DAL возвращал тип DTO из модели домена, а не просто возвращал DataTable? Разве не более свободно, если ваши функции DAL возвращают DataTables / DataSets, а ваш BLL сопоставляет данные с бизнес-объектами?


person eych    schedule 13.04.2010    source источник


Ответы (2)


Я думаю, что все сводится к личным предпочтениям, но мне нравится избегать DataTables, когда это возможно.

Иногда они могут быть удобными, но тот факт, что они не строго типизированы, значительно затрудняет отладку, тестирование и просто понимание кода.

person Eric Petroelje    schedule 13.04.2010

Для небольших приложений в .NET лучше всего строить архитектуру на DataSets и DataTables. У вас есть прямая поддержка привязки для пользовательского интерфейса, для отчетности, и она хорошо масштабируется, пока вы не дойдете до более серьезных проблем домена. Ознакомьтесь с книгой Фаулера «Шаблоны архитектуры корпоративных приложений», особенно с шаблонами табличных модулей и табличных шлюзов данных.

Для чего-то более сложного всегда окупается наличие хорошей модели предметной области и соответствующих слоев вокруг нее (ORM mapper, Remoting и Service Layers и т. Д.). Для этих шаблонов обратитесь к ранее упомянутой книге, желательно с Domain Driven Design Эрика Эванса.

person Denis Biondic    schedule 13.04.2010