Windows Presentation Foundation - Windows Presentation Foundation

Fondation de présentation Windows (WPF)
Auteur(s) original(aux) Microsoft
Développeur(s) Fondation .NET
Première version 21 novembre 2006 ; il y a 14 ans ( 2006-11-21 )
Version stable
v5.0.6 / 21 avril 2021 ; il y a 3 mois ( 2021-04-21 )
Dépôt Modifiez ceci sur Wikidata
Écrit en C# , C++ , C
Système opérateur Microsoft Windows
Plate-forme .NET Framework , .NET
Taper Cadre logiciel
Licence Licence MIT
Site Internet docs .microsoft .com /en-us /dotnet /framework /wpf /index

Windows Presentation Foundation ( WPF ) est un sous - système graphique gratuit et open source (similaire à WinForms ) développé à l'origine par Microsoft pour le rendu des interfaces utilisateur dans les applications Windows. WPF, précédemment connu sous le nom d'"Avalon", a été initialement publié dans le cadre de .NET Framework 3.0 en 2006. WPF utilise DirectX et tente de fournir un modèle de programmation cohérent pour la création d'applications. Il sépare l'interface utilisateur de la logique métier et ressemble à des modèles d'objets orientés XML similaires , tels que ceux implémentés dans XUL et SVG .

Aperçu

diagramme de pile de fenêtres à trois points zéro point net
Ce sous - système fait partie de .NET Framework 3.0 .

WPF utilise XAML , un langage basé sur XML , pour définir et lier divers éléments d'interface. Les applications WPF peuvent être déployées en tant que programmes de bureau autonomes ou hébergées en tant qu'objet intégré dans un site Web. WPF vise à unifier un certain nombre d' éléments d' interface utilisateur communs , tels que le rendu 2D/3D, les documents fixes et adaptatifs , la typographie , les graphiques vectoriels , l' animation d' exécution et les médias pré-rendus. Ces éléments peuvent ensuite être liés et manipulés en fonction de divers événements, interactions utilisateur et liaisons de données .

Les bibliothèques d'exécution WPF sont incluses avec toutes les versions de Microsoft Windows depuis Windows Vista et Windows Server 2008 . Les utilisateurs de Windows XP SP2/SP3 et Windows Server 2003 peuvent éventuellement installer les bibliothèques nécessaires.

Microsoft Silverlight a fourni des fonctionnalités qui sont principalement un sous-ensemble de WPF pour fournir des contrôles Web intégrés comparables à Adobe Flash . Le rendu d'exécution 3D était pris en charge dans Silverlight depuis Silverlight 5.

Lors de l' événement Microsoft Connect le 4 décembre 2018, Microsoft a annoncé la sortie de WPF en tant que projet open source sur GitHub . Il est publié sous la licence MIT . Windows Presentation Foundation est devenu disponible pour les projets ciblant le framework logiciel .NET , cependant, le système n'est pas multiplateforme et n'est toujours disponible que sur Windows.

Caractéristiques

Direct3D

Les graphiques, y compris les éléments du bureau comme les fenêtres, sont rendus à l'aide de Direct3D . Cela permet l'affichage de graphiques plus complexes et de thèmes personnalisés, au prix d' une plus large gamme de prise en charge de GDI et d'un thème de contrôle uniforme. Il permet à Windows de décharger certaines tâches graphiques sur le GPU . Cela réduit la charge de travail sur le processeur de l'ordinateur . Les GPU sont optimisés pour les calculs de pixels parallèles. Cela a tendance à accélérer les rafraîchissements d'écran au prix d'une diminution de la compatibilité sur les marchés où les GPU ne sont pas nécessairement aussi puissants, comme le marché des netbooks .

L'accent mis par WPF sur les graphiques vectoriels permet à la plupart des contrôles et des éléments d'être mis à l'échelle sans perte de qualité ou de pixelisation , augmentant ainsi l'accessibilité. À l'exception de Silverlight, l'intégration Direct3D permet un rendu 3D simplifié. De plus, le contenu 2D interactif peut être superposé de manière native sur des surfaces 3D.

