色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

多樣化實(shí)現(xiàn)Windows Phone 7本地?cái)?shù)據(jù)庫(kù)訪問(wèn)<下>

  在上一篇多樣化實(shí)現(xiàn)Windows Phone 7本地?cái)?shù)據(jù)庫(kù)訪問(wèn)<上>采用兩種方式Effproze和SQlite來(lái)驗(yàn)證Window Phone 7訪問(wèn)本地?cái)?shù)據(jù)庫(kù).驗(yàn)證結(jié)論是可行的.  得到圓友及時(shí)反饋當(dāng)然也發(fā)現(xiàn)一些細(xì)節(jié)上問(wèn)題. 例如Effproze利用文件/內(nèi)存模式 找不到指定的硬盤(pán)上數(shù)據(jù)庫(kù)文件. Sqlite中支持Windows Phone 7 API沒(méi)有相關(guān)文檔. 以及SQlite創(chuàng)建后類(lèi)似Effproze找不到指定存儲(chǔ)文件等?類(lèi)似這些問(wèn)題 正在尋找和驗(yàn)證相關(guān)解決方案 稍后我會(huì)專(zhuān)門(mén)整理出一篇文章來(lái)詳細(xì)說(shuō)明. 本篇將繼續(xù)驗(yàn)證Windows Phone 7訪問(wèn)本地?cái)?shù)據(jù)庫(kù)其他方式-Windows  Phone DB

  <1>初識(shí)Windows Phone DB

  其實(shí)看到Windows Phone DB[以下簡(jiǎn)稱(chēng)WPDB]很偶然機(jī)會(huì).當(dāng)時(shí)我正在研究另外一家英國(guó)移動(dòng)軟件開(kāi)發(fā)集成商自己做的開(kāi)源數(shù)據(jù)庫(kù)方式實(shí)現(xiàn)對(duì)WP7本地?cái)?shù)據(jù)庫(kù)訪問(wèn).[詳細(xì)見(jiàn)Windows Phone 7 gets open source database]時(shí)碰見(jiàn)WPDB的. 一個(gè)群組UK-Grouper 的DVP向我推薦Windows  Phone DB.

  WPDB是利用Silverlight的獨(dú)立存儲(chǔ)[IsolatedStorage]機(jī)制為WP7訪問(wèn)數(shù)據(jù)庫(kù)加以支持. 目前的版本只是針對(duì)開(kāi)發(fā)人員. 使用簡(jiǎn)單. 開(kāi)源. 其實(shí)它內(nèi)部存儲(chǔ)數(shù)據(jù)的實(shí)質(zhì)就是利用IsolatedStorage. Silverlight的IsolatedStorage是一種類(lèi)似Cookie的靜態(tài)存儲(chǔ)機(jī)制.可以將一些基本類(lèi)型(String,Int)的信息甚至是自定義類(lèi)型序列化后的靜態(tài)存儲(chǔ)于客戶(hù)端文件中.

  獨(dú)立存儲(chǔ)[IsolatedStorage]是一個(gè)局部信任機(jī)制. 什么叫局部? 當(dāng)你創(chuàng)建一個(gè)Silverlight應(yīng)用程序時(shí)會(huì)在硬盤(pán)上創(chuàng)建相應(yīng)獨(dú)立的存儲(chǔ)區(qū)域.  這里面獨(dú)立是相對(duì)于不同Silverlight Project而言的. 當(dāng)然如果應(yīng)用程序中存在多個(gè)程序集[Project],那么存儲(chǔ)空間在這多個(gè)程序集之間是共享的.

  Silverlight限制了客戶(hù)端Silverlight應(yīng)用程序不能訪問(wèn)全部的文件系統(tǒng),只能通過(guò)獨(dú)立存儲(chǔ)機(jī)制提供虛擬文件系統(tǒng),訪問(wèn)數(shù)據(jù)流對(duì)象. 這樣一來(lái)類(lèi)似我們Application 有了自己一塊硬盤(pán)空間一樣.獨(dú)立存儲(chǔ)空間內(nèi)就可以放置任意類(lèi)型的文件. XML /.txt等. 4版本中空間大小也是可以控制的. 更多資源請(qǐng)參考.Introduce IsolatedStorage MSDN  由此也能看出Silverlight也涵蓋WP7日常開(kāi)發(fā) 當(dāng)然還有Silverlight能做還不止這些 如下圖:Silverlight 涵蓋圖。

  <2>Windows Phone DB給我們帶來(lái)什么?

  先不著急回答這個(gè)問(wèn)題.WPDB是開(kāi)源的  你在可以在CodePlex上下載它相關(guān)源碼:DownLoad on the CodePlex: Windows Phone DB[源碼下載]

  下載完源碼用VS工具打開(kāi).預(yù)覽整個(gè)Solutions:

  Solutions中包含兩個(gè)項(xiàng)目: 第一個(gè)為WPDB的源碼項(xiàng)目 下面是對(duì)WPDB測(cè)試項(xiàng)目. 二者關(guān)系是測(cè)試項(xiàng)目對(duì)源碼項(xiàng)目采取了引用. 先不管那么多運(yùn)行起來(lái)看看效果:

  頁(yè)面只有一個(gè)Run tests按鈕. 點(diǎn)擊后運(yùn)行提示Test Completed 測(cè)試完成 我們來(lái)看Button按鈕下事件下代碼的調(diào)用:[注釋是自己添加的]

private void RunTests_Click(object sender, RoutedEventArgs e)
{
//獲取測(cè)試項(xiàng)
foreach (var item in ResultPanel.Children)
{
if (item is TextBlock)
{
((TextBlock)item).Foreground
= new SolidColorBrush(Colors.White);
}
}
CreateDBTest();
//創(chuàng)建DataBase
CreateTableTest();//Create Table
SaveTest();//Save Config
SaveSingleTableTest();//保存單表
OpenTest();//打開(kāi)數(shù)據(jù)庫(kù)
AddRangeTest();//添加一個(gè)范圍數(shù)據(jù)[20條]
RemoveRangeTest();
RemoveRangeConditionTest();
SaveFailsTest();
//保存記錄
SaveWithEncryptionTest();//保存加密后數(shù)據(jù)-[看來(lái)還考慮加密]
OpenWithEncryptionTest();//打開(kāi)機(jī)密數(shù)據(jù)
SelectConditionTest();
LazyLoadingTest();
//還有延遲加載-[很意外啊]
AddRowToExistingTableTest();//添加一行數(shù)據(jù)庫(kù)
AddRowToExistingTableTestLazyLoad();
DatabaseExists();
//關(guān)閉數(shù)據(jù)庫(kù)鏈接

//測(cè)試完成提示
MessageBox.Show("Test completed", "Silverlight Phone Database", MessageBoxButton.OK);
}

it知識(shí)庫(kù)多樣化實(shí)現(xiàn)Windows Phone 7本地?cái)?shù)據(jù)庫(kù)訪問(wèn)&amp;lt;下&amp;gt;,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 新乡市| 石楼县| 佛山市| 于田县| 临泽县| 乡城县| 宁晋县| 沧州市| 双辽市| 海林市| 五台县| 根河市| 青浦区| 盐池县| 洪洞县| 台北市| 三穗县| 江陵县| 财经| 云安县| 囊谦县| 嘉荫县| 洱源县| 黔东| 东平县| 自治县| 白朗县| 隆化县| 永安市| 从化市| 随州市| 牟定县| 察隅县| 安阳市| 鄂尔多斯市| 左权县| 巍山| 青阳县| 米林县| 合肥市| 敦煌市|