WCF
There are 6 entries for the tag
WCF
Un’ approccio introdotto in WCF 4.0 è la “Convention Over Configuration”. Sostanzialmente essa permette di assegnare una configurazione predefinita ad un endpoint in assenza di una configurazione esplicita (cosa impossibile in WCF 3.x). Ciò avviene tramite la definizione di un mapping tra lo schema/protocollo (es. http, tcp etc.) e le varie tipologie di binding (es. BasicHttpBinding, NetTcpBinding etc.) all’interno del file:
%WINDIR%\Microsoft.NET\Framework\v4.0.30319\Config\machine.config.comments
<protocolMapping>
<clear /> ...
Dal punto di vista della flessibilità, ritengo che WCF sia una delle tecnologie più potenti attualmente disponibili per lo sviluppo di applicazioni orientate ai servizi. In particolare, una delle caratteristiche che apprezzo maggiormente è la facilità di personalizzazione del comportamento runtime degli OperationContract sia client-side che service-side ( pratica per altro molto usata nel WCF REST Starter Kit :D ).
In questo post volevo soffermarmi proprio su questo aspetto, mostrando un semplice esempio di implementazione dell’interfaccia IOperationBehavior, che per l'appunto definisce quattro metodi finalizzati all'estensione del runtime behavior di un'operation:
AddBindingParameters : serve per aggiungere nuovi elementi di binding utilizzabili dall'operation in fase di esecuzione. ...
WCF è un framework concepito per sviluppare scenari di comunicazione completamente disaccoppiati sotto ogni punto di vista. In particolare, per quanto riguarda la sincronizzazione dei messaggi, è prevista internamente una rigida implementazione di pattern asincroni per ottenere chiamate non bloccanti tra i vari livelli strutturali. Esternamente, invece, WCF espone possibilità di programmazione asincrona sia client-side che server-side. L'aspetto interessante da approfondire in merito è come il programming model asincrono client-side non abbia nulla a che vedere con quello server-side: ovvero, un client può sostanzialmente invocare in modo asincrono un servizio indipendentemente dal fatto che esso sia implementato con un pattern...
Esistono molti strumenti e tecniche per effettuare un integration test di servizi WCF. Un modo che ho trovato molto semplice ed utile si ottiene sruttando il framework di unit testing di Visual Studio: infatti, utilizzando due metodi decorati rispettivamente con ClassInitialize e ClassCleanup possiamo gestire il ciclo di vita di un ServiceHost, evitando così il deploy preventivo (es. Cassini, IIS etc.) del servizio. Nel seguente esempio viene mostrata questa tecnica supponendo di voler testare un servizio di autenticazione AuthenticationService che implementa un service contract IAuthentication, il quale definisce due metodi: Login(…) e Logout(). ...
Il WCF REST Starter Kit rende disponibile tra le varie utility anche una semplice soluzione per abilitare il web caching per WCF sfruttando l'interazione con la proprietà HttpResponse.Cache di ASP.NET. La soluzione si basa sull'utilizzo di un attributo WebCache con cui decorare i nostri OperationContract che sono suscettibili a meccanismi di caching secondo una specifica profilatura. L'attributo è definito all'interno della library Microsoft.ServiceModel.Web.dll fornita con il Kit. Vediamo nel dettaglio i vari aspetti di utilizzo aiutandoci con un semplice esempio: la pubblicazione di un feed RSS 2.0 che gestisca un meccanismo di caching web in base al numero di item...
Da pochi giorni ho iniziato a studiare il WCF REST Starter Kit, un insieme veramente completo di di feature, template Visual Studio ed esempi pratici per realizzare servizi WCF in stile REST .
Niente di nuovo per chi sguazza già da (molto) tempo nel mondo REST... tuttavia devo dire che è stata apportata una graditissima semplificazione dell'utilizzo delle potenzialità di WCF su HTTP (es. caching, conditional PUT...) nonché una maggiore produttività relativamente a servizi sempre più comuni come Atom feed/Publishing Protocol.
Per chi fosse interessato all'argomento, consiglio la lettura di questo bellissimo articolo: A Guide to Designing and Building RESTful Web Services with WCF 3.5.
Buona lettura :)
Technorati Tag: WCF,REST