Announcing Windows Azure Mobile Services

I’m excited to announce a new capability we are adding to Windows Azure today: Windows Azure Mobile Services

Windows Azure Mobile Services makes it incredibly easy to connect a scalable cloud backend to your client and mobile applications.  It allows you to easily store structured data in the cloud that can span both devices and users, integrate it with user authentication, as well as send out updates to clients via push notifications.

Today’s release enables you to add these capabilities to any Windows 8 app in literally minutes, and provides a super productive way for you to quickly build out your app ideas.  We’ll also be adding support to enable these same scenarios for Windows Phone, iOS, and Android devices soon.

Read this getting started tutorial to walkthrough how you can build (in less than 5 minutes) a simple Windows 8 “Todo List” app that is cloud enabled using Windows Azure Mobile Services.  Or watch this video of me showing how to do it step by step.

Getting Started

If you don’t already have a Windows Azure account, you can sign up for a no-obligation Free Trial.  Once you are signed-up, click the “preview features” section under the “account” tab of the www.windowsazure.com website and enable your account to support the “Mobile Services” preview.   Instructions on how to enable this can be found here.

Once you have the mobile services preview enabled, log into the Windows Azure Portal, click the “New” button and choose the new “Mobile Services” icon to create your first mobile backend.  Once created, you’ll see a quick-start page like below with instructions on how to connect your mobile service to an existing Windows 8 client app you have already started working on, or how to create and connect a brand-new Windows 8 client app with it:

image

Read this getting started tutorial to walkthrough how you can build (in less than 5 minutes) a simple Windows 8 “Todo List” app  that stores data in Windows Azure.

Storing Data in the Cloud

Storing data in the cloud with Windows Azure Mobile Services is incredibly easy.  When you create a Windows Azure Mobile Service, we automatically associate it with a SQL Database inside Windows Azure.  The Windows Azure Mobile Service backend then provides built-in support for enabling remote apps to securely store and retrieve data from it (using secure REST end-points utilizing a JSON-based ODATA format) – without you having to write or deploy any custom server code.  Built-in management support is provided within the Windows Azure portal for creating new tables, browsing data, setting indexes, and controlling access permissions.

mobile-services-diagram

This makes it incredibly easy to connect client applications to the cloud, and enables client developers who don’t have a server-code background to be productive from the very beginning.  They can instead focus on building the client app experience, and leverage Windows Azure Mobile Services to provide the cloud backend services they require. 

Below is an example of client-side Windows 8 C#/XAML code that could be used to query data from a Windows Azure Mobile Service.  Client-side C# developers can write queries like this using LINQ and strongly typed POCO objects, which are then translated into HTTP REST queries that run against a Windows Azure Mobile Service.   Developers don’t have to write or deploy any custom server-side code in order to enable client-side code below to execute and asynchronously populate their client UI:

image

Because Mobile Services is part of Windows Azure, developers can later choose to augment or extend their initial solution and add custom server functionality and more advanced logic if they want.  This provides maximum flexibility, and enables developers to grow and extend their solutions to meet any needs.

User Authentication and Push Notifications

Windows Azure Mobile Services also make it incredibly easy to integrate user authentication/authorization and push notifications within your applications.  You can use these capabilities to enable authentication and fine grain access control permissions to the data you store in the cloud, as well as to trigger push notifications to users/devices when the data changes.  Windows Azure Mobile Services supports the concept of “server scripts” (small chunks of server-side script that executes in response to actions) that make it really easy to enable these scenarios.

Below are some tutorials that walkthrough common authentication/authorization/push scenarios you can do with Windows Azure Mobile Services and Windows 8 apps:

Manage and Monitor your Mobile Service

Just like with every other service in Windows Azure, you can monitor usage and metrics of your mobile service backend using the “Dashboard” tab within the Windows Azure Portal.

image

The dashboard tab provides a built-in monitoring view of the API calls, Bandwidth, and server CPU cycles of your Windows Azure Mobile Service.   You can also use the “Logs” tab within the portal to review error messages.  This makes it easy to monitor and track how your application is doing.

Scale Up as Your Business Grows

Windows Azure Mobile Services now allows every Windows Azure customer to create and run up to 10 Mobile Services in a free, shared/multi-tenant hosting environment (where your mobile backend will be one of multiple apps running on a shared set of server resources).  This provides an easy way to get started on projects at no cost beyond the database you connect your Windows Azure Mobile Service to (note: each Windows Azure free trial account also includes a 1GB SQL Database that you can use with any number of apps or Windows Azure Mobile Services).

