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