严海涛 袁琳 纪芳 刘健勇 周晓琳
摘 要:该文详细介绍60万kW高温气冷堆示范工程设计接口管理系统底层架构搭建过程中所使用的ABP框架、ASP.NET MVC等关键技术,在阐述ABP框架的每一层结构作用及MVC分层优势的基础上设计和规划了整个系统的架构层次。最后,该文向读者展示设计接口管理系统架构的工程实现,简单介绍所建ABP框架每层提供的系统功能,并以此体现该文所述架构层次的优越性。
关键词:ABP框架 ASP.NET MVC 基础架构 分层开发 设计接口管理
中图分类号:TP311.5 文献标识码:A 文章编号:1672-3791(2020)09(b)-0024-04
Design Interface Management System Architecture Construction Technology Application Research
YAN Haitao1 YUAN Lin1 JI Fang1 LIU Jianyong1 ZHOU Xiaolin2
(1.Information and Documentation Department, ChinergyCo., Ltd., ; 2.College of Information Science and Technology, Beijing University of Chemical Technology, Beijing, 100029 China)
Abstract:This paper introduces the ABP frameworkASP.NET MVC and other key technologies used in the construction of the bottom structure for the design of the 600000kW High temperature gas cooled reactor demonstration project,on the basis of elaborating the function of each layer of the ABP framework and the advantages of MVC layering, the architecture level of the entire systemis designed and planned. Finally, this paper shows the reader the engineering implementation of the design interface management system architecture, briefly introduces the system functions provided by each layer of the ABP framework, and reflects the advantages of the architecture level described in this paper.
Key Words: ABP framework; ASP.NETMVC;Infrastructure; Layered development; Design interface management
核電站设计工作是一个多专业、多阶段的综合性作业,涉及面广,内外关系比较复杂。为了符合当前数字化管理的趋势,由联合设计机构牵头,中核能源科技有限公司信息文档部开发了60万kW高温气冷堆示范工程设计接口管理系统(以下简称“设计接口管理系统”)软件,实现对公司核电工程质保、安全管理信息化的目标,以及设计接口资料单的电子化流程,规范设计接口活动。
该文将详细介绍设计接口管理系统底层架构搭建过程中所使用的ABP框架、ASP.NET MVC等关键技术。设计接口管理系统架构搭建使用的是基于MVC的ABP框架模型,这是一套搭建好了的基础架构,完美的设计和规划了整个系统的架构层次。基于这个框架,开发者可以很好地来划分任务,进行单元测试等,大大降低了软件出现BUG的几率。
1 设计接口管理系统架构搭建过程关键技术研究
随着Web应用软件复杂度的不断提升,用户期望添加的功能越来越多,传统的三层架构已力不从心,尤其需要进行多系统的持续集成开发。
实际上,有一定积累的公司或单位经过多年的沉淀都形成了自己内部的软件架构,开发时只需要从基础平台搭建即可。如此不仅提高开发效率且明确分工,所以一套稳定成熟的基础开发架构和完善的工作流程是至关重要的。目前.NET上有不少开源框架,比如非常活跃的ABP框架。
1.1 ABP框架
ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)的简称。ASP.NET Boilerplate为开发Web应用程序提供最新技术,它意在成为一个通用的Web应用程序框架和项目模板。为了减少代码的复杂性以及提高代码的可用性,分层架构是常用的技术[1-3]。ABP框架将系统分为5层,分别为:展现层(Presentation)、应用层(Application)、领域层(Domain)、持久化层(Persistence)以及基础设施层(Infrastructure),设计接口管理系统分层架构如图1所示。
其中展现层主要包括ASP.NET MVC及ASP.NET Web API,为客户端提供页面视图和数据支持,实现用户交互操作。应用层是展现层与领域层之间的桥梁,应用服务调用领域层来完成用户请求,并将所需数据返回给展现层。领域层是应用程序的核心层,包括业务对象和业务规则,同时该层还定义了仓储接口来读取和持久化实体数据到数据库。持久化层实现仓储接口,并以此与数据库进行数据交互。基础设施层提供众多服务组件,例如日志记录、异常处理、缓存管理等组件,可以直接调用,减少开发工作量。
ASP.NET技术模型是一种基于Web前端开发技术所设计的模型。通常在进行该技术模型设计时,会使用MVC的设计模式对其进行设计,能够有效搭建起一个较为高效的系统运行框架[4]。ABP框架在服务器端使用了ASP.NET MVC技术,也就是对应项目工程中的展现层。这是ABP分层模式的重要技术,该文将在下一小节中详细介绍MVC分层技术及优势。
1.2 MVC分层技术及分层优势
MVC作为一种非常经典的软件架构分层模式,在系统架构设计中担当着不可替代的角色。MVC用于分层开发,从设计的角度来看,该模式不仅个性化地实现界面及用户交互,并且把交互分配到3个不同角色中[5-6]。其主要有3个核心部件:模型(Model)、视图(View)、控制器(Controller),如图2所示。
在一个MVC应用程序中,视图用来显示信息,并且仅此一项功能,控制器处理用户的输入输出响应,并将处理的值传递给模型,模型进行数据加工,然后返回给控制器。由此实现输入、处理和输出分开。另外模型,经常调用业务逻辑层获取数据、存储数据。例如:一个产品对象,通过Model调用业务逻辑层获取产品对象的信息,然后进行对产品对象进行操作,最后回写到数据库中。Model是数据状态的载体和业务逻辑处理的发起者。
MVC是一种设计模式,它能够有效降低模块间的耦合,降低系统开发周期与难度[7]。MVC分层对于实现复杂的应用程序有极大优势,开发人员只需关注某一方面即可,同时也让应用程序的测试更加容易。其具有低耦合性、分工明确的优点,并且框架具有很强的扩展性。
2 设计接口管理系统系统架构工程实现
根據ABP分层架构,建立设计接口管理系统项目工程,工程模块如图3所示。
其中:
Abp.MongoDB 持久化层;
InterfaceManagement.Data 领域层;
InterfaceManagement.Core 这个是笔者建立的核心层;
InterfaceManagement.Application 对应应用层;
InterfaceManagement.Web 对应展现层;
InterfaceManagement.Web.Api 这个是笔者建立的,提供WebApi服务;
InterfaceManagemnet.WorkFlow 这个是笔者建立的,提供工作流引擎服务。
上文提到,系统使用的ASP.NET MVC技术对应展现层,展现层工程实现如图4所示。
从图4可以明显的看到MVC的3个层次:模型(Model)、视图(View)、控制器(Controller),项目工程具体实现如图5所示。
3 结语
该文详细介绍了ABP框架、ASP.NET MVC等关键技术,并且向读者展示了整个系统的架构层次及工程实现。经过笔者多年的开发经验及实践研究,该文介绍的技术可行有效,并且已经广泛运用到中核能源科技有限公司各大集成管理系统的开发中。在此基础上,经过不断的优化创新,系统综合性能及用户体验均得到有效提升。
参考文献
[1] 陈浩.ABP框架的体系结构及模块系统分析[J].电脑知识与技术,2016,12(32):45-46.
[2] 王素芳,胡必波.基于多层架构的ASP.NET4MVC框架研究[J].电脑与电信,2015(10):64-66.
[3] 郝树青,武彤.ABP框架及其在Web项目开发中的应用[J].计算机技术与发展,2019,29(4):19-23.
[4] 肖洋.基于ASP.NET的MVC框架的应用开发模式研究[J].电子技术与软件工程,2016(2):63.
[5] 刘桃丽,曾志超.MVC架构下网站的设计与实现[J].计算机技术与发展,2020,30(2):188-191.
[6] 马丽,封蕾.基于MVC三层架构的美术资源库的设计与实现[J].电子设计工程,2016,24(15):85-87.
[7] 满高媛.MVC设计模式在ASP.NET框架中的应用研究[J].软件导刊,2016,15(4):149-151.