WCF 4.0: le novità
Sto seguendo la sessione di Ed Pinto a proposito delle novità di WCF 4.0. Qualche nota utile:
- Configurazione:
- Sono stati aggiunti i default endpoint ai servizi, basati su una ProtocolMapping table che per ogni scheme definisce il corrispondente binding di default, che verrà applicato se non viene specificato altro in modo esplicito.
- Possiamo specificare delle binding configuration senza nome (name=””) e queste diventeranno la configurazione di default per i binding assegnati di default dai default endpoint.
- Anche sul fronte dei behaviors ci saranno i default behaviors applicati ai default endpoint.
- Le impostazioni di cui sopra sfruttano anche l’ereditarietà dei web.config in una gerarchia di directory.
- Di fatto in questo modo possiamo pubblicare un servizio, senza bisogno di avere un .config apposito. Molti odiavano :-) i file di configurazione di system.ServiceModel e questo è un segnale di “disponibilità” :-) nei loro confronti.
- Possiamo fare a meno dei file .svc espliciti, sostituiti da una sezione di configurazione specifica (ServiceHostingEnvironment/ServiceActivations)
- Ovviamente c’è tutta la parte di Windows Server AppFabric (aka Dublin) che sarà finalmente disponibile il prossimo anno. Ne abbiamo già parlato a DevCon 2009 a maggio 2009 e torneremo presto a parlarne in DevCon 2010 e sui nostri blog. In questo ambito in particolare avremo:
- Strumenti di monitoring “umani” ;-) e usabili
- Configurazione dei service host, della persistenza, del throttling e della sicurezza dei servizi direttamente dall’interfaccia di IIS7 tramite le estensioni di AppFabric
- Avremo a disposizione un RoutingService che ci consente di gestire in modo comodo delle “message pump” che possono servire per gestire problematiche di routing, versioning, service bus, ecc. il tutto con delle logiche di message filtering basate su delle implementazioni specifiche di classi MessageFilter. Inoltre è molto interessante il routing tra diversi binding e tra diverse versioni di protocollo (da SOAP 1.1. a SOAP 1.2 per es.) o tra diverse piattaforme di sicurezza (da claim based a message based identity).
- Hanno migliorato il supporto al discovery dei servizi. C’è un nuovo DynamicEndpoint pensato per questo scopo da usare client-side.