Кому и зачем нужна Domain Model вместе с Hibernate
От: Аноним  
Дата: 15.05.06 07:35
Оценка:
Если все можно сделать просто с помощью .NET и Table Model?

Читаю тут Patterns of Enterprise Application Architecture Фаулера и он прямо пишет, что в .NET реализованы прекрасные средства поддержки Record Setов и Table Model и логику любой сложности можно сделать использую только их. Тогда зачем морока с Hibernate и прочими O/R Mappings?

Мне правда интересно

15.05.06 13:05: Перенесено модератором из 'Java' — Blazkowicz
Re: Кому и зачем нужна Domain Model вместе с Hibernate
От: OLEGus1 Россия  
Дата: 15.05.06 07:37
Оценка:
Здравствуйте, Аноним, Вы писали:

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


А>Читаю тут Patterns of Enterprise Application Architecture Фаулера и он прямо пишет, что в .NET реализованы прекрасные средства поддержки Record Setов и Table Model и логику любой сложности можно сделать использую только их. Тогда зачем морока с Hibernate и прочими O/R Mappings?


А>Мне правда интересно


Ну.... .Нет лет на 10 моложе
Crescite, nos qui vivimus, multiplicamini
Re[2]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Аноним  
Дата: 15.05.06 08:18
Оценка:
Здравствуйте, OLEGus1, Вы писали:

OLE>Ну.... .Нет лет на 10 моложе


Не на 10, а на 5. .NET вышел в 2000году. А по существу?
Re[3]: Кому и зачем нужна Domain Model вместе с Hibernate
От: OLEGus1 Россия  
Дата: 15.05.06 08:32
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, OLEGus1, Вы писали:


OLE>>Ну.... .Нет лет на 10 моложе


А>Не на 10, а на 5. .NET вышел в 2000году. А по существу?


и Table Model тогда уже в нем был?
Crescite, nos qui vivimus, multiplicamini
Re[4]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Аноним  
Дата: 15.05.06 08:49
Оценка:
Здравствуйте, OLEGus1, Вы писали:

OLE>и Table Model тогда уже в нем был?


Ага. Книжка в сабже-то от 2002 года. Фаулер пользовался .NET уже в 2001 и на основании опыта использования хвалил Table Model
Re[4]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Аноним  
Дата: 15.05.06 08:50
Оценка:
Здравствуйте, OLEGus1, Вы писали:

OLE>и Table Model тогда уже в нем был?


Или трудно книжку скачать? Она везде есть. Chapter 9
Re[5]: Кому и зачем нужна Domain Model вместе с Hibernate
От: OLEGus1 Россия  
Дата: 15.05.06 08:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, OLEGus1, Вы писали:


OLE>>и Table Model тогда уже в нем был?


А>Или трудно книжку скачать? Она везде есть. Chapter 9


Честно говоря неохота
И под линухом это все работает?
Crescite, nos qui vivimus, multiplicamini
Re: Кому и зачем нужна Domain Model вместе с Hibernate
От: Blazkowicz Россия  
Дата: 15.05.06 09:05
Оценка: +1
Здравствуйте, Аноним, Вы писали:

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


А>Читаю тут Patterns of Enterprise Application Architecture Фаулера и он прямо пишет, что в .NET реализованы прекрасные средства поддержки Record Setов и Table Model и логику любой сложности можно сделать использую только их. Тогда зачем морока с Hibernate и прочими O/R Mappings?


А>Мне правда интересно


Не очень понял. А бизнес логику тоже на таблицах писать? Это уже кто-то тут предлагал вместо объектов HashMap использовать.
Re: Кому и зачем нужна Domain Model вместе с Hibernate
От: Razumyan Россия  
Дата: 15.05.06 09:23
Оценка:
Здравствуйте, Аноним, Вы писали:

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


А>Читаю тут Patterns of Enterprise Application Architecture Фаулера и он прямо пишет, что в .NET реализованы прекрасные средства поддержки Record Setов и Table Model и логику любой сложности можно сделать использую только их. Тогда зачем морока с Hibernate и прочими O/R Mappings?


