Чи готовий Entity Framework до виробництва? [зачинено]


10

Я розглядаю Entity Framework для нового проекту, який я збираюся взяти на себе, і в рамках свого дослідження над ним я запитую у деяких галузевих фахівців, чи є він стабільним і готовим до реалізації «реального світу».

У бігу:

  • EF
  • NHibernate
  • DevExpress XPO

У мене вже великий досвід роботи з XPO, але я не особливо задоволений цим.

Відповіді:


8

Так, але з деякими застереженнями:

  • Він повністю підтримується Microsoft і має зростаюче співтовариство, але, будучи новішим, ніж його найближчий конкурент, nHibernate, він все ще не має такої зрілої спільноти.

  • Поряд із спільнотою з менш зрілим віком, буде час, коли функція доступна з EF4, але ледве документально підтверджена; або EF4 видасть винятки, з якими Google не може вам допомогти.

  • Повнофункціональний при використанні, як Microsoft має намір, але, на мій досвід, може бути досить складно перевтілитись у існуючу систему. В ідеалі ви будете використовувати його в сценарії Greenfield зі 100% стеком Microsoft. Це, безумовно, досить гнучко для взаємодії з іншими системами, але це значно збільшує труднощі.

Однак, щоб ще раз зазначити головний момент, він є повним і досить стабільним для використання у виробництві.


Однією з головних речей, яка здається очевидною, але її часто не помічають, поки вона не заподіює біль, - це те, що ОРМ працює над тим, щоб відобразити від реляційної парадигми до парадигми ОО. Якщо будь-який із цих рівнів не дотримується правил відповідної парадигми, тоді ви будете відчувати біль.

Це може піти обома способами - якщо ви добре розбираєтесь у реляційній / набірній парадигмі SQL та OOP, ORM дозволить двом переплутатися, як вершкове масло. Якщо ваша база даних виглядає так, що вона хоче бути OO, а ваш OO-код виглядає так, що він хоче базуватися на записі, то YMMV.


+1: Дякую за інформацію. На щастя, проект є «зеленим полем» майже повністю у стеці .NET (все ще дискутується між mysql та sql сервером), і я буду моделювати домен спочатку (і, сподіваюся, генеруючи структуру таблиці)
Стівен Еверс

@SnOrfus: FWIW Я нещодавно почав використовувати EF поверх MySQL, і мені дуже подобається.
Ерік Кінг

5

Ми використовували EF у кількох виробничих програмах. У нас також є NHibernate в декількох виробничих додатках. Зауваження STW про те, що EF працює найкраще "у випадку, коли Microsoft має намір", безумовно, правдивий. Це стосується також NHibernate, що він найкраще працює, коли використовується, дотримуючись зразків, які задумала команда NHibernate. Я не маю ні знань, ні досвіду роботи з XPO.

Я не шкодую, що NHibernate став виробником.
Я не шкодую за те, що Entity Framework вийшов у виробництво.

Одним із рушійних факторів використання EF була інтеграція з LINQ. Я знаю, що NHibernate також багато працював з LINQ, але ще не встиг дослідити це.


Працюючи з обома це відмінний спосіб , щоб дізнатися , як працювати з обома. Це трохи схоже на навчання як VB.NET, так і C # - ви ставите питання, коли бачите розбіжності, а запитання цих питань значно покращує ваше розуміння зрештою.
STW

3

Ми використовуємо EF4.1 з підходом Code First для нашого веб-проекту, і, як було зазначено раніше, збереження використання, як Microsoft задумав, позбавить вас від багатьох проблем.

Однак можна помітити, що система ще не справді дозріла, і я кажу це тому, що:

  1. Поведінка все ще сильно змінюється (порівняно з CTP5 до 4.1)
  2. Генератор LINQ to Entities здатний обробляти лише основні типи (Int, String, lot)
  3. Деякі речі не спрацювали повністю інтуїтивно, коли ви намагаєтеся об'єднатись у існуючі набори даних
    1. Це не дозволяє створювати визначення таблиць лише для певних dbsets
    2. Для картографування полів, таких як datetimes, потрібен Googling.
  4. Дивіться інші відомі проблеми

2

Насправді я не використовував повний стек, але ми використовуємо його частину в нашому продукті, і він здається досить зрілим, хоча нам довелося адаптувати деякі частини для наших потреб.


0

Я б так вважав. Я використовую код коду EF4 (CTP) для розробки веб-додатків для багатьох орендарів.


+1 - Так, я тренувався в команді, яка інтенсивно використовувала його у дуже великому проекті підприємства, і він працював досить добре. Це було з першою версією, не з останньою. Тож я впевнений, що на 100% безпечніше використовувати останню версію.

Я не знаю, як ви можете бути на 100% впевнені в будь-якому програмному забезпеченні, яке ви насправді не працювали у виробничих умовах.
Джеремі

-1

Я думаю / сподіваюся, що так ... Я починаю проект із EF 4 та новим підходом Model-First ...

Що я бачив, EF 4 є набагато надійнішим і функцією завершеним, що перша версія ... Я б сказав, що я піде на це, я знаю, що йду :)


-1

Так, проте слід виділити ресурси для оновлення та повторного тестування програми, коли з'являються оновлення (як і будь-яка інша рамка).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.