Ausführen einer WinForms-Anwendung im Webbrowser

8

Ich habe eine win-Formular-Anwendung und ich versuche, es im Web-Browser auszuführen, ich stöberte durch das Web und fand einige Links:

Ich habe versucht, diesen Link: Einbetten einer .NET WinForms-Anwendung in einem Internetbrowser, der WPF verwendet , das funktioniert gut, aber das Problem ist, dass der Endbenutzer dot net frame work zum Ausführen der Anwendung installieren muss.

Ich habe einen anderen Link für gefunden, der eine WinForms-Anwendung ausführt Web-Browser mit Visual WebGui Entwicklungsrahmen.

Hat jemand Erfahrung mit WebGui?

    
KF2 18.07.2013, 18:58
quelle

5 Antworten

0

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 dies mit .Net tun 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 "Metro" -Stil-Anwendung (a.k.a Windows Store App) benötigen, erstellen Sie eine WinRT XAML-Anwendung.

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

Wenn Ihre Kunden keine Version des .Net Framework installieren möchten, ist Ihre einzige Option # 1.

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

Ein XBAP (WPF-Browser-Anwendung) ist auch KEINE Web-Anwendung. Es ist nur eine normale WPF-Client-Anwendung, die kein eigenes Fenster hat.

Bearbeiten:

Wenn Sie Dinge auf die richtige Art und Weise getan haben (dh Trennung von Bedenken beibehalten und Anwendungslogik in Controllern oder ViewModels statt des schrecklichen Codes hinter Praktiken setzen, mit denen die meisten Winforms-Entwickler im Allgemeinen vertraut sind), It sollte nicht so schwer sein, Ihre Anwendungslogik wiederzuverwenden und eine neue Anwendung (web oder anders) zu erstellen, während die Schichten für Datenzugriff und Geschäftslogik intakt bleiben.

    
Federico Berasategui 18.07.2013, 19:37
quelle
10

Nun, Visual WebGui ist Web über ASP.NET. Die Entwicklungserfahrung ist der von Windows Forms, die den in Visual Studio integrierten Visual WebGui-Designer verwendet, ähnlich. Sie machen Ihren Code genau so wie in Windows Forms und die WebGui-Laufzeit wandelt ihn in HTML5 / CSS / JS um.

Der Aufwand, der erforderlich ist, um Ihre Windows Forms-Anwendung in eine gleichwertige Visual WebGui-Webanwendung zu konvertieren, hängt von den (3rd Party / .NET) Komponenten ab, die in Ihrer Windows Forms-Anwendung verwendet werden. Die Visual WebGui-API ähnelt stark der von Windows Forms. Daher können Sie in einigen Fällen einige Verweise auf WebGui-spezifische Assemblys und anschließend auf Suchen / Ersetzen für einige Namespaces hinzufügen. Es gibt natürlich einige Unterschiede, da dies zwei verschiedene Plattformen sind, aber die Entwicklungserfahrung ähnelt Windows Forms sehr.

    
Palli 24.07.2013 12:46
quelle
0

Ich denke, diese Frage ist dieser sehr ähnlich:

ist es möglich, ein WinForm in ein WebForm in .NET zu konvertieren?

Wie bereits erwähnt, ist die einzige Möglichkeit, die Anwendung "wie sie ist" in einem Browser auszuführen, die Verwendung einiger ActiveX-Steuerelemente, für die IE + .NET Framework erforderlich ist. Es gibt Tools, die Sie verwenden können, um die Anwendung automatisch ins Web zu migrieren, aber es wird immer etwas manuellen Aufwand geben und es wird nicht dasselbe sein wie das Erstellen der Anwendung von Grund auf als Web-App.

    
willvv 19.03.2015 17:51
quelle
0

Wenn keine .net-Datei erforderlich ist, können Sie die Winforms-App im Objekt-Tag als Plug-in ausführen. Dazu muss jedoch die Winforms-App auf dem Computer installiert werden. Sie müssen auch Objekte com sichtbar machen. Also, wenn Sie .net Installation vermeiden müssen, ist diese Lösung nicht für Sie.

    
user2117229 13.11.2015 18:56
quelle
0

In meiner begrenzten Erfahrung mit Visual WebGui ist es ziemlich coole Technologie. Vereinfacht ausgedrückt können Sie die Windows Forms-Entwicklungs-IDE verwenden, um eine HTML5-kompatible ASP.NET-Client / Server-Webanwendung zu erstellen ... nicht nur eine Website oder eine Seite mit Ein Erscheinungsbild, das einer Windows Forms Desktop-Anwendung sehr ähnlich ist. Dazu werden auf der Clientseite Winforms-Steuerelemente in jquery-Code konvertiert und der meiste ausführbare Code auf der Serverseite gespeichert.

Ich habe es verwendet, um einfache Anwendungen für Testzwecke zu erstellen, und es gibt ein paar Vorbehalte. Um eine "schöne" Website zu erstellen, müssen Sie zunächst das Winforms-Layout überarbeiten, um es webartig zu gestalten, mit Kopfzeilen, Seitenleisten usw. Es ist ein anderes Paradigma und die Benutzer erwarten bestimmte Dinge auf einer Website. Die gute Nachricht ist, dass diese Anpassung oft relativ einfach ist, indem man einfach die Steuerelemente manipuliert. ein Panel-Steuerelement kann zu einem Container für eine Sidebar oder einen Header werden. Sie können auch "Themen" erstellen, die wie Skins für die Steuerelemente sind, um die Darstellung zu ändern.

Eine weitere Überlegung ist, dass Ereignisse für Dinge wie Popup-Dialogfelder sich in einer Web-Umgebung anders verhalten. In Winforms Programmausführung angehalten, bis der Benutzer auf eine Schaltfläche "OK" oder etwas klickt. In Visual WebGui findet die gesamte Ausführung auf der Serverseite statt. Somit 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 gehandhabt werden. Aber diese Unterschiede sind zu beachten.

Sie müssen auch Objektlayoutanomalien berücksichtigen. Visual WebGui macht im Allgemeinen gute Arbeit, indem es den Winforms WYSIWYG Vorteil imitiert: Objekte erscheinen normalerweise ziemlich nah auf der Webseite, wo Sie sie in die Umgebung stellen. Aber das ist nicht immer der Fall; Sie müssen mit Object Padding, Margen usw. manchmal herumspielen, um das richtige Layout zu erhalten. Dennoch ist es oft viel einfacher als lästiges Ändern der Abstände mit CSS- oder div-Objekten.

    
MQuiggGeorgia 11.08.2014 15:48
quelle

Tags und Links