ORM для .NET

kokoc88

Кто какие ORM использовал в коммерческих проектах? Насколько успешно? Есть ли альтернативы NHibernate, кроме MSEF?

6yrop

тебе именно ORM нужен? У нас в паре новых небольших проектах LINQ to SQL используется, вроде нормальные отзовы от разработчиков, ну там пришлось заменить генератор классов (тот что генерит классы по схеме БД) на свой. Еще некоторые заморочки с использованием этих классов в качестве DTO для не веб клиента (хотя может и не совсем правильно использовать их в качестве DTO но тоже вроде все решаемо.
LINQ to SQL это не ORM, а ROM. Но зато он простой и не отягощен ни чем. Ну а для реализации логики в ООП есть достаточно приемов. LINQ to SQL решает задачу работы с базой данных, т.е. он предоставляет уже объекты, прикрутить логику к объектам в оперативной памяти — здесь уже все приемы ООП работают. Это мое, имхо. И это один из пяти рабочих вариантов, указанных в известной статье "Вьетнам компьютерной науки".
LINQ to SQL еще не все продумано, он немного сыроват. Но уж лучше бороться с этой сыростью, чем с NHibernate.

FRider

NHibernate, в целом успешно. Основная проблема - работа с большими массивами данных.

6yrop

MSEF
это не для людей

kokoc88

LINQ to SQL это не ORM
Я не знаю, как можно жить без SchemaExport и SchemaUpdate. У меня проект на 6 месяцев. Я не могу писать свои генераторы, конвертеры и прочее.

6yrop

SchemaExport и SchemaUpdate
ты про управление схемой базы? Если да, то у последней студии специально есть тип проекта для этого.
У нас генератор человек написал буквально за один день. Потом некоторые изменения вносились, но из 6 месяцев на это можно найти время. За основу взяли какой то генератор с codeplex.com.

kokoc88

ты про управление схемой базы? Если да, то у последней студии специально есть тип проекта для этого.
С NHibernate мне можно просто поставить новую версию заказчику и обновить БД программно.
У нас генератор человек написал буквально за один день. Потом некоторые изменения вносились, но из 6 месяцев на это можно найти время. За основу взяли какой то генератор с codeplex.com.
У нас буквально за один день никто его не напишет.

kokoc88

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

6yrop

С NHibernate мне можно просто поставить новую версию заказчику и обновить БД программно.
да, согласен, это пока майкрософт не продумала. В принципе тулза генерит инкриментальный скрипт. Но на сколько я слышал не все там гладко, у нас на этих проектах тот кто диплоит имеет доступ к продакшен базе :).

6yrop

У меня другая задача - генерировать схему из имеющихся объектов.
Если с этим уже определились, то, да, LINQ to SQL вам не подходит. Он исповедует обратную идеологию — схема БД первична, классы генерятся по схеме БД.
Оставить комментарий
Имя или ник:
Комментарий: