2010-09-29 4 views
10

Per un ERP di base (DB con circa 150 tabelle, app WinForm) che verrebbe eseguito su una rete LAN classica (1 server e fino a 25 client) si consiglia EF4 o DataSet?Entity framework 4 o DataSet?

LINQ2SQL NON è un'opzione!

+0

Quando si scelgono queste cose, è necessario conoscere i requisiti di prestazione e il modo in cui i dati vengono archiviati/disposti nel DB .. è possibile condividere una parola o due su Performance e DB Table Structure? – Nix

+0

È un'applicazione desktop classica (più OLTP/meno OLAP) con database MSSQL2008X nel backend (la maggior parte della logica è costruita in stored procedure e relazioni) su vendite, acquisti, ordini, inventario, produzione ma su piccola scala! – EmirZ

+0

È possibile utilizzare stored procedure con EF4: mappare gli SP alla creazione dell'oggetto. Ma anche se non vuoi usare EF4, resisterei comunque all'uso dei DataSet. Gli oggetti sono molto più facili da gestire. –

risposta

6

EF4. DataSet è una vecchia tecnologia, EF è in molti modi una reazione ai problemi con i set di dati.

Di recente abbiamo creato un'app, in cui parte delle operazioni CRUD su 80 tabelle. Prima di EF avremmo usato Enterprise Library e DataSet. Avremmo stimato 1 ora per tavolo per scrivere l'operazione CRUD e il test unitario. Con EF questo è stato sostituito principalmente con codice generato automaticamente.

+0

Hai test di unità/integrazione per il tuo codice EF CRUD? –

+1

@Michael Maddox, sì, è in realtà un test di integrazione dal momento che colpisce il database. Lo inseriamo in un ambito di transazione in modo che non cambi il database. Fondamentalmente controllano che nessuno cambi gli script che creano il database senza aggiornare anche il modello EF. Con un primo approccio al codice questo sarebbe un po 'diverso. –

+0

Quanti dischi caricate? È un'opzione valida per caricare 20000 record (righe) in una griglia con struttura di entità? – surfmuggle

4

È possibile scegliere EF in base alla logica dell'applicazione, EF può darvi più opzioni ma penso che non possiamo decidere in base al numero di tabelle.

Controllare questo articolo che vi aiuterà a decidere:

Why use the Entity Framework?

controllare anche questo bel video: Data Development GPS: Guidance for Choosing the Right Data Access Technology for Your Application Today

+0

videoLink è morto, vai qui per un nuovo aggiornamento: http: //channel9.msdn.it/Eventi/TechEd/NorthAmerica/2010/DEV324 – ruedi

2

che è una domanda a risposta abbastanza aperto con non molta informazioni di supporto. Ci sono un sacco di fattori coinvolti in questo tipo di decisione. Sta solo sviluppando o una squadra. Ad ogni modo, che esperienza hai con EF? Se non hai molta esperienza e c'è una tempistica ristretta, potrebbe essere più veloce finire il lavoro con Dataset.

A parte questi tipi di domande, sono un grande fan di ORM e penso che a lungo andare la vita sia più facile. Ma ha una curva di apprendimento se non si ha familiarità con alcuni concetti e in particolare con i trucchi (come i problemi Select N + 1).

+0

Io sono l'unico sviluppatore ... e pls leggi il commento sopra! – EmirZ

+0

È un'applicazione desktop classica (più OLTP/meno OLAP) con database MSSQL2008X nel backend (la maggior parte della logica è costruita in stored procedure e relazioni) su vendite, acquisti, ordini, inventario, produzione ma su piccola scala! – EmirZ

2

Anche se non si seleziona EF4, i DataSet non sono l'unica opzione.

I'd molto più lavoro con POCOs di DataSet.

Gli oggetti sono molto più facili da manipolare rispetto ai DataSet. Ad esempio, la convalida dei dati in un POCO è banale e facilmente gestibile. In un DataSet non è né l'uno né l'altro.