windows phone开发-windows azure mobile service使用入门
在使用azure之前,我一直只能做本地app,或者使用第三方提供的api,尽管大多数情况下够用,但是仍不能随心所欲操纵数据,这种感觉不是特别好。于是在azure发布后,我就尝试使用azure来做为个人数据中心,可选的方式有很多,但今天我给大家介绍的是azure mobile service。
1.创建Mobile Service
Azure中创建Mobile Service很简单,与创建其他项目类似,流程如下:
i.

ii.

iii.
ii


这里我使用的是Windows Azure国际版,经过简单的流程就能创建一个Mobile Service,需要注意,当前服务还是空的,需要我们部署相应的Web API Service。
2.部署Web API服务
创建后的空Mobile Service仪表板如下:

我们在选择平台那一块栏目,选择Windows Phone,这时可以看到入门指南,大家可以任意挑选一种,这里我们挑选“连接至现有Windows Phone应用程序”。
接下来需要创建并发布一个ASP.NET Web API项目至我们的Mobile Service,这里大家有两种选择:
1.从Visual Studio中全新创建,选择Web API或者Azure Mobile Service模板均可

2.或者从Azure仪表板中下载一个标准Azure Mobile Service项目工程,解压至本地编辑
以上两种方法最终都会得到一样的结果,一个ASP.NET Web API项目,如下:

如果大家对ASP.NET Web API项目熟悉的话,可以直接在Controller文件夹下找到核心控制器代码,在其中进行一系列的修改,生成自己的方法,如下:

在控制器类中可以看到相关API,大家可以自行尝试效果,默认返回的是Json格式数据。
GET /tables/todoitem
结果:
[{"id":"1","complete":false,"text":"First item"},{"id":"2","complete":false,"text":"Second item"}]
下面我们简单运行生成项目后,将其发布至Azure Mobile Service,如下:


发布完成后,我们来看运行效果,如下:

3.在Windows Phone项目中使用Mobile Service
打开我们的windows phone项目,使用NuGet安装WindowsAzure.MobileServices SDK。这里要特别注意:Windows Azure Mobile Service SDK支持WinRT& Silverlight框架,所以基于WinRT的WP8.1项目完全可以使用。

新建数据类TodoItem,结构应与Web API项目中定义的一致,如下:
public class TodoItem {
public string Id { get; set; }
public string Text { get; set; }
public bool Complete { get; set; }
}
在App.xaml.cs中创建MobileServiceClient实例,初始化参数分别为applicationUri和applicationKey,参数你们替换为自己的即可如下
public static MobileServiceClient mobileService = new MobileServiceClient("https://azuretestmobileservice.azure-mobile.net/",“{applicationKey}”);
下面我们就可以对云端数据进行获取,上传,增删改等操作,并将结果呈现到客户端UI中,我们可以简单操作一下,如下:
MainPage.xaml
<StackPanel>
<ListView x:Name="TestDataList">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding Complete}"/>
<TextBlock TextWrapping="Wrap" FontSize="30" Text="{Binding Text}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate> </ListView>
<Button x:Name="insertButton" Click="insertButton_Click">插入记录</Button>
<TextBox x:Name="inputTextBox" ></TextBox>
</StackPanel>
MainPage.xaml.cs
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
await loadAzureData();
} private async void insertButton_Click(object sender, RoutedEventArgs e)
{
if (inputTextBox.Text.Trim() != null && inputTextBox.Text.Trim() != "")
{
TodoItem newItem = new TodoItem { Complete = false, Text = inputTextBox.Text.Trim() };
await App.mobileService.GetTable<TodoItem>().InsertAsync(newItem);
}
await loadAzureData();
} private async Task loadAzureData()
{
if (todoItems == null)
todoItems = new List<TodoItem>();
todoItems = await App.mobileService.GetTable<TodoItem>().ToListAsync();
TestDataList.ItemsSource = todoItems;
}
最后效果,至此我们就顺利部署了一个Azure Mobile Service实例,并集成到windows phone 8&8.1项目中

