Il codice First non è adatto per applicazioni su larga scala. Lo sviluppo di app su larga scala è molto grande.
In genere il ciclo di vita della tua app aziendale è come,
- La versione 1 è in produzione
- La versione 2 è in beta
- La versione 3 è in sviluppo attivo
- La versione 4 è in programma.
E ci sono altri ponti di comunicazione tra le applicazioni, alcune attività pianificate, l'integrazione di terze parti, servizi Web per alcuni diversi dispositivi di comunicazione come dispositivi mobili, ecc.
Alla fine Code First utilizza ObjectContext di Entity Model, la generazione di EDMX EF precedente e l'utilizzo di ObjectContext con EntityObject sono stati davvero sufficienti per tutto. È possibile personalizzare facilmente il modello di testo per generare codice. Il metodo di rilevamento delle modifiche è più lento con l'implementazione di ObjectContext, ma invece di generare proxy, il team EF avrebbe potuto facilmente migliorare la velocità di rilevamento delle modifiche anziché reinventare prima il codice.
Migrazione automatizzata
La migrazione automatizzata suona bene in teoria, ma impossibile in pratica una volta che vivi. È buono solo per la prototipazione, sviluppando alcune demo veloci.
Code First Migration non è affatto adatto in tale sistema. La versione 1 e la versione 2 probabilmente parlano allo stesso database. La versione 3 e la versione 4 sono in genere in fase di gestione temporanea e hanno database diversi.
Prima il database
Database First è un approccio pratico, è facile confrontare, visualizzare e gestire gli script SQL. I DBA possono lavorare facilmente.
Modelli di testo
Abbiamo creato i nostri modelli di testo per eseguire query e creare EDMX e ObjectContext con una piccola implementazione personalizzata che risolve i problemi di prestazioni. Esistono più applicazioni con più versioni che comunicano senza problemi allo stesso database.
Per me, fare clic destro sul file .tt e fare clic su "Esegui strumento personalizzato" è di gran lunga il passo più veloce e più semplice quindi scrivere classi, configurare e creare un modello.