Condividi tramite


Informazioni su Windows Communication Foundation

Windows Communication Foundation (WCF) è un framework per la compilazione di applicazioni orientate ai servizi. Grazie a WCF è possibile inviare dati come messaggi asincroni da un endpoint del servizio a un altro. Un endpoint del servizio può appartenere a un servizio disponibile in modo continuo ospitato da IIS oppure essere un servizio ospitato in un'applicazione. Un endpoint può essere un client di un servizio che richiede dati da un endpoint del servizio. Il messaggio può essere semplice come una parola o come un singolo carattere inviato in formato XML o complesso come un flusso di dati binari. Di seguito vengono indicati alcuni scenari di esempio:

  • Servizio protetto per elaborare le transazioni aziendali.

  • Servizio che fornisce dati correnti ad altri, ad esempio un rapporto sul traffico o un altro servizio di monitoraggio.

  • Servizio di chat che consente a due persone di comunicare o di scambiare dati in tempo reale.

  • Applicazione dashboard che esegue il polling di uno o più servizi per i dati e che li visualizza in una presentazione logica.

  • Esposizione di un flusso di lavoro implementato utilizzando Windows Workflow Foundation come servizio WCF.

  • Applicazione Silverlight per eseguire il polling di un servizio per i feed di dati più recenti.

Sebbene fosse possibile creare queste applicazioni anche con programmi precedenti a WCF, grazie a WCF lo sviluppo degli endpoint è stato semplificato. In breve, WCF è stato progettato per consentire un approccio gestibile alla creazione di servizi Web e dei relativi client.

Funzionalità di WCF

In WCF è disponibile il set di funzionalità seguente. Per ulteriori informazioni, vedere Dettagli delle funzioni di WCF.

  • Orientamento ai servizi

    L'utilizzo degli standard WS in WCF consente di creare applicazioni orientate ai servizi. Per architettura orientata ai servizi (SOA, Service-oriented architecture) si intende un'architettura che si basa sui servizi Web per inviare e ricevere dati. I servizi sono in genere caratterizzati dal vantaggio di essere ad accoppiamento debole anziché hardcoded da un'applicazione a un'altra. Una relazione ad accoppiamento debole implica che un client creato in una qualsiasi piattaforma possa connettersi a un servizio qualsiasi a condizione che vengano soddisfatti i contratti essenziali.

  • Interoperabilità

    In WCF vengono implementati i moderni standard del settore per l'interoperabilità dei servizi Web. Per ulteriori informazioni su standard supportati, vedere Interoperabilità e integrazione.

  • Più modelli di messaggio

    Per scambiare i messaggi, sono disponibili più modelli. Il modello più comune è di tipo request/reply, in base al quale un endpoint richiede i dati a un altro endpoint che invia la risposta. Sono disponibili altri tipi di modelli in cui ad esempio un singolo endpoint invia un messaggio unidirezionale senza attendere una risposta. Un modello più complesso è costituito da un modello di scambio duplex in base al quale due endpoint stabiliscono una connessione e inviano i dati dall'uno all'altro in modo analogo a un'applicazione di messaggistica immediata. Per ulteriori informazioni su implementazione di modelli di scambio di messaggi diversi utilizzando WCF, vedere Contratti.

  • Metadati del servizio

    In WCF è supportata la pubblicazione dei metadati del servizio tramite formati specificati in standard del settore, ad esempio WSDL, XML Schema e WS-Policy. Tali metadati possono essere utilizzati per generare e configurare in modo automatico client per accedere a servizi di WCF. I metadati possono inoltre essere pubblicati tramite protocolli HTTP e HTTPS oppure utilizzando lo standard WS-Metadata Exchange. Per ulteriori informazioni, vedere Metadata.

  • Contratti dati

    Poiché è stato compilato utilizzando .NET Framework, in WCF sono inoltre inclusi metodi intuitivi per fornire i contratti da applicare. Uno dei tipi di contratti più generali è il contratto dati. In pratica, quando si crea il codice del servizio in Visual C# o Visual Basic, il modo più semplice di gestire i dati è costituito dalla creazione di classi che rappresentano un'entità dati con proprietà che appartengono all'entità stessa. In WCF è incluso un sistema completo per utilizzare i dati in base a questa semplice modalità. Dopo che sono state create le classi che rappresentano i dati, il servizio genera automaticamente i metadati che consentono ai client di essere conformi ai tipi di dati progettati. Per ulteriori informazioni, vedere Utilizzo di contratti dati

  • Sicurezza

    È possibile crittografare i dati per proteggere la privacy nonché chiedere agli utenti di eseguire l'autenticazione prima che siano in grado di ricevere messaggi. La sicurezza può essere implementata utilizzando standard noti, ad esempio SSL o WS-SecureConversation. Per ulteriori informazioni, vedere Funzionalità di sicurezza di Windows Communication Foundation.

  • Più trasporti e codifiche

    Per inviare i messaggi, è possibile utilizzare uno dei numerosi protocolli di trasporto e codifiche predefiniti. Il protocollo e la codifica più comuni prevedono l'invio di messaggi di testo SOAP codificati tramite il protocollo HTTP (HyperText Transfer Protocol) da utilizzare nel World Wide Web. In alternativa, WCF consente di inviare messaggi tramite TCP, named pipe o MSMQ. Tali messaggi possono essere codificati come testo oppure utilizzando un formato binario ottimizzato. I dati binari possono essere inviati in modo efficiente tramite lo standard MTOM. Se nessuna delle codifiche o nessuno dei trasporti forniti soddisfa le esigenze, è possibile creare una codifica o un trasporto personalizzato. Per ulteriori informazioni su codifiche o trasporti supportati in WCF, vedere Trasporti in Windows Communication Foundation.

  • Messaggi in coda e affidabili

    In WCF è supportato lo scambio affidabile di messaggi grazie a sessioni sicure implementate tramite WS-Reliable Messaging e MSMQ. Per ulteriori informazioni su supporto della messaggistica in coda e affidabile in WCF, vedere Code e sessioni affidabili.

  • Messaggi durevoli

    Per messaggio durevole si intende un messaggio che non viene mai perso a causa di un'interruzione della comunicazione. I messaggi presenti in un modello di questo tipo vengono sempre salvati in un database. Se si verifica un'interruzione, quando la connessione viene ripristinata è possibile riprendere lo scambio dei messaggi. È inoltre possibile creare un messaggio durevole utilizzando Windows Workflow Foundation (WF). Per ulteriori informazioni, vedere Servizi flusso di lavoro.

  • Transazioni

    In WCF il supporto delle transazioni viene inoltre realizzato tramite uno dei tre modelli seguenti, ovvero WS-AtomicTtransactions, le interfacce API nello spazio dei nomi System.Transactions e Microsoft Distributed Transaction Coordinator. Per ulteriori informazioni su supporto delle transazioni in WCF, vedere Transazioni.

  • Supporto AJAX e REST

    REST è un esempio di tecnologia Web 2.0. WCF può essere configurato per elaborare dati XML semplici che non sono incapsulati in una SOAP envelope. È inoltre possibile estendere WCF per supportare formati XML specifici, ad esempio ATOM (uno standard RSS diffuso) e formati non XML, ad esempio JSON (JavaScript Object Notation).

  • estensibilità

    L'architettura di WCF dispone di un certo numero di punti di estensibilità. Se è necessaria ulteriore capacità, sono disponibili punti di ingresso che consentono di personalizzare il comportamento di un servizio. Per ulteriori informazioni su punti di estensibilità disponibili, vedere Estensione di WCF.

