Windows Presentation Foundation

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Windows Presentation Foundation (WPF) (nom de code Avalon) est la spécification graphique de Microsoft .NET 3.0. Il intègre le langage descriptif XAML qui permet de l'utiliser d'une manière proche d'une page HTML pour les développeurs.

WPF est pré-installé avec Vista. Il est aussi possible de l'installer sur Windows XP (à partir du Service Pack 2) et Windows Server 2003.

Spécifications[modifier | modifier le code]

Le système graphique[modifier | modifier le code]

Il est une surcouche logicielle à DirectX pour la fabrication d'interfaces utilisateurs en dehors d'applications ludiques, il remplace en fait Windows Forms (USER et GDI) hérité de Windows 1.0 et est entièrement vectoriel, pour le dessin comme pour le texte. Cela permet d'augmenter la taille des objets en fonction de la résolution de l'écran sans effet de pixelisation, il optimise également fortement la virtualisation des applications par prise en main à distance par la réduction des informations à faire transiter sur le réseau.

L'affichage du texte se fait au moyen des procédés ClearType, TrueType ou OpenType qui améliorent le lissage des caractères. Il supporte l'affichage de nombreux formats d'images ou vidéo comme MPEG, AVI, et bien sûr WMV de Microsoft.

Applications autonomes et applications Web[modifier | modifier le code]

WPF ne sert pas uniquement à afficher l'interface graphique des logiciels tels que traitement de texte, jeux, etc., mais il fournit également un environnement d'exécution évolué des pages web nommées Silverlight. Les applications Web, nommées XBAP (Xaml Browser Application, voir (en) XAML Browser Applications), sont des programmes qui tournent dans Internet Explorer ou FireFox, sous Windows ou Mac OS (sous GNU/Linux la plate-forme s'appelle MoonLight). Par défaut, ces applications n'ont pas accès au système de fichiers pour la sécurité des données et du système d'exploitation, mais un "manifest" peut être installé pour témoigner de la confiance dans une application donnée. Ceci permet, par exemple, de faciliter le déploiement d'un logiciel sur un large nombre de machines.

La gestion des données[modifier | modifier le code]

Il y a séparation entre les données et leur présentation, les deux aspects étant traités par WPF. WPF gère les bases de données pour les applications ou le web, et il fournit des modèles de présentation.

L'interface utilisateur de Windows[modifier | modifier le code]

WPF fournit tous les éléments d'interface graphique : "widgets", fenêtres, boutons, champs de texte, menus, listes, etc. La description de l'interface se fait en XAML bien qu'il soit toujours possible de générer des interfaces dynamiquement en code managé.

WPF fournit aux développeurs différents moyens de créer leurs propres composants, par agrégation (UserControl) ou dérivation (CustomControl)[1] de composants existants.

L'une des particularités de WPF est de dissocier le contrôle, au sens "composant" du terme (Entrées/Sorties, Événements, etc.) de son graphisme. De fait, pour un contrôle donné, créer ou remplacer le graphisme (au sens large du terme, c'est-à-dire en incluant les animations, les sons, etc.) se fait de manière particulièrement aisée. On parle alors de "Template" de Control.

De fait, l'arbre XAML des composants, souvent nommé arbre "logique", est doublé d'un arbre Visuel, déterminé à l'exécution, et prenant en compte les différents "Templates" des contrôles de l'arbre logique, telles que définies via le XAML ou référencés, dans le Code Behind[2].

WPF et Windows XP[modifier | modifier le code]

Les applications WPF fonctionnent sous XP, et les applications WPF fonctionnent sur XP sous condition que le runtime WinFX soit installé.

Technologie utilisant WPF[modifier | modifier le code]

WPF est une interface graphique qui se retrouve sous différentes formes :

  • une application indépendante qui s'installe sur un ordinateur en utilisant un installateur comme Windows Installer(msi) et clickOnce
  • une applet sous forme d'un fichier XAML Browser Applications (XBAPs) qui s'exécute sur la CLR de silverlight. La version fournie avec le Framework .NET 3.0 fonctionne dans Internet Explorer et la version 3.5 fonctionne maintenant avec Mozilla Firefox.


