Windows Azure移動服務為Win8和iPhone創造后端
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。