Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Windows 8, Windows Phone 8 und überhaupt...

Windows 8, Windows Phone 8 und überhaupt...

Slides zum .NET Usergroup Meeting Ulm am 10.04.2013

Dariusz Parys

April 09, 2013
Tweet

More Decks by Dariusz Parys

Other Decks in Programming

Transcript

  1. Dariusz Parys Daniel Meixner Windows 8 Windows Phone 8 ...und

    überhaupt http://bit.ly/myWindowsApp http://bit.ly/myCloud http://bit.ly/myTools #UGWindows
  2. Agenda • Wo stehen wir? • W8 App Dev Basics

    • Vote! • W8 Runtime Environment • WP8 new Features • W8/WP8 Cross Platform Development • .Net App Development & WinRT • App Backend (WAMS) • Windows App Deployment & Store • Dauerbrenner • Q&A
  3. Wann ist ne App ne App? • Purpose • Runtime

    Environment • Deployment via Store
  4. Programmiermodell Windows Phone 8 .NET API for Windows Phone Windows

    Phone Runtime Win32 & COM Managed Native WP7.1 XAML & C#/VB WP8.0 XAML & C#/VB WP8.0 Games DirectX/Direct 3D & C++ WP7.1 XNA & C#/VB WP8.0 XAML & C#/VB with Direct3D Graphics + C++ + C++
  5. • W8 Runtime Environment & PLM • WP8 new Features

    • W8/WP8 Cross Platform Development • .Net App Development & WinRT • App Backend (WAMS) • Dauerbrenner VOTE!!!
  6. Tile Templates and Tile Sizes •Windows Phone 8 supports three

    Tile templates • Flip – flips from front to back (similar to the WP 7.1 Tile template) • Iconic – clean iconic layout designed to reflect Windows Phone design principles • Cycle – cycles through up to nine images 16
  7. • You can register your app as a lock screen

    provider, which enables: • User can select your app to show detailed status on the lock screen • Can select your app as one of the five apps to show quick status (icon and count) • Can select your app as the lock screen background image provider 4/10/2013 17 Lock Screen on Windows Phone 8
  8. • Launchers are APIs that help a user perform common

    tasks • Invoke part of the phones’ built-in capabilities to perform tasks such as • Take a photo • Add a contact • Send an email or SMS message • Etc… • New Launchers in Windows Phone 8: • SaveAppointmentTask • ShareMediaTask • MapDownloaderTask • MapUpdaterTask • MapsTask • MapsDirectionsTask New Launchers 4/10/2013 Microsoft confidential 18
  9. • Windows Phone 8 has new Maps controls • Bing

    Maps control from Windows Phone OS 7.1 is still supported, but deprecated • The new Maps controls use technology supplied by Nokia • New features: • Vector-based for faster rendering • Four cartographic map modes • Light and dark color modes • Display landmark and pedestrian features Maps 4/10/2013 Microsoft confidential 19
  10. • New Location API in the Windows Phone Runtime API

    set • Similar to Windows 8 Location API • Windows Phone OS 7.1 .NET Location API still supported • Background location-tracking apps • Run continuously in the background when the user navigates away from the app • Enables scenarios such as Run Trackers, turn-by-turn navigation Location and Location Tracking 4/10/2013 Microsoft confidential 20
  11. • Windows Phone 8 allows you to enable users to

    robustly interact with your app using their voice • Two types of voice interaction are new: • Voice Commands - Allows users to deep-link into your app by holding down the Start button and speaking a prefix you specify for your app, followed by a command that you define. • Speech Recognition and Text-to-Speech APIs - While in the context of your app, allow users to provide input using their voice, and readout text to users via text-to- speech Speech 4/10/2013 Microsoft confidential 21
  12. Wallet Credit & Debit Cards Loyalty & Membership Cards Access

    Saved Deals Supports NFC ‘Tap to Pay’
  13. • LongListSelector • Flat lists • Grouped lists – with

    headers • Jump List • Formerly in the Silverlight Toolkit • Pivot and Panorama now in ROM • WebBrowser control now based on Internet Explorer 10 UI Controls New Controls in Windows Phone 8 SDK
  14. • Incoming VoIP calls work like any other call •

    Integrates with built-in phone features • VoIP apps continue to run in the background • Available to all developers VoIP and Video Chat
  15. • Create apps that communicate with other phones using Bluetooth

    technology • Bluetooth API enables the following scenarios for Windows Phone 8: • App-to-app communication • App-to-device communication • Proximity API enables: • App-to-app connection using Bluetooth technology • Establish a Wi-Fi, Bluetooth, or Wi-Fi Direct connection between your app and an instance of your app on a proximate device • Send data between devices using NFC. • Use a phone to interact with NFC tags Bluetooth and NFC 4/10/2013 Microsoft confidential 28
  16. • Apps can use the Microsoft.Phone.Storage API to read files

    from an SD card • User can also use SD card to extend device storage for their personal files and media • Store photos, music, videos • Can install apps from a MicroSD store Storage – Read from SD Card 4/10/2013 Microsoft confidential 31 MicroSD Support
  17. • Create a set of contacts owned exclusively by the

    app, though visible through the phones built-in Contacts app • APIs are provided to create, update, delete, and query the app’s contacts • Sync the app’s contact list with a remote list maintained by the app’s cloud service Custom Contact Store 4/10/2013 Microsoft confidential 32
  18. • App can register a File Association • Automatically launch

    your app when a file of the registered type is received as an email attachment or opened in the browser, or through Sharepoint • One app can launch another by sending it a file of the registered type • App can register a protocol • Allows your app to automatically launch when another app ‘opens’ a special URI • Protocol is the first part of a URI, e.g. myprotocol:/ShowProducts?CategoryID=aea6ae1f • App launches another and passes it data in the remainder of the launch URI File and Protocol Associations Enables App to App Communication 4/10/2013 Microsoft confidential 33
  19. • Managed Apps are NGEN’d for you (compiled to native)

    in the Windows Phone Store in Windows Phone 8, so typically start and run faster  • When you build your app in Visual Studio, the code is not compiled into a native image, but into a machine-independent Common Intermediate Language (CIL) binary file (formerly known as Microsoft Intermediate Language, or MSIL) • When you submit your app to the Windows Phone Store, you submit the CIL file • On submission, CIL file is converted to optimized Machine Dependent Intermediate Language, or MDIL • When a user downloads your app to a device, it is pre-jitted to a native image • Windows Phone 8 Apps Run Faster  4/10/2013 Microsoft confidential 35
  20. • In general, the Windows Phone app platform enables apps

    that target Windows Phone OS 7.1 to run without modification or recompilation on Windows Phone 8 • Same APIs may exhibit slightly different behaviour in WP 8.0 compared to WP 7.1 • Feature improvements or behaviour changes Windows Phone OS 7.1 Apps on Windows Phone 8 4/10/2013 Microsoft confidential 36 WP OS 7.1 app WP 8.0 Runtime/ Libraries No recompilation WP OS 7.1 app
  21. • Instead of breaking WP 7.1 apps running with the

    WP 8.0 runtime, quirks mode is applied to retain WP 7.1 behaviour • Apps that are upgraded to WP 8.0 and recompiled run on the phone without quirks mode being applied Windows Phone OS 7.1 Apps on Windows Phone 8 4/10/2013 Microsoft confidential 37 WP OS 7.1 app WP 8.0 Runtime/ Libraries No recompilation WP OS 7.1 app +Quirks WP OS 8.0 app WP OS 8.0 app
  22. Programmiermodell Windows Phone 8 .NET API for Windows Phone Windows

    Phone Runtime Win32 & COM Managed Native WP7.1 XAML & C#/VB WP8.0 XAML & C#/VB WP8.0 Games DirectX/Direct 3D & C++ WP7.1 XNA & C#/VB WP8.0 XAML & C#/VB with Direct3D Graphics + C++ + C++
  23. DllImport "avicap32.dll" "capCreateCaptureWindow" static extern int string int int int

    int int int int DllImport "avicap32.dll" static extern bool int MarshalAs UnmanagedType ref string int MarshalAs UnmanagedType ref string int // more and more of the same
  24. .NET for Windows Store apps Windows Phone 7.1 .NET Framework

    4.5 Namespace 72 95 447 Type 1,246 1,788 14,936 Member 15,674 20,291 217,166
  25. Programmiermodell Windows Phone 8 .NET API for Windows Phone Windows

    Phone Runtime Win32 & COM Managed Native WP7.1 XAML & C#/VB WP8.0 XAML & C#/VB WP8.0 Games DirectX/Direct 3D & C++ WP7.1 XNA & C#/VB WP8.0 XAML & C#/VB with Direct3D Graphics + C++ + C++
  26. Gemeinsamkeiten & Unterschiede 4/10/2013 Screen Size Windows Phone • 800x480,

    1280x720, 1280x768 Portrait, Landscape Windows • 1024x768  Portrait, Landscape, Snapped Controls Windows Phone • Panorama, Pivot, ListPicker LongListSelector Windows • GridView, ListView, Semantic Zoom, FlipView Lifecycle Windows Phone • Launched from start/apps list. Tombstones apps Windows • Resumes existing apps No tombstoning
  27. Reuse: Portable Class Library Reusing pre-built components or libraries 4/10/2013

    Microsoft confidential 8 1 • Portable Class Library • Managed Code • Reusable library • One codebase with no conditional compilation
  28. Shared Code: File-Level (Add as Link) • App logic common

    to both apps, but not portable • Code containing Windows Runtime API calls • User controls with no platform dependencies
  29. Shared Code: Classpart-Level (Partial Classes) public partial class MyClass {

    public void CommonMethodA() { // code that is common } public int CommonMethodB() { int result = 0; // code that is common return result; } } public partial class MyClass { public void PlatformSpecificMethod() { // specific code for platform Á } } } public partial class MyClass { public void PlatformSpecificMethod() { // specific code for platform B } }
  30. Shared Code: Classpart-Level (Partial Classes) • Very useful if amount

    of common code is large relative to the amount of platform-specific code • I cannot specify what each platform-specific partial class should implement
  31. Shared Code: Line Level (Conditional Compilation) • can’t be shared

    in a Portable Class Library • simple way to share code • Complexity! public class MyClass { public void CommonMethodA() { // code that is common to Windows Phone 8 and Windows 8 } public int CommonMethodB() { int result = 0; // code that is common to Windows Phone 8 and Windows 8 return result; } public void PlatformSpecificMethod() { #if NETFX_CORE // code for Windows 8 #else // code for Windows Phone 8 #endif } }
  32. public class MyWin8Class : MyBaseClass { public override void PlatformSpecificMethod()

    { // Implement this method specific to Win 8 } } } Patterns: Abstract Base Class public abstract class MyBaseClass { public void CommonMethodA() { // code that is common } public int CommonMethodB() { int result = 0; // code that is common return result; } public abstract void PlatformSpecificMethod(); } Add as Link Portable Class Library public class MyWP8Class : MyBaseClass { public override void PlatformSpecificMethod() { // Implement this method specific to WP8 } }
  33. public class MyClass { private IPlatformSpecificCode _platformImpl; public MyClass(IPlatformSpecificCode platformImpl)

    { _platformImpl = platformImpl; } public void CommonMethodA() { ... } public int CommonMethodB() { ... } public void PlatformSpecificMethod() { _platformImpl.PlatformSpecificMethodImpl(); } } public interface IPlatformSpecificCode { void PlatformSpecificMethodImpl(); } // Windows 8 app project public class MyWin8Implementation : IPlatformSpecificCode { public void PlatformSpecificMethod() { // Implemented for Windows 8 } } Patterns: Interfaces // Windows Phone app project public class MyWinPhone 8Implementation : IPlatformSpecificCode { public void PlatformSpecificMethod() { // Implemented for Windows Phone 8 } }
  34. Windows 8 – New Features UEFI Connecte d Standby File

    Histor y Performance .iso Mount Metered Connection s Multi Monit or Supp ort Window s To Go Storage Spaces Hy
  35. Q&A