Liaison de données

  • WPF dispose d'un ensemble intégré de services de données pour permettre aux développeurs d'applications de lier et de manipuler des données au sein des applications. Il prend en charge quatre types de liaison de données :
    1. une fois : où le client ignore les mises à jour sur le serveur.
    2. à sens unique : où le client a un accès en lecture seule aux données.
    3. bidirectionnel : où le client peut lire et écrire des données sur le serveur
    4. une façon de s'approvisionner : où le client a un accès en écriture seule aux données
  • Les requêtes LINQ , y compris LINQ to XML , peuvent également servir de sources de données pour la liaison de données.
  • La liaison des données n'a aucune incidence sur leur présentation. WPF fournit des modèles de données pour contrôler la présentation des données.
  • Un ensemble de contrôles intégrés est fourni dans le cadre de WPF, contenant des éléments tels que le bouton, le menu, les grilles et la zone de liste.
  • Les propriétés de dépendance peuvent être ajoutées aux comportements ou aux propriétés attachées pour ajouter des propriétés de liaison personnalisées.
  • Un concept puissant dans le WPF est la séparation logique d'un contrôle de son apparence.
    • Le modèle d'un contrôle peut être remplacé pour changer complètement son apparence visuelle.
    • Un contrôle peut contenir n'importe quel autre contrôle ou disposition, permettant un degré élevé de contrôle sur la composition.
  • Comporte des graphiques en mode conservé . Repeindre l'écran n'est pas toujours nécessaire.

Services médias

  • Le WPF fournit un système intégré pour la création d'interfaces utilisateur avec des éléments multimédias courants tels que des images vectorielles et raster, de l'audio et de la vidéo. WPF fournit également un système d'animation et un système de rendu 2D/3D.
  • WPF fournit des primitives de forme pour les graphiques 2D ainsi qu'un ensemble intégré de pinceaux, stylos, géométries et transformations.
  • Les capacités 3D dans WPF sont un sous-ensemble de l'ensemble complet fourni par Direct3D. Cependant, WPF offre une intégration plus étroite avec d'autres fonctionnalités telles que les interfaces utilisateur, les documents et les médias. Cela permet d'avoir des interfaces utilisateurs 3D, des documents 3D, ou des médias 3D.
  • Les formats d'image les plus courants sont pris en charge : BMP, JPEG, PNG, TIFF, Windows Media Photo , GIF et ICON.
  • WPF prend en charge les formats vidéo WMV , MPEG et certains fichiers AVI par défaut, mais comme Windows Media Player s'exécute en dessous, WPF peut utiliser tous les codecs installés pour cela.

Modèles

  • Dans WPF, vous pouvez définir l'apparence d'un élément directement, via ses propriétés, ou indirectement avec un modèle ou un style. Dans sa forme la plus simple, un style est une combinaison de paramètres de propriété pouvant être appliqués à un élément d'interface utilisateur avec un seul attribut de propriété. Les modèles sont un mécanisme permettant de définir une autre interface utilisateur pour des parties de votre application WPF. Il existe plusieurs types de modèles disponibles dans WPF (ControlTemplate, DataTemplate, HierarchicalDataTemplate et ItemsPanelTemplate).

Modèles de contrôle

  • Sous-jacent à tous les contrôles d'interface utilisateur dans WPF se trouve un nouveau modèle de composition. Chaque champ est composé d'un ou plusieurs 'visuels'. Ces sous-éléments visuels sont transformés en un arbre visuel hiérarchique par WPF et finalement rendus par le GPU. Étant donné que les contrôles WPF ne sont pas des wrappers pour les contrôles Windows standard, leur interface utilisateur peut être radicalement modifiée sans affecter le comportement normal du contrôle.
  • Chaque contrôle dans WPF a un « modèle » par défaut qui définit son arborescence visuelle. Le modèle par défaut est créé par l'auteur du contrôle et peut être remplacé par d'autres développeurs et concepteurs. L'interface utilisateur de remplacement est placée dans un ControlTemplate.

Modèles de données

  • WPF dispose d'un système de liaison de données flexible. Les éléments de l'interface utilisateur peuvent être remplis et synchronisés avec les données d'un modèle de données sous-jacent. Plutôt que d'afficher du texte simple pour les données liées, WPF peut appliquer un modèle de données (interface utilisateur remplaçable pour les types .NET) avant le rendu dans l'arborescence visuelle.

