• 领域实体框架Rafy2 发布了


      在2009年我在codeplex发布了1.0版本OpenExpressApp,下载地址:http://openexpressapp.codeplex.com/。OEA 1.0 作为我十多年开发工作的一个思想开发平台雏形,它的开源发布可以作为有志于自己开发框架平台的同学学习和借鉴,在园子里曾经也写过一系列的相关文章,例如 OpenExpressApp make business engineers develop applications 等。

      很高兴在这么长的日子里,还时不时收到大家通过各种方式对OEA进展的关心,然而每每这个时刻我心里总觉得有点“对不起”大家,因为自从我迷恋上敏捷个人 http://agileme.codeplex.com/ 之后,我就开始移情别恋,不再追求OEA了。

      OEA也可以作为你真正工作中的利器,OEA1.0在我的实际工作中已经使用过了,今天我要高兴的告诉大家,OEA一直以来并没有停止开发过,现在由胡庆访再主导开发中,他是我在工作中对框架平台开发中比较执着追求的一个同事,在对OEA1.0背后的开发思想的理解之上,在12年3月发布了框架2.0,经过在实际工作中大大小小项目的使用,OEA变得更为强大和有力。

      今天,OEA改名为Rafy,并首次发布Rafy框架体系中的基础引擎:领域实体框架。至于Rafy代表什么含义,大家先来猜一下:)以下我简要的对Rafy进行一下说明,如果你希望试用一下,可以在 http://t.cn/zRyIPvd 下载

     Rafy 领域实体框架简要说明


      Rafy 集领域驱动设计、面向服务架构、模型驱动架构、产品线工程方法于一体,为开发人员提供了强大的功能、快速的开发效率以及快乐的体验。Rafy 领域实体框架是一个 ORM 框架,作为 Rafy 平台中其它部分(如界面生成框架)的基础,它也可脱离平台单独在你的工作环境中使用。

    特点

    1. 领域驱动设计

      相对于一些注重概念、使用复杂的 DDD 框架,Rafy 更加注重实践。实现了 DDD 中与实际开发结合紧密的重要概念:聚合实体、标识、仓库、服务、分层架构、CQRS,同时保证了开发的易用性。

    • 实体基类的设计支持关系的延迟加载、自动冗余属性、大对象属性、数据绑定、树型实体等。
    • 实体使用了自定义属性系统(托管属性框架)。这使得运行时可以不再使用反射,而是使用内置的属性管理方式,运行效率更高。同时,这些属性的 API 直接公布,更方便开发人员编写面向自己应用的框架。
    • 仓库基类则实现了组合实体的添加、删除、修改,并提供了大量的默认查询。
    • 领域服务是跨组合实体的业务逻辑的封装体,也是 SOA 架构的基础。

    2. CodeFirst 开发模式

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

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

    3. 多数据库支持

    Rafy 领域实体框架支持把同一份实体代码映射到多种数据库。目前已经支持了

    • SqlServer 2005-2012
    • Oracle10
    • 以及文件型数据库 SQLCE4
    • 其它数据库的支持也在研发中

    4. 支持部署为单机、分布式

    • 使用 Rafy 编写的实体、服务,原生支持分布式部署
    • Rafy 基于自定义的托管属性框架,在对实体进行序列化时,不会传输实体中默认的数据,提高了数据传输的效率。

    5. 零配置

    Rafy 框架的快速开发思想之一是支持默认值,尽量多用约定、少使用配置。在必要时,仅需非常少的配置即可达到运行时的灵活变化。

    框架的使用对开发人员要求非常简单,默认情况下基本不需要作任何配置。这样提高了开发的效率。

    6. 稳定、质量有保障

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

    优势

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

    • 传统 ORM 只是为了解决面向对象与关系数据库的映射,而 Rafy 解决的是领域实体与关系数据库的映射。

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

    发布内容

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

    • 发布包地址:http://t.cn/zRyIPvd
    • QQ群:Rafy框架 技术交流 QQ 群方便大家日常对 Rafy 技术交流,欢迎加入。
    • Rafy 框架小组:http://home.cnblogs.com/group/103240/。小组可讨论 Rafy 相关的任何话题,提出的问题会被优先解决。(刚建立,活跃者可申请管理员)。
    • 关于源码:一直采用开源发布,效果并不明显,很多人只是把代码下载了就不管了。以后不再开源,但是依然可以免费使用。期望学习框架设计的同学,可以下载旧版本的代码。
    • 更名:框架名字变更为 Rafy [rɑ:fi]。

    框架发布历史

    1. 200909:发布了 1.0 版本,《信息系统开发平台openexpressapp 1.0发布》。
    2. 201104:发布快速开发视频:《OEA 框架演示 - 快速原型的开发》。
    3. 201203:发布了 2.9 版本,《OEA框架 2.9 Pre-Alpha 源码公布》,并创建了 QQ 技术交流群,群号:175227630。
    4. 201310:更名为 Rafy、发布领域实体框架 2.22.2067 版本、帮助文档 1.0、建立“Rafy 框架”小组。

    关于作者

    自从OEA1.0之后,OEA由胡庆访来主导开发,本篇文字也是基于他发布的blog更改而成,如果你支持OEA,欢迎大家继续支持Rafy以及作者胡庆访
    对OEA和Rafy有任何建议和事情,大家请直接咨询他:)
     
  • 相关阅读:
    angular2 如何使用animate实现动画效果
    angular2+ 组件中用@import进来的css不起作用
    ReentrantLock & AQS
    常用JDK命令
    分布式缓存
    持续交付
    持续部署
    持续集成
    领域驱动设计简介
    spring boot 整合JPA bean注入失败
  • 原文地址:https://www.cnblogs.com/zhoujg/p/3357006.html
Copyright © 2020-2023  润新知