Nella Parte 1 di questa mini-serie avete visto un’introduzione al Silverlight 2 Toolkit e come utilizzare due controlli facenti parte di due diverse categorie tra quelle disponibili. In questa seconda parte procedereremo con l’esplorazione e vi introdurrò all’uso dell’ ImplicityStileManager e dei Temi del Toolkit.
ImplicityStyleManager (ISM)
In WPF è possibile definire “implicitamente” lo stile di un’elemento della UI. Con implicitamente intendo che si può evitare di andare ad impostare la proprietà Style= {StaticResource ..} per ogni controllo, ma basta definire uno Style senza una Key in modo da impostare tale stile a tutti i controlli dell’applicazione. Questa funzionalità è molto comoda per “vestire” un’applicazione con un aspetto consistente. In Silverlight 2 questa funzionalità manca ed è quindi necessario andare a specificare la proprietà Style per ogni controllo da vestire. L’ ImplicityStyleManager introduce questa funzionalità in Silverlight 2, semplicandone l’uso. Vediamo come usarlo.
Creiamo un progetto Silverlight 2 da Visual Studio 2008 ed aggiungiamo l’assembly Microsoft.Windows.Controls.Theming.dll dalla directory dei binari come abbiamo visto nel post precedente.
Quindi ora possiamo scrivere il codice seguente dove ho messo in evidenza gli aspetti importanti, commentati subito dopo:
Nel mio semplice esempio ho definito solo il FontSize per un qualsiasi bottone che si trovasse nello StackPanel. Aggiungendo quindi un po’ di bottoni all’esempio e senza bisgono di impostare la proprietà style per ognuno di essi a tutti viene applicato il mio font size:
Temi predefiniti
Il Silverlight 2 Toolkit mette anche a disposizione una serie di Temi già fatti che possono essere usati per dare un’aspetto più gradevole ed una grafica consistente. Nella figura trovate gli esempi di quelli ad oggi disponibili:
Quindi partiamo da un semplice file XAML così fatto:
Che genera questo layout:
Se vogliamo applicare uno dei temi visti in figura basta che aggiungiamo uno degli assembly che si trovano in Binary\Themes a cui corrispondono i vari temi, ad esempio ho aggiunto l’assembly che contiene il tema shinyblue:
Quindi modifico il codice XAML così:
Che produce il seguente effetto:
Che dà un aspetto forse più accattivante :-)
Conclusione
Spero di avervi dato una rapida ma chiara introduzione per iniziare a lavorare e, per chi vuole, a contribuire con il Toolkit dei controlli per Silverlight 2. Tenete presente che i piccoli esempi realizzati per questo post, che potete scaricare qui, funzionano con le release di dicembre.
Cos’è ?
Contine una serie di controlli per Silverlight 2 in più rispetto a quelli presenti nella RTW di Silverlight 2. Questi controlli sono ospitati su codeplex a questo link, dove trovate anche i codici sorgenti, i casi di test e molti esempi, il tutto con licenza OSI Ms-Pl. Se volete semplicemente dare un’occhiata è disponibile una pagina on-line, dove li potete provare. Il sito su codeplex ospita un vero e proprio sito community in cui si può partecipare in diversi modi al progetto, i controlli sono suddivisi in Quality Bands che ne identificano il grado di maturità rispetto alle funzionalità e all’implementazione delle API.
Da dove partire ?
Per prima cosa vi consiglio di scaricare l’ultima release, in questo momento sto usando quella di dicembre.
I controlli sono ospitati in 4 assemblies che trovate nella directory binaries, dopo che avete scaricato il file .zip dal sito:
A questi si mappano i controlli che vedete nella pagina on-line di test, come vedete dal pannello in cui l’esempio li mostra con una suddivisione similare:
Esempio #1
Supponiamo di voler usare il controllo AutoCompleteBox, che implementa una textbox che tramite una serire di proprietà vi permette di avere dei suggerimenti per l’autocompletamento.
Create un progetto vuoto in Silverlight 2 da Visual Studio 2008 e aggiungete come prima cosa l’assembly Microsoft.Windows.Controls.dll e il relativo namespace e prefisso come vedete nelle figure seguenti:
Nel file Page.xaml quindi notate la dichiarazione del namespace e relativo prefisso (sl2Tcontrols, potete usare quello che volete) e dichiarazione del controllo:
Ora quello che rimane da fare è aggiungere delle parole da suggerire, che ho aggiunto intercettando l’evento di Loaded dello UserControl, con il codice seguente (autoc è il nome del controllo AutoCompleteBox dichiarato nello XAML ):
Il comportamento di default del controllo, che può essere modificato tramite opportune proprietà, prevedeve che venga mostrato il suggerimento anche dopo il matching di un carattere, come mostrato in figura:
Esempio #2
In quest’esempio vedremo come usare i controlli per visualizzare grafici, ne esistono già di diverse tipologie, ma la logica con cui usarli è la stessa.
Partiamo sempre da un progetto Silverlight 2 vuoto e per prima cosa aggiungiamo l’assembly: Microsoft.Windows.Controls.DataVisualization
Ora come per l’uso con AutoCompleteBox aggiungiamo un namespace e definiamo un prefisso, quindi dichiariamo come nel codice XAML il nostro controllo:
Ci sono due cose da notare nel codice precedente :
Ora dobbiamo fornire al nostro grafico i dati necessari, lo facciamo via code-behind nel modo seguente:
Nell’esempio ch1 è il nome dato al controllo Chart e KeyValuePair è una classe chiave-valore usata per dere i valori in pasto al nostro grafico, secondo le proprietà di binding definite in XAML.
Ed ecco infine il risultato:
Non male vero ?
Vi segnalo due link interessanti, dove potete trovare esempi dei controlli della RTW di Silverlight 2 e dei controlli del Silverlight Toolkit ospitato su codeplex.
Controlli RTW di Silverlight 2
Trovate una pagina web di demo con l’elenco completo dei controlli Silverligh2 rilasciati con la RTW – per chi di voi ha seguito i miei webcast sulla beta 2 di Silverlight, questo link va a sostituire il link presente. Nella pagina demo trovare non solo l’elenco dei controlli, ma anche il codice XAML dell’esempio in questione per un più rapido utilizzo.
Silverlight 2 Toolkit
Questo toolkit contiene una serie di nuovi controlli che vanno ad aggiungersi a quelli rilasciati con la RTW; sono gestiti a livello community su codeplex, dove potete trovare non solo i binari, ma anche i codici sorgenti, gli unit test e la documentazione. Anche per questi controlli è presente una pagina online di test in cui potete vederne la lista completa
Dall’immagine sono molto interessanti i controlli di visualizzazione di grafici e anche in questo caso trovate il codice XAML che serve per rappresentarli.
Trovate anche una guida in tre parti : Part 1 - Controls, Part 2 - Charting e Part 3 – Theming. La guida riprende le 3 macro aree su cui si snodano i controlli inclusi nel toolkit.
Il sito community di questi controlli è il modo più rapido anche per contribuire: riportando eventuali bug, ma anche suggerendo nuove funzionalità da implementare. Attualmente è disponibile la build di dicembre. I controlli sono raggruppati seguendo delle quality bands, sono quattro (Experimental, Preview, Stable, Mature ) che ne definiscono il grado di evoluzione dal punto di vista delle funzionalità che il controllo vuole implementare o la stabilità dal punto di vista delle API; ad esempio per un controllo che si trova nella Quality Band “Stable” ha le API sono pressochè consolidate.
Spero che queste due pagine demo vi siano utili per esplorare in poco tempo i controlli della RTW e quelli su CodePlex di Silverlight 2. In ultimo un grazie a chi mi ha ricordato che il link che usavo nei webcast sulla beta 2 non è più valido.
Qualche giorno fa è stata rilasciata la versione alpha del blog engine usato per il sito MIX Online.
Una definizione più accurata è
Oxite is an open source, standards compliant, and highly extensible content management platform that can run anything from blogs to big web sites. We know this because it runs MIX Online
Il codice è scaricabile da CodePlex con licenza OSI Microsoft Public License (Ms-PL).
Oggi ho avuto un po’ di tempo per provarlo. Basta avere Visual Web Developer 2008 Express e SQL Server Express 2008 (entrambi gratuiti :-).
Uno degli aspetti interessanti è che è stato realizzato usando ASP.NET MVC (attualmente in beta e da installare ) .
Premere F5 et voilà, potete iniziare a lavore alla vostra piattaforma di blogging e non solo :-)))
Su questo video per Channel 9 potete scoprire l’intervista ad alcuni developer che vi stanno lavorando e che portano la loro esperienza da piattaforme come Ch9, Ch10, Edge e MIX Online.
Martedì scorso ho avuto il piacere di uscire a cena a festeggiare con i ragazzi di Visual Basic Tips & Tricks. Che motivo c’era di festeggiare ? Natale … non solo, in realtà la community Italiana sullo sviluppo con Visual Basic compie 10 anni, anzi per la precisione li ha compiuti l’ 8 Dicembre 2008, come potete leggere direttamente dai loro auguri sul sito :-).
Non siamo stati gli unici in Microsoft che abbiamo festeggiato con loro, tanto che il Team di Visual Basic gli ha dedicato un simpaticissimo video … addirittura in italiano, da non perdere,eccolo:
Potete guardare qualche le foto su Facebook, ed iscrivervi al loro gruppo o semplicemente seguirli sulla loro community … auguri.
Ok, in una parola interoperabilità.
Dopo il recente rilascio dello standard ISO/IEC 29500 (Office Open XML), durante il Document Interoperability Initiative workshop svoltosi la scorsa settimana a Brussels, sono stati presentati nuovi tools e tecnologie al fine di promuovere una sempre maggiore interoperabilità tra formati di documenti diversi.
In particolare vi segnalo:
Open XML Document Viewer: questa CTP sostanzialmente permette di avere accesso ad un file Open XML da qualsiasi piattaforma che abbia un browser. Nel video (4 min) vedete come si installi il plug-in per Firefox con qui aprire un documento OpenXML direttamente nel browser. Il plug-in viene utilizzato su piattaforma Microsoft nella prima parte e successivamente su Linux.
Download Open XML Document Viewer
Open XML/ODF Translators Version 2.5: nella versione 2.5 del progetto questa volta un add-in per Office XP, 2003 e 2007 consente di esportare un file in formato ODF. Nel video (4 min) vedrete anche il supporto per gli ODF templates per una migliore fedeltà durante la conversione da un formato ad un altro.
Download Open XML/ODF translator
Apache POI Java SDK for Open XML: è stato rilasciato un SDK per chi sviluppa in Java e vuole lavorare con il formato Open XML. Questo SDK fa parte del progetto POI : Java API To Access Microsoft Format Files.
Link utili: