Say hello to Silverlight 5!

Print Content | More

Microsoft_Silverlight

Uno degli obiettivi di Silverlight Firestarter (l’evento tenuto in quel di Redmond Giovedì 2 Dicembre) era quello di rilanciare Silverlight, dopo tutte le “polemiche” nate in seguito alle dichiarazioni fatte durante la PDC che erano state interpretate come un segno da parte di Microsoft di voler abbandonare la piattaforma.

Bene, diciamo che l’obiettivo è stato centrato in pieno, dato che Scott Guthrie ha presentato durante il keynote Silverlight 5, la nuova versione della piattaforma. Due premesse: la prima è che non si tratta di una rivoluzione, bensì di una evoluzione. Supporto alla grafica 3D a parte, tutte le altre feature che vedremo in dettaglio non sono delle novità in senso assoluto, ma dei miglioramenti che hanno come obiettivo quello di semplificare la vita agli sviluppatori (ad esempio, il debug del binding) e di rendere sempre più convergenti WPF e Silverlight (l’introduzione delle custom markup extensions ne è un esempio).

L’altra premessa è di non trattenere il respiro nell’attesa di poter iniziare a lavorare con Silverlight 5: la prima beta è prevista in Primavera, mentre la release finale è data in uscita per la seconda metà del 2011.

Vediamo ora quali sono queste novità e miglioramenti, raggruppate per categoria.

La riproduzione video

Uno degli ambiti in cui Silverlight eccelle da sempre è la riproduzione video: grazie alle enormi potenzialità della piattaforma, è possibile gestire la riproduzione di flussi video sfruttando feature quali smooth streaming, full screen, supporto all’HD,ecc.

Silverlight 5 introdurrà il supporto all’accelerazione hardware per la riproduzione dei flussi: in questo modo la decodifica dei video potrà essere fatta sfruttando la GPU (il processore della scheda video), scaricando di fatto notevolmente il lavoro della CPU. In questo modo sarà possibile riprodurre filmati ad alta qualità anche su computer poco potenti, con un minor utilizzo di risorse e un minor consumo di batteria (nel caso di netbook e notebook).

Un’altra novità si chiama TrickPlay e introduce il supporto alle funzionalità tipiche di un videoregistratore all’interno di un player video: Rewind, Fast Forward nonchè la possibilità di cambiare la velocità di riproduzione.

Infine, sono state introdotte una serie di funzionalità che consentiranno di realizzare player video che si comportano in tutto e per tutto come delle vere e proprie applicazioni desktop: gestione intelligente dello screen saver (che viene disabilitato quando si sta guardando un video), supporto a remote controller, miglior performance e minor consumo di risorse, ecc.

sl5

WCF & RIA Services

Silverlight 4 offre già un ottimo supporto ai servizi WCF e ai più recenti RIA services, ma manca di alcune feature importanti, come una gestione integrata dell’autenticazione per garantire una comunicazione sicura tra l’applicazione e i servizi.

Silverlight 5 colma questa lacuna, aggiungendo il supporto a WS-Trust, un protocollo per lo scambio di messaggi SOAP sicuri tramite l’utilizzo di token criptati.

In più, è stato aggiunto il supporto ai tipi complessi, a Microsoft Azure nonchè sono state introdotte delle migliore per l’utilizzo del pattern MVVM. Un’ultima novità interessante è la possibilità di utilizzare un thread separato (che lavora in background) per recuperare informazioni da servizi WCF, così da garantire un tempo di risposta molto basso (utile per scenari in cui è richiesta uno scambio continuo di dati).

Data Binding

Il data binding, come sappiamo, è una delle feature più potenti di Silverlight e WPF e consente di collegare i controlli visuali presenti nello XAML ad altri controlli o a oggetti ed eventi dichiarati nel nostro codice. In questo modo è possibile creare un “flusso continuo” tra la UI e i dati, in modo che i cambiamenti da una parte si riflettano automaticamente sull’altra e viceversa.

L’implementazione del pattern MVVM (Model-View-View Model) nelle applicazioni Silverlight è fortemente basata sul data binding: Silverlight 5 introduce una serie di feature proprio in ottica di rendere il binding ancora più potente e flessibile e di rendere ancora più agevole l’utilizzo del pattern MVVM.

Ecco alcune di queste feature:

  • Debug del binding: sarà possibile inserire dei breakpoint anche nello XAML, così da debuggare step by step eventuali problemi nel binding.
  • Implicit DataTemplate: questa feature permette di creare template per la visualizzazione de dati che vengono applicati automaticamente a tutti gli oggetti di un tipo specifico presenti all’interno dell’applicazione.
  • Ancestor RelativeSource: questa feature permette ad un controllo di essere messo in binding con una proprietà del controllo padre che lo contiene.
  • Binding in style setters: in Silverlight è possibile definire degli stili, da utilizzare all’interno dei controlli della nostra applicazione (pensate ai CSS del mondo web). Con Silverlight 5 questi stili, invece che essere associati direttamente ad un valore, possono essere valorizzati tramite il Data Binding, dandoci la possibilità di cambiare in maniera semplice a runtime il valore dello stile. Durante il keynote John Papa ha sfruttato questa feature per cambiare al volo con un click del mouse il tema dell’applicazione da lui realizzata per la demo.
  • DataContextChanged: questo nuovo evento viene scatenato nel momento in cui il DataContext di un controllo cambia durante l’esecuzione dell’applicazione.
  • Custom Markup Extensions: tutti i controlli Silverlight hanno una serie di attributi, che permettono di definire direttamente da XAML i valori delle proprietà (ad esempio, Text e FontSize sono due delle tante proprietà disponibili per i controllidi tipo TextBox). Questi attributi tipicamente contengono dei valori “semplici” (come strighe o numeri): Silverlight però nativamente supporta la possibilità di definire dei valori che sono il risultato di elaborazioni più complesse. Binding e StaticResource sono due esempi di Markup Extensions native, caratterizzate dal fatto che il valore viene racchiusa tra parentesi graffe (ad esempio, Text={Biding Path=Testo}). Le Custom Markup Extensions sono una feature già presente nel mondo WPF e permettono di realizzare delle Markup Extensions ad hoc, in cui definiamo noi la logica di comportamento e di visualizzazione dell’elemento.

Grafica 3D avanzata

untitled

Silverlight 5 introduce un set di API dedicate alla manipolazione della grafica 3D, sfruttando l’accelerazione hardware della scheda video. In questo modo è possibile realizzare animazioni 3D complesse, garantendo allo stesso tempo delle ottime performance. Su questa nuova feature non c’è molto da dire per ora: durante il keynote non sono stati dati dettagli implementativi, ma sono state mostrate delle demo del risultato finale che si può ottenere con le nuove API. Vi consiglio di guardarvi la demo mostrata durante il keynote: il risultato è veramente notevole e apre le porte a molti scenari decisamente interessanti, anche in ambito business.

Convergenza con le applicazioni desktop

Molte delle novità introdotte hanno l’obiettivo di rendere Silverlight sempre più adatto allo sviluppo non solo di applicazioni web ma anche desktop: ora, sfruttando la funzionalità Out Of Browser, è possibile aprire e gestire più finestre all’interno della stessa applicazione. In più, è stato aggiunto il supporto alle chiamate P/Invoke, ovvero un sistema nativo del framework .NET per lanciare processi esterni e gestire chiamate a codice unmanaged (come le librerie di Windows). Questa funzionalità facilita, ad esempio, l’integrazione con dispositivi esterni: durante il keynote è stata presentata un’applicazione medica capace di interfacciarsi con un dispositivo USB di analisi del glucosio nel sangue.

Anche le nuove funzionalità per la stampa e per il rendering dei testi possono essere lette in quest’ottica: oltre a diverse migliorie nella resa visiva dei font su schermo, è stata introdotta una nuova API (chiamata Postscript Vector Printing API) che offre una maggiore versatilità nella creazione di versioni stampabili dei nostri documenti.

Infine, verrà integrato nativamente il controllo Pivot, che permette di gestire in maniera visuale grandi collezioni di dati (potete vederne un esempio qui 

Performance

Silverlight 5 punta ad offrire un’esperienza utente più fluida e meno esosa di risorse di sistema: minor tempo di startup delle applicazioni, supporto ai 64 bit e supporto all’accelerazione hardware di IE9 sono alcune delle migliorie che verranno introdotte.

Testing

Infine, è stato aggiunto il supporto per le creazione di unit test automatici per il testing della UI della nostra applicazione: sarà possibile direttamente in Visual Studio 2010 “registrare” le nostre interazioni con l’applicazione e tradurle in codice, che ci permetterà di verificare che il risultato dell’interazione sia sempre lo stesso. Anche in questo caso John Papa ha dato un’interessante dimostrazione di questa feature, realizzando un test che verificasse che la ricerca di una determinata parola nella sua applicazione desse sempre lo stesso risultato.

E per quanto riguarda gli altri mondi?

C_12_prodotto_75_lstImmagini_itemImmagine1_img

Le applicazioni Silverlight, come sappiamo, sono compatibili anche con Mac OS X, grazie ad una versione dedicata del runtime: già Silverlight 4 aveva creato un divario tra il mondo Windows e il mondo Mac, introducendo il supporto alle COM per la sola piattaforma Microsoft. E’ probabile che Silverlight 5 aumenti questo divario: alcune feature quasi sicuramente non saranno disponibili per il sistema operativo Apple, come il supporto ai 64 bit, alle chiamate P/Invoke e (ovviamente) all’accelerazione hardware di IE9.

E per quanto riguarda noi sviluppatori Windows Phone? Come Silverlight 5 influenzerà il mondo Windows Phone? Purtroppo è ancora troppo presto per dare una risposta: durante il keynote non sono stati svelati i piani per la piattaforma mobile, perciò al momento non è possibile dare una risposta a questa domanda. D’altronde, come anticipavo all’inizio del post, è ancora troppo presto: la prima beta di Silverlight 5 non vedrà la luce prima della Primavera e probabilmente alcune delle feature che verranno incluse nella versione finale non sono ancora state svelate.

La speranza è che, nel lungo periodo, si possa arrivare ad una convergenza tra le due piattaforme: per forza di cose la versione tradizionale e la versione mobile continueranno a viaggiare su due binari separati (non avrebbe senso introdurre ad esempio il supporto alle chiamate P/Invoke o alle nuove API per la stampa su Windows Phone); sarebbe bello però che questi binari diventassero paralleli, in modo da avere un allineamento delle feature principali (il supporto alle custom markup extensions o al debug nel binding sono solo due delle novità che sarebbero le benvenute anche su Windows Phone).

Direi che ho scritto abbastanza, perciò vi lascio con tre link molto interessanti:

  • La pagina ufficiale dell’evento, in cui è possibile rivedere il keynote nonchè tutte le sessioni successive. Unica nota “negativa”: il filmato non è ancora stato reso disponibile per il download, ma viene trasmesso in streaming. Ciò significa che, in caso di intenso traffico sul sito, la qualità del video viene automaticamente diminuita, rendendo in alcuni casi praticamente illeggibili gli esempi di codice che vengono mostrati.
  • La pagina ufficiale del sito di Silverlight in cui vengono presentate le novità di Silverlight.
  • Il post del blog di Scott Guthrie, dedicato anch’esso alle novità presentate durante il keynote.


Silverlight , Microsoft

0 comments

Related Post


(will not be published)
(es: http://www.mysite.com)