Mapping свойств объекта на поля таблицы
От: oleksab Украина  
Дата: 14.10.05 06:55
Оценка:
Здравствуйте.

Хочеться простого и красивого: мапить поля на объекты и обратно не с помощью гигантского switch в DAO классах и не переопределив методы Save в DAO классе. Хочется так же, чтобы соответствие свойтво-класс было прописано где-нибуть недалеко от класса и было бы интуитивным и понятным для людей, недавно начавших работать с кодом.

Как принято это делать? Каждый объект учить сохранять самого себя? А не будет ли размазанный по коду доступ к базе вылазить боком потом?

Я сначала думал — воспользоваться каким-нибуть ORM, генерящим автоматом код. Потом — написать своих аттрибутов к свойствам объектов и как-то reflection-м обходить свойства объекта при сохранении — но не будет это медленно?

Помогите советом пожалуйста.
... << RSDN@Home 1.2.0 alpha rev. 0>>

15.10.05 00:35: Перенесено модератором из 'Философия программирования' — AndrewVK
Re: Mapping свойств объекта на поля таблицы
От: Oyster Украина https://github.com/devoyster
Дата: 14.10.05 07:25
Оценка: 2 (1)
Здравствуйте, oleksab, Вы писали:

O> Хочеться простого и красивого: мапить поля на объекты и обратно не с помощью гигантского switch в DAO классах и не переопределив методы Save в DAO классе. Хочется так же, чтобы соответствие свойтво-класс было прописано где-нибуть недалеко от класса и было бы интуитивным и понятным для людей, недавно начавших работать с кодом.


O> Как принято это делать? Каждый объект учить сохранять самого себя? А не будет ли размазанный по коду доступ к базе вылазить боком потом?


Ну... обычно делают некий класс-менеджер (классы-менеджеры), которые берут на себя работу по загрузке/сохранению, а сам класс за это не отвечает (transparent persistence).

А вообще вам, батенька, надо почитать про object-relational mapping, т.к. как раз оно. У того же Фаулера в "Patterns of Enterprise Applications Architecture" написано немного в тему. Вот ещё в NHibernate Wiki есть топик про документацию, т.ч. и ссылки на статьи по O/R-Mapping.
Re: Mapping свойств объекта на поля таблицы
От: mbrodin Украина  
Дата: 14.10.05 07:27
Оценка: 3 (1)
Здравствуйте, oleksab, Вы писали:

Я думаю не будет размазанный, если обьединить все обьекты, общающиеся с базой в отдельный уровень Data Access Level

O> Как принято это делать? Каждый объект учить сохранять самого себя? А не будет ли размазанный по коду доступ к базе вылазить боком потом?


Очень достойную реализацию я нашел вот здесь
Автор(ы): Игорь Ткачёв
Дата: 01.07.2003
В статье подробно рассматривается состав и способы применения пространства имён Rsdn.Framework.Data, представляющего собой высокоуровневую обёртку над ADO.NET.

и понятно и быстро, советую.

O> Я сначала думал — воспользоваться каким-нибуть ORM, генерящим автоматом код. Потом — написать своих аттрибутов к свойствам объектов и как-то reflection-м обходить свойства объекта при сохранении — но не будет это медленно?


O> Помогите советом пожалуйста.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re: Mapping свойств объекта на поля таблицы
От: Alexey Axyonov Украина  
Дата: 14.10.05 08:01
Оценка: 3 (1)
Здравствуйте, oleksab, Вы писали:

O>Здравствуйте.


O> Хочеться простого и красивого: мапить поля на объекты и обратно не с помощью гигантского switch в DAO классах и не переопределив методы Save в DAO классе. Хочется так же, чтобы соответствие свойтво-класс было прописано где-нибуть недалеко от класса и было бы интуитивным и понятным для людей, недавно начавших работать с кодом.


O> Как принято это делать? Каждый объект учить сохранять самого себя? А не будет ли размазанный по коду доступ к базе вылазить боком потом?


O> Я сначала думал — воспользоваться каким-нибуть ORM, генерящим автоматом код. Потом — написать своих аттрибутов к свойствам объектов и как-то reflection-м обходить свойства объекта при сохранении — но не будет это медленно?


O> Помогите советом пожалуйста.


Пространство имён Rsdn.Framework.Data
Автор(ы): Игорь Ткачёв
Дата: 01.07.2003
В статье подробно рассматривается состав и способы применения пространства имён Rsdn.Framework.Data, представляющего собой высокоуровневую обёртку над ADO.NET.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Re: Mapping свойств объекта на поля таблицы
От: undead00  
Дата: 14.10.05 11:55
Оценка: 1 (1)
Здравствуйте, oleksab, Вы писали:

Оцените свой скилл.

Это раз.

Я же предпочитаю сам писать и под конкретный проект дорабатывать.
Однако со второго-третьего проекта ты будешь использовать неизменное ядро — каторое будет тебя целиком устраивать и по производительности и по функционалу и т.д.

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

Теперь я имею супер-скоростнуй систему ORM поддерживающую ассоциации LazyLoad и проч веши

производительней чем все популярные фрэймворкт (NHibernate, Gentle, DataObjects .NET) до 50%
Re[2]: Mapping свойств объекта на поля таблицы
От: oleksab Украина  
Дата: 18.10.05 09:50
Оценка:
Здравствуйте, undead00, Вы писали:

U>Оцените свой скилл.

U>Это раз.

Мне тяжело со стороны. Где-то посередине, наверное.

U>Я же предпочитаю сам писать и под конкретный проект дорабатывать.


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

U>Однако со второго-третьего проекта ты будешь использовать неизменное ядро — каторое будет тебя целиком устраивать и по производительности и по функционалу и т.д.


Согласен. Но вот написать это — займет достаточно много времени.

U>Теперь я имею супер-скоростнуй систему ORM поддерживающую ассоциации LazyLoad и проч веши

U>производительней чем все популярные фрэймворкт (NHibernate, Gentle, DataObjects .NET) до 50%

А как оно работает (в двух словах) расскажи пожалуйста? Интересен механизм mapping-a свойств на поля (и обратно) и составления sql выражений для сохранения/вычитки объектов из базы.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[2]: Mapping свойств объекта на поля таблицы
От: Dr.Gigabit  
Дата: 18.10.05 11:54
Оценка:
Здравствуйте, undead00, Вы писали:

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


U>Оцените свой скилл.


U>Это раз.


U>Я же предпочитаю сам писать и под конкретный проект дорабатывать.

U>Однако со второго-третьего проекта ты будешь использовать неизменное ядро — каторое будет тебя целиком устраивать и по производительности и по функционалу и т.д.

U>Тем более ты знаешь каждую мелочь. Тебе не надо переучиватся под какую-нить, мягко скажем, некрасивое решение


U>Теперь я имею супер-скоростнуй систему ORM поддерживающую ассоциации LazyLoad и проч веши


U>производительней чем все популярные фрэймворкт (NHibernate, Gentle, DataObjects .NET) до 50%


Только вы вряд ли имеете систему, которая позволяет решать такой круг различных задач, как это позволяют тот же Hibernate.
Цель фрэйморка — дать возможность получить общее решение. Никто не мешает его доработать.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.