Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Wintellect - Windows 8 for the Silverlight and WPF Developer


Published on

The release of Windows 8 represents a bold entry into the world of tablet PCs by Microsoft. With Windows Store applications it is possible to write highly responsive, touch-friendly applications that run efficiently on multiple form factors including new ARM devices. The Microsoft team has taken great care to accommodate your existing knowledge by embracing both C# and the managed code stack and XAML technologies, but there are important fundamental differences. In this deep dive of the Windows 8 stack, Jeremy Likness covers the inner workings of the engine, reveals how it relates to traditional Silverlight and WPF development, and highlights the areas that are important for developers to understand as they transition from the Silverlight and WPF platform to Windows 8 with help from the Portable Class Library (PCL.)

Published in: Technology, Education

Wintellect - Windows 8 for the Silverlight and WPF Developer

  1. 1. Windows 8 for Silverlight/WPF Coderz Jeremy Likness (@JeremyLikness) Principal Consultant Copyright © 2012consulting training design debugging
  2. 2. what we do consulting training design debugging who we are Founded by top experts on Microsoft – Jeffrey Richter, Jeff Prosise, and John Robbins – we pull out all the stops to help our customers achieve their goals through advanced software-based consulting and training solutions. how we do it Training • On-site instructor-led training Consulting & Debugging • Virtual instructor-led training • Architecture, analysis, and design services • Devscovery conferences • Full lifecycle custom software development • Content creation Design • Project management • User Experience Design • Debugging & performance tuning • Visual & Content Design • Video & Animation Productionconsulting training design debugging
  3. 3. Building Windows 8 Apps • Everything you need to build and deploy Windows 8 Apps • Full source code online • Leverage your C# and XAML skills • Learn about new concepts, like: – Roaming storage – Live Tiles and Notifications – The Windows Store training design debugging
  4. 4. Agenda • Introduction • XAML and Blend • Animations • Styles – Parts and States • New Controls – Grouping and Sorting • Visual State Manager (Orientations, Snapped, Resolutions) • WinRT • Charms and Contracts • Application Bar • Portable Class Library • Strategies for Managing the Gap • Recapconsulting training design debugging
  5. 5. Introduction: Windows 8 Apps • Brand new look and feel • Run on a variety of devices • Sold through the Windows Store • Language choice (we’ll focus on C#/XAML, but C++/XAML and HTML5/JavaScript are available) • Single, chromeless window that fills the entire screen • Multiple layouts – orientation, snapped, form-factors, etc. • Touch-first but pen, mouse, and keyboard friendly • Apps “talk to each other” through contracts • New controls and UI surfaces • Tiles instead of iconsconsulting training design debugging
  6. 6. demo Windows 8 Appsconsulting training design debugging
  7. 7. XAML and Blend • XAML very similar to Silverlight/WPF – Namespaces change – No markup extensions • Still design-time friendly • MVVM built-in to the templates • You still have a friend in Blend!consulting training design debugging
  8. 8. demo XAML and Blendconsulting training design debugging
  9. 9. Animations • Same old story(board) • Plus a whole lot more • Animations Library makes life easyconsulting training design debugging
  10. 10. demo Animationsconsulting training design debugging
  11. 11. Styles • Same concept, can use styles “as is” in many cases • Resource keys allow for theme-aware styles (ex: high contrast) • Same parts and states for controls • StyleSelector to return stylesconsulting training design debugging
  12. 12. Theme Dictionaries <ResourceDictionary> <ResourceDictionary.ThemeDictionaries> <ResourceDictionary x:Key="Default"> <SolidColorBrush x:Key="AppBarBackgroundThemeBrush“ Color="#E5000000" /> <SolidColorBrush x:Key="AppBarBorderThemeBrush“ Color="#E5000000" /> </ResourceDictionary> <ResourceDictionary x:Key="HighContrast"> <SolidColorBrush x:Key="AppBarBackgroundThemeBrush“ Color="{StaticResource SystemColorButtonFaceColor}" /> <SolidColorBrush x:Key="AppBarBorderThemeBrush“ Color="{StaticResource SystemColorHighlightColor}" /> </ResourceDictionary> </ResourceDictionary.ThemeDictionaries> </ResourceDictionary>consulting training design debugging
  13. 13. StyleSelector public class MyStyleSelector: StyleSelector { protected override Style SelectStyleCore( object item, DependencyObject container) { Style style = new Style(typeof(ListViewItem)); style.Setters.Add(new Setter( ListViewItem.ForegroundProperty, new SolidColorBrush(Colors.Red))); return style; } } <ListView ItemsSource="{Binding Widgets}" ItemContainerStyleSelector="{StaticResource MyStyleSelector}" />consulting training design debugging
  14. 14. New Controls • Progress ring • Spell-check support • GridView • ListView • FlipView • SemanticZoom • Touch-firstconsulting training design debugging
  15. 15. demo Controlsconsulting training design debugging
  16. 16. Visual State Manager • Behaves the same as Silverlight • Used in the fundamental templates • Helpful for orientation and display mode changes • Full Blend supportconsulting training design debugging
  17. 17. demo VSMconsulting training design debugging
  18. 18. WinRT • The new API for Windows 8 apps • Has it’s own type system • Provides language projections for support in JavaScript, C#, C++, etc. • Automatic mapping between types • You can create WinRT using managed code for consumption by non-managed Windows Store apps • See the built-in WinRT types: c:windowssystem32WinMetadata • Uses ECMA-335 for type definitions – use ILDASM.execonsulting training design debugging
  19. 19. demo WinRTconsulting training design debugging
  20. 20. Charms, Contracts, Extensions • Use Charms (Windows Key + C) to invoke certain contracts • Contracts are agreements between Windows Store apps • Extensions are agreements between Windows Store apps and the Windows 8 operating system • Contracts: Cached file updater, file picker, play to, search, settings, share • Extensions: account picture provider, AutoPlay, background tasks, camera settings, contact picker, file activation, game explorer, print task settings, protocol activation, SSL/certificatesconsulting training design debugging
  21. 21. demo Contracts and Extensionsconsulting training design debugging
  22. 22. Application Bar • Similar to Windows Phone concept • Drop-in control • Automatically handles show/hide • Advanced scenarios like IE10 • Commands live at the edge: – Right-edge = Charms and “system level” commands – Bottom, top edges = Application commandsconsulting training design debugging
  23. 23. Portable Class Library • Built into Visual Studio 2012 • Dozens of profiles based on various combinations • Finds the common API surface area between target platforms • Supported targets: – .NET Framework 4.0 – 4.5 – Silverlight 4 – 5 – Windows Phone 7 – 7.5 – .NET for Windows Store apps – Xbox 360 • More targets = less surface areaconsulting training design debugging
  24. 24. Strategies for Managing the Gap • Only target the specific frameworks you know you will use (i.e. don’t target Windows Phone if that’s not on your radar) • Build as much functionality into the API surface area you can • Use interfaces (IoC/DI) and delegates for functionality that must be platform specific • Don’t try to share XAML. The various targets all have different design training design debugging
  25. 25. demo Wintellog (MVVM + WPF and Windows Store)consulting training design debugging
  26. 26. Recap • XAML and Blend • Animations • Styles – Parts and States • New Controls – Grouping and Sorting • Visual State Manager (Orientations, Snapped, Resolutions) • WinRT • Charms and Contracts • Application Bar • Portable Class Library • Strategies for Managing the Gapconsulting training design debugging
  27. 27. Links • Twitter me: @JeremyLikness • Blog me: • Book me: • Source me: training design debugging
  28. 28. Questions? Jeremy Likness (@JeremyLikness) Principal Consultant jlikness@wintellect.comconsulting training design debugging