福利到!Rafy(原OEA)領域實體框架 2.22.2067 釋出!

BloodyAngel發表於2013-10-08

距離“上次框架完整發布”已經過去了一年半了,應群中的朋友要求,決定在國慶放假之際,把最新的框架釋出出來,並把幫助文件整理出來,這樣可以方便大家快速上手。

 

 

釋出內容


注意,本次釋出,只包含 Rafy 框架中的領域實體框架及相關文件。不包含“介面自動生成”等其它元件。

安裝新的釋出包:《使用 NuGet 下載最新的 Rafy 框架及文件》。

網頁版使用者手冊(實時更新):《http://zgynhqf.github.io/Rafy》。

老版本及一些輔助工具的釋出包地址:http://pan.baidu.com/s/1ntHlFIh

image

QQ群:群號 175227630,Rafy框架 技術交流。QQ 群方便大家日常對 Rafy 技術交流,歡迎加入。

Rafy 框架小組(論壇):http://home.cnblogs.com/group/Rafy/。小組可討論 Rafy 相關的任何話題,提出的問題會被優先解決。在使用過程中,有任何心得體會,也可釋出到本小組。字數不限,文體不限,分享就是貢獻,哈。:) )。

更名:框架名字變更為 Rafy [rɑ:fi]。

 

框架釋出記錄


200909:釋出了 1.0 版本,《資訊系統開發平臺openexpressapp 1.0釋出》。

201104:釋出快速開發視訊:《OEA 框架演示 - 快過原型的開發》。

201203:釋出了 2.9 版本,《OEA框架 2.9 Pre-Alpha 原始碼公佈》,並建立了 QQ 技術交流群,群號:175227630。

201310:更名為 Rafy、釋出領域實體框架 2.22.2067 版本、幫助文件 1.0、建立“Rafy 框架”小組。

201310:釋出最新示例:《示例:使用 Rafy 領域實體框架轉換傳統三層應用程式》。

201412:RafySDK 釋出到 VS Extension Galler、Rafy程式集釋出到 NuGet 中:《使用 NuGet 下載最新的 Rafy 框架及文件》。

201501:Rafy 原始碼釋出到 GitHub.com上:《釋出 Rafy 原始碼到 GitHub》。

201508:釋出最新的 Rafy 框架學習培訓視訊:《Rafy 領域實體框架 - 公司內部培訓視訊》。

201509:釋出網頁版的 Rafy 使用者手冊:《Rafy 框架-釋出網頁版使用者手冊》。

 

Rafy 領域實體框架簡要說明


Rafy 領域實體框架是一個 Rafy 系列框架中的 ORM 框架,可脫離其它元件單獨執行,為開發人員提供了強大的功能、極高的開發效率。同時集領域驅動設計、面向服務架構、模型驅動架構、產品線工程方法於一身,是 Rafy 系列框架中其它部分(如介面生成框架)的基礎。

特點

•    領域驅動設計

相對於一些注重概念、使用複雜的 DDD 框架,Rafy 更加註重實踐。實現了 DDD 中與實際開發結合緊密的重要概念:聚合實體、標識、倉庫、服務、分層架構、CQRS,同時保證了開發的易用性。

實體基類的設計支援關係的延遲載入、自動冗餘屬性、大物件屬性、資料繫結、樹型實體等。

實體使用了自定義屬性系統(託管屬性框架)。這使得執行時可以不再使用反射,而是使用內建的屬性管理方式,執行效率更高。同時,這些屬性的 API 直接公佈,更方便開發人員編寫面向自己應用的框架。

倉庫基類則實現了組合實體的新增、刪除、修改,並提供了大量的預設查詢。

領域服務是跨組合實體的業務邏輯的封裝體,也是 SOA 架構的基礎。

image

圖1-1 Rafy 與 VS 整合的領域實體關係圖

Domain Service

圖1-2 Rafy 領域服務

 

•    CodeFirst 開發模式

使用 Rafy 領域實體框架,採用 CodeFirst 開發模式,可以使得開發人員在開發過程中只關心領域實體的關係、屬性,而不需要關心資料庫結構的變化。

在開發過程中,只需要配置好資料庫連線後,建庫、建表、建欄位都會由 Rafy 完成。實體結構上的變化:型別、屬性、關係,都會由 Rafy 自動同步到資料庫上。相對於傳統的三層應用程式,在實體中新增、刪除一個欄位,開發人員不再需要修改應用程式的資料庫、DAL、BLL程式碼,而由框架自動同步,大大提高了開發效率。

同時,生成的資料庫滿足第三泛式的要求。

2 SQL Diagram

圖2 自動生成的資料庫

 

•    多資料庫支援

Rafy 領域實體框架支援把同一份實體程式碼對映到多種資料庫。目前已經支援了 SqlServer 2005-2012、Oracle10,以及檔案型資料庫 SQLCE4。其它資料庫的支援也在研發中。

imageimage

圖3 多資料庫支援

 

•    支援部署為單機、分散式

使用 Rafy 編寫的實體、服務,原生支援分散式部署。即可以部署為直接連線資料庫,也可以部署為客戶端通過伺服器間接訪問資料庫。

Rafy 基於自定義的託管屬性框架,在對實體進行序列化時,不會傳輸實體中預設的資料,提高了資料傳輸的效率。

C-DB

圖4 Client – DataBase 直聯部署

C-S

圖5 Client – Server – DataBase 分散式部署

 

•    與 VS 整合

Rafy 的一個重要作用就是為了提升開發效率,所以我們為 VisualStudio 開發了 RafySDK 外掛,其中包含專案模板、程式碼生成、領域建模等功能。一體化的開發環境,可以更加快速地開發 Rafy 應用程式。

VS-1VS-4VS-2VS-3VS-5-MP

 

•    零配置

框架的使用對開發人員要求非常簡單,預設情況下基本不需要作任何配置。這樣提高了開發的效率。
Rafy 框架的快速開發思想之一是支援預設值,儘量少使用配置。在必要時,僅需非常少的配置即可達到執行時的靈活變化。

 

•    穩定、質量有保障

領域實體框架的程式碼行有 4 萬多行。為了保證框架質量,我們為框架編寫了 500 多個單元測試,以測試框架的各個功能。

 

優勢

與 EF、NH 等傳統 ORM 框架相比,使用 Rafy 領域實體框架的優勢在於:

  • 傳統 ORM 只是為了解決物件導向與關聯式資料庫的對映,而 Rafy 解決的是領域實體與關聯式資料庫的對映。(物件導向的對映解決的是一般性的實體關係到資料庫的對映,包含:一對多、一對一、多對多、繼承。而領域實體的對映,則專注於領域驅動設計中的繼承關係、聚合關係、引用關係。Rafy 框架不僅解決了這些對映問題,還同時關注 DDD 中的倉庫、服務、工廠、分層架構等概念。)

  • 傳統 ORM 只做資料處理,開發人員不得不繼續考慮很多其它的問題,例如分層架構、分散式傳輸、遠端懶載入、介面資料繫結等功能;而 Rafy 則提供了一體化解決方案,包括:分層設計、倉庫設計、分散式設計、託管屬性設計、序列化設計、服務設計、介面繫結設計等。

  • Rafy 立足於開發實戰。設計了全新的冗餘屬性,自動冗餘、自動更新,開發者可大量使用冗餘特性,而不再需要自行維護。

 

PS:

看著群友對框架的熱情與期待,本人國慶假期放棄出玩,連續幹了 7 天。昨天剛寫完的幫助文件,期望大家使用後能有所幫助。更期望能得到你的反饋。 微笑

相關文章