Panoramica sulle associazioni di Windows Communication Foundation
I binding sono oggetti usati per specificare i dettagli di comunicazione necessari per connettersi all'endpoint di un servizio WCF (Windows Communication Foundation). Ogni endpoint di un servizio WCF richiede la corretta specificazione di un binding. In questo argomento vengono illustrati di tipi di dettagli di comunicazione definiti dai binding, gli elementi di un binding, i binding inclusi in WCF e il modo in cui è possibile specificare un binding per un endpoint.
Elementi definiti da un'associazione
Le informazioni presenti in un'associazione possono essere molto semplici o molto complesse. L'associazione più semplice specifica solo il protocollo di trasporto (ad esempio HTTP) che deve essere usato per connettersi all'endpoint. In termini più generali, le informazioni contenute in un binding sulla modalità di connessione a un endpoint rientrano in una delle categorie seguenti:
Protocolli
Determina il meccanismo di sicurezza usato: la funzionalità di messaggistica affidabile o le impostazioni di flusso del contesto della transazione.
Encoding
Determina la codifica del messaggio (ad esempio, testo o binario).
Trasporto
Determina il protocollo di trasporto sottostante da usare (ad esempio, TCP o HTTP).
Elementi di un'associazione
Un'associazione è essenzialmente costituita da un stack ordinato di elementi di associazione, ognuno dei quali specifica parte delle informazioni di comunicazione necessarie per connettersi a un endpoint del servizio. I due livelli più bassi nello stack sono entrambi necessari. Alla base dello stack c'è l'elemento di associazione di trasporto e immediatamente al di sopra di questo c'è l'elemento che contiene le specifiche di codifica dei messaggi. Gli elementi di associazione facoltativi che specificano gli altri protocolli di comunicazione sono disposti sopra questi due elementi obbligatori. Per altre informazioni su questi elementi di binding e sul relativo ordinamento corretto, vedere Binding personalizzati.
Associazioni fornite dal sistema
Le informazioni in un'associazione possono essere complesse e alcune impostazioni potrebbero non essere compatibili con altre. Per questo motivo, WCF include un set di binding forniti dal sistema. Queste associazioni sono progettate per soddisfare la maggior parte dei requisiti delle applicazioni. Le classi seguenti rappresentano alcuni esempi di associazioni fornite dal sistema:
BasicHttpBinding: associazione di protocollo HTTP adatta alla connessione a servizi Web conformi alla specifica WS-I Basic Profile (ad esempio, servizi basati sui servizi Web ASP.NET).
WSHttpBinding: associazione interoperabile adatta alla connessione agli endpoint conformi ai protocolli WS-*.
NetNamedPipeBinding: usa .NET Framework per connettersi ad altri endpoint WCF nello stesso computer.
NetMsmqBinding: usa .NET Framework per creare connessioni messaggi in coda con altri endpoint WCF.
NetTcpBinding: questo binding offre prestazioni superiori rispetto ai binding HTTP ed è ideale per l'uso in una rete locale.
Per un elenco completo, con descrizioni di tutti i binding forniti da WCF, vedere Binding forniti dal sistema.
Uso di associazioni proprie
Se nessuna delle associazioni fornite dal sistema ha la giusta combinazione di funzionalità richieste da un'applicazione di servizio, è possibile creare una propria associazione. Per eseguire questa operazione è possibile procedere in due modi: È possibile creare una nuova associazione da elementi di associazione preesistenti usando un oggetto CustomBinding o è possibile creare un'associazione completamente definita dall'utente derivandola dall'associazione Binding. Per altre informazioni sulla creazione di un binding personalizzato usando questi due approcci, vedere Binding personalizzati e Creazione di binding definiti dall'utente.
Uso di associazioni
L'utilizzo di associazioni comporta due passaggi di base:
Selezionare o definire un'associazione. Il metodo più facile consiste nello scegliere uno dei binding forniti dal sistema inclusi in WCF e usarlo con le relative impostazioni predefinite. È inoltre possibile scegliere un'associazione fornita dal sistema e reimpostarne i valori delle proprietà per adattarli ai propri requisiti. In alternativa, è possibile creare un'associazione personalizzata o un'associazione definita dall'utente, per avere un grado più elevato di controllo e personalizzazione.
Creare un endpoint che usa l'associazione selezionata o definita.
Codice e configurazione
È possibile definire associazioni in due modi, tramite il codice o la configurazione. Questi due approcci non variano a seconda che si stia usando un'associazione fornita dal sistema o un'associazione personalizzata. In generale, l'uso del codice garantisce il controllo completo sulla definizione di un'associazione in fase di progettazione. L'uso della configurazione, d'altra parte, consente a un amministratore di sistema o l'utente di un servizio o client WCF di modificare i parametri di un binding senza dovere ricompilare l'applicazione di servizio. Questa flessibilità è spesso utile in quando non è possibile prevedere in alcun modo i requisiti specifici per la distribuzione di un'applicazione WCF. Se l'associazione e le informazioni di indirizzo vengono tenute fuori dal codice, esse possono cambiare senza che sia necessario ricompilare o ridistribuire l'applicazione. Si noti che le associazioni definite in codice vengono create dopo le associazioni specificate in configurazione, il che consente alle associazioni definite nel codice di sovrascrivere qualsiasi associazione definita nella configurazione.