Frage

Ich suche nach einem Framework, mit dem ich meine Anwendung über eine webbasierte GUI (unter Verwendung eines eingebetteten Webservers) anstelle von Winforms verwalten kann.

Etwas wie das: http://www.webtoolkit.eu/wt aber dann für .NET

In meinem Code sollte ich in der Lage sein, Klassen zu instanziieren (wie Schaltflächen, Formulare usw.), und wenn ein Benutzer zu einem bestimmten Port navigiert, sollte die App ihn als Javascript/Ajax usw. usw. rendern.Wenn Tasten gedrückt werden, sollte vorzugsweise eine Benachrichtigung in meinem Code aufgerufen werden.

Dies ist eine weniger spezifische Frage als eine andere, die ich zu extjs gepostet habe.Ich hoffe, dass dies mehr Zuschauer anzieht, da es allgemeiner ist

Danke.


Aktualisieren:

Cassini-ähnliche Lösungen sind hierfür nicht geeignet.Da der Webbrowser in meine Anwendung eingebettet ist, sind keine serverseitigen ASP.NET-Skripte erforderlich.Ich hätte lieber das Framework und rufe Funktionen in meiner Anwendung auf, wenn auf der Seite etwas passiert.onButtonClicked() zum Beispiel.

War es hilfreich?

Lösung

Wie wäre es das Einbetten Cassinni und mit ASP.NET?

Andere Tipps

Das könnte Sie verwenden, um die System.Net.HttpListener Klasse als eingebetteten Webserver. Die Httplistener wird tun, um die Low-Level-Material für Sie, aber Sie werden den Code zu schreiben, der die HTML / JavaScript / Bilder, um sich zurück.

ich es ausprobiert nur zum Spaß selbst, Einbettung firefox mit GeckoFX gegen eine web Server in der Anwendung selbst eingebettet. Es schien gut zu funktionieren, aber mein Test war sehr einfach und begrenzt.

Sie können die Host die ASP.NET-Laufzeit in Ihrer eigenen Anwendung und die Verwendung jeden Web-UI-Framework wie LiveUI oder so etwas. Sehen Sie, wie zu tun, um diese hier .

Wenn Sie ASP.NET (mit Entwicklungsserver oder cassini) verwenden könnten dann würde Ihre Aufgabe einfacher sein. Ich empfehle diesen Ansatz. In diesem Fall könnten Sie liveui, ComponentArt oder teleric verwenden. liveui bietet ExtJS basiertes Framework 3-tiered Web-Anwendungen zu implementieren. ComponentArt und teleric schön ASP.net Steuerelemente bieten.

Während webui wahrscheinlich als Httphandler ohne ASP.net Infrastruktur arbeiten können. Aber ich würde nicht zu verwenden, weil webui 1 mögliche Leistungsprobleme 2 komplex und unflexibel Programmiermodell empfehlen.

Sind Sie auf das Framework beschränkt, das Ihre Anwendung unterstützen kann?Wenn Sie .NET 3.0+ verwenden können, Die Windows Presentation Foundation kann sowohl für Webanwendungen (über xbapp oder silverlight) als auch für herkömmliche Windows Form-Anwendungen verwendet werden.

Was die Kommunikation zwischen Apps betrifft, ist dies der Punkt Windows Communication Foundation (WCF) glänzt wirklich.

Zur Verdeutlichung: Sie könnten Ihre Webanwendung mit Casini hosten und die WCF für die Kommunikation zwischen ihr und Ihrer Anwendung verwenden oder XAML verwenden, um Ihre Anwendung zu markieren und sie sowohl als Webanwendung als auch als normale Windows-Anwendung mit derselben Benutzeroberfläche verfügbar zu machen.

Wenn Sie automatisch konvertieren möchten WinForms-Code zu HTML ausgeführt wird, sind Sie bereits in tiefem Wasser. Ich habe etwas ähnliches getan mit Visuelle WebGui , aber es erfordert Ihren Code zu modifizieren und wird im Grunde eine ASP generieren. NET-Anwendung für Sie -. einen tatsächlichen Web-Server benötigen, um sie auszuführen

Ich sehe Sie nicht wie die Cassini Option -. Wenn Sie dies auch erwarten arbeiten ohne ein Web-Server, dann denke ich, die schnelle Antwort ist, „no way“

Wenn Sie eine relativ einfache Schnittstelle haben, ich denke, Ihre beste Wette wahrscheinlich ist es, den HTML-Code dynamisch, entweder von bestehenden Formularen oder von Grund auf neu zu erzeugen, und gehen Sie mit System.Net.HttpListener.

Ich habe vor langer Zeit ein .NET 2.0-Projekt gemacht, das im Grunde eins hatte Webbrowser Kontrolle.
Ich würde das WebBrowser-Steuerelement über seine Dokumenteigenschaften mit HTML versorgen und auf das Navigationsereignis hören, um den HTML-Code aus meiner Ressource abzurufen (oder ihn sofort zu erstellen) und ihn erneut dem WebBrowser-Steuerelement zuzuführen.

Jetzt beginnt der Spaß mit dem ObjectForScripting Eigentum.Dadurch kann Ihre HTML-Seite über Javascript mit einem .NET-Objekt kommunizieren, wie zum Beispiel: window.external.SomeNetFunction(bla).
Vergessen Sie nicht, das hinzuzufügen ComVisible Attribut der Klasse, die in verwendet wird ObjectForScripting.

Ich hoffe, das ist es, wonach Sie suchen.Bei dieser Lösung verfügen Sie über eine Webseite, auf der Sie navigieren und über Javascript mit Ihrer App kommunizieren können.(So ​​kommen Sie einer .NET-Version von AIR nahe...)

DevExpress hat ein Produkt, das tut, was Sie benötigen. Sie werden allerdings dafür haben zu berappen ...

http://www.devexpress.com/Products/NET/Application_Framework/

Ich würde vorschlagen, die Linux-Route statt und verlassen uns auf so etwas wie ein eingebettetes httpd, boa oder ähnliches gehen Größe zu halten. Ausführen von Windows ist nicht auf Embedded-Systemen empfohlen, zu viel aufblasen und zu viele Sicherheitslücken. Besser geht mit Linux oder einem RTOS.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top