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
Отслеживать это обсуждение <<<... | 295—286 | 285—276 | ...>>> Всего сообщений в теме: 305; страниц: 31; текущая страница: 2
№ 295 16-10-2005 22:28 | |
Я помню Сергей Тарасов высказывался не в пользу выбора ТРшиуктфеу по 2-м причинам: Бета статус программы, который отпугивал Сергея аозможной нестабильностью и багами, а также безхозный статус NHibernate. Т.е. в сулчае проблемы не к кому обратиться, нет коммерческой компании, стоящей за продуктом.
Так вот, не успели разработчики NHibernate избавиться от бета статуса и выпустить первый официальный релиз, как и хозяин быстренько нарисовался :))
NHiberntate присоединилась к компании JBoss. Главный разработчик NHibernate теперь будет получать зарплату за полный рабочий день, посвященный разработке NHibernate !
Для тех кто не в курсе, JBoss до этого таким же образом завладела Hibernate, взяв на зарплату его разработчиков.
Я думаю это слияние является еще одним красноречивым доказательством качества продукта.
Таким образом NHibernate ничем теперь не уступает коммерческим аналогам, при этом убивая их наповал ценой - он бесплатен :))
А учитывая то что он еще имеет брата близнеца на java, который уже стал стандартом де факто для java ОРМ, то у NHibernate огромное просто преимущество. Изучи один раз, используй свои навыки как в dotnet так и на java.
№ 294 10-10-2005 20:01 | |
Сегодня выпущена версия 1.0 NHibernate
Это после трех лет активной разработки и использования во тысячах реальных проектов.
Текущая версия NHibernate с которой я работаю - 0.7
Т.е. я долго не обновлял, что должно вобщем то что то говорить о стабильности этого продукта.
Но по случаю перехода со статуса бета на статус стабильной версии (пусть и чисто символически) все таки обновлю свой NHibernate, чего и всем остальным счастливым пользователям сего великолепного программного продукта и желаю.
№ 293 29-09-2005 12:08 | |
Ответ на »сообщение 292« (Ivan Verba)
___________________________
Возможен ли для бизнес-логики на ORM хостинг на EnterpriseServices (COM+) или IIS с гармоничным использованием транзакционных и других сервисов?
NHibernate прекрасно поддерживает декларированные транзакции на EnterpriseServices.
Что касается кеша, то у NHibernate есть свой встроенный кеш первого и второго уровней.
Причем кеш второго уровня может подключаться практически любой, в том числе и кеш IIS.
Вот например описание подключения кеша:
http://bitarray.co.uk/ben/archive/2005/04/09/573.aspx
Вообще сейчас NHibernate довели до версии 1 (т.е. полностью портировали Hibernate 2.1)
И сейчас усиленно работают над документацией.
Так что посещайте NHibernate.org
Доки там уже весьма полные. И есть помимо них большое количество материала на в виде how-to и ответов на вопросы, в том числе и по заданным вами.
Да и форум весьма активен.
№ 292 29-09-2005 08:55 | |
Уважаемые практики ORM!
Подскажите, плиз:
Для построения многопользовательским систем OLTP со Smart(не WEB)-клиентами крайне важно, чтоб ORM, используемый на MiddleTier, мог гармонично интегрироваться в среду сервера приложений. В случае с Hibernate (Java) слышал, что предусмотрено такое "вживление" механизмов транзакций, кэша и других компонентов Hibernate в сервисы J2EE (JTA, EJB, декларативное описание транзакционности при работе в среде сервера приложений и т.п.).
А как обстоят дела у NHibernate, и других ORM под .NET? Возможен ли для бизнес-логики на ORM хостинг на EnterpriseServices (COM+) или IIS с гармоничным использованием транзакционных и других сервисов? Сам "щупал" только хостинг ECO на IIS (ASP.NET WebServices).
№ 291 15-09-2005 01:10 | |
Ответ на »сообщение 290« (Jack Of Shadows)
___________________________
Что интересно ван Россум хочет отказаться от всяких map, lambda и filter в пользу list comprehensions
№ 290 14-09-2005 17:22 | |
LINQ
http://msdn.microsoft.com/vcsharp/future/linqsamples/
Проект Андерса Хейлсберга в Майкрософт.
Добавление языуа запросов в сишарп.
Да да, Select, Where, From :))
Язык запросов работает с любым списком обьектов.
Возвращает естессно список.
Конечно же работает и с любой SQL базой данных.
ВОт простенький примерчик:
int[] numbers = ;
var lowNums =
from n in numbers
where n < 5
select n;
В новом списке lowNums будут уже только qbahs меньше 5.
Вот так фугкциональное программирование проникает в мейнстрим.
Что не может не радовать.
Огорчает только что вмето того чтобы пользоваться нормальными операциями сос списками, которые давно уже стали стандартом в функциональных языках, Андерс пытается использовать громоздкий синтаксис sql (все эти Where и From).
Увы видна ориентация на массу программеров-бд.
Ну ничего, не мытьем так катанием. :))
Лиха беда начало.
Начнем с select, а закончим нормальными операциями со списками.
№ 289 10-08-2005 03:59 | |
№ 288 04-08-2005 15:50 | |
Вышла новай версия db4o 4.6
Добавлено использование нескольких индеков для поиска.
Кроме того доступна ранняя ознакомительная версий 5.0
Там они делают родной язык запросов прямо на c# / java.
№ 287 13-07-2005 12:05 | |
Ответ на »сообщение 286« (Max Belugin)
___________________________
По поводу ООДБ, наблюдаю за db4o.com.
Open Source и бесплатный продукт (GPL). Быстро набирает обороты и популярность.
Уже пользуюется многими крупными компаниями (список на сайте)
У них там есть хорошая статейка на эту тему.
http://www.db4o.com/about/company/backgrounder/
Я жду пока они разьерутся с индексами.
На сегодня db4o для сапроса может использовать только один индекс из всех доступных.
Однако разработчики говорят что работают над этим.
И скоро db4o будет использовать несколько индеков для поиска.
Кроме того в версии 5.0 обещают родной язык запросов прямо на c# или java.
3) We will provide a new Java/C# querying interface,
using the language semantics for querying. This will
be: 100% refactorable, 100% typesafe, 100% compile-time
checked.
(4) We will provide transparent activation so you no longer
have to worry about activating objects.
(5) We will provide commit listeners for C/S so it will be
easier to refresh stale objects in the client cache when
they are modified by other transactions on other clients.
100% typesafe, 100% compile-time checked. - это круто.
№ 286 13-07-2005 02:07 | |
Мне понравилось:
This is a forwarded message
From: Bogdan Maryniuk <bo@bitute.b4net.lt>
To: Russian Python and Zope Mailing List <zopyrus@itconnection.ru>
Subject: [Zopyrus] SQL, ORM, impedance mismatch
===8<==============Original message text===============
On Fri, Jul 08, 2005 at 02:38:25PM +0400, Oleg Broytmann wrote:
> Богдан, а ты правда считаешь, что объектн-ореляционными отображениями не
> следует пользоваться? Особенно из-за impedance mismatch?
[...]
> Или ты считаешь, что РСУБД вообще не следует пользоваться, а только ОО?
Твой вопрос настолько широк, что на него хочется ответить: "Слуш, старина,
а пошли-ка шашлычку вжарим да пивка хляпнем, поговорим об исскустве..." :)
* * *
Теперь об высоком и бороздящих небесное пространство, спутниках.
Надо сначала разобраться с "бумагами", а именно: в чем суть технологического
impedance mistmatch и в чем разница между ОО и реляционного представления. Это
первое.
Второе, надо отметить разницы в парадигмах подходов к решению. ОО парадигма
состоит в том, что объекты взаимодействуют и пересекаются во взаимоотношениях
и родстве, в то время, как реляционная парадигма звязывает данные в таблицах.
Именно эта фундаментальная разница явно выражает далеео не идеальную
комбинацию между объектными и реляционными технологиями.
Третье, надо признать, что использование двух противоположных направлений и
подходов, *всегда* будет требовать компромиссов, альтернатив, взаимоутерь,
взаимоуступлений и выборов. Посему, чтобы успешно двигаться в связке OO/R,
нужны швы, прослойки и разные "переходники", которые скапливают в себе все эти
разногласия. Чем "плотнее" ска
По-сути, object/relational -- это разговор двух сторон через переводчика.
Примеры такого разговора был реальной историей в Японском Посольстве в США во
времена Билла Клинтона с Йошииро Мори. А было, значит, так. Мори не знал
английского. Поэтому инструктор и говорит ему: когда Вы будете рукопожимать
Биллу руку, скажите "How are you". Тогда мр. Клинтон скажет "I'm fine, and
you?". Тогда скажите "Me too". После этого, мы, переводчики продолжим
разговор.
Выглядит, как-бы просто. Но правда в том, что Мори в самый момент рукопожития
спросил: "WHO are you?" вместо "How are you?". Клинтон, легко шокированный
таким поворотом дел, начал разруливать ситуацию, ну и сказал: "Well, I'm
Hilary's husband, ha-ha....". На что Мори послушно ответил: "Me too, ha-ha..."
Говорят, после этого воцарилась длинная тишина в комнате приема. :-)
С другой стороны, объектный фейс предоставляет быстрый и удобный путь получать
конкретные данные, вместо пытаться вытаскивать целые паутины из множества
таблиц, разбирая "пинцетом" куда что подставить. Не надо писать отвратительные
SQL'ы с его отвратительным синтаксисом, не надо думать о том, *как* вытащить
stuff. Просто берешь и работаешь. Просто. Быстро. Прозрачно интегрированно.
Это есть OODBMS, которых не так и много на рынке и "переходная модель" ORDBMS,
которых больше.
Подведя итоги вышесказанного, сначала необходимо для себя четко уяснить
"что мне конкретно надо", а также "как оно научно правильно" и "не пошлет-ли
Бог толстую молнию на мою голову за это?".
Теперь, говоря об SQLObject, это уже разряд *имплементации* какого-то
конкретно выбранного стратегического и технологического направления, а именно,
прикрутить RDBMS к объектному представлению. И поэтому, твой вопрос не сколько
ODBMS vs ORDBMS vs RDBMS или "Impedance Mistmatch", а сколько конкретный вопрос
хорошо или плохо использовать эмулятор ORDBMS/ODBMS в среде RDBMS. А отвечать
на это я никак уж не подпишусь. Во-первых, существует море литературы (причем
часто противоречащей и друг друга упрекающей). Во-вторых, я гоняю Oracle.
SQLObject там не работает. А также сильно играют роль факторы вкуса, привычек,
взглядов, мнений, практических убеждений и пр. И наконец, сильно зависит от
всего проекта.
Посему, мой ответ на самом деле совет, и был-бы чисто общий:
Keep it simple, uniform and right with no diversity of zoo.
А возможность написать еще один очередной субъективизм "Why SQLObject" или
"Why not RDBMS" предоставлю другим. :)
--
?
EMACS :- Esc Meta Alt Control Shift
_______________________________________________
?њ???o?Ё Џ??????Python ?Zope: http:
Zopyrus@itconnection.ru
http:
Zope FAQ: http:
Python FAQ: http:
===8<===========End of original message text===========
<<<... | 295—286 | 285—276 | ...>>> Всего сообщений в теме: 305; страниц: 31; текущая страница: 2
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|