Laden...

Frameworkauswahl mit bester Kompatibilität

Letzter Beitrag vor einem Jahr 4 Posts 609 Views
Frameworkauswahl mit bester Kompatibilität

Hallo zusammen, ich mache mir gerade Gedanken, welches Framework aktuell für die weitere entwicklung auf Desktop-PC's (eventuell auch mobile Geräte wie Tablet / Smartphone Android / IOS) )die beste Kompatibilität bieten würde.

Ist das tatsächlich NET CORE ?

Was ich noch nicht begriffen habe, Net Standard, soll ja auch vile Mompatibilität geben, aber läuft ja bald die Unterstützung wieder aus? Ist NetCore die Erweiterung davon, oder was komplett anderes.

Ntürlich habe ich bisher in FW 4.0 viel Basismaterial erstellt. Da muss ich dann natürlich auch viel auf die neue Architektur umstellen.

Was macht am meisten für die Zukunft Sinn, oder würdet ihr empfehlen?

Zu .NET Framework, .NET Standard, .NET Core und .NET >5 findest Du hier einen ausführlichen Artikel von Abt.
Und ja, das neue .NET ist plattformunabhängig, läuft also auch auf den von dir genannten Betriebssystemen.

Und wenn es dir um die Zukunft geht und Du das alte .NET Framework nicht unterstützen musst, dann nimm das aktuellste .NET, beachte dabei aber die Support Policy.
Wenn Du auch das alte .NET Framework unterstützen musst (viele Frameworks müssen/wollen das), ist .NET Standard die einfachste, aber nicht die einzige Möglichkeit. Du kannst alternativ auch mehrere .NET Versionen unterstützen.

Wenn es dir um Desktop- und Mobile-Anwendungen geht, sieht das ganze aber komplizierter aus.

Von Microsoft gibt es MAUI, das ist prinzipiell plattformunabhängig, läuft aber (noch) nicht auf Linux.
Alternativ kannst Du auch vollständig auf Web setzen und z.B. mit Blazor eine Web-Anwendung entwickeln, die Du dann in verschiedenen Desktop-Clients darstellen kann, das braucht auch nicht unbedingt einen Web-Server, mit MAUI Hybrid läuft Blazor auch als reine Desktop-Anwendung.

Außerhalb der Microsoft-Welt kenne ich noch:

  • Avalonia
  • UNO
  • Electron (Web)
  • Photino (Web)

Das vermutlich flexibelste wäre, Du setzt auf Blazor und suchst dann nach Clients, die das unterstützen, damit hast Du die ganze Bandbreite von Web-Technologien zur Verfügung. Umgekehrt bist Du aber eingeschränkt, wenn es um reine Desktop-Technologien geht, da musst Du dann auf die Möglichkeiten des jeweiligen verwendeten Clients zurückgreifen.

Oder Du willst kein Web, dann kannst Du zusätzlich noch WPF nutzen, das läuft zwar nur auf Windows, wird aber immer noch unterstützt.

Ich persönlich habe für ein privates Projekt Photino (für Blazor) rausgepickt, da es schlanker ist, als Electron und .NET 8 auch ohne Dirty-Fix unterstützt.

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.

Für Desktop-Anwendungen gibt es außerhalb der Microsoft-Welt auch noch dies hier:

AlterNET UI (alternet-ui.com)

Noch Beta, sieht aber schon recht vielversprechend aus...

Zusätzlich zu den Infos von Palladin: Microsoft WebView2
WebView2 ist quasi der Konkurrent zum Ressourcen-hungrigen Electron; auch das neue Teams basiert auf WebView2.

Ich hab jetzt tatsächlich nach 11 Jahren auch wieder mein erster Projekt, bei dem wir aufgrund der Gegebenheiten nicht nur eine Webseite, sondern auch eine Desktop-App mit Offline-Fähigkeit brauchen. Wir verwenden dazu auch WebView2 auf dem Desktop und lassen eine Angular-App mit WebView2 drin rennen.


Die allgemeine Empfehlung (also nicht nur in .NET) ist eher auf Web-Techniken zu setzen und native Lösungen wie WPF auf dem Desktop nur noch zu verwenden, wenn Du einen technischen Benefit von hast. HTML/CSS und Co ist einfach Welten weiter verbreitet... auch wenn native Lösungen natürlich noch einen immens hohen Bestand haben.