Formulaires Windows - Windows Forms

Formulaires Windows (WinForms)
Capture d'écran de WinForms Designer tel qu'il apparaît dans Visual Studio 2019.png
Autres noms WinForms
Auteur(s) original(aux) .NET : Microsoft ,
Mono : Ximian / Novell
Développeur(s) Fondation .NET
Première version 13 février 2002 ; il y a 19 ans ( 2002-02-13 )
Version stable
v5.0.0-rtm.20520.1 / 20 octobre 2020 ; il y a 10 mois ( 2020-10-20 )
Dépôt
Écrit en C#
Système opérateur Microsoft Windows
Plate-forme .NET Framework , .NET Core
Taper Cadre logiciel
Licence Licence MIT
Site Internet docs .microsoft .com /en-us /dotnet /framework /winforms /

Windows Forms (WinForms) est une bibliothèque de classes graphiques (GUI) gratuite et open source incluse dans Microsoft .NET , .NET Framework ou Mono Framework , fournissant une plate-forme pour écrire des applications clientes pour les ordinateurs de bureau, portables et tablettes. Bien qu'elle soit considérée comme un remplacement de la bibliothèque de classes Microsoft Foundation basée sur C++, plus ancienne et plus complexe , elle n'offre pas de paradigme comparable et agit uniquement comme une plate-forme pour le niveau d'interface utilisateur dans une solution à plusieurs niveaux .

Lors de l' événement Microsoft Connect le 4 décembre 2018, Microsoft a annoncé la sortie de Windows Forms en tant que projet open source sur GitHub . Il est publié sous la licence MIT . Avec cette version, Windows Forms est devenu disponible pour les projets ciblant le framework .NET Core . Cependant, le framework n'est toujours disponible que sur la plate-forme Windows et l' implémentation incomplète des Windows Forms par Mono reste la seule implémentation multiplateforme.

Architecture

Cette API fait partie de .NET Framework 3.0

Une application Windows Forms est une application événementielle prise en charge par le .NET Framework de Microsoft . Contrairement à un programme batch , il passe le plus clair de son temps à simplement attendre que l'utilisateur fasse quelque chose, comme remplir une zone de texte ou cliquer sur un bouton . Le code de l'application peut être écrit dans un langage de programmation .NET tel que C# ou Visual Basic .

Windows Forms permet d'accéder aux contrôles communs natifs de l'interface utilisateur Windows en encapsulant l' API Windows existante dans du code managé . Avec l'aide de Windows Forms, le .NET Framework fournit une abstraction plus complète au-dessus de l'API Win32 que Visual Basic ou MFC.

Windows Forms est similaire à la bibliothèque Microsoft Foundation Class (MFC) dans le développement d'applications clientes. Il fournit un wrapper constitué d'un ensemble de classes C++ pour le développement d'applications Windows. Cependant, il ne fournit pas de cadre d'application par défaut comme le MFC. Chaque contrôle d'une application Windows Forms est une instance concrète d'une classe.

Caractéristiques

Tous les éléments visuels de la bibliothèque de classes Windows Forms dérivent de la classe Control. Cela fournit les fonctionnalités minimales d'un élément d'interface utilisateur telles que l'emplacement, la taille, la couleur, la police, le texte, ainsi que des événements courants tels que le clic et le glisser/déposer. La classe Control prend également en charge l'ancrage pour permettre à un contrôle de réorganiser sa position sous son parent. La prise en charge de Microsoft Active Accessibility dans la classe Control aide également les utilisateurs handicapés à mieux utiliser les Windows Forms.

En plus de fournir un accès aux contrôles Windows natifs tels que les boutons, les zones de texte, les cases à cocher et les listes, Windows Forms a ajouté ses propres contrôles pour l' hébergement ActiveX , la disposition de la mise en page, la validation et la liaison de données riches. Ces contrôles sont rendus à l'aide de GDI +.

Histoire et avenir

Tout comme Abstract Window Toolkit (AWT), l' API Java équivalente , Windows Forms était un moyen simple et précoce de fournir des composants d' interface utilisateur graphique au .NET Framework . Windows Forms repose sur l'API Windows existante et certains contrôles enveloppent simplement les composants Windows sous-jacents. Certaines méthodes permettent un accès direct aux rappels Win32 , qui ne sont pas disponibles sur les plates-formes autres que Windows.

Dans .NET Framework 2.0, Windows Forms a obtenu des contrôles de mise en page plus riches, des contrôles de bande d'outils de style Office 2003, un composant multithread, une prise en charge plus riche de la conception et de la liaison de données ainsi que ClickOnce pour le déploiement basé sur le Web.

Avec la sortie de .NET 3.0, Microsoft a publié une deuxième API parallèle pour le rendu des interfaces graphiques : Windows Presentation Foundation (WPF) basée sur DirectX, ainsi qu'un langage déclaratif d'interface graphique appelé XAML .

Lors d'une session de questions-réponses lors de la conférence Build 2014 , Microsoft a expliqué que Windows Forms était en mode maintenance, sans ajout de nouvelles fonctionnalités, mais les bogues trouvés seraient toujours corrigés. Plus récemment, une prise en charge améliorée du DPI élevé pour divers contrôles Windows Forms a été introduite dans les mises à jour de .NET Framework version 4.5.

Rétrocompatibilité XAML avec Windows Forms

Pour le développement futur, Microsoft a remplacé Windows Forms avec une entrée d'interface graphique basée sur XAML utilisant des frameworks tels que WPF et UWP . Cependant, le placement par glisser-déposer des composants de l'interface graphique d'une manière similaire à Windows Forms est toujours fourni dans XAML en remplaçant l'élément XAML racine de la page/fenêtre par un contrôle d'interface utilisateur « Canvas ». Lors de cette modification, l'utilisateur peut créer une fenêtre de la même manière que dans Windows Forms en glissant-déposant directement des composants à l'aide de l'interface graphique de Visual Studio.

Alors que XAML fournit une compatibilité descendante du placement par glisser-déposer via le contrôle Canvas, les contrôles XAML sont uniquement similaires aux contrôles Windows Forms et ne sont pas rétrocompatibles un à un. Ils remplissent des fonctions similaires et ont une apparence similaire, mais les propriétés et les méthodes sont suffisamment différentes pour nécessiter un remappage d'une API à une autre.

Mise en œuvre alternative

Mono est un projet dirigé par Xamarin (anciennement par Ximian , puis Novell ) pour créer un ensemble d'outils compatible avec .NET Framework conforme à la norme Ecma .

En 2011, la prise en charge par Mono de System.Windows.Forms à partir de .NET 2.0 a été annoncée comme terminée ; System.Windows.Forms 2.0 fonctionne nativement sur Mac OS X. Cependant, System.Windows.Forms n'a pas été activement développé sur Mono. La compatibilité totale avec .NET n'était pas possible, car System.Windows Forms de Microsoft est principalement un wrapper autour de l' API Windows , et certaines des méthodes permettent un accès direct aux rappels Win32 , qui ne sont pas disponibles sur des plates-formes autres que Windows. Un problème plus important est que, depuis la version 5.2, Mono a été mis à niveau de sorte que sa valeur par défaut est de supposer une plate-forme 64 bits. Cependant, System.Windows.Forms sur Mono pour la plate-forme Macintosh OS X a été construit à l'aide d'un sous-système 32 bits, Carbon . À cette date, une version 64 bits de System.Windows.Forms pour une utilisation sur Mac OS X reste indisponible et seules les applications .NET conçues pour la plate-forme 32 bits peuvent être exécutées.

Voir également

Les références

Liens externes