Fanug - Pragmatic Windows Phone DeveloperPresentation Transcript
Samidip Basu Manager| Columbus ADI Practice Solutions Lead | MSFT Mobility Email: [email_address] Twitter: @samidip Info: http://samidipbasu.info Blog: http://samidipbasu.com Sogeti USA 8425 Pulsar Place, Suite 300 | Columbus, OH 43240. www.us.sogeti.com The Pragmatic Windows Phone Developer
Central Ohio Windows Phone User Group http://cowpug.org http://meetup.com/cowpug @cowpug 3 rd Monday @ TechColumbus
What’s on the plate? .. Ok, way too much!
Windows Phone – The Platform & Design Decisions
SDK, Emulator Improvements & Marketplace Pitfalls
Let’s Peel Mango
Getting back to your hot wife or girlfriend - aka Push Notifications
Push Notifications from the cloud [ Demo/Walkthrough ]
Shopping List App with Mango features [ Demo/Walkthrough ]
StirTrek App with hints of MVVM [ Demo/Walkthrough ]
Introduction to OData
Browse Netflix with me [ Demo/Walkthrough ]
MVC3, EF 4.1, SQL Azure, OData & WP7 all play together [ Demo/Walkthrough ]
Azure Toolkit for WP7/iOS [ Demo of template solution ]
August WP7 Sweepstakes -- http://www.windowsphone7event.com/contest/ContestIndex.aspx
Free unlocked Samsung Focus or Free Marketplace Reg!
Different, For Good Reasons Smart Design Integrated Experiences
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”
Two Flavors of Applications
Mango !! [Confirmed Features]
500 new features
Message Threading by contact
Live Messenger & Facebook chats
Group support for people hub
Deeper social integration thru Twitter & LinkedIn
Linked (multiple) Inboxes
Conversational email view
Voice commands for messaging
Deep-linked apps in Search results
Livelier Secondary Live Tiles with back flip information
Enhanced & more reliable Push Notifications for Deep-linked Toasts & Tiles
IE9 .. nuf said
Web-based WP Marketplace
Mango !! [Confirmed Features] .. Contd.
Bing vision, voice & music searches
Quick Cards in search results include apps & info
Local scout in Bing
Multitasking, new app state & fast app switching
Background agents to schedule actions
New sensors - compass, gyroscope & the combined motion API
Notification types – Live Tile Update, Toast or Raw; depending on type, notification is sent either to App or Shell.
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.
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.
Toast and Tile notification are system defined notification in Windows Phone 7 platform.
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.
Push Notifications Contd.
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.
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.
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.
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.
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
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?
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:
Need to Register?
Go to www.windowsazurepass.com
Select your Country and Enter Promo Code: “DPCE01”
Login with your Windows Live ID and complete the registration information
Already Registered but haven ’t received
Go to https://windows.azure.com
Login with your Windows Live ID
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.
Web and Worker Roles
Interacts with end-user or web services
Communicate with worker roles directly or via queues
Initiates their own requests for data or tasks from the queue
Similar to a "batch job ” or Windows service
Build services and solutions with any combination of Web and Worker Roles
Communicate via HTTP/HTTPS, TCP/IP, and ports other than 80 and 443
Develop with Microsoft and non-Microsoft tools: ASP.NET, WCF, other .NET tools, Java, Python, Ruby, etc.
Windows Azure storage is an application managed by the Fabric Controller
Windows Azure applications can use native storage, MySQL within a VM, or SQL Azure
Application state is kept in storage services, so worker roles can replicate as needed
Blobs can be stored in global Windows Azure Content Delivery Network (CDN)
Benefits of SQL Azure:
Unlimited, automated scaling
Self managing, self healing
Low friction provisioning
Pay as you consume
Business Ready SLA
O(h my ) Data
“ 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)”
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 http://odata.org for more information about Odata, a list of current producers & consumers and what all this means for developers.