Windows Azure - Mobile Service初體驗!!

29 August 2012 — Written by Sky Chang
#Azure#Windows Store App

原本想說Windows Azure的東西寫的也差不多,準備告一個段落,跑去玩玩TFS的詳細功能,和開始看看ASP.NET MVC的東西,沒想到,突然間,就看到了Mobile Service這個服務出現;好吧,既然命中注定如此,只好把其他東西延一延,讓我們來看看Windows Azure的新功能吧。

現在的時代進步太快,原本只使用電腦上網的我們,現在還多了行動裝置,平板等等東西,可以讓我們帶著跑;多了行動裝置和平板也就算了,現在除了Microsoft本家的Win Phone、Win Store App ( 現在說不可以再用Metro Style App了 )外,還有Apple的iOS、和Android機器人大軍;在那麼多樣化的時代,我們也不可能把所有商業邏輯都一遍又一遍的寫一次 ( 好吧,如果可以用複製貼上,還免強可以接受 ),但遇到不同平台,有不同的語言,就沒那麼簡單了;當然,或許說有HTML5,但別忘了,那是屬於UI端的,因該也不會想把所有商業邏輯寫到UI去吧…( 也有難度阿… ),總之,後面還是要有Server端的語言來配合!!其實講了那麼多,鋪了那麼多梗,其實只是想說,為了配合前端那麼多的裝置,所以我們把服務放到雲端是最適合的了!!! 當然,其實自己架Server也,提供服務也OK,但太累了…;講了那麼多,終於要帶到今天所說的這個服務,假設今天我們要弄一個推播的服務,可以自動地將訊息推到各個裝置上,如果自己架設要處理的事情太多,從IIS的配置等等,實在是太麻煩了;雖然可以使用Azure Cloud Service的Web Role或是Work Role,但想到要寫Work Role去對Queue和DB做處理,也是要花上一點時間,所以,今天Microsoft聽到我們這些懶人的聲音,喔,不是,為了讓我們更專注於Mobile App的開發上,所以在Azure提供了我們Mobile Service這個服務!!( 對不起,說了很多廢話… )

Mobile Service當然不只是單純的提供推撥,也提供了行動裝置儲存等等的機制 ( 使用SQL Server來儲存資料,並利用安全的REST來將JSON為基底的ODATA格式,傳送於Mobile和Server之間 ),而且還可以輕鬆的定義資料的驗證,其次,Mobile上,也常常需要身分的驗證,Mobile Service也都幫你簡單的搞定了!!( 其實,前面感覺兩段感覺都是廢話,這段才是重點… )

接下來,我們不多說,我們直接使用官方提供給我們的範例,先來體驗一下!!( 這次沒有Hello World了.. )

( 目前依舊處於Preview階段,所以目前只提供Win Store App,也就是Win 8 Metro Style App的服務,未來Azure會提供iOS和Android等服務進來,另外,整個範例需要Visual Studio 2012和Windows 8,所以沒有裝的人,就只能看看圖了。)

建立Mobile Service

首先我們要先建立一個新的Mobile Service,當然,要選擇我們熟悉的New按鈕,如果沒看到這個服務的人,或是不能選的人,可能是因為還沒有申請這個服務,可以從這裡提出申請。

image

接下來,選擇Mobile Service,並選擇Create。

image

這裡輸入我們想要的URL,然後因為要存Mobile Service的Data,所以需要使用到Database,如果想使用目前已經有的Database,可以選擇現有的Database,那下一頁的時候,就會要求你輸入原來那個Database的帳號與密碼,但如果決定使用新的Database,就必須選擇建立一個新的,也就是選擇Create a New SQL database。因為實驗的關係,就選擇建立一個新的吧!!當然,最後的地區,原本應該要選擇東亞,但無奈的是,現在Preview階段,只有東美…

image

因為我們是選擇建立一個新的DB,所以接下來要設定DB,簡單的就是取名子,輸入DB的Login Name等等,但這邊可能會有人有疑惑,為什麼這邊又要選擇New SQL Database Server,原因很簡單,上面那張圖,是告訴Azure,我們要使用舊的DB還是建立了一個新的DB,而到了下面這張圖,因為我們決定建立新的DB,我們又可以選擇,要建立一台新的SQL Server,還是要把這個Database掛在以前建立好的SQL Server下,因為我們無論是SQL Server或是Database都要建一個新的,所以我們這邊選擇New SQL Database Server。

image

如果上圖有勾選Configure advanced database settings,就會進入到下一頁,也就是設定一下SQL Server的版本,看是要Web或是Business,基本上Business,只不過是最大的Size可以比較大,但相同的,用越大的Size當然也就越貴;最後設定一下定序。

image

然後我們就可以看到他在建立中。

image

到這邊就算建立完成

下載範例與執行

建立好之後,我們就可以進入剛剛建立好的Mobile Service。

image

其實這邊已經可以看到他有許多功能了,但我們先選擇閃電雲,也就是英文DASHBOARD旁邊那個圖示;然後就可以看到這個畫面,並選擇Create a new Windows 8 application這個選項,我們先快速的初體驗一下。

image

首先,我們要先下載新的Mobile Service SDK。

image

如果沒有裝的話,編譯會出現如下圖錯誤。

找不到 SDK “MobilesServicesManagedClient, Version=0.2.0.0”

image

下載與安裝的過程就不詳細敘述了,就下一步就可以了。

image

安裝中。

image

完成之後,我們要先建立TodoItem Table,也就是在SQL Server上開Table啦!!,點一下Create TodoItem Table;接下來,選擇你喜歡的語言,不過很可惜的,目前只有C#和JavaScript;最後並選擇下載。

image

下載的是Zip檔案,自己找地方存吧。

image

解開後,我們點一下專案黨,也就是sln檔案。

image

然後就可以順利地透過Visual Studio 2012打開,我們這邊利用模擬器執行。( 不用模擬器也是可以啦,只是我抓圖方便,所以使用模擬器=v= )

image

如下,這就是官方提供給我們的Win Store App。

image

我們可以從1的位置那邊Key值進去,並按下Save,按下去沒多久,就會在2的地方出現,當我們從2的Checkbox按下去,就又會消失喔!!,這就是整個Win Store App的功能,反正就是實作出簡單的Todo List。

image

這就是簡單的範例程式。

回頭看看

接下來,我們稍微回頭看看,我們點選Data。

image

其實我們從Mobile Service的服務,就可以看到相關的資料了,我們可以看到Name是TodoItem,然後目前還有一筆尚未勾選( INDEXES 為 1 ),總共紀錄有兩筆( RECORDS為 2 ),我們再點一下TodoItem。

image

就會進入到詳細資料,其實這就是DB裡面的資料。

image

我們從DB那邊看,是一樣的。( 至於怎麼進Azure SQL Service,就不是這篇的主題了,所以請原諒我審略進去查看資料的步驟。 )

image

到這邊,簡單的範例就完成了!!

後記

就如前面所說,其實如果自己要處理,還是可以慢慢寫出來這些東西,但整個工程可能會很麻煩,所以Azure提供Mobile Service服務,讓我們能快速地使用;當然,今天用的是官方的範例,可能大家對於許多細節是有疑惑的,這部分,小弟我會在這幾天慢慢補齊,等不及的人,也可以直接去MSDN看說明喔!!

參考資料

Sky & Study4.TW