Frage

Wenn Sie eine GUI-Anwendung schreiben würden, die lokal ausgeführt wird und einen Webservice aufruft, um plattformübergreifend zu sein, können Sie dies mit .Net tun, welche Tools würden Sie empfehlen?

Ich habe über Java nachgedacht, da es aufgrund seiner C#-Ähnlichkeit relativ einfach zu erlernen wäre und ich dann die JVM verwenden könnte.

War es hilfreich?

Lösung

Sie sollten mit dem Mono-Projekt und MonoDevelop ; das ausdrückliche Ziel dieser Projekte ist der Aufbau und die Ausführung von .NET-Code auf einer Vielzahl von Plattformen zu ermöglichen, einschließlich Windows, Linux und Mac OSX.

Da die Mono eine Re-Implementierung von .NET ist, hinkt es immer ein wenig hinter Microsoft.NET, aber sie haben eine gute Abdeckung von .NET 2.0 und bekam einige .NET 3.x Funktionen. Beachten Sie, dass Mono .NET-Binärdateien ausgeführt wird, so lange, wie Sie Ihre Programmfunktionen von Mono unterstützt werden, können Sie eine Anwendung EXE nehmen Sie unter Windows halten und führen Sie es auf Linux / Mono, ohne neu zu kompilieren.

Andere Tipps

Eine weitere relativ neue Option für die plattformübergreifende .NET-Entwicklung ist die Open-Source Eto.Forms Framework zu verwenden, die Sie eine UI-Code-Basis jeder Plattform native Toolkit Ziel haben können.

Für Windows, verwendet es WinForms oder WPF, für Linux, es nutzt GTK # und für OS X verwendet es MonoMac / Cocoa.

Es gibt auch mobile Anschlüsse (iOS / Android) in der Entwicklung.

https://github.com/picoe/Eto

Sie es besser schreiben einige Cross-Plattform-Toolkit. Höchstwahrscheinlich werden Sie nicht in der Lage sein, schön visuelle Designer zu verwenden (wirklich hängt davon ab, welche Toolkit Sie wählen), aber von Hand UI Schreiben ist nicht wirklich so schwierig. HTML Jungs tun es die ganze Zeit und es ist ziemlich üblich, in nicht-MS Welt zu.

Einige Cross-Plattform-UI-Toolkits mit .NET-Bindungen

  • GTK # (de-facto-Standard für Mono-Entwicklung , MonoDevelop IDE hat eingebaute Formular-Designer, die dieses Toolkit nutzt)
  • wxNET (basierend auf wxWindows, ganz ausgereift, aber sie müssen gebaut, um Ihre UI von Hand)
  • Qyoto (basierend auf QT, ist es wahrscheinlich besser als wxWindows aber Sie könnte kommerzielle Lizenz von Trolltech benötigen, wenn Ihre Anwendung nicht Open-Source-Lizenz hat)

Ein Ratschlag. Cross-Plattform-Programmierung ist wie Cross-Browser-Programmierung und die eine sichere Sache zu tun ist, Test, Test und Test auf allen Plattformen, die Sie unterstützen mögen.

Mono ist die einzige Option zur Zeit. Es läuft auf diese Plattformen . Und es wird Probleme geben, die nicht unbedingt riesig, aber nach wie vor.

Schauen Sie sich die Mono-Projekt

Haben Sie auch einen Blick auf Silverlight oder Flash- für Rich-Internet-Anwendungen.

Wie zuvor gesagt, Das Mono-Projekt Ihre beste Wette ist gegeben, es ist Community-Support.

Wenn Sie in Visual Basic sind dann Realbasic könnte auch wert sein ein Blick, wie es Cross-Compiler hat, die native ausführbare Dateien erstellt. Sie haben eine Testversion können Sie herunterladen zu

Ich schrieb vor kurzem ein wenig C # GUI-Anwendung auf Linux, Kompilieren und mit Mono ausgeführt wird. Ich fand, dass ich die „gmcs“ Compiler zu verwenden, um hatte Zugang zu modernen C # und .Net Funktionen zu haben (Mono 1.9 wird mit mehreren verschiedenen Compilern).

Und wenn die EXE-Datei kompilieren, fand ich, dass ich die „-Ziel: winexe“ hinzuzufügen hatte. Schalter die App laufen auf Windows zu machen, ohne eine Befehlszeile hinter der Anwendung Pop-up mit

Ich habe noch um herauszufinden, wie eine .NET-Anwendung zu kompilieren, die auf Windows werden ohne spezielle .Net Sicherheitskonfiguration auf dem PC von Netzwerk-Laufwerken ausgeführt werden. (Ich denke, das ist ein generelles Problem mit .Net-Anwendungen, aber ich bin immer noch lernen.)

Ehrlich gesagt würde ich Ihre Kundenbasis und Ihre vorhandenen Fähigkeiten bewerten. Wenn Sie ein 50/50 oder sogar ein 70/30 Split von Windows auf Nicht-Windows haben, dann würden Sie wahrscheinlich besser dran mit Java oder einem anderen Cross-Plattform-Toolkit.

Mono ist eine anständige Plattform (Siehe diese SO Frage nach einer Woche fragte vor ), aber wenn Sie erhebliche etwas zu tun sind, ich mit einem Toolkit für die es entworfen gehen würde.

Übrigens, wenn Sie sehen möchten, was eine .NET-GUI-Anwendung wie auf Mono sieht, hier ist ein Beitrag habe ich, wenn ich die NUnit GUI auf Mono ausgeführt habe:

http://www.cornetdesign.com/2006/07 /nunit-gui-running-green-on-monolinux.html

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