windows phone开发-windows azure mobile service使用入门的更多相关文章
- 如何使用新浪微博账户进行应用登录验证(基于Windows Azure Mobile Service 集成登录验证)
使用三方账号登录应用应该对大家来说已经不是什么新鲜事儿了,但是今天为什么还要在这里跟大家聊这个话题呢,原因很简单 Windows Azure Mobiles Service Authenticatio ...
- 第一篇 Windows 8 开发Windows Metro style app环境配置
半 饱问 题 到 我 这 里 为 止! 第一篇 Windows 8 开发Windows Metro style app环境配置 2012-09-24 08:24 by 半饱, 1289 阅读, 3 ...
- Azure Front Door(一)为基于.net core 开发的Azure App Service 提供流量转发
一,引言 之前我们讲解到使用 Azure Traffic Manager.Azure LoadBalancer.Azure Application Gateway,作为项目的负载均衡器来分发流量,转发 ...
- Unable to create Azure Mobile Service: Error 500
I had to go into my existing azure sql database server and under the configuration tab select " ...
- Windows内核开发-Windows内部概述-2-
Windows内部概述-2- 线程: 执行代码的实体是线程.一个线程的包含在进程里面的,线程使用进程提供的资源来运行代码. 一个线程拥有以下的内容: 1:明确的运行模式,用户态或者内核态. 2:执行的 ...
- C语言Windows程序开发—Windows窗口样式与常用控件样式【第04天】
(一)Windows窗口(MDICLIENT)样式介绍 /* Windows窗口样式 */ WS_BORDER //带有边框的窗口 WS_CAPTION //带有标题栏的窗口 WS_CHILD //子 ...
- Windows内核开发-Windows内部概述-1-
Windows内部概述-1- 进程: 进程是一个程序的运行实例的控制和管理对象.一般的程序员所说进程运行,这样的说法是不对的,因为进程不能运行程序,进程只能管理该程序运行.线程才是真正的执行代码的东西 ...
- Windows Azure之Mobile Service
我建个android app和Windows Azure的Mobile Service配合,以实现会员注册的功能,实际十分简单,微软家的东西真心好用 首先新建个Mobile Service New-& ...
- Windows Azure Cloud Service (11) PaaS之Web Role, Worker Role(上)
<Windows Azure Platform 系列文章目录> 本文是对Windows Azure Platform (六) Windows Azure应用程序运行环境内容的补充. 我们知 ...
随机推荐
- oracle数据库名称已被一现有约束条件占用
使用oracle数据库出现名称已被一现有约束条件占用的错误,我的原因是在同一个库中有一个表使用了外键FK_SNO,自己新建的一个表中也使用了外键FK_SNO,导致出现了错误. 这时改变一下外键FK_S ...
- python学习笔记(五)- 文件操作
1.读文件f = open('word.txt',encoding='utf8') #默认打开当前目录下的文件,打开其它目录用绝对路径#f = open('word.txt',encoding='u ...
- mysql_day01
1.MySQL概述 1.什么是数据库 数据库是一个存储数据的仓库 2.都有哪些公司在用数据库 金融机构.游戏网站.购物网站.论坛网站 ... ... 3.提供数据库服务的软件 1.软件分类 MySQL ...
- cdnbest里如何查看网站是否被缓存
比如开启了强制缓存,如何查看缓存是否生效 本例以firefox浏览器查看,先打开浏览器,按下F12, 然后在浏览器是输入网址访问 如下图响应头里的 x-cache显示 Miss from 就是没有缓 ...
- ASP.NET Boilerplate-AbpSession
/------2016-05-15/------介绍 如果一个应用支持登录,也许需要知道当前登录用户的一些操作,然而ASP.NET 本身对于展现层提供了Session的支持,ABP提供了 IAbpSe ...
- python shell的交互模式和文本编辑模式
之前学python的时候,是拿<笨办法学python>练习的. 书里面基本都是以.py文件去写代码,也就是文本编辑模式. 而交互模式(也就是powershell),唯有在input用户输入 ...
- react项目请求数据的fetch的使用
准备三个文件(封装请求函数),然后测试一下,能不能调用数据 第一个文件 request.js import 'whatwg-fetch'; /** * Parses the JSON returne ...
- Quartz.Net进阶之四:CronTrigger 详述
以前都是将所有的内容放在一篇文章里,就会导致文章很长,对于学习的人来说,有时候这也是一个障碍.所以,以后我的写作习惯,我就会把我写的文章缩短,但是内容不会少,内容更集中.这样,学习起来也不会很累,很容 ...
- calendar模块
calendar模块是个日历模块 1 判断是否是闰年 #!/urs/bin/evn python # -*- coding:utf-8 -*- import calendar print(calen ...
- 学习UI设计书籍推荐
在学习UI设计的过程当中,特别想学或者零基础的人来说,需要学习到很多知识,比如软件 PS AI ,理论 色彩 排版 规范 UE 等,这些都是一名UI设计师需要学习的知识,而学习到这些知识,可以通过视频 ...