Zum Inhalt springen
  • 0

C++, C# mit WPF pder Avalonia


Frage

Geschrieben

Folgende Ausgangsstellung: Ausbildung gemacht und dabei ein wenig Java und C# gelernt (die Grundlagen halt).

Nun würde ich gern weiter machen und Programme für mich und andere schrieben (nur privat, nichts professionelles): jetzt stehe ich allerdings vor einer Frage, welche mir schon länger den zu schaffen macht.

Ich möchte mir meine Arbeit mit kleinen GUI Programmen erleichtern. Auch für mein Hobby (Geoaching) würde ich ein paar Anwendungen schreiben. Derzeit nur auf Windows, allerdings kenne ich auch ein paar Leute welche Linux und Mac nutzen. Ich nutze derzeit hauptsächlich Windows, habe aber auch einen Mac ab und an in Benutzung.

An meinen Anwendungen würde ich natürlich auch dran teilhaben lassen wollen. Aber wie beginne ich? Nutze ich C++ und GUI Framework oder sollte ich nur C# verwenden? Wenn ja, erst in WPF einarbeiten oder gleich mit Avalaonia beschäftigen.

Ich weiß, dass dies ein immer wieder auftretende Fragen sind, aber ich hab ein paar Situationen ja angemerkt und vlt. gibt es ja doch ein paar Meinungen von denen welche schon mit den Sprachen und Frameworks arbeiten.

 

13 Antworten auf diese Frage

Empfohlene Beiträge

  • 1
Geschrieben (bearbeitet)
vor 36 Minuten schrieb ITJim:

Wenn ja, erst in WPF einarbeiten oder gleich mit Avalaonia beschäftigen.

Es gibt keine Cross-Plattform Entwicklung mit WPF. Das sagt schon der Name: Windows Presentation Fundation.

Nutze entwender

https://avaloniaui.net/

oder

https://platform.uno/

 

alternativ warte bis .NET 6 draußen ist, dann haben wir .NET MAUI

Am besten nutzt du zu deiner Auswahl noch ein MVVM Framework welches für Cross Platform Entwicklung gedacht ist:

