posts - 644, comments - 2003, trackbacks - 137

My Links

News

Raffaele Rialdi website

Su questo sito si trovano i miei articoli, esempi, snippet, tools, etc.

Archives

Post Categories

Image Galleries

Blogs

Links

Il cambio delle UI e del ruolo di Silverlight

Durante il bellissimo workshop di ieri ho parlato di WCF vNext. Anche se sembra strano, uno degli argomenti presi in carico dal team di WCF è una ampia libreria jQuery che permette di sviluppare Rich Client LOB utilizzando Html5 e jQuery utilizzando i RIA services.

Non è un mistero che Microsoft stia puntando tutto su Html5 e queste nuove librerie di WCF vNext sono una prova concreta.

Nella mia demo sono partito da un esempio classico Silverlight (HR Application dei samples):

SNAGHTML3bfbbd

Per la demo ho sviluppato un front-end uguale usando le nuove librerie jQuery e Html5 che hanno identiche funzionalità:

SNAGHTML3d7fbb

Già in CTP le nuove librerie hanno caratteristiche decisamente allettanti:

  • Template html analoghi a quelli Xaml
  • DataBinding su field html marcati con ${nomecampo}
  • Notifiche stile INotifyPropertyChanged in modo da ottenere "gratis" il refresh della view
  • Utilizzare i RIA services ottenendo json + i metadati RIA
  • Validazione grazie ai metadati forniti da RIA
  • Navigazione in modo "online" e "disconnesso"
  • Submit dei cambiamenti in modalità "implici commit" (cioè ogni volta che cambio qualcosa viene invocato il server) oppure buffered (spedizione batch delle modifiche)
  • Paginazione, sorting, filtering

Nota di redazione. Il binding lato client non è una novità. Lo presentai in diversi corsi a fine anni '90 - inizio 2000 utilizzando Visual Interdev, asp classic, SQL 2000, VB6 & VC++, vbscript lato client, XML Data Island e un nuovo componente Microsoft chiamato XmlHttp, oggi chiamato Ajax.

Altre novità di queste librerie sono state promesse al Mix11 entro la RTM:

  • Generazione automatica di un proxy jQuery per utilizzare RIA in modo ancora più semplice
  • Generazione di widget (analoghi a degli user control) che permettono di redistribuire un componente jQuery che qualsiasi webmaster può inserire nella propria applicazione (pensate ai widget per la previsione del tempo)

A questo punto mi preme riportare alcune osservazioni oggettive:

  • Molti (ma non tutti) scenari che prima erano esclusivi di Silverlight adesso si possono sviluppare in puro Html5
  • Il meritato successo di MVC dimostra che lo sviluppo è già oggi più client-side. Non avrebbe avuto senso invece nel 2003 con asp.net 1.1 dove la mancanza di uniformità dei browser e di una libreria come jQuery creavano un gap troppo alto.
  • Gli utenti stanno apprezzando nuovi device che alla nascita di Silverlight non erano neppure ipotizzabili. Windows, Mac, Linux, WP7, iPad, iPhone, Android, per non parlare di tutti i flavor dei produttori "minori" stanno rendendo il panorama estremamente eterogeneo e impossibile da coprire con Silverlight/Moonlight.
    L'interoperabilità è quindi un fattore di cui non si può non tenere conto.
  • Certo che lo streaming o il progressive downloading, il 3D spinto e altri scenari non sono coperti da Html5 ma la stragrande maggioranza di scenari web non richiedono queste caratteristiche, meno che mai in applicazioni LOB.

Developer experience.

Se oggi un cliente che deve sviluppare una applicazione enterprise in cui i dispositivi Microsoft sono gli unici a dover essere supportati (Win, WP7) non c'è alcun dubbio che Silverlight ha la migliore developer experience, punto. Usare Blend, Visual Studio, C# e gli altri tool sono il paradiso dello sviluppatore.

Se oggi prendete in mano un editor di javascript e cominciata a scrivere, la vostra produttività sprofonda.

Ma … quando si decide di sviluppare una applicazione si parte dai requisiti del cliente e non dalle "comodità" dello sviluppatore (che pure incidono sui costi totali di sviluppo). Se oggi il front-end di una applicazione deve girare su più device (e tenere conto di quelli che verranno) la risposta è jQuery + Html5, oppure un lungo e faticoso sviluppo "custom" di applicazioni su ciascuna piattaforma (che è un'opzione validissima dal momento in cui i numeri si fanno alti).

Sul fronte Visual Studio, se guardate bene l'Extension Manager, vedete che Microsoft ha pubblicato le prime estensioni all'editor di javascript e questo mi fa pensare che stiano lavorando ad una "developer experience" migliore per la prossima release. D'altra parte se investono nelle librerie l'editor all'altezza di Visual Studio non può mancare a mio avviso.

E Silverlight?

Silverlight è cool prima di tutto perché ha un logo e un bel nome e non è un caso che molte tecnologie toste non siano cool per la mancanza di un logo.
Silverlight è sulla cresta dell'onda quindi il prodotto che va bene non si tocca (ed è per questo che l'uscita di Bob Muglia era tragicamente infelice).
Silverlight in certi scenari è imbattibile ma il suo ambito si sta restringendo invece che allargarsi.

Allora mi chiedo quanto dobbiamo ancora aspettare prima di sentire un annuncio che faccia convergere Silverlight e WPF in un unico prodotto, considerato anche che la client version del full framework è di dimensioni non esageratamente più grossa rispetto al runtime di Silverlight?

Print | posted on mercoledì 4 maggio 2011 16:57 |

Feedback

Gravatar

# re: Il cambio delle UI e del ruolo di Silverlight

un paio di considerazioni:
- il futuro di Silverlight è a questo punto lo stesso futuro delle "App", nel senso che HTML5 dovrebbe togliere terreno anche a queste proprio perchè uno sviluppatore avrà molto più interesse a sviluppare una sola applicazione buona per tutti invece che targettizare per iOS, Android, WP7, Blackberry, ecc. (ovviamente non sarà valido per tutte le App, ma certamente per quelle che cmq necessitano di essere connesse, come ad esempio quelle dei giornali, twitter, facebook, ecc, per cui la App in fondo è solo front-end)
- da quello che ci ha fatto vedere Corrado Silverlight 5 è già quasi WPF (lui ha parlato di una copertura del 90-95%), quindi ci siamo in pratica

04/05/2011 19:42 | Roberto Messora
Gravatar

# re: Il cambio delle UI e del ruolo di Silverlight

Certo Matteo mi ricordo bene e credo che sulla convergenza non ci sia qualcuno che non l'abbia pensato. Il problema reale è che ora è diventato un affare urgente.
Quanto all'OS on the cloud i tempi non sono maturi e le nostre compagnie telefoniche ancora meno ;)
05/05/2011 00:50 | Raffaele Rialdi
Gravatar

# re: Il cambio delle UI e del ruolo di Silverlight

Anche io mi sono chiesto se era il caso di fare un applicazione per ogni device o per il "mondo intero". La risposta è stata semplice MVC + EXTJS ( che io conosco bene ). La mancanza + grossa è il Binding che WPF o SL danno di default.
05/05/2011 03:12 | Marco Bonera
Gravatar

# re: Il cambio delle UI e del ruolo di Silverlight

Ahahah, se aspettiamo i provider, che impediscono la diffusione del WiMax... Già è difficile usare un'applicazione web. Basta vedere cos'è successo con Aruba.

Come al solito, agiamo ma al contempo restiamo a guardare :).
05/05/2011 05:17 | Matteo Migliore
Gravatar

# re: Il cambio delle UI e del ruolo di Silverlight

@Marco il binding e i template delle librerie jQuery è fantastico, ti consiglio di provarli. Ovviamente la comodità di poter chiamare i RIA e ottenere un datasource pronto all'uso nella tua pagina html è impagabile.
@Matteo, vivi felice le tue illusioni, lo dico con affetto :)
05/05/2011 11:41 | Raffaele Rialdi
Gravatar

# re: Il cambio delle UI e del ruolo di Silverlight

No, sono d'accordo con te, qua la situazione non si sblocca e lo so, le nostre connessioni sono indecenti.

Niente illusioni :).
05/05/2011 12:50 | Matteo Migliore
Gravatar

# re: Il cambio delle UI e del ruolo di Silverlight

Andrea, slide/progetti a breve. Video no. Tieni conto che le slides/progetti rendono molto poco l'idea di quello che è il discorso architetturale e di prospettiva che ho fatto.
Comunque devo ancora bloggare riguardo all'argomento più hot che ho toccato, cioè le WCF webapi. Stay tuned :)
05/05/2011 19:28 | Raffaele Rialdi
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET