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应用程序运行环境内容的补充. 我们知 ...
随机推荐
- Jenkins安装时Web页面报错提示离线安装
先跳过所有. 方法1 先看它的提示:”参考离线Jenkins安装文档“发现链接点不开,我还以为是被墙了呢,FQ以后还是打不开.看来这个参考文档是没有用滴.点击配置HTTP代理跳出如下界面:安装Jenk ...
- ASP.NET Boilerplate-AbpSession
/------2016-05-15/------介绍 如果一个应用支持登录,也许需要知道当前登录用户的一些操作,然而ASP.NET 本身对于展现层提供了Session的支持,ABP提供了 IAbpSe ...
- Why is it called “armature” instead of “skeleton”? or perhaps “rig”?
Great question, I’ve always assumed armature/skeleton to be the same thing, here’s a quote from an a ...
- easyui 回车搜索
代码: js: // 搜索 $("#searchButton").click(function() { var ip = $("#searchIp").val( ...
- node.js中Buffer缓冲器的使用
一.什么是Buffer Buffer缓冲器是用来存储输入和输出数据的一段内存.js语言没有二进制数据类型,在处理TCP和文件流的时候,就不是很方便了. 所以node.js提供了Buffer类来处理二进 ...
- Linux驱动之同步、互斥、阻塞的应用
同步.互斥.阻塞的概念: 同步:在并发程序设计中,各进程对公共变量的访问必须加以制约,这种制约称为同步. 互斥机制:访问共享资源的代码区叫做临界区,这里的共享资源可能被多个线程需要,但这些共享资源又不 ...
- 20172306《Java程序设计与数据结构》第一周总结
20172306<Java程序设计>第一周学习总结 教材学习内容总结 本周主要学习<Android和Java>书中的第二十三章和第二十六章. 第二十三章:Android简介 A ...
- [Selenium] 在Chrome的开发者工具中验证检查XPath/CSS selectors
Evaluate and validate XPath/CSS selectors in Chrome Developer Tools Method 1 : From Elements panel U ...
- c++沉思录 学习笔记 第五章 代理类
Vehicle 一个车辆的虚基类 class Vehicle {public: virtual double weight()const = 0; virtual void start() = 0; ...
- LOJ-10105(欧拉回路模板,套圈法,递归)
题目链接:传送门 思路: (1)用邻接表存储有向图和无向图,有向图和无向图的每条边均站两个单元,无向图有正向边和反向边的区分. (2)有向图有欧拉回路:所有点的入度=出度: 无向图有欧拉回路:所有点的 ...