Introduzione a Windows Presentation Foundation Vito Arconzo DotNetSide Member
Presentazione del gruppo Il gruppo.netSide ( è il primo user group del sud Italia dedicato al Microsoft.NET Framework. Scopo principale è quello di riunire gli appassionati di questa tecnologia residenti nel sud Italia. Ecco perchè DotNetSide: Dot Net South Italy Developers..netSide ha come obiettivo principale l'organizzazione di eventi, meeting o semplici discussioni di carattere tecnico finalizzati alla crescita professionale dei propri iscritti partendo dalla condivisione delle esperienze..netSide nasce da un gruppo di professionisti appassionati di.NET. E' aperto a chiunque voglia farne parte. DotNetSide.org è il sito ufficiale del gruppo, un aggregatore di informazioni come punto di incontro per gli iscritti. Il gruppo.netSide ( è il primo user group del sud Italia dedicato al Microsoft.NET Framework. Scopo principale è quello di riunire gli appassionati di questa tecnologia residenti nel sud Italia. Ecco perchè DotNetSide: Dot Net South Italy Developers..netSide ha come obiettivo principale l'organizzazione di eventi, meeting o semplici discussioni di carattere tecnico finalizzati alla crescita professionale dei propri iscritti partendo dalla condivisione delle esperienze..netSide nasce da un gruppo di professionisti appassionati di.NET. E' aperto a chiunque voglia farne parte. DotNetSide.org è il sito ufficiale del gruppo, un aggregatore di informazioni come punto di incontro per gli iscritti.
Agenda Overview Architettura XAML Layout & Control DataBinding Tools Overview Architettura XAML Layout & Control DataBinding Tools
Componente fondamentale della UI di Vista (ma supportato anche da Windows XP) Piattaforma per una nuova generazione di applicazioni internet Offre : –Miglioramento rendering di Windows –Riduzione del codice per la realizzazione di funzionalità grafiche avanzate (animazioni, timing, etc…) –Semplificazione del deploy e manutenzione (grafica separata dal codice) –Sfruttamento al massimo della scheda grafica Componente fondamentale della UI di Vista (ma supportato anche da Windows XP) Piattaforma per una nuova generazione di applicazioni internet Offre : –Miglioramento rendering di Windows –Riduzione del codice per la realizzazione di funzionalità grafiche avanzate (animazioni, timing, etc…) –Semplificazione del deploy e manutenzione (grafica separata dal codice) –Sfruttamento al massimo della scheda grafica A colpo d’occhio
Architettura Application Services Deployment Services Databinding USER INTERFACE SERVICES XAML Accessibility Property System Input & Eventing BASE SERVICES DOCUMENT SERVICES Packaging Services XPS Documents Animation 2D 3D AudioImaging Text VideoEffects Composition Engine MEDIA INTEGRATION LAYER Controls Layout
Programmazione dichiarativa con XAML XAML = Extensible Application Markup Language Markup dichiarativo Codice separato dalla grafica Ma…parliamo di ASP.NET?? ;) Markup dichiarativo Codice separato dalla grafica Ma…parliamo di ASP.NET?? ;) OK LightBlue XAML Button b1 = new Button(); b1.Content = "OK"; b1.Background = new SolidColorBrush(Colors.LightBlue); b1.Width = 100; C# Dim b1 As New Button b1.Content = "OK" b1.Background = New _ SolidColorBrush(Colors.LightBlue) b1.Width = 100 VB.NET
Application Model “Core” di un’applicazione WPF. Caratteristiche: Globale per applicazione Creato durante lo startup, “dispose” alla fine della stessa Caratteristiche: Globale per applicazione Creato durante lo startup, “dispose” alla fine della stessa Consente: Gestione degli eventi a livello di applicazione (startup, exit) Gestione degli eventi globali di navigazione tra le Pages Gestione di Custom Property o metodi condivise Consente: Gestione degli eventi a livello di applicazione (startup, exit) Gestione degli eventi globali di navigazione tra le Pages Gestione di Custom Property o metodi condivise <Application x:Class="App" xmlns=" xmlns:x=" StartupUri="Window1.xaml"> XAML
01 – Hello World... era ora!!!!
Il Content Model ContentControl.Content Nuovo concetto di “contenuto” Applicabile a qualsiasi controllo che eredita da ContentControl (tranne qualche caso) ContentControl.Content Nuovo concetto di “contenuto” Applicabile a qualsiasi controllo che eredita da ContentControl (tranne qualche caso) Supporto Decorator Border & ViewBox Supporto Decorator Border & ViewBox
02 – Content Model
StackPanel WrapPanel DockPanel Grid Canvas StackPanel WrapPanel DockPanel Grid Canvas Utilizzare i Panels
03 – Panels
Control.Style Condividere lo style tra i controlli (Application Resource) Control.Style Condividere lo style tra i controlli (Application Resource) Styles & Templates XAML
Control.Template Ridefinire l’aspetto di un controllo Comportamento inalterato Control.Template Ridefinire l’aspetto di un controllo Comportamento inalterato Styles & Templates
04 – Styles & Templates
Routing –Direct Windows Forms like –Bubbling Propaga l’evento a partire dal “target” risalendo i parent –Tunneling Propaga l’evento partendo dall’elemento “root” scendendo fino al “target” Routing –Direct Windows Forms like –Bubbling Propaga l’evento a partire dal “target” risalendo i parent –Tunneling Propaga l’evento partendo dall’elemento “root” scendendo fino al “target” Eventi in WPF
Eventi in WPF - definizione OK XAML Private Sub OnClick (ByVal sender As Object, byVal e As RoutedEventArgs) Code-behind
Databinding Completo –Ogni proprietà e controllo è databindable Espressivo –Consente una flessibile ed efficace visualizzazione dei dati Aperto –Pieno supporto per ogni data model ADO.NET Business Entities Windows Comunication Foundations Completo –Ogni proprietà e controllo è databindable Espressivo –Consente una flessibile ed efficace visualizzazione dei dati Aperto –Pieno supporto per ogni data model ADO.NET Business Entities Windows Comunication Foundations
Databinding : elementi coinvolti
05 – Databinding
Animazioni Modifica dei valori delle property Animation Timeline Storyboard EventTrigger Modifica dei valori delle property Animation Timeline Storyboard EventTrigger
06 – Animazioni
Windows o Web?? Installate in Windows con pieno supporto alle risorse del sistema (Accesso ai file, al registry, …) Deploy su server web e “hostate” in un browser web con, naturalmente, limiti nell’accesso alle risorse del sistema operativo.
Perchè Web?? Supporto completo di XAML Databinding 3D Flow Document Animazioni Vector Graphics Security Sandbox Supporto completo di XAML Databinding 3D Flow Document Animazioni Vector Graphics Security Sandbox
Valutate un pò voi!!! XAML : devo per forza scrivere a mano?? <Window x:Class="Window1" xmlns=" xmlns:x=" Title="WindowsApplication1" Height="300" Width="300" > Button
Designer Adobe Illustrator Maya Blender 3DS ZAM 3D Expression Graphic Designer Expression Interactive Designer Aurora Visual Studio 2005 Microsoft Office 2007 Adobe Illustrator Maya Blender 3DS ZAM 3D Expression Graphic Designer Expression Interactive Designer Aurora Visual Studio 2005 Microsoft Office 2007
Approfondimenti Microsoft Windows SDK Windows Presentation Foundation Community Blog Samples Microsoft Windows SDK Windows Presentation Foundation Community Blog Samples
Workshop Asp è tuttora una tecnologia potente: perchè allora Asp.net 2.0? In questo workshop, Mario e Vito analizzeranno insieme alcune delle problematiche comuni che si incontano durante lo sviluppo di siti dinamici trattati prima in classic ASP e poi rivisti in ASP.NET 2.0, concentrandosi sui vari aspetti relativi alla migrazione ed ai vantaggi introdotti dalla nuova piattaforma. 15 Dicembre BARI Registrati i posti sono limitati !!! ASP.Net 2.0 An Overview for ASP Developers Tecnologie a confronto ASP.Net 2.0 An Overview for ASP Developers Tecnologie a confronto