Domanda

Seguendo il principio KISS , improvvisamente ho capito quanto segue:

  • In .NET, è possibile utilizzare Entity Model Framework per avvolgere un database.
  • Questo modello può essere esposto come servizio Web tramite WCF.
  • Questo servizio Web avrebbe una definizione molto standardizzata.
  • È possibile creare un'applicazione client in grado di utilizzare qualsiasi servizio Web RESTful.

Non voglio reinventare la ruota e non mi sorprenderebbe se qualcuno lo avesse già fatto, quindi la mia domanda è semplice: Qualcuno ha già creato un client semplice (desktop, non web) un'applicazione che può utilizzare un servizio RESTful basato su Entity Framework e che consentirà all'utente di leggere e scrivere i dati direttamente su questo servizio?

Altrimenti, dovrò solo "inventare" questo me stesso. :-)


Il problema è che il livello del database e il servizio RESTful sono già terminati. Il servizio RESTful rimarrà nel progetto solo durante la sua fase di sviluppo, dal momento che possiamo usare l'assemblaggio a livello di database direttamente dalle applicazioni web che lo compongono. Quando viene distribuita l'applicazione Web, i servizi RESTful vengono semplicemente esclusi dalla distribuzione.

Ma il database ha molti dati da gestire su quasi 50 tabelle. Quando si sviluppa su un database locale, possiamo avere un accesso diretto al database quindi non avrei bisogno di questo strumento per questo. Una volta distribuito, l'applicazione Web sarebbe l'unico modo per accedere ai dati, quindi non ho potuto utilizzare questo strumento. Ma abbiamo anche una fase di test in cui il database è archiviato su un altro sistema esterno al dominio locale e questo database non è disponibile per gli sviluppatori. Solo gli amministratori hanno accesso diretto a questo database, rendendo i test un po 'più complessi.

Tuttavia, tramite il servizio RESTful, posso comunque accedere direttamente ai dati. Pertanto, quando alcuni test falliscono, posso riparare i dati attraverso questa connessione o semplicemente creare una copia dei dati per i test sul mio sistema locale. Ci sono molte altre funzionalità ed è anche possibile aprire l'URL di un servizio di tabella direttamente in Excel o XMLSpy per vedere i contenuti. Ma quando voglio riscrivere qualcosa, devo scrivere un codice speciale per farlo. Uno strumento generico che mi consentirebbe di accedere ai dati e modificarli sarebbe più semplice. Poiché si tratta di una configurazione generica attorno ai servizi dati ADO.NET, anche questo dovrebbe essere ragionevolmente semplice.

Quindi, posso farlo, ma spero che qualcun altro abbia già fatto qualcosa di simile. Ma sembra che non sia stato ancora creato uno strumento simile ...

È stato utile?

Soluzione

Ti stai riferendo a ADO.Net Data Services . Fondamentalmente crea un modello di database di entità e aggiunge un frontend REST al servizio utilizzando ASMX. È disponibile un articolo How To disponibile da MSDN qui sul consumo del servizio utilizzando .Net. Ho anche fatto la stessa cosa usando la normale classe WebClient in .Net in passato.

Puoi anche consultare il Starter Kit WCF REST se vuoi creare il tuo basato su Entity Framework. Lo starter kit contiene anche una nuova comoda classe WebClient che può essere utilizzata per comunicare con i servizi REST.

Chiarimento

Non sono a conoscenza di client applicativi precompilati di cui parlerò con questi servizi, poiché accedono praticamente ai dati tramite i servizi Web. C'è la Microsoft Smart Client che è probabilmente la cosa più vicina Ho lavorato con.

Ho menzionato le 2 opzioni precedenti poiché hanno già librerie in .Net che funzionano direttamente con esse, sia come servizio Web di riferimento, sia per i più avventurosi, incluso me stesso, usando WebClient o in alternativa la nuova HTTPClient nel kit di avvio REST WCF.

Ho usato entrambi, in Windows, Web, Silverlight e WCF. Quest'ultimo è il più semplice poiché sono focalizzati al REST.

Stiamo attualmente esaminando Prism che si appoggia fortemente all'utilizzo di questo metodo quando si utilizza WCF per lo sviluppo front-end.

Assunzione

Per quanto riguarda questa domanda, stai assumendo in modo generico che il wrapping di ADO Entity Framework con un servizio WCF sarà generico. ADO.Net Data Services è il più vicino che otterrai, tuttavia la struttura del database cambierà sostanzialmente il modo in cui interagisci con esso. Passare a un livello superiore in un "generico" sarebbe pericoloso, dato che queste 2 tecnologie, singolarmente o insieme, sono già il più generiche possibile.

Altri suggerimenti

Oltre ai servizi dati (+1), considera i servizi RIA. È come una versione dei servizi dati specifica del dominio per i client Silverlight o WPF. Meno flessibile, ma più semplice rispetto a Data Services.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top