OR/M - Object Relational Mapping |
Здравствуйте.
Хочу предложить новую тему для обсуждения: OR/M - Object Relational Mapping.
Это такая категория программных продуктов, которая предназначена для построения обьектной модели
поверх реляционной.
Для того чтобы сократить количество кода, необходимого для работы с базой данных, и повысить его
качество, читабельность, легкость.
С переходом Дельфи на платформу дотнет, дельфистам стала доступна целая когорта таких продуктов.
Здесь есть и простенькие кодогенераторы, и мощные тяжелые продуты, поддерживающие полный reverse
engineering. Есть бесплатные, есть дешевые (50-100 долларов), есть дорогие (несколько тысяч).
Функциональность продуктов и их вохможности разбросаны по весьма широкой шкале.
Короче есть от чего впасть в ступор. Какой ORM лучше подходит для Вас ? Кодогенератор ? или
динамический ? Поддерживающий одну базу данных (SQL Server) или несколько ? У кого лучше
документация ? У кого более эффективный код ? Стоит ли ждать ObjectSpaces от МС ?
Для ознакомления с темой предлагаю линки на несколько довольно известных, полноценных и
бесплатных ORM движков
Вагиф Ахвердиев aka Jack Of Shadows
Всего в теме 305 сообщений
Добавить свое сообщение
Ссылки на несколько довольно известных, полноценных и бесплатных ORM движков
- NHibernate - http://nhibernate.sourceforge.net
- Neo - http://neo.codehaus.org
- NPersist - http://www.npersist.com
- Gentle.NET - http://www.mertner.com/projects/gentle
- MyGeneration - http://www.mygenerationsoftware.com
Отслеживать это обсуждение 305—296 | 295—286 | ...>>> Всего сообщений в теме: 305; страниц: 31; текущая страница: 1
№ 305 01-11-2006 15:43 | |
db4o уже в версии 5.7
Скорость обработки запросов выросла в сотни раз.
Существенно уменьшена потребность в оперативной памяти.
Реализована новая версия б-деревьей для индексов, что также улучшило скорость обработки запросов.
Существенно увеличена скорось записи данных в базу (даже с "короткими" транзакциями).
Ведется разработка в направлении улучшения характеристик клиент - серверной версии СУБД.
Появились средства администрирования СУБД. В т.ч. и в виде плагинов для Eclipse.
Реализована возможность включения процедур, реализующих коллбэк - вызовы на серверной стороне (естественно, все это на "родном" языке - Java или .Net(C#, Delphi for .Net etc)). Реализация похода на орагнизацию обработки событий в Дельфи.
Расширен язык для Native Query.
...
Пожалуй, что для дельфистов будет интересна версия db4o for .Net.
Все это можно бесплатно загрузить на db4o.com
№ 304 29-03-2006 02:18 | |
http://www.instantobjects.org/
ОРМ на дельфи.
Основное достоинство - работает и на Дельфи 7
Классы правда нужно наследовать с их собственного базового класса TInstantObject
Но зато куча визуальных фишек для представления модели.
И даже есть DataSet, при помощи которого контейнер обьектов мапится на все обычные db-aware эдит боксы и гриды.
Т.е. скрещено привычное для дельфистов парадигма дб-программирования dataset->datasource->grid
c обьектным (а не табличным) представлением данных.
OpenSource. С хорошей документацией, даже видео есть :)) и примеры. Нехило вобщем.
№ 303 27-11-2005 23:37 | |
Для тех кому нравится визуальное моделирование.
Сразу 2 новости.
http://www.objectmapper.com/Home/Default.aspx
ObjectMapper это тулза предназначенная для генерации NHibernate мапинг фалов из структуры БД.
Поддерживает UML и reverse engineering.
Новсть заключается в том что ObjectMapper стал OpenSource и бесплатным.
2. http://andromda.org/
Это тулза которая читает стандартные UML файлы от любого стандартного UML редактора, и на основе их а также многочисленных картриджей генерирует разнообразные исходники.
Так вот они теперь поддерживают и генерацию маппинг файлов NHibernate.
Так что можете пользоваться своим любимым UML редактором и генерировать из модели мапинг файлы, и классы для NHibernate.
№ 302 28-10-2005 07:59 | |
Ответ на »сообщение 300« (Jack Of Shadows)
___________________________
Вы правы, лучше использовать боее громоздкий, но максимально адекватный пример, что я и сделал.
Оригинальный вариант
http://www.arbinada.com/modules.php?name=Content&pa=showpage&pid=82
Журнальный постараюсь изменить тоже, но это не только от меня зависит.
P.S. Ситуация на рынке меняеися быстро, статья в по части обзора "протухнет" через полгода-год.
Если у кого-нибудь появится желание внести в список ORM изменения/добавления - напишите мне на email или на форуме, я с удовольствием включу это в статью, а вас - в соавторы :)
№ 301 27-10-2005 19:52 | |
Ответ на »сообщение 299« (Сергей Тарасов)
___________________________
В общем, они все далеки от идеала, NHibernate тсзать "лучший из худших".
Определение "лучший из худших" подразумевает что есть еще и лушие.
Но поскольку я таковых не встречал, а вы не привели, то думаю это несправедливое принижение достоинств NHibernate.
Максимум что вы можете выдать против NHibernate это фомулировку "лучший из имеющихся".
А затем уже говорить о фундаментальной невозможности предоставить идеальное решение при исторически сложившихся обстоятельствах (широкое распространение RDBMS, отсутствие встроенных декларативных инструментов манипуляций списками в java и dotnet языках итд.)
№ 300 27-10-2005 19:46 | |
Ответ на »сообщение 298« (Сергей Тарасов)
___________________________
Для примера с записью в БД пришлось бы приводить более громоздкий код со связанными объектами.
О том и речь :))
Просто статья у вас называется "ORM: зачем это нужно?" А в ней вы показываете "ОРМ - когда оно не нужно" :)) Пример не соответствует задекларированной тематике.
№ 299 27-10-2005 19:25 | |
Ответ на »сообщение 295« (Jack Of Shadows)
___________________________
Я помню Сергей Тарасов высказывался не в пользу выбора NHibernate.
В общем, они все далеки от идеала, NHibernate тсзать "лучший из худших".
Но "У мэня нэт для вас других писатэлэй" (с) тов.Сталин
№ 298 27-10-2005 19:23 | |
Ответ на »сообщение 297« (Jack Of Shadows)
___________________________
Я с этим согласен, "...если ваша система осуществляет транзакционную обработку (OLTP)... - здесь преимущества использования ОРП наибольшие"
Для примера с записью в БД пришлось бы приводить более громоздкий код со связанными объектами. На создании/заполнении/сохранении одного объекта выигрыш также не слишком заметен - в ADO добавить строку, заполнить ячейки, сохранить (транзакция может быть в этом случае даже неявной).
№ 297 27-10-2005 11:46 | |
Ответ на »сообщение 296« (Сергей Тарасов)
___________________________
Сергей, в статье вы использовали пример с чтением данных.
Было бы гораздо лучше если бы вы взяли пример с записью в БД.
Там преимущества ОРМ выраженны гораздо четче.
Да вы и сами в статье сказали, если только читать да на вывод давать, то особой разницы нет.
А вот когда записывать в БД, управлять транзакционностью, делать проверку данных - вот здесь ОРМ делает огромную часть рутинной работы, и уменьшает код более чем на половину.
№ 296 27-10-2005 11:19 | |
305—296 | 295—286 | ...>>> Всего сообщений в теме: 305; страниц: 31; текущая страница: 1
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|