Hardware and software platforms for Developing Cloud-Enabled Applications for Windows Phone 7

As part of Project Hawaii, participants are building web applications and services as well as mobile applications. For this project, we have selected Windows Phone 7 as the mobile platform and either Windows Azure or Internet Information Services (IIS) as the web-application server.

Software Platform - Hawaii Services SDK

This SDK allows cloud-enabled Windows Phone 7 applications to connect to Microsoft Research experimental services. These services have been developed for students and researchers who are associated with Project Hawaii.

Hawaii Cloud Services for Project Participants

Project Hawaii participants have access to use the following cloud services:

Relay Service

Most mobile service providers do not provide mobile phones with consistent public IP addresses that would allow for them to be reachable from other devices. This makes it difficult to write applications where mobile phones communicate with each other directly.

The Hawaii Relay Service provides a relay point in the cloud that mobile applications can use to communicate. It provides an endpoint naming scheme and buffering for messages sent between endpoints. It also allows for messages to be multicast to multiple endpoints.

Watch Hawaii Relay service demo by Prof Rajesh Balan from Singapore Management University.

OCR in the Cloud

The Hawaii Optical Character Recognition (OCR) in the Cloud service takes a photographic image that contains some text and returns the text. For example, given a JPEG image of a road sign, the service would return the text of the sign as a Unicode string.

Download source code (along with required client libraries and Visual Studio project files) for a simple OCR sample app. Readme.rtf within the zip file lists steps to build and execute the app

Rendezvous Service

The Hawaii Rendezvous Service is a mapping service from well-known human-readable names to endpoints in the Hawaii Relay Service. These well-known human-readable names may be used as stable rendezvous points that can be compiled into applications.

Speech to Text

The Hawaii Speech to Text service takes takes a spoken phrase and returns text (currently in English only).

Computation

Using Windows Azure to provide compute servers in the cloud.

Storage

Using Windows Azure to provide virtual SQL databases in the cloud.

Identification

Using Windows Live ID to identifying visitors to web sites.

Mapping

Using Virtual Earth to provide maps for given latitude and longitude coordinates.

Mobile Platform - Windows Phone 7

About the Phone

We have chosen to standardize on the Samsung Focus.

Getting Started with Development

Step 1: Download the Free Tools. This download includes the Express edition of Visual Studio 2010. You can use these tools with the Professional edition of Visual Studio instead if you wish (see the Development Tools section below).
Step 2: Create Your First Application. Windows Phone applications can be created using either of the Silverlight or XNA framework. This how-to article uses Silverlight for demonstration purposes. It also demonstrates how to run your application in the emulator.
Step 3: Join App Hub to unlock your phone (needed in order to run your application on a real device). This step can take days to complete, so plan ahead.
Step 4: Deploy Your Application to your phone for testing.

Windows Phone Marketplace

If you wish, you can submit your completed application(s) to the Windows Phone Marketplace via App Hub. Students may submit a limited amount of apps free of charge (see the App Hub FAQ).

Forums

The App Hub discussion forums are a good place to ask general Windows Phone programming questions.

Books

The ebook from Microsoft Press: Programming Windows Phone 7, is free from Microsoft Press. The ebook's sample code is also available for download in both C# and Microsoft Visual Basic.

Various books on Windows Phone 7 development are available through popular retailers (Amazon.com, Barnes & Noble, Borders).

Documentation

MSDN's Windows Phone Development home page.

Windows Phone Class Library Reference.

Silverlight Class Library Reference.

App Hub's Aggregation of Useful Documentation Links.

Free Tutorials from Microsoft

The Windows Phone 7 Development for Absolute Beginners site has a series of tutorial videos explaining everything from how to download the tools to how to program in C#.

For more experienced programmers who are simply new to Windows Phone 7, a more in-depth Windows Phone 7 Training Course is also available.

Other Resources

Some code samples for Windows Phone.

The Silverlight for Windows Phone Toolkit adds some additional UI controls for Windows Phone application development. The source code is also available.

Windows Azure Platform

Project Hawaii provides project participants with access to Windows Azure for use in creating their own cloud services.

About Windows Azure

Windows Azure is Microsoft's cloud services platform, and provides computation, database and other capabilities hosted in the cloud.

Getting Started with Development

Use the Windows Azure toolkit for Windows Phone 7 to build Windows Phone 7 applications that leverage cloud services running in Windows Azure.

Documentation

MSDN's Online Library Entry for the Windows Azure Platform.

MSDN's ASP.NET Portal, for information on creating web applications and services by using the Microsoft .NET Framework.

Forums

There are MSDN community support forums for Windows Azure, SQL Azure, and App Fabric.

Additional Development Tools (Optional)

Microsoft offers many of its professional development tools and other software to students at no charge via the MSDN Academic Alliance and Microsoft DreamSpark programs.

The available tools include Visual Studio 2010 Professional edition, which in comparison with the Express edition, includes more features and also allows for extensibility add-ins and external tools. As one example, programmers who are familiar with the Emacs text editor on other platforms will likely appreciate the Emacs Emulation extension.