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应用程序运行环境内容的补充. 我们知 ...
 
随机推荐
- android studio 创建图标
			
参考 https://www.cnblogs.com/c546170667/p/5975550.html File-New-Image Asset
 - mysql面试题集
			
Mysql 的存储引擎,myisam和innodb的区别. 答: 1.MyISAM 是非事务的存储引擎,适合用于频繁查询的应用.表锁,不会出现死锁,适合小数据,小并发.5.6之前默认myisam 2. ...
 - 解决win10电脑VB虚拟机无法安装64位系统的方法
			
64位电脑在VB虚拟机里却只能安装32位系统怎么办? **原因:CPU虚拟化未开启 只要CPU虚拟化开启即可解决问题. 开启步骤: 1.打开电脑设置 2.进入 更新和安全 界面 3.进入 恢复 界面 ...
 - Django实现微信消息推送
			
一 所需准备条件 微信公众号的分类 微信消息推送 公众号 已认证公众号 服务号 已认证服务号 企业号 基于:微信认证服务号 主动推送微信消息.前提:关注服务号环境:沙箱环境 沙箱环境地址: https ...
 - $.fn.extend() 问:我来这个世上到底是干嘛的?
			
好好好 乖 本宝宝来告诉你 你来是干嘛的啊~ 话不多说 直接上码 当然如下代码是在jquery环境下运行的 HTML JS 完事~~~ 当你点击div元素的时候 你会发现弹出来“我被单击了”这句 ...
 - org.apache.hadoop.security.AccessControlException
			
在hdfs集群上,需要向Hdfs写入文件,控制台会输出以下错误信息: Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoo ...
 - c++沉思录 学习笔记 第六章 句柄(引用计数指针雏形?)
			
一个简单的point坐标类 class Point {public: Point():xval(0),yval(0){} Point(int x,int y):xval(x),yval(y){} in ...
 - 【并发编程】IO模型
			
一.要点回顾 为了更好地了解IO模型,我们需要先回顾下几个概念:同步.异步.阻塞.非阻塞 同步: 一个进程在执行某个任务时,另外一个进程必须等待其执行完毕,才能继续执行.就是在发出一个功能调用时,在没 ...
 - Oracle学习——第一章
			
Oracle数据库特点:安全性高,数据类型丰富 Oracle是由美国甲骨文公司开发的一款数据库产品 -------------------------------------------------- ...
 - python datetime模块用法
			
1. 创建naive(无时区信息)的datetime对象 import datetime dt_utc = datetime.datetime.utcnow() dt_utc # datetime.d ...