Windows Phone 7 Series Architecture Deep Dive Istvan Cseri Distinguished Engineer Windows Phone
DESIGN: END USER COMES FIRST PLATFORM: RICHER, DEEPER, EASIER APPS HARDWARE: FASTER TO MARKET, LESS HEAVY LIFTING Changing our Game A new approach with WP7
Software Architecture App Model Cloud Integration Services Hardware Foundation UI Model Session Outline
Software Architecture App Model Cloud Integration Services Hardware Foundation UI Model
Hardware Foundation Capacitive touch 4 or more contact points Sensors A-GPS, Accelerometer, Compass, Light, Proximity Camera 5 mega pixels or more Multimedia Common detailed specs, Codec acceleration Memory 256MB RAM or more, 8GB Flash or more GPU DirectX 9 acceleration CPU ARMv7 Cortex/Scorpion or better Hardware buttons | Back, Start, Search
Software Architecture App Model Cloud Integration Services Hardware Foundation UI Model
Kernel Hardware BSP App ModelUI ModelCloud Integration Applications App management Licensing Chamber isolation Software updates Shell frame Session manager Direct3D Compositor Xbox LIVE Bing Location Push notifications Windows Live ID Your App UI and logic A-GPSAccelerometerCompassLightProximity MediaWi-FiRadioGraphics Security Networking Storage Frameworks SilverlightXNAHTML/JavaScript CLR Hardware Foundation Software Architecture
App Model Cloud Integration Services Hardware Foundation UI Model
App Model: Concepts Application Uniquely identifiable, licensable and serviceable software product packaged as a XAP Application Deployment Steps include Ingestion, Certification and Signing Application license Crypto-verifiable object issued to grant rights to an application Windows Phone Marketplace
App Lifecycle + Windows Phone Marketplace Phone only installs.xap packages signed by marketplace Phone handles all aspects of.xap installation based on the manifest Individual apps cannot make arbitrary changes to the phone during installation Users control install, update and uninstall, while the marketplace controls revocation Individual apps do not control their own lifecycle on the phone
Applications and licenses Application install folders App Isolation and Execution Phone only runs apps that have a valid marketplace license Apps are sandboxed into separate security accounts while installed and at runtime Resource allocation policy keeps the foreground app responsive Resource management policy ensures the user can always use Start to run a new app Running applications
Sandbox enforced for host process based on declared capabilities System provides host process for app code App Hosting and Runtime Each app executes inside an isolated, least-privileged host process All app code is transparent and CLS-verifiable, mitigating impact of common attacks Frameworks enable app code to interact with app model, UI model, phone functionality App Domain XNA Game Object CLR App Model Host SilverlightXNA HTML/JavaScript Silverlight Application Object Frameworks Kernel Hardware BSP App ModelUI ModelCloud Integration App management Licensing Chamber isolation Software updates Shell frame Session manager Direct3D Compositor Xbox LIVE Bing Location Push notifications Windows Live ID Security Networking Storage Hardware Foundation Push Notifications Location A-GPS Accelerometer Compass Light Proximity Media Wi-Fi Radio Graphics CompassA-GPS
Windows Phone 7 Series Frameworks At-a-glance
Windows Phone 7 Series Frameworks Details Common Base Class Library Collections ComponentModelConfiguration Diagnostics Reflection IO Security Threading RuntimeResources GlobalizationText Location Net ServiceModel Linq Application Object Silverlight Presentation and MediaXNA Frameworks for Games Windows Phone Frameworks Navigation ShapesMarkup Media ControlsDrawingIsolatedStorage Audio Media Graphics Input DrawingGamerServices Content PhoneApplicationPagePushNotificationWebBrowserControlSensorsPhoneApplicationFrame CameraDevice Integration Launchers & Choosers Windows Phone Controls
3 Screens and Cloud Common Base Class Library Silverlight Presentation and Media XNA Frameworks Windows Phone 7 Series Frameworks XNA Frameworks Cloud Notification Service Location Service Windows Phone Windows Desktop Xbox
Software Architecture App Model Cloud Integration Services Hardware Foundation UI Model
UI Model: Concepts Application UI and logic for functionality exposed through pages Page A single screen of user interaction elements Session An ordered workflow of user interactions spanning applications
Phone application Provides UI represented as XAML pages connected into cross-app flows by URI’s UI Model: Familiar Web Concepts Web application Provide media represented as HTTP resources linked by URL’s Shell frame Requests pages, renders UI, and handles navigation across apps Sessions and back stack Groups together sequences of pages corresponding to a user’s activity across apps Web browser Requests HTTP resources, renders them, and handles navigation across sites History and tabs Groups together sequences of HTTP resources corresponding to a user’s activity across sites
Active sessions Pictures Take a look at recent photos People Look up the status for a contact Pictures Continue looking at recent photos UI Navigation: Example
Retained in shell frame to support resuming paused sessions Discarded while the session is paused UI and State Management: Concepts Page UI Describes the visual appearance of a page Page State Contains data that describes an instance of a page, analogous to browser cookie
Apps restarted and UI rehydrated as the user navigates thru the phone UI and State Management: Example Running Applications Dehydrated and rehydrated on demand from saved state Shell Frame Monitors resource usage to decide when to pause sessions
DEMO: UI MODEL
Graphics Composition Shell frame composes all UI into a single screen Central page management enables cross app UI transitions and other effects System wide Z order enforcement emphasizes core phone functionality
Graphics Architecture App UI and logic Graphics driver Window manager Direct3D Compositor Shell frame HTML/JavaScript XNA Silverlight
Software Architecture App Model Cloud Integration Services Hardware Foundation UI Model
Cloud Integration: Concepts Built-in user experiences and APIs integrated with key Microsoft services Familiar API frameworks for interacting with existing Web 2.0 services Rich support for incorporating custom web services into app-specific experiences Windows Phone Cloud integration client services Frameworks Windows Phone Application Your Web Service Custom Web Service Existing Web Services Microsoft Services Notification ServiceLocation Service
Windows Phone Location Service Built-in support for consuming GPS, AGPS and Wi-Fi- based location data Managed APIs for location-based interaction Microsoft managed Wi-Fi access point data as part of Windows Phone Services Location client service System.Device.Location Existing Web Services Microsoft Services Location Service
Location Client Architecture Location client service App UI and logic Radio Wi-Fi A-GPS Microsoft Services Security Windows Phone Location Service
Push Notification Service Built-in support for efficient, battery-aware mobile push notifications Managed APIs for notification-driven interaction with existing Web 2.0 sites Windows Phone Your Web Service Custom Web Service Existing Web Services Microsoft Services Push client service Microsoft.Phone.Notification Notification Service
Push Client Architecture Microsoft Services Microsoft Push Notification Service Push client service Microsoft.Phone.Notification Download Manager Live Tiles service Networking Radio Wi-Fi App UI and logic
DEMO: PUSH NOTIFICATION
Authenticated Xbox LIVE calls Game specific web requests Windows Phone XBOX Live Game Foundation handles auth, caching, & partial connectivity for Xbox LIVE Third party token allows secure integration with game-specific services Your Web Service Custom Web Service Microsoft Services Gamer Services APIs for Xbox LIVE Profiles, Achievements, and Leaderboards Game Foundation XNA
Gamer Services Architecture Microsoft Services Xbox LIVE App UI and logic Windows Live ID Download Manager XNA Gamer Services APIs Live ID client service Game Foundation Storage Networking
A different kind of phone Designed for life in motion So you can build integrated experiences & profit from it
Call to Action Download the Windows Phone Developer Tools Create awesome apps and games!