前言
從之前的兩遍文章可以看出ORM的現狀。
首先我們先談下一個我們希望的ORM框架是什么樣子的:
- 基於ORM原理其性能一定不如手寫SQL,但是可以有一定程度損失這就像C++和NET/JAVA的關系一樣,所以性能不能太差。
- CLR模型可以和數據庫對象結構高度一致,在大型項目中大家應該有過滿世界找某表在哪里有用過,某個字段是否可以刪除,某個字段是否可以改名的經歷。手寫SQL的代碼對項目重構是個極大的挑戰。
- ORM模型可以幫助維護數據庫結構版本,相信有不少項目團隊都需要手寫數據庫表的升級腳本。
- 可以用LINQ表達出大部分的業務增刪改查,當然不可能全部做到,即使是手寫SQL也有做不到的(例如大數據統計分析),我覺的可以有10%以內的復雜SQL手寫。
可能許多開發者都會有找過讓自己比較滿意的ORM框架,我也是其中之一,在漫長的信息系統設計及開發工作中,一直希望能有一個功能強大性能不錯的ORM框架。一直都很關注 EntityFramework 的版本升級,不過后來也很失望,它的發展太慢了。無論是EntityFramework 還是EntityFrameworkCore 都包含了微軟的商業競爭的成分。當然期間也嘗試過各種其他的ORM框架,都有各種各樣的不足,這里就不一一列舉了。
新選擇
在各種糾結中於是誕生了這個新的ORM框架,我取名叫【Mego】,之所以叫這個名稱是由於它包含了本框架的運作原理如下所示,取各個單詞的首字母而得:
Metadata -> Expression -> Generate -> Object
元數據 -> 表達式 -> 生成 -> 數據對象
對於這個框架的定位是要在 功能和性能 兩個方面取代 EntityFramework 和 EntityFrameworkCore 。性能在第一篇博客中已經說明了目前已經超過了它們兩個,功能上后續會寫出這三個框架的功能對比。
簡介
Mego是一個高性能且功能強大的ORM框架,它基於 EntityFramework 和 EntityFrameworkCore 這兩個著名的ORM框架吸收了其中優秀理念,借鑒了其中的許多的功能設計,完全支持LINQ寫法,多數據庫支持,支持NET3.5到目前最新NET及NETCore所有包含分布式事務的NET框架。為了讓初學者易於上手及使用,我們最外層的API大部分與 EntityFramework 相同,如果有EF使用經驗的人應該會很快上手。
我已經在Github上開源了Mego框架的源代碼,歡迎大家給出改進意見。
支持NET版本
本框架支持下列NET版本及后續版本。
- .NETFramework, Version = v3.5
- .NETFramework, Version = v4.0
- .NETFramework, Version = v4.5
- .NETStandard, Version = 2.0
Mego 開發文檔
Mego Development documents
聲明:由於之前寫的比較匆忙,因此重新整理,Mego開發文檔已統一移動到上面這個鏈接中。
