Re: Кому и зачем нужна Domain Model вместе с Hibernate
От: IT Россия linq2db.com
Дата: 16.05.06 00:37
Оценка: 3 (1)
Здравствуйте, <Аноним>, Вы писали:

А>Если все можно сделать просто с помощью .NET и Table Model?


Table Model — это датасеты?

С помощью датасетов делается далеко не всё так просто. Если рассмотреть жизненный цикл некоторых данных, то чётко можно выделить три стадии:

1. DAL — чтение данных из БД.
2. BL — бизнес логика.
3. UI — отображение данных.

Датасеты совершенно чудным образом справляются с 1 и 3, но вот с 2 наблюдаются определённые проблемы (отдельный вопрос почему). Если сравнивать их с объектами, то нам понадобится вот такая картинка:



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

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

В противоположность датасетам для объектов (entities) совершенно отсутствуют стандартные средства чтения их из базы и отображения в UI. Зато с бизнес логикой нет никаких проблем.

ORM позволяют выровнять ситуацию с БД и поднять эту часть работы с объектами до уровня датасетов, а иногда и выше. Дополнительные средства вроде object-binding позволяют так же легко работать с объектами в UI как и с датасетами.

В результате мы имеем такую ситуацию. Если приложение требует наличия хоть какой-то маломальской бизнес логики, то связываться с датасетами уже не имеет никакого смысла. Если в приложение интенсивно используется бизнес логика, то датасеты — это путь в никуда.

И ответ на поставленный вопрос.

А>Если все можно сделать просто с помощью .NET и Table Model?


Если всё можно сделать просто, т.е. из приложения можно исключить слой бизнес логики, убрав тем самым слабое звено датасетов, и всё сводится к "прочитал из базы / положил на форму", то с датасетами не будет никаких проблем. Очень простое и доступное решение.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.