2015-09-27 4 views
7

Ich schreibe eine universelle App mit Windows 10, Visual Studio 2015 und C#. Ich möchte diese App unter Windows, Linux und Mac laufen lassen. Ich weiß, Mono implementiert nicht Windows-Präsentation-Framework, also, wenn ich eine WPF-App schreibe, läuft es onlyy auf Windows. Nun, wenn ich eine universelle App schreibe, kann das mono laufen? Wenn ja, wie kann ich tun?Kann Mono universelle Windows-Apps ausführen?

Antwort

10

Die heilige Gral .Net UI Frage :-)

TL; TR Antwort = Nein.

Universal-Windows-Plattform (UWP) Kern-APIs (auch als Windows-Runtime/WinRT bekannt) und die resultierende APPX Basierte Anwendungen zielen nur auf Windows 10-Plattformen ab (Telefon, PC, Tablet ...), da diese APIs und Laufzeit auf den anderen Desktops nicht vorhanden sind. Wenn Sie Xamarin/Mono verwenden, können Sie einen Teil der Business-Level-Logik der C# -App wiederverwenden, aber die Präsentationsebene und die GUI-Logik müssten mit einer anderen GUI (Native Widgets, GTK #, QTSharp, HTML) neu geschrieben werden/CSS/NodeJs, etc ...). Das gleiche Modell, das Xamarin für C# -basierte mobile Entwicklung verwendet, gilt, teilen Sie Ihre C# -App-Logik plattformübergreifend und verwenden Sie Xamarin.Mac, um eine native OS-X-Benutzeroberfläche zu erstellen und/oder eine Benutzeroberfläche mit GTK # zu erstellen. Integrieren Sie die Laufzeit Ihrer App Logik in eine Electron/Blink-Shell, etc.

Derzeit das Windows 10 für Apache Cordova Projekt, das HTML, JavaScript und CSS ist, zielt nur auf Mobile (WinPhone, iOS, Android) und Windows 10 PC/Tablet-Plattformen. Das heißt nicht, dass jemand kein neues Cordova-Ziel entwickeln konnte, um OS-X- und Linux-Desktop-Manager-Unterstützung zu integrieren (aber ich kenne keine, die noch nicht stehen geblieben sind): -/

Sogar Microsoft Xplat-basierte Visual Studio Code für Linux und OS-X verwendet Electron (Chromium-basiert), um die io.js-basierte Anwendung zusammen mit der Blink-Layout-Engine zum Rendern der Benutzeroberfläche bereitzustellen, alles in HTML/CSS/JS.