Partager via


Comment choisir entre Windows Forms et Web Forms

Mise à jour : novembre 2007

Lorsque vous commencez à développer des applications avec une interface utilisateur, vous pouvez utiliser des Windows Forms ou des Web Forms. Ces deux types de formulaires bénéficient d'une prise en charge complète au moment du design dans l'environnement de développement et peuvent offrir une interface utilisateur élaborée ainsi que des fonctionnalités d'application avancées capables de résoudre les problèmes d'entreprise. À cause de cette parité de fonctionnalités, vous pouvez trouver difficile de déterminer la technologie appropriée à une application donnée.

Certaines considérations sur l'application peuvent rendre le choix évident. Par exemple, si vous créez un site Web de commerce électronique qui sera accessible au public via Internet, vous développerez l'application à l'aide de pages Web Forms. Si vous créez une application à traitement intensif et hautement réactive devant utiliser au maximum de leurs possibilités les fonctionnalités de l'ordinateur client (par exemple, une application de productivité de l'entreprise), vous utiliserez des Windows Forms. Toutefois, dans d'autres cas, le choix sera plus difficile.

Les sections suivantes traitent des fonctionnalités et des caractéristiques de chaque technologie pour vous aider à identifier celle qui est la mieux adaptée à votre application.

Utilisation des Windows Forms

Vous développez des applications avec des Windows Forms lorsque vous souhaitez que l'application cliente se charge d'une grande part du traitement dans une application. Ces applications clientes incluent des applications bureautiques Win32 traditionnellement développées dans les versions antérieures de Visual Basic et Visual C++. Il s'agit par exemple d'applications de dessin ou graphiques, de systèmes de saisie de données et de point de vente ainsi que de jeux.

Ces applications s'appuient sur la puissance des ordinateurs de bureau pour le traitement et l'affichage de contenu haute performance. Certaines applications Windows Forms peuvent être entièrement autonomes et effectuer tout le traitement sur l'ordinateur de l'utilisateur. Les jeux sont souvent écrits ainsi. D'autres applications peuvent faire partie d'un système plus large et avoir recours à l'ordinateur de l'utilisateur principalement pour traiter les données entrées par celui-ci. Par exemple, un système de point de vente nécessite souvent une interface élaborée et réactive qui est créée sur l'ordinateur de bureau, mais reliée à d'autres composants qui effectuent les traitements principaux.

Vous créez une application Windows Forms sur une infrastructure Windows ; par conséquent, elle a accès aux ressources système de l'ordinateur client (fichiers locaux, Registre Windows, imprimante, etc.). Ce niveau d'accès peut être restreint pour éliminer tous les risques d'atteinte à la sécurité et tous les problèmes pouvant découler d'un accès indésirable. En outre, les Windows Forms peuvent avoir recours aux classes graphiques du .NET Framework et GDI+ pour créer une interface dotée de riches caractéristiques graphiques, ce qui est souvent exigé pour les applications de jeu ou d'exploration de données.

Utilisation des Web Forms

Vous utilisez les Web Forms ASP.NET pour créer des applications qui ont à l'origine une interface utilisateur de navigateur. Cela inclut bien sûr les applications destinées à être mises à la disposition du public par le biais du Web, telles que les applications de commerce électronique. Toutefois, vous pouvez également utiliser les Web Forms pour d'autres finalités que la création de sites Web : beaucoup d'autres applications se prêtent à un front end « mince », telles que les applications Internet tenant le registre des employés ou calculant leurs avantages. Un atout important des applications Web Forms réside dans le fait qu'elles n'ont pas de coûts de distribution. Les utilisateurs ont déjà installé la seule partie de l'application dont ils ont besoin : le navigateur.

Les applications Web Forms sont indépendantes de toute plate-forme ; autrement dit, elles sont « accessibles ». Les utilisateurs peuvent interagir avec votre application quel que soit le type de leur navigateur et même de leur ordinateur. En même temps, vous pouvez optimiser les applications Web Forms afin de profiter des fonctionnalités intégrées à la dernière génération de navigateurs, par exemple Microsoft Internet Explorer 6.0, pour améliorer les performances et la réactivité.

Remarque :

Dans de nombreux cas, cette optimisation est intégrée aux composants Web Forms que vous utilisez. Ces composants peuvent détecter automatiquement des niveaux de navigateur et assurer le rendu des pages en conséquence.

Les applications Web Forms offrent certaines fonctionnalités qui sont utiles même dans d'autres contextes que le Web. Parce qu'elles s'appuient sur HTML, les applications Web Forms sont adaptées à tous les types d'applications faisant un usage intensif de texte et tout particulièrement celles dans lesquelles la mise en forme du texte revêt une certaine importance. Alors que les applications basées sur un navigateur ont généralement un accès limité aux ressources système des utilisateurs, cette limitation rend des applications Web Forms utiles dans les situations où vous souhaitez empêcher l'accès d'utilisateurs à certaines parties de votre application.

Comparaison des Windows Forms et des Web Forms

Le tableau suivant offre une comparaison des différents critères propres aux applications et de la façon dont les technologies Windows Forms et Web Forms répondent à ces critères.

Fonctionnalité/Critère

Windows Forms

Web Forms

Déploiement

Les Windows Forms permettent un déploiement « No-Touch » avec ClickOnce, où les applications peuvent être téléchargées, installées et exécutées directement sur les ordinateurs des utilisateurs sans aucune altération du Registre. Pour plus d'informations sur ClickOnce, consultez Vue d'ensemble du déploiement ClickOnce.

Les Web Forms n'ont pas de déploiement client ; celui-ci ne requiert qu'un navigateur. Le serveur doit utiliser Microsoft .NET Framework. Les mises à jour de l'application sont faites par mise à jour du code sur le serveur.

Graphiques

Les Windows Forms incluent GDI+, qui active des graphiques sophistiqués pour les jeux et d'autres environnements graphiques extrêmement riches.

Les graphiques interactifs ou dynamiques requièrent des aller-retour au serveur pour les mises à jour lorsqu'ils sont utilisés sur les Web Forms. GDI+ peut être utilisé sur le serveur pour créer des graphiques personnalisés.

Réactivité

Les Windows Forms peuvent s'exécuter entièrement sur l'ordinateur client ; ils sont capables d'offrir la réponse la plus rapide aux applications exigeant un haut niveau d'interactivité.

Si vous savez que les utilisateurs disposeront d'Internet Explorer 5 ou d'une version ultérieure, une application Web Forms peut utiliser les fonctionnalités DHTML pour créer une interface utilisateur élaborée et réactive. Si les utilisateurs disposent d'autres navigateurs, l'essentiel du traitement (y compris les tâches relatives à l'interface utilisateur, telles que la validation) nécessite un aller-retour jusqu'au serveur Web, ce qui peut être au détriment de la réactivité.

Contrôle de formulaire et de flux de texte

La capacité de positionnement de grille des Windows Forms vous permet de préciser très exactement les coordonnées bidimensionnelles (abscisse et ordonnée) des contrôles.

Pour afficher du texte dans des Windows Forms, vous devez insérer le texte dans des contrôles (par exemple, dans le contrôle Label, TextBox ou RichTextBox). La mise en forme est limitée.

Les Web Forms sont basés sur la mise en page fluide de style HTML et prennent par conséquent en charge toutes les fonctionnalités de formatage de page Web. Ils sont particulièrement riches pour tout ce qui concerne la mise en forme du texte.

La disposition des contrôles peut être managée de façon adéquate (avec certaines limitations toutefois ; par exemple l'interdiction du chevauchement des contrôles). Si les utilisateurs sont équipés de navigateurs compatibles DHTML, vous pouvez spécifier une disposition beaucoup plus précise avec des coordonnées bidimensionnelles (abscisse et ordonnée).

Plate-forme

Les Windows Forms requièrent l'utilisation du .NET Framework sur l'ordinateur client.

Les Web Forms n'exigent qu'un navigateur. Les navigateurs compatibles DHTML peuvent utiliser des fonctionnalités supplémentaires, mais les Web Forms peuvent être conçus de façon à fonctionner avec tous les navigateurs. Le serveur Web doit utiliser le .NET Framework.

Accès aux ressources locales (système de fichiers, Registre Windows, etc.)

Lorsqu'elles en ont la permission, les applications peuvent avoir un accès total aux ressources de l'ordinateur local. Au besoin, il est possible d'empêcher avec précision que les applications utilisent des ressources spécifiques.

La sécurité du navigateur empêche l'application d'accéder aux ressources de l'ordinateur local.

Modèle de programmation

Les Windows Forms sont basés sur un mode de pompe de messages Win32 côté client, dans lequel des instances de composants sont créées, utilisées et annulées par le développeur.

Les Web Forms reposent sur un modèle déconnecté largement asynchrone, dans lequel les composants sont faiblement couplés avec le front end de l'application. En général, les composants d'application sont appelés par le biais de HTTP. Ce modèle peut ne pas convenir aux applications exigeant un débit élevé du côté utilisateur ou impliquant d'importants volumes de transactions. De la même façon, les Web Forms ne seront peut-être pas adaptés aux applications de base de données exigeant un niveau élevé de contrôle de la concurrence (avec verrouillage pessimiste, par exemple).

Sécurité

Les Windows Forms utilisent des autorisations pour l'implémentation de la sécurité d'accès du code, afin de protéger les ressources de l'ordinateur et les informations sensibles. Cela permet une mise à disposition prudente des fonctionnalités tout en préservant la sécurité. Par exemple, l'autorisation d'impression pourrait à un niveau permettre la sortie sur l'imprimante par défaut uniquement et à un autre niveau permettre la sortie sur n'importe quelle imprimante. À l'aide de ClickOnce, les développeurs peuvent facilement configurer les autorisations que leurs applications doivent et ne doivent pas demander au client. Pour plus d'informations, consultez Déploiement et sécurité ClickOnce.

La permission d'accès aux ressources d'une application Web est généralement gérée pour chaque URL par vérification des informations d'identification (par exemple, une paire nom/mot de passe) du demandeur. Les Web Forms permettent au développeur de contrôler l'identité sous laquelle le code d'application serveur est exécuté. Les applications peuvent exécuter le code sous l'identité de l'entité demandeuse par un processus dit d'« emprunt d'identité ». Les applications peuvent aussi personnaliser dynamiquement le contenu en fonction de l'identité ou du rôle du demandeur. Par exemple, un responsable de service pourrait obtenir un accès à un site ou à un niveau de contenu plus élevé qu'une autre personne disposant de permissions inférieures.

Voir aussi

Concepts

Vue d'ensemble du déploiement ClickOnce

Référence

Vue d'ensemble des Windows Forms