CN106843871A - 一种领域模型框架的设计系统及设计方法 - Google Patents
一种领域模型框架的设计系统及设计方法 Download PDFInfo
- Publication number
- CN106843871A CN106843871A CN201710035882.9A CN201710035882A CN106843871A CN 106843871 A CN106843871 A CN 106843871A CN 201710035882 A CN201710035882 A CN 201710035882A CN 106843871 A CN106843871 A CN 106843871A
- Authority
- CN
- China
- Prior art keywords
- layer
- model
- view
- entity
- domain model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种领域模型框架的设计系统及设计方法,所述系统包括展示层、业务层以及数据层,所述展示层包括客制化命令模块和Windows呈现基础模块,所述业务层包括服务模块和验证模块,所述数据层包括对象关系映射模块和数据库,所述系统还包括贯穿于所述展示层、业务层以及数据层的分布式实体类和应用模型。本发明公开的领域模型框架的设计系统及设计方法,能够减少重复工作量和出现错误的几率,使得项目的各个模块的设计都采用一种模式进行。
Description
技术领域
本发明涉及系统框架技术领域,特别涉及一种领域模型框架的设计系统及设计方法。
背景技术
目前很多ORM(Object Relation Mapping,对象关系映射)框架都是解决数据库与面向对象之间的映射关系,即在系统的数据层不需要写SQL语句就能查询数据的数据,并通过ORM框架以设计的业务对象集合形式从数据库返回到系统中来。至此完成了ORM从数据库对象映射成系统中实体的工作。
但现在ORM框架只能做到映射了数据对象到系统中,后续的从数据层到业务层的分布式对象传输,必须重新进行序列化设计。同时对于用户展示层展示层的页面数据绑定,还需要设计开发人员进行重新进行一一队形的开发绑定工作,至此才算真正的完成一个界面的数据展示。
目前,由于系统架构各个应用分开设计,数据传输很难有效的整合一起,从而造成开发资源的过度浪费。由于增加了开发的工作量,也大大增加了系统功能出现bug的几率。此外,整个系统架构设计没有统一的解决方案,系统把从展示层、业务层到数据层单独分开设计,导致系统的可扩展性、稳定性、易用性都很差。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种领域模型框架的设计系统及设计方法。所述技术方案如下:
一方面,一种领域模型框架的设计系统,所述系统包括展示层、业务层以及数据层,所述展示层包括客制化命令模块和Windows呈现基础模块,所述业务层包括服务模块和验证模块,所述数据层包括对象关系映射模块和数据库,所述系统还包括贯穿于所述展示层、业务层以及数据层的分布式实体类和应用模型,其中:所述Windows呈现基础模块和所述数据库由所述领域模型框架自动生成和运行;所述业务层部署于服务端并进行并发分布式处理,所述并发分布式处理通过Windows通讯开发平台进行配置;所述应用模型为所述领域模型框架中的元数据实体,所述展示层可根据所述元数据实体生成界面元素和数据库表映射实体。
进一步地,所述展示层调用Windows通讯开发平台服务,以得到序列化对象;所述序列化对象可作为模型-视图-视图模型MVVM模式中的视图模型绑定至用户界面中,以降低界面与逻辑的耦合。
进一步地于,所述展示层、业务层以及数据层的逻辑结构包括客户端、服务组件、控制器、实体以及数据库,其中:所述服务组件用于实现分布式传输过程;所述实体与关系实体存在组合关系,其中,在查询所述实体时,若与所述实体存在组合关系的关系实体无需显示,则仅查询出所述关系实体的标识;查询到的实体可作为模型-视图-视图模型MVVM模式中的视图模型绑定至用户界面中,以降低界面与逻辑的耦合。
进一步地,所述服务组件可作为分布式调用以及本地调用的外观Facade接口。
进一步地,同一个视图模型可使用不同的视图进行展示,同一个视图可使用不同的视图模型来提供不同的操作。
另一方面,一种领域模型框架的设计方法,所述方法包括:预先生成业务逻辑所需的实体业务对象;在所述实体业务对象上标记所述领域模型框架自定义的特性,以声明所述实体业务对象的元数据;将链式接口作为查询接口,以接收开发人员下达的查询指令;基于所述实体业务对象生成SQL树,以实现数据库表的创建以及对数据的增删改查。
进一步地,所述方法还包括:展示层调用Windows通讯开发平台服务,以得到序列化对象;将所述序列化对象作为模型-视图-视图模型MVVM模式中的视图模型绑定至用户界面中,以降低界面与逻辑的耦合。
进一步地,同一个视图模型可使用不同的视图进行展示,同一个视图可使用不同的视图模型来提供不同的操作。
进一步地,所述特性可用于Windows通讯开发平台进行远程调用的序列化传输。
本发明的有益效果至少包括:
本发明的框架能够减提供一整套的解决方案,包括:分层架构、分布式传输、远程懒加载、界面数据绑定等功能,而不需要设计人员单独另行考虑方案进行单独整合,减少了重复工作量和出现错误的几率,使得项目的各个模块的设计都采用一种模式进行。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施方式提供的领域模型框架的设计系统的结构示意图;
图2是本发明实施方式中领域模型框架的设计方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参阅图1,本申请提供一种领域模型框架的设计系统,所述系统包括展示层、业务层以及数据层,所述展示层包括客制化命令模块Command和Windows呈现基础模块(Windows Presentation Foundation,WCF),所述业务层包括服务模块Service和验证模块Validation,所述数据层包括对象关系映射模块ORM和数据库DataBase,所述系统还包括贯穿于所述展示层、业务层以及数据层的分布式实体类和应用模型,其中:
所述Windows呈现基础模块和所述数据库由所述领域模型框架自动生成和运行;
所述业务层部署于服务端并进行并发分布式处理,所述并发分布式处理通过Windows通讯开发平台(Windows Communication Foundation,WCF)进行配置;
所述应用模型为所述领域模型框架中的元数据实体,所述展示层可根据所述元数据实体生成界面元素和数据库表映射实体。
在本实施方式中,所述展示层调用Windows通讯开发平台服务,以得到序列化对象;
所述序列化对象可作为模型-视图-视图模型MVVM模式中的视图模型绑定至用户界面中,以降低界面与逻辑的耦合。
在本实施方式中,所述展示层、业务层以及数据层的逻辑结构包括客户端、服务组件、控制器、实体以及数据库,其中:
所述服务组件用于实现分布式传输过程;
所述实体与关系实体存在组合关系,其中,在查询所述实体时,若与所述实体存在组合关系的关系实体无需显示,则仅查询出所述关系实体的标识;
查询到的实体可作为模型-视图-视图模型MVVM模式中的视图模型绑定至用户界面中,以降低界面与逻辑的耦合。
在本实施方式中,所述服务组件可作为分布式调用以及本地调用的外观Facade接口。
在本实施方式中,同一个视图模型可使用不同的视图进行展示,同一个视图可使用不同的视图模型来提供不同的操作。
具体地,在本框架中可实现以下功能:
1、展示层的界面显示部分、数据库的数据表部分都可以根据业务设计有系统框架自动生成。
2、展示层中界面的元素的操作动作除了客制化命令外,其余框架默认支持功能,开发人员只关注操作要处理的业务内容即可,不需要关注页面的布局、空间的显示内容以及图片等,都由框架来完成。
3、在业务层开发人员只关注业务逻辑的处理实践和特定场景下的操作,基本的验证例如是否为数字类型、是否为空等都由框架来实现。
4、采用领域模型设计、根据设计工具可以自动生成数据库表和字段。
5、对于实体分布式,框架默认支持单机版,也就是客户端程序直接连接数据库进行操作,另一种方式就是把业务层部署在服务端做并发分布式处理。整个分布式采用WCF进行配置。
6、应用模型就是领域模型设计出来后的元数据实体,贯穿整个框架,展示层根据元数据生成界面元素和数据库表映射实体。
在本实施方式中,框架从展示层到数据层是一个基于DDD(Domain DrivenDesign,领域驱动设计)思想,使用了服务组件Service、控制器Controller来组织过程式逻辑。对于系统来说,Service主要作为分布式调用、本地调用的Facade接口,主要的业务过程则使用Controller来编写。具体地,本框架还能够实现:
分布式传输:由Service进行处理。
远程懒加载:框架在使用实体时,往往还需要使用实体的一些关系实体,例如工单和工单明细有着组合关系,当系统查询工单信息且没必要显示工单明细的时候,就可以只关联查出工单明细ID即可,其他工单明细信息可以不查出,称之为懒加载。
界面数据绑定:框架的展示层层使用WPF技术和MVVM模式结合。例如查询到的数据实体数据对象是作为ViewModel绑定到用户界面,这样是降低界面和逻辑的耦合,理想情况下界面和逻辑是完全分离的,单方面更改界面时不需要对逻辑代码改动,同样的逻辑代码更改时也不需要更改界面。同一个ViewModel可以使用完全不用的View进行展示,同一个View也可以使用不同的ViewModel以提供不同的操作。
请参阅图2,本申请还提供一种领域模型框架的设计方法,所述方法包括:
S1:预先生成业务逻辑所需的实体业务对象;
S2:在所述实体业务对象上标记所述领域模型框架自定义的特性,以声明所述实体业务对象的元数据;
S3:将链式接口作为查询接口,以接收开发人员下达的查询指令;
S4:基于所述实体业务对象生成SQL树,以实现数据库表的创建以及对数据的增删改查。
在本实施方式中,所述方法还包括:
展示层调用Windows通讯开发平台服务,以得到序列化对象;
将所述序列化对象作为模型-视图-视图模型MVVM模式中的视图模型绑定至用户界面中,以降低界面与逻辑的耦合。
在本实施方式中,同一个视图模型可使用不同的视图进行展示,同一个视图可使用不同的视图模型来提供不同的操作。
在本实施方式中,所述特性可用于Windows通讯开发平台进行远程调用的序列化传输。
具体地,先用对象模型工具生成业务逻辑所需要的实体业务对象,然后采用在实体对象上标记框架自定义的特性(Attribute)来声明实体的元数据,并使用链式接口来作为查询接口以方便开发人员使用。基于以上的技术实现,ORM模块可以使用该实体对象生成SQLTree,进而实现数据库表的创建以及对数据的增删改查。
对于中间层的业务逻辑服务,标记的特性可以用作WCF远程调用的序列化传输。在展示层调用了WCF服务得到的序列化对象采用MVVM模式对界面进行了绑定,数据对象就是MVVM模式中的viewmodel,框架也可以根据对象的属性标记进行界面元素的生成,以上就是整个框架对于领域模型对象的设计和应用。
本发明的有益效果至少包括:
本发明的框架能够减提供一整套的解决方案,包括:分层架构、分布式传输、远程懒加载、界面数据绑定等功能,而不需要设计人员单独另行考虑方案进行单独整合,减少了重复工作量和出现错误的几率,使得项目的各个模块的设计都采用一种模式进行。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种领域模型框架的设计系统,所述系统包括展示层、业务层以及数据层,其特征在于,所述展示层包括客制化命令模块和Windows呈现基础模块,所述业务层包括服务模块和验证模块,所述数据层包括对象关系映射模块和数据库,所述系统还包括贯穿于所述展示层、业务层以及数据层的分布式实体类和应用模型,其中:
所述Windows呈现基础模块和所述数据库由所述领域模型框架自动生成和运行;
所述业务层部署于服务端并进行并发分布式处理,所述并发分布式处理通过Windows通讯开发平台进行配置;
所述应用模型为所述领域模型框架中的元数据实体,所述展示层可根据所述元数据实体生成界面元素和数据库表映射实体。
2.根据权利要求1所述的领域模型框架的设计系统,其特征在于,所述展示层调用Windows通讯开发平台服务,以得到序列化对象;
所述序列化对象可作为模型-视图-视图模型MVVM模式中的视图模型绑定至用户界面中,以降低界面与逻辑的耦合。
3.根据权利要求1所述的领域模型框架的设计系统,其特征在于,所述展示层、业务层以及数据层的逻辑结构包括客户端、服务组件、控制器、实体以及数据库,其中:
所述服务组件用于实现分布式传输过程;
所述实体与关系实体存在组合关系,其中,在查询所述实体时,若与所述实体存在组合关系的关系实体无需显示,则仅查询出所述关系实体的标识;
查询到的实体可作为模型-视图-视图模型MVVM模式中的视图模型绑定至用户界面中,以降低界面与逻辑的耦合。
4.根据权利要求3所述的领域模型框架的设计系统,其特征在于,所述服务组件可作为分布式调用以及本地调用的外观Facade接口。
5.根据权利要求3所述的领域模型框架的设计系统,其特征在于,同一个视图模型可使用不同的视图进行展示,同一个视图可使用不同的视图模型来提供不同的操作。
6.一种应用于如权利要求1至5中任一所述的领域模型框架的设计系统中的领域模型框架的设计方法,其特征在于,所述方法包括:
预先生成业务逻辑所需的实体业务对象;
在所述实体业务对象上标记所述领域模型框架自定义的特性,以声明所述实体业务对象的元数据;
将链式接口作为查询接口,以接收开发人员下达的查询指令;
基于所述实体业务对象生成SQL树,以实现数据库表的创建以及对数据的增删改查。
7.根据权利要求6所述的领域模型框架的设计方法,其特征在于,所述方法还包括:
展示层调用Windows通讯开发平台服务,以得到序列化对象;
将所述序列化对象作为模型-视图-视图模型MVVM模式中的视图模型绑定至用户界面中,以降低界面与逻辑的耦合。
8.根据权利要求7所述的领域模型框架的设计方法,其特征在于,同一个视图模型可使用不同的视图进行展示,同一个视图可使用不同的视图模型来提供不同的操作。
9.根据权利要求6所述的领域模型框架的设计方法,其特征在于,所述特性可用于Windows通讯开发平台进行远程调用的序列化传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710035882.9A CN106843871B (zh) | 2017-01-17 | 2017-01-17 | 一种领域模型框架的设计系统及设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710035882.9A CN106843871B (zh) | 2017-01-17 | 2017-01-17 | 一种领域模型框架的设计系统及设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106843871A true CN106843871A (zh) | 2017-06-13 |
CN106843871B CN106843871B (zh) | 2018-06-15 |
Family
ID=59124484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710035882.9A Active CN106843871B (zh) | 2017-01-17 | 2017-01-17 | 一种领域模型框架的设计系统及设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106843871B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108986A (zh) * | 2017-12-29 | 2018-06-01 | 广州市玄武无线科技股份有限公司 | 一种客户关系管理系统的设计方法、装置及电子设备 |
CN108427555A (zh) * | 2018-01-25 | 2018-08-21 | 山东汇贸电子口岸有限公司 | 一种用于分布式存储的模型可变的数据分布方法及系统 |
CN110148332A (zh) * | 2019-06-12 | 2019-08-20 | 大连海事大学 | 船舶主机遥控操作模拟训练系统 |
CN110413352A (zh) * | 2019-07-15 | 2019-11-05 | 北京天眼查科技有限公司 | 应用组件的调用方法和装置 |
CN112099767A (zh) * | 2019-06-17 | 2020-12-18 | 北京车和家信息技术有限公司 | 一种应用程序的开发方法、服务器及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080098348A1 (en) * | 2006-10-23 | 2008-04-24 | Olson Keith A | Software domain model that enables simultaneous independent development of software components |
CN101901136A (zh) * | 2009-05-26 | 2010-12-01 | 北京正辰科技发展有限责任公司 | 基于业务考核平台系统的子系统分层构架 |
CN102750145A (zh) * | 2012-06-05 | 2012-10-24 | 怯肇乾 | 一种网络系统软件体系框架及其实现方法 |
CN104572761A (zh) * | 2013-10-23 | 2015-04-29 | 中国科学院沈阳自动化研究所 | 一种分层应用技术框架 |
-
2017
- 2017-01-17 CN CN201710035882.9A patent/CN106843871B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080098348A1 (en) * | 2006-10-23 | 2008-04-24 | Olson Keith A | Software domain model that enables simultaneous independent development of software components |
CN101901136A (zh) * | 2009-05-26 | 2010-12-01 | 北京正辰科技发展有限责任公司 | 基于业务考核平台系统的子系统分层构架 |
CN102750145A (zh) * | 2012-06-05 | 2012-10-24 | 怯肇乾 | 一种网络系统软件体系框架及其实现方法 |
CN104572761A (zh) * | 2013-10-23 | 2015-04-29 | 中国科学院沈阳自动化研究所 | 一种分层应用技术框架 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108986A (zh) * | 2017-12-29 | 2018-06-01 | 广州市玄武无线科技股份有限公司 | 一种客户关系管理系统的设计方法、装置及电子设备 |
CN108427555A (zh) * | 2018-01-25 | 2018-08-21 | 山东汇贸电子口岸有限公司 | 一种用于分布式存储的模型可变的数据分布方法及系统 |
CN110148332A (zh) * | 2019-06-12 | 2019-08-20 | 大连海事大学 | 船舶主机遥控操作模拟训练系统 |
CN112099767A (zh) * | 2019-06-17 | 2020-12-18 | 北京车和家信息技术有限公司 | 一种应用程序的开发方法、服务器及计算机可读存储介质 |
CN110413352A (zh) * | 2019-07-15 | 2019-11-05 | 北京天眼查科技有限公司 | 应用组件的调用方法和装置 |
CN110413352B (zh) * | 2019-07-15 | 2020-11-03 | 北京天眼查科技有限公司 | 应用组件的调用方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106843871B (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106843871B (zh) | 一种领域模型框架的设计系统及设计方法 | |
CN103761082A (zh) | 一种组件化研发模式与领域驱动模型相结合的应用开发系统及平台 | |
CN103645908B (zh) | 网构软件全生命周期开发实现系统 | |
US10331765B2 (en) | Methods and apparatus for translating forms to native mobile applications | |
CN105138602B (zh) | 一种三维协同平台的构架系统及其使用方法 | |
CN106843835A (zh) | 一种元数据定制的应用系统软件构建系统、系统构建方法 | |
CN104216912A (zh) | 一种无侵入式的业务表单工作流化的实现方法与装置 | |
CN105487864A (zh) | 代码自动生成的方法和装置 | |
CN106164834A (zh) | 具有设备感知型缩放的沉浸式文档交互 | |
CN106484394A (zh) | 一种双引擎快速软件开发系统 | |
ITMI20130390U1 (it) | Metodi e apparato per generatori di endpoint dinamici, individuazione e mediazione (brokerage) di oggetti remoti dinamici | |
CN106873974A (zh) | 智能代码生成引擎系统及方法 | |
CN104346371A (zh) | 内存数据库驱动业务整合系统报告 | |
US20210103862A1 (en) | Methods and apparatus for exposing workflow process definitions as business objects | |
WO2023231665A1 (zh) | 分布式事务处理方法、系统、设备及可读存储介质 | |
CN102981823A (zh) | 一种领域驱动开发插件系统 | |
CN101609398A (zh) | 网络应用的开发系统和方法 | |
CN104572125A (zh) | 实体关系图的绘制方法、存储方法、绘制装置及存储装置 | |
CN102637406A (zh) | 一种led显示设计系统及方法 | |
CN105913197A (zh) | 基于业务数据规则执行的工作流方法 | |
CN107133044A (zh) | 数据维护型页面的快速开发方法和系统 | |
CN111767335A (zh) | 数据可视化分析方法 | |
CN104461495B (zh) | 一种实现数据持久层分离的方法及系统 | |
US10505873B2 (en) | Streamlining end-to-end flow of business-to-business integration processes | |
CN105404950A (zh) | 基于业务配置的sap预制凭证实现方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |