Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Le novità di Silverlight in Windows Phone 7.5

Le funzionalità introdotte con il runtime Silverligth 4.0
Le funzionalità introdotte con il runtime Silverligth 4.0
Link copiato negli appunti

La più importante novità sul fronte Silverlight in Windows Phone 7.5 riguarda il passaggio alla versione 4, ricordiamo infatti che Windows Phone 7.0 usa il runtime di Silverlight 3.

Sono state portate sul sistema mobile solo le funzionalità adatte a tale ambiente, non troveremo infatti caratteristiche tipicamente desktop quali stampa, click destro, drag and drop, HTML DOM bridge, programmabilità Javascript e così via.

Runtime

Sono stati introdotti diversi miglioramenti dal punto di vista delle prestazioni, specialmente per quanto riguarda lo scrolling di listbox, l'aumento di performance è percebile in modo netto anche durante i primi esperimenti con l'emulatore presente nell'SDK. Tale miglioria è stata ottenuta grazie all'introduzione di un nuovo input thread del runtime.

Le immagini inoltre possono essere decodificate su un thread in background, tale caratteristica aumenta le performance percepite dall'utente, scaricando infatti il thread principale da tale compito oneroso si migliora innegabilmente la fluidità dell'applicazione.

Come parte del runtime di Silverlight è stato incluso un nuovo parser XAML, migliorando quindi la compatibilità con frammenti XAML scritti in precedenza per applicazioni WPF, l'aderenza alle specifiche MS-XAML e la renderizzazione del codice XAML da parte di strumenti di design come Visual Studio o Expression Blend.

User Interface

Silverlight offre un nuovo controllo RichTextBox, è solo in modalità read-only, quindi non possiamo usarlo come editor "simil-Word" in contesti CMS, ma è possibile visualizzare testo formattato, hyperlink e immagini. È arrivato inoltre il controllo ViewBox, in grado di adattare il contenuto alla propria dimensione, una sorta di magnifier di elementi XAML. Ricordiamo inoltre che l'oggetto WebBrowser è basato adesso su Internet Explorer 9 e quindi in grado di supportare HTML 5.

Segnaliamo le nuove API per gestire l'accesso alla Clipboard, tramite i metodi statici GetText e SetText dell'omonima classe abbiamo gli strumenti per leggere e impostare del testo Unicode nella clipboard.

Una novità di rilievo riguarda il supporto a Command e CommandParameter da parte delle classi ButtonBase e Hyperlink; queste importanti proprietà consentono di utilizzare nativamente l'ormai classico pattern Model-View-ViewModel.

È possibile adesso utilizzare stili impliciti, ovvero poter definire lo stile di default per, ad esempio, tutti i button della nostra applicazione, o le nostre listbox, checkbox ecc.

Troviamo la comoda CompositeTransform, viene usata per applicare diverse transformazioni bidimensionali su un singolo oggetto come translazioni, rotatazioni, skew; lo stesso effetto si poteva ottenere con il classico RenderTransformGroup, ma adesso risparmiamo righe di istruzioni XAML migliorando così la leggilibilità e la manutenibilità del nostro codice.

Possiamo impostare la direzione del contenuto e il layout di ogni controllo impostando la proprietà FlowDirection a RightToLeft. Questo consente di realizzare user interface, ad esempio, in lingua ebraica o araba.

WebCam

Un'importante nuova funzionalità riguarda la possibilità di catturare in tempo reale lo stream video e audio della camera integrata; grazie al nuovo elemento VideoBrush è possibile riempire una qualsiasi superficie (sia essa shape o controllo) con il contenuto di rendering della webcam e quindi riprodurre lo stream video.

Tale caratteristica, coadiuvata eventualmente dalle API di localizzazione GPS, rende quindi possibile la scrittura di applicazioni di realtà aumentata.

Data Binding

Meritano un paragrafo le novità nel motore di data binding, da sempre la caratteristica del runtime più apprezzata da parte degli sviluppatori WPF/Silverlight.

Troviamo il supporto alla validazione di oggetti che implementano l'interfaccia INotifyDataErrorInfo o IDataErrorInfo, la proprietà StringFormat, utilissima per formattare stringhe senza dover passare da noiosi IValueConverter, il binding a oggetti di tipo DependencyObject, le proprietà FallbackValue e TargetNullValue in grado di visualizzare dati di default in caso di errori di binding o dati null, binding a indexer di stringhe, supporto per ICollectionViewFactory utile per creare viste diverse sulle stesse collezioni dati.

Networking

La nostra applicazione sarà in grado di comunicare con l'esterno anche tramite socket utilizzando i protocolli TCP o UDP. Sarà quindi possibile creare applicazioni di instant messaging o videogiochi in multi-player.

Grazie alla nuova classe DeviceNetworkInformation è possibile ottenere informazioni sulle caratteristiche di rete, come ad esempio l'attivazione della rete dati mobile o wireless.

Segnaliamo inoltre che la callback della classe WebClient viene eseguita dal thread chiamante con chiari miglioramenti di prestazioni se lavoriamo in multi-threading, ricordiamo inoltre che, se invochiamo metodi di tale classe da un thread in background occorre "passare" dal Dispatcher per lavorare con gli oggetti di user interface.

Ti consigliamo anche