А>Мне правда интересно
Re: Кому и зачем нужна Domain Model вместе с Hibernate
От: VladGalkin Украина  
Дата: 15.05.06 09:27
Оценка: 6 (1) +1
Здравствуйте, <Аноним>, Вы писали:

А>Читаю тут Patterns of Enterprise Application Architecture Фаулера и он прямо пишет, что в .NET реализованы прекрасные средства поддержки Record Setов и Table Model и логику любой сложности можно сделать использую только их. Тогда зачем морока с Hibernate и прочими O/R Mappings?


А Вы много этой книги Фаулера уже прочитали? Раздел Object-Relational Metadata Mapping Patterns читали ?
Про логику любой сложности на Table Model, насколько помнится он не писал, и через всю книгу красной нитью проходят высказывания типа: "для сложных приложений лучше использовать паттерн Domain Model", а в разделе Object-Relational Metadata Mapping Patterns
он перечисляте решения, с его точки зрения, лучше всего подходящие для Domain Model.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
ДЭ!
Re[2]: Кому и зачем нужна Domain Model вместе с Hibernate
От: _FRED_ Черногория
Дата: 15.05.06 09:29
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

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

А>>Читаю тут Patterns of Enterprise Application Architecture Фаулера и он прямо пишет, что в .NET реализованы прекрасные средства поддержки Record Setов и Table Model и логику любой сложности можно сделать использую только их. Тогда зачем морока с Hibernate и прочими O/R Mappings?

B>…А бизнес логику тоже на таблицах писать?


Это единственный недостаток?
... << RSDN@Home 1.2.0 alpha rev. 650>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Blazkowicz Россия  
Дата: 15.05.06 09:33
Оценка:
Здравствуйте, _FRED_, Вы писали:

B>>…А бизнес логику тоже на таблицах писать?


_FR>Это единственный недостаток?


А что этого не достаточно?
Re[2]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Razumyan Россия  
Дата: 15.05.06 09:35
Оценка:
Тогда возникает встречный вопрос:
А зачем писать на .НЕТ (проектировать БД, создавать РекордСеты , увязывать их с гридами и деревьями и т.д.)?
Есть же 1С! там тоже логику любой сложности можно написать.
Зачем тогда мучится, минимизировать ошибки программирования и проектирования, оптимизировать запросы к БД?
Зачем?
Главное же — чтобы работало!
Re[4]: Кому и зачем нужна Domain Model вместе с Hibernate
От: _FRED_ Черногория
Дата: 15.05.06 09:38
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>>>…А бизнес логику тоже на таблицах писать?

_FR>>Это единственный недостаток?

B>А что этого не достаточно?


А что, слабо? Шутка. В самом деле, ну какая разница, "достаточно" или нет, ведь это понятие "контекстно-зависимое" от того, "зачем". Предположим, интерес академический. Список составляю. Так всё же?
... << RSDN@Home 1.2.0 alpha rev. 650>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Кому и зачем нужна Domain Model вместе с Hibernate
От: ArhAngelVezel Россия  
Дата: 15.05.06 10:05
Оценка:
Здравствуйте, Razumyan, Вы писали:


R>Главное же — чтобы работало!


Неправильный ответ .. Нужно брать ниже ) ...
Лично я утверждаю что логику [b]любой[b] сложности можно написать на ассемблере! Кто хочет возразить??? :D
Re[4]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Razumyan Россия  
Дата: 15.05.06 10:31
Оценка:
Здравствуйте, ArhAngelVezel, Вы писали:

AAV>Лично я утверждаю что логику [b]любой[b] сложности можно написать на ассемблере! Кто хочет возразить??? :D


Писать конечно можно, но придется вникать в технические детали (команды процессора, адресация памяти и т.д) .

Я имел ввиду написание "чистой" логики. — Здесь ассемблер не катит.
Re[5]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Cyberax Марс  
Дата: 15.05.06 10:34
Оценка:
Razumyan wrote:
> AAV>Лично я утверждаю что логику [b]любой[b] сложности можно написать на
> ассемблере! Кто хочет возразить??? :D
> Писать конечно можно, но придется вникать в технические детали (команды
> процессора, адресация памяти и т.д) .
Ты сам сказал. Если писать прикладной код напрямую с БД, то придется
вникать в конкретные детали расстановки колонок, видов и т.п.

ORM позволяет писать код, работающий с абстрактными бизнес-объектами, не
заботясь о БД (до некоторой степени, конечно).

> Я имел ввиду написание "чистой" логики. — Здесь ассемблер не катит.

А почему не катит?
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[5]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Blazkowicz Россия  
Дата: 15.05.06 11:50
Оценка:
Здравствуйте, _FRED_, Вы писали:

B>>>>…А бизнес логику тоже на таблицах писать?

_FR>>>Это единственный недостаток?

B>>А что этого не достаточно?


_FR>А что, слабо? Шутка. В самом деле, ну какая разница, "достаточно" или нет, ведь это понятие "контекстно-зависимое" от того, "зачем". Предположим, интерес академический. Список составляю. Так всё же?


Так просто из этого недостатка проистекают все остальные. Я просто не до конца представляю себе функциональность вышеназыванных классов чтобы точно указывать что можно имми реализовать а что нет.
Re[6]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Oyster Украина https://github.com/devoyster
Дата: 15.05.06 13:19
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> Я имел ввиду написание "чистой" логики. — Здесь ассемблер не катит.

C>А почему не катит?

Слишком тяжко писать будет. Для описания большого количества бизнес-правил в коде уровень абстракции должен быть повыше — иначе замучаешься думать низкоуровневыми категориями при описании довольно высокоуровневой логики. Есть для этого даже такие языки, как BPEL, например — уровень абстракции выше некуда
Re[7]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Cyberax Марс  
Дата: 15.05.06 13:28
Оценка: +1 :)
Oyster wrote:
>> > Я имел ввиду написание "чистой" логики. — Здесь ассемблер не катит.
> C>А почему не катит?
> Слишком тяжко писать будет. Для описания большого количества
> бизнес-правил в коде уровень абстракции должен быть повыше — иначе
> замучаешься думать низкоуровневыми категориями при описании довольно
> высокоуровневой логики. Есть для этого даже такие языки, как BPEL
> <http://en.wikipedia.org/wiki/Business_Process_Execution_Language&gt;,
> например — уровень абстракции выше некуда
Спасибо за дополнение к моему посту
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[8]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Oyster Украина https://github.com/devoyster
Дата: 15.05.06 13:44
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Спасибо за дополнение к моему посту


Да... плохо прочитал
Re[3]: Кому и зачем нужна Domain Model вместе с Hibernate
От: ingie Россия  
Дата: 15.05.06 15:02
Оценка: -1
Здравствуйте, Аноним, Вы писали:

OLE>>Ну.... .Нет лет на 10 моложе

А>Не на 10, а на 5. .NET вышел в 2000году. А по существу?

Это означает, видимо, что НЕТу всего-то лет пять...

IMHO:

1. По ORM-маппингу можно воссоздать схему данных с нуля.
2. ORM маппинг позволяет облегчить автоматизированное тестирование.
3. На ORM маппинг есть открытые стандарты, как де-факто так и де-юро.
4. ORM маппинг позволяет действительно инкапсулировать логику, любую, не только бизнес.
5. ORM маппинг и Domain Model не исключают использования рекордсетов, а точнее их аналогов, обратное видимо неверно.
6. ORM маппинг решает большее число проблем на этапе компиляции, но это уже не любой. В recordsetaх все рантайм.

Субъективно ORM-маппинг более масштабируемая технология.
И более "серверная".

На мой взгляд у НЕТа только одно преимущество, там отлично реализована работа в offline. Этого не хватает ORM-контейнерам. Но тоже обходимо.

Это я постарался привести рассуждения не особо философского характера, более менее прагматичные.
Re: Кому и зачем нужна Domain Model вместе с Hibernate
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 15.05.06 15:32
Оценка:
Здравствуйте, Аноним, Вы писали:

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


А>Читаю тут Patterns of Enterprise Application Architecture Фаулера и он прямо пишет, что в .NET реализованы прекрасные средства поддержки Record Setов и Table Model и логику любой сложности можно сделать использую только их. Тогда зачем морока с Hibernate и прочими O/R Mappings?


А>Мне правда интересно


