文章目錄
- 一、儲存方式概覽
- 二、詳細介紹
- 三、各種方式的適用場合
討論範圍:介於WindowsPhone8的SDK發布在即,出於文章時效的考慮,需要說明本文只討論Windows Phone 7 下的資料存放區方式,但我想內容同樣適用於WindowsPhone8,只是WindowsPhone8會帶來新的資料存放區方式。
一、儲存方式概覽
- 本地項目內檔案:被編譯成資源檔(Resource)或內容(Content)。
- 隔離儲存區 (Isolated Storage)(Isolated Storage)
- 本機資料庫
- Web Service/ WCF
- Cloud/ Azure
二、詳細介紹
1、本地項目內檔案
可以通過設定檔案的產生方式(BuildAction)將檔案設定成資源(Resource)被編譯到二進位代碼裡,優點是隨時都能用,但是可能導致啟動時載入過慢。在代碼中,可以用Application.GetResourceStream來讀取。一般用這幾種場合:不考慮程式的啟動時間;不用更新資源檔(因為編譯進項目了就別指望了);減少程式的依賴項。
可以通過設定檔案的產生方式(BuildAction)將檔案設定成內容(Content)被編譯進專案檔,但不在二進位代碼裡,優點是效率高,能被多個程式包共用。在代碼中,可以用XElement.Load來讀取。一般用這幾種場合:考慮程式的啟動時間;需要更新資源檔(因為編譯進項目了就別指望了)。
2、隔離儲存區 (Isolated Storage)
如果要儲存使用者的資料,可以用隔離儲存區 (Isolated Storage),在Silverlight和WindowsPhon裡都沒有直接儲存系統檔案的介面,但是可以用隔離儲存區 (Isolated Storage)將儲存在使用者的裝置上。可以用索引值對的方式(IsolatedStorageSettings類),也可以用檔案的方式(IsolatedStorageFile類)
3、本機資料庫
SQLCE:自己家的便攜資料庫格式,(7.1才有的)
SQLITE:第三方的便攜資料庫格式。
通過本人實際使用的感覺發現對多線程的讀寫處理都不怎麼好,很容易異常,當然也可能我對其特性理解不夠深入。
4、Web Service
可能有以下幾種格式:
REST,POX,JSON,OData,SOAP。
而存取方式也有以下幾種方式:
Http類:可以直接用HttpWebRequest或WebClient類來調用WebService,通過HTTP協議向WebService發送請求,得到xml或json格式的返回資料。
引用WCF服務:WCF其實是一個WebService架構,支援多種協議(包括http,tcp),支援多種格式(soap,xml,atom)
使用OData用戶端: 其實也叫WCF資料服務,以前叫ADO.NET資料服務,一個以RSET形式存取現有資料的架構。WCF資料服務提供OData格式的資料,比如WindowsPhone與SharePoint互動時,SharePoint提供WCF資料服務,WCF資料服務處理所有http互動,序列化和其他的任務,意思是說App能直接通過http協議對遠端資料執行増刪改查,哪怕跨域也行。OData for WindowsPhone用戶端可能在codeplex上找到
5、Azure
也可以用Windows Azure來存取資料,但是免費的服務是有限制的,Azure在雲端服務器上提供持久化的資料存放區,操作方式和WebService差不多。
三、各種方式的適用場合
編譯成資源檔 |
將唯讀資料嵌入二進位程式 |
編譯成內容檔案 |
不用重新編譯就能更新資料 |
隔離儲存區 (Isolated Storage) |
存取使用者資訊 |
http類 |
用第三方的REST或POX服務存取資料 |
http類 |
擷取RSS訂閱 |
用代理類的WCF |
從SOAP服務儲存資料 |
WCF |
從Silverlight中將現有的類發布成服務 |
OData |
存取Odata資料 |
Azure |
儲存大量資料 |
|
|