Veranstalter: Building & Connecting Know-how Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight
Zur Person Weblog: Mail:
Agenda Wieso ist Silverlight != Silverlight? – Technische Hintergründe – Unterschiede zum großen Silverlight – Performance vs Architektur Tipps und Tricks für performantere Anwendungen
WP7: SL != SL It isn't 'Silverlight Lite', it isn't 'Silverlight Different', it's Silverlight. Scott Guthrie, MS Vice President, MIX 2010 Aus technischer Sicht falsch!!!
Silverlight für WP7 Silverlight für WP7 basiert auf Silverlight 3 – Silverlight 3 + x Silverlight.NET Framework Silverlight für WP7.NET Compact Framework 3.7
Das bietet Silverlight 3 nicht Gestenorientierte Steuerelemente Auswahl der Eingabemethoden / SIP-Support für TextBox Zugriff auf Gerätefunktionen – Chooser und Launcher Application Bar Cross-Domain Zugriff Out of the box Einen Renderthread!
Hardware Stetige, schnelle Netzwerkverbindung Starke CPU Unlimitierter Speicher Begrenzter Akku Akkuschonende CPU Limitierte / keine, langsame Netzwerkverbindung Begrenzte Darstellungsoberfläche
Weitere Probleme Verwöhnte Entwickler – Frameworks – Starke Hardware Over Engineering ( – Besp.: Benötige ich MVVM und Dependency Injection?
Lösungsmöglichkeiten Best Practices – Vorgehensmodell – Silverlight UI und Animationen Weitere Optimierungen Frameworks die Helfen
Vorgehensmodell Fragekatalog: – Ist das was ich tue das schnellstmögliche? – Kann ich es auf Größe / Geschwindigkeit hin optimieren? – Brauche ich dieses Pattern / dieses Framework wirklich? – Wird diese Animation wirklich benötigt?
Best Practices Laden von Daten verzögern Daten cachen, wo möglich – Bessere Geschwindigkeit – Ggfs. kein Netzwerk vorhanden Nur Daten darstellen, die benötigt werden – Ggfs Paging einsetzen für ListBoxen – Alternativ DetailsPage benutzen
UI Thread vs Render Thread UI Thread: Operationen werden auf der CPU ausgeführt CPU Arbeit verbraucht mehr Strom Aufgaben: Benutzereingaben Parsen von XAML Zeichnen visueller Elemente bei Instanziierung … Render Thread: Wird auf der GPU ausgeführt Stromsparender Aufgaben: Transparenz Skalierung Rotation Verschiebung Projektion
Grafiken PNG vs. JPEG vs. BMP – JPG schnelle als PNG beim Laden durch den fehlenden Alphakanal – BMP generell zu groß Grafiken nach Möglichkeit direkt in der Zielgröße verwenden Vektor- vs. Bitmapgrafik – Größe vs Geschwindigkeit – Skalierung Cachen von Netzwerkgrafiken
Steuerelemente ListBox Optimierungen – DeferredLoadListBox & LowProfileImageLoader ProgressBar Optimierungen – PerformanceProgressBar von Jeff Wilcox ceprogressbar/ ceprogressbar/ Verlagert die Arbeit vom UI Thread in den Render Thread
Steuerelemente Pivot ist performanter als Panorama Visibility vs. Opacity – Opacity ist schneller, verbraucht jedoch mehr Speicher DataTemplates sollten feste Größen besitzen Templateerweiterungen vermeiden, wo möglich
Datenreduktion Je weniger Daten verarbeitet werden, desto höher ist die Geschwindigkeit – Netzwerk – Verarbeitungsgeschwindigkeit schneller XML JSONBinaryDataContract
Datenreduktion Untersuchungen von Jevgeni Tšaikin comparison comparison
Datenreduktion
Kombination mit ZIP möglich Nachteile: – Interoperabilität sinkt – Lesbarkeit wird verringert
Assemblygröße Content- vs Ressource-Dateien – Content lädt schneller – Anwendungen laden schneller Assemblies ggfs. splitten, wenn diese zu groß werden – Satellitenassemblies werden nur bei Bedarf nachgeladen
Weitere Tipps & Tricks Konstruktor vs. Loaded-Ereignis – Verlagern von Code in das Loaded-Ereignis, wo sinnvoll – Alernativ LayoutUpdated-Ereignis Quellcode schneller als XAML – XAML muss erst geparst werden! Datenbindung langsamer als direktes zuweisen DispatcherTimer nur, wenn nötig Page Stacking vermeiden
Zusammenfassung Silverlight / Silverlight für WP7 sind unterschiedlich Hardwareplattform erfordert ein Umdenken Performance != Komfort für den Entwickler Optimierung – Planung – Steuerelemente – Datenreduktion – Tipps & Tricks
Veranstalter: Building & Connecting Know-how Februar 2011, München Partner: FRAGEN?
Wir sehen uns wieder! Konferenz speziell zu C – 06. Mai 2011, direkt am Chiemsee cpp.ADC2011.decpp.ADC2011.de Trainings und Events der ppedv Mehr als 100 verschiedene Trainings auf Microsoft-Technologien spezialisiert 11 Standorte in D & AT Maßgeschneiderte Trainings direkt bei Ihnen vor Ort!
Veranstalter: Building & Connecting Know-how Februar 2011, München Partner: Hat Ihnen mein Vortrag gefallen? Ich freue mich auf Ihr Feedback!
Veranstalter: Building & Connecting Know-how Februar 2011, München Partner: Vielen Dank! Peter Nowak