WPF, Silverlight, Ajax, ClickOnce, XBAP, cosa scegliere?

David Chappel ha appena pubblicato un nuovo White-Paper dove analizza tutte le tecnologie di presenazione disponibili per gli sviluppatori .Net. Il white-paper che si intitola "Introducing Windows Presentation Foundation" analizza le potenzialità di WPF per poi dedicare un intero capitolo a suggerimenti sulla scelta fra le varie tecnologie a disposizione.

Volevo riprendere questo articolo per aggiungere qualche considerazione personale sull'argomento. Quando scegliete la tecnologia per l'interfaccia utente non sottovalutate mai la flessibilità che vi dà l'integrazione con il sistema operativo, l'hardware o il software locale installato sulla macchina. Molto spesso vedo capi progetto che sotto la pressione del marketing o della divisione di vendita scelgono l'approccio completamente web HTML. Fate molta attenzione a queste richieste perchè le stesse persone che oggi vi chiedono un'applicazione HTML domani vi chiederanno un'integrazione migliore con le stampanti, con hardware locale tipo POS, delle stampe su carta bollata migliori oppure la possibilità di lavorare offline. Tutte cose che in HTML si fanno fatica a realizzare anche con AJAX, ad esempio, non è possibile fare tutto quello che si può fare con un’applicazione client tradizionale. La formula magica che va bene sempre, purtroppo, non esiste ... ancora. Se prendiamo ad esempio SalesForce.com azienda che del browser ha fatto una bandiera, vediamo che recentemente hanno reso disponibile una versione del loro prodotto sottoforma di client Windows per supportare le pressanti richieste di funzionalità offline da parte degli utenti.

Se state realizzando un'applicazione complessa e con molte funzionalità, tipo un ERP personalmente sceglierei un mix di tecnologie in grado di aprire più strade possibili. E quindi un’architettura che mi garantisca la flessibilità di scegliere la giusta tecnologia di presentazione per il giusto scenario di utilizzo. A questo punto però l'architettura che andrete a realizzare diventa fondamentale e tutto il tempo investito da un buon architetto nella progettazione del vostro framework vi ritornerà in manutenibilità, scalabilità e riutilizzo del codice.

Quando lavoravo in Mondadori Informatica Education al loro gestionale interno, insieme al team che lavorava su quel progetto abbiamo scelto un client misto HTML più un client VB6 (parlo del 98-99), quella decisione a distanza di anni si è rivelata vincente e la riprenderei mille volte. Quel mix di tecnologie infatti consentiva di scegliere la soluzione giusta a seconda del caso d'uso che andavamo ad indirizzare. Più specificamente il personale addetto alla segreteria usava un client VB6, il direttore di divisione aveva delle statistiche accessibili in HTML via Extranet, gli insegnati avevano un'applicazione pubblicata su Internet. In questo modo diventava facile integrarsi con tutto quello che circonda un'applicazione complessa.

Un'ultima considerazione riguarda Silverlight 1.1 alpha, se decidete che Silverlight 1.1 è la tecnologia giusta per il vostro scenario applicativo e vi volete portare avanti con il lavoro vi consiglio sin da subito di iniziare a studiare WPF e Blend 2.0. Silverlight 1.1 è attualmente in alpha quindi è poco più di un assaggio di quello che sarà disponibile al rilascio che invece avrà una notevole somiglianza con WPF.

Gabriele