发布内容


注意,本次发布,只包含 Rafy 框架中的领域实体框架及相关文档。不包含“界面自动生成”等其它组件。

安装新的发布包:《使用 NuGet 下载最新的 Rafy 框架及文档》。

网页版用户手册(实时更新):《http://zgynhqf.github.io/Rafy》。

老版本及一些辅助工具的发布包地址:http://pan.baidu.com/s/1ntHlFIh。

QQ群:群号 175227630,。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 架构的基础。

图1-1 Rafy 与 VS 集成的领域实体关系图

图1-2 Rafy 领域服务

•    CodeFirst 开发模式

使用 Rafy 领域实体框架,采用 CodeFirst 开发模式,可以使得开发人员在开发过程中只关心领域实体的关系、属性,而不需要关心数据库结构的变化。

在开发过程中,只需要配置好数据库连接后,建库、建表、建字段都会由 Rafy 完成。实体结构上的变化:类型、属性、关系,都会由 Rafy 自动同步到数据库上。相对于传统的三层应用程序,在实体中添加、删除一个字段,开发人员不再需要修改应用程序的数据库、DAL、BLL代码,而由框架自动同步,大大提高了开发效率。

同时,生成的数据库满足第三泛式的要求。

图2 自动生成的数据库

•    多数据库支持

Rafy 领域实体框架支持把同一份实体代码映射到多种数据库。目前已经支持了 SqlServer 2005-2012、Oracle10,以及文件型数据库 SQLCE4。其它数据库的支持也在研发中。

图3 多数据库支持

•    支持部署为单机、分布式

使用 Rafy 编写的实体、服务,原生支持分布式部署。即可以部署为直接连接数据库,也可以部署为客户端通过服务器间接访问数据库。

Rafy 基于自定义的托管属性框架,在对实体进行序列化时,不会传输实体中默认的数据,提高了数据传输的效率。

图4 Client – DataBase 直联部署

图5 Client – Server – DataBase 分布式部署

•    与 VS 集成

Rafy 的一个重要作用就是为了提升开发效率,所以我们为 VisualStudio 开发了 RafySDK 插件,其中包含项目模板、代码生成、领域建模等功能。一体化的开发环境,可以更加快速地开发 Rafy 应用程序。

•    零配置

框架的使用对开发人员要求非常简单,默认情况下基本不需要作任何配置。这样提高了开发的效率。 
Rafy 框架的快速开发思想之一是支持默认值,尽量少使用配置。在必要时,仅需非常少的配置即可达到运行时的灵活变化。

•    稳定、质量有保障

领域实体框架的代码行有 4 万多行。为了保证框架质量,我们为框架编写了 500 多个单元测试,以测试框架的各个功能。

优势

与 EF、NH 等传统 ORM 框架相比,使用 Rafy 领域实体框架的优势在于:

  • 传统 ORM 只是为了解决面向对象与关系数据库的映射,而 Rafy 解决的是领域实体与关系数据库的映射。(面向对象的映射解决的是一般性的实体关系到数据库的映射,包含:一对多、一对一、多对多、继承。而领域实体的映射,则专注于领域驱动设计中的继承关系、聚合关系、引用关系。Rafy 框架不仅解决了这些映射问题,还同时关注 DDD 中的仓库、服务、工厂、分层架构等概念。)

  • 传统 ORM 只做数据处理,开发人员不得不继续考虑很多其它的问题,例如分层架构、分布式传输、远程懒加载、界面数据绑定等功能;而 Rafy 则提供了一体化解决方案,包括:分层设计、仓库设计、分布式设计、托管属性设计、序列化设计、服务设计、界面绑定设计等。

  • Rafy 立足于开发实战。设计了全新的冗余属性,自动冗余、自动更新,开发者可大量使用冗余特性,而不再需要自行维护。
本文转自BloodyAngel博客园博客,原文链接:http://www.cnblogs.com/zgynhqf/p/3356692.html,如需转载请自行联系原作者

