Сведения о вопросе

Oleksandr

19:56, 21st August, 2020

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

Просмотров: 489   Ответов: 5

Суть задачи в следующем: требуется хранить в базе данных информацию о состоянии объекта (например, следим за задвижкой на насосной станции второго подъема). Параметров по наблюдаемому агрегату может быть много — это температуры, вибрации, значения токов, процент поворота. Кроме того, необходимо сохранять так называемые временные «слепки» (значения всех параметров) состояния агрегата с заданной частотой, например раз в минуту, или по событию (при открытии задвижки), чтобы потом иметь возможность анализа каких-либо нештатных ситуаций.
Хочется работать с данными как с объектами на самом высоком уровне, имея функции запроса и записи их состояния без углубленного погружения в SQL. Подумал об использовании ORM, так как по моему мнению они именно для этого и предназначены. В общем, посоветуйте какую-нибудь стоящую систему.



  Сведения об ответе

baggs

04:26, 10th August, 2020

Интересно, но именно по поводу ORM для .NET я точно могу сказать, что лучшее (действительно лучшее), чем выдавалось пользоваться — это LightSpeed от MindScape. В первую очередь потому, что при проектировании я следую парадигме Domain-Driven Design, а там она поддерживается на 5+, а также благодаря потрясной скорости работы.
Но у него есть один глобальные недостаток — он небесплатен (Express-версию я не рассматриваю всерьез, ограничение в 8 объектов модели слишком сковывает).

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

Кроме того, если вам нужно использование паттерна ActiveRecord (очень может быть применимо в вашем случае) — обязательно смотреть NHibernate и SubSonic.


  Сведения об ответе

FAriza

08:59, 18th August, 2020

выше рекомендуют NHibernate, но я считаю, что для автора, который еще не знаком с ORM, NHibrenate — избыточна. Автору рекомендую использовать Entity Framework 4, у которого есть удобнейший визуальный редактор и полная поддержка LINQ (в чем хромает NHibernate).


  Сведения об ответе

+-*/

19:08, 8th August, 2020

Пользовался NHibernate, Entity Framwork, Linq2Sql, Gentle.Net. ИМХО NHibernate на текущий момент самая гибкая и самая продвинутая ORM. Сразу рекомендую использовать ее в связке с FluentNhibernate. ENtityFramework постепенно подбирается по возможностям к NHibernate, так что если есть желание использовать что-нибудь непосредственно от MS используйте его.


  Сведения об ответе

pumpa

05:08, 26th August, 2020

NHibernate.
Т. к. пользовался только им, другой посоветовать не могу… Еще можно попробовать EntityFramework, но мне в нем, после использования NHibernate, не понравилась конфигурация отображения объектов на базу.


  Сведения об ответе

padenie

12:37, 2nd August, 2020

Наверно тут все же от задачи сильно зависит ответ. Для небольших проектов крайне советую BLToolkit. Так же рекомендую сайт ormbattle.net


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться