Возврат DTO против DataTable из DAL - PullRequest
4 голосов
/ 14 апреля 2010

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

Ответы [ 2 ]

3 голосов
/ 14 апреля 2010

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

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

3 голосов
/ 14 апреля 2010

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

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

...