Sword Of Fire

The sacred sword to fight against the evil

Archive for the ‘Informatica’ Category

Che dire sulle WPF

Posted by Gabriele su febbraio 17, 2008

In questi giorni, nell’azienda per la quale lavoro, si sta sviluppando un progetto di media importanza dove l’impatto grafico risulta piuttosto significativo, il cui scopo è anche quello di far crescere a livello professionale due nuove risorse.
Quale può essere uno strumento per spingere la grafica ad un buon livello su una applicazione Windows Forms di tipo gestionale?
Pensai immediatamente:”Probabilmente se si desira qualcosa che vada oltre la norma serve l’SDK per DirectX”.
Vi assicuro: sviluppare un’applicativo in C++ con questo tipo di approccio mi ha sempre intrigato. Il problema grosso rimane il tempo e una strada del genere non era proponibile quindi mi misi a fare qualche piccola ricerca. Notai che Microsoft aveva buttato sul mercato il nuovo Framework .NET (v3.5) il quale può supportare un nuovo tipo di applicativo detto Windows Presentation Foundation.
Per sviluppare l’interfaccia su un applicativo di questo tipo è sufficiente il “Cider”,  un tool per il design messo a disposizione dall’ambiente di sviluppo Visual Studio  2008 contenente anche una finestra di editor per lo sviluppo di codice XAML.
L’altra domanda che posi:”Dov’è questa mega differenza con le Windows Forms Application?”.
La mega differenza sta nella gestione della grafica. Sostanzialmente tutti i controlli windows sono stati completamente riscritti e non ci appoggia più alla libreria System.Windows.Forms.dll. L’ altra novità è l’utilizzo del codice XAML che risulta piuttosto semplice da comprendere, visto che deriva direttamente dall’XML. Tramite esso si definiscono oggetti e proprietà in XML. Ovviamente questo codice si separa completamente dal codice riguardante la logica dell’applicativo (C#, VB.NET).
E’ possibile interagire con gli oggetti definiti dallo XAML, infatti tutti gli spazi dei nomi e le classi  sono visibili anche nell’editor di sviluppo per gli altri linguaggi. Fare riferimento al sito www.xaml.net, il quale arrichisce in modo sensibile molti concetti.
Lo XAML risulta utilissimo per definire l’interfaccia grafica.
ExpBlendUn tool molto più potente rispetto al Cider è il Microsoft Expression Blend.
Il Blend non è altro che uno strumento di disegno e animazione molto simile a Flash che consente di generare codice XAML in funzione della realizzazione del designer.
Dal Blend si possono arricchire tutti i controlli windows di base a livello grafico  e personalizzarli diventando dei veri e propri control user ma non solo, sono definibili dei binding con delle basi di dati.

Insomma, con minor sforzo, si può tirar fuori un prodotto di buona fattura.

APPLICAZIONI SVILUPPABILI CON TECNOLOGIA .NET

Windows Forms Application

Applicazione composta da schede o moduli (forms) eseguibile unicamente sotto il sistema operativo Microsoft Windows. Le applicazioni windows forms vengono attualmente sviluppate tramite tecnologia .NET. I controlli e le forms si appoggiano alla libreria System.Windows.Forms. Secondo Microsoft è conveniente sviluppare una applicazione windows forms quando si richiede al client un maggior sforzo di elaborazione sul processo.

Web Forms Application

Applicazione composta da schede o moduli (forms) distribuite tramite un network che può essere una intranet (rete interna) oppure Internet. Il grosso vantaggio sta nel fatto che una web application non necessita di alcuna installazione sul client ma è il web browser stesso a ospitare l’applicazione interpretando ciò che viene inviato dal server come una pagina html statica.

Solitamente le web application sono strutturate in tre livelli:

1) Visualizzazione. Utilizzo dell’html e altri linguaggi interpretati (javascript, vbscript, ecc…) dal web browser.

2) Codice compilato dal Web Server contenuto nelle server pages (ASP, ASP.NET) e scritto in un determinato linguaggio (C#, VB.NET).

3) Motore database associato all’applicazione (Oracle, MySQL, MSSQL, ecc…).

In altre parole il browser invia la richiesta al livello del web server il quale comunica con il database e restituisce al browser il risultato della richiesta fatta in precedenza.

Web Application Architecture


Windows Presentation Foundation Application

Applicazione che si appoggia su libreria di classi detta Windows Presentation Foundation. WPF si basa su un sistema di grafica vettoriale che si appoggia alle DirectX. WPF può essere utilizzato per creare applicativi eseguibili anche su un web browser. Per sviluppare una interfaccia WPF è sufficiente il linguaggio di derivazione XML detto XAML (Extensible Application Markup Language). Attraverso l’XAML è possibile descrivere gerarchie di oggetti in maniera dichiarativa.

ARCHITETTURA WPF

Presentation Framework Contiene tutti i controlli WPF e molto altro (Data Binding, ecc…)
Presentation Core E’ un wrapper. Consente di rendere gestito (managed) la libreria MilCore. Contiene anche i tipi base che servono per implementare i componenti User Interface.
Common Language Runtime Linguaggio Intermedio utilizzato dal compilatore .NET per tradurrre i linguaggi ad alto livello supportati dalla stessa piattaforma .NET.
MilCore Parte di codice nativo non gestito (unmanaged) che utilizza il sottosistema DirectX per lavorare con la scheda grafica. Mil sta per Media Integration Layer
DirectX Permette la presentazione a video di grafica 2D e 3D interfacciandosi direttamente con la scheda video.
KERNEL Strato software detto nucleo del sistema operativo che permette di far accedere alle risorse hardware i processi in esecuzione in maniera controllata e sicura ed assegna ad ognuno di esso una porzione di tempo macchina se necessario.

Schema Architetturale per lo sviluppo di una WPF

WPF Architecture

Posted in Informatica | Leave a Comment »