文章目錄
- 概述
- 架構圖
- 動手實踐——建立Windows Phone雲應用
Windows Phone 雲應用開發實踐(一)
Windows Azure平台概述
Windows AzureTM是一個雲端服務作業系統,為Windows Azure 平台提供開發、服務託管和服務管理環境。Windows Azure通過微軟的資料中心為開發人員提供以按需的計算能力和儲存能力去託管、擴充和管理互連網上的應用程式。
Windows Azure平台是微軟資料中心託管的雲端服務平台,提供可高度擴充的處理和儲存功能、關係資料服務和可用於構建Windows Phone應用程式的進階資料訂閱。Windows Azure 是一個可擴充的平台,它支援多種語言並且和你現有的內部部署環境整合在一起。在Windows Azure上建立應用程式和服務, 開發人員可以利用他們現有的Microsoft Visual Studio專長。同時,Windows Azure支援流行的標準、協議和語言,包括SOAP、REST、XML、Java、PHP和Ruby。
有關構建使用Windows Azure中雲端服務的手機應用程式的資源,請下載Windows Azure for Windows Phone工具包。工具包中包括用於Windows Phone和Windows Azure的Visual Studio項目模板、為在手機上使用而最佳化的類庫、應用程式範例和文檔。: http://watwp.codeplex.com/ 。
要運行工具包中的項目模板和樣本解決方案必須安裝下列組件:
- Microsoft Visual Studio 2010 Professional (or higher) or both Microsoft Visual Web Developer 2010 Express and Microsoft Visual Studio 2010 Express for Windows Phone
- Microsoft ASP.NET MVC 3
- Windows Phone SDK 7.1 Release Candidate
- Silverlight for Windows Phone Toolkit
- Internet Information Services 7 (IIS7)
- Windows Azure SDK for .NET – November 2011
- Windows Identity Foundation Runtime
- Microsoft SQL Server 2008 R2 Express (or higher)
- Entity Framework 4.1 Code First
- Internet Explorer 9 (or any other modern Web browser supporting HTML5)
注意:
工具包中包含設定精靈,設定精靈檢查和安裝以上列出的組件。導航至工具包安裝的根目錄,雙擊Setup.cmd即可啟動設定精靈。選擇"Install All"安裝所需的組件。
圖 啟動組態工具Setup.cmd
注意:
此工具包依賴於Windows Azure、Silverlight for Windows Phone和ASP.NET MVC 3的項目類型。因此運行樣本的解決方案和使用工具包中的項目模板,需要安裝Visual Studio 2010 Professional或者更高版本的Visual Studio。對於很多開發人員而言可能只安裝了Microsoft Visual Studio 2010 Express for Windows Phone,那麼還需要Microsoft Visual Web Developer 2010 Express方可使用工具包中的項目模板。
Windows Azure
Windows Azure是一個雲端運算平台,可以讓你在雲中啟動並執行應用程式和資料存放區。而不必擔心底層的基礎設施建設和管理作業系統,你可以簡單地構建應用程式並將其部署到Windows Azure。Windows Azure為開發人員提供按需計算、儲存,網路、內容交付能力。
SQL Azure資料庫
微軟SQL Azure資料庫是基於SQL Server技術構建高度可用和可擴充的雲資料庫服務。SQL Azure的高可用性和容錯功能是內建的,開發人員不需考慮如何配置和維護資料庫。
與本地SQL Serve類似,SQL Azure公開表格式資料流(TDS)介面以提供基於Transact-SQL的資料庫訪問。因為Windows Phone應用程式平台不支援TDS協議,因此在Windows Phone應用程式中必須使用Web服務來儲存和檢索SQL Azure資料庫中的資料。
Windows Azure Marketplace DataMarket
Windows Azure Marketplace DataMarket是一個資料資訊商城,它簡化了所有類型資料的發布和使用。通過DataMarket,開發人員可以發現、預覽、購買和管理進階資料訂閱。
DataMarket使用OData協議傳輸資料DataMarket OData源在資料集中提供基於REST的API,簡化了開發的難度。Windows Phone應用程式使用Windows Phone的OData用戶端庫擷取DataMarket的資料。OData是用於查詢和更新資料的Web協議,在後面的小節中將專門介紹Windows Phone的OData開發。
DataMarket資料集有兩種類型:支援靈活查詢的資料集和支援固定查詢的資料集。靈活查詢資料集支援更廣泛的基於REST的查詢。固定查詢資料集僅支援固定數量的查詢,它提供了C#的用戶端庫以協助用戶端應用程式使用資料。
架構圖
本節的重點內容是Windows Azure工具包為Windows Phone提供服務和代理的概述。
- Windows Azure儲存的代理和服務
針對Windows Azure儲存服務的每一個請求必須通過身分識別驗證。為了避免身分識別驗證資訊(儲存體帳戶名和密鑰)儲存在您的手機用戶端應用程式,Windows Azure工具包提供安全的方式使用Windows Azure儲存服務,確保Windows Azure儲存的帳戶資訊在Web託管這些服務中是安全的。
Azure表和隊列代理是HTTP處理常式,請求轉寄到真正的Windows Azure儲存服務。如果代理確定請求的許可權有效,代理將簽署請求並轉寄給真正的Windows Azure儲存服務,然後將Windows Azure儲存服務的響應轉寄給用戶端。
共用存取簽章服務(Shared Access Signature service)是WCF REST服務,提供containers和 blobs共用存取簽章(Shared Access Signatures,簡稱SAS)。一旦手機用戶端收到的SAS,它可以使用它來執行請求的Blob服務的REST API。
- SQL Azure的OData服務
在SQL Azure OData服務是使用Entity Framework 4.1的SQL Azure(或SQL Server)上的WCF資料服務。 目前這項服務的版本,除了支援讀操作,還增加了一個安全層來管理認證/授權。
圖 SQL Azure的Odata服務
- 推播通知
在Windows Phone微軟的推播通知服務提供可使第三方開的訊息推送通道,發送從Web服務到Windows Phone應用程式的資料通知。Windows Azure工具包提供增強MPN(Microsoft Push Notification)服務:
- 1. 在MPN服務中註冊Windows Phone應用程式。Windows Phone應用程式開通MPN服務的特定通道。MPN的伺服器建立與特定通道對應的訂閱,所以在該端點收到的通知將被轉寄到特定的WP裝置和具體的WP應用。
- 2. 使用工具包的Web角色註冊Windows Phone用戶端:Windows Phone應用程式調用Web角色的SamplePushNotificationService註冊成為MPN服務的訂閱終端。
- 3. Windows Azure工具包的雲端服務發送通知請求至MPN:雲端服務以特定的xml格式向MPN服務發送HTTP POST請求,註冊接收推播通知的Windows Phone裝置。
- 4. MPN的服務發送通知至Windows Phone:MPN處理通知請求,並將其推送至Windows Phone裝置。Windows Phone裝置接收到推送的用戶端發送來的通知後,將通知路由至Shell。如果應用程式沒有運行,Shell將更新應用程式的Tile(磁貼)或者顯示Toast通知。如果應用程式處於運行狀態,Shell將發送通知至正在啟動並執行應用程式。
當從門戶網站發送Tile(磁貼)或Toast通知,通知全文被儲存在一個Azure隊列或在SQL Azure資料庫表,當手機啟動應用程式,並且應用程式推播通知選項被選中,那麼將輪詢此隊列或資料庫表,將該使用者的所有資訊提取顯示。
圖 推播通知
- ACS身分識別驗證
Windows Azure存取控制服務(Windows Azure Access Control Service ,簡稱ACS)允許應用程式外包認證,例如使用Windows Live ID、Google、雅虎等賬戶的身份認證。由ACS提供簡單的Web令牌,並以此令牌為每個發送給服務的HTTP請求署名。由Web服務檢查此令牌的有效性,並授權訪問Windows Azure儲存或SQL Azure。
圖 ACS身分識別驗證
- 成員資格
ASP.NET成員資格允許開發人員驗證和甘栗Web應用程式的使用者資訊,提供了用於驗證使用者地憑據,建立和修改會員使用者,以及管理比如密碼和電子郵件地址之類的使用者佈建的功能。ASP.NET成員資格,主要用於使用ASP.NET表單身分識別驗證,但可以在運行ASP.NET應用程式的任何設定中使用。
當Windows Phone應用程式作為驗證服務使用ASP.NET的成員資格,必須建立Web角色,方可訪問Web角色部署的服務。ASP.NET成員為Windows Phone應用程式的請求提供授權,Web服務檢查授權的有效性,並提供訪問Windows Azure儲存和SQL Azure的資料服務。
圖 成員資格
- 管理入口網站
所有Windows Phone雲應用程式的管理是綁定於管理入口網站的,管理入口網站提供管理Windows Azure的Blob、Containers,以及Windows Azure 隊列、表的服務,還有微軟推播通知和蘋果推播通知的服務。
圖 管理入口網站
動手實踐——建立Windows Phone雲應用
本節介紹如何使用Windows Azure工具包中的項目模板建立Windows Phone雲應用。
- 以管理員身份Visual Studio (這是運行Windows Azure項目的必要條件)
- 在"檔案"菜單上,指向"建立" ,然後單擊"項目"。
- 在"已安裝的模板建立項目"對話方塊左側的列表中,選擇"Visual C#"節點下的"Cloud",選擇"Windows Phone Cloud "模板。
圖 建立項目
- 在新的Windows Phone雲應用項目 對話方塊中,選擇儲存選項,至少選擇一個Windows Azure儲存或SQL Azure資料庫選項。注意注意
注意:
Windows Azure Storage是項目模板的預設選擇,如果只選擇SQL Azure資料庫,那麼資訊將只儲存在SQL Azure資料庫。
圖 資料存放區服務的選項
- 單擊"下一步 "移動到嚮導的下一個步驟。
- 如果"Windows Azure儲存"選項被選中,那些需要提供您的Windows Azure儲存體帳戶資訊(使用者名稱和密鑰)。
圖 Windows Azure儲存選項
- 單擊" 下一步 "移動到嚮導的下一個步驟。
- 如果"SQL Azure資料庫"的選項被選中,那麼需要提供您的SQL Azure資料庫伺服器的資訊(伺服器名、使用者名稱和密碼)。
圖 SQL Azure資料庫選項
注意:
如果你想使用本地SQL Server執行個體,而不是SQL Azure資料庫,請選中"使用本地SQL Server執行個體"選項,並挑選清單中的SQL Server執行個體。
- 單擊" 下一步 "移動到嚮導的下一個步驟。
- 對於推播通知服務選項,選擇是否要包括推播通知服務支援的Windows Phone或者Apple。
圖 推播通知選項
注意:
如果蘋果推播通知服務(APN)支援選項被選中時,會出現一個交談視窗顯示本機電腦上安裝的認證列表。選擇使用的APN認證身份的認證,然後單擊確定。建立和安裝特定的IOS應用程式的蘋果推播通知認證,你需要先註冊Apple開發人員網站上註冊,獲得並安裝SSL認證。
圖 SSL認證
圖 支援Apple推播通知服務的選項
- 單擊"下一步"移動到嚮導的下一個步驟。
- 要麼選擇要麼ASP.NET成員(預設),要麼選擇Windows Azure 存取控制服務。
.圖 系統管理使用者身份認證
如果Windows Azure的存取控制服務(ACS)的選項被選中,您需要提供您的ACS服務的命名空間和管理的密鑰。
圖 Windows Azure的存取控制服務(ACS)的選項
點擊確定完成在Visual Studio中建立Windows Phone雲應用的項目。
開啟建立的解決方案,可以看到解決方案名稱為"WPCloudApp1"包含以下項目:
- WPCloudApp1:具有Web角色的Windows Azure的項目。
- WPCloudApp1.Phone:Windows Phone的Silverlight項目,其中包含應用程式範例示範如何接收推播通知和使用Windows Azure表、Blob和隊列。
- WPCloudApp1.Web:具有Web角色的ASP.NET MVC 3個項目,包含該工具包的服務和管理頁面。
注意:
項目名稱取決於您在"建立項目"對話方塊中鍵入的名稱。
圖 解決方案