Veröffentlicht 4. November 20204 j 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.
4. November 20204 j 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 4. November 20204 j von KeeperOfCoffee
4. November 20204 j Autor 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.
4. November 20204 j Lerne immer erst die Sprache. GUI ist zweitrangig. Und ob du WPF wirklich kannst wage ich mal vorsichtig zu bezweifeln. Das sagen viele, haben aber dann MVVM nicht wirklich drauf.
5. November 20204 j Autor 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++
5. November 20204 j 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.
5. November 20204 j Autor 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.
5. November 20204 j 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 5. November 20204 j von KeeperOfCoffee
5. November 20204 j 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.
5. November 20204 j 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.
6. November 20204 j vor 21 Stunden schrieb KeeperOfCoffee: Tl;Dr persönlich würde ich sogar empfehlen JavaScript zu lernen. JavaScript und dann direkt dazu TypeScript. Mach meiner Meinung nach mehr Spaß.
1. April 20223 j 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?
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.