Лучшая ORM для C#

Суть задачи в следующем: требуется хранить в базе данных информацию о состоянии объекта (например, следим за задвижкой на насосной станции второго подъема). Параметров по наблюдаемому агрегату может быть много — это температуры, вибрации, значения токов, процент поворота. Кроме того, необходимо сохранять так называемые временные «слепки» (значения всех параметров) состояния агрегата с заданной частотой, например раз в минуту, или по событию (при открытии задвижки), чтобы потом иметь возможность анализа каких-либо нештатных ситуаций.
Хочется работать с данными как с объектами на самом высоком уровне, имея функции запроса и записи их состояния без углубленного погружения в SQL. Подумал об использовании ORM, так как по моему мнению они именно для этого и предназначены. В общем, посоветуйте какую-нибудь стоящую систему.
  • Вопрос задан
  • 37545 просмотров
Решения вопроса 1
VasilioRuzanni
@VasilioRuzanni
Интересно, но именно по поводу ORM для .NET я точно могу сказать, что лучшее (действительно лучшее), чем выдавалось пользоваться — это LightSpeed от MindScape. В первую очередь потому, что при проектировании я следую парадигме Domain-Driven Design, а там она поддерживается на 5+, а также благодаря потрясной скорости работы.
Но у него есть один глобальные недостаток — он небесплатен (Express-версию я не рассматриваю всерьез, ограничение в 8 объектов модели слишком сковывает).

Далее — любой, кто подходит к этому вопросу, непременно сталкивается с развилкой — Entity Framework или NHibernate. Здесь уже дело вкуса, личных предпочтений, и используемого подхода к разработке. NHibernate намного более матерый и «готовый», нежели EF, но у EF есть визуальные дизайнеры, и прочие MS-овские вкусности. NHibernate, как уже было сказано выше, лучше использовать с Fluent-NHibernate, если вы конечно не любитель писать тонны XML :)

Кроме того, если вам нужно использование паттерна ActiveRecord (очень может быть применимо в вашем случае) — обязательно смотреть NHibernate и SubSonic.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
XaocCPS
@XaocCPS
выше рекомендуют NHibernate, но я считаю, что для автора, который еще не знаком с ORM, NHibrenate — избыточна. Автору рекомендую использовать Entity Framework 4, у которого есть удобнейший визуальный редактор и полная поддержка LINQ (в чем хромает NHibernate).
Ответ написан
Комментировать
Morgun
@Morgun
Пользовался NHibernate, Entity Framwork, Linq2Sql, Gentle.Net. ИМХО NHibernate на текущий момент самая гибкая и самая продвинутая ORM. Сразу рекомендую использовать ее в связке с FluentNhibernate. ENtityFramework постепенно подбирается по возможностям к NHibernate, так что если есть желание использовать что-нибудь непосредственно от MS используйте его.
Ответ написан
kosmonaFFFt
@kosmonaFFFt
Senior Java Developer.
NHibernate.
Т. к. пользовался только им, другой посоветовать не могу… Еще можно попробовать EntityFramework, но мне в нем, после использования NHibernate, не понравилась конфигурация отображения объектов на базу.
Ответ написан
Комментировать
garifzyanov
@garifzyanov
Наверно тут все же от задачи сильно зависит ответ. Для небольших проектов крайне советую BLToolkit. Так же рекомендую сайт ormbattle.net
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы