Sei sulla pagina 1di 2

WCF (Windows Communication Foundation) Lobiettivo fondamentale inviare e ricevere messaggi tra un client e un servizio attraverso processi o sistemi

i differenti, attraverso Intranet o Internet. La comunicazione WCF avviene come segue:

Codice Client Proxy Canale

Servizio

Dispatcher

Il Client richiama un metodo Proxy che converte la chiamata in un messaggio e lo trasferisce al canale (In generale, secondo il protocollo, HTTP). Dal canale, il messaggio viene passato al Dispatcher che converte il messaggio in una chiamata al metodo, che viene poi richiamato con il Servizio. Il messaggio generalmente in formato XML, per far fronte allinteroperabilit e/o portabilit di sistemi differenti. Le funzionalit dei servizi utilizzati per la comunicazione sono: SOAP, un protocollo utilizzato per comunicazioni indipendenti dalla piattaforma e pu essere visto come la busta contenente i messaggi di richiesta e risposta. Un messaggio SOAP consiste di un Envelope che contiene un Header e un Body.

Lheader opzionale e pu contenere informazioni circa la sicurezza, le transazioni o indirizzamento, mentre il body contiene i dati del messaggio. WSDL, un documento, solitamente utilizzato in combinazione con SOAP, che contiene le operazioni e i messaggi del servizio. Le informazioni contenute sono su: o Cosa pu essere utilizzato (le operazioni messe a disposizione dal servizio); o Come utilizzarlo (il protocollo di comunicazione da utilizzare, il formato dei messaggi e i dati correlati) ovvero i vincoli (o bindings) del servizio. o Dove utilizzare il servizio (cosiddetto endpoint che solitamente corrisponde allindirizzo in formato URI che rende disponibile il Web Service).

REST, Consente di inviare ai servizi richieste pi piccole di quelle possibili con SOAP. Il servizio sempre senza stato e la risposta pu essere memorizzata nella cache. JSON, Invece di inviare messaggi SOAP, laccesso ai servizi da JavaScript pu essere eseguito al meglio utilizzando JSON. Creazione di un servizio Titolo soluzione di esempio: NomeSoluzione

La soluzione consiste in diversi file: 1. Creazione del progetto di tipo Class Library con nome NomeSoluzioneData, che conterr il codice daccesso al database. Linterfacciamento al DB pu avvenire attraverso ADO.NET Entity Framework aggiungendo un nuovo item : ADO.NET Entity Data Model e selezionando il DB di interesse e le tabelle. LIDE creer un file .edmx in cui sar possibile visualizzare il grafo delle tabelle sotto forma di entit che conterr le propriet per ogni colonna della tabella. Verr creata anche una classe di entit NomeDBEntities che si connette al DB e si registra con le classi di entit per essere informata di tutte le modifiche. Allinterno del progetto si aggiunger la classe NomeSoluzioneData.cs che conterr metodi per leggere/scrivere/modificare dati da/verso il DB. 2. Creazione del progetto NomeSoluzioneService di tipo WCF Service Library. LIDE creer, in particolare, due file di cui uninterfaccia (che conterr i metodi non implementati utili allapplicazione) e una classe che implementa linterfaccia stessa, nel cui interno vi sono i metodi implementati. Il progetto NomeSoluzioneData va referenziato allinterno del progetto NomeSoluzioneService al fine di rendere disponibili i tipi di entit e la classe NomeSoluzioneData.cs. Il template WCF Service Library crea anche un altro file: App.config, un file di configurazione dellapplicazione (in formato XML) che deve essere adattato alla nuova classe e ai nomi delle interfacce. Allinterno del file presente un tag <Service> che referenzia il tipo di servizio NomeSoluzioneService compreso il namespace, mentre linterfaccia del Contract deve essere definita allinterno del tag <endpoint>. Sempre allinterno del tag <Service> presente un tag <Host> che conterr lURI dellhosting del servizio.