wake-up-neo.com

Ausführen einer WinForms-Anwendung im Webbrowser

Ich habe eine Win-Formular-Anwendung und ich versuche, sie im Webbrowser auszuführen. Ich habe im Web gestöbert und einige Links gefunden:

Ich habe diesen Link ausprobiert: Einbetten einer .NET WinForms-Anwendung in einen Internetbrowser Mit WPF funktioniert dies problemlos, aber das Problem ist, dass der Endbenutzer dot net frame work installieren muss, um die Anwendung auszuführen.

Ich habe hier einen weiteren Link gefunden, um eine WinForms-Anwendung im Webbrowser auszuführen , mit dem Visual WebGui - Entwicklungsframework.

Hat jemand irgendwelche Erfahrungen mit WebGui?

9
KF2

winforms ist kein web. Web ist Web.

Web bedeutet HTML + etwas (normalerweise JavaScript, CSS und wahrscheinlich jQuery oder so).

1 - Wenn Sie eine Webanwendung benötigen und diese mit .NET ausführen möchten, erstellen Sie eine ASP.Net-Anwendung.

2 - Wenn Sie eine Windows-Anwendung (Desktop) benötigen, erstellen Sie eine WPF-Anwendung.

3 - Wenn Sie eine Windows 8-Anwendung im Metro-Stil (eine Windows Store-App) benötigen, erstellen Sie eine WinRT XAML-Anwendung.

4 - winforms ist völlig nutzlos. Vergess das.

Wenn Ihre Kunden keine Version von .Net Framework installieren möchten, haben Sie nur die Option 1.

Eine Winforms-Anwendung wird NIEMALS eine Webanwendung sein, unabhängig davon, welche Hacks Sie ausführen, um sie in einem Webbrowser auszuführen.

eine XBAP (WPF-Browseranwendung) ist ebenfalls KEINE Webanwendung. Es ist nur eine normale WPF-Client-Anwendung, die kein eigenes Fenster hat.

Bearbeiten:

Wenn Sie die Dinge auf die richtige Weise getan haben (das heißt, die Trennung der Bedenken aufrechtzuerhalten und die Anwendungslogik in Controllern oder ViewModels zu platzieren, anstatt den schrecklichen Code, an den die meisten Winforms-Entwickler gewöhnt sind), sollte es nicht so schwer sein Verwenden Sie Ihre Anwendungslogik erneut und erstellen Sie eine neue Anwendung (im Web oder auf andere Weise), während die Layer Data Access und Business Logic intakt bleiben.

Nun, Visual WebGui ist web über ASP.NET. Die Entwicklungserfahrung entspricht der von Windows Forms mit dem in Visual Studio integrierten Visual WebGui-Designer. Sie erstellen Ihren Code genauso wie in Windows Forms, und die WebGui-Laufzeitumgebung wandelt ihn in HTML5/CSS/JS um.

Der Aufwand für die Konvertierung Ihrer Windows Forms-Anwendung in eine gleichwertige Visual WebGui-Webanwendung hängt von den in Ihrer Windows Forms-Anwendung verwendeten Komponenten (von Drittanbietern/.NET) ab. Die Visual WebGui-API ähnelt weitgehend der von Windows Forms, sodass Sie in einigen Fällen einige Verweise auf WebGui-spezifische Assemblys und dann auf Suchen/Ersetzen für einige Namespaces hinzufügen können. Es gibt natürlich einige Unterschiede, da es sich um zwei verschiedene Plattformen handelt, aber die Entwicklungsumgebung ähnelt der von Windows Forms.

11
Palli

Nach meiner begrenzten Erfahrung mit Visual WebGui ist es eine ziemlich coole Technologie. In einfachen Worten, so wie ich es verstehe, können Sie die Windows Forms-Entwicklung IDE verwenden, um ein HTML5-kompatibles ASP.NET-Client/Server-Web application ... zu erstellen, nicht nur ein Web Website oder Seite mit einem Erscheinungsbild, das einer Windows Forms-Desktopanwendung sehr ähnlich ist. Dazu werden Winforms-Steuerelemente auf der Clientseite in JQuery-Code konvertiert und der größte Teil des ausführbaren Codes wird auf der Serverseite gespeichert.

Ich habe es verwendet, um einfache Anwendungen zu Testzwecken zu erstellen, und es gibt ein paar Einschränkungen. Um eine "hübsche" Website zu erstellen, müssen Sie zunächst das Winforms-Layout überdenken, damit es wie ein Web mit Kopfzeilen, Seitenleisten usw. aussieht. Es ist ein anderes Paradigma, und Benutzer erwarten bestimmte Dinge auf einer Website. Die gute Nachricht ist, dass diese Einstellung oft recht einfach durch einfaches Manipulieren der Steuerelemente vorgenommen werden kann. ein Panel-Steuerelement kann ein Container für eine Seitenleiste oder eine Kopfzeile werden. Sie können auch "Designs" erstellen, die wie Skins für die Steuerelemente aussehen, um das Erscheinungsbild zu ändern.

Eine weitere Überlegung ist, dass Ereignisse für Elemente wie Popup-Dialogfelder sich in einer Webumgebung anders verhalten. In Winforms wird die Programmausführung angehalten, bis der Benutzer auf die Schaltfläche "OK" klickt. In Visual WebGui erfolgt die gesamte Ausführung auf der Serverseite. Daher würde die Programmausführung fortgesetzt, ohne auf Benutzereingaben zu warten. Dies kann jedoch durch Erstellen eines Form.Close-Handlers für das Popup-Feld geschehen. Diese Unterschiede müssen jedoch berücksichtigt werden.

Sie müssen auch Objektlayoutanomalien berücksichtigen. Visual WebGui leistet im Allgemeinen gute Arbeit bei der Nachahmung des Winforms WYSIWYG-Vorteils: Objekte werden auf der Webseite normalerweise ziemlich nahe an der Stelle angezeigt, an der Sie sie in die Umgebung einfügen. Dies ist jedoch nicht immer der Fall. Manchmal müssen Sie mit Objektabständen, Rändern usw. herumspielen, um das richtige Layout zu erhalten. Trotzdem ist es oft einfacher als mühsame Abstandsänderungen mit CSS- oder div-Objekten.

0
MQuiggGeorgia

Ich denke, diese Frage ist dieser sehr ähnlich:

Ist es möglich, eine WinForm in eine WebForm in .NET zu konvertieren?

Wie bereits erwähnt, besteht die einzige Möglichkeit, die Anwendung "wie sie ist" in einem Browser auszuführen, in der Verwendung eines ActiveX-Steuerelements, für das IE + .NET Framework erforderlich wäre. Es gibt Tools, mit denen Sie die Anwendung automatisch in das Web migrieren können. Es ist jedoch immer ein manueller Aufwand erforderlich, und es ist nicht dasselbe, die Anwendung als Web-App von Grund auf neu zu erstellen.

0
willvv