Animations

  • WPF prend en charge les animations temporelles, contrairement à l'approche basée sur les images. Cela dissocie la vitesse de l'animation des performances du système.
  • WPF prend en charge l'animation de bas niveau via des minuteries et des abstractions d'animation de niveau supérieur via les classes Animation.
    • Toute propriété d'élément WPF peut être animée tant qu'elle est enregistrée en tant que propriété de dépendance.
    • Les classes d'animation sont basées sur le type de propriété .NET à animer. Par exemple, changer la couleur d'un élément se fait avec la classe ColorAnimation et animer la largeur d'un élément (qui est tapé en double) se fait avec la classe DoubleAnimation.
  • Les animations peuvent être regroupées dans des storyboards.
    • Les storyboards sont le principal moyen de démarrer, d'arrêter, de mettre en pause et de manipuler les animations.
  • Les animations peuvent être déclenchées par des événements externes, y compris l'action de l'utilisateur.
  • Les redessins de scène sont déclenchés par le temps.
  • Les minuteurs de présentation sont initialisés et gérés par WPF.
  • Les effets d'animation peuvent être définis objet par objet, auxquels on peut accéder directement à partir du balisage XAML .

Imagerie

  • WPF peut accéder de manière native au code et aux API Windows Imaging Component (WIC) permettant aux développeurs d'écrire des codecs d'image pour leurs formats de fichier image spécifiques.

Effets

  • WPF 3.0 fournit des effets Bitmap (classe BitmapEffect), qui sont des effets raster appliqués à un Visual. Ces effets raster sont écrits dans du code non managé et forcent le rendu du visuel à être effectué sur le CPU et non le matériel accéléré par le GPU. BitmapEffects était obsolète dans .NET 3.5 SP 1.
  • .NET Framework 3.5 SP1 ajoute la classe Effect, qui est un effet Pixel-Shader 2.0 qui peut être appliqué à un visuel, ce qui permet à tout le rendu de rester sur le GPU.
  • La classe Effect est extensible, permettant aux applications de spécifier leurs propres effets de shader.
  • La classe Effect, dans .NET 3.5 SP1 et 4.0, est livrée avec deux effets intégrés, BlurEffect et DropShadowEffect. Il n'y a pas de remplacement direct pour OuterGlowBitmapEffect, EmbossBitmapEffect et BevelBitmapEffect, précédemment fournis par la classe obsolète BitmapEffect. Cependant, il existe d'autres moyens d'obtenir les mêmes résultats avec la classe Effect. Par exemple, les développeurs peuvent obtenir un effet de lueur externe en utilisant DropShadowEffect avec son ShadowDepth défini sur 0.
  • Bien que la classe BitmapEffect ait été marquée comme obsolète dans .Net Framework 3.5 SP1, son utilisation était toujours autorisée et ces effets étaient toujours rendus correctement. Dans .Net Framework 4.0, la classe BitmapEffect était effectivement dépréciée - le code référençant BitmapEffect est toujours généré sans erreur, mais aucun effet n'est réellement rendu.

Documents

  • WPF prend en charge nativement les documents paginés. Il fournit la DocumentViewerclasse, qui sert à lire des documents à mise en page fixe. La FlowDocumentReaderclasse propose différents modes d'affichage tels que par page ou défilant et redistribue également le texte si la zone d'affichage est redimensionnée.
  • Prend en charge nativement les documents XML Paper Specification .
  • Prend en charge la lecture et l'écriture de documents paginés à l'aide des conventions d'emballage ouvertes .

