IN THE CLOUDS WITHWINDOWS PHONE 7 Danijel Malik Artifis Danijel Malik s.p.
AGENDA• Connect a phone with a Cloud // no need to call mom• Store data in Windows Azure Tables• Sync data with a Cloud or SQL Server• Build responsive phone client // you better call your mom• Push notifications• Windows Azure Toolkit for Window Phone 7
WELCOME TO UNLIMITED WORLDPHONE CLOUD• Connected • Common endpoint• Pervasive • Scalable• Marketplace • „Pay as you go“ They make a great team!
WHAT’S IN COMMON? • Common development tools • Emulator for development • Complementary application models • Phone: somtimes on, connected • Cloud: always available, running
STORING AND SHARING DATA• SQL Azure • Familiar relational database • Highly available, managed for you • T-SQL• Windows Azure Tables • Non-relational structured storage • Scale-out, billions of rows • OData• Windows Azure Blobs • Big files • REST
“HOUSTON CAN YOU HEAR ME?” KHHHKK…“…I think we lost the signal”• Phone is occasionally connected• Synchronize data, cache locally• Sync Framework 4.0 – CTP • Sync with SQL Server or SQL Azure • Silverlight, Windows Phone 7, HTML 5, … • Sync logic on the server, think clients
Using Windows Azure Tables &Sync Framework 4.0 CTPDEMO
WHEN AN APP LOOKS MORE LIKE A COMIC• Put long running operations in a background thread• Prevent doubling• Don’t wait for data• Reactive Extensions • LINQ based queries • Subscriptions • Async & Events
CLOUD-INITIATED COMMUNICATION• Push notifications • Single connection between phone and Microsoft Push Notification service • Bandwidth- and battery-friendly • Delivery not guaranteed• Three kinds of push notifications: • Raw – message to application • Toast – message to user • Tile – image, title, count
PUSH NOTIFICATIONS1. Phone opens a channel2. Phone sends URL to cloud 13. Cloud pushes notifications 4 to MPNS 34. Microsoft Push Notification service notifies phone 2
IS THERE ANY FASTER WAY?• Windows Azure Toolkit for Windows Phone 7 • Proof of concept • ASP.NET MVC 2 (as a Web role) • Windows Phone 7 application • “Getting started” guide• Hire me