web-dev-qa-db-fra.com

Exécution d'une application WinForms dans un navigateur Web

J'ai une application de formulaire de gain et j'essaye de l'exécuter dans le navigateur Web, j'ai fouillé sur le Web et trouvé des liens:

J'ai essayé ce lien: Incorporation d'une application .NET WinForms dans un navigateur Internet avec WPF , cela fonctionne bien, mais le problème est que l'utilisateur final doit installer dot net frame work pour exécuter l'application.

J'ai trouvé un autre lien ici pour exécutant un navigateur Web WinForms Application , avec Visual WebGui framework de développement.

Quelqu'un at-il eu une expérience avec WebGui?

9
KF2

winforms n'est pas Web. Web est Web.

Web signifie HTML + quelque chose (généralement JavaScript, CSS et probablement jQuery ou autre).

1 - Si vous avez besoin d’une application Web et que vous voulez le faire avec .Net, créez une application ASP.Net.

2 - Si vous avez besoin d’une application Windows (Desktop), créez une application WPF.

3 - Si vous avez besoin d'une application de style "Metro" Windows 8 (a.k.a Windows Store App), créez une application WinRT XAML.

4 - winforms est complètement inutile. Oublie ça.

Si vos clients ne souhaitent installer aucune version de .Net Framework, votre seule option est la n ° 1.

Une application winforms ne sera JAMAIS une application Web, quelles que soient les manipulations que vous fassiez pour la faire fonctionner dans un navigateur Web.

un XBAP (application de navigateur WPF) n'est PAS une application Web. C'est juste une application cliente WPF normale qui n'a pas sa propre fenêtre.

Modifier:

Si vous avez fait les choses de la manière right (c’est-à-dire maintenir la séparation des préoccupations et placer la logique de l’application dans Controllers ou ViewModels à la place du code épouvantable derrière les pratiques habituelles de la plupart des développeurs de winforms), cela ne devrait pas être que Il est difficile de réutiliser votre logique d’application et de créer une nouvelle application (Web ou autre) tout en conservant intactes les couches Data Access et Business Logic.

1

Eh bien, Visual WebGui is web sur ASP.NET. Son expérience de développement est la même/similaire à celle de Windows Forms utilisant le concepteur Visual WebGui intégré à Visual Studio. Vous faites votre code de la même manière que sur Windows Forms et le moteur d’exécution WebGui le transforme en HTML5/CSS/JS.

Les efforts nécessaires pour convertir votre application Windows Forms en une application Web Visual WebGui Web équivial dépendent des composants (tiers/.NET) utilisés dans votre application Windows Forms. L'API Visual WebGui étant très similaire à celle de Windows Forms, vous pouvez dans certains cas ajouter quelques références à des assemblys spécifiques à WebGui, puis effectuer une recherche/remplacement pour quelques espaces de nom. Il y a bien sûr quelques différences, car il s'agit de deux plates-formes différentes, mais l'expérience de développement est assez similaire à celle de Windows Forms.

11
Palli

Dans mon expérience limitée avec Visual WebGui , c'est une technologie plutôt cool. Si je comprends bien, vous pouvez utiliser le développement de Windows Forms IDE pour créer un client/serveur ASP.NET compatible Web application ... et pas seulement un site Web. un site ou une page, avec une apparence très semblable à une application de bureau Windows Forms. Pour ce faire, il convertit les contrôles Winforms en code jQuery côté client et stocke la plupart du code exécutable côté serveur.

Je l'ai utilisé pour créer des applications simples à des fins de test, et il y a quelques mises en garde. Tout d'abord, pour créer un "joli" site Web, vous devez repenser la présentation de Winforms afin de la rendre semblable au Web, avec des en-têtes, des barres latérales, etc. C'est un paradigme différent, et les utilisateurs s'attendent à certaines choses sur un site Web. La bonne nouvelle est que cet ajustement peut souvent être effectué assez facilement en manipulant simplement les commandes. c'est-à-dire qu'un contrôle Panel peut devenir un conteneur pour une barre latérale ou un en-tête. Vous pouvez également créer des "thèmes", qui sont comme des enveloppes pour les contrôles permettant de modifier l'apparence.

Une autre considération est que les événements tels que les boîtes de dialogue contextuelles se comportent différemment dans un environnement Web. Dans Winforms, l’exécution du programme s’arrête jusqu’à ce que l’utilisateur clique sur un bouton "OK" ou quelque chose du genre. Dans Visual WebGui, toute l’exécution s’effectue côté serveur; ainsi, l'exécution du programme continuerait sans attendre l'intervention de l'utilisateur. Cela peut être géré en créant un gestionnaire Form.Close pour la boîte de dialogue contextuelle. Mais il faut garder à l’esprit ces types de différences.

Vous devez également prendre en compte les anomalies de disposition des objets. En général, Visual WebGui imite bien l’avantage Winforms WYSIWYG: les objets apparaissent généralement assez proches de la page Web de leur emplacement dans l’environnement. Mais ce n'est pas toujours le cas. vous devez jouer avec le remplissage d'objet, les marges, etc. parfois pour obtenir la bonne mise en page. Néanmoins, il est souvent beaucoup plus facile que de changer fastidieusement l’espacement avec des objets CSS ou div.

0
MQuiggGeorgia

Je pense que cette question est très similaire à celle-ci:

Est-il possible de convertir un WinForm en un WebForm dans .NET?

Comme mentionné précédemment, le seul moyen d'exécuter l'application "en l'état" dans un navigateur consiste à utiliser un contrôle ActiveX, ce qui nécessiterait IE + .NET Framework. Il existe des outils que vous pouvez utiliser pour migrer automatiquement l'application vers le Web, mais des efforts manuels seront toujours nécessaires et ce ne sera pas la même chose que de créer l'application à partir de zéro en tant qu'application Web.

0
willvv