Get started with data in Mobile Services
This topic shows you how to use Windows Azure Mobile Services to leverage data in a Windows Store app. In this tutorial, you will download an app that stores data in memory, create a new mobile service, integrate the mobile service with the app, and then login to the Windows Azure Management Portal to view changes to data made when running the app.
Note
This tutorial is intended to help you better understand how Mobile Services enables you to use Windows Azure to store and retrieve data from a Windows Store app. As such, this topic walks you through many of the steps that are completed for you in the Mobile Services quickstart. If this is your first experience with Mobile Services, consider first completing the tutorial Get started with Mobile Services.
This tutorial walks you through these basic steps:
- Download the Windows Store app project
- Create the mobile service
- Add a data table for storage
- Update the app to use Mobile Services
- Test the app against Mobile Services
Note To complete this tutorial, you need a Windows Azure account that has the Windows Azure Mobile Services feature enabled.
Download the GetStartedWithData project
This tutorial is built on the GetStartedWithData app, which is a Windows Store app. The UI for this app is identical to the app generated by the Mobile Services quickstart, except that added items are stored locally in memory.
-
Download the JavaScript version of the GetStartedWithData sample app from the Developer Code Samples site.

-
In Visual Studio 2012 Express for Windows 8, open the downloaded project, expand the js folder and examine the default.js file.
Notice that added TodoItem objects are stored in an in-memory List object.
-
Press the F5 key to rebuild the project and start the app.
-
In the app, type some text in Insert a TodoItem, then click Save.

Notice that the saved text is displayed in the second column under Query and update data.
Create a new mobile service in the Management Portal
Next, you will create a new mobile service to replace the in-memory list for data storage. Follow these steps to create a new mobile service.
- Log into the Windows Azure Management Portal.
-
At the bottom of the navigation pane, click +NEW.

-
Expand Compute and Mobile Service, then click Create.

This displays the New Mobile Service dialog.
-
In the Create a mobile service page, type a subdomain name for the new mobile service in the URL textbox and wait for name verification. Once name verification completes, click the right arrow button to go to the next page.

This displays the Specify database settings page.
Note
As part of this tutorial, you create a new SQL Database instance and server. You can reuse this new database and administer it as you would any other SQL Database instance. If you already have a database in the same region as the new mobile service, you can instead chooseUse existing Databaseand then select that database. The use of a database in a different region is not recommended because of additional bandwidth costs and higher latencies.
-
In Name, type the name of the new database, then type Login name, which is the administrator login name for the new SQL Database server, type and confirm the password, and click the check button to complete the process.

Note
When the password that you supply does not meet the minimum requirements or when there is a mismatch, a warning is displayed.
We recommend that you make a note of the administrator login name and password that you specify; you will need this information to reuse the SQL Database instance or the server in the future.
You have now created a new mobile service that can be used by your mobile apps. Next, you will add a new table in which to store app data. This table will be used by the app in place of the in-memory collection.
Add a new table to the mobile service
To be able to store app data in the new mobile service, you must first create a new table in the associated SQL Database instance.
-
In the Management Portal, click Mobile Services, and then click the mobile service that you just created.
-
Click the Data tab, then click +Create.

This displays the Create new table dialog.
-
In Table name type TodoItem, then click the check button.

This creates a new storage table TodoItem with the default permissions set, which means that any user of the app can access and change data in the table.
Note
The same table name is used in Mobile Services quickstart. However, each table is created in a schema that is specific to a given mobile service. This is to prevent data collisions when multiple mobile services use the same database.
-
Click the new TodoItem table and verify that there are no data rows.
-
Click the Columns tab and verify that there is only a single id column, which is automatically created for you.
This is the minimum requirement for a table in Mobile Services.
Note
When dynamic schema is enabled on your mobile service, new columns are created automatically when JSON objects are sent to the mobile service by an insert or update operation.
You are now ready to use the new mobile service as data storage for the app.
Update the app to use the mobile service for data access
Now that your mobile service is ready, you can update the app to store items in Mobile Services instead of the local collection.
-
In Solution Explorer in Visual Studio, right-click the project name, and then select Manage NuGet Packages.
-
In the left pane, select the Online category, select Include Prerelease, search for WindowsAzure.MobileServices.WinJS, click Install on the Windows Azure Mobile Services for WinJS package, then accept the license agreement.

This adds the Mobile Services client library to the project.
-
In the default.html project file, add the following script reference in the page header:
<script type="text/javascript" src="/MobileServicesJavaScriptClient/MobileServices.js"></script>
-
In the Management Portal, click Mobile Services, and then click the mobile service you just created.
-
Click the Dashboard tab and make a note of the Site URL, then click Manage keys and make a note of the Application key.

You will need these values when accessing the mobile service from your app code.
-
In Visual Studio, open the file default.js, uncomment the code that defines the mobileService variable, and supply the URL and application key from the mobile service in the MobileServiceClient constructor, in that order.
This creates a new instance of MobileServiceClient that is used to access your mobile service.
-
Uncomment the following line of code:
var todoTable = mobileService.getTable('TodoItem'); This code creates a proxy object (todoTable) for the SQL Database TodoItem.
-
Replace the InsertTodoItem method with the following code:
var insertTodoItem = function (todoItem) {
// Inserts a new row into the database. When the operation completes
// and Mobile Services has assigned an id, the item is added to the binding list.
todoTable.insert(todoItem).done(function (item) {
todoItems.push(item);
});
}; This code inserts a new item into the table.
-
Replace the RefreshTodoItems method with the following code:
var refreshTodoItems = function () {
// This code refreshes the entries in the list by querying the TodoItems table.
todoTable.read().done(function (results) {
todoItems = new WinJS.Binding.List(results);
listItems.winControl.itemDataSource = todoItems.dataSource;
});
}; This sets the binding to the collection of items in the todoTable, which contains all completed items returned from the mobile service.
-
Replace the UpdateCheckedTodoItem method with the following code:
var updateCheckedTodoItem = function (todoItem) {
// This code takes a freshly completed TodoItem and updates the database.
todoTable.update(todoItem);
}; This sends an item update to the mobile service.
Now that the app has been updated to use Mobile Services for backend storage, it's time to test the app against Mobile Services.
Test the app against your new mobile service
-
In Visual Studio, press the F5 key to run the app.
-
As before, type text in Insert a TodoItem, and then click Save.
This sends a new item as an insert to the mobile service.
-
In the Management Portal, click Mobile Services, and then click your mobile service.
-
Click the Data tab, then click Browse.

Notice that the TodoItem table now contains data, with id values generated by Mobile Services, and that columns have been automatically added to the table to match the TodoItem class in the app.
-
In the app, check one of the items in the list, then go back to the Browse tab in the portal and click Refresh.
Notice that the complete value has changed from false to true.
-
In the default.js project file, replace the existing RefreshTodoItems method with the following code that filters out completed items:
var refreshTodoItems = function () {
// More advanced query that filters out completed items.
todoTable.where({ complete: false })
.read()
.done(function (results) {
todoItems = new WinJS.Binding.List(results);
listItems.winControl.itemDataSource = todoItems.dataSource;
});
}; -
In the app, check another one of the items in the list and then click the Refresh button.
Notice that the checked item now disappears from the list. Each refresh results in a round-trip to the mobile service, which now returns filtered data.
This concludes the Get started with data tutorial.
Next steps
This tutorial demonstrated the basics of enabling a Windows Store app to work with data in Mobile Services. Next, consider completing one of the following tutorials that is based on the GetStartedWithData app that you created in this tutorial:
Once you have completed the data series, try one of these other tutorials: