In questi giorni in azienda ho iniziato ad utilizzare Windows Communication Foundation piuttosto intensamente e mi sono fatto un'idea di massima (ancora MOOOLTO grossolana) su questa parte del .Net FX 3.0.
Mi piace parecchio il nuovo DataContractSerializer (AKA XmlFormatter), grazie al quale riusciamo ad avere oggetti lato client molto più simili alle controparti server side. Mi piace (ovviamente) la tanto decantata possibilità di creare servizi indipendenti dalla tecnologia utilizzata, anche se tutta da verificare nella pratica, mi piace il fatto che si possa personalizzare il formato dei messaggi scambiati tra client e server e che si possano creare metodi che lavorino direttamente su di essi, piuttosto che su oggetti a più alto livello.
Per il momento, c'è un solo aspetto che proprio non riesco a digerire, ossia il fatto che per usare WCF sia costretto a decorare le mie interfacce, metodi e classi con custom attributes, il che implica ricompilazione di codice e reference a System.ServiceModel un po' ovunque...
Nelle applicazioni che sviluppo qui in azienda, i servizi sono disaccoppiati dalla tecnologia utilizzata ed esposti tramite interfacce, il che mi consente di swappare tra WebService ASP.NET, WSE 3.0 o Remoting (in alcuni casi e con alcune ovvie limitazioni) agendo semplicemente sulla configurazione.
WCF, in questo contesto, mi crea qualche grana in più e credo che sarebbe stato molto più elegante specificare queste informazioni in un file esterno, in maniera quindi molto meno "invasima".