Czy Entity Framework jest gotowy do produkcji? [Zamknięte]


10

Szukam Entity Framework dla nowego projektu, który zamierzam podjąć i w ramach moich badań pytam niektórych specjalistów z branży, czy jest stabilny i gotowy do wdrożenia w „prawdziwym świecie”.

W biegu jest:

  • EF
  • NHibernate
  • DevExpress XPO

Mam już duże doświadczenie z XPO, ale nie jestem z tego szczególnie zadowolony.

Odpowiedzi:


8

Tak, ale z pewnymi zastrzeżeniami:

  • Jest w pełni obsługiwany przez Microsoft i ma rosnącą społeczność - ale jest nowszy niż jego najbliższy konkurent, nHibernate, wciąż nie ma tak dojrzałej społeczności.

  • Wraz z mniej dojrzałą społecznością będą chwile, gdy funkcja będzie dostępna z EF4, ale ledwo udokumentowana; lub EF4 zgłosi wyjątki, w których Google nie może ci pomóc.

  • Jest w pełni funkcjonalny, gdy jest używany zgodnie z intencjami Microsoft, ale z mojego doświadczenia może być dość trudny do modernizacji w istniejącym systemie. Idealnie będziesz go używać w scenariuszu typu greenfield ze 100% stosem Microsoft. Z pewnością jest wystarczająco elastyczny, aby ingerować w inne systemy, ale znacznie zwiększa to trudność.

Jednak, aby powtórzyć główny punkt, jest on kompletny i wystarczająco stabilny do użytku produkcyjnego.


Jedną z kluczowych rzeczy, na które należy zwrócić uwagę, co wydaje się oczywiste, ale często jest pomijane, dopóki nie spowoduje bólu, jest to, że ORM działa w celu odwzorowania paradygmatu relacji na paradygmat OO. Jeśli któryś z tych poziomów nie będzie przestrzegał zasad odpowiedniego paradygmatu, poczujesz dodatkowe cierpienie.

Może to przebiegać w obie strony - jeśli jesteś dobrze zaznajomiony z paradygmatem SQL i OOP opartym na relacjach / zestawach, ORM pozwoli obu mieszać się jak masło. Jeśli twoja baza danych wygląda na to, że chce być OO, a twój OO-code wygląda na oparty na rekordach, to YMMV.


+1: Dzięki za informację. Na szczęście projekt jest projektem typu greenfield prawie w całości na stosie .NET (wciąż debatuje między serwerem mysql a sql), i najpierw będę modelował domenę (i mam nadzieję, że wygeneruję strukturę tabeli)
Steven Evers,

@SnOrfus: FWIW Ostatnio zacząłem używać EF na MySQL i naprawdę mi się to podoba.
Eric King,

5

Używamy EF w kilku aplikacjach produkcyjnych. Mamy również NHibernate w kilku aplikacjach produkcyjnych. Komentarz STW, że EF działa najlepiej „gdy jest używany zgodnie z intencjami Microsoft”, jest z pewnością prawdziwy. Prawdą jest również, że NHibernate działa najlepiej, gdy jest stosowany zgodnie ze wzorami, które zamierzał zespół NHibernate. Nie mam wiedzy ani doświadczenia z XPO.

Nie żałuję wprowadzenia NHibernate do produkcji.
Nie żałuję wprowadzenia Entity Framework do produkcji.

Jednym z czynników napędzających użycie EF była integracja z LINQ. Wiem, że NHibernate wykonał również dużo pracy z LINQ, ale jak dotąd nie miałem czasu, aby to zbadać.


Praca z obu jest to świetny sposób, aby dowiedzieć się, jak pracować z obu. To trochę jak nauka zarówno VB.NET, jak i C # - zadajesz pytania, gdy widzisz różnice, a zadawanie tych pytań znacznie poprawia twoje zrozumienie w końcu.
STW,

3

Używamy EF4.1 z podejściem Code First w naszym projekcie internetowym i, jak już wcześniej wspomniano, utrzymanie użytkowania zgodnie z zamierzeniami Microsoft pozwoli uniknąć wielu problemów.

Można jednak zauważyć, że system nie jest jeszcze naprawdę dojrzały i mówię to, ponieważ:

  1. Zachowanie wciąż bardzo się zmienia (w porównaniu z CTP5 do 4.1)
  2. Generator LINQ to Entities obsługuje tylko podstawowe typy (Int, String, lot)
  3. Niektóre rzeczy nie działały całkowicie intuicyjnie podczas próby scalenia w istniejących zestawach danych
    1. Nie pozwala na tworzenie definicji tabel tylko dla niektórych zestawów danych
    2. Odwzorowanie pól, takich jak czasy danych, wymaga googlingu.
  4. Zobacz inne znane problemy

2

W rzeczywistości nie wykorzystałem pełnego stosu, ale używamy go fragmentarycznie w naszym produkcie i wydaje się dość dojrzały, chociaż musieliśmy dostosować niektóre elementy do naszych potrzeb.


0

Tak myślałbym. Używam kodu EF4 jako pierwszy (CTP) do tworzenia aplikacji sieci Web dla wielu dzierżawców.


+1 - Tak, przeprowadziłem coaching w zespole, który intensywnie wykorzystał go w bardzo dużym projekcie korporacyjnym i działał całkiem dobrze. Tak było z pierwszą wersją, a nie najnowszą. Jestem pewien, że korzystanie z najnowszej wersji jest w 100% bezpieczne.

Nie wiem, w jaki sposób możesz być w 100% pewien oprogramowania, którego w rzeczywistości nie uruchomiłeś w środowisku produkcyjnym.
Jeremy

-1

Tak myślę / mam nadzieję ... Rozpoczynam projekt od EF 4 i nowego podejścia do Model-First ...

To, co widziałem, EF 4 jest o wiele solidne i kompletne, że pierwsza wersja ... Powiedziałbym, że idź, wiem, że idę :)


-1

Tak, jednak należy przydzielić zasoby na aktualizację i ponowne przetestowanie aplikacji, gdy pojawią się aktualizacje (jak w każdym innym środowisku).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.