So, ich will bzw. hab jetzt mal ne Cross Platform App erzeugt mit Avalonia. Die funktioniert auch, jedoch stört es mich, das Sie einfach riesig ist, zumindest der teil den Ich Außliefern muss.
Muss ich den die Skia und HarfBuzz libs immer mitliefern, oder werden dort auch die auf dem System (wenn vorhanden) existierenden benutzt?
Und auch Magick hab ich für jede platform drin, da ich EMF/WMF images unterstützen muss, kennt da jemand was schlankeres?
cSharp Projekte : https://github.com/jogibear9988
Zu Avalonia kann ich deine Frage nicht beantworten, aber wenn's darum geht, schlank und Multiplattform zu sein, würde ich auf Blazor setzen mit Photino.NET.
Photino.NET ist ein ziemlich leichtgewichtiges Konkurrenz-Framework zu Electron, allerdings (vermutlich?) lange nicht so ausgereift, wie Electron.
Für einfache Projekte ohne spezielle Anforderungen sollte das aber völlig ausreichen, behaupte ich.
Allerdings kann Photino.NET nur Desktop-Anwendungen, leider kein Mobile.
Wenn Du Blazor mit Photino.NET oder Electron nutzt, dann hast Du auch den Vorteil, dass Du den Großteil des Codes auch für eine klassische Website oder mit MAUI Hybrid (MAUI mit Blazor) nutzen und damit wirklich alle Plattformen abdecken.
Avalonia bietet das alles aus einer Hand, das macht es natürlich einfacher. Was dir lieber ist, musst Du wissen 😃
Mit Blazor kannst Du aber die ganze riesige Bandbreite an Web-Technologien nutzen - was sowohl Vorteil, als auch Nachteil sein kann ^^
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.
Zitat von jogibear9988
Muss ich den die Skia und HarfBuzz libs immer mitliefern, oder werden dort auch die auf dem System (wenn vorhanden) existierenden benutzt?
Es gibt kein GAC wie in .NET Framework mehr - Du musst immer alles mitliefern (außer die Runtime, die kann optional mitgeliefert werden). Spielt die Größe eine sehr wichtige Rolle, dann kannst Du evtl Trimming anwenden. Die Build-Zeiten werden dadurch jedoch (irgendwo musses ja her kommen) deutlich erhöht.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Photino hab ich mir schon angesehen gehabt... aber das ich dann wieder Blazor nutzen musste hat mir nicht gefallen.
Blazor gefällt mit nicht so, da müsste ich meinen C# Teil ja wieder als Webassembly ausliefern.
Das größte ist wohl im Moment wohl https://github.com/dlemstra/Magick.NET was ich nur nutze um WMF/EMF in SVGs zu wandeln. Vlt. finde ich da ja noch was kleineres...
P.S. Im dark mode kann man mal wieder keine Antworten schreiben... Man sieht kein text
cSharp Projekte : https://github.com/jogibear9988
Blazor gefällt mit nicht so, da müsste ich meinen C# Teil ja wieder als Webassembly ausliefern.
Wie kommst Du darauf?
Du musst kein WebAssembly ausliefern, nur wenn Du es auch nutzen willst.
Wie MAUI oder Electron das machen, weiß ich nicht, aber auf der Photino-Website steht dazu:
Photino.Blazor is not Server-Side Blazor, nor is it WASM Client-Side Blazor. When the .NET (console) application starts, it uses the full .NET 6 framework. The framework can be pre-installed on the machine or it can come packaged with the application in the case of a “single file application.” Execution of all .NET code in Blazor is redirected to the same framework as the console app.
Es fehlt sich aber wie Server-Side an, man hat z.B. nicht diesen furchtbaren JavaScript-Debugger.
Das größte ist wohl im Moment wohl https://github.com/dlemstra/Magick.NET was ich nur nutze um WMF/EMF in SVGs zu wandeln. Vlt. finde ich da ja noch was kleineres...
Dabei hilft dir ggf. das Trimming, das kann ja alles das raus kürzen, was Du nicht nutzt.
Ob das funktioniert hängt aber auch stark vom Framework ab, nicht jedes Framework unterstützt das.
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.