Was ist die beste Möglichkeit mit C# und Visual Studio Cross Platform Apps zu erstellen?

2 Antworten

Von Microsoft gibt's noch kein offizielles Client-Framework, das auch ein Release hinter sich hat.

Die mit Abstand flexibelste Variante ist aber Web, das läuft wirklich überall und solange Du keine spezifischen OS-Funktionen brauchst, reicht das auch aus. Außerdem bietet ASP.NET Core eine hervorragende Grundlage für gut wartbare Anwendungen, wenn Du es richtig nutzt.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler
TotalConquest 
Fragesteller
 17.02.2022, 20:06

Ich bin aber nicht für Apps aus dem Web (bin also gegen PWAs).

Die genannten Frameworks von mir sind auch nicht alle von Microsoft (bis auf Xamarin und .NET MAUI), sondern von anderen Unternehmen, welche im Visual Studio Marketplace angeboten werden.

Meine Frage ist ob das bereits alle sind, die ich gennant habe, oder nicht und welche das beste aktuell ist.

0
Palladin007  17.02.2022, 23:23
@TotalConquest

Die anderen habe ich nie genutzt, daher kann ich dazu nichts sagen.
Ich wollte Web nur als weitere mögliche Strategie in den Raum werfen.

Darüber hinaus kenne ich nur noch Electron, das aber aber auch nur vom Namen.

0
TotalConquest 
Fragesteller
 17.02.2022, 23:35
@Palladin007

Soweit ich weiß geht aber Electron nicht mit C# und ob mit Visual Studio weiß ich nicht ob Electron geht.

0
TotalConquest 
Fragesteller
 18.02.2022, 13:34
@Palladin007

Und die anderen sagen dir nichts, die ich genannt hatte?

Mein persönlich Favorit (neben Xamarin und .NET MAUI, sobald verfügbar) ist nämlich die UNO Plattform. Das Problem ist nur, dass Avalonia UI angeblich besser sein soll, obwohl noch in Beta (deswegen wahrscheinlich auch weniger Bewertungen). Aber alle Bewertungen, die es bisher gibt, sagen angeblich, dass Avalonia UI besser ist.

0
regex9  18.02.2022, 14:06
@TotalConquest

Worin denn besser? Eine Bewertung à la beste/schlechteste hilft dir doch nicht weiter, wenn du keine konkreten Kriterien hast, auf die du dich für dein Projekt fokussieren musst. Auf den Versuch, alles in ein klares Allgemeinranking hineinzudrücken, sollte man sich nicht versteifen. Framework A mag Feature A und B besser lösen als Framework B, dafür aber in Feature C und D schlechter sein.

Dein erster Maßstab sollte also eher nach der Frage gehen, mit welchem Framework deine gestellten Anforderungen gut zu erfüllen sind.

Selbst der Preview-Status bei Avalonia UI für mobile Anwendungen muss für dein Projekt nicht pauschal bedeuten, dass dieses Framework für dich nicht geeignet wäre, wenn du letzten Endes die noch problematischen Anwendungsfälle gar nicht anschneidest.

0
TotalConquest 
Fragesteller
 18.02.2022, 14:27
@regex9

Mein besser/schlechter war vor allem auf die allgemeinen Bewertungen zurückzuführen, das war alles. Bei dem Rest bin ich ganz deiner Meinung.

0
Palladin007  18.02.2022, 14:44
@TotalConquest
Und die anderen sagen dir nichts, die ich genannt hatte?

Doch, aber ich habe keine Erfahrungen damit, daher kann ich auch nichts dazu sagen.

Und schau dir die Anforderungen an und bewerte auf der Basis die Funktionen, die die Frameworks bieten.
Wenn dabei mehrere potentielle Frameworks heraus kommen, dann entscheide nach dem Risiko und der Aktivität der Community und schau dir die Issues an und wie komplex Bugs sind und wie schnell die Reaktionen sind.

0
(...) Ich habe bereits von (...) gehört (...)
  • Xamarin wäre gut geeignet, wenn du großen Wert darauf legst, dass die Anwendungen mit einem nativen Look & Feel je Plattform daherkommen.
  • UNO hat einige Ähnlichkeiten zu Xamarin (nutzt bspw. ebenso XAML für die Beschreibung des View), ist aber auf eine breitere Nutzerschaft ausgelegt (Xamarin fokussiert sich etwas mehr auf mobile Plattformen), so ist bspw. auch die Portierung ins Web (via WASM) möglich. Intern wird auf der UWP API aufgebaut.
  • Avalonia UI bietet zwar auch Support für mobile Apps. Allerdings befindet man sich da noch in einer Preview-Phase. Das heißt, es kann sein, dass das Framework an der Stelle noch nicht so weit ausgereift ist.

Ansonsten würden mir nur noch folgende Optionen einfallen:

  • ASP.NET / Blazor für eine Webseite / PWA
  • Blazor + Mobile Blazor Bindings (experimentell)
  • Electron.NET (nur für Windows OS / Linux / macOS)
  • Eto.Forms (nur für Windows OS / Linux / macOS)
  • GtkSharp (kein natives Look & Feel, nur für Windows OS / Linux / macOS)

Wenn du also keine Experimente wagen / nichts ausprobieren möchtest, wären UNO oder Xamarin aktuell die wohl sicherste Bank mit dem breitesten Support für verschiedene Plattformen bzw. den geringsten Hürden für jeweilige Portierungen.

Nichtsdestotrotz würde ich dir empfehlen, erst einmal die konkreten Anforderungen an deine App herauszufinden (neben Key Features gehört auch eine ungefähre Analyse dazu, welche Nutzer angesprochen werden sollen) und anhand derer noch einmal zu prüfen, was du nach technologischer Sicht tatsächlich brauchst.

Bei so einer Analyse könnte es sich auch bemerkbar machen, dass vielleicht ein anderes Vorgehen eher zu optimalen Ergebnissen führt. Nur weil ein Framework die Portierung auf verschiedene unterschiedliche Plattformen auf einmal verspricht, muss es nicht die beste Wahl sein.

Palladin007  18.02.2022, 10:26
Nur weil ein Framework die Portierung auf verschiedene unterschiedliche Plattformen auf einmal verspricht, muss es die beste Wahl sein.

Mit .NET kann man ja generell plattformunabhängig arbeiten, mit .NET Standard auch unabhängig von der tatsächlichen .NET-Implementierung, auch wenn man nicht die neusten Features mit nehmen kann.

Es gäbe - so interpretiere ich diesen letzten Satz - also auch noch die Möglichkeit, die UI mehrfach umzusetzen und nur die Schichten darunter übergreifend zu entwickeln. Das ist natürlich der größte Aufwand, bietet aber auch die größte Flexibilität.

Aber ja, ob das überhaupt eine Option ist, kann hier niemand raten, das muss der Geldgeber hinter dem Projekt entscheiden.

0
regex9  18.02.2022, 13:44
@Palladin007

Ja genau, auf so eine Option wollte ich damit anspielen.

PS.: Da hat meinem Satz ein Wort gefehlt.

(...) muss es nicht die beste Wahl sein. (...)
1