For those of you who have been following my blog, you know that I am very interested in the nexus of data services and mobile device apps, and especially OData Services and Windows Phone and Windows (8) Store apps. In most of the apps that I have written, I have been able to use some existing, public (and free) data, mostly OData feeds. Since your next “killer app” probably won’t leverage some pool of both free and useful data (we don’t need more than one Netflix app), it’s likely that either your customers will use your app to generate and store their own data, or you will be providing data to them.
I’ve been a fan of cloud-based data storage for apps, especially because in the app world, you have no idea of how many users will be using your app and services (usually only a limited number at first) and cloud services provide a simple way to scale, with adding or removing instances as needed. Of course, I the like Windows Azure offering, as I have written about Windows Azure and OData and Windows Phone. Today, there is a new service offering from Microsoft that I’ve been able to play around with for some time. This new Windows Azure service helps to solve the problem for mobile app developers of where to store their user’s data.
Backend Services in the Cloud for Windows Store Apps
I am excited to be able to finally talk about a cool new Windows Azure service service offering from Microsoft…
The vision for this new Windows Azure service offering is what one might call (unofficially) “Backend as a Service.” The goal of this new service is to make it as easy as possible to create a backend service to store data generated by your customers when using your apps, and to more easily integrate things like authentication and push notifications. Cloud storage enables your customers to access their own app data from any device on which your app runs, and only multiple devices at once.
This service is envisioned as a REST-based set of HTTP APIs that bring together the correct pieces of Windows Azure to provide data storage, authentication, and notifications, and business logic to help you write apps, without having to be an expert in the Windows Azure platform (which I can appreciate after publishing several OData services on Windows Azure).
Get Started with Mobile Services (for Free?)
I encourage you to at least try Mobile Services, even if you are a newbie on the Windows Azure platform. If you already have an active Windows Azure account, you will need to apply for access to the preview. There are instructions on how to do this linked from the Get started with Mobile Services tutorial.
If you’ve never has an account before, you are in luck because there is currently a 90-day “free trial” that includes the SQL Database required by Mobile Services.
What You Get in This Preview
Considering the fairly grand vision of what Mobile Services is going to be, there are limits to what you get in this initial preview release:
- Tricked-Out Management Portal
The Mobile Services part of the new Management Portal is pretty wicked and highly useful, especially the Quick Start. I’m not really sure how this can get better than it is now—it may be the single best feature of the preview.
- Rich support for Windows Store (Win8/WinRT) apps only
Although there are REST APIs available that you could access from any device, Microsoft is providing their first-class client library support for only Windows Store apps. Heck, they even generate for you a working Windows Store app project. I do hope to see support for iOS and (especially) Windows Phone being added in the near future.
- Live Connect and Windows Notification Services integration
Authentication is limited to Live Connect, and Windows Notification Service (WNS) is the supported push notification provider, but this is what you would be doing for Windows Store apps anyway. Clearly, there are other authentication providers that need to be supported.
- Storage in SQL Database
In this release, the only supported storage for a mobile service is SQL Database, which you are responsible for managing outside of Mobile Services—but Mobile Services will help you to create a new one if you don’t already have it. (I should mention that SQL Database is not where you want to store blobs, so your app will still have to handle binary data, like images, outside of Mobile Services. I’ll talk about strategies for doing this in the coming weeks...)
- OData-ish REST APIs
Mobile Services is is not fully OData yet. However, the REST APIs do support the OData query operators: $select, $where, $orderby, $skip, $take, $inlinecount, and return JSON objects.
Yes, Mobile Services is a Real Thing
Finally, for those of you who don’t even pay attention to our new stuff unless ScottGu talks about it first…..