Laden...

Was benutzt man am besten für CrossPlatform als C#/Java Entwickler?

Erstellt von cRUSHERHLG vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.725 Views
C
cRUSHERHLG Themenstarter:in
31 Beiträge seit 2018
vor 5 Jahren
Was benutzt man am besten für CrossPlatform als C#/Java Entwickler?

Hallo,

Ich möchte auf basis eines Cross-Platform-Frameworks eine Anwendung erstellen, die man auf allen gängigen Betriessysteme nutzen kann. Dazu habe ich aktuell mit Electron (sowohl in javaScript also auch Electron.Net) herum experementiert. Ich finde die Performance, die dir Electron von Haus aus bietet sehr schlecht. Ohne das du etwas komplexes oder großes Darstellst/machst sind immer 55-65 mb Arbeitsspeicher ausgenutzt (Basis: Electron + React integration). Aus diesem Grund sehe ich Electron nicht als wirkliche alternative. Am liebsten wäre es mir wenn ihr mir ein Cross-Platform-Framework vorschlagen könnt, womit ich auch mit C# entwickeln kann.
Wie schon beschrieben, habe ich Electron.NET probiert, aber das Framework benötigt noch mehr Ressourcen als Electron in JS. Um genau zu sein braucht eine Standart Electron.NET Anwendung 240-260mb Arbeitsspeicher. Den OldSchool Weg, alles in WinForms zu programmieren und dann mit Wine/Mono auf Linux/MacOS bereit zu stellen habe ich auch schon probiert. Hierbei sehe ich aber keine wirkliche Zukunft mehr, da hierfür auch von Microsoft seitens seit Jahren keine Updates mehr bereit gestellt werden.

Ich hoffe ihr könnt mir hierbei anreize/neue Ideen geben an denen ich anknüpfen kann, da ich aktuell verwirrt bin was ich doch nutzen soll.

MfG,
cRUSHER

T
708 Beiträge seit 2008
vor 5 Jahren

Xamarin ist der Weg.
MS hat Mono übernommen und mehr oder weniger mit dem .Net Standard Framework ersetzt/ergänzt.
Du kannst mit einem Code iOS, Android und UWP Apps erstellen. Das funktioniert ganz gut, erfordert aber (wie so oft) einiges an Zeit zum einarbeiten und verstehen.

Zu der RAM Auslastung kann ich gerade nicht viel sagen, da mein vorsteinzeitliches Demo-Gerät Android 4.1 installiert hat und ich nur die Gesamtauslastung (360mb) und ein paar System-Apps (~180mb) sehe. Stoppe ich die App, bleiben 340mb über. Spricht also für 20mb im USB Debug-Modus. Wird in der Realität als Release dann wohl nochmal weniger werden. Verlässlich ist der Wert jetzt aber nicht gerade.

709 Beiträge seit 2008
vor 5 Jahren

Du könntest dir auch mal Qt (C++) ansehen.
Das ist auch gefühlt überall zu Hause.

16.827 Beiträge seit 2008
vor 5 Jahren

Hallo,
Ich möchte auf basis eines Cross-Platform-Frameworks eine Anwendung erstellen, die man auf allen gängigen Betriessysteme nutzen kann.

Auf Allen? Allen allen? Das solltest Du dringend spezifizieren.

Ich finde die Performance, die dir Electron von Haus aus bietet sehr schlecht.

Bei Electron kommt vieles darauf an, wie man es programmiert.
Es gibt gute und schlechte Electron Umsetzungen.

Aus diesem Grund sehe ich Electron nicht als wirkliche alternative.

Diese Aussage aufgrund dieser Basis ist evtl. etwas zu kurz gedacht und zu gewacht.

Am liebsten wäre es mir wenn ihr mir ein Cross-Platform-Framework vorschlagen könnt, womit ich auch mit C# entwickeln kann.

Gibt es quasi in dieser Form nicht.

Vielleicht erklärst Du erst mal, was Du vor hast, welche Targets zu alle anvisierst (Desktop? Browser? Tablets? Mobile?).
Danach kann man Dich in einen Weg schubsen.

