Condividi tramite


Che cos'è Windows Communication Foundation

Windows Communication Foundation (WCF) è un framework per la creazione di applicazioni orientate ai servizi. Tramite WCF è possibile inviare dati come messaggi asincroni da un endpoint di servizio a un altro. Un endpoint di servizio può far parte di un servizio disponibile continuamente ospitato da IIS oppure può essere un servizio ospitato in un'applicazione. Un endpoint può essere un client di un servizio che richiede dati da un endpoint di servizio. I messaggi possono essere semplici come un singolo carattere o parola inviati come XML o complessi come un flusso di dati binari. Alcuni scenari di esempio includono:

  • Un servizio sicuro per elaborare le transazioni aziendali.

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

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

  • Applicazione dashboard che interroga uno o più servizi per dato e lo presenta in modo logico.

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

Prima dell’esistenza di WCF, era già possibile creare tali applicazioni, ma WCF rende lo sviluppo degli endpoint più semplice che mai. In sintesi, WCF è progettato per offrire un approccio gestibile alla creazione di servizi Web e client di servizi Web.

gRPC come alternativa a WCF

gRPC è un framework RPC moderno che è un'alternativa comune a WCF. gRPC è basato su HTTP/2, che offre numerosi vantaggi rispetto a WCF, tra cui:

  • Prestazioni: gRPC è molto più efficiente di WCF, soprattutto per le connessioni a esecuzione prolungata.
  • Scalabilità: gRPC è progettato per adattarsi a un numero elevato di client e server.
  • Sicurezza: gRPC supporta un'ampia gamma di meccanismi di sicurezza, tra cui TLS e autenticazione.
  • Multipiattaforma: gRPC è indipendente dalla piattaforma e può essere usato con un'ampia gamma di linguaggi di programmazione.

Per altre informazioni sullo sviluppo o la migrazione di app WCF a gRPC, vedere:

Funzionalità di WCF

