WinFX è talmente pieno di tecnologie che pensare di entrare in dettaglio per ciascuna di esse è impresa piuttosto difficile.
Tuttavia i pilastri fondamentali su cui si basa sono Windows Presentation Foundation, trattato nella precedente introduzione, e Windows Communication Foundation, che invece analizzeremo insieme alle altre tecnologie di "contorno" proprio all'interno di questa seconda ed ultima parte di questa breve introduzione a WinFX.
C'è da dire che mentre WPF e WCF è facile che, prima o poi, dobbiate utilizzarli, le altre tecnologie sono in realtà specificamente pensate per alcuni scenari ed anche se vale la pena menzionarle, potreste non trovare una reale applicabilità ai vostri scenari di sviluppo.
Windows Communication Foundation
Il concetto su cui si basa WCF, conosciuto sin dalla beta con il ben più esotico nome di Indigo, è quello di rendere più semplice la creazione di applicazioni distribuite, che al giorno d'oggi sono divise in tante piccole tecnologie, a seconda delle necessità che si dovessero manifestare.
Oggi possiamo contare infatti su tecnologie tutto sommato abbastanza diffuse, come Web Services, Remoting, Message Queue, ma che necessitano di concetti, ma soprattutto di progettazione e realizzazione, specifici per l'ambito in cui ci si muove.
WCF ha invece come obiettivo quello di unificare i processi di progettazione e sviluppo di applicazioni distribuite, a prescindere da quello che sarà il mezzo per rendere disponibili queste applicazioni remote. Il vantaggio di tale approccio è che si è totalmente svincolati dallo strato di trasporto, che può essere HTTP, queue, un'e-mail o un qualsiasi protocollo personalizzato.
WCF, poi, a differenza dei web services, ad esempio, si basa sull'approccio contract-first, che prevede la definizione del contratto prima che del codice vero e proprio.
Contracts ed Endpoints
Dilungarsi troppo su WCF sarebbe fuori dagli scopi di questo articolo, però vale la pena sottolineare che WCF risulti, da un punto di vista dello sviluppo delle architetture, sicuramente più rigoroso rispetto ad altri approcci.
I Contracts non sono altro che le interfacce, che spesso nel mondo del software sono chiamate API, che nelle applicazioni distribuite sono essenziali perché indicano agli sviluppatori come, con quali parametri e di che tipo le applicazioni possono scambiarsi informazioni.
Il già accennato approccio contract-first prevede che nelle SOA (Service Oriented Architectures) venga prima definita l'architettura del servizio e poi successivamente venga creato il codice relativo alle funzionalità, esattamente come avviene nello sviluppo software tradizionale.
Tutto sommato la vera novità di WCF è quella di consentire l'applicazione di questo approccio, con relativa facilità, in tutti gli ambiti dove sia necessario avere applicazioni distribuite.
Molto importante da questo punto di vista è il concetto di Endpoint, che è praticamente la modalità attraverso la quale l'applicazione comunica con il mondo esterno. Un'applicazione WCF potrebbe averne anche più di una, e ciascun EndPoint è composto da Contract, Address e Binding, che sono rispettivamente il contratto appena descritto, l'indirizzo a cui risponde l'applicazione ed il substrato che fa sì che le informazioni vengano preparate per il protocollo di trasporto utilizzato, in maniera del tutto trasparente.
Perché WCF è importante?
Se c'è comunque una cosa importante da sottolineare è che WCF anche se può sembrare un pezzo astratto (e di fatto lo è, rispetto a Windows Presentation Foundation), gioca in realtà un ruolo essenziale in WinFX.
Come abbiamo visto nel precedente articolo, infatti, WPF consente la creazione di applicazioni che girano in locale, esattamente come le WinForms, ma che hanno il vantaggio di essere facilmente distribuibili via Internet.
La particolarità di essere eseguite sul client, a differenza di ciò che avviene con le applicazioni web, però, porta essenzialmente con sé un problema di difficoltà di comunicazione da parte di queste ultime con il mondo esterno. WCF è proprio la risposta a questa necessità, dunque rappresenta una parte essenziale anche per WPF, almeno qualora le applicazioni abbiano necessità di scambiare dati con l'esterno, situazione tutt'altro che poco diffusa.
Su WCF avremo modo di tornare in futuro, approfondendo la questione soprattutto dal punto di vista tecnico. Per il momento vi basti sapere che è una tecnologia tanto affascinante quanto WPF, anche se meno appariscente.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.