Daniel Greitens | maximago Performanceoptimierung in WPF und Silverlight User Interfaces 15:30.

Slides:



Advertisements
Ähnliche Präsentationen
ISA Server User Group Herzlich Willkommen zum 8. Münchner Treffen 27. Juli 2006 Unterschleißheim Dieter Rauscher [MVP ISA] * Christian.
Advertisements

Objektrelationales Mapping mit JPA
Web-Programmierung und Web 2.0-Technologien
Uwe Habermann Venelina Jordanova dFPUG – Silverlight Wizard.
Uwe Habermann VFX 10.0 Visual Extend Special Features.
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Templates. © beas2009 / Page 2 This documentation and training is provided to you by beas group AG. The documents are neither approved nor in any way.
Marian Grzesik, Software2Business GmbH. Agenda 1. Bing Maps Accont erstellen 2. Bing Maps SDK downloaden 3. Beispiele a. Basic Applikation b. Navigation.
Einstellungen im Web für Outlook
Formatvorlage des Untertitelmasters durch Klicken bearbeiten Platin-Partner: Gold-Partner: Veranstaltungs-Partner: Medien-Partner: Web Content Management.
MSDN Webcast Team Foundation Server mit Visual FoxPro nutzen
Für Fortgeschrittene: Small Business Server End of Sales – was nun?
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 4 Folie 2 Message Passing mittels Sockets (1) s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 3 Folie 2 Layout (1) Zur Anordnung der Steuerelemente.
Don`t make me think! A Common Sense Approach to Web Usability
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 6 Folie 2 ASP.NET Einführung (1) Microsoft-Technologien zur Entwicklung.
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 3 Folie 2 Windows Presentation Foundation (WPF) s.a.
Wie und wann verwendet man WPF?
Christian Moser Software Developer and UX Designer Zühlke Engineering AG
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 6 Folie 2 Routed Events s.a.
SQL Server 2005 CLR-Integration
Michael Köster User Experience Specialist Microsoft Corporation.
Brand my SharePoint Grafische Gestaltung von SharePoint-Webseiten
Vorgehen bei der Entwicklung mobiler Lösungen
© Zühlke 2012 Romano Roth & Oliver Brack iOS, Android, WP7... Alle nativ auf einen Streich! Romano Roth und Oliver Brack 7. Mai 2012 Folie 1.
Das Model-View-ViewModel-Pattern
Jan Hentschel Microsoft Expert Student Partner Windows Azure Windows Azure Windows Azure Mobile Services.
Neno Loje Berater & MVP für Visual Studio ALM und TFS (ehemals VSTS) Hochqualitative Produkte mit Visual Studio & TFS 2010.
Frank Fischer + Bernhard Frank Microsoft Deutschland GmbH.
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH Christian Weyer Solutions Architect thinktecture.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 Commands (1) s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 Dependency Properties s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 7 Folie 2 Styles (1) s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 11 Folie 2 Model-View-ViewModel s.a.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 2013 Kapitel 6 Folie 2 WCF Data Services (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 2 Folie 2 ASP.NET HTTP-Handler (1)
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 ASP.NET Zustandsverwaltung
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ASP.NET Seitenübergänge

Virtual Earth Visualisierung von Geodaten Daniel Walzenbach, Microsoft Deutschland GmbH
© Zühlke 2012 Romano Roth & Oliver Brack iOS, Android, WP7... Alle nativ auf einen Streich! Romano Roth und Oliver Brack 24. September 2012 Folie 1.
Marktübersicht für Content Management Systeme
Online Consulting AG Weststrasse 38 CH-9500 Wil Tel.+41 (0) Fax+41 (0) screen AG Töpferstrasse 5 CH-6004 Luzern Tel. +41 (0)
Caliburn.Micro.
Romano Roth & Oliver Brack Zühlke Engineering AG.
MSDN TechTalk Anwendungen integrieren in Microsoft Dynamics CRM 4.0.
Thomas Schissler – artiso solutions GmbH Artur Speth – Microsoft Deutschland GmbH.
Goldpartner: Veranstalter: Der Werkzeugkasten für Entwickler Ein UI-Framework in AngularJS Timo Korinth.
MSDN Webcast Die 8 goldenen Regeln des UI-Designs
Software Architektur für on-premise und die Cloud Lösungen
7.-8. März 2013, Rosenheim Brand my SharePoint grafische Gestaltung von SharePoint 2013-Webseiten Fabian Moritz | MVP SharePoint Server.
Weg mit Fehlern, die kein Entwickler versteht …
Christian Binder Senior Platform Strategy Manager Microsoft Deutschland GmbH.
1 Konica Minolta IT Solutions Prinzip Partnerschaft MANAGED MONITORING ÜBERWACHJUNG DER SERVERINFRASTRUKTUR UND ANWENDUNGEN DIREKT AUS DER CLOUD.
Microsoft Silverlight Autor: Christian Pirker. Inhalt Einführung Silverlight Einführung XAML Silverlight 1.0 und 1.1 Silverlight 2.0 Silverlight 3.0 Ausblick.
Artiso solutions GmbH | Oberer Wiesenweg 25 | Blaustein | Advanced UI-Testing für WPF.
Cubido business solutions gmbh Haidfeldstrasse 33 A-4060 Leonding di(fh) Wolfgang Straßer ° Rundumblick.
XML-basierte Beschreibungssprachen für grafische Benutzerschnittstellen Seminarvortrag im Studiengang „Scientific Programming“ von Steffen Richter.
WPF lebt… .NET 4.6 und die Neuerungen in WPF
 Präsentation transkript:

Daniel Greitens | maximago Performanceoptimierung in WPF und Silverlight User Interfaces 15:30

Daniel Greitens Managing Director bei maximago Schwerpunkt UI-Entwicklung, User Experience 2099, 2010, 2011 MVP Expression Blend Consulting, Coaching, Buchautor, Speaker Mail

Was heißt „Performance“? Keine „Hänger“ im UI Schnelle Reaktion auf Interaktion Flüssige Animation = Die „Performance“ die der Benutzer verspürt

Fokus dieser Session Bestandteil: –Optimierungen an Standard-Komponenten (Gesamtaufbau, Resources, Controls, …) –Normale Datenvisualisierung (Grid, DataTemplates und Co.) Nicht Bestandteil: –Performance von Business Logic –Performance von Services –Performance von grobem Unfug (Gigatonnen an Daten, Eierlegende 3d-Party-AllInOne-Lösungen, 3D mit Videotexturen per Citrix)

Agenda Hintergründe –Der UI-Thread –Rendering Tiers Vorstellung der Demo-Anwendung Phase 1: Die gängigen Verdächtigen Phase 2: Aufräumen: Static, Freeze und Co. Phase 3: Auswahl der minimalen Controls Phase 4: Deeper Ausklang! Was sonst noch teuer ist… 15:40

Hintergründe in Kürze

Tooling Performance Suite (Windows SDK) us/library/aa aspx us/library/aa aspx Snoop WPF Inspector

Der UI-Thread Regulär ein Thread, in dem das gesamte UI läuft Auslastende Prozesse blockieren sofort das UI (z.B. Service-Aufrufe, auch asynchrone!) Zusätzliche Thread-Verwaltung per Dispatcher Oder einfacher per BackgroundWorker de/magazine/cc aspxhttp://msdn.microsoft.com/de- de/magazine/cc aspx

Rendering Tiers “A rendering tier defines a level of graphics hardware capability and performance for a device that runs a WPF application.” Rendering Tier 0 –No graphics hardware acceleration. All graphics features use software acceleration. The DirectX version level is less than version 9.0. Rendering Tier 1 –Some graphics features use graphics hardware acceleration. The DirectX version level is greater than or equal to version 9.0. Rendering Tier 2 –Most graphics features use graphics hardware acceleration. The DirectX version level is greater than or equal to version 9.0. Quelle: oder erstes Ergebnis bei Google mit „WPF Performance“ 15:50

Optimierung einer Anwendung von A bis Z

Ausgangslage Eine kleine Anwendung Mit Beispiel-Daten zum Happy-Scrolling Fesches Design Eine laufenden Animation Zum Start mit wirklich allen Faux-Pas

Demo Vorstellen des Zustands 15:55

Phase 1: Die gängigen Verdächtigen Virtualisierung? Nur auf Rendering Tier 0: –Bitmap-Effects –TileBrushes: ImageBrush, VisualBrush, DrawingBrush

Demo 16:05

Phase 2: Aufräumen Brushes in Resourcen DynamicResources vs. StaticResources Freezing

StaticResource vs. DynamicResource StaticResource –Wert wird einmalig bei Instanziierung abgeholt –Muss vor erstem Referenzieren instanziiert sein DynamicResource –Fragt bei jedem Render-Vorgang aktuellen Wert ab –Berücksichtigt nur das aktuelle Assembly –Wird automatisch von Blend gesetzt

Freeze von Brushes Event Handler von jeder Instanz, die den jeweiligen Brush verwendet Aushebeln der GC! State Size Frozen SolidColorBrush212 Bytes Non-frozen SolidColorBrush972 Bytes

Freeze & StaticResource MyBrush (not freezed) MyBrush (not freezed) {DynamicResource=MyBrus h } MyBrush (freezed) {StaticResource=MyBrush } EventsPollin g Einmalig bei Instanziierung

Demo 16:20

Phase 3: Auswahl der minimalen Controls Typische Beispiele: –Rectangles statt Border –ContentPresenter statt ContentControl –Textblock statt Label

Demo 16:25

Phase 4: Deeper Custom- an Stelle von User Controls –User Control: Jede Instanz wird geparsed –Custom Control: Template wird EINMAL geparst Virtualisierung macht nur mit Recycling der Container Sinn! Anzahl Instanzen an ResourceDictionaries minimal halten –ResourceDictionaires nur einmal instantziieren! –(Oder unsere SharedResourceDictionaries nutzen)

Demo 16:40

Ausklang! Was sonst noch teuer ist… Grid.ShareSize ScrollBarVisibility = Auto Bindings auf ActualWidth und ActualHeight Keine FallBackValues bei Bindings

Links us/library/ms aspxhttp://msdn.microsoft.com/en- us/library/ms aspx de/magazine/cc aspxhttp://msdn.microsoft.com/de- de/magazine/cc aspx importance-of-the-position-of-window- resources-element-in-wpf-xaml-markup/ importance-of-the-position-of-window- resources-element-in-wpf-xaml-markup/ mlhttp:// ml

Danke! Daniel Greitens Gerne persönlich am Stand von maximago hier auf der BASTA 16:45