WCF include il set di funzionalità seguente. Per altre informazioni, vedere Dettagli funzionalità WCF.

  • Orientamento del servizio

    Una conseguenza dell'uso degli standard WS è che WCF consente di creare applicazioni orientate ai servizi . L'architettura orientata ai servizi (SOA) è la dipendenza dai servizi Web per inviare e ricevere dati. I servizi hanno il vantaggio generale di essere liberamente accoppiati anziché codificati rigidamente tra un'applicazione e un'altra. Una relazione ad accoppiamento libero implica che qualsiasi client creato su qualsiasi piattaforma può connettersi a qualsiasi servizio purché vengano soddisfatti i contratti essenziali.

  • Interoperabilità

    WCF implementa standard di settore moderni per l'interoperabilità dei servizi Web. Per altre informazioni sugli standard supportati, vedere Interoperabilità e integrazione.

  • Più modelli di messaggio

    I messaggi vengono scambiati in uno dei diversi modelli. Il modello più comune è il modello di richiesta/risposta, in cui un endpoint richiede dati da un secondo endpoint. Il secondo endpoint risponde. Esistono altri modelli, ad esempio un messaggio unidirezionale in cui un singolo endpoint invia un messaggio senza alcuna aspettativa di risposta. Un modello più complesso è il modello di scambio duplex in cui due endpoint stabiliscono una connessione e inviano i dati in modo analogo a un programma di messaggistica istantanea. Per altre informazioni su come implementare modelli di scambio di messaggi diversi tramite WCF, vedere Contratti.

  • metadati del servizio

    WCF supporta la pubblicazione dei metadati del servizio usando formati specificati negli standard di settore, ad esempio WSDL, XML Schema e WS-Policy. Questi metadati possono essere usati per generare e configurare automaticamente i client per l'accesso ai servizi WCF. I metadati possono essere pubblicati tramite HTTP e HTTPS o usando lo standard di Scambio di metadati del servizio Web. Per altre informazioni, vedere Metadati.

  • Contratti dati

    Poiché WCF viene compilato usando il .NET Framework, include anche metodi adatti al codice per fornire i contratti che si desidera applicare. Uno dei tipi universali di contratti è il contratto dati. In sostanza, mentre si codifica il servizio usando Visual C# o Visual Basic, il modo più semplice per gestire i dati consiste nel creare classi che rappresentano un'entità dati con proprietà che appartengono all'entità dati. WCF include un sistema completo per l'uso dei dati in questo modo semplice. Dopo aver creato le classi che rappresentano i dati, il servizio genera automaticamente i metadati che consentono ai client di rispettare i tipi di dati progettati. Per altre informazioni, vedere Uso dei contratti dati.

  • sicurezza

    I messaggi possono essere crittografati per proteggere la privacy ed è possibile richiedere agli utenti di eseguire l'autenticazione prima di poter ricevere messaggi. La sicurezza può essere implementata usando standard noti, ad esempio SSL o WS-SecureConversation. Per altre informazioni, vedere Security.

  • Più trasporti e codifiche

    I messaggi possono essere inviati su uno dei diversi protocolli di trasporto e codifiche predefiniti. Il protocollo e la codifica più comuni consiste nell'inviare messaggi SOAP codificati di testo usando il protocollo HTTP (HyperText Transfer Protocol) da usare sul World Wide Web. In alternativa, WCF consente di inviare messaggi tramite TCP, named pipe o MSMQ. Questi messaggi possono essere codificati come testo o usando un formato binario ottimizzato. I dati binari possono essere inviati in modo efficiente usando lo standard MTOM. Se nessuno dei trasporti o delle codifiche fornite soddisfa le proprie esigenze, è possibile creare il proprio trasporto o codifica personalizzato. Per altre informazioni sui trasporti e le codifiche supportate da WCF, vedere Transports.For more information about transports and encodings supported by WCF see Transports.

  • Messaggi affidabili e in coda

    WCF supporta lo scambio di messaggi affidabile usando sessioni affidabili implementate su WS-Reliable Messaggistica e tramite MSMQ. Per ulteriori informazioni sul supporto dei messaggi affidabili e in coda in WCF, vedere Code e sessioni affidabili.

  • Messaggi durevoli

    Un messaggio durevole è uno che non viene mai perso a causa di un'interruzione della comunicazione. I messaggi in un modello di messaggio durevole vengono sempre salvati in un database. Se si verifica un'interruzione, il database consente di riprendere lo scambio di messaggi quando viene ripristinata la connessione. È anche possibile creare un messaggio durevole usando Windows Workflow Foundation (WF). Per altre informazioni, vedere Servizi flusso di lavoro.

  • Transazioni

    WCF supporta anche le transazioni utilizzando uno dei tre modelli di transazione: WS-AtomicTransactions, le API nello spazio dei nomi System.Transactions e Microsoft Distributed Transaction Coordinator. Per altre informazioni sul supporto delle transazioni in WCF, vedere Transazioni.

  • Supporto AJAX e REST

    REST è un esempio di tecnologia Web 2.0 in evoluzione. WCF può essere configurato per elaborare dati XML "semplici" che non sono inclusi in una busta SOAP. WCF può anche essere esteso per supportare formati XML specifici, ad esempio ATOM (uno standard RSS comune) e anche formati non XML, ad esempio JavaScript Object Notation (JSON).

  • Estendibilità

    L'architettura WCF ha diversi punti di estendibilità. Se è necessaria una funzionalità aggiuntiva, sono disponibili diversi punti di ingresso che consentono di personalizzare il comportamento di un servizio. Per altre informazioni sui punti di estendibilità disponibili, vedere Estensione di WCF.

Integrazione WCF con altre tecnologie Microsoft

WCF è una piattaforma flessibile. A causa di questa estrema flessibilità, WCF viene usato anche in molti altri prodotti Microsoft. Comprendendo le nozioni di base di WCF, si ha un vantaggio immediato se si usa anche uno di questi prodotti.

La prima tecnologia da associare a WCF era Windows Workflow Foundation (WF). I flussi di lavoro semplificano lo sviluppo di applicazioni incapsulando i passaggi nel flusso di lavoro come "attività". Nella prima versione di Windows Workflow Foundation, uno sviluppatore doveva creare un host per il flusso di lavoro. La versione successiva di Windows Workflow Foundation è stata integrata con WCF. Ciò ha consentito l'hosting semplice di qualsiasi flusso di lavoro in un servizio WCF. A tale scopo, scegliere automaticamente il tipo di progetto WF/WCF in Visual Studio 2012 o versione successiva.

Microsoft BizTalk Server R2 utilizza anche WCF come tecnologia di comunicazione. BizTalk è progettato per ricevere e trasformare i dati da un formato standardizzato a un altro. I messaggi devono essere recapitati alla casella di messaggio centrale in cui il messaggio può essere trasformato usando un mapping rigoroso o usando una delle funzionalità di BizTalk, ad esempio il workflow engine di BizTalk. BizTalk può ora usare l'adattatore WCF Line of Business (LOB) per recapitare messaggi alla finestra di messaggio.

Le funzionalità di hosting del server applicazioni windows Server AppFabric sono progettate specificamente per la distribuzione e la gestione di applicazioni che usano WCF per la comunicazione. Le funzionalità di hosting includono strumenti avanzati e opzioni di configurazione progettate appositamente per le applicazioni abilitate per WCF.

Vedere anche