This course provides the practical knowledge and expertise you will need to master the Design an Application Storage and Data Access Strategy section of the Microsoft Azure 70-534 certification exam. In this session, we will cover: Options for data storage, mobile application back-ends, push notifications, web API and web jobs and hybrid data access patterns. We will also discuss Azure Media Services (streaming, video on-demand and monitoring).
Welcome back, in this lesson we're going to be talking about mobile apps. First it's worth pointing out that Azure is in the process of depricating as your mobile services, and it's already been superseded by Azure app service mobile apps. However, the current exam objective is for Azure mobile services so we're going to talk about both. Azure mobile services is a hosted Azure service built on Azure websites and it's for creating a back end for data driven mobile applications, with authentication integration via Azure AD and social media accounts.
The back end of the mobile services is a web API implemented with a standard template that uses SQL based CRUD scaffolding by default. From the management portal you can access a simplified table editor that enables defining table entities and adding columns based on a few simple data types. The table will automatically add columns such as primary key, create date, update date, and a soft delete flag as well.
There are two options to implement mobile services. You can use nodeJS or .net. When using node, the mobile service will generate scripts for the CRUD functions and you can edit these scripts as needed. You can also override the functions to enable things like authentication or notifications. You edit the scripts in the classic portal directly when using node, whereas .net you would use Visual Studio.
For .net, you can create a mobile service project inside Visual Studio and it's basically a standard web API project. Mobile services allows for offline sync as well. It uses a SQL light database locally. When the device isn't able to connect to the internet it's going to hold that data in the SQL light database and then it's going to sync up when it's back online. The back end is able to manage conflicts using globally unique identifiers in place of numeric IDs as well as time stamps and version info.
Mobile services has a few different ways to handle locking down who can access what as well. The first being unauthenticated which is great for read only data, it allows anyone to access the data. You can also use an app key which means that the http requests are authorized because the app key is included in the request header. This is useful for development environments and really shouldn't be used in production.
Admins can use a master key which would only be used for admin reasons and the most common scenario is authenticating with social authentication or with Azure active directory.
Okay, like I mentioned at the beginning, Azure mobile services has been superseded by Azure app service mobile apps. Mobile apps has all the functionality of mobile services, though it's kind of a central location to deploy Web, Logic and mobile apps. This is kind of cool because now we can have the added value of using our development tools that we'd use with web apps which we'll cover in a later course.
So we're not going to deep dive into mobile apps though let's check it out in the portal. Alright once we have our mobile app created we can click on quick start and it allows us to get some code so we can start in using a particular device and you can see that we have most major devices covered here. Just like we would with mobile services we can use Node or C#, and while this is just an intro to what it offers it helps to show that we can use this to wire up our clients to our back end system very easily.
Okay, it won't be long before Azure removes mobile services from the exam objectives and adds Azure app service mobile apps so keep an eye on the objectives and start getting familiar with mobile apps instead.
Alright in our next lesson we're going to be looking at notifications. So let's get started with the next lesson.
About the Author
Ben Lambert is the Director of Engineering and was previously the lead author for DevOps and Microsoft Azure training content at Cloud Academy. His courses and learning paths covered Cloud Ecosystem technologies such as DC/OS, configuration management tools, and containers. As a software engineer, Ben’s experience includes building highly available web and mobile apps.
When he’s not building the first platform to run and measure enterprise transformation initiatives at Cloud Academy, he’s hiking, camping, or creating video games.