free hit counter
December, 2008 - Pietro Brambati Blog - Site Home - MSDN Blogs

Pietro Brambati Blog

Developer's stories

December, 2008

  • Pietro Brambati Blog

    Silverlight 2 Toolkit – Parte 2

    • 4 Comments

    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.

    image

    Quindi ora possiamo scrivere il codice seguente dove ho messo in evidenza gli aspetti importanti, commentati subito dopo:

    image

    • ho aggiunto il riferimento al namespace opportuno e ho definito un prefisso: theming, usato nel seguito
    • la dependency property ImplicitStyleManager.ApplyMode : definisce il comportamento dell ISM rispetto al template da applicare ai controlli definiti all’interno dello StackPanel: in questo caso lo sile viene applicato una sola volta. Lo sile potrebbe anche essere riapplicato ai controlli, nel caso venisse modificato. Questa opzione è permessa ma porta, ovviamente ad un degrado in termini di performance e va usata con cautela.
    • la dependency property ImplicitStyleManager.ResourceDictionaryUri permette di indicare lo uri dove si trova un ResourceDiscionary con lo stile da applicare. Esistono diverse possibilità rispetto a dove l’effettivo stile è poi definito, che sono documentate. Nell’esempio si trova nel file themes.xaml da me aggiunto al progetto stesso, che contiene il codice XAML seguente:

    image

    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:

    image

     

    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:

    image

    Quindi partiamo da un semplice file XAML così fatto:

    image

    Che genera questo layout:

    image

    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:

    image

    Quindi modifico il codice XAML così:

    image

    Che produce il seguente effetto:

    image

    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.

  • Pietro Brambati Blog

    Silverlight 2 Toolkit – Parte 1

    • 2 Comments

    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:

    image

    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:

    image

    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:

    image

     

    Nel file Page.xaml quindi notate la dichiarazione del namespace e relativo prefisso (sl2Tcontrols, potete usare quello che volete) e dichiarazione del controllo:

    image

    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 ):

    image

    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:

    image

    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

    image

    Ora come per l’uso con AutoCompleteBox aggiungiamo un namespace e definiamo un prefisso, quindi dichiariamo come nel codice XAML il nostro controllo:

    image

    Ci sono due cose da notare nel codice precedente :

    • LineSeries definisce il tipo di grafico che vogliamo rappresentare: se ad esempio un istogramma, un grafico a torta, o una serie di punti collegati tra loro, come nel nostro esempio
    • Le due proprietà IndependentValueBinding e DependentValueBinding sono in binding con le proprietà Value e Key definite nel seguito

    Ora dobbiamo fornire al nostro grafico i dati necessari, lo facciamo via code-behind nel modo seguente:

    image

    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:

    image

    Non male vero ?

  • Pietro Brambati Blog

    Silverlight 2 Controls Demo

    • 1 Comments

    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.

    image

    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

    image

    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.

    Conclusione

    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.

  • Pietro Brambati Blog

    “Oxite”: open source blog engine ….

    • 1 Comments

    image

    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 :-)))

    image

    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.

  • Pietro Brambati Blog

    Una serata un po’ speciale…

    • 1 Comments

    image

    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.

  • Pietro Brambati Blog

    Open XML, Firefox, ODF e Apache …

    • 0 Comments

    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:

    image 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

     

    image 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:

Page 1 of 1 (6 items)