Kolumne XAML Expertise: WPF und Windows-Apps

XAML-Tipp: WPF – Mehr Performance zur Laufzeit mit dem WPF ResMerger
Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger Top-How-tos zum Thema XAML. Einsteiger und fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertise: „WPF: Mehr Performance zur Laufzeit mit dem WPF ResMerger“.

Eine sauber strukturierte WPF-Anwendung ist aus Architektursicht essenziell. Aus technischer Sicht kann sie sich allerdings negativ auf die Geschwindigkeit auswirken. Ein Beispiel dafür ist die Trennung von Styles, DataTemplates und weiteren Resource-Instanzen via ResourceDictionaries. Das Nachladen jeder ResourceDictionary-Instanz beansprucht unnötige Energie vom System. Eine attraktive Lösung für dieses Problem bietet das kostenlose Open-Source-Tool WPF ResMerger.

WPF: Mehr Performance zur Laufzeit mit dem WPF ResMerger

Das Tool wird innerhalb des Build-Prozesses angestoßen und fügt die unterschiedlichen ResourceDictionaries zu einem ResourceDictionary zusammen, das dann innerhalb der App.xaml global bereitgestellt wird. So kann während der Entwicklung sauber strukturiert werden, während zur Laufzeit der optimierte Code ausgeführt wird. Der WPF ResMerger wird über Git von der GitHub-Projektseite bezogen:

 git clone https://github.com/dctdct/WPF-ResMerger.git

Dann muss das Projekt mit Visual Studio geöffnet und gestartet werden. Anschließend kann man in seinem persönlichen WPF-Projekt einen Unterordner mit dem Namen Tools anlegen und die erzeugte ResMerger.exe hineinkopieren. Das neue Verzeichnis muss nicht in die Visual-Studio-Solution-Datei aufgenommen werden. Zum Schluss wird bei den Projekteigenschaften ein Pre-Build Command hinterlegt mit:

"$(SolutionDir)Tools\ResMerger\ResMerger.exe" "$(ProjectDir)" $(ProjectName) "/Source.xaml" "/Output.xaml"

Die Source.xaml-Datei ist die bereits vorhandene ResourceDictionary-Datei, die alle zusammengefügten ResourceDictionaries beinhaltet (merged resource dictionary). Die Output.xaml-Datei ist das komplett generierte ResourceDictionary von allen in Source.xaml festgelegten Dateien.

Damit jetzt die erzeugte Output.xaml-Datei beim Projekt berücksichtigt wird, muss sie bei der Visual-Studio-Solution-Datei hinterlegt werden. Dazu einfach die SLN-Projektdatei mit dem Editor bearbeiten und den Code aus Listing 1 einbinden. Das war es auch schon. Jetzt wird bei jedem Build-Vorgang die ideale ResourceDictionary-Datei erzeugt und eingebunden.

 

<Page Include="Source.xaml">

<Generator>MSBuild:Compile</Generator>

<SubType>Designer</SubType>

</Page>

<Page Include="Output.xaml">

<DependentUpon>Source.xaml</DependentUpon>

<Generator>MSBuild:Compile</Generator>

<SubType>Designer</SubType>

</Page>


Windows Developer

Windows DeveloperDieser Artikel ist im Windows Developer erschienen. Windows Developer informiert umfassend und herstellerneutral über neue Trends und Möglichkeiten der Software- und Systementwicklung rund um Microsoft-Technologien.

Natürlich können Sie den Windows Developer über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist der Windows Developer ferner im Abonnement oder als Einzelheft erhältlich.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -