由Effiproz DataBase來看.NET開源數據庫發展

這篇文章原本應該寫在上個週末, 但是臨時有事給耽誤了,上週五在MSDN上看到Effiproz DataBase發佈了1.2版本. 在Effiproz之前也用過幾個嵌入式開源數據庫. 不過Effiproz DataBase是純C#編寫的. 開發者就能夠將它移植到具有CLR的大多數環境中,包括.NET Compact、Mono、Windows 7以及Silverlight. 和Windows Phone . EffProze所具備的特色對於.NET程序員來講 確實是很是誘人的.可是若是對Effiproz細究發展過程仍是比較曲折的過程. 固然這個過程也絕非單單對Effiporz而言的. 同時也透漏出.NET開源數據庫在演變中發展整個過程.php

<1>初始 Effiprozjava

Effiproz官方對Effiproz宣傳語:Effiproz Embedded C# DataBase Fast Light Weight  For .NEt  /Asp.Net/.NET CF/Silverlight /Windows Phone 7/Mono.程序員

Effproz是一個針對.NET程序員的輕量級跨平臺嵌入式數據庫.若是你第一次接觸直觀瞭解Effproz 請參考EffiProz:面向.NET程序員的跨平臺嵌入式數據庫.sql

Effproz是一個用純C#編寫的開源數據庫,咱們能夠發現不少.NET的開源項目都是從優秀的Java項目移植過來的:我用得比較多像NHibernate、DotLucene(暫停開發...)、iTextSharp、Quartz.NET等.Effproz自己是從java的HSQLDB 1.9/2.0移植過來的,支持獨立和嵌入兩種部署模式。帶有ADO.net Entity Framework Provider. 其實在SQlite 2000年出現時 後來演變出來一個.NEt版本ADO.NET Provider for SQLite. 也正是在這個時候Mark Tutt,寫了第一個.NET數據庫(據我所知):SharpHSQL,這是從Java界應用很是普遍的HSQLDB移植過來的,而HSQLDB又是從HSQL衍生過來的,但Mark Tutt作完第一個版本就中止對它更新和維護. 其實這也沒什麼問題.但 Mark Tutt這個版本在應用比較突出問題是隻能在內存中使用 一斷電內存消失全部的數據也就完全丟失了. 這就涉及到SharpHSQL沒法由內存中數據寫入硬盤上文件進行數據持久化.數據庫

可是起色出如今Mark Tutt以後,Andresv接過了SharpHSQL,並讓它成功地讓數據保存到文件,因而乎真正意義上第一個純.NET版本數據庫終於出現了. 可是可悲的Andrew彷彿獲得前輩MarkTutt的真傳, 在第一個版本推出後Andresv就中止了對SharpHSQL進行維護和更新. 以致目前Java的HSQLDB發展的熱火朝天.而SharpHSQL還像一個弱女子同樣在.NET中亂撞 弱不由風.express

在SharpHSQL短暫停滯後.關於.NET開源數據庫呼聲也漸漸沉寂下來.  也恰巧在這時出現以使人眼前一亮的Minosse Relational DataBase System[MRDS]一個大型的純C#開源數據庫系統. 不是一個單一的數據引擎.而是一個數據管理系統. 可是對>NET開源數據庫而言 這樣好景並不長.可悲的是 Mionsse最終頁難逃開源的厄運, 在曇花一現喜悅以後,便就失去繼續開發的動力. Mionsse最終夭折.開源中.NET數據庫呼聲再次跌入低潮. 直至今年推出的:Effiproz. 才漸漸發生扭轉.ide

如上整個歷程可謂是.NET開源數據庫發展很曲折的一個過程. Effiporz出如今必定程度上打破這樣的局面.函數

<2>.NET開源數據小結性能

寫到這裏咱們大概瞭解.NET開源數據庫.發展的整個過程. 那麼平常開發中雖然.NEt平臺開源的數據庫選擇遠遠比不上Java平臺開源數據庫在數量和質量上的優點. [Java開源數據庫清單] 但相對而言 還有很多開源或免費的數據庫程序可供.Net應用程序使用.優化

<1>SQlite從2000年出來到如今已經歷經多個版本變革. 同時也在.NET開源中使用比較多開源數據庫之一.。.Net程序可使用來自phxsoftware的System.Data.SQLite,此外經常使用的還有sqlite-net,System.Data.SQLitesqlite-net都是經過P/Invoke調用C/C++的DLL實現,而csharp-sqlite是純C#代碼實現的.Sqlite運用範圍很是廣. 諾基亞的手機操做操做系統塞班(Symbian)、Mozilla、Safari、Chrome和桌面應用程序等. 固然在國內運用最廣固然是從屬移動的短信平臺——飛信上適用.

<2>MySQl就用多說了.都很熟悉.體積小、速度快、整體擁有成本低 尤爲一點是開源特色.MySQL是一個小型關係型數據庫管理系統,開發者爲瑞典MySQLAB公司,在2008年1月16號被Sun公司收購,但是MySQL收購不到1年之久, 2009年4月20日美國數據軟件巨頭Oracle就把Sun連同所屬業務收購. le.至於MySQL在收購後應用前景也引發爭議.

<3>DB4O徹底原生於Java和.NET, 100% 面向對象, 拋開對象-關係映射, 爲嵌入式應用優化, 開源,.db4o 可節省研發的費用和時間 面向對象的數據庫,有.Net和Java兩個版本。支持C/S和Embed兩種使用模式。.Net版本程序須要Full Trust Level權限..[很冷門 不經常使用] 若是有興趣能夠看看DB4O和其餘數據庫性能比對報告 

<4>要說一下DeveelDB,基本和Effiporz發佈時間先後先不長,它的開發語言是C#基於.NET平臺.DeveelDB 是一個採用 .NET 開發的 SQL 數據庫管理系統,實現了 SQL-99 規範,支持包括事務處理、觸發器、存儲過程和函數,發佈在google code上:Google code_DeveelDB 

時固然無償使用還有VistaDBSQL Server CESQL Server Express 等經常使用. 

<3>Effiporz展望

EffiProz的做者Irantha Suwandarathna 在一次採訪中透露下一個版本中.Effiporz將支持移動平臺[我會在後面演示]. 此外,EffiProz還支持Entity Framework,下一版本(1.3)將支持MonoTouch。對MonoDroid的支持也在計劃當中. 我會在後面逐篇幅介紹Effiporz多個方面使用. 以及於SQlExpress和SQLite進行使用技巧上比對.

參考資料:

OpenSource DAtaBase in C#

Wiki Effiporz [Wiki百科上關於全部開源數據庫小結 很是全面 可供參考]

DBO4 Express Page

Java開源數據分類列表

開源中國社區-.NET開源數據庫

相關文章
相關標籤/搜索