If your client application becomes popular, you can click the “Scale” tab of your Mobile Service and switch from “Shared” to “Reserved” mode.  Doing so allows you to isolate your apps so that you are the only customer within a virtual machine.  This allows you to elastically scale the amount of resources your apps use – allowing you to scale-up (or scale-down) your capacity as your traffic grows:

image

With Windows Azure you pay for compute capacity on a per-hour basis – which allows you to scale up and down your resources to match only what you need.  This enables a super flexible model that is ideal for new mobile app scenarios, as well as startups who are just getting going. 

Summary

I’ve only scratched the surface of what you can do with Windows Azure Mobile Services – there are a lot more features to explore. 

With Windows Azure Mobile Services you’ll be able to build mobile app experiences faster than ever, and enable even better user experiences – by connecting your client apps to the cloud.

Visit the Windows Azure Mobile Services development center to learn more, and build your first Windows 8 app connected with Windows Azure today.  And read this getting started tutorial to walkthrough how you can build (in less than 5 minutes) a simple Windows 8 “Todo List” app that is cloud enabled using Windows Azure Mobile Services.

Hope this helps,

Scott

P.S. In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: twitter.com/scottgu

47 Comments

  • Do you plan to offer HTTP/REST API as well at some point?

  • When you say "Windows 8 app", do you mean a Metro app, or a Desktop app, or both?

  • Very nice, I can't wait to work on my mobile apps. I do have a question about publishing sites to azure though. Will you allow us to use "Shared" mode to use custom domain? If so, when can I expect it? "Reserved" mode is too expensive for me right now since I have multiple websites. Thanks much.

  • Very good article, thanks! My Mobile Service is up and running.

  • Okthis is really cool, i have spend last 3 weeks or so developing some of these features in our app., so now we need the full sdk's to windows phone ,server and web.
    also we need to have some caching support for the client sdk's...
    We also need to access the azure sdk on the scripts so i can easly talk with other webroles

    very happy to see that the azure team is really listen to what developers want instead of focusing on getting some bucks.

    Please iterate fast :)

  • What is the reason for the 165MB outbound data transfers per day limit with shared hosting?

  • Just curious - why is this offering specific to SQL Azure? I would have expected out-of-the-box support for blobs (for example, json/xml documents) and/or table storage. Seems like cost-wise, it would be much cheaper/easier to scale as well.

  • If I wanted to use Fiddler to test REST calls, what URLs would I use and how would they look with permission set to Everyone or Application Key?

  • I am confused. Scalability, user management, structured data - all of the features, with the arguable exception of push notifications, are useful for all types of applications. What about this is "mobile"?

  • @Vlad/@Mark,

    >>>>>> Do you plan to offer HTTP/REST API as well at some point?

    We are going to publish documentation for the HTTP REST APIs shortly - which will make it easy for anyone to consume them from any platform. We'll then provide pre-built REST helper methods for Win8/iOS/Android/others for those who want to work with language libraries as opposed to raw REST ones.

    Hope this helps,

    Scott

  • @FDanconia,

    >>>>>> When you say "Windows 8 app", do you mean a Metro app, or a Desktop app, or both?

    The language libraries we are providing today work with WinRT - so you'd use them within Windows 8 Store Apps. But the underlying features can be accessed by any app using the REST APIs (including desktop ones).

    Hope this helps,

    Scott

  • @Bill,

    >>>>>> Does this have any relation to the "Windows Azure Toolkit for Social Games"? That project looked really promising and this looks like it would be a good foundation to build this on, so was wondering if that's why it's currently unavailable at http://watgames.codeplex.com/

    Not currently - but you'll see us add more and more features into Windows Azure Mobile Services in the future.

    Hope this helps,

    Scott

  • @Wil,

    >>>>>> Very nice, I can't wait to work on my mobile apps. I do have a question about publishing sites to azure though. Will you allow us to use "Shared" mode to use custom domain? If so, when can I expect it? "Reserved" mode is too expensive for me right now since I have multiple websites. Thanks much.

    The actual rest endpoint isn't publicly exposed to end-users, so the custom domain isn't an issue with mobile services. We are, though, going to be enabling custom domains for web-sites running in shared mode shortly.

    Hope this helps,

    Scott

  • @Casper,

    >>>>>>> What is the reason for the 165MB outbound data transfers per day limit with shared hosting?

    That is the limit we currently support for the free tier (that translates into 100,000s of API requests/day - or 5GB of outbound bandwidth per month). You can then upgrade to reserved mode to get unlimited outbound traffic.

    Hope this helps,

    Scott

  • @Michael,

    >>>>>>> Just curious - why is this offering specific to SQL Azure? I would have expected out-of-the-box support for blobs (for example, json/xml documents) and/or table storage. Seems like cost-wise, it would be much cheaper/easier to scale as well.

    We've heard from a lot of people who want richer querying capabilities and indexing over large amounts of data - which SQL is very good at. The pricing tier of SQL Azure is also pretty good.

    We will also support unstructured storage in the future so if you don't need rich querying you can use that too.

    Hope this helps,

    Scott

  • @Jeff,

    >>>>>> I am confused. Scalability, user management, structured data - all of the features, with the arguable exception of push notifications, are useful for all types of applications. What about this is "mobile"?

    We support all of those capabilities with other Azure features today as well (web-sites, storage, databases, cloud services, etc). You can also build your own mobile backends today using those existing features/capabilities to power your mobile clients.

    The reason we are introducing Windows Azure Mobile Services is because a lot of developers don't have the time/skillset/inclination to have to build a custom mobile backend themselves. Instead they'd like to be able to leverage an existing solution to get started and then customize/extend further only as needed when their business grows. Azure Mobile Services makes it really easy for them to do this - while preserving the ability to easily extend it with other azure features in the future.

    Hope this helps,

    Scott

  • Sound like an app-user can circumvent any business logic / business validation because it sits on the client the user controls. Duplicating all validation on the client and in the "validations" on the server seems like a nasty nasty solution.

  • Are they on the roadmap? When can we expect them?

  • Can you share what additional functionality you plan to provide as part of Mobile Services?

  • Excited about the release and have a couple of questions:

    - Do you plan to expose a management API for the Mobile Services? When?

    - What other capabilities are are you thinking of adding to the product?

    Thanks!

  • Does Azure Mobile Services allow you to grow into more complex scenarios? For example WCF RIA Services allow you to create a more coarse grained API over your data model. Will we be able to hook into the pipeline or is it a pure CRUD proxy generator over a database?

  • How is it different than ASP.Net Web API? When to use which?Any guidance coming out?

  • > We'll then provide pre-built REST helper methods for Win8/iOS/Android/others for
    > those who want to work with language libraries as opposed to raw REST ones.

    Scott, have you already took a look at Mashape (www.mashape.com) ?

  • Awesome! Microsoft doing what Microsoft is best at.

    Now, we hope the marketing people don't bungle this up.

    Sorry to end two sentences with prepositions.

  • @tobi,

    >>>>>> Sound like an app-user can circumvent any business logic / business validation because it sits on the client the user controls. Duplicating all validation on the client and in the "validations" on the server seems like a nasty nasty solution.

    Azure Mobile Services supports the ability to run custom validation logic on the server prior to each CRUD operation - so it is possible to prevent someone bypassing validation logic.

    Hope this helps,

    Scott

  • @Vlad,

    >>>>>> Can you share what additional functionality you plan to provide as part of Mobile Services?

    We'll post more details about new features as they become available.

    Hope this helps,

    Scott

  • Thank you for writing this functionality into Azure. This helps to make me feel like my project can be accomplished in time and in the Store for the Windows 8 launch. Easily enabling the ability to connect my Windows Mobile 7.5 app to the new Windows 8 companion app.

    You - Microsoft just took a large chunk of backend work of my plate for my Windows 8 App.

    I'm very excited!

  • @azureuser,

    >>>>>> Excited about the release and have a couple of questions:

    >>>>> - Do you plan to expose a management API for the Mobile Services? When?
    >>>>> - What other capabilities are are you thinking of adding to the product?

    Yes - we plan to expose a management API (as well as command-line management support) in the future. We'll post more details about future features as they become available.

    Hope this helps,

    Scott

  • @Michael,

    >>>>>>> Does Azure Mobile Services allow you to grow into more complex scenarios? For example WCF RIA Services allow you to create a more coarse grained API over your data model. Will we be able to hook into the pipeline or is it a pure CRUD proxy generator over a database?

    Mobile Services does allow you to plug-into the server pipeline and do pretty course grained permissions and filtering. I'd recommend looking at the server-scripts capability to learn more about this.

    Hope this helps,

    Scott

  • @Diogo,

    >>>>>>> Unfortunatelly Windows Azure doesn't help developers very much. I can't subscribe for a trial, when I try I get this message: The offer you wanted is not available. Click here to see a similar offer.

    Sorry you are running into this. Can you send me an email (scottgu@microsoft.com) with the Microsoft/Live ID you used to register and I can have someone help you out.

    Thanks,

    Scott

  • @Mahesh,

    >>>>>> How is it different than ASP.Net Web API? When to use which?Any guidance coming out?

    You can think of Windows Azure Mobile Services as providing a pre-built set of Web APIs that provide common functionality that you need to build mobile apps. The benefit of using this pre-built functionality is that you don't need to write it yourself.

    ASP.NET Web API is then what you'd use when you do want to write it yourself - or extend the built-in set of Azure Mobile Services with additional custom functionality.

    The good news is that they are composeable and use the same REST/OData semantics. In fact, for the C#/XAML library we ship we use the client-side Web API library to call the Windows Azure Mobile Services REST endpoints.

    Hope this helps,

    Scott

  • This is great. Scott, you are doing wonderful things for developers using Azure. As for having to validate input both client-side and server-side, that's nothing new or different for me as a web developer.

    I do have one request. (Perhaps it should be directed elsewhere @ MSFT). That is to provide developers with a way to manage customer subscriptions/payments. As you're probably aware, users typically only pay once for mobile apps, yet the developer faces ongoing costs for cloud services.

  • @Scott,

    >>>>>>> Sorry you are running into this. Can you send me an email (scottgu@microsoft.com) with the Microsoft/Live ID you used to register and I can have someone help you out.

    Thanks for reply, the local Azure support here in Brazil, already called me to solve the problem.

  • Scott - It's great, but a lot of folks are moving out of .NET due to the restriction of this 90day trial, which doesn't help most of the developers community, until MS provides a unlimited time minimal size server free or like websites, all services 10 units free for developers. eg. Amazon free tier / AppFog 2Gb free tier. Also, it'll be great if you plan for a locally installed Azure like other cloud players are providing.

    coming to Mobile Services, it's great, but why the Mobile Services SDK isn't avl for Win 7, is it planned or not ? Why nowadays MS provides more restrictions than accommodating more developers. As a MS fan, i myself not comfortable using Win 8 UI without start button. Also, most of the enterprise won't allow Win 8 anytime soon, so pls release the SDKs in Win 7 and support the same.

  • Android?

  • How do you make one-to-many and many-to-many relations with the Mobile Services?

  • @jinishans

    From the OP:

    >> Windows Azure Mobile Services now allows every Windows Azure customer to create and run up to 10 Mobile Services in a free, shared/multi-tenant hosting environment (where your mobile backend will be one of multiple apps running on a shared set of server resources).

  • Cool, but i'd like to know when Virtual Machines will exit from beta stage. Any news about that?

    Thanks

    Claudio

  • Hi Scott,

    How would you compare Azure Mobile Services with Parse.com's SDK for the iPhone? My initial understanding of what Azure Mobile Services is that it is something very much like that? Will there be an SDK for the iPhone to use Azure Mobile Services?

    The part you described about being easily able to expand to "traditional" WebAPI sounds very intriguing. It seems Parse.com's services don't have that capability and any type of custom scalability cannot be addressed with their service, the scalability is totally dependent on their way of handling it. Could you please elaborate on how Azure Moble Services will allow the extension, etc?

    Thank you,

    Alexander

  • @Claudio Valerio judging from the issues I've had with VMs frequently becoming unresponsive and requiring restarts or even reimaging, Virtual Machines seem to be nowhere near coming out of beta.

  • How do you make one-to-many and many-to-many relations with the Mobile Services?

  • This sounds handy, along with everything else on the ever growing list of new features for the Azure family. The massive question is, when is this whole Azure thing going to be production ready???

    Even though I like what you guys are doing, I am increasingly finding myself with little choice but to invest deeply in the various alternatives that are already production ready. The more time it takes for Azure to mature, the less likely it becomes that I will ever make use of it.

    It has gotten to the point that I my mind automatically reads an Azure 'good news' story as bad news, because it's all just a tease. Enough with the foreplay!


  • Scott when will we get .NET 4.5 support on Azure? I think everyone was just expecting this to just be done with the release of Visual Studio 2012 and .Net 4.5 RTM.

    Can we at least get some communication / a firm date of when .net 4.5 will be released on Azure so people can make a judgement call on re-engineering applications to .Net 4 and / other frameworks.

    Many Thanks

  • Sweet... Until apple says they copied the itunes store web page shape and resolution.

  • Scott - I want to know whether i can write a logic to consume external json service, say from AWS or FB or Twitter, do some logic, and store it in the table then return the data to Metro App using Azure Mobile Services ?

  • I rarely comment, but after looking at some of the comments on
    this page Announcing Windows Azure Mobile Services
    - ScottGu's Blog. I do have a couple of questions for you if you don't
    mind. Could it be only me or do some of the comments look like they are coming from brain dead people?

    :-P And, if you are posting at additional online social sites, I would like to keep up with you.
    Could you post a list of the complete urls of your social community pages like your Facebook page, twitter feed, or linkedin profile?

  • How to Deploy mobile pages to Azure mobile service.

Comments have been disabled for this content.