Hallo Community
Ich habe das Privileg, ein neues, größeres Desktop-Projekt erstellen zu dürfen.
Da ich komplett aus der alten WinForm und ASP.NET Welt komme und dieses Projekt gerne auf dem heutigen technologischen Stand entwickeln möchte, stellt sich mir die Frage, ob es nun eine MAUI oder eine WinUI Applikation werden soll.
Ich habe versucht, mich in einigen Foren über MAUI und WinUI schlau zu machen, musste aber erkennen, dass zwischen MAUI und WinUI teilweise ein regelrechter Religionskrieg herrscht. Was jetzt "state of the art" ist und was bereits wieder als Totgeburt angesehen wird, da scheiden sich die Geister enorm. Das macht dann die Auswahl der Himmelsrichtung nicht gerade leichter.
Mich würde es brennend interessieren, was eure Erfahrungen mit den beiden Technologien waren und weshalb Ihr Euch für den einen oder anderen Schritt entschieden habt. Denn auf ein bereits totgeschossenes Pferd will ich nicht wirklich setzen.
Beste Grüsse
Dolce
Wer Rechtschreibfehler findet, darf sie behalten.
Sei Dir bewusst, dass Du sehr wahrscheinlich ebenfalls religiöse Antworten auf diese Frage erhälst 😃
Meine persönlichen 50 Cent dazu: es gibt derzeit keine einzige Microsoft UI Technologie, die die Nase vorn hat.
Persönlich sehe ich weder WinUI noch MAUI production-ready. MAUI höre ich immer wieder auf Twitter und Co, dass es ohne Comunity Toolkit quasi nicht möglich ist was tolles umzusetzen.
Sowohl vom MAUI wie auch von WinUI hört man dutzende von Long-Running-Bugs, dass die Produktteams (wohl?) verkleinert wurden und ohne Community Drive geht quasi nichts.
Auf der anderen Seite höre ich, dass es ein enorm zufriedenes Ökosystem rund um Avalonia gibt.
Meine Kollegen, die im Gegensatz zu mir voll im Fokus sind auf (Cross-)Apps, setzen sowohl für eigene wie auch für Kundenprojekte mittlerweile bei Cross-Platform auf MAUI, um auch hier ein Insight zu geben.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Zitat von Dolce
Ich habe das Privileg, ein neues, größeres Desktop-Projekt erstellen zu dürfen.
Soll das Projekt denn nur auf Windows laufen?
Dann würde ich auch WPF in die Betrachtung mit einbeziehen.
Das ist zwar alt und das merkt man auch an vielen Stellen, aber es ist immer noch ein mMn. hervorragend gutes Framework mit sehr umfangreichen Frameworks (z.B. MahApps) und vielen Leuten in der Community, die sich gut damit auskennen. Außerdem hat es MVVM quasi "erfunden", andere Frameworks führen es nur fort, Du bist konzeptionell also nicht so weit entfernt vom aktuellen Stand der Technik.
Aber Du bist natürlich an Windows gebunden.
Ich habe selber vor zwei Jahren ein WPF-Projekt umgesetzt, das einzige, was ich vermisst und daher selber nachgerüstet habe, ist das Hosting-Konzept von ASP.NET. Später habe ich dann ein Framework gesehen, was das auch macht, selber genutzt habe ich es aber noch nicht: Wpf.Extensions.Hosting
MAUI nutzt das gleiche Konzept, daher denke ich, dass das ein prinzipiell guter Weg ist.
Wenn es auch auf Linux laufen soll, hast Du von Microsoft meines Wissens nach sowieso keine wirkliche Option. WinUI ist Windows only, MAUI gibt's aktuell (noch) nicht für Linux und WPF ist sowieso Windows only. Du kannst eine Website entwickeln und einen Wrapper, der sie hostet und einen Client mit Browser-Control startet. Oder Du greifst auf Community-Projekte wie Avalonia zurück, das läuft auf Linux.
Zu MAUI und WinUI kann ich leider nicht viel sagen.
Mit MAUI habe ich bisher nur experimentiert, mir gefallen viele Dinge und ich würde gerne mal ein größeres Projekt damit umsetzen, aber ob das wirklich schon dafür geeignet ist, weiß ich nicht.
Und mit WinUI habe ich noch gar nichts gemacht.
Zitat von Abt
Auf der anderen Seite höre ich, dass es ein enorm zufriedenes Ökosystem rund um Avalonia gibt.
Dem kann ich mich aber nicht anschließen.
Avalonia sieht auf den ersten Blick wie WPF aus (was ja auch gewollt ist), auf den zweiten und dritten Blick hatte ich bei meinem letzten Avalonia-Projekt viele Probleme. Ich weiß nicht, ob das meine Fehler waren, oder wirklich Design-Fehler. Z.B. ist das Styling-Konzept mMn. nicht zuende gedacht und viel zu flexibel (nicht unflexibel), das hatte WPF mMn. deutlich besser gelöst.
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Vielen Dank für eure schnellen Antworten.
Soll das Projekt auf Windows laufen?
Vorerst ja. Es besteht aus drei Teilen. Aus einer Desktopapplikation, einer Web-Applikation und einer Desktop-Mobile Applikation, welche mittels Rest-API miteinander kommunizieren sollen.
Weshalb ich das technologische Know-how auf den neusten Stand bringen will, hat auch den Hintergrund, dass mit den Erkenntnissen aus dem neu zu erstellenden Projekt, weitere noch zukünftige Projekte durch die Unternehmensführung akquiriert werden können ohne vorerst noch eine Kostenstelle für hohes Lehrgeld einrichten zu müssen, was auch eine direkte Auswirkung auf den Zeitpunkt des Roll-Outs haben wird. Sollten neue Wünsche von Kunden kommen, will ich bereit sein, diese asap. Umsetzten zu können.
Der zweite Grund ist auch, dass ich für mich auch die Change sehe, mich von WinForms Applikationen lösen zu können (solange die Nettigkeiten der DevExpress Controls aus WinForm auch in den neuen Technologien verbaut sind, wo von ich ausgehe). Dies ist schon seit Jahren ein großer Punkt auf meiner Pendenzenliste und konnte dank der hohen Auslastung auf der Arbeit nicht wirklich angegangen werden. Denn neben der Arbeit will man doch auch noch etwas private Zeit für die Erholung übrighaben. Und da ich täglich vor den Bildschirmen sitze, bin ich nicht mehr willens auch noch in meiner Freizeit mich vor die Monitore zu setzen. Da lese ich doch lieber noch ein paar Bücher.
Auf keinen Fall will ich aber auf eine Technologie setzen, welche dann in naher Zukunft eingestampft wird. So zumindest klingt es aus Community Kreisen, welche MAUI als eine Wiederauferstehung von Xamarin beschreiben, wodurch Microsoft versucht, eine schlechte Technologie unter neuem Namen den Entwicklern unterzujubeln.
Wie denkt ihr über Blazor?
Ich habe mir am Dienstag auch noch Blazor und Blazor - Hyprid angeschaut.
Ob mit oder ohne MAUI, werde ich Blazor trotzdem weiterverwenden können (so meine Einbildung). Sicherlich ist Blazor auch noch keine alte Technologie, jedoch habe ich zu Blazor wenig Negatives gelesen. Und mit MAUI kann ich dann eine Blazor Applikation mit einer EXE Datei ausliefern, ohne dass ich von einem IIS-Server abhängig wäre.
Wer Rechtschreibfehler findet, darf sie behalten.
Wenn Du DevExpress brauchst, würde ich da mit der Recherche beginnen - für was bieten die ihre Frameworks denn überhaupt an? Für WPF gibt's meiner Erfahrung nach recht viel und WPF wird denke ich auch nicht so schnell eingestampft, dafür ist das zu verbreitet.
Und ja, MAUI ist in gewisser Weise eine Neuauflage von Xamarin.
MAUI arbeitet aber in einigen Punkten anders als Xamarin, insbesondere die Art und Weise, wie die verschiedenen Plattformen verwaltet werden.
Und ich persönlich finde Blazor hervorragend, meine Firma setzt auch voll auf Blazor und ist bisher zufrieden.
Es ist aber immer noch eine recht neue Technologie, das darfst Du nicht vergessen.
Insofern halte ich deinen Plan, Blazor als "Haupt"-Technologie in Zusammenarbeit mit MAUI zu verwenden, für durchaus sinnvoll. Allerdings gibt es meines Wissens nach aktuell neben MAUI keine andere Desktop-Technologie, die mit Blazor arbeiten kann, vielleicht ändert sich das aber noch.
Für ein privates Projekt habe ich mich auch für MAUI + Blazor entschieden, aus dem Grund, dass es hoffentlich bald eine Linux-Variante für MAUI oder ein Linux fähiges Desktop-Framework gibt, das mit Blazor arbeiten kann. Bis dahin läuft mein Projekt eben nur auf Windows.
Das Projekt ist aber noch so frisch, dass ich nichts konkretes dazu sagen, nur, dass ich den Plan prinzipiell gut finde.
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.