Texte

  • WPF inclut un certain nombre de fonctionnalités de rendu de texte qui n'étaient pas disponibles dans GDI . Il s'agit de la première interface de programmation Microsoft à exposer les fonctionnalités OpenType aux développeurs de logiciels, prenant en charge les polices OpenType, TrueType et OpenType CFF ( Compact Font Format ).
  • La prise en charge des fonctionnalités typographiques OpenType comprend :
  • WPF gère les textes en Unicode et gère les textes indépendamment des paramètres globaux, tels que les paramètres régionaux du système. De plus, des mécanismes de secours sont fournis pour permettre la gestion de la direction d'écriture (horizontale ou verticale) indépendamment du nom de la police ; créer des polices internationales à partir de polices composites, à l'aide d'un groupe de polices monolingues ; incorporation de polices composites. Les informations de liaison et de remplacement des polices sont stockées dans un fichier XML portable, à l'aide de la technologie des polices composites. Le fichier XML a l'extension .CompositeFont .
  • Le moteur de texte WPF prend également en charge la vérification orthographique intégrée . Il prend également en charge des fonctionnalités telles que l'interligne automatique, le texte international amélioré, le saut de ligne guidé par la langue, la césure et la justification, les effets bitmap, les transformations et les effets de texte tels que les ombres, le flou, la lueur, la rotation, etc. Le texte animé est également pris en charge ; cela fait référence aux glyphes animés, ainsi qu'aux changements en temps réel de la position, de la taille, de la couleur et de l'opacité du texte.
  • Le rendu de texte WPF tire parti des avancées de la technologie ClearType , telles que le positionnement sous-pixel, les largeurs d'avance naturelles, l'anticrénelage dans la direction Y , le rendu de texte accéléré par le matériel , ainsi que la mise en cache agressive du texte pré-rendu dans la mémoire vidéo. ClearType ne peut pas être désactivé dans les anciennes applications WPF 3.x. Contrairement au ClearType dans GDI ou GDI+, WPF ClearType n'aligne pas les glyphes sur les pixels horizontalement, ce qui entraîne une perte de contraste détestée par certains utilisateurs. Le moteur de rendu de texte a été réécrit dans WPF 4.0, corrigeant ce problème.
  • La mesure dans laquelle les glyphes sont mis en cache dépend de la carte vidéo. Les cartes DirectX 10 sont capables de mettre en cache les glyphes de police dans la mémoire vidéo , puis d'effectuer la composition (assemblage des glyphes de caractères dans le bon ordre, avec le bon espacement), le mélange alpha (application d'anticrénelage) et le mélange RVB (ClearType's calculs de couleur sous-pixel), entièrement en matériel. Cela signifie que seuls les glyphes originaux doivent être stockés dans la mémoire vidéo une fois par police (Microsoft estime que cela nécessiterait 2 Mo de mémoire vidéo par police), et d'autres opérations telles que l'affichage de texte anticrénelé au-dessus d'autres graphiques —y compris la vidéo—peut également être fait sans effort de calcul de la part du CPU. Les cartes DirectX 9 ne peuvent mettre en cache que les glyphes mélangés alpha en mémoire, obligeant ainsi le processeur à gérer la composition des glyphes et le mélange alpha avant de les transmettre à la carte vidéo. La mise en cache de ces glyphes partiellement rendus nécessite beaucoup plus de mémoire (Microsoft estime 5 Mo par processus). Les cartes qui ne prennent pas en charge DirectX 9 n'ont pas de capacités de rendu de texte avec accélération matérielle.

Interopérabilité

  • Windows Forms est également possible grâce à l'utilisation des classes ElementHostet WindowsFormsHost.

Pour activer l'utilisation de WinForms, le développeur exécute ceci à partir de son code WPF C# :

 System.Windows.Forms.Integration.WindowsFormsHost.EnableWindowsFormsInterop();

Entrée alternative

Accessibilité

  • WPF prend en charge Microsoft UI Automation pour permettre aux développeurs de créer des interfaces accessibles.
  • Cette API permet également aux scripts de test automatisés d'interagir avec l'interface utilisateur.

XAML

Suite au succès des langages de balisage pour le développement web, WPF introduit eXtensible Application Markup ( XAML ; / z æ m əl / ), qui est basé sur XML . XAML est conçu comme une méthode plus efficace de développement d'interfaces utilisateur d'application. L'avantage spécifique que XAML apporte à WPF est que XAML est un langage entièrement déclaratif , permettant au développeur (ou concepteur) de décrire le comportement et l'intégration des composants sans avoir recours à la programmation procédurale . Bien qu'il soit rare qu'une application entière soit entièrement construite en XAML, l'introduction de XAML permet aux concepteurs d'applications de contribuer plus efficacement au cycle de développement d'applications. L'utilisation de XAML pour développer des interfaces utilisateur permet également de séparer le modèle et la vue, ce qui est considéré comme un bon principe architectural. En XAML, les éléments et les attributs sont mappés aux classes et propriétés des API sous-jacentes.

Comme dans le développement Web, les mises en page et les thèmes spécifiques sont bien adaptés au balisage, mais XAML n'est pas requis pour l'un ou l'autre. En effet, tous les éléments de WPF peuvent être codés dans un langage .NET ( C# , VB.NET ). Le code XAML peut finalement être compilé dans un assembly managé de la même manière que tous les langages .NET.

Architecture

L'architecture WPF. Les éléments bleus sont des composants Windows ; les marrons sont des composants WPF.

L'architecture de WPF couvre à la fois le code managé et les composants de code natif . Cependant, l' API publique exposée n'est disponible que via du code managé. Alors que la majorité de WPF est en code managé, le moteur de composition qui rend les applications WPF est un composant natif. Il est nommé Media Integration Layer (MIL) et réside dans milcore.dll. Il s'interface directement avec DirectX et fournit une prise en charge de base des surfaces 2D et 3D, une manipulation contrôlée par minuterie du contenu d'une surface en vue d'exposer les constructions d'animation à un niveau supérieur et de composer les éléments individuels d'une application WPF en une 3D finale " scène" qui représente l'interface utilisateur de l'application et la restitue à l'écran. Le Desktop Window Manager utilise également le MIL pour la composition du bureau et de la fenêtre. Les codecs multimédias sont également implémentés dans du code non managé et sont fournis sous forme de fichiers windowscodecs.dll. Dans le monde managé, PresentationCore ( presentationcore.dll) fournit un wrapper managé pour MIL et implémente les services de base pour WPF, y compris un système de propriété qui connaît les dépendances entre les setters et les consommateurs de la propriété, un système de distribution de messages au moyen d'un Dispatcherobjet pour mettre en œuvre un système d'événement spécialisé et des services qui peuvent mettre en œuvre un système de mise en page tel que la mesure des éléments d'interface utilisateur. PresentationFramework ( presentationframework.dll) implémente les fonctionnalités de présentation de l'utilisateur final, y compris les mises en page, les animations basées sur le story-board en fonction du temps et la liaison de données.

WPF expose un système de propriétés pour les objets qui héritent de DependencyObject, qui connaît les dépendances entre les consommateurs de la propriété et peut déclencher des actions en fonction des modifications apportées aux propriétés. Les propriétés peuvent être des valeurs ou des expressions codées en dur, qui sont des expressions spécifiques qui évaluent un résultat. Dans la version initiale, cependant, l'ensemble d'expressions prises en charge est fermé. La valeur des propriétés peut également être héritée des objets parents. Les propriétés WPF prennent en charge les notifications de modification , qui appellent des comportements liés chaque fois qu'une propriété d'un élément est modifiée. Les comportements personnalisés peuvent être utilisés pour propager une notification de modification de propriété sur un ensemble d'objets WPF. Ceci est utilisé par le système de mise en page pour déclencher un recalcul de la mise en page sur les changements de propriété, exposant ainsi un style de programmation déclaratif pour WPF, où presque tout, de la définition des couleurs et des positions aux éléments d'animation, peut être réalisé en définissant les propriétés. Cela permet aux applications WPF d'être écrites en XAML , qui est un langage de balisage déclaratif, en liant les mots-clés et les attributs directement aux classes et propriétés WPF.

Les éléments d'interface d'une application WPF sont conservés en tant que classe d' Visualobjets. Les objets visuels fournissent une interface gérée à un arbre de composition qui est maintenu par Media Integration Layer (MIL). Chaque élément de WPF crée et ajoute un ou plusieurs nœuds de composition à l'arborescence. Les nœuds de composition contiennent des instructions de rendu, telles que des instructions de découpage et de transformation, ainsi que d'autres attributs visuels. Ainsi, l'application entière est représentée comme une collection de nœuds de composition, qui sont stockés dans un tampon dans la mémoire système. Périodiquement, MIL parcourt l'arbre et exécute les instructions de rendu dans chaque nœud, composant ainsi chaque élément sur une surface DirectX, qui est ensuite rendue à l'écran. MIL utilise l' algorithme du peintre , où tous les composants sont rendus de l'arrière de l'écran vers l'avant, ce qui permet d'obtenir facilement des effets complexes comme les transparences. Ce processus de rendu est accéléré matériellement à l'aide du GPU. L'arbre de composition est mis en cache par MIL, créant un graphique en mode conservé , de sorte que toute modification de l'arbre de composition n'a besoin d'être communiquée de manière incrémentielle à MIL. Cela libère également les applications de gestion de repeindre l'écran ; MIL peut le faire lui-même car il dispose de toutes les informations nécessaires. Les animations peuvent être mises en œuvre en tant que modifications déclenchées par le temps dans l'arbre de composition. Du côté visible par l'utilisateur, les animations sont spécifiées de manière déclarative, en définissant un effet d'animation sur un élément via une propriété et en spécifiant la durée. Le code-behind met à jour les nœuds spécifiques de l'arbre, via des Visualobjets, pour représenter à la fois les états intermédiaires à des intervalles de temps spécifiés ainsi que l'état final de l'élément. MIL rendra automatiquement les modifications apportées à l'élément. Toutes les applications WPF commencent par deux threads : un pour gérer l'interface utilisateur et un autre en arrière-plan pour gérer le rendu et la peinture. Le rendu et la peinture sont gérés par WPF lui-même, sans aucune intervention du développeur. Le thread d'interface utilisateur héberge le Dispatcher (via une instance de DispatcherObject), qui maintient une file d'attente d'opérations d'interface utilisateur à effectuer (sous forme d'arbre d' Visualobjets), triées par priorité. Les événements d'interface utilisateur, y compris la modification d'une propriété qui affecte la disposition, et les événements d'interaction utilisateur déclenchés sont mis en file d'attente dans le répartiteur, qui appelle les gestionnaires pour les événements. Microsoft recommande que les gestionnaires d'événements mettent uniquement à jour les propriétés pour refléter le nouveau contenu pour la réactivité de l'application, le nouveau contenu étant généré ou récupéré dans un thread d'arrière-plan. Le thread de rendu récupère une copie de l'arborescence visuelle et parcourt l'arborescence en calculant quels composants seront visibles et les rend sur des surfaces Direct3D. Le thread de rendu met également en cache l'arborescence visuelle, de sorte que seules les modifications apportées à l'arborescence doivent être communiquées, ce qui entraînera la mise à jour uniquement des pixels modifiés. WPF prend en charge un modèle de disposition extensible. La mise en page est divisée en deux phases : Mesure ; et arranger . La phase Mesurer appelle récursivement tous les éléments et détermine la taille qu'ils prendront. Dans la Arrangez phase, les éléments enfants sont disposés de manière récursive par leurs parents, invoquant l' algorithme de mise en page du module de mise en page en cours d' utilisation.

Outils

Un certain nombre d'outils de développement sont disponibles pour développer des applications Windows Presentation Foundation.

Outils Microsoft

  • Microsoft Visual Studio est un IDE orienté développeur qui contient une combinaison d'éditeur XAML et de concepteur visuel WPF, à partir de Visual Studio 2008.
  • Avant Visual Studio 2008, le complément du concepteur WPF , nommé Cider, était la version originale d'un éditeur WYSIWYG permettant de créer des fenêtres, des pages et des contrôles utilisateur WPF. Il était disponible pour Visual Studio 2005 en tant qu'extensions Visual Studio 2005 pour .NET Framework 3.0 CTP pour la version initiale de WPF.
  • Microsoft Visual Studio Express 2008 et les éditions ultérieures, en particulier Visual C# Express et Visual Basic Express, intègrent également le concepteur WPF.
  • Microsoft Blend est un outil orienté concepteur qui fournit un plan de travail pour la création d'applications WPF avec du contenu graphique 2D et 3D, du texte et des formulaires. Il génère du XAML qui peut être exporté vers d'autres outils et partage la solution (fichiers sln) et les formats de projet (csproj, vbproj) avec Microsoft Visual Studio.
  • Microsoft Expression Design est un outil graphique bitmap et vectoriel 2D pour l'exportation au format XAML .
  • XAMLPad est un outil léger inclus dans le SDK .NET Framework. Il peut créer et restituer des fichiers XAML à l'aide d'une disposition d'interface utilisateur à écran partagé. Il fournit également une arborescence du balisage dans un panneau.

Outils tiers

  • SharpDevelop , un IDE .NET open source, inclut des capacités de conception d'applications WPF. C'est une alternative gratuite à Visual Studio.
  • PowerBuilder .NET de Sybase est un outil 4GL qui traduit le code PowerBuilder, les objets graphiques en XAML et permet de déployer l'application en tant que cible WPF.
  • Essential Studio for WPF de Syncfusion est un package de plus de 100 contrôles d'interface utilisateur WPF modernes pour créer de belles applications WPF métier hautes performances.

Déploiement

Le modèle de déploiement de WPF propose à la fois des applications de navigateur autonomes et XAML (XBAP, prononcé "ex-bap"). Le modèle de programmation pour créer l'un ou l'autre type d'application est similaire.

Les applications autonomes sont celles qui ont été installées localement sur l'ordinateur à l'aide de logiciels tels que ClickOnce ou Windows Installer (MSI) et qui s'exécutent sur le bureau. Les applications autonomes sont considérées comme une confiance totale et ont un accès complet aux ressources d'un ordinateur.

Les applications de navigateur XAML ( XBAP ) sont des programmes hébergés dans un navigateur Web . Les applications XBAP pré-.NET4 s'exécutent dans un environnement de bac à sable de confiance partielle et n'ont pas un accès complet aux ressources de l'ordinateur et toutes les fonctionnalités WPF ne sont pas disponibles. L'environnement hébergé est destiné à protéger l'ordinateur contre les applications malveillantes. Les XBAP peuvent s'exécuter en tant qu'applications entièrement fiables dans .NET 4, avec un accès complet aux ressources informatiques. Le démarrage d'un XBAP à partir d'une page HTML ou vice versa est transparent (il n'y a pas d'invite de sécurité ou d'installation). Bien que l'on ait l'impression que l'application s'exécute dans le navigateur, elle s'exécute en fait dans un exécutable hors processus différent du navigateur.