Integrazione di WCF con altre tecnologie

WCF è una piattaforma estremamente flessibile che può pertanto essere utilizzata in numerosi prodotti Microsoft. Dopo aver acquisito familiarità con i concetti fondamentali di WCF, è possibile sfruttarne la conoscenza per utilizzare uno di tali prodotti.

La prima tecnologia associata a WCF è stata Windows Workflow Foundation (WF). I flussi di lavoro semplificano lo sviluppo delle applicazioni incapsulando i passaggi del flusso come attività. Nella prima versione di Windows Workflow Foundation uno sviluppatore doveva creare un host apposito per il flusso di lavoro. La versione successiva di Windows Workflow Foundation è stata integrata con WCF. In questo modo era possibile ospitare qualsiasi flusso di lavoro in un servizio di WCF scegliendo automaticamente WF/WCF come tipo di progetto in Visual Studio 2010 e Visual Studio 2010.

WCF viene inoltre utilizzato in Microsoft BizTalk Server R2 come tecnologia di comunicazione. BizTalk è progettato per ricevere e trasformare i dati da un formato standardizzato in un altro. I messaggi devono essere recapitati nel MessageBox centrale di BizTalk in cui il messaggio può essere trasformato tramite un mapping rigoroso o tramite una delle funzionalità di BizTalk, ad esempio il motore del flusso di lavoro. A questo punto in BizTalk è possibile utilizzare l'adattatore line-of-business di WCF per recapitare i messaggi al MessageBox.

Microsoft Silverlight è una piattaforma per la creazione di applicazioni Web interoperabili e potenti che consentono agli sviluppatori di realizzare siti Web con contenuto multimediale completo, ad esempio flusso video. A partire dalla versione 2, in Silverlight è stato incorporato WCF come tecnologia di comunicazione per connettere le applicazioni di Silverlight agli endpoint di WCF.

I servizi Microsoft .NET rappresentano un'iniziativa di elaborazione che utilizza WCF per la compilazione di applicazioni Internet. Utilizzare i servizi .NET per creare servizi WCF che funzionano in aree comprese tra limiti attendibili.

Il server applicazioni Funzionalità di hosting di AppFabric è stato compilato appositamente per la distribuzione e la gestione di applicazioni che utilizzano WCF per la comunicazione. In funzionalità di hosting sono disponibili strumenti e opzioni di configurazione potenti progettati in modo specifico per applicazioni abilitate all'utilizzo di WCF.

Vedere anche

Riferimento

System.ServiceModel

Concetti

Concetti fondamentali di Windows Communication Foundation
Architettura di Windows Communication Foundation
Guida alla documentazione

Altre risorse

Linee guida e procedure consigliate
Esercitazione introduttiva
Programmazione WCF di base
Windows Communication Foundation Samples