image

  1. Client-side developers do need to embrace the cloud. The increasing popularity of connected devices like tablet computers and smartphones is having a direct effect on the adoption rate of personal cloud services. You can expect both connected devices and cloud services to grow together.
  2. This trend has been accelerating over the past couple of years. Mobile and portable devices have limited internal storage and rely heavily on cloud services.
  3. Mobile Computing Applications are generally Connected apps.
  4. You can pull data to them or you can receive push notifications
    • Mobile Apps are about connecting to the services you need, like Hotmail, Messenger, Facebook, Twitter, LinkedIn, Messaging, and People app
  5. Developers will need to think about a central, cloud-based storage location.
    • SkyDrive is one cloud option available to solve this problem especially within academia as all Live@edu and Office365 students get a free skydrive account.
  6. You may create your Mobile Applications that requires a custom cloud-based backend, Maybe you are designing an app to bring together photos from many different sources and to then view and share them. Your photos may need to be aggregated from several locations such as Facebook, Flickr, Skydrive or even local storage.         

How the cloud can help  
 

  1. There are some basic features that all Mobile computing developers will need to master.
  2. This is where cloud computing can really make a difference and accelerate your time to market.
  3. Although most applications support their own local storage, you will probably want to leverage the cloud to store important data. Most users will have multiple devices. They will expect that the data is accessible from anywhere. That’s why it is important for developers to know how to leverage Storage Services in the cloud.
  4. All mobile computing devices comes with a rich communications stack. Most developers will leverage http for most of their communications. There are also push notifications that allow applications to retrieve information in the background and without requesting data specifically.

 

There are 2 ways your Application can get data 


 image

  1. The cloud provides a way to reach across device platforms and a larger pool of resources from which to get data.
  2. Mobile applications can get data in two ways. The first ways is to simply ask for it by making a web request. This is using a pull approach. The second way applications can get data is to leverage push notifications.
  3. When a device uses a pull approach, it is basically a HTTP-based, request/response. Developers can choose from various frameworks, which include WCF, OData, WebAPI, WebRequest, etc.
  4. Data can be sent in a variety of formats, such as SOAP, JSON, XML, POX, etc.
  5. Push notifications are initiated by the cloud. Before Applications can receive push notifications, applications must register themselves with the push notification service.
  6. Your custom cloud service can communicate with the Windows Notification Service to tell it to send push notifications
    1. The windows notification service is designed to be bandwidth and battery friendly.
    2. It is the push notification mechanism that is used to update live tiles on the Windows 8 desktop and Windows Phone.
    3. The downside to push notifications is that there is no guaranteed delivery of content.
      1. If guarantees are needed for data delivery, then some of the pull techniques previously discussed may be appropriate.
  7. Oftentimes push notifications result in a pull request from a Windows 8 application. This means that once the Windows 8 application gets a push notification, it knows it needs to then request data from the cloud using a pull approach. Of course, it may choose to ignore this, given a user preference.

 

Push and Pull – Maybe Both

 

image 

 

Example of a Notification
004

  1. The Push Notification Service is provided by Microsoft. However, Windows 8 applications must register for this service. Once registered, applications are ready to receive data that is sent by the Windows Push Notification Service.
  2. The Push Notification Service may receive data itself from a Windows Azure cloud application that you create. This cloud based application can aggregate data from other sources if necessary. You can see from the diagram above it may request data from Flickr or Facebook or just about from anywhere.

Downloads and Setup  - Windows Azure Toolkits for Devices

 

Windows Phone - http://bit.ly/watwp7

image

Android - https://github.com/WindowsAzure-Toolkits/wa-toolkit-android

image

 

iOS - https://github.com/WindowsAzure-Toolkits/wa-toolkit-ios

image

Windows 8 - http://bit.ly/Lcthn1

image

 

image

The Windows Azure Toolkit for Social Games is a set of guidance, samples, and tools that helps developers quickly get started building a casual or social game on Windows Azure.  https://github.com/WindowsAzure-Toolkits/wa-toolkit-games

Keeping data off the local device and in the cloud

image
005

  1. Some powerful capabilities are available here.
  2. To start with, there is the ability to store huge amounts of data.
  3. Tables allow you to stores huge lists of things or huge collections of objects. Tables can partition themselves across many machines, supporting extremely fast query results even if there are billions of rows.
  4. Blobs allow you to store large binary objects like videos, documents, even web pages.
  5. Queues allow you to support asynchronous messaging. That means your applications can send information to a cloud application and not be affected by how busy the cloud application is.
  6. Because Azure supports Infrastructure as a Service Technologies (IaaS), developers have almost an unlimited amount of options for their Data Storage needs
    1. Microsoft supports Linux in the cloud. This means you can install almost any data store that is supported on Linux, meaning that you can use MongoDB, Cassandra, MySQL, or almost any other data platform.

 

