Azure 行動服務為行動應用程式開發人員提供了以雲平臺為基礎的後端解決方案,現在這項服務除了可以使用 JavaScript (Node.js) 來客制化後端平臺之外,也支援了使用 ASP.NET Web API 的技術來客制後端平臺的運算邏輯,所以對於要開發給行動裝置應用程式 API 的 ASP.NET 開發人員來說,Azure 行動服務是相當有吸引力的:
適用于所有行動平臺的完整後端平臺以及 SDK 解決方案。 透過 Azure 行動服務,您可以迅速地為您的 iOS, Android, Windows, Windows Phone 或是 HTML app 加上一個有豐富功能的後端平臺,即使是使用像是 Xamarin, Sencha 或 PhoneGap 這些跨行動裝置平臺的開發工具組也適用。 我們同時為這些平臺分別提供了 SDK,讓您在開發整合上更加方便。
您 Mobile API 的最佳託管平臺。 雖然 Azure 行動服務本身就提供了 Web API 供行動應用程式界接,您仍然可以部署 Web API 控制器到 Azure 行動服務上做客制化,相對其它的託管服務,Azure 行動服務可以協助您監控及管理您自行部署的 Web API 控制 器,如果 Web API 的執行環境發生了任何問題,我們也會自行修補或更新,除非是您的控制器程式發生問題,我們才會聯絡您。
優質且多功能的行動後端平臺。 Azure 行動服務提供了許多立即可用的功能,您可以輕易地與 Web API 結合,像是使用 SignalR 即時發出推播通知(push notification)、使用社交網路的機制做身份驗證、同步離線資料等等。
與企業系統結合。 如果您是企業中的開發人員,Azure 行動服務也讓您可以使用 Active Directory 做身份驗證、透過 API 存取 SharePoint 或 Office 365 的資料。 除此之外,我們也提供了無縫整合的機制 (connectivity to on-premises assets),即使企業內部的系統或資料庫沒有直接曝露在 Internet 之下,您依然可以在 Azure 行動服務上連結它們。
與 Visual Studio 整合。 現在您可以直接在您最愛的 IDE 中直接操作及開發 Azure 行動服務相關的專案,Visual Studio 同時也是 Azure 行動服務最佳的開發、偵錯及發佈的工具。
適用于所有行動平臺的完整後端平臺以及 SDK 解決方案
開始使用 Azure 行動服務是很容易的,只要在 Azure 管理後臺上建立一個新的行動服務,並且在第一個畫面記得在 BACKEND 欄位選擇「. NET」。 一旦行動服務建立完成後,您可以到 Quickstart 的頁面,根據您要開發的行動平臺下載一個起始專案來開發。
如果您比較喜歡從 Visual Studio 開始,那也可以在新增一個新的 ASP.NET 專案時,選擇新增 Azure Mobile Service 專案範本,稍後再將它直接發佈到 Azure 上。 請注意:這項功能是在 Visual Studio 2013 Update 2 之後新增的。
不論用哪一種方式,都會拿到一個 Mobile Service .NET 的專案範本,同時您也可以發現它其實是一個簡單的 Web API 專案(加上一些 NuGet 套件)。
您可以打開 TodoItemController.cs 這個檔案,在 GetAllTodoitems() 處設定中斷點,這個控制器的程式碼也展示了要如何操作 Azure 行動服務上的資料:
public class TodoItemController : TableController
{
protected override void Initialize(HttpControllerCoNtext controllerCoNtext)
{
base. Initialize(controllerCoNtext);
csharp_testCoNtext coNtext = new csharp_testCoNtext();
DomainManager = new EntityDomainManager(coNtext, Request, Services);
}
GET tables/TodoItem
public IQueryable GetAllTodoItems()
{
return Query();
}
GET tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public SingleResult GetTodoItem(string id)
{
return Lookup(id);
}
PATCH tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public Task PatchTodoItem(string id, Delta patch)
{
return UpdateAsync(id, patch);
}
POST tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public async Task PostTodoItem(TodoItem item)
{
TodoItem current = await InsertAsync(item);
return CreatedAtRoute("Tables", new { id = current. Id }, current);
}
DELETE tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public Task DeleteTodoItem(string id)
{
return DeleteAsync(id);
}
}
您可以看到這裡我們產生了所有的 CRUD 方法來處理 TodoItem,同時這個控制器使用了 EntityDomainManager,它為 Entity Framework 模型包裝了一層,讓您可以很容易地選擇不同的資料來源,像是:
MongoDB: 透過 NuGet 套件管理工具可以安裝使用 MongoDomainManager。
Azure Table Storage: 透過 NuGet 套件管理工具可以安裝使用 StorageDomainManager。
現在 Azure 行動服務支援您可以在本地端進行偵錯(按 F5 執行),啟動的頁面將可以説明您瞭解 Web API 送出的資料是否正確。 按下頁面中的 GET tables/TodoItem 就可以開始進行測試;按下「try this out」的連結,並按下 send,就會觸發程式中的 GetAllTodoItems() 方法,由於剛才已經設定過中斷點,所以就可以在 IDE 裡進行偵錯。
當您完成了 API 的開發,您可以立即從 Visual Studio 中將專案按右鍵發行至 Azure,而不必另外打開 Azure 管理介面來操作。
一旦完成發行,Azure 行動服務便會立刻將您開發的 Web API 上線,同時進行監控。
您 Mobile API 的最佳託管平臺
如果您是一個有經驗的 Web API 開發人員,您也許會想瞭解把 Web API 服務放上 Azure 行動服務有什麼好處? 下面舉出了一些好處:
監控 (monitoring) 及診斷 (diagnostics)。 Azure 行動服務提供了 SLA 99.9 的服務水準,並且透過內建的監控機制來確保您服務的穩定。 如果是付費使用者,我們更會嚴密監控 HTTP 流量及 SQL 的連結,一旦有問題時便會與您聯絡。 除此之外,我們也提供了許多自助監控的機制,像是服務端點監控以及警示功能。
自動更新。 我們平均每週都會更新或修補錯誤我們的伺服器平臺,而更新的過程不會讓您停止服務或是需要重新部署應用程式。 當然,我們會確保更新後的相容性,所有的更新都會向後相容(backward-compatible)。
自動部署雲端服務。 當您建立一個 Azure 行動服務時,我們也會自動設定 SQL 資料庫以及通知中樞(notification hub, 為了做推播通知),並且正確地連結好。 同樣地,您也可以在管理後臺上輕易地設定好與既有機房的連結,達到混合雲的使用情境。 Azure 服務提供您公有雲的方便之外,也提供了與既有機房連結的彈性。
優質且多功能的行動後端平臺
當您開時使用 Azure 行動服務打造應用程式時,您會發現 Azure 行動服務提供了許多有用的功能,這些功能可以為您省下好幾個禮拜的開發時間。
統包的身份驗證方案。 許多行動裝置應用程式都會有身份驗證的使用情境,Azure 行動服務已做好像是 Microsoft Account, Facebook, Twitter, Google 以及企業用的 AAD 身份驗證機制,您只需要透過 Azure 行動服務的 S DK/API 呼叫就能完成身份驗證的工作,而不必真的成為 OAuth 專家。 詳情可以參考這份教學檔。
可延展的推播通知。 有一些行動裝置應用程式有使用推播通知的情境,Azure 行動服務已經做好 Windows, iOS, Android 以及 Kindle 的推播機制,您可以只透過一套 Azure 行動服務的 API 便能完成全平臺的推播通知機制,當然您也可以 完全客制化推播通知的內容,這份檔可以讓您瞭解如何使用 Azure 行動服務的推播通知功能。
同步離線資料。 許多使用者希望在行動裝置離線時也能繼續使用,而 Azure 行動服務的 SDK 也提供了類似 SQLite 的離線資料庫機制,待裝置再度連上線後進行同步。 詳情可參考這份檔。
即時。 推播通知是一個與客戶接觸的好工具,但這使得您必須提供可延展且低延遲的網路環境,Azure 行動服務支援以 WebSocket, SignalR 為基礎的即時雙向通訊機制,使您的應用程式能更即時地傳送或接收訊息。 而這一切都建構在 Azure 上可無縫延展的基礎架構上,同時也可以輕易地做身份驗證。 更多的訊息請參考這篇文章。
與企業系統結合
在企業系統的開發上,.NET 是很常見的開發平臺,所以在 Azure 行動服務支援 .NET 程式語言後就有更多與企業系統結合的機會,您可以參考這一頁的資訊,看到更多的展示。
Active Directory 整合。 在企業應用中,常會使用 Active Directory 來做身份驗證的機制,Azure 行動服務支援 AD 的登入機制後,也可以存取原本用 AD 做身份驗證的 SharePoint 以及 Office 365,更適合做企業的行動應用程式開發。 更多 AD 整合的資訊請參考這份教學檔,而這部影片說明了如何設定 on-behalf-of 的機制。
與既有機房連結。 有時候企業的系統或資料庫並沒有曝露在 Internet 的環境下,Azure 行動服務依然支援設定與既有機房連結的機制,創造出「混合連結」的架構。 可參考這部影片以及這份教學檔來進行設定。
Xamarin SDK。 許多企業會選擇使用 Xamarin 的技術來開發多平臺的行動裝置應用程式,Azure 行動服務也提供了 Xamarin SDK 讓以 Xamarin 開發應用程式的開發人員也能輕易使用 Azure 行動服務的功能。
加速器。 Azure 行動服務團隊針對特定產業的應用開發了一些範例,以加速特定產業的行動應用開發。 這些加速器可在此下載。
與 Visual Studio 整合
除了上述的功能之外,與 Visual Studio 開發工具的整合也是相當重要的,除了可以直接開發、偵錯及發行之外,您也可以在 Visual Studio 中產生像是表格控制器、自訂控制器或是排程工作等程式範本。
同時我們也整合了遠端偵錯的功能,您只要在伺服器總管(Server Explorer)上連結到對應的 Azure 行動服務,按右鍵選擇「連結偵錯工具(Attach Debugger)」,這樣就可以直接在 Visual Studio 中進行偵錯已發行至 Azure 行動服務的程式碼(要是 Debug 編譯)。
另一個很棒的功能是,您可以在伺服器總管(Server Explorer)上使用「檢視記錄(View Logs)」的功能看到 Azure 行動服務上的所有 log,也包含錯誤訊息堆疊等。
我們衷心地希望這些新功能會吸引您在下一個專案來試用 Azure 行動服務。