WCF - Panoramica
WCF sta per Windows Communication Foundation. La caratteristica elementare di WCF è l'interoperabilità. È una delle ultime tecnologie di Microsoft che viene utilizzata per creare applicazioni orientate ai servizi. Basato sul concetto di comunicazione basata su messaggi, in cui una richiesta HTTP è rappresentata in modo uniforme, WCF rende possibile avere un'API unificata indipendentemente dai diversi meccanismi di trasporto.
WCF è stato rilasciato per la prima volta nel 2006 come parte del framework .NET con Windows Vista, quindi è stato aggiornato più volte. WCF 4.5 è la versione più recente che è ora ampiamente utilizzata.
Un'applicazione WCF è composta da tre componenti:
- Servizio WCF,
- Host del servizio WCF e
- Client del servizio WCF.
La piattaforma WCF è anche nota come modello di servizio.
Concetti fondamentali di WCF
Messaggio
Questa è un'unità di comunicazione che comprende diverse parti oltre al corpo. Le istanze dei messaggi vengono inviate e ricevute per tutti i tipi di comunicazione tra il client e il servizio.
Endpoint
Definisce l'indirizzo a cui deve essere inviato o ricevuto un messaggio. Specifica inoltre il meccanismo di comunicazione per descrivere come verranno inviati i messaggi insieme alla definizione del set di messaggi. Una struttura di un endpoint comprende le seguenti parti:
Indirizzo
Indirizzo specifica la posizione esatta in cui ricevere i messaggi ed è specificato come URI (Uniform Resource Identifier). È espresso come schema: // dominio [: porta] / [percorso]. Dai un'occhiata all'indirizzo indicato di seguito -
net.tcp: // localhost: 9000 / ServiceA
Qui, "net.tcp" è lo schema per il protocollo TCP. Il dominio è "localhost" che può essere il nome di una macchina o di un dominio web e il percorso è "ServiceA".
Rilegatura
Definisce il modo in cui un endpoint comunica. Comprende alcuni elementi vincolanti che costituiscono l'infrastruttura per la comunicazione. Ad esempio, un'associazione indica i protocolli utilizzati per il trasporto come TCP, HTTP, ecc., Il formato di codifica dei messaggi ei protocolli relativi alla sicurezza e all'affidabilità.
Contratti
È una raccolta di operazioni che specifica quale funzionalità l'endpoint espone al client. Generalmente consiste in un nome di interfaccia.
Ospitando
L'hosting dal punto di vista di WCF si riferisce all'hosting del servizio WCF che può essere eseguito tramite molte opzioni disponibili come l'hosting autonomo, l'hosting IIS e l'hosting WAS.
Metadati
Questo è un concetto significativo di WCF, in quanto facilita una facile interazione tra un'applicazione client e un servizio WCF. Normalmente, i metadati per un servizio WCF vengono generati automaticamente quando abilitati, e ciò avviene mediante l'ispezione del servizio e dei suoi endpoint.
Client WCF
Un'applicazione client che viene creata per esporre le operazioni del servizio sotto forma di metodi è nota come client WCF. Questo può essere ospitato da qualsiasi applicazione, anche quella che offre servizi di hosting.
Canale
Il canale è un mezzo attraverso il quale un cliente comunica con un servizio. Diversi tipi di canali vengono impilati e sono noti come Channel Stacks.
SAPONE
Sebbene definito come "Simple Object Access Protocol", SOAP non è un protocollo di trasporto; invece è un documento XML che comprende un'intestazione e una sezione del corpo.
Vantaggi di WCF
È interoperabile rispetto ad altri servizi. Ciò è in netto contrasto con .NET Remoting in cui sia il client che il servizio devono avere .Net.
I servizi WCF offrono maggiore affidabilità e sicurezza rispetto ai servizi Web ASMX (Active Server Methods).
L'implementazione del modello di sicurezza e la modifica dell'associazione in WCF non richiedono una modifica importante nella codifica. Sono necessarie solo alcune modifiche alla configurazione per soddisfare i vincoli.
WCF ha un meccanismo di registrazione integrato mentre in altre tecnologie è essenziale eseguire la codifica richiesta.
WCF ha integrato AJAX e supporto per JSON (notazione dell'oggetto JavaScript).
Offre scalabilità e supporto per i futuri standard di servizi web.
Ha un meccanismo di sicurezza predefinito che è estremamente robusto.