Eine C # / Winform Anwendung plattformübergreifende - sollte ich verwenden AIR, Mono, oder etwas anderes?

StackOverflow https://stackoverflow.com/questions/72580

  •  09-06-2019
  •  | 
  •  

Frage

Ich habe eine Anwendung, die ich in C # / WinForms geschrieben haben ( meine kleine app ). Um es Cross-Plattform zu machen, ich denke an sich in Adobe AIR redoing. Gibt es Argumente für WinForms als Cross-Plattform-app? Gibt es eine plattformübergreifende Zukunft für WinForms (beispielsweise Mono, etc.)? Vorschläge für plattformübergreifende UI-Entwicklung?

Durch die Cross-Plattform-ich meine, zur Zeit, Mac OS X, Windows und Linux.

Diese Frage war wieder gestellt und beantwortet mit besserem Erfolg .

War es hilfreich?

Lösung

  

Ich denke an es in Adobe AIR redoing

Nicht viel Zeit mit Luft, meine persönliche Meinung verbracht zu haben, ist, dass es am besten ist es, eine Webapp auf den Desktop zu bringen und eine Schale, um es zur Verfügung stellen oder Ihr bestehendes Flash / Flex-Projekt auf dem Desktop ausgeführt werden.

Btw, wenn Sie Actionscript nicht wissen, ich meine seine Details, Macken, etc, vergessen Sie nicht, in der Zeit Faktor für Antworten googeln nehmen.

  

Gibt es Argumente für WinForms als Cross-Plattform-app?   Gibt es eine plattformübergreifende Zukunft für WinForms (beispielsweise Mono, etc.)?

Es ist immer schwer vorherzusagen, was passieren wird, aber es gibt mindestens ein Projekt (Plastic SCM) Ich weiß davon verwendet Mono WinForms auf Win, Mac und Linux, so ist es sicherlich machbar. Aber sie sagen, dass sie die meisten ihrer Kontrollen aus dem Boden gestampft (und behaupten, dass sie sie als Open Source freigeben wollen, aber nicht sicher, ob oder wann), so müssen Sie in irgendeiner Arbeit setzen, um die Dinge aussehen „hübsch“ .

Ich spielte mit WinForms auf Nicht-Windows-Plattformen und leider ist es nicht genau „reifes“ (vor allem auf dem Mac). Also, was Sie aus dem Kasten heraus bekommen kann oder nicht ausreichend sein kann, für Ihre Bedürfnisse.

Wenn Sie eine Desktop-Anwendung entscheiden, ist nicht der beste Weg, um eine plattformübergreifende Lösung zur Verfügung zu stellen, können Sie immer Ihre Geschäftslogik nehmen in C # geschrieben und erstellen Sie entweder eine ausgewachsene Webapp mit ASP.NET oder mit Silverlight gehen, so viele andere Möglichkeiten gibt es mit C #.

Andere Tipps

Soweit meine Erfahrung in Flex / AIR / Flash Actionscripting geht, Adobe AIR-Entwicklungsumgebung und Codierung / Debugging-Toolsets sind weit schlechter als die Visual Studio und .NET SDK als der Moment. Die UI-Toolsets sind jedoch überlegen.

Aber wie Sie bereits eine funktionierende C # -Code haben , um es zu Actionscript könnte Portierung erfordert einen Redesign aufgrund von Actionscript eine andere Denkweise / Programmierung, verwenden sie unterschiedliche primitive Datentypen, zum Beispiel, sie nutzen eine Number nur statt int float double usw. und die Debugging-Tools sind ruhig IMO VS im Vergleich fehlt.

Und ich hörte, dass Monos GtkSharp ruhig ist eine anständige Plattform.

Aber wenn Sie die Codierung / Debugging-Werkzeugprobleme nicht stören, dann ist AIR eine großartige Plattform. Ich mag, wie Adobe die Flash-Erfahrung in sie integriert z.B. Sie können über einen Button-Klick in einem Flash-Movieclip, diese Art von Integration eine Installation von AIR-Anwendung starten.

WinForms werden von Mono vollständig unterstützt, so dass sie plattformübergreifend.

Warum würden Sie mit Air gehen?

Verwenden Sie GTK # , und Sie haben eine Cross-Plattform bildet Motor und Sie erhalten zu halten C # -Code.

Nun, ich denke der einzige Weg, um für Cross-Plattform zuverlässig mit C # Microsoft Silverlight , ist aber nicht wirklich WinForms und browserbasiert. Other than that, ja Mono ist eine Chance.

Wenn Sie das .NET Framework verwenden möchten, ist Microsoft Silverlight eine gute (die einzige?) Wahl. Der Browser macht einen guten Job als Shell, aber man könnte auch Ihre eigene Anwendung Shell für sie schreiben. Zum Beispiel Scott Handelman erwähnt der New York Times Reader geschrieben in Silverlight und Gehostet auf Cocoa auf einem Mac.

Ich glaube nicht, gibt es eine Zukunft für WinForms überhaupt. Da scheint es eine Notlösung auch in MSFT Welt (eine sehr dünne Hülle um Win32) zu haben. Und praktisch scheinen keine Änderungen zu System.Windows.Forms sowohl .NET 3.0 und 3.5

gemacht zu haben,
</speculation>

Ich würde verwenden Java oder Air.

ich glaube, dass, solange Sie sicherstellen, dass die Business-Logik Code, den Sie schreiben, ist Cross-Plattform (dh Schrägstriche in Pfade nur unter Windows funktioniert mit - Slashes funktioniert auf allen Betriebssystemen), dann sollte Mono haben keine größeren Probleme ein nicht modifiziertes WinForms-Programm ausgeführt wird. So stellen Sie sicher für Grafikfehler testen.

Ich fragte eine ähnliche Frage der vergangenen Woche. Ich habe Mono benutze die ganze Zeit, und haben keine Probleme hatte die Anwendungen ausgeführt ich IL kompilieren auf SuSE Linux laufen zu lassen (ich normalerweise KDE laufen) oder Fenster, jedoch habe ich nicht ausgegangen und bekam noch einen Mac zu testen auf. Ich werde bald sein, aber wahrscheinlich mit in ein paar Wochen. Aber alle und alle Entwicklung in Mono ist sehr gut Anwendung zu schaffen, die auf mehreren Plattformen laufen.

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