Windows前段开发者有足够的on their plates可以简单的从Windows 32桌面和Web应用迁移到XAML/C#或者HTML5/JavaScript,而且新的Windows Runtime (WinRT) 是Windows商店应用。
用Microsoft Account(以前是Live ID)为用户身份验证和授权,培训团队新的后端代码技能的成本会让人望而怯步。增加了使用Windows Notification Services (WNS)的消息,电子邮件和SMS也用Windows Azure SQL Databases (WASDB)结构化存储,目标是Windows 8和Azure:微软的遗留迂回路线,而且一切变化的有点多。
为了轻松的让.NET开发者进入这个多种设备的***新世界,包括Win32笔记本电脑到触屏平板电脑和智能手机,微软的Windows Azure团队发布了Windows Azure Mobile Services (WAMS)预览版。最初的发布只支持Windows商店应用(以前是Windows 8应用);微软最近承诺支持iOS和Android设备。
此次发布包含下列内容:
1、移动服务选项增加了新的HTML Windows Azure Management Portal生成后端数据库、身份认证/授权、通知和自动化服务器端脚本服务。
2、Apache 2.0许可证下的开源WAMS Client SDK预览版,可以从GitHub下载;SDK要求Windows 8 RTM和Visual Studio 2012 RTM。
3、应用示例展示WAMS多租户性能,也可以从GitHub下载。这个示例除了移动开发者页面的教程提供的和OakLeaf Systems博客之外的。
4、商店菜单增加了Visual Studio 2012的Project菜单,加快Windows商店应用注册和部署。
5、Visual Studio 2012打开一个表格报刊开发者Windows 8许可证,创建Windows商店应用要用到。
WAMS消除了手工需求,多达一千多行的XAML和C#要执行并配置Windows Azure SQL Database (WASDB),类似的也有针对客户端和设备不可知的移动后端的Access Control and Service Bus通知组件。RESTful后端使用OData的新JSON轻型负荷选择用最小的数据开销来支持多种前段操作系统。WAMS的动态模式(Dynamic Schema)性能自动生成WASDB表模式和关系,因此前段设计者不需要数据库设计技能。
扩展WAMS设备和性能
Scott Guthrie是微软的合作VP,负责Windows Azure开发,他在博客中宣布了如下的支持设备和功能:
1、支持iOS,企业可以连接iPhone和iPad应用到移动服务(Mobile Service)
2、移动服务支持Facebook,、Twitter和谷歌认证
3、移动服务支持Blob、Table、Queue和Service Bus
4、可以从移动服务发送电子邮件(和SendGrid合作)
5、可以从移动服务发送SMS消息(和Twilio合作)
6、在美国西部地区部署移动服务
升级并没有修复GitHub 示例文件中原来的来自Developer Center或者Paul Batum的原始DoTo示例应用的Get Started with data或者Get Started with push notifications C# 和JavaScript示例项目。 #p#
开始Data Service
在你开始测试驱动WAMS之前,至少需要一个微软庄户(以前是Live ID)和Windows Azure试阅。下一步,从Windows Azure Management Portal点击账户标签(Account tab)请求访问WAMS预览版,预览性能链接,然后移动服务部分的“Try It Now”按钮。
一到两天内你会收到一封电子邮件消息,指导你如何增加移动服务项目到portal的导航面板上。在预览期内,你可以创建十个免费的移动服务。
点击+New按钮,选择移动服务并点击创建,打开一个表格,使用现有的Windows Azure SQL数据库或者创建一个新的。示例ToDo应用,是基于WAMS开发者中心的三个“Getting Started …”例子,用一个简单的TodoItem表,通过id (bigint, idenitity), text (nvarchar(max))和完整的(bit)列采集和存储任务数据。
在合并这些性能时,动态模式(Dynamic Schemas)功能自动增加userId (nvarchar(max))和 channel (nvarchar(max))列进行授权和身份认证。当你按下F5在Visual Studio 2012中构建和运行时,服务生成展示这个应用的主要形式所有的XAML和C#代码(参照图一)。
图一,使用动态模式性能增加channels和columns进行授权和身份认证
在用Visual Studio 2012测试初始客户端应用时,为了避免意外行为,使用你进行试验或者订阅相同的微软账户来请求进入WAMS预览版并登陆Windows 8。
用服务器权限和客户端脚本增加用户身份认证和授权
WAMS利用Windows和Windows Phone的Live SDK来提供单点登录(SSO)认证你用来登陆Windows 8的微软庄户。在我的博客中,我描述了如何在Visual Studio 2012中创建一个Package.appxmanifest文件,通过创建一个用Windows Push Notifications & Live Connect service注册应用。当WAMS团队扩展到Andioid时,使用Live SDK for iOS 和Live SDK for Android。你也可以授权新的Facebook、Google和Twitter身份提供商。
WAMS增加了简单表格Management Portal,允许开发者设置服务器端权限来授权用户访问TodoItem表(见图二)。
图二、TodoItem表权限表格的形式让开发者选择用户授权读、插入、更新和删除操作的层级
增加参照到Live SDK,对Microsoft.Live和Windows.UI.Popups命名空间使用声明,23行C#代码引出一个“Let This App Access Your Info?”弹窗。
服务器端脚本可以让用户通过认证信息,到达Live ID后端进行授权。脚本编辑器允许开发者轻松的添加JavaScript item.userId = user.userID声明到默认的request.execute功能,进行插入、删除和升级功能操作(参见图三)。
图三、服务器端脚本编辑器简化到增加单行代码通过userId值进行授权操作TodoItem表。
***,增加JavaScript query.where({ userId: user.userId });声明读功能返回登录用户的唯一内容。 #p#
交付推动通知
WAMS和LiveID SDK也允许设备向用户推送通知,通过插入新字段到TodoItems表中。我的博客描述了如何增加Windows.Networking.PushNotifications;也有一段声明和代码声明和交付一个值到静态CurrentChannel变量,再到客户端代码。步骤1-4和1-5增加了新的DataMember属性名channel和代码,提交给ButtonSave_Click事件处理程序,总共八行C#代码。然后,你可以使用Management Portal在推送表格中注册应用的Security ID (SID),作为Windows Application Credential(Windows应用证书)之一(见图四)。
图四、移动服务需要Client Secret 和Package SID值来识别请求访问数据库表格的客户端。
***,应用需要Channel表来单独存储用于推送通知的channel URI,区别于TodoItems 。你也可以增加17行C#代码(一个应用总共25行)和10行JavaScript Insert()功能代码,来完成推送通知功能(见图五)。
图五、最终的推送通知测试可能展示了一个或者更多的TodoItems条目的多种通知源代码 #p#
用Windows商店注册应用
微软坚决要让Windows上带你和苹果的APP商店竞争,所以有望没有严苛的流程。我的博客有写我如何解决Oakleaf ToDo应用UI的不同大小的自定制位图文件(见图六和图七)。我也详细介绍了提交应用到Windows商店的流程。
图六、这是一个标准的150 x 150 px logo展开图;宽版Logo是300 x 150 px
图七、应用搜索和通知使用50 x 50 px logo展开图
Windows 8普遍应用时,应用从开始页面到***,Windows商店是部署应用的唯一手段。我为Windows商店注册递交了一个OakLeaf ToDo应用的升级版本。如果符合要求,你应该能够在十一月初通过搜索OakLeaf找到。注册队列从十月份开始变得冗长,因为2012年十月份末应用开发者纷纷去预定Windows 8 RTM。