Managing Identity 


 image

  1. Download the Identity Training kit
    1. http://www.microsoft.com/en-us/download/details.aspx?id=14347
  2. Leveraging the Windows Identity Foundation SDK and training kit is probably the best starting point for anyone serious about implementing secure systems.
  3. Security is a big topic.
  4. Applications can leverage claims-based authentication techniques. Typically, this involves a security token service, which creates SAML tokens. Inside these tokens are claims.
  5. Claims-based identity can greatly simplify the authentication process for the user because he or she doesn't have to sign in multiple times to multiple applications.
  6. Single sign in is ideal for some situations, such as to authenticate against multiple applications or websites.
  7. Claims-based identity is a way to achieve single sign in.  It can make the authentication less complex for your apps because those apps don't have to provide ways to create an account or password, etc.
  8. Another great feature of claims-based identity is that it allows your applications to obtain specific user information, without having to ask the user for that information.
  9. SAML tokens make it possible for single sign on scenarios, where your security credentials need to travel through different security gateways.
  10. The Access Control Service allows you to leverage third party identity providers, such as Facebook, Yahoo, Google, and Live.
  11. This frees the developer from having to worry about identity in their application. Identity management is complex and time consuming and takes away from a developer's focus on the application itself.
      

Resources for Mobile Application development

Project Templates, Samples and Libraries Source Code
http://watwindows8.codeplex.com/wikipage?title=Project%20Templates%2c%20Samples%20and%20Libraries%20Source%20Code&referringTitle=Documentation#

Creating a New Windows 8 Cloud Application
http://watwindows8.codeplex.com/wikipage?title=Creating%20a%20New%20Windows%208%20Cloud%20Application&referringTitle=Documentation#

Running the Windows 8 Cloud Application
http://watwindows8.codeplex.com/wikipage?title=Running%20the%20Windows%208%20Cloud%20Application&referringTitle=Documentation#

Using the Windows 8 Cloud Application Services Application
http://watwindows8.codeplex.com/wikipage?title=Using%20the%20Windows%208%20Cloud%20Application%20Services%20Application&referringTitle=Documentation#

Sample Metro App using Windows Azure Service Bus
http://watwindows8.codeplex.com/wikipage?title=Sample%20Metro%20App%20using%20Windows%20Azure%20Service%20Bus#

Raw Notifications Sample - C# and JavaScript
http://watwindows8.codeplex.com/wikipage?title=Raw%20Notifications%20Sample#

Notifications Sample - C# and JavaScript
http://watwindows8.codeplex.com/wikipage?title=Notifications%20Sample%20%e2%80%93%20C%23%20and%20JavaScript#

Push Notification Worker Sample
http://watwindows8.codeplex.com/wikipage?title=Push%20Notification%20Worker%20Sample&referringTitle=Documentation#

Margie's Travel
http://watwindows8.codeplex.com/wikipage?title=Margie%e2%80%99s%20Travel#

ACS Windows Metro Sample
http://watwindows8.codeplex.com/wikipage?title=ACS%20Windows%20Metro%20Sample&referringTitle=Documentation#

How to Deploy Your Services to Windows Azure
http://watwindows8.codeplex.com/wikipage?title=Appendix%20I%3a%20How%20to%20Deploy%20Your%20Services%20to%20Windows%20Azure%3f#

How to Obtain Namespace and Management Keys
http://watwindows8.codeplex.com/wikipage?title=Appendix%20II%3a%20How%20to%20Obtain%20Namespace%20and%20Management%20Keys%3f#

More information and details on Windows 8 Tile Notification Types 
http://bit.ly/A8GuVg

More information and details on Windows 8 Toast Notification Types
http://bit.ly/MDHfJ4

More information and details on Windows 8 Badge Notification Types
http://bit.ly/LTf4GP

More information and details on Windows 8Geolocation
http://bit.ly/rFiLhN

More information and details on Windows 8 Notifications
http://bit.ly/NSi8D6

MSDN Developers Portal - http://bit.ly/QNgt58

Windows 8 Developers - http://bit.ly/JH5jOQ

Try these NuGet Packages

http://nuget.org/packages/windows8.notifications

http://nuget.org/packages/windowsazure.notifications

http://nuget.org/packages/wnsrecipe

Node.js
http://www.windowsazure.com/en-us/develop/nodejs/#

Java
http://www.windowsazure.com/en-us/develop/java/#

PHP
http://www.windowsazure.com/en-us/develop/php/#

Python
http://www.windowsazure.com/en-us/develop/python/#

Downloads
http://www.windowsazure.com/en-us/develop/downloads/#

Try Windows Azure in Education 150 day Academic Pass and 90 day Student Pass

http://www.windowsazure.com/education