Clemens, Clemens, Clemens! Ancora una volta, Clemens Vasters dimostra di avere competenza, idee chiare e la capacità di comunicare entrambe. In una sessione incentrata sulla realizzazione di sistemi "Loosely Coupled", si afferma che il futuro è nelle SOA, vero terreno di conquista per i Web Services. Filo conduttore della sessione (finalmente una "400") è la realizzazione di un Web Service partendo dal contratto che lo descrive: questo approccio, che gli architetti apprezzeranno sicuramente, è forse meno naturale di quello "proposto" da Visual Studio .NET ma rivela grandi vantaggi quando l'interoperabilità è un must. Il tempo scorre, e lo speaker incalza: l'encoding RPC è tabù, (come
WS-I ripete ormai da tempo), la bacchetta magica si chiama encoding
document/literal e il suo verbo è professato dall'attributo
SoapDocumentService. Un po' di "smanettamento" con
disco.exe e
wsdl.exe (ma nulla di realmente nuovo) e il "bruco" diventa "farfalla", ossia un Web Service pronto per l'uso. Controllo completo sulla serializzazione (ricordando che document/literal mette al bando gli attributi
SoapXXX) e uso cosciente della tipizzazione, magari anche rinunciandovi: "XML as a string" e
base64 possono a volte risultare una comoda soluzione (usata anche dai
Web Services di UGIdotNET). In assenza di tipizzazione, diventa evidente il "gancio" con la sessione che Clemens ha erogato ieri parlando di
Soap Extensions: tramite esse è infatti possibile mantenere il controllo degli stream scambiati tra server e consumer. Versioning, qualche demo (io _adoro_ il
SOAP Trace Utility di Microsoft: lo sapevate già?), aneddoti vari e sorpresa shock finale... Tra gli approcci "WSDL-first" e "code-first", Clemens preferisce quest'ultimo perchè considera WSDL sovracomplesso. L'avreste mai detto?