veranstalter: building & connecting know-how 16.-17. februar 2011, münchen partner: windows...

26
Veranstal ter: Building & Connecting Know-how 16.-17. Februar 2011, München Partn er: Windows Phone 7: Silverlight != Silverlight

Upload: lubbert-gegner

Post on 06-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Veranstalter:

Building & Connecting Know-how16.-17. Februar 2011, München

Partner:

Windows Phone 7:Silverlight != Silverlight

Page 2: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Zur PersonWeblog:

http://blogs.compactframework.de/Peter.Nowakhttp://wp7buch.wordpress.com

Twitter: @PeNoWiMoMail: [email protected]

Page 3: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Agenda•Wieso ist Silverlight != Silverlight?–Technische Hintergründe–Unterschiede zum „großen“ Silverlight–Performance vs Architektur

•Tipps und Tricks für performantere Anwendungen

Page 4: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

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!!!

Page 5: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

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“

Page 6: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

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!

Page 7: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Hardware

• Stetige, schnelle Netzwerkverbindung

• Starke CPU• „Unlimitierter“ Speicher

• Begrenzter Akku• Akkuschonende CPU• Limitierte / keine,

„langsame“ Netzwerkverbindung

• Begrenzte Darstellungsoberfläche

Page 8: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Weitere Probleme• „Verwöhnte“ Entwickler– Frameworks– Starke Hardware

• Over Engineering(http://it-republik.de/dotnet/artikel/Patternitis-3534.html)

– Besp.: Benötige ich MVVM und Dependency Injection?

Page 9: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Lösungsmöglichkeiten• Best Practices– Vorgehensmodell– Silverlight• UI und Animationen• Weitere Optimierungen

• Frameworks die Helfen

Page 10: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

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?

Page 11: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

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

Page 12: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

UI Thread vs Render ThreadUI 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

Page 13: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

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

Page 14: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Steuerelemente• ListBox Optimierungen– DeferredLoadListBox & LowProfileImageLoader

http://bit.ly/ajnDch• ProgressBar Optimierungen– PerformanceProgressBar von Jeff Wilcox

http://www.jeff.wilcox.name/2010/08/performanceprogressbar/• Verlagert die Arbeit vom UI Thread in den Render

Thread

Page 15: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

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

Page 16: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Datenreduktion• Je weniger Daten verarbeitet werden, desto

höher ist die Geschwindigkeit– Netzwerk– Verarbeitungsgeschwindigkeit

schneller

XML

JSO

N

Bina

ry

Dat

aCon

trac

t

Page 17: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Datenreduktion• Untersuchungen von Jevgeni Tšaikin

http://www.eugenedotnet.com/2010/12/windows-phone-7-serialization-comparison

Page 18: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Datenreduktion

Page 19: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Datenreduktion• Kombination mit ZIP möglich

• Nachteile:– Interoperabilität sinkt– Lesbarkeit wird verringert

Page 20: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

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

Page 21: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

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

Page 22: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Zusammenfassung• Silverlight / Silverlight für WP7 sind

unterschiedlich• Hardwareplattform erfordert ein Umdenken• Performance != Komfort für den Entwickler• Optimierung– Planung– Steuerelemente– Datenreduktion– Tipps & Tricks

Page 23: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Veranstalter:

Building & Connecting Know-how16.-17. Februar 2011, München

Partner:

FRAGEN?

Page 24: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Wir sehen uns wieder!

Konferenz speziell zu C++ 05. – 06. Mai 2011, direkt am Chiemsee cpp.ADC2011.de

Trainings und Events der ppedvMehr als 100 verschiedene Trainingsauf Microsoft-Technologien spezialisiert11 Standorte in D & ATMaßgeschneiderte Trainings direkt bei Ihnen vor Ort!www.ppedv.de

Page 25: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Veranstalter:

Building & Connecting Know-how16.-17. Februar 2011, München

Partner:

Hat Ihnen mein Vortrag gefallen?Ich freue mich auf Ihr Feedback!

Page 26: Veranstalter: Building & Connecting Know-how 16.-17. Februar 2011, München Partner: Windows Phone 7: Silverlight != Silverlight

Veranstalter:

Building & Connecting Know-how16.-17. Februar 2011, München

Partner:

Vielen Dank!Peter Nowak