|
這篇文章本來應該寫在上個周末, 可是臨時有事給耽誤了,上周五在MSDN上看到Effiproz DataBase發布了1.2版本. 在Effiproz以前也用過幾個嵌入式開源數據庫. 不過Effiproz DataBase是純C#編寫的. 開發者就可以將它移植到具備CLR的大多數環境中,包括.NET Compact、Mono、Windows 7以及Silverlight. 和Windows Phone . EffProze所具有的特點對于.NET程序員來說 確實是非常誘人的.但是如果對Effiproz細究發展過程還是比較曲折的過程. 當然這個過程也絕非單單對Effiporz而言的. 同時也透漏出.NET開源數據庫在演變中發展整個過程.
<1>初始 Effiproz
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程序員的跨平臺嵌入式數據庫.
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. 也正是在這個時候
SharpHSQL,這是從Java界應用非常廣泛的HSQLDB移植過來的,而HSQLDB又是從HSQL衍生過來的,但Mark Tutt做完第一個版本就停止對它更新和維護. 其實這也沒什么問題.但 Mark Tutt這個版本在應用比較突出問題是只能在內存中使用 一斷電內存消失所有的數據也就徹底丟失了. 這就涉及到SharpHSQL無法由內存中數據寫入硬盤上文件進行數據持久化.
但是轉機出現在Mark Tutt之后,Andresv接過了SharpHSQL,并讓它成功地讓數據保存到文件,于是乎真正意義上第一個純.NET版本數據庫終于出現了. 但是可悲的Andrew仿佛得到前輩MarkTutt的真傳, 在第一個版本推出后Andresv就停止了對SharpHSQL進行維護和更新. 以至目前Java的HSQLDB發展的熱火朝天.而SharpHSQL還像一個弱女子一樣在.NET中亂撞 弱不禁風.
在SharpHSQL短暫停滯后.關于.NET開源數據庫呼聲也漸漸沉寂下來. 也恰巧在這時出現以令人眼前一亮的
Minosse Relational DataBase System[MRDS]一個大型的純C#開源數據庫系統. 不是一個單一的數據引擎.而是一個數據管理系統. 但是對>NET開源數據庫而言 這樣好景并不長.可悲的是 Mionsse最終頁難逃開源的厄運, 在曇花一現喜悅之后,便就失去繼續開發的動力. Mionsse最終夭折.開源中.NET數據庫呼聲再次跌入低潮. 直至今年推出的:Effiproz. 才漸漸發生扭轉.
如上整個歷程可謂是.NET開源數據庫發展很曲折的一個過程. Effiporz出現在一定程度上打破這樣的局面.
寫到這里我們大概了解.NET開源數據庫.發展的整個過程. 那么日常開發中雖然.NET平臺開源的數據庫選擇遠遠比不上Java平臺開源數據庫在數量和質量上的優勢. [Java開源數據庫清單] 但相對而言 還有不少開源或免費的數據庫程序可供.NET應用程序使用.
<1>SQlite從2000年出來到現在已經歷經多個版本變革. 同時也在.NET開源中使用比較多開源數據庫之一.。.NET程序可以使用來自phxsoftware的
System.Data.SQLite,此外常用的還有
sqlite-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權限..[很冷門 不常用] 如果有興趣可以看看
<4>要說一下DeveelDB,基本和Effiporz發布時間前后先不長,它的開發語言是C#基于.NET平臺.DeveelDB 是一個采用 .NET 開發的 SQL 數據庫管理系統,實現了 SQL-99 規范,支持包括事務處理、觸發器、存儲過程和函數,發布在google code上:Google code_DeveelDB 當時當然免費使用還有: VistaDB、SQL Server CE、SQL Server Express 等常用.
<3>Effiporz展望
EffiProz的作者
Irantha Suwandarathna 在一次采訪中透露下一個版本中.Effiporz將支持移動平臺[我會在后面演示]. 此外,EffiProz還支持Entity Framework,下一版本(1.3)將支持MonoTouch。對MonoDroid的支持也在計劃當中. 我會在后面逐篇幅介紹Effiporz多個方面使用. 以及于SQlExpress和SQLite進行使用技巧上比對.
參考資料:
Wiki Effiporz [Wiki百科上關于所有開源數據庫小結 非常全面 可供參考]
it知識庫:由Effiproz DataBase來看.NET開源數據庫發展,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。