1 / 26

Windows Phone 7: Silverlight != Silverlight

Windows Phone 7: Silverlight != Silverlight. Zur Person. Weblog: http://blogs.compactframework.de/Peter.Nowak http://wp7buch.wordpress.com Twitter: @PeNoWiMo Mail: Peter.Nowak@hotmail.de. Agenda. Wieso ist Silverlight != Silverlight? Technische Hintergründe

tadita
Download Presentation

Windows Phone 7: Silverlight != Silverlight

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Windows Phone 7:Silverlight != Silverlight

  2. Zur Person Weblog: http://blogs.compactframework.de/Peter.Nowak http://wp7buch.wordpress.com Twitter: @PeNoWiMo Mail: Peter.Nowak@hotmail.de

  3. Agenda • Wieso ist Silverlight != Silverlight? • Technische Hintergründe • Unterschiede zum „großen“ Silverlight • Performance vs Architektur • Tipps und Tricks für performantere Anwendungen

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

  5. Silverlight für WP7 • Silverlight für WP7 basiert auf Silverlight 3 • „Silverlight 3 + x“ Silverlight Silverlight für WP7 „.NET Framework“ .NET Compact Framework „3.7“

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

  7. Hardware • Stetige, schnelle Netzwerkverbindung • Starke CPU • „Unlimitierter“ Speicher • Begrenzter Akku • Akkuschonende CPU • Limitierte / keine, „langsame“ Netzwerkverbindung • Begrenzte Darstellungsoberfläche

  8. 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?

  9. Lösungsmöglichkeiten • Best Practices • Vorgehensmodell • Silverlight • UI und Animationen • Weitere Optimierungen • Frameworks die Helfen

  10. 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?

  11. 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

  12. 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

  13. 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

  14. Steuerelemente • ListBox Optimierungen • DeferredLoadListBox & LowProfileImageLoaderhttp://bit.ly/ajnDch • ProgressBar Optimierungen • PerformanceProgressBar von Jeff Wilcoxhttp://www.jeff.wilcox.name/2010/08/performanceprogressbar/ • Verlagert die Arbeit vom UI Thread in den Render Thread Sample

  15. 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

  16. Datenreduktion • Je weniger Daten verarbeitet werden, desto höher ist die Geschwindigkeit • Netzwerk • Verarbeitungsgeschwindigkeit XML DataContract JSON Binary schneller

  17. Datenreduktion • Untersuchungen von Jevgeni Tšaikinhttp://www.eugenedotnet.com/2010/12/windows-phone-7-serialization-comparison

  18. Datenreduktion

  19. Datenreduktion • Kombination mit ZIP möglich • Nachteile: • Interoperabilität sinkt • Lesbarkeit wird verringert

  20. 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

  21. 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

  22. Zusammenfassung • Silverlight / Silverlight für WP7 sind unterschiedlich • Hardwareplattform erfordert ein Umdenken • Performance != Komfort für den Entwickler • Optimierung • Planung • Steuerelemente • Datenreduktion • Tipps & Tricks

  23. FRAGEN?

  24. Wir sehen uns wieder! Konferenz speziell zu C++ 05. – 06. Mai 2011, direkt am Chiemseecpp.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! www.ppedv.de

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

  26. Vielen Dank! Peter Nowak

More Related