Condividi tramite


Sviluppare applicazioni di database Oracle usando il modello di servizio WCF

Al livello più basso, Windows Communication Foundation (WCF) presenta un modello di programmazione in cui i client richiamano operazioni su un servizio scambiando messaggi SOAP su un canale stabilito tra endpoint client e servizio. Questo modello, noto come modello di canale WCF, espone i tipi di dati e i metodi che consentono di operare direttamente nell'architettura del canale WCF. Il modello di canale WCF offre il controllo diretto sul contenuto dei messaggi SOAP creati e sul modo in cui l'applicazione e l'adattatore Oracle Database li utilizzano; tuttavia, la creazione di messaggi SOAP ben formati da inviare su un canale e la convalida dei messaggi di risposta restituiti può essere un'attività dettagliata e esatta.

Per questo motivo WCF fornisce un altro modello di programmazione denominato modello di servizio WCF. Il modello di servizio WCF prevede l'uso di classi proxy per richiamare operazioni su un servizio di destinazione o per ricevere operazioni da un client.

  • La classe proxy usata per richiamare le operazioni in un servizio di destinazione viene chiamata classe client WCF. Questa classe modella le operazioni esposte da un servizio come metodi .NET con parametri fortemente tipizzati. Usando il modello di servizio WCF, è possibile richiamare le operazioni esposte dall'adapter di database Oracle come metodi .NET nel client WCF. Per altre informazioni sui client WCF, vedere "Panoramica client WCF" all'indirizzo https://go.microsoft.com/fwlink/?LinkId=91458.

  • Nel modello di servizio WCF il contratto di servizio esposto da un servizio è rappresentato da un'interfaccia. Questa rappresentazione del codice gestito del contratto di servizio viene chiamata contratto di servizio WCF. I modelli del contratto di servizio WCF vengono operatore come metodi con parametri fortemente tipizzati. Per ricevere un'operazione da un client che implementa una classe, il servizio WCF, da questa interfaccia. È quindi possibile ospitare un'istanza di questa classe in un system.ServiceModel.ServiceHost per consentire a un client di richiamare l'operazione nel codice. Usando il modello di servizio WCF e un contratto di servizio WCF destinato all'operazione POLLINGSTMT, è possibile ricevere i risultati di un'operazione di polling nel database Oracle usando l'adapter Oracle Database.

    Si usano strumenti per generare una classe client WCF o un contratto di servizio WCF e il codice helper associato dai metadati del servizio esposti dall'adapter Oracle Database. È possibile usare uno degli strumenti seguenti:

  • ServiceModel Metadata Utility Tool (svcutil.exe), che viene fornito con WCF

  • Plug-in di Visual Studio Add Adapter Service Reference , che viene fornito con l'adapter Oracle Database

    Il plug-in Add Adapter Service Reference è integrato con l'esperienza di progettazione di Visual Studio e presenta un'interfaccia Standard di Microsoft Windows che offre funzionalità di esplorazione e ricerca avanzate sulle operazioni esposte dall'adattatore. Per altre informazioni su come generare un client WCF o un contratto di servizio WCF, vedere Generare un client WCF o un contratto di servizio WCF per gli artefatti della soluzione di database Oracle.

    Poiché presenta un modello familiare ai programmatori .NET e che nasconde le complessità sottostanti dello scambio di messaggi SOAP su un canale, il modello di servizio WCF è spesso la scelta migliore per sviluppare soluzioni di programmazione per l'adattatore Oracle Database. Tuttavia, esistono scenari in cui il modello di canale WCF potrebbe essere una scelta migliore. Ad esempio, il modello di servizio WCF supporta solo lo streaming per l'operazione ReadLOB. Ciò avviee perché la serializzazione e la de serializzazione tra la rappresentazione XML di oggetti in un messaggio SOAP e i tipi .NET usati per rappresentarli nel modello di servizio comporta la lettura dell'intero messaggio in memoria. Il risultato di un'operazione ReadLOB è un'eccezione a questa regola.

    Il modello di canale WCF offre supporto per lo streaming a livello di nodo XML su tutte le operazioni e lo streaming a livello di dati nelle operazioni ReadLOB e UpdateLOB. Se si gestiscono query che restituiscono set di risultati di grandi dimensioni o si tenta di aggiornare un campo LOB in una tabella, il modello di canale WCF potrebbe essere una scelta migliore. Per altre informazioni sull'uso del modello di canale WCF, vedere Sviluppare applicazioni di database Oracle usando il modello di canale WCF.

    Gli argomenti di questa sezione contengono informazioni, procedure ed esempi che consentono di creare e usare il modello di servizio WCF per sviluppare applicazioni usando l'adapter Oracle Database.

Contenuto della sezione