Last Wednesday, Wade Wegner announced in his blog the first release of the Windows Azure Toolkit for Windows Phone 7. This toolkit is designed to make it easier for developers to build Windows Phone applications that leverage cloud services running in Windows Azure. The toolkit includes Visual Studio project templates for Windows Phone 7 and Windows Azure, class libraries optimized for use on the phone, a sample application, and documentation (one thing to remark is that all the content is delivered in both C# and Visual Basic).
- Official announcement: http://www.wadewegner.com/2011/03/windows-azure-toolkit-for-windows-phone-7/
- Download the toolkit: http://watoolkitwp7.codeplex.com/releases/view/61952
- Online documentation: http://watoolkitwp7.codeplex.com/documentation
- Cloud Cover Episode: http://channel9.msdn.com/Shows/Cloud+Cover/Cloud-Cover-Episode-41-Windows-Azure-Toolkit-for-Windows-Phone-7
After downloading the WAZToolkitForWP7.Setup.exe self-extractable package from CodePlex and running it, execute the Setup.exe command to launch the Configuration Wizard. This tool will check the software requirements and then run the appropriate VSIX files to install the project templates in the different Visual Studio editions.
When you finish configuring your environment, make sure to review the Readme.htm file to get more context about the toolkit and all its content.
As I said before, the toolkit ships with project templates and a sample application among other things. Both of these assets make use of a set of services and a phone client library that you can reuse to build your own phone applications.
One of the main purpose of the services included in this toolkit is to provide a secure location where to put the azure storage account name and key. This means that you can avoid including this information inside your phone application, and instead rely on any other authentication & authorization mechanisms to secure the content in your storage (like ASP.NET Membership and Roles providers).
The toolkit services are hosted in an ASP.NET MVC 2 Web role with the following endpoints:
- ~/AuthenticationService: This is a WCF REST service that exposes operations to register new users and get an authentication token. Before consuming any other service, you need to obtain a token from this service and then using it to authenticate your requests.
Note: Both the authentication and authorization mechanisms rely on the ASP.NET Membership and Roles providers for Azure Tables. The binaries and source code of these ASP.NET providers are also included in the toolkit.
- ~/AzureTablesProxy.axd: This is an HTTP handler that acts as a proxy for the Windows Azure Tables REST API. All the requests that are addressed to this endpoint are forwarded to the real Azure Tables endpoint and signed with the storage account key.
- ~/SharedAccessSignatureService: This is a WCF REST service that generates Shared Access Signatures to work with containers and blobs.
Additionally, a Web site is provided along with the services to manage authorization permissions for the different users.
The toolkit includes the binaries and source code of an Azure storage client library for Windows Phone 7 called WindowsPhoneCloud.StorageClient. This client library allows Windows Phone developers to:
- Create and delete Azure Tables
- Perform CRUD operations on Azure Tables’ rows
- Upload blobs to a private / public containers using Shared Access Signatures
- List blobs in a private / public container using Shared Access Signatures
The phone application that you can find in the sample application solution and project templates, showcases the previous features in different pages.