周輝 v趙峰 馬亮
摘要:介紹Windows UWP和SQLite的特點和體系結(jié)構(gòu)。在Windows 10上搭建UWP App開發(fā)環(huán)境,闡述SQLite在UWP平臺上的應(yīng)用方法,利用SQLite for Universal Windows Platform和SQLite.Net實現(xiàn)SQLite數(shù)據(jù)庫的增加、刪除、查詢等操作。
關(guān)鍵詞關(guān)鍵詞:Windows 10;UWP;SQLite
DOIDOI:10.11907/rjdk.161207
中圖分類號:TP319文獻(xiàn)標(biāo)識碼:A文章編號文章編號:16727800(2016)007013102
0引言
2015年7月29日,美國微軟公司正式發(fā)布了Windows 10操作系統(tǒng),該系統(tǒng)是新一代跨平臺及設(shè)備應(yīng)用的操作系統(tǒng)。其設(shè)計目標(biāo)是統(tǒng)一整個Windows產(chǎn)品系列的操作系統(tǒng),包括個人電腦、平板電腦、智能手機(jī)上的嵌入式系統(tǒng)、Xbox One及Surface和Microsoft HoloLens等。在Windows平臺下開發(fā)小型數(shù)據(jù)庫應(yīng)用或其它軟件時,一般會采用MS Access、MYSQL等數(shù)據(jù)庫。實際上應(yīng)用軟件只使用了數(shù)據(jù)庫產(chǎn)品很少的特性,絕大多數(shù)功能沒有被利用,浪費了很多系統(tǒng)資源;通常這些數(shù)據(jù)庫都要比應(yīng)用軟件本身大很多,使得軟件系統(tǒng)變得體積龐大;同時,當(dāng)軟件發(fā)布部署時還要考慮各種支持文件的版本,配置也較為繁瑣。
而嵌入式數(shù)據(jù)庫SQLite可解決此類問題。SQLite是D.Richard Hipp創(chuàng)建的開源項目。SQLite是遵守ACID的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。與許多其它數(shù)據(jù)庫管理系統(tǒng)不同,SQLite不是一個客戶端/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫引擎,而是被集成在用戶程序中。SQLite具備系統(tǒng)開銷小、效率高,跨平臺、開源、易移植和擁有處理事務(wù)能力等優(yōu)勢[1,2]。這些優(yōu)點使得用戶越來越多,Google在它開發(fā)的Google Gears、Android甚至Chrome中都用到了SQLite [3,4]。
1通用Windows平臺(UWP)
通用Windows平臺Universal Windows Platform(UWP)是由微軟創(chuàng)建并首次隨Windows 10推出的統(tǒng)一平臺應(yīng)用架構(gòu)。Windows 10將為所有硬件提供一個統(tǒng)一的平臺,支持從物聯(lián)網(wǎng)設(shè)備到全球企業(yè)數(shù)據(jù)中心服務(wù)器等廣泛的設(shè)備類型(見圖1)。UWP幫助用戶開發(fā)應(yīng)用程序時,無需重新編寫代碼就可以讓這些應(yīng)用程序能在Windows10的各個版本上運行。UWP API是用C++實現(xiàn)的,但支持C++,VB.NET,C#和JavaScript調(diào)用。UWP最早由Windows Server 2012和Windows 8的Windows Runtime發(fā)展演進(jìn)來的[5]。
UWP 應(yīng)用(UWP App)是基于UWP平臺生成的Windows應(yīng)用程序。依賴于UWP的強(qiáng)大功能,UWP App可實現(xiàn)同樣的代碼運行在不同的設(shè)備上?;赪indows 10和Visual Studio 2015,用戶可輕松開發(fā)UWP App。UWP 應(yīng)用具有以下特點[6,7]:
(1)所有 Windows 設(shè)備系列均使用相同的通用UWP核心API。如果應(yīng)用僅使用核心 API,它將可在任何Windows 10設(shè)備–PC、平板電腦、手機(jī)上運行。
(2)自適應(yīng)控件和輸入。用戶界面UI元素使用有效像素,因此它們會基于設(shè)備上可用的屏幕像素數(shù)自動自行調(diào)整,并且能正確處理多種輸入類型(如鍵盤、鼠標(biāo)、觸摸、筆和Xbox One控制器)。
2SQLite在UWP App開發(fā)中的應(yīng)用
本文開發(fā)的UWP App主要功能是:創(chuàng)建SQLite數(shù)據(jù)庫,對數(shù)據(jù)庫表進(jìn)行初始化,對數(shù)據(jù)表進(jìn)行添加、刪除、修改、查詢等操作。本文使用的開發(fā)環(huán)境如下:操作系統(tǒng):Windows 10專業(yè)版;開發(fā)平臺:Microsoft Visual Studio 2015。
2.1開發(fā)環(huán)境配置
(1)SQLite for Universal Windows Platform擴(kuò)展。SQLite for Universal Windows Platform擴(kuò)展是由SQLite官方開發(fā)的針對UWP平臺無服務(wù)器、零配置、支持事務(wù)處理的數(shù)據(jù)庫引擎。該擴(kuò)展可從SQLite官網(wǎng)下載,然后根據(jù)提示自動安裝;或者使用Visual Studio菜單欄中工具/擴(kuò)展與更新工具來查詢和安裝。安裝完成后,還需要在工程中添加對SQLite for Universal Windows Platform的引用。
(2)添加 SQLite.Net引用。在Visual Studio中使用管理NuGet程序包管理工具安裝SQLite.Net-PCL。SQLite.Net是一個開源的、允許.NET和Mono應(yīng)用程序訪問SQLite數(shù)據(jù)庫的對象關(guān)系映射(Object Relational Mapping,簡稱ORM)框架。ORM是一種程序設(shè)計技術(shù),用于實現(xiàn)面向?qū)ο缶幊陶Z言中不同類型系統(tǒng)的數(shù)據(jù)之間的轉(zhuǎn)換。正因為有了SQLite.NET這樣強(qiáng)大的ORM框架,用戶無需編寫復(fù)雜的代碼就可以輕松操作SQLite數(shù)據(jù)庫表。
2.2數(shù)據(jù)庫操作實現(xiàn)
(1)創(chuàng)建數(shù)據(jù)庫、表。本文在UWP平臺上利用SQLite開發(fā)跨斷層測距場地管理軟件,其中有關(guān)場地數(shù)據(jù)的表結(jié)構(gòu)如表1所示。
2.3應(yīng)用實例
該程序?qū)崿F(xiàn)了對跨斷層場地數(shù)據(jù)的簡單管理,在Win10桌面系統(tǒng)中運行的效果如圖2所示。同時,程序在UWP模擬器環(huán)境中能夠正常運行,并且擁有與Win10桌面系統(tǒng)相同的用戶體驗。
3結(jié)語
在UWP App程序開發(fā)中,由于SQLite零配置等特性,使得SQLite十分適合UWP App能在多個平臺上運行的特點。無需數(shù)據(jù)庫環(huán)境配置,直接運行應(yīng)用程序就可