Esercitazione 1: Sviluppare Echo Adapter
In questa esercitazione si svilupperà una scheda funzionale usando WCF LOB Adapter SDK. L'adapter simula le operazioni di un sistema line-of-business fittizio per illustrare molte delle principali funzionalità dell'SDK dell'adapter LOB WCF, tra cui:
In ingresso sincrono
Uscita sincrona
Esplora metadati
Ricerca metadati
Risoluzione dei metadati
Questa sezione contiene varie funzionalità supportate dall'adattatore echo. Sono scambio di messaggi, metadati delle operazioni, proprietà di connessione e proprietà dell'adattatore.
Modelli di scambio dei messaggi
L'adattatore echo supporta i due modelli di scambio messaggi seguenti:
In uscita sincrona, ovvero il client che usa invia il messaggio di richiesta WCF tramite l'adapter al sistema di destinazione e quindi attende di ricevere un messaggio di risposta WCF dal sistema di destinazione tramite l'adapter. Si tratta del modello di scambio dei messaggi più comune per un adattatore. Per supportare l'uscita in uscita sincrona, implementare l'interfaccia
Microsoft.ServiceModel.Channels.Common.IOutboundHandler
.In ingresso sincrono, ovvero l'utilizzo del client ascolta i dati o gli eventi dal sistema di destinazione tramite l'adattatore. Per supportare l'ingresso sincrono, implementare l'interfaccia
Microsoft.ServiceModel.Channels.Common.IInboundHandler
.Per altre informazioni sui modelli di scambio dei messaggi, vedere Panoramica dell'architettura.
Nota
La creazione guidata sviluppo adapter mostra il modello di scambio dei messaggi come flusso di dati nell'interfaccia utente.
Supporto dei metadati
L'adattatore echo supporta l'esplorazione dei metadati, la ricerca e la risoluzione delle funzionalità. In genere, l'esplorazione e la ricerca recuperano le operazioni da un sistema LOB. Per l'adattatore echo, un sistema LOB è un set di operazioni predefinite, come illustrato di seguito:
EchoMainCategory
Echo/EchoStrings
Echo/EchoGreetings
Echo/EchoCustomGreetingFromFile
Echo/OnReceiveEcho
Di seguito è riportata la definizione di ogni operazione:
Nome | Definizione dell'operazione | Descrizione | Direzione |
---|---|---|---|
EchoMainCategory | Category | Classifica le operazioni. | N/D |
Echo/EchoStrings | string[] EchoStrings(string data) | Esegue l'eco della stringa in ingresso un numero specificato di volte al client chiamante. | In uscita |
Echo/EchoGreetings | Saluto[] EchoGreetings(Saluto) | Esegue l'eco dell'oggetto Greeting in ingresso un numero specificato di volte al client chiamante. | In uscita |
Echo/EchoCustomGreetingFromFile | CustomGreeting EchoCustomGreetingFromFile(Uri greetingInstancePath) | Esegue l'eco dell'oggetto Greeting leggendo la relativa istanza da un file. I metadati dell'oggetto Greeting vengono ottenuti da un file XSD predefinito. | In uscita |
Echo/OnReceiveEcho | void OnReceiveEcho(percorso Uri, contenuto lungo) | Esegue l'eco del percorso e della lunghezza di un file eliminato nella cartella specificata. | In ingresso |
Proprietà adapter
L'adapter espone le proprietà dell'adapter seguenti.
Nome | Categoria | Tipo di dati | Descrizione |
---|---|---|---|
Conteggio | Varie | System.Int32 | Usato per eco dell'input il numero di volte specificato al client chiamante. Default = 5 |
EnableConnectionPooling | Varie | System.Boolean | Usato per abilitare o disabilitare il pool di connessioni per la scheda. Default = true, significa che il pool di connessioni è abilitato nel motore di runtime dell'SDK dell'adapter LOB WCF. |
InboundFileFilter | In ingresso | System.String | Usato solo per lo scenario in ingresso e usato da FileSystemWatcher per monitorare i file dell'estensione. Default=*.txt |
InboundFileSystemWatcherFolder | In ingresso | System.String | Usato per impostare la cartella in cui verranno eliminati i file per FileSystemWatcher per generare la notifica all'adapter. Default = c:\inbound\watcher. |
Proprietà connessione
L'adattatore echo espone le proprietà di connessione seguenti.
Nome | Tipo di dati | Descrizione |
---|---|---|
Applicazione | System.String | Nome dell'applicazione all'interno del sistema LOB. Questa proprietà è per scopi illustrativi. L'adattatore echo non comporta alcun sistema LOB. Default = lobapplication |
EnableAuthentication | System.Boolean | Se true, l'adapter prevede un valore nel campo nome utente all'interno delle credenziali client. Default = false |
Nome host | System.String | Nome del server in cui risiede un sistema LOB. Questa proprietà è per scopi illustrativi. L'adattatore echo non comporta alcun sistema LOB. Default = lobhostname |
Implementazione dell'interfaccia
WCF LOB Adapter SDK definisce una raccolta di classi e interfacce che devono essere implementate per supportare funzionalità specifiche dell'adattatore. Nella tabella seguente vengono descritte le classi e le interfacce, le relative descrizioni e quando implementarle.
Classe/interfaccia | Quando implementare | Descrizione |
---|---|---|
Microsoft.ServiceModel.Channels.Common.IConnection | Se è necessario definire la connessione al sistema di destinazione. | Definisce la connessione al sistema di destinazione. |
Microsoft.ServiceModel.Channels.Common.IConnectionFactory | Se è necessario creare una connessione al sistema di destinazione. | Crea la connessione al sistema di destinazione. |
Microsoft.ServiceModel.Channels.Common.ConnectionUri | Se è necessario gestire un URI di connessione. Se è necessario classificare la proprietà di connessione all'interno dello strumento Plug-in Aggiungi riferimento al servizio adapter. |
Gestisce un URI di connessione per il sistema di destinazione. |
Microsoft.ServiceModel.Channels.Common.IMetadataResolverHandler | L'adattatore deve supportare la funzionalità di risoluzione dei metadati. | Risolve l'operazione e i metadati del tipo. |
Microsoft.ServiceModel.Channels.Common.IMetadataSearchHandler | Se l'adattatore supporta la funzionalità di ricerca dei metadati. | Cerca le operazioni all'interno del sistema di destinazione. |
Microsoft.ServiceModel.Channels.Common.IMetadataBrowseHandler | L'adattatore deve supportare la funzionalità browse | Cerca le operazioni all'interno del sistema di destinazione. |
Microsoft.ServiceModel.Channels.Common.IOutboundHandler | Se in genere l'adattatore deve supportare la funzionalità in uscita. | Trasforma il messaggio di richiesta WCF in ingresso in un messaggio di sistema di destinazione, richiama la funzione specifica del sistema di destinazione e quindi trasforma la risposta in un messaggio di risposta WCF in uscita. |
Microsoft.ServiceModel.Channels.Common.IInboundHandler | Se l'adattatore supporta la funzionalità in ingresso. | Ascolta i dati e/o gli eventi dal sistema di destinazione. |
Per semplificare lo sviluppo di adattatori, usare la Creazione guidata adapter per generare il progetto adapter, che crea un set di classi derivate personalizzate per le funzionalità dell'adattatore.
Per personalizzare le proprietà dell'adattatore e della connessione tramite gli strumenti aggiuntivi aggiungi plug-in di riferimento al servizio adapter e Consume Adapter Service, modificare i file seguenti generati dalla Creazione guidata adapter.
{NomeProgetto} BindingElement.cs
{NomeProgetto} BindingElementExtensionElement.cs
{NomeProgetto} ConnectionUri.cs
Per informazioni dettagliate su come eseguire questa operazione, vedere Passaggio 2: Classificare l'adapter e le proprietà di connessione.