.Net Micro Framework[modifier | modifier le code]

Le .Net Micro Framework est fourni avec une interface graphique légèrement basée sur WPF et sans support de XAML.

eface (java)[modifier | modifier le code]

La société Soyatec [1] a développé un framework java de nom "eface", basé sur xaml et wpf en vue d'offrir une nouvelle API orienté GUI/xml pour java. Wpf est plus qu'une interface visuelle et "eface" (en avance sur JavaFX) supporte déjà :

  • le langage xml xaml
  • les contrôles visuels
  • le data binding
  • l'internationalisation et la localisation.

Silverlight (.NET)[modifier | modifier le code]

Logo de Silverlight

« SilverLight (code-name WPF/E) est le nom de code d’une solution navigateur multi-plateforme basée sur XAML qui améliore les présentations à base de contenu riches (2D, animation, dessin vectoriel, vidéo et audio) en complément du code HTML »

La première CTP de Silverlight a été livrée le 4 décembre 2006. La version 1.0, disponible depuis le 5 septembre 2007 permet d’agir avec l’utilisateur grâce au Javascript. Avec la version 1.1, disponible en alpha depuis le 17 mai 2007, il est possible d'intégrer directement du code C# et VB.NET compilé.

Le runtime n'excède pas 2 Mo (taille maximum fixée par Microsoft) et comprend donc un sous ensemble de XAML (ne supportant pas la 3D par exemple).

La version 2.0 (anciennement 1.1) est disponible depuis octobre 2008. C'est toujours une version beta, elle est néanmoins opérationnelle, car certains sites web l'utilisent.

La version 3.0 finale a été mise en ligne début juillet 2009 elle inclut notamment le fonctionnement "out of browser" qui permet d'installer l'application sur la machine de l'utilisateur en local

La version 4.0 gère nativement le multicast ainsi qu'un système de DRM basé sur la technologie PlayReady. Notons également le support de la webcam, du clic droit, du rendu HTML et texte riche, les impressions, et une meilleure intégration avec le système d'exploitation (Drag and Drop avec Microsoft Office par exemple).

Article détaillé : Microsoft Silverlight.

Mono[modifier | modifier le code]

L'interface graphique utilisée pour le projet Mono/Moonlight utilise le Framework cairo [2] dû à son espace de nom "system.Drawing" et sa compatibilité avec GDI+ (libgidplus). Il a fallu 5 ans pour une implémentation du Framework .NET 2.0 avec Windows Forms. L'implémentation de WPF par Mono n'est pour l'instant (2014) pas prévue, par manque de ressource et d'intérêt[3].

Outils de développement[modifier | modifier le code]

Il existe des outils de développement pour développer des applications WPF. La plupart sont commercialisés.

  • Microsoft Cider est un outil de conception graphique utilisant XAML, fourni comme Add-in avec la version CTP de Visual Studio 2005. Il n'est pas intégré dans la version RTM de visual Studio 2005. Cider est intégré dans la suite Visual Studio à partir de la version 2008 et dans la version Express de Visual Basic.
  • Microsoft Expression Design prend en charge la création de conceptions graphiques en vue d'une exportation en XAML, langage déclaratif utilisé pour décrire les éléments de l'interface utilisateur et le contenu riche des applications (tels que le format 2D, 3D, le texte, les animations, la vidéo, etc.) pour Windows Presentation Foundation (WPF).
  • Microsoft Expression Blend est construit sur WPF et peut utiliser des fichiers XAML exportés à partir de Expression Design. Blend permet de gérer les objets XAML séparément ou par calques, et permet de définir les interactions avec les actions utilisateurs, les animations, les sons ...
  • XAMLPad est un outil léger inclus dans .NET Framework SDK. Il permet de créer et visualiser un fichier XAML. Une version améliorée de nom XamlPadX v3 est téléchargeable depuis le blog de l'auteur.

Voir aussi[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Les 3 autres composants de .NET 3.0 sont :

Liens externes[modifier | modifier le code]

Notes[modifier | modifier le code]

  1. Différence entre UserControl et CustomControl
  2. L'approche Code Behind
  3. Page dédiée WPF sur le site officiel de Mono