福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!相关推荐

  1. Rafy 领域实体框架设计 - 重构 ORM 中的 Sql 生成

    前言 Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能.由于在 09 年最初设计时,ORM 部分的设计并不是最重要 ...

  2. Rafy 领域实体框架演示(2) - 新功能展示

    数据库自动生成 在程序转换转换完毕后.由于已经配置好数据库的连接字符串,所以直接运行整个程序,Rafy 会同时生成对应的数据库.表.字段,以及相应的外键关系等. 该库满足数据库的第三范式要求.同时,开 ...

  3. 【论文翻译】SHINE 一个用于特定领域实体与异构信息网络链接的通用框架

    SHINE 一个用于特定领域实体与异构信息网络链接的通用框架 摘要 由多种类型的互联对象组成的异构信息网络正变得越来越流行,例如社交媒体网络和书目网络.在异构信息网络中,将从非结构化文本中检测到的命名 ...

  4. Lind.DDD敏捷领域驱动框架~介绍

    最近觉得自己的框架过于复杂,在实现开发使用中有些不爽,自己的朋友们也经常和我说,框架太麻烦了,要引用的类库太多:之前架构之所以这样设计,完全出于对职责分离和代码附复用的考虑,主要参考了微软的DDD大作 ...

  5. mysql ef 一对多 更新数据库_Entity Framework_成功针对多种数据库使用实体框架(EF)...

    ORM 用户已经习惯于处在 .NET 和 LINQ 角度思考问题,缺忘记了特定数据库的细节--在功能和执行 SQL 效率上的差异.本文简要讨论一些在用户利用实体框架(Entity Framework, ...

  6. Entity Framework 实体框架的形成之旅--实体框架的开发的几个经验总结

    在前阵子,我对实体框架进行了一定的研究,然后把整个学习的过程开了一个系列,以逐步深入的方式解读实体框架的相关技术,期间每每碰到一些新的问题需要潜入研究.本文继续前面的主题介绍,着重从整体性的来总结一下 ...

  7. 国外牛人总结的机器学习领域的框架、库以及软件

    国外牛人总结的机器学习领域的框架.库以及软件 本文汇编了一些机器学习领域的框架.库以及软件(按编程语言排序). C++计算机视觉 CCV -基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 O ...

  8. 2018年终总结之AI领域开源框架汇总

    2018年终总结之AI领域开源框架汇总 [稍显活跃的第一季度] 2018.3.04--OpenAI公布 "后见之明经验复现(Hindsight Experience Reply, HER)& ...

  9. C#代码生成工具:文本模板初体验 使用T4批量修改实体框架(Entity Framework)的类名...

    转自:http://www.cnblogs.com/huangcong/archive/2011/07/20/1931107.html 在之前的文本模板(T4)初体验中我们已经知道了T4的用处,下面就 ...

最新文章

  1. Java学习总结:28
  2. 英语语法总结--连词
  3. Makefile选项 CFLAGS LDFLAGS
  4. 成功解决ValueError: Parameter values for parameter (n_estimators) need to be a sequence.
  5. SHOP++源码部署说明:
  6. 服务器损坏mysql修复_云服务器mysql数据库损坏修复mysql
  7. mysql表恢复报错binlog_mysqlbinlog 恢复报错ERROR at line 24826643: Unknown command '\'汗血宝马...
  8. 电脑技巧:电脑几种常见的系统故障解答
  9. Spring MVC 基于URL的拦截和映射规则
  10. 企业管理软件随想-透视-包容,无形思想-有形方便
  11. Kong 网关API安装部署以及应用实例----------腾云驾雾
  12. 嵌入Windows User Control到ASP.NET web form
  13. 2021系统分析师论文题目记忆
  14. Mbed OS :DMX512 灯光控制协议
  15. 跟着杨中科学习asp.net之javascript
  16. 想自学编程?这么多编程自学网站,总有一个适合你吧!
  17. [SystemC]SystemC中的模块和程序
  18. Allatori:代码混淆器的使用
  19. 水花兄弟(Splash Brothers)
  20. Word文档快速调整表格列宽度

热门文章

  1. 面试官:请你从架构演进的角度讲讲redis、kafka和 pulsar消息队列
  2. Mysql学习日记:L24-事务
  3. 【无标题】离婚起诉状范文17篇
  4. 【逆向】Terraria 破解
  5. 【星戈瑞】Sulfo-Cyanine5 mal红色荧光Cy5-maleimide
  6. 武汉学院计算机专业分流,数学与计算机学院大类培养专业分流实施细则.doc
  7. 微信小程序给数组、对象赋值
  8. CSU-1783: 聊天止于呵呵(字符串处理)
  9. hibernate 读取Blob字段 OutOfMemoryError
  10. 千万级用户的Android客户端是如何养成的