Может быть что нужна Domain model но не с Hibernate а например с IBatis,
это во многом зависит от того в какую сторону ведется разработка:
— если от обьектной модели, к БД, то Hibernate удобен
— если от БД к обьектной модели, то интеграция становится сложнее и
использование Hibernate будет затруднительным или вообще невозможным,
но Domain Model по прежнему будет существовать.
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>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Al_Shargorodsky Украина  
Дата: 17.05.06 04:57
Оценка:
Здравствуйте, IT, Вы писали:

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


IT>1. DAL — чтение данных из БД.

IT>2. BL — бизнес логика.
IT>3. UI — отображение данных.

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


А что по поводу TypedDataset в NET 2.0 и возможности их расширения partial классами? (Это, конечно, очень специфично, но все же). Т.е. хотелось бы услышать, насколько это удобно по сравнению с ORM. Ведь с одной стороны имеем "совершенно чудным образом справляются с 1 и 3", а с другой — пиши любую функциональность в DataRow, иерархию классов можно заменить иерархией интерфейсов, тот же TableAdapter можно унаследовать от свего компонента и расширить в partial class. (Это не агитация за датасеты, просто интересно мнение по поводу...)
Re[3]: Кому и зачем нужна Domain Model вместе с Hibernate
От: IT Россия linq2db.com
Дата: 17.05.06 12:30
Оценка:
Здравствуйте, Al_Shargorodsky, Вы писали:

A_S>А что по поводу TypedDataset в NET 2.0 и возможности их расширения partial классами? (Это, конечно, очень специфично, но все же). Т.е. хотелось бы услышать, насколько это удобно по сравнению с ORM. Ведь с одной стороны имеем "совершенно чудным образом справляются с 1 и 3", а с другой — пиши любую функциональность в DataRow, иерархию классов можно заменить иерархией интерфейсов, тот же TableAdapter можно унаследовать от свего компонента и расширить в partial class. (Это не агитация за датасеты, просто интересно мнение по поводу...)


partial classes — это большой шаг вперёд. Датасетами я сейчас не пользуюсь принципиально, т.к. в своё время у меня была ими передозировка и как результат была получена жестокая аллергия, но по идее partial classes должны решить часть проблем. Тем не менее, ещё остаются некоторые вопросы. Например, перечислители. В случае с объектами я могу использовать такой вариант:

public enum Gender
{
        [MapValue("F")] Female,
        [MapValue("M")] Male,
        [MapValue("U")] Unknown,
        [MapValue("O")] Other
}

и везде в приложении я буду работать с перечислителями. В случае с датасетами я буду вынужден использовать строковые константы.

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

Можно ещё повспоминать что-нибудь, но как я уже сказал, мне это малоинтересно. Для себя я уже давно решил проблемы как с отображением объектов в UI, так и с чтением их из базы, причем даже более высокоуровневыми средствами, чем предоставляет ADO.NET. В результате и код UI и код DAL получается значительно проще и короче. Поэтому, тема эффективного использования датасетов меня больше не волнует.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Dimonizhe  
Дата: 19.05.06 15:39
Оценка:
Здравствуйте, achmed, Вы писали:

A> — если от БД к обьектной модели, то интеграция становится сложнее и

A>использование Hibernate будет затруднительным или вообще невозможным,
A>но Domain Model по прежнему будет существовать.

Обычно эксперты по С Шарпу должны задавать вопросы про Яву, а не утверждать веши, которые не верны.

Нибернейт предназначен для обоих путей проектирования.
Re[3]: Кому и зачем нужна Domain Model вместе с Hibernate
От: Cyberax Марс  
Дата: 19.05.06 16:37
Оценка:
Dimonizhe wrote:
> A> — если от БД к обьектной модели, то интеграция становится сложнее и
> A>использование Hibernate будет затруднительным или вообще невозможным,
> A>но Domain Model по прежнему будет существовать.
> Обычно эксперты по С Шарпу должны задавать вопросы про Яву, а не
> утверждать веши, которые не верны.
Поверь, я знаю проект над которым работает achmed — там Hibernate не
поможет. Слишком извращенная схема базы данных.

> Нибернейт предназначен для обоих путей проектирования.

Не всякая схема БД нормально на _разумную_ объектную модель ложится.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.