MVVMCross oder ReactiveUI(besonders kompatibel zu Avalonia laut https://avaloniaui.net/docs/reactiveui/)

Bearbeitet von KeeperOfCoffee
  • 0
Geschrieben

Das WPF nicht plattformunabhängig ist, war mir bewusst. Ich wollte damit eigentlich sagen, ob ich zuerst WPF mache und irgendwann später dann mit Avalonia mich beschäftige.

Wie gesagt, bisher habe ich nur die Grundlagen von C# drauf. Tiefergehend würde dann erst noch kommen. Aber ob es dann sinnvoll ist gleich C# zu lernen und zeitgleich in ein Framework einzuarbeiten? Ist es eine gute Entscheidung beides zusammen? Oder erst C# und dann GUI Framework? WPF kann ich zumindest schon die Basics da würde beides zusammen einfach sein.

  • 0
Geschrieben

WPF und MVVM habe ich mich schon mit beschäftigt. OK, wirklich ist ein dehnbarer Begriff. Denke mal, es fehlt doch noch einiges an Wissen/Können.

Werde ich also erstmal rein die Sprache lernen, doch klärt dies mein Ausgangspost noch nicht ganz. Welche sollte ich in Hinsicht auf mein Ausgangspost nehmen? C# oder C++

  • 0
Geschrieben

Ich persönlich würde meine Zeit nicht mit WPF verschwenden. WPF ist ein unbändiges Monster, was aus meiner Sicht auch nur halbherzig umgesetzt wurde. Ich finde, es spricht so Bände, wenn Microsoft selbst noch die Prism Library geschrieben hat, die über WPF gestülpt wird, um lose Kopplung besser hinzubekommen.

Der Trend geht aber auch in Richtung SPAs (Single Page Application). Sprich Web-Applikationen, die direkt im Browser laufen oder per Electron in einem Chromium-Container. z.B. läuft Visual Studio Code über Electron.  Da würde ich mir dann eher Angular oder React anschauen. Als Alternative in der C#-Welt gibt es zwar Blazor aber ich finde, es ist noch nicht so weit, um es produktiv gut einsetzen zu können.

Avalonia sagt mir persönlich überhaupt nichts. Keine Ahnung, wie groß die Community dahinter ist aber ein Blick auf Github sagt mir, dass sie nicht so groß zu sein scheint. Ergo: Nichts, was ich produktiv einsetzen würde. Stattdessen würde ich eher Xamarin nehmen.

  • 0
Geschrieben

Also gar nicht in erst in Richtung C# gehen, sondern gleich mit C++ beschäftigen. Wäre das auch deiner Sicht eine Alternative?

Angular oder React sagen mir allerdings nicht zu, würde gern lokal auf dem Desktop mit Programmen bleiben.

 

  • 0
Geschrieben (bearbeitet)
vor 40 Minuten schrieb ITJim:

Angular oder React sagen mir allerdings nicht zu, würde gern lokal auf dem Desktop mit Programmen bleiben.

Hast du sicher kapiert was @Whiz-zarD mit containerisierten Webanwendungen mittels Electron meint? Visual Studio Code ist auch eine "Desktop"-Anwendung, dennoch ist es eigentlich eine Containerisierte Webanwendung.

Siehe https://www.electronjs.org/

Das BackEnd usw. passiert ja weiterhin über C# ... 

Tl;Dr persönlich würde ich sogar empfehlen JavaScript zu lernen.

Edit: Und ja das ist dann Cross-Plattform

Bearbeitet von KeeperOfCoffee
  • 0
Geschrieben

Es gibt verschiedene Ansätze, um Plattformunabhängigkeit zu erreichen:

  • Die Java-Platform gibt es so gut wie für alle gängigen Betriebssysteme
  • Um C# multiplattform zu nutzen, gibt es Mono (https://www.mono-project.com/)
  • Es gibt Ansätze, in denen man die (plattformunabhängige) Logik ein mal programmiert, die UI aber je nach Platform
  • Verwendung von Webtechnologien (die man dann wie @Whiz-zarD auch in ein "Fenster" packen/wrappen kann). Dieser Ansatz funktioniert auch sehr gut, man muss aber Lust auf Webtechnologien haben.
  • Transpilieren von der einen Plattformabhängigkeit in die andere
  • ...
vor 29 Minuten schrieb ITJim:

Also ist C++ deiner Meinung nach komplett aus dem Rennen?

Du könntest dir mal Qt (https://www.qt.io/) anschauen. 

  • 0
Geschrieben

Ich persönlich würde C++ so weit meiden, wie es geht. Ich finde die Sprache einfach nicht schön, da man zu sehr mit den technischen Kuriositäten zu kämpfen hat, die diese Sprache mit sich bringt. 

Im Idealfall ist es auch egal, was du als Oberfläche nimmst. .NET Core (bzw. bald .NET 5) läuft ja auch unter Linux. Wenn du also deine Software so modulierst, dass deine komplette Logik in .NET-Standard-Bibliotheken implementiert hast, dann besitzt die UI überhaupt keine Logik und ist nur für die Ein- und Ausgabe zuständig. Dann kann man als UI draufsetzen, was man will: WPF, WinForms, ASP.NET, Xamarin, Avalonia, gtk# oder als eine einfache Konsolenanwendung.

Wenn man aber anfängt, die Logik in die UI zu schreiben, dann hat man eh meist schon verloren. Dann ist man auf Gedeih und Verderb von der UI abhängig.

vor 8 Minuten schrieb KeeperOfCoffee:

Tl;Dr persönlich würde ich sogar empfehlen JavaScript zu lernen.

Ja. Wenn man UIs entwickeln möchte, kommt man derzeit wohl oder übel nicht drumherum.

  • 0
Geschrieben

Einige Zeit ist ins Land gegangen, und Avalonia wird inzwischen von einigen Unternehmen unterstützt. Die Entwicklung scheint da relativ gut voranzugehen, es sind auch ein paar professionelle Anwendungen in freier Wildbahn zu sichten. 

Daher wollte ich das mal wieder aufwärmen, nutzt das jemand von euch und wie sind die Erfahrungen damit?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...