WINDOWS PHONE 7 DEVELOPER GUIDE A guide to 3 screens and the cloud Scott Densmore Sr. Software Development Engineer Microsoft patterns & practices
ABOUT YOU (AN ASSUMPTION) You… are a developer know C# are building applications for Windows Phone 7 are building applications for other mobile platforms want to connect your mobile application to the cloud
GOALS FOR THIS SESSION Intro Windows Phone 7 How to build applications for Windows Phone 7 Simple examples How to connect your Windows Phone 7 application to the cloud TailSpin survey application connected to Windows Azure
WINDOWS PHONE 7
METRO
Clean, light, open, fast Celebrate typography Alive & in motion Content not chrome Authentically digital Metro Principals
WHAT ARE YOU BUILDING? Silverlight vs XNA
WHAT ARE YOU BUILDING? Performance is impressive, especially in 3D Hardware based graphics acceleration There are some very interesting input options You can use all the hardware and sensors in your Windows Phone games Potential for Xbox Live integration Support for Avatars and Achievements Support for in-game advertising Viable alternative to charging for your code XNA
WHAT ARE YOU BUILDING? Do not try to adapt an existing UI design directly to the phone Design for both portrait and landscape Place menus and other options at the bottom so the users hand does not obstruct the rest of the content Provide feedback to actions Set the InputScope for text controls Follow the Windows Phone 7 Design Guidelines Considerations
DEMO What are you building?
CONNECTIVITY
Device is occasionally connected Signal can switch between Wi-Fi to GPRS (General Packet Radio Service) Have an offline experience Considerations
DEMO Connectivity
SHARED ENVIRONMENT
Minimize device resource usage e.g. Only enable GPS when you need it Use async programming techniques Reactive Extensions Optimize memory usage Maximize GPU usage Do not use all of the storage for your application Mango – Multi-tasking Considerations
STORAGE
Isolated storage is used to store data 256 MB of memory and to 8 GB of flash Serializable collections is a good way to store data Third party databases are available Mango – includes SQL CE
STORAGE Use the DeviceExtendedProperties to check for memory installed and avialble Clean up resources that are no longer needed Consider using a cache to improve performance Compress data or use data formats that are compact (JSON / Binary) Considerations
SECURITY
SECUIRTY Use HTTPS when connecting to services Encrypt data that you store on the phone User HTTPS when communicating with the Push Notification Service Do not store sensitive data and keys on the device Mango – DPAPI Considerations
INTERRUPTIONS
Many events can cause interruptions on the phone Camera task task A phone call Handle the events exposed by the operating system to save state of the application (Tombstoning) Considerations
DEMO Tombstoning
TAILSPIN Why Phone + Cloud?
BUILDING THE CLIENT
Overview
BUILDING THE CLIENT MVVM
DEMO Building the Client
CONNECTING TO THE CLOUD Why Phone + Cloud? The cloud levels the playing field The cloud provides a larger pool of resources from which to pull The cloud provides a way to reach across device platforms
CONNECTING TO THE CLOUD HTTP-based, request/response Framework choices (WCF, OData, WebRequest, etc.) Wire format choices (SOAP, JSON, POX, etc.) Services
CONNECTING TO THE CLOUD TailSpin Services
CONNECTING TO THE CLOUD Push Notifications Cloud Service MPNS Windows Phone 7
CONNECTING TO THE CLOUD TailSpin Push Notifications
DEMO Connecting to the Cloud
RESOURCES WP7 Book Windows Phone 7
QUESTIONS? After the session please fulfil the questionnaire. Questionnaires will be sent to you by and will be available in the profile section of the NT Conference website Thank you!