Entity Framework è pronto per la produzione? [chiuso]

10

Sto esaminando Entity Framework per un nuovo progetto che sto per intraprendere e, come parte della mia ricerca, sto chiedendo ad alcuni professionisti del settore se è stabile e pronto per l'implementazione del "mondo reale".

In corso è:

  • FE
  • NHibernate
  • DevExpress XPO

Ho già una grande esperienza con XPO, ma non ne sono particolarmente soddisfatto.

    
posta Steven Evers 27.10.2010 - 18:58
fonte

7 risposte

8

Sì, ma con alcuni avvertimenti:

  • È completamente supportato da Microsoft e ha una community in crescita, ma essendo più recente del suo più vicino concorrente, ibernazione, non ha ancora una comunità abbastanza matura.

  • Oltre ad avere una comunità meno matura, ci saranno momenti in cui una funzione è disponibile con EF4 ma documentata appena ; oppure EF4 genererà eccezioni che Google non può aiutarti con

  • È completo se usato come previsto da Microsoft, ma secondo la mia esperienza può essere piuttosto difficile eseguire il retrofit in un sistema esistente. Idealmente lo userai in uno scenario greenfield con uno stack Microsoft al 100%. È certamente abbastanza flessibile da mescolarsi con altri sistemi, ma farlo aumenta notevolmente la difficoltà.

Tuttavia, per reiterare il punto principale, è completo e abbastanza stabile per l'uso di produzione.

Una cosa chiave da evidenziare, che sembra ovvia ma spesso trascurata fino a provocare dolore, è che un ORM lavora per mappare dal paradigma relazionale al paradigma OO. Se uno o l'altro di questi livelli non segue le regole del rispettivo paradigma, ti sentirai ferito ulteriormente.

Questo può andare in entrambe le direzioni: se sei esperto nel paradigma relazionale / set-based di SQL e OOP, allora l'ORM lascerà che i due si mescolino come burro. Se il tuo database sembra essere OO e il tuo codice OO sembra essere basato su record, allora YMMV.

    
risposta data 27.10.2010 - 19:22
fonte
5

Abbiamo utilizzato EF in diverse applicazioni di produzione. Abbiamo anche NHibernate in diverse app di produzione. Il commento di STW secondo cui EF funziona meglio "se usato come Microsoft intende" è certamente vero. È anche vero per NHibernate che funziona meglio se usato seguendo gli schemi che il team di NHibernate intendeva. Non ho conoscenza o esperienza con XPO.

Non mi pento di aver messo in produzione NHibernate.
Non mi pento di mettere Entity Framework in produzione.

Uno dei fattori guida per l'utilizzo di EF è stata l'integrazione con LINQ. So che anche NHibernate ha lavorato molto con LINQ ma non ha ancora avuto il tempo di studiarlo.

    
risposta data 27.10.2010 - 21:15
fonte
3

Utilizziamo EF4.1 con l'approccio Code First per il nostro progetto web e, come affermato in precedenza, mantenendo l'utilizzo come previsto da Microsoft, ti manterrà un sacco di problemi.

Si può notare tuttavia che il sistema non è ancora maturo e lo dico perché:

  1. Il comportamento cambia ancora molto (rispetto a CTP5 a 4.1)
  2. Il generatore LINQ to Entities è in grado di gestire solo tipi di base (Int, String, il lotto)
  3. Alcune cose non hanno funzionato del tutto intuitivamente quando si tenta di unire in set di dati esistenti
    1. Non ti consente di creare solo definizioni di tabelle per determinati dbsets
    2. I campi di mappatura come i tempi di consegna richiedono Google.
  4. Vedi altri problemi noti
risposta data 02.06.2011 - 18:46
fonte
2

In realtà non ho usato lo stack completo, ma lo usiamo in modo frammentario nel nostro prodotto e sembra abbastanza maturo, anche se abbiamo dovuto adattare alcuni pezzi per i nostri bisogni.

    
risposta data 27.10.2010 - 21:17
fonte
0

Lo penserei. Sto usando EF4 code-first (CTP) per lo sviluppo di un'applicazione web multi-tenant.

    
risposta data 27.10.2010 - 19:02
fonte
-1

Penso / spero di sì ... Sto avviando un progetto con EF 4 e il nuovo approccio Model-First ...

Per quello che ho visto EF 4 è molto robusto e completo che la prima versione ... direi di andare a farlo, so che sto andando:)

    
risposta data 29.10.2010 - 17:32
fonte
-1

Sì, tuttavia è necessario allocare risorse per l'aggiornamento e la ripetizione della prova dell'applicazione quando vengono pubblicati gli aggiornamenti (come con qualsiasi altro framework).

    
risposta data 12.01.2012 - 16:58
fonte

Leggi altre domande sui tag