|
這篇文章本來(lái)應(yīng)該寫在上個(gè)周末, 可是臨時(shí)有事給耽誤了,上周五在MSDN上看到Effiproz DataBase發(fā)布了1.2版本. 在Effiproz以前也用過(guò)幾個(gè)嵌入式開(kāi)源數(shù)據(jù)庫(kù). 不過(guò)Effiproz DataBase是純C#編寫的. 開(kāi)發(fā)者就可以將它移植到具備CLR的大多數(shù)環(huán)境中,包括.NET Compact、Mono、Windows 7以及Silverlight. 和Windows Phone . EffProze所具有的特點(diǎn)對(duì)于.NET程序員來(lái)說(shuō) 確實(shí)是非常誘人的.但是如果對(duì)Effiproz細(xì)究發(fā)展過(guò)程還是比較曲折的過(guò)程. 當(dāng)然這個(gè)過(guò)程也絕非單單對(duì)Effiporz而言的. 同時(shí)也透漏出.NET開(kāi)源數(shù)據(jù)庫(kù)在演變中發(fā)展整個(gè)過(guò)程.
<1>初始 Effiproz
Effiproz官方對(duì)Effiproz宣傳語(yǔ):Effiproz Embedded C# DataBase Fast Light Weight For .NET /ASP.NET/.NET CF/Silverlight /Windows Phone 7/Mono.
Effproz是一個(gè)針對(duì).NET程序員的輕量級(jí)跨平臺(tái)嵌入式數(shù)據(jù)庫(kù).如果你第一次接觸直觀了解Effproz 請(qǐng)參考
EffiProz:面向.NET程序員的跨平臺(tái)嵌入式數(shù)據(jù)庫(kù).
Effproz是一個(gè)用純C#編寫的開(kāi)源數(shù)據(jù)庫(kù),我們可以發(fā)現(xiàn)很多.NET的開(kāi)源項(xiàng)目都是從優(yōu)秀的Java項(xiàng)目移植過(guò)來(lái)的:我用得比較多像NHibernate、DotLucene(暫停開(kāi)發(fā)...)、iTextSharp、Quartz.NET等.Effproz本身是從Java的
HSQLDB 1.9/2.0移植過(guò)來(lái)的,支持獨(dú)立和嵌入兩種部署模式。帶有ADO.NET Entity Framework Provider. 其實(shí)在
SQlite 2000年出現(xiàn)時(shí) 后來(lái)演變出來(lái)一個(gè).NET版本
ADO.NET Provider for SQLite. 也正是在這個(gè)時(shí)候
Mark Tutt,寫了第一個(gè).NET數(shù)據(jù)庫(kù)(據(jù)我所知):
SharpHSQL,這是從Java界應(yīng)用非常廣泛的HSQLDB移植過(guò)來(lái)的,而HSQLDB又是從HSQL衍生過(guò)來(lái)的,但Mark Tutt做完第一個(gè)版本就停止對(duì)它更新和維護(hù). 其實(shí)這也沒(méi)什么問(wèn)題.但 Mark Tutt這個(gè)版本在應(yīng)用比較突出問(wèn)題是只能在內(nèi)存中使用 一斷電內(nèi)存消失所有的數(shù)據(jù)也就徹底丟失了. 這就涉及到SharpHSQL無(wú)法由內(nèi)存中數(shù)據(jù)寫入硬盤上文件進(jìn)行數(shù)據(jù)持久化.
但是轉(zhuǎn)機(jī)出現(xiàn)在Mark Tutt之后,Andresv接過(guò)了SharpHSQL,并讓它成功地讓數(shù)據(jù)保存到文件,于是乎真正意義上第一個(gè)純.NET版本數(shù)據(jù)庫(kù)終于出現(xiàn)了. 但是可悲的Andrew仿佛得到前輩MarkTutt的真?zhèn)? 在第一個(gè)版本推出后Andresv就停止了對(duì)SharpHSQL進(jìn)行維護(hù)和更新. 以至目前Java的HSQLDB發(fā)展的熱火朝天.而SharpHSQL還像一個(gè)弱女子一樣在.NET中亂撞 弱不禁風(fēng).
在SharpHSQL短暫停滯后.關(guān)于.NET開(kāi)源數(shù)據(jù)庫(kù)呼聲也漸漸沉寂下來(lái). 也恰巧在這時(shí)出現(xiàn)以令人眼前一亮的
Minosse Relational DataBase System[MRDS]一個(gè)大型的純C#開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng). 不是一個(gè)單一的數(shù)據(jù)引擎.而是一個(gè)數(shù)據(jù)管理系統(tǒng). 但是對(duì)>NET開(kāi)源數(shù)據(jù)庫(kù)而言 這樣好景并不長(zhǎng).可悲的是 Mionsse最終頁(yè)難逃開(kāi)源的厄運(yùn), 在曇花一現(xiàn)喜悅之后,便就失去繼續(xù)開(kāi)發(fā)的動(dòng)力. Mionsse最終夭折.開(kāi)源中.NET數(shù)據(jù)庫(kù)呼聲再次跌入低潮. 直至今年推出的:Effiproz. 才漸漸發(fā)生扭轉(zhuǎn).
如上整個(gè)歷程可謂是.NET開(kāi)源數(shù)據(jù)庫(kù)發(fā)展很曲折的一個(gè)過(guò)程. Effiporz出現(xiàn)在一定程度上打破這樣的局面.
<2>.NET開(kāi)源數(shù)據(jù)小結(jié)
寫到這里我們大概了解.NET開(kāi)源數(shù)據(jù)庫(kù).發(fā)展的整個(gè)過(guò)程. 那么日常開(kāi)發(fā)中雖然.NET平臺(tái)開(kāi)源的數(shù)據(jù)庫(kù)選擇遠(yuǎn)遠(yuǎn)比不上Java平臺(tái)開(kāi)源數(shù)據(jù)庫(kù)在數(shù)量和質(zhì)量上的優(yōu)勢(shì). [Java開(kāi)源數(shù)據(jù)庫(kù)清單] 但相對(duì)而言 還有不少開(kāi)源或免費(fèi)的數(shù)據(jù)庫(kù)程序可供.NET應(yīng)用程序使用.
<1>SQlite從2000年出來(lái)到現(xiàn)在已經(jīng)歷經(jīng)多個(gè)版本變革. 同時(shí)也在.NET開(kāi)源中使用比較多開(kāi)源數(shù)據(jù)庫(kù)之一.。.NET程序可以使用來(lái)自phxsoftware的
System.Data.SQLite,此外常用的還有
sqlite-NET都是通過(guò)P/Invoke調(diào)用C/C++的DLL實(shí)現(xiàn),而
csharp-sqlite是純C#代碼實(shí)現(xiàn)的.Sqlite運(yùn)用范圍非常廣. 諾基亞的手機(jī)操作操作系統(tǒng)塞班(Symbian)、Mozilla、Safari、Chrome和桌面應(yīng)用程序等. 當(dāng)然在國(guó)內(nèi)運(yùn)用最廣當(dāng)然是從屬移動(dòng)的短信平臺(tái)——飛信上適用.
<2>MySQl就用多說(shuō)了.都很熟悉.體積小、速度快、總體擁有成本低 尤其一點(diǎn)是開(kāi)源特點(diǎn).MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQLAB公司,在2008年1月16號(hào)被Sun公司收購(gòu),可是MySQL收購(gòu)不到1年之久, 2009年4月20日美國(guó)數(shù)據(jù)軟件巨頭Oracle就把Sun連同所屬業(yè)務(wù)收購(gòu). le.至于MySQL在收購(gòu)后應(yīng)用前景也引起爭(zhēng)議.
<3>DB4O完全原生于Java和.NET, 100% 面向?qū)ο? 拋開(kāi)對(duì)象-關(guān)系映射, 為嵌入式應(yīng)用優(yōu)化, 開(kāi)源,.db4o 可節(jié)省研發(fā)的費(fèi)用和時(shí)間 面向?qū)ο蟮臄?shù)據(jù)庫(kù),有.NET和Java兩個(gè)版本。支持C/S和Embed兩種使用模式。.NET版本程序需要Full Trust Level權(quán)限..[很冷門 不常用] 如果有興趣可以看看
DB4O和其他數(shù)據(jù)庫(kù)性能比對(duì)報(bào)告
<4>要說(shuō)一下DeveelDB,基本和Effiporz發(fā)布時(shí)間前后先不長(zhǎng),它的開(kāi)發(fā)語(yǔ)言是C#基于.NET平臺(tái).DeveelDB 是一個(gè)采用 .NET 開(kāi)發(fā)的 SQL 數(shù)據(jù)庫(kù)管理系統(tǒng),實(shí)現(xiàn)了 SQL-99 規(guī)范,支持包括事務(wù)處理、觸發(fā)器、存儲(chǔ)過(guò)程和函數(shù),發(fā)布在google code上:Google code_DeveelDB 當(dāng)時(shí)當(dāng)然免費(fèi)使用還有: VistaDB、SQL Server CE、SQL Server Express 等常用.
<3>Effiporz展望
EffiProz的作者
Irantha Suwandarathna 在一次采訪中透露下一個(gè)版本中.Effiporz將支持移動(dòng)平臺(tái)[我會(huì)在后面演示]. 此外,EffiProz還支持Entity Framework,下一版本(1.3)將支持MonoTouch。對(duì)MonoDroid的支持也在計(jì)劃當(dāng)中. 我會(huì)在后面逐篇幅介紹Effiporz多個(gè)方面使用. 以及于SQlExpress和SQLite進(jìn)行使用技巧上比對(duì).
參考資料:
Wiki Effiporz [Wiki百科上關(guān)于所有開(kāi)源數(shù)據(jù)庫(kù)小結(jié) 非常全面 可供參考]
it知識(shí)庫(kù):由Effiproz DataBase來(lái)看.NET開(kāi)源數(shù)據(jù)庫(kù)發(fā)展,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。