一、新增MobileService項目
1、建立一個Win10項目,命名為MobileServiceDemo。在解決方案下,新增一個MobileService項目。
2、為了友善調試,修改下解決方案的屬性,将啟動項目設定為“目前標明内容”
3、測試API
運作這個MobileService項目,VS會自動打開本地的IIS Server來host目前的用戶端項目,運作結果如圖。這個http://localhost:1827/ 就是通路目前Service的入口,1827是端口号,後續需要用到。
點選try it out,可以看到目前這個Mobile Service支援的API清單
接着測試一下API,
點選“POST tables/TodoItem”,然後點選“try this out”,在Sample中修改要插入的項,最後點選Send将資料插入資料庫。操作成功會傳回一個狀态碼
回到上一頁面,選擇“GET tables/TodoItem”,同樣點選“try this out”,然後send,就可以檢視表格TodoItem中的資料項,包括前面插入的
4、檢視TodoItem表
在VS中,在菜單中選擇“視圖”->“伺服器資料總管”,在“伺服器資料總管”的面闆中選擇“資料連接配接”就可以找到我們的TodoItem表(還沒弄懂為什麼是TodoItems),其中text和complete字段是我們TodoItem類中定義的,其他是EntityData增加的,這樣我們就檢視和更新表格定義和資料了。
二、MobileService項目結構簡要分析
觀察這個項目的目錄結果,如果做過ASP.NET MVC 的開發,會發現整個項目結果和ASP.NET MVC十分相似,實際上這就是一個簡化版的MVC項目。下面對幾個檔案做簡要說明。因為我也是初學,是以隻能做簡要分析,需要深入解析還請查閱其他資料。
1、DataObjects檔案夾下是TodoItem類,繼承了EntityData,在EntityData按F12導航到定義,可以看到許多屬性,友善後續的工程開發,關于EntityData這裡不做太多闡述,因為我也不是太懂23333...
public class TodoItem : EntityData
{
public string Text { get; set; }
public bool Complete { get; set; }
}
2、Controllers下是TodoItemController類,繼承了TableController<TodoItem>,傳入的TodoItem表示目前這個Controller是操作的TodoItem表。在初始化函數Initialize中,new了一個EntityDomainManager,這個類的作用是為了更好的擴充性,使項目支援不同的DataSource,如sqlDatabase、Storage、Table、Blob、Mongodb等
對于各種Custom API的實作,都可以在目前檔案夾下新增Controller來實作
三、釋出
如果對MobileService項目的操作已經完成,我們就可以将這個項目Publish到微軟Azure上。(當然你要有一個Azure賬号)
這裡做個說明,如果窮屌絲沒有Azure賬号怎麼辦?兩種辦法,一直是找微軟中國的Azure版本,不知道那個世紀互聯營運的一進制試用還有沒有;另一種就是暫時不用遠端的Azure,用本地的“Azure”,實際上就是不做這個釋出的操作,直接host在本地。文章後面的Demo部分會有講解。别誤會,我也是窮屌絲,隻不過我有微軟送的MSDN訂閱,是以才有Azure賬戶的...
1、在項目名稱上右鍵選擇“釋出”,選擇釋出目标。如果選擇導入,就要導入一個跟你的Azure賬号對應的配置檔案,這個可以在Azure的Portal面闆中找到。具體就是找到你要更新的MobileService,然後進入儀表盤,就可以找到“下載下傳釋出配置檔案”的操作。
選擇“Microsoft Azure移動服務”,就可以直接在Azure上新增或更新移動服務。如果在清單中選擇一項,那做的就是更新操作,也可以建立,建立的操作與在Azure的Portal上操作基本一樣。
然後後續的步驟都比較簡單,有些項如果不熟悉的可以保持預設。在連接配接标簽下的Destination URL就是之後通路這個Service的URL
釋出成功後,通路這個URL,再次選擇try it out,就會要求你輸入相應的賬戶密碼,隻要輸入密碼就可以登陸了。密鑰可以Azure的Portal面闆中對應移動服務的“管理密鑰”下檢視
如果要做遠端調試,可以通過如下操作
在“伺服器資料總管”面闆中找到對應的移動服務,右鍵選擇“附加調試程式”就可以。忘了一點!前面釋出的時候必須選擇Debug版本才能支援遠端調試。另外,遠端調試好像特别的卡,做好心理準備。
四、Win10 Demo
既然是一個MobileService,就應該通過用戶端對資料進行管理和操作,而不是在Web中操作,是以前面的部分都可以算是一個準備工作吧。
下面來講解如何在Win10 應用中操作這些資料。
在第一步中我們已經建立了一個MobileServiceDemo的Win10項目,現在就來修改這個項目。
1、在項目名稱上右鍵選擇“管理Nuget程式包”,搜尋“WindowsAzure.MobileServices”然後安裝。
2、打開App.xaml.cs檔案,新增一個MobileServiceClient類
如果你要連接配接的是本地的MobileService,則添加下面的代碼。這裡的1827就是前面提到的端口号。提示:如果做的是本地操作,記得把MobileService服務運作起來。
public static MobileServiceClient MobileService = new MobileServiceClient("http://localhost:1827");
如果你要連接配接的是遠端Azure伺服器上的,就新增下面的代碼。這裡的****就是管理通路移動服務需要的密鑰
public static MobileServiceClient MobileService = new MobileServiceClient("https://mspmonthreport.azure-mobile.net/","********************");
3、新增TodoItem類
public class TodoItem
{
public string Id { get; set; }
[JsonProperty(PropertyName = "text")]
public string Text { get; set; }
[JsonProperty(PropertyName = "complete")]
public bool Complete { get; set; }
}
4、修改MainPage.xaml頁面,新增一個TextBox和一個Button
<StackPanel>
<TextBox x:Name="txtVal"/>
<Button Content="新增" Click="btnAdd_Click"/>
</StackPanel>
5、新增btnAdd_Click事件
private async void btnAdd_Click(object sender, RoutedEventArgs e)
{
var item = new TodoItem { Text = txtVal.Text };
await InsertItem(item);
}
private async Task InsertItem(TodoItem todoItem)
{
await todoTable.InsertAsync(todoItem);
}
其中todoTable是擷取TodoItem表
private IMobileServiceTable<TodoItem> todoTable = App.MobileService.GetTable<TodoItem>();
6、運作項目,就可以實作資料的插入了。當然這裡沒有做資料的校驗和其他更複雜的增删改查操作。但是操作都是類似,這裡不做更詳細的講解。
源碼下載下傳:https://github.com/hebecherish/MobileServiceDemo