31
Windows Presentation Foundation Mitsu Furuta ([email protected]) http://blogs.microsoft.fr/mitsufu DevDays 2006 Equipé aujourd’hui, prêt pour demain !

Windows Presentation Foundation Mitsu Furuta ([email protected]) DevDays 2006 Equipé aujourdhui, prêt pour demain

Embed Size (px)

Citation preview

Page 1: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Windows Presentation Foundation

Mitsu Furuta ([email protected])

http://blogs.microsoft.fr/mitsufu

DevDays 2006Equipé aujourd’hui, prêt pour demain !

Page 2: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain
Page 3: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

AgendaIntroduction

Définitions et démonstrationsComment développer avec WPF ?

Les principaux concepts techniquesComment fonctionne WPF ?

Fonctionnement et intégration de WPF par Vista et Windows XP

La gamme ExpressionInteractive Designer, Graphic Designer, Web Designer

Développement d’applications WinFxSmartClient nouvelle génération

Conclusion

Page 4: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Définition

Windows Presentation Foundation est le nouveau sous-système graphique unifié de Windows Vista et Windows XP. Il est composé d’un moteur de rendu natif ainsi que de librairies .NET. WPF unifie la façon dont Windows crée, affiche et manipule les documents, les médias et les interfaces graphiques, permettant à la fois aux développeurs et aux designers d’offrir une expérience utilisateur de nouvelle génération.

Page 5: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Applications finales:• Northface• Puzzle• Login screen

Démo

Démo

Page 6: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Comment ça marche :WPF, des APIs :

Helloworld, architecture de baseExternalisation d’interface

En WinForms ?Sérialisation vers… XAML

Page 7: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Hello world : avec les APIs de WPF

Demo

Demo

Page 8: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Externalisation d’interfaces• avec des Windows Forms

Demo

Demo

Page 9: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Hello world : avec Xaml

Demo

Demo

Page 10: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Comment ça marche :Modèles de compilation et d’exécution

XAML onlyCode onlyMixte (code beside)Applications « navigateur »Dans Visual Studio

Fichier bamlFichier « .g.cs »

Page 11: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Le langage de sérialisation XAML La chaîne d’exécutionXAML

Dispose de spécifications publiquesComplète les langages de la plate-forme .NETDéfinit un pivot technique dans une chaîne de production

Edition électronique Graphiste Animation Modélisation 3D

XAMLImpression LocalisationConception

Page 12: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Sérialisation

Demo

Demo

Page 13: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

BAMLBAML

C#/VB/etcC#/VB/etc

Compilation

Images, etcImages, etc

XAMLXAML

Fichier .g.csFichier .g.cs

Classe partielle

Comment ça marche: modèle de compilation

Execution

InitializeComponentInitializeComponentDésérialisation grâceDésérialisation grâceaux informationsaux informationsdu BAMLdu BAML

InitializeComponentInitializeComponentDésérialisation grâceDésérialisation grâceaux informationsaux informationsdu BAMLdu BAML

EXEEXE

Page 14: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Comment développer avec WPF ?

Les templatesRendu modifiable à volontéCapitaliser sur un comportement et non un renduUne approche par composant un peu particulière

Les stylesApporter design et comportementTypage et héritage

Page 15: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Templates et styles

Demo

Demo

Page 16: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Comment développer avec WPF ?

Le binding universelBinding sur objetsBinding entre contrôles WPFBinding sur XMLBinding sur ressourcesBinding sur template

Les documentsXPS (Xml Paper Specifications), OPCGestion complète de documents (fixed, flow, impression, DRM, etc…)

Page 17: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Comment fonctionne WPF ?Intégration de WPF par Vista et Windows XP

Le sous-système graphique : Composition engineLes applications GDI ?Les applications DirectX ?

…et ailleurs: WPF /EWPF /Everywhere

Page 18: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain
Page 19: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

ListBoxListBox

ButtonButton ButtonButton

ScrollViewerScrollViewer

StackPanelStackPanel

Page 20: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

CompNodeCompNode

CompNodeCompNode CompNodeCompNode CompNodeCompNode

Page 21: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

CompNodeCompNode

CompNodeCompNodeCompNodeCompNode CompNodeCompNode

ListBoxListBox

ButtonButton ButtonButton

ScrollViewerScrollViewer

StackPanelStackPanel

TransportTransport

UI ThreadUI Thread Render ThreadRender Thread

Page 22: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

DX SurfacesDX Surfaces

BitmapsBitmaps

CompNodeCompNode

CompNodeCompNodeCompNodeCompNode CompNodeCompNode

Page 23: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Fonctionnement de WPF

Demo

Demo

Page 24: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

La gamme « Expression »Expression Graphic Designer

Mélange pixel et vectorielProduit des images, des pages HTML et XAML

Expression Interactive DesignerConception d’IHM interactive 2D ou 3D importées de produits comme 3DMax ou ZAM3DEntièrement écrit en code managé au dessus de WinFX et ne manipule que du XAML

Expression Web DesignerRelègue Frontpage à un outil d’administration de sitesProduit des pages HTML, ASP, ASP.NET, XAML et ATLAS

3 outils, 1 format commun : XAML !

“AcrylicGraphics Designer”

“Sparkle Interactive Designer”

“Quartz Web Designer”

Page 25: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Nouvelle approche de la créationCinématique entre les outils/profils

CiderInteractive D.Graphics D. VS

Graphiste

•Définition de la charte graphique•Déclinaison graphique•Vectorisation des objets

Bitmap+vectoriel

WPF Designer

•Intégration visuelle•Création des styles•Création des templates •Cinématiques 2D et 3D

XAML

Intégrateur

•Conception logicielle classique•Constitution de l’IHM WPF fonctionnelle

C#, VB.NET, etc

Graphics Designer

Web Designer

Interactive Designer

Page 26: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Expression Graphic Designer

Demo

Demo

Page 27: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Expression Interactive Designer

Demo

Demo

Page 28: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Développement d’une application WinFx

WCFRemoteDestopServerParamétrage de la sécurité

WPFRemoteDesktopClientDévelopper une application « riche »Améliorer l’interfaceRepenser l’ergonomie

Page 29: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

ConclusionWPF sort en version 1.0 cet été avec WinFx (Windows Vista et Windows XP)WPF est le socle de développement des futures applications SmartClient mais :

Aujourd’hui les WindowsForms restent la technologie de référence basée sur le framework .NETDirectX reste la technologie de référence pour le développement de jeux ou d’applications graphiques avancées

Appréhender WPF dès aujourd’hui vous permet de vous préparer aux développements d’interfaces riches de demain. Grâce au langage XAML, offrez à vos applications un format d’avenir, multi-canal, multi-device, portable et partageable

Page 30: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

WPF: aller plus loin

Vous voulez:Comprendre les détails de fonctionnement de WPF ?Savoir que les propriétés des objets WPF ne sont pas stockées par les objets !?!Connaître les interfaces et concepts permettant le binding des objets de WPF

RDV après les DevDays pour un mercredi du développement spécial WPF : http://blogs.microsoft.fr/mitsufu

Page 31: Windows Presentation Foundation Mitsu Furuta (mitsufu@microsoft.com)  DevDays 2006 Equipé aujourdhui, prêt pour demain

Rendez-vous sur le site MSDN pour y retrouver l’ensemble des contenus des DevDays 2006 :

Les webcastsLes présentationsLes codes source

http://www.microsoft.com/france/msdn/devdays2006/default.mspx

Sur le site MSDN