Es gibt jedoch keine Technologie, die alles abdeckt.

Xamarin ist der Weg.

Puh, hab ich ne ganz andere Meinung 😉
Wenn ich Xamarin zu NativeScript oder ReactNative vergleiche, dann sehe ich Xamarin eher auf dem absteigenden Ast.

Warum: das XAML ist propritär.
Ganz so nativ ist Xamarin nicht, auch wenn es ab und zu so lesen lässt.
Xamarin auf Android läuft nicht nativ, sondern ganz normal in einer JVM. Damit nicht performanter als andere Plattformen wie NativeScript oder React Native.

MS hat Mono übernommen und mehr oder weniger mit dem .Net Standard Framework ersetzt/ergänzt.

Fast.
Microsoft hat Xamarin und alle Macher dahinter übernommen.
Einer der Macher ist dabei gleichzeitig der Macher von Mono (und GNome), auf dem Xamarin basiert.

Mono gilt derzeit als Standbein aufgrund von Xamarin.
Man kann aber davon ausgehen, dass Xamarin in der Zukunft eher Richtung .NET Core gehen wird.
Offiziell dazu gibt es keine Aussage und Mono wird (innerhalb Xamarin) als Standbein innerhalb der Future Innovation gesehen.

Du kannst mit einem Code iOS, Android und UWP Apps erstellen. Das funktioniert ganz gut, erfordert aber (wie so oft) einiges an Zeit zum einarbeiten und verstehen.

Das funktioniert vor allem in der Theorie.
In der Praxis ist bei Xamarin trotzdem noch (oft) plattformspezifischer Code im Sinne von Java oder Swift notwendig.

62 Beiträge seit 2017
vor 5 Jahren

Hallo,
Ich möchte auf basis eines Cross-Platform-Frameworks eine Anwendung erstellen, die man auf allen gängigen Betriessysteme nutzen kann.
Auf Allen? Allen allen? Das solltest Du dringend spezifizieren.

Ich tippe mal, das der TE mit "allen gängigen" die üblichen Verdächtigen Windows/Mac OS/Linux(/Android/iOS) meint.

Wer ordentlichen Code schreibt, lebt entspannter 8)

C
cRUSHERHLG Themenstarter:in
31 Beiträge seit 2018
vor 5 Jahren

@HeikoAdams
Genauso meine ich es auch. Das Framework soll für Desktop Anwendung aber halt Cross-Platform sein. Naja bezüglich der Umsetzung bei Electron, ich habe für meine Aussage die Hauseigene Github integration (electronjs.org) benutzt.

T
708 Beiträge seit 2008
vor 5 Jahren

Das funktioniert vor allem in der Theorie.
In der Praxis ist bei Xamarin trotzdem noch (oft) plattformspezifischer Code im Sinne von Java oder Swift notwendig.

Das kommt letztendlich, so wie Deine anderen genannten Argumente, auf den Anwendungsfall an.
Bei meinem Projekt komme ich zu 99% mit einem Basiscode aus und das restliche Prozent verteilt sich auf die Android, iOS & UWP spezifischen Dinge in Xamarin.
Bisher KeyDown-Events & Versions/Build-nummer beziehen. Finde ich verschmerzbar.

Meine Anwendung verwaltet aber auch nur ein paar Verbindungsdaten und erzeugt die GUI dynamisch.
Der erste Prototyp stand nach 2 Tagen für alle drei Betriebssysteme. Kann mir schwer vorstellen, dass es ein anderes System ähnlich einfach macht*.

Sobald es in Richtung grafisch aufwendiger Apps geht, oder gar Spiele, reicht Xamarin sicherlich nicht aus. Aber für ein bisschen Webservices und Daten austauschen, allemale.

*Einfach bedeutet im Umkehrschluss auch immer eingeschränkt. Mit PowerApps kann ich sogar in 2 Minuten eine App für Android, iOS, UWP & alle gängigen Browser bauen. Dafür ist die Einschränkung immens!
Dennoch gibt es viele Anwendungsfälle, wo das ausreicht. Der Topf muss eben zum Deckel passen 😃