myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Entwicklungs- und Laufzeitumgebung (Infrastruktur) » WPF OnceClick Anwendung mit inkludiertem .NET Core zu gross?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

WPF OnceClick Anwendung mit inkludiertem .NET Core zu gross?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
habib
myCSharp.de-Mitglied

Dabei seit: 17.09.2020
Beiträge: 24


habib ist offline

WPF OnceClick Anwendung mit inkludiertem .NET Core zu gross?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Rein aus Testzwecken habe ich nur eine kleine GUI unter WPF mit NetCore3.1 entwickelt. Bisher noch keine Logik eingebaut, nur rein das GUI.

Das Ganze habe ich als OnceClick veröffentlicht und bekam auch eine 181 Kb Datei heraus. Auf meinem System lief sie problemlos, allerdings auf einem frisch installierten Windows (da wo die Anwendung genutzt werden soll) bekam ich die Meldung das NetCore installiert sein muss.

Also das ganze nochmals neu kompiliert und unter Bereitstellungsmodus: Eigenständig angegeben. Damit ging es dann auch auf dem frischen Windows. Aber nun ist die Datei 180 MB groß. Dies finde ich ein bisschen arg groß. Wo mache ich einen Fehler, wo denke ich vlt. falsch? Oder wo hab ich vlt. einen Haken vergessen?
17.09.2020 13:08 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.280
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Siehe Dokumentation zu "Self Contained" aka Eigenständig.

Damit packst Du die gesamte Runtime mit in Dein Applikationsdeployment; und ja, dann sind das eben 180 MB.
Der Vorteil ist, dass Du damit eben die Runtime selbst in der Hand hast (ich bin ein großer Fan davon) und auf dem Zielsystem kein .NET Core als Runtime installiert sein muss; der Nachteil ist eben, dass es größer wird.

Abhilfe hilft Trimming, das es auf Assembly- und auf Methoden-Ebene gibt (letzteres erst mit .NET 5 und ist aktuell nicht production-ready).
Damit werden Assemblies oder eben Assembly-Inhalte entfernt, die Deine Anwendung nicht braucht und das gesamte Deployment entsprechend kleiner.

Aber wie gesagt; alles sehr gut dokumentiert.
 .NET Core App Deployment
 App Trimming in .NET 5
17.09.2020 13:14 Beiträge des Benutzers | zu Buddylist hinzufügen
habib
myCSharp.de-Mitglied

Dabei seit: 17.09.2020
Beiträge: 24

Themenstarter Thema begonnen von habib

habib ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Den ersten Link hatte ich schon gefunden, trotzdem danke.

Aber gerade wenn ich nur ein kleines Tool haben möchte dann finde ich 180 MB ein bisschen arg viel.

Gerade kam mir ein Einfall und ich habe das ganze nochmals mit .Net Framework 4.7... neu geschrieben und das ganze als *.exe aus dem Debug Ordner geholt. Diese ist nun nur 81 KB groß und läuft auf dem frisch installierten Windows.
Wäre dies auch ein Weg?
17.09.2020 14:09 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.280
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

.NET Framework ist abgekündigt und erfordert genauso wie .NET Core die Runtime auf Windows.
Ohne Runtime auf dem Zielsystem kommst Du nicht an Dein Ziel mit .NET.

Dann musst halt die Runtime als Voraussetzung stellen, dann musst sie nicht mitliefern.
17.09.2020 14:21 Beiträge des Benutzers | zu Buddylist hinzufügen
habib
myCSharp.de-Mitglied

Dabei seit: 17.09.2020
Beiträge: 24

Themenstarter Thema begonnen von habib

habib ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Abt:
.NET Framework ist angekündigt und erfordert genauso wie .NET Core die Runtime auf Windows.

Verstehe ich nicht, was meinst du damit?

Habe jetzt gelesen das die .Net Runtime 4.8... Standardmäßig mit installiert wird bei Windows 10. Also kann ich dies als vorausgesetzt ansehen. Außer das ich die neuen Dinge von .Net Core nicht nutzen kann, dürfte es doch keine Probleme geben?
17.09.2020 14:24 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.280
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

4.8 ist die letzte Version von .NET Framework; danach kommt nichts mehr.
.NET Core 5 (vollständiger Name wird dann nur .NET 5) ist die Zukunft.

Standardmäßig bei Windows 10 ist 4.6.1.
Erst mit Update 1709 ist es Version 4.8.
17.09.2020 14:28 Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.770
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist online

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top



Zitat von Abt:
.NET Framework ist angekündigt ...

Du meintest wohl "abgekündigt"?
17.09.2020 14:45 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.280
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Oh. Korrigiert. Danke.
17.09.2020 14:46 Beiträge des Benutzers | zu Buddylist hinzufügen
habib
myCSharp.de-Mitglied

Dabei seit: 17.09.2020
Beiträge: 24

Themenstarter Thema begonnen von habib

habib ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Habe das ganze nochmal als Release veröffentlicht und erneut 180 MB erhalten.
Irgendwie will das ganze nicht in meinen Kopf warum eine einfach GUI Anwendung, die noch nichts macht, so groß wird. Ok, verstanden habe ich das sie die gesamte Runtime mit innehat und somit so groß wird.

Ein Kollege von mir hat ein Tool in Delphi geschrieben und das ist gerade einmal 4 MB groß. Als Vergleich habe ich nur mal die GUI nachgebaut und komme allein da schon auf 120 MB? Und ich habe auf meinem System kein Delphi installiert, daher muss da ja auch alles mitkommen. Kann mir das bitte jemand erklären?
17.09.2020 14:54 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.280
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Nochmal: da ist nicht nur Deine Anwendung drin - sondern die gesamte Runtime.
Dein Kollege hat nicht die Runtime im Deployment - aber Du.
17.09.2020 14:56 Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.770
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist online

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Die Standard UI-Controls von Delphi (VCL) basieren auf den Windows Controls (WinAPI), d.h. diese sind schon im Windows Kernel enthalten (User32.dll, comctl32.dll, ...), während WPF eine komplette Neuprogrammierung auf Basis von DirectX ist (während Windows Forms (WinForms) ebenfalls auf den Standard UI-Controls der WinAPI basiert).

Und wie Abt gerade schrieb, ist die Runtime viel mehr als nur die UI.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am 17.09.2020 15:02.

17.09.2020 15:00 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
JimStark
myCSharp.de-Mitglied

avatar-1005.jpg


Dabei seit: 10.03.2020
Beiträge: 122
Entwicklungsumgebung: Visual Studio 6.0 Enterprise


JimStark ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von habib:
Ein Kollege von mir hat ein Tool in Delphi geschrieben und das ist gerade einmal 4 MB groß. Als Vergleich habe ich nur mal die GUI nachgebaut und komme allein da schon auf 120 MB? Und ich habe auf meinem System kein Delphi installiert, daher muss da ja auch alles mitkommen. Kann mir das bitte jemand erklären?

Absolute .NET Grundlagen, kannst ja auch Programme in Assembler schreiben, dann sind sie noch kleiner.
17.09.2020 15:07 Beiträge des Benutzers | zu Buddylist hinzufügen
habib
myCSharp.de-Mitglied

Dabei seit: 17.09.2020
Beiträge: 24

Themenstarter Thema begonnen von habib

habib ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ok, das habe ich nun auch verstanden.

Das hieße also, bei kleinen Tools (so wie mein Kollege eins geschrieben hat) komme ich besser (kleinere Dateigröße) wenn ich WinForms verwende? Oder sehe ich das jetzt falsch?
17.09.2020 15:09 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.280
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Normalerweise evaluiert man eine UI-Technologie nicht nur nach der Endgröße der Applikation.
Das ist ein völlig falscher Ansatz.

Wenn es Dir nur nach der Endgröße der Applikation geht, dann würde .NET in der ersten Runde aus der Evaluierung fliegen und stattdessen auf Programmiersprachen setzen, die sich am Ende statisch kompilieren lassen.

Man entscheidet zwischen WinForms und WPF anhand deren spezifischen Vor- und Nachteile.
Wenns Dir nur um die Größe geht, dann bist Du mit .NET falsch.
17.09.2020 15:14 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Monat.
Der letzte Beitrag ist älter als ein Monat.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 21.10.2020 18:20