Internet Explorer

À partir de la sortie de .NET Framework 3.0, les XBAP ne s'exécuteraient que dans IE.

Prise en charge de Firefox

Avec la sortie de .NET Framework 3.5 SP1, XBAP s'exécute également dans Mozilla Firefox en utilisant l'extension incluse. Le 16 octobre 2009, Mozilla a ajouté le plugin et l'extension Firefox à sa liste de blocs de modules complémentaires, en raison d'une grave faille de sécurité exploitable à distance, en accord avec Microsoft. Deux jours plus tard, le bloc a été retiré. Sous Windows 7, le plugin Firefox ne s'exécute pas par défaut. Une réinstallation du .NET Framework 3.5 SP1 installera le plugin et ajoutera la prise en charge des applications XBAP sur Firefox. Alternativement, la copie papier des DLL de plug-in à partir d'une installation Windows XP/Vista fonctionnelle vers le répertoire de plug-in de Mozilla Firefox rétablira également la prise en charge des applications XBAP. Les DLL du plugin WPF résident dans les répertoires suivants (selon la version du Framework) :

3.5 [SP1]
C:\Windows\Microsoft.NET\Framework\v3.5\WPF\NPWPF.dll
4.0
C:\Windows\Microsoft.NET\Framework\WPF\NPWPF.dll

Microsoft Silverlight

Silverlight (nom de code WPF/E) est un plug - in de navigateur inter-navigateurs obsolète qui contenait une technologie basée sur WPF (y compris XAML) qui fournissait des fonctionnalités telles que la vidéo, les graphiques vectoriels et les animations à plusieurs systèmes d'exploitation, notamment Windows 7 , Windows Vista , Windows XP , et Mac OS X . Microsoft a autorisé un nombre limité de développeurs tiers à travailler sur des ports pour certaines distributions Linux . Plus précisément, il a été fourni en tant que module complémentaire pour Mozilla Firefox , Internet Explorer 6 et supérieur, Google Chrome 42 et inférieur et Apple Safari .

Micro-cadre .NET

Le .NET Micro Framework inclut un modèle d'objet d'interface graphique vaguement basé sur WPF, bien que sans prise en charge de XAML.

Les références

Bibliographie

Liens externes