Windows Presentation Foundation e Silverlight

Cliccare per ingrandire

Alcuni appunti veloci dopo il corso Microsoft a Milano. Prendeteli come note "non ufficiali" che condivido informalmente con voi. Il corso è stato veramente molto interessante. Uno dei due tutor era veramente un mostro… impressionante.

A parte la formidabile dialettica, aiutata poi dalla sua toscanità pura, aveva una conoscenza del mondo IT impressionante.

 

Passava da AJAX a js puro, a .net a grafica con una agilità che nemmeno Tomba dei tempi d’oro aveva. Mi ha veramente colpito: non era il solito tutor so tutto o meglio so tutte le demo, era uno che ci smazzava parecchio tutti i giorni con problemi reali.

 

Se avete qualche appunto da aggiungere siete chiaramente i benvenuti 🙂

 

Users Experiences

Lo sviluppo delle nuove applicazioni in ambiente Microsoft (con i tool expression) è basato sulla filosofia UX: Users Experiences.
La Users Experiences si può dividere in:

  1. function: funzionalità del prodotto
  2. beauty: attrazione del prodotto
  3. affinity: sviluppo non solo in base all’obiettivo principale ma anche in base al contesto delle funzionalità (es.: una macchina da caffè fa sempre 2 caffè perché usualmente il caffè si beve in compagnia…)
  4. story: il percorso di utilizzo del prodotto, e il contesto

 

WPF

WPF: Windows Presentation Foundation
Il nuovo paradigma di sviluppo basato su framework 3.0 (3.5).
Compatibilità dei prodotti WPF:

  1. windows vista
  2. windows xp sp2  + framework 3 (download)

La definizione delle interfacce utente si basa sul linguaggio eXtensible Application Markup Language (XAML). Tale linguaggio si crea e si edita con Microsoft Epression Blend.
Il file XAML è comunque un normale file XML con un particolare dizionario.
Sono comunque già presenti online molti tool in grado di convertire progetti vettoriali e progetti 3d in XAML. Importante è ricordarsi di importare anche le immagine raster collegate ai file.
Una delle innovazioni importanti è la gestione della leggibilità del testo tramite:

  1. sub pixel
  2. natural width

In Blend, tutte le misure sono in Pixel indipendent, su una base di 96 dpi. Questo è importante per aver corrispondenza fra l’editor visuale e le immagini, quando le importiamo.

 

Framework 3.x

Stessi concetti del framework 2.0, più tutte le librerie alla base di WPF.
Nella versione 3.5 verranno introdotti anche nuovi controlli a 2.0.
Principali novità:

  1. supporto 3d nativo appoggiandosi alla scheda grafica: spostamento del carico grafico da CPU a scheda grafica
  2. inclusione rapida di frame web
  3. animazioni e timeline

p.s.: per gli oggetti 3d è consigliato il software ZAM 3d, per ora gratuito!

 

XBAP (XAML Browser Application)

