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

距離「上次框架完整發布」已通過去了一年半了,應羣中的朋友要求,決定在國慶放假之際,把最新的框架發佈出來,並把幫助文檔整理出來,這樣能夠方便你們快速上手。html

 

 

發佈內容git


注意,本次發佈,只包含 Rafy 框架中的領域實體框架及相關文檔。不包含「界面自動生成」等其它組件。github

安裝新的發佈包:《使用 NuGet 下載最新的 Rafy 框架及文檔》。數據庫

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

老版本及一些輔助工具的發佈包地址:http://pan.baidu.com/s/1ntHlFIh服務器

image

QQ羣:羣號 175227630,Rafy框架 技術交流。QQ 羣方便你們平常對 Rafy 技術交流,歡迎加入。架構

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

改名:框架名字變動爲 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-20十二、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 解決的是領域實體與關係數據庫的映射。(面向對象的映射解決的是通常性的實體關係到數據庫的映射,包含:一對多、一對1、多對多、繼承。而領域實體的映射,則專一於領域驅動設計中的繼承關係、聚合關係、引用關係。Rafy 框架不只解決了這些映射問題,還同時關注 DDD 中的倉庫、服務、工廠、分層架構等概念。)

  • 傳統 ORM 只作數據處理,開發人員不得不繼續考慮不少其它的問題,例如分層架構、分佈式傳輸、遠程懶加載、界面數據綁定等功能;而 Rafy 則提供了一體化解決方案,包括:分層設計、倉庫設計、分佈式設計、託管屬性設計、序列化設計、服務設計、界面綁定設計等。

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

 

PS:

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

相關文章
相關標籤/搜索