Code First non è adatto per applicazioni su larga scala. Il turnaround di sviluppo di app su larga scala è enorme.
Normalmente il ciclo di vita della tua app aziendale è come
- La versione 1 è in produzione
- La versione 2 è in versione beta
- La versione 3 è in sviluppo attivo
- La versione 4 è in fase di pianificazione.
E ci sono altri ponti di comunicazione Cross Application, alcune attività programmate, alcune integrazioni di terze parti, servizi Web per alcuni dispositivi di comunicazione diversi come il cellulare ecc.
Eventualmente Code First utilizza ObjectContext di Entity Model, EF di generazione maggiore di EDMX e l'utilizzo di ObjectContext con EntityObject era veramente sufficiente per tutto. È possibile personalizzare facilmente il modello di testo per generare codice. Il metodo Detect Changes è 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 invece di reinventare prima il codice.
Migrazione automatizzata
La migrazione automatizzata suona bene in teoria, ma è praticamente impossibile una volta che vai in diretta. È utile solo per la prototipazione, sviluppando alcune demo veloci.
Code First Migration non è affatto adatto in tale sistema. Molto probabilmente la versione 1 e la versione 2 parlano allo stesso database. La versione 3 e la versione 4 di solito sono in scena e hanno un database differente.
Database prima
Database First è un approccio pratico, è facile confrontare e visualizzare e mantenere gli script SQL. Gli amministratori di database possono lavorare facilmente.
Modelli di testo
Abbiamo creato i nostri modelli di testo per interrogare e creare EDMX e ObjectContext con una piccola implementazione personalizzata che risolva i problemi di prestazioni. Esistono più applicazioni con più versioni che comunicano allo stesso database senza problemi.
Per me, fare clic con il tasto destro sul file .tt e fare clic su "Esegui strumento personalizzato" è di gran lunga il passo più semplice e veloce, quindi scrivere classi, configurare e creare il modello.