Fanug - Pragmatic Windows Phone Developer


Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Windows 7 | Presenter Mode Friday, September 2, 2011 Microsoft Confidential
  • 09/02/11 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. Windows Mobile 7 Bootcamp
  • BLOBS: large, unstructured data (audio, video, etc) TABLES: massive amounts of simply structured data, accessed using ADO.NET QUEUES: serially accessed messages or requests, allowing web-roles and worker-roles to interact DRIVES: files organized in a directory structure. 11-09-02
  • Fanug - Pragmatic Windows Phone Developer

    1. 1. Samidip Basu Manager| Columbus ADI Practice Solutions Lead | MSFT Mobility Email: [email_address] Twitter: @samidip Info: Blog:   Sogeti USA 8425 Pulsar Place, Suite 300 | Columbus, OH 43240. The Pragmatic Windows Phone Developer
    2. 2. Central Ohio Windows Phone User Group @cowpug 3 rd Monday @ TechColumbus
    3. 3. What’s on the plate? .. Ok, way too much! <ul><li>Windows Phone – The Platform & Design Decisions </li></ul><ul><li>SDK, Emulator Improvements & Marketplace Pitfalls </li></ul><ul><li>Let’s Peel Mango </li></ul><ul><li>Getting back to your hot wife or girlfriend  - aka Push Notifications </li></ul><ul><li>Push Notifications from the cloud [ Demo/Walkthrough ] </li></ul><ul><li>Shopping List App with Mango features [ Demo/Walkthrough ] </li></ul><ul><li>StirTrek App with hints of MVVM [ Demo/Walkthrough ] </li></ul><ul><li>Introduction to OData </li></ul><ul><li>Browse Netflix with me [ Demo/Walkthrough ] </li></ul><ul><li>MVC3, EF 4.1, SQL Azure, OData & WP7 all play together [ Demo/Walkthrough ] </li></ul><ul><li>Azure Toolkit for WP7/iOS [ Demo of template solution ] </li></ul><ul><ul><ul><ul><ul><li>August WP7 Sweepstakes -- </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Free unlocked Samsung Focus or Free Marketplace Reg! </li></ul></ul></ul></ul></ul>
    4. 4. WP7 Experience
    5. 5. Different, For Good Reasons Smart Design Integrated Experiences
    6. 7. Elements of the Application Platform CLOUD SCREEN Phone Emulator Samples Documentation Guides Community Packaging and Verification Tools Notifications Location Identity Feeds Maps Social App Deployment Registration Validation Certification Publishing Marketplace MO and CC Billing Business Intelligence Update Management Tools Portal Services Cloud Services Sensors Media Data Xbox LIVE Notifications .NET Framework managed code sandbox Location Phone Runtime – On “Screen”
    7. 8. Two Flavors of Applications
    8. 9. Mango !! [Confirmed Features] <ul><li>500 new features </li></ul><ul><li>Message Threading by contact </li></ul><ul><li>Live Messenger & Facebook chats </li></ul><ul><li>Group support for people hub </li></ul><ul><li>Deeper social integration thru Twitter & LinkedIn </li></ul><ul><li>Linked (multiple) Inboxes </li></ul><ul><li>Conversational email view </li></ul><ul><li>Voice commands for messaging </li></ul><ul><li>Deep-linked apps in Search results </li></ul><ul><li>Livelier Secondary Live Tiles with back flip information </li></ul><ul><li>Enhanced & more reliable Push Notifications for Deep-linked Toasts & Tiles </li></ul><ul><li>IE9 .. nuf said </li></ul><ul><li>Web-based WP Marketplace </li></ul>
    9. 10. Mango !! [Confirmed Features] .. Contd. <ul><li>Bing vision, voice & music searches </li></ul><ul><li>Quick Cards in search results include apps & info </li></ul><ul><li>Local scout in Bing </li></ul><ul><li>Multitasking, new app state & fast app switching </li></ul><ul><li>Background agents to schedule actions </li></ul><ul><li>Background audio </li></ul><ul><li>New sensors - compass, gyroscope & the combined motion API </li></ul><ul><li>Sockets for IM & multi-player games </li></ul><ul><li>Enhanced access to camera feed </li></ul><ul><li>Silverlight & XNA Integration </li></ul><ul><li>Application Profiling </li></ul><ul><li>Enhanced emulator </li></ul><ul><li>Local DB & Linq to SQL </li></ul><ul><li>Encrypted credentials store </li></ul><ul><li>Stronger partner ecosystem; more countries </li></ul>
    10. 11. Mango !! .. Oh, the rumors. <ul><li>Tethering .. curse the carriers </li></ul><ul><li>4G </li></ul><ul><li>Bing Turn-by-Turn directions – In for sure </li></ul><ul><li>Front-facing cameras – Supported; Skype & Lync clients coming soon </li></ul>
    11. 12. It ’s not always Sunny & 73 o !!
    12. 13. Push Notifications
    13. 14. Push Notifications Contd. <ul><li>Notification types – Live Tile Update, Toast or Raw; depending on type, notification is sent either to App or Shell. </li></ul><ul><li>Tile – visual dynamic representation of application content within phone ’s start page, if pinned by user (through Context Menu); ongoing communication to user based on frequency of cloud service actions; the backend cloud service can control a tile’s background image (may be expensive if no local resource) & counter, as configured. </li></ul><ul><li>Toast – displays notification as an overlay onto user ’s current screen; intrusive & hence to be used sparingly; user may touch to launch application; cloud service may control title & subtitle of toast; appropriate for peer-to-peer apps; users have to have an explicit option to agree to toasts. </li></ul><ul><li>Toast and Tile notification are system defined notification in Windows Phone 7 platform. </li></ul><ul><li>Raw – App can receive messages from cloud constantly using PN; eliminates need for custom code to have persistent connection open with backend cloud service; only possible if app running in foreground. </li></ul>
    14. 15. Push Notifications Contd. <ul><li>For now, 3 rd party apps are not permitted to run in the background for efficiency reasons [changes in Mango]; hence need for communication channel from backend services so that apps need not be kept running to receive updates or keep polling & in turn draining battery. </li></ul><ul><li>Push Notification service (MPNS) is designed to provide a cloud service with a dedicated & persistent channel for pushing notifications to interested mobile devices. Interacts with carrier networks. </li></ul><ul><li>When a cloud service needs to inform user of something “interesting”, it sends a notification request to PN service. PN, in turn, routes the notification to subscribing devices as a Toast or Tile notification. </li></ul><ul><li>Enhanced Push Notifications in Mango – Improved TDET detection, Fast resume of channel, Max channels up to 30 now and API enhancements to handle multiple 2-sided tiles & deep-linked Toasts. </li></ul>
    15. 16. What is… the Cloud for a Mobile Developer? A style of computing where massively scalable IT-enabled capabilities are delivered ‘as a service’ to external customers using Internet technologies. - Gartner Cloud computing is Internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand, like the electricity grid . -Wikipedia A way of delivering value and monetization efficiency. - Jonathan Appavoo The notion of data and applications and hardware sources being accessed remotely. - Kartik Hosanagar In a recent Economist survey, 20 years ago your typical knowledge worker got 80 percent of the info needed to do their job came from inside the company. Today, it ’s completely flipped. Cloud computing is the technical response to this reality. - Anthony Arrott Cloud is the worst buzzword I ’ve ever heard. Vapor, something you can’t touch. I think it’s a lot of hype, but then again, here I am offering that service. - Vance Checkletts
    16. 17. Huh .. say that again? The Cloud is just another place to host your code/stuff, but you are billed like a utility. Augment your Mobile Solutions with cloud support. State of the web Practicality?
    17. 18. <ul><li>In preparation for today ’s Boot Camp, please take a moment to ensure you have registered for the 30-day free Windows Azure platform pass: </li></ul><ul><li>Need to Register? </li></ul><ul><li>Go to </li></ul><ul><li>Select your Country and Enter Promo Code: “DPCE01” </li></ul><ul><li>Login with your Windows Live ID and complete the registration information </li></ul><ul><li>Already Registered but haven ’t received </li></ul><ul><li>confirmation email? </li></ul><ul><li>Go to </li></ul><ul><li>Login with your Windows Live ID </li></ul>
    18. 19. Windows Azure Components Virtualized Computation provides massive application scalability. Customers can build a combination of web and worker roles. Those roles can be replicated as needed to scale the applications and computational processing power. Storage Services allow customers to scale to store large amounts of data – in any format – for any length of time, only paying for what they use or store. Service Management is performed by the Fabric Controller, which controls all the resources within the data center. The Fabric Controller deploys your service and monitors the overall health of the fabric. Security and Control State-of-the-art physical security processes combined with strictly controlled OS access model. Data is replicated in multiple fault domains in location selected by the customer. State-of-the-art data centers located around the world. Host your applications and data securely, accessible from everywhere you allow.
    19. 20. Web and Worker Roles <ul><li>WEB ROLE </li></ul><ul><li>Interacts with end-user or web services </li></ul><ul><li>Communicate with worker roles directly or via queues </li></ul><ul><li>WORKER ROLE </li></ul><ul><li>Initiates their own requests for data or tasks from the queue </li></ul><ul><li>Similar to a &quot;batch job ” or Windows service </li></ul><ul><li>Build services and solutions with any combination of Web and Worker Roles </li></ul><ul><li>Communicate via HTTP/HTTPS, TCP/IP, and ports other than 80 and 443 </li></ul><ul><li>Develop with Microsoft and non-Microsoft tools: ASP.NET, WCF, other .NET tools, Java, Python, Ruby, etc. </li></ul>
    20. 21. Storage Services <ul><li>Windows Azure storage is an application managed by the Fabric Controller </li></ul><ul><li>Windows Azure applications can use native storage, MySQL within a VM, or SQL Azure </li></ul><ul><li>Application state is kept in storage services, so worker roles can replicate as needed </li></ul><ul><li>Blobs can be stored in global Windows Azure Content Delivery Network (CDN) </li></ul>
    21. 22. SQL Azure <ul><li>Benefits of SQL Azure: </li></ul><ul><li>Unlimited, automated scaling </li></ul><ul><li>Self managing, self healing </li></ul><ul><li>Automatic failover </li></ul><ul><li>Multi-tenant </li></ul><ul><li>Low friction provisioning </li></ul><ul><li>Pay as you consume </li></ul><ul><li>Business Ready SLA </li></ul>
    22. 23. O(h my ) Data <ul><li>“ In very simple terms, OData is a resource-based Web protocol for querying and updating data. OData defines operations on resources using HTTP verbs (PUT, POST, UPDATE and DELETE), and it identifies those resources using a standard URI syntax. Data is transferred over HTTP using the AtomPub or JSON standards. For AtomPub, the OData protocol defines some conventions on the standard to support the exchange of query and schema information. (Source: MSDN Magazine, June 2010 Issue)” </li></ul><ul><li>Services that expose their data using the OData protocol are referred to as OData producers, and clients that consume data exposed using the OData protocol are referred to as consumers. Head over to for more information about Odata, a list of current producers & consumers and what all this means for developers. </li></ul><ul><li>The OData protocol enables access to information from a broad range of clients. At present, there are client libraries available for Windows Phone 7, iPhone, Silverlight 4, PHP, AJAX/Javascript, Ruby, or Java. </li></ul>
    23. 24. Questions? Thank you !!