2012-03-15 21 views
5

Attualmente sto esaminando i possibili modi in cui possiamo rifattorizzare il nostro codebase, per semplificare il lavoro.Migrazione da DataSet a EntityFramework

L'applicazione è un'app di Asp.Net Webforms abbastanza grande, con tutte le impostazioni/recupero dati che avvengono tramite i servizi Web. Attualmente, questi servizi Web restituiscono DataSet, contenenti 1 o più tabelle restituite da stored procedure. Il codebase è abbastanza strettamente connesso, con il code-back ASP che chiama i WebServices in più punti e la maggior parte della logica aziendale che si verifica nel code-behind o nelle Stored Procedures.

Per un po 'di tempo, abbiamo esaminato i possibili modi per aggiornare l'applicazione e modernizzare il codice base. Non possiamo (e non vogliamo) riscrivere l'intera app, ma sarebbe bello se potessimo iniziare a spostarlo, un po 'alla volta, verso una nuova architettura. Ho esaminato l'architettura MVP, che sembra una buona corrispondenza con la nostra architettura attuale, non comporterà troppe riscritture, ma dovrebbe comunque produrre un codice più verificabile (un altro obiettivo: al momento non abbiamo automatizzato test).

Mi piacerebbe sapere, però, se qualcuno ha alcuni suggerimenti/informazioni/articoli sul passaggio da DataSet a EntityFramework. Ritengo che ciò comporterebbe il maggiore vantaggio per noi, dal momento che ci permetterebbe di modellare i nostri dati e testarli molto più facilmente. Sfortunatamente, non sono ancora riuscito a trovare nulla online su questo tipo di migrazione. Il nostro design di database è abbastanza buono (per fortuna), ma dovremmo lavorare con DataSet e EntityFramework per un po 'fino a quando non ci libereremo di DataSet - non c'è modo di poterlo fare tutto in una volta.

Qualcuno in grado di dare consigli su questo?

+1

Continueresti a utilizzare i servizi Web per restituire i dati attualmente presenti nel modulo DataSet? Oppure la tua app toccherà direttamente il database attraverso EntityFramework? –

+0

@John Penso che avremmo ancora bisogno di usare i servizi Web in qualche modo. Utilizziamo gli stessi servizi Web per il recupero dei dati in Microsoft InfoPath, che non possiamo ancora eliminare. –

risposta

3

Sembra che sia necessario risolvere due problemi separati.

  1. Come si fa a fare uso di EntityFramework all'interno servizio web (s).
  2. In secondo luogo, come si passano questi risultati da e verso i servizi Web.

Per il n. 1, possiamo solo indovinare i dettagli rilevanti della vostra attuale implementazione. Tuttavia, è probabile che si tratti di una modifica comune alla quale è possibile cercare e trovare aiuto.

Per # 2, probabilmente si desidera definire una serie di oggetti business che vanno avanti e indietro. Il servizio Web potrebbe tradurre tra loro e gli oggetti EntityFramework. (Si potrebbe presumibilmente passare gli oggetti EF direttamente, ma potrebbero esserci problemi a seconda del proprio scenario.)

+0

Sono curioso di sapere a cosa ti riferisci con "oggetti business". Intendi serializzare su XML/JSON o ti riferisci a qualcos'altro? –

+0

@ a_m0d: "Oggetti business" sono semplicemente classi con proprietà. Il loro metodo di trasporto (XML, JSON, ecc.) È un problema completamente separato. –

+0

Come sarebbe un oggetto Business diverso da una classe POCO, quindi? –