E’ un nuovo formato di file (http://www.xbap.org/) per la gestione di web application, che in realtà sono file eseguibili basati su Framework 3.0.
Expression Blend infatti, da la possibilità di fare il building di un progetto in un unico .exe, oppure appunto in formato .xbap.
Tale formato può essere condiviso tramite serverweb e letto via browser da tutti gli utenti con browser IE6 o IE7 e runtime di Framework 3.0 installato.
Potremo così fruire applicazioni complesse via web, mantenendo la facilità di creazione e il supporto 3d nativo. Le applicazioni potranno essere strutturate per essere fruibili via web in modo pacchettizzato.
Non vi è ancora supporto per dispositivi mobili.
(Note: ponendo questi limiti ai prodotti, potrebbe veramente essere una soluzione di sviluppo spettacolare)

 

Expression Blend

Come già detto è lo strumento per la gestione del design di una applicazione / Silverlight, che da la possibilità di gestire animazioni ed alcuni eventi, senza scrivere codice (approfondimento).
Il prodotto finale è un file XAML.
Ha il supporto nativo di tutti i controlli .NET e di eventuali custom controls. Permette la gestione di dictionary esterno, per la definizione di interi oggetti.
Permette inoltre la possibilità di trasformare interi oggetti complessi in brush, per poi usarli come riempimenti grafici. Questo permette effetti di “copia” non interattiva, in qualsiasi punto dello schermo e in qualsiasi formato, anche su forme 3d.
Ogni elemento è dentro a tipologie di Panel, tutti figli della window e di un pannello principale: la window può avere un solo figlio!
Le proprietà del layout degli elementi vengono ereditate direttamente dal pannello all’interno del quale gli elementi sono inseriti. Dentro un Canvas, ad esempio, il posizionamento è assoluto.
Ogni oggetto presente in Blend nativamente, è ridefinibile come copia e riutilizzabile dal resource. Ogni template di oggetti è modificabile.
(nota: prodotto estremamente potente, consente fare applicazioni interattive senza toccare il codice .cs).

 

Expression Design

E’ lo strumento di disegno per vettoriali e con un minimo di appoggio per la grafica bitmap (approfondimento). Anche Expression Design esporta il proprio prodotto in XAML, ma anche in formati raster.
Ogni forma vettoriale creata è salvabile come stroke e utilizzato per la creazione di un path, con varie opzioni sulla ripetizioni e sui punti di ancoraggio.
Lo strumento b-spline, permette il tracciamento di una immagine, interpretando però i contrasti dell’immagine stessa. Il prodotto finale sarà comunque un path vettoriale.
Molto utile la possibilità di creare una griglia su una bitmap e di effettuare delle distorsioni alla immagine in base alla griglia stessa, aumentando e diminuendo le celle di controllo.
C’è poi il supporto per la creazione di maschere (clipping path) e per tutte le operazioni binarie tra oggetti vettoriali. Le maschere sono binarie, non ci sono livelli di trasparenza in base al colore della maschera.
Purtroppo manca totalmente il concetto di simboli, di oggetti, di librerie, esistente però in Blend.
(nota: prodotto scarso se confrontato con fireworks illustrator e photoshop).

 

Expression Encoding

E’ il software per la codifica dei file multimediali. Permette anche azioni di videomontaggio. Numerosi i metodi di compressione, un unico formato di uscita video: .wmv
Il software consente anche la creazione di skin pronti da importare in Blend per Silverlight, compresi di .js per la gestione degli eventi. Gli skin sono chiaramente in XAML.
Il software permette anche la possibilità di confrontare 2 filmati in preview, per verificare la qualità di compressione finale. Mostra inoltre la dimensione prevista dell’output.
(nota: il prodotto è molto valido, ma è comunque necessario un prodotto per la produzione multimediale)

 

Silverlight

La versione 1.0 di Silverlight non ha controlli testo interattivi, non ha bottoni, e ha un unico pannello utilizzabile: il canvas.
Unico pro una ottima gestione dei video e degli audio.
La gestione degli eventi deve essere fatta solamente via .js basandosi sul prototype ajax presente nel file .js auto creato da Blend in fase di preview.
Silverlight 1.0 è costituito da: XAML + js
Silverlight 1.1 sarà costituito da XAML js e da file .cs. Si suppone verranno integrati numerosi altri controlli e pannelli. La gestione degli eventi dovrebbe essere spostata all’interno del CS.
Le immagini inserite in un file Silverlight devono essere URL raggiungibili. I video possono essere mascherati con dei path vettoriali. Tali path però non hanno livelli di trasparenza bianco nero, ma solo funzione binaria.
Esempi Silverlight (alcuni sono già 1.1…):

  1. http://www.mediapreview.tv/
  2. http://www.etonline.com/emmys/
  3. http://www.windowsvista.si/
  4. http://www.tafiti.com
  5. http://silverlight.net/samples/1.1/chess/run/default.html

I sorgenti XAML e JS di Silverlight, essendo in web server, sono completamente visibili e scaricabili (almeno per la versione 1.0!).

(Note: i docenti consigliano un primo utilizzo come strumento vettoriale già dalla versione 1.0)

 

Expression Web

Editor HTML sulla falsa riga di Dreamweaver. Nulla di nuovo o di particolarmente utile al più del supporto delle master pages.
(Note: un’alternativa a frontpage… )

 

Expression Media

Vedi Picasa!
(Note: Vedi Picasa!)

Loading Facebook Comments ...

2 pensieri su “Windows Presentation Foundation e Silverlight

  1. CapoBecchino

    Come gia ti avevo detto sembra una bella cosa … anzi un’ottima cosa ma è relegato solo al mondo microsoft.

    Purtroppo anche se è la cosa più espansa (win intendo) nel mondo bisogna tener presente che esistono altre piattaforme di sviluppo e fruizione di contenuti …

    cmq resta un bellissimo prodotto …

    Rispondi
  2. Merlinox

    Diciamo che lo sviluppo di web application e teoricamente anche di silverlight, almeno sulla carta, è multi-platform!
    La cosa più interessante però che ho visto è XBAP: sviluppare per web in modo desktop… il massimo in quanto a tempi di sviluppo, prestazioni etc… li però sei veramente all’interno di una sandbox: in questo caso non per sicurezza ma per bacino!

    Rispondi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *