admin 管理员组

文章数量: 1184232


2024年3月28日发(作者:向下四舍五入函数)

应用研究 黜 苎查孵 

。I与应用 

的开发框架研究 

余文芳,牛栩z 

(1.国防信息学院湖北武汉430010;2.海军北海舰队山东青岛266000) 

摘要:本文在分析和对比目前主流开发框架的基础上,提出了一种.NET平台下基于MVC和NHibernate的开发框架;同时,对框架中各层的 

功能进行了详细的设计。该开发框架可以提高软件开发的效率,以及系统的可维护性、可扩充性和可移植性。 

关键词:MVC NHibernate开发框架 

中图分类号:TN 文献标识码:A 文章编号:1007—9416(2012)02—0088—02 

1、引言 

软件在开发过程中,如果没有一个好的设计模式和开发框架, 

则需要编写大量的基础代码,这无疑降低了开发效率;同时,从基础 

源代码着手开发的套装软件或定制软件往往都具有较高的耦合度, 

维护困难。因此,开发人员逐渐把软件开发的重点从数据结构和算 

法转向设计模式和开发框架上。 

MVC(Model-View—Controller)是目前软件开发中广泛采用 

的一种设计模式。它把一个web应用分离为模型、视图和控制器三 

个部分,使得系统结构清晰,利于维护和扩展。NHibernate是 

Microsoft.NET的ORM持久化框架,从Java的Hibernate项目移植 

而来。NHiberna ̄框架从数据库底层来持久化.Net; ̄象到关系型数 

据库,使软件代码仅仅和对象关联,从而摆脱了SQL、ADO.NET和 

事务、缓存等底层开发。本文在分析目前主流开发框架的基础上,将 

MVC设计模式与NHibernate框架有效整合,来降低系统总体架构 

的藕合度和业务模型的开发难度。 

2、主流的开发框架 

2.1 SSH开发框架 

SSH开发框架是指在J2EE平台下融合了Struts、Spring和Hi 

bernate的开发框架,其体系结构如图1所示。 

表示层 业务层 持久层 

_J\ Hibernate数据 

Web Structs MVC Spring事务处理 源/连接池 

浏 数 

览 据 

器 

St

ructsAction, Hibernate Q崖 

ctionForm. Session管理 和Hi

uery语言支持 

bernate其 

JSP,StructS-

config xml等 

 

他服务 

业务服务类 

I .苎堡竺 翌墨 J 

图1 SSH开发框架 

其中,StrutS是典型的基于MVC设计模式的框架,主要用于表 

示层的构建,具体实现是通过控制器将表现逻辑和业务逻辑解藕, 

以提高系统的可维护性、可扩展性和可重用性;Spring是一个模块 

化的框架,主要负责业务逻辑层的构建,允许开发人员自由选择适 

合的模块进行开发;Hibernate是一个开放源代码的对象关系映射 

框架,主要负责持久层的构建,对JDBC进行了轻量级的对象封装, 

支持开发人员使用对象编程来操纵数据库。 

2.2 ASp-NET WebForm三层开发框架 

⑧ 图2 ASP.NET WebForm三层开发框架 

在.NET平台下,ASP.NET本身就是一个基于事件响应的web 

开发框架,但是结构单一、层次不够分明。因此,在客户端与数据库 

之间加入~个“中间层”(即组件层),出现了三层开发框架,如图2 

所示。 

其中,表示层是展现给用户的界面,即用户在使用一个系统时 

的所见所得。业务逻辑层实现对数据层的操作,完成对数据业务的 

逻辑处理;数据访问层直接操作数据库,实现数据的增加、删除和更 

新等。 

2.3 ASP.NET MVC开发框架 

ASP.NET MVC是微软开发的一个实现MVC设计模式的Web 

开发框架,由Castle的Monorail(一种MVC web开发框架)演变而 

来,其结构如图3N示。 

图3 ASP.NET MVC开发框架 

其中视图可以通过在ASPX页面中开发用户接口来实现;控制 

器的功能在逻辑功能代码中实现;模型通常与应用系统的业务部分 

和数据库对应。 

以上三种主流开发框架中,J2EE平台的SSH开发框架在大型 

项目开发过程中比.NET平台的开发框架具有更大的优势: 

(1)易于进行单元测试和测试驱动开发; 

(2)避免了WebForm中大量视图状态所导致的页面反应缓慢; 

(3)模块化结构,易于大型项目的团队化开发。 

因此,本文借鉴ssH开发框架的优势,对.NET平台下的开发框 

架进行扩充,设计实现了一个.NET平台下的多层开发框架。 

3、.NET平台下基于MVC和NHibernate的开发框架 

3.1总体框架 

该开发框架利用NHibernate框架构建了持久层,并借鉴了 

WebForm开发框架分层结构设计,在持久层与控制器之间增加了 

中间层,对数据和功能组件进行了封装,提供了统一接口供控制器 

调用。其体系结构如图4所示。 

3.2分层描述 

3.2.1模块管理层 

由于该框架是主要针对大型项目的开发,因此,各功能模块之 

间要求一定的解耦。本层主要实现各粗粒度模块间的相互调用以及 

对外提供接口。 

3.2.2表示层 

表示层用于呈现客户端的用户视图,负责从用户接收命令,请 

求和数据传递给控制器,并最终将结果封装后呈现给用户。 

该框架为视图提供了自定义的视图引擎、模板和CSS样式表。 

根据视图引擎和视图对象的不同,视图可以呈现不同的页面类型 

和内容。同时,框架还可以应用JQuery技术,用来实现页面的异步 

显示和美化。 

嘶●十 

应用研究 

术一甩 

[ 客户端浏览器 : 

层,并向应用接口层提供业务逻辑接口。 

3.2.6数据访问层 

表示层 ASPNET MVC 模块管理层 

该层通过持久层提供的NHibernate API函数或者SQL语句, 

直接操作持久化类,对数据进行增添、删除、修改、更新、查找等操 

l Jquery I一. 

/L-_ 

作,并向应用接口层提供数据访问接口。 

T I 

、厂一 协调各模块,提 

供对外接口 

3.2.7持久层 

J 

调用接E1l1 . 

所谓持久化,即把数据保存到可永久保存的存储设备中。该开 

ll 

, 

发框架在持久层中建立一个持久化类,它是数据库表的一个映射。 

持久化类和NHibernate API(指Session类)关联后,就具有了持久 

中 

化能力。持久化类通过Session类进行装载、保存、创建或查询(可采 

l层 司 ( 业务逻辑层 卜一J 

用HQL或其他方式以面向对象方式对持久化类进行查询)。对持久 

化类做的任何修改都会在Session ̄lJ新(lfush)时被持久化到对应数 

据库表中。 

l1 

3.2.8数据源 

对象O I IHQL/SQL 

r I 

开发框架除了支持常用的关系型数据库,? ̄I:ISQL Server, 

Oracle,DB2等,还支持对其他系统模块接口和数据源的调用。 

持 

久 Hiberna e 

I NHibernate API I 

XML 

4、结语 

层 .cfg ̄m, I 持久化类(Po) l Mapping 

综上所述,M C设计模式使软件开发过程更加规范和精炼,能 

ll 

SQL语句 夕 l 关系R 

产生易复用、易扩展、易维护的程序代码。NHibemate框架使开发人 

, 

员从枯燥的SQLN句中解放出来,将更多的精力投入到业务逻辑的 

数据源 闺 I其他系统模块接ul 

实现上。本文将MVC设计模式和NHibernate框架进行整合,提出了 

个.NET平台下的多层开发框架,并详细设计了框架中各层的功 

能。可以发现,该开发框架增加了模型(Mode1)部分的重用性,降低了 

图4.NET平台下基于MVC和NHibernate的开发框架 

层与层之间耦合度,提高了系统的可维护性、可扩充性和可移植性。 

3.2.3控制器 

参考文献 

ControlleriN用应用接口层接口对数据进行操作;同时,调用相 

[1]陈龙.基于.NET平台ORM技术一NHibernate的研究与应用[D].长 

应的组件功能,执行用户通过视图传递的相关指令,并将封装后的 

春:长春理工大学,2006. 

视图类传递给视图。 

[2]赵广利.基于NHibernate的数据持久化方案[J].计算机工程。2009。 

3.2.4应用接口层 

35(20). 

该层针对数据访问接口和业务逻辑接口,将其封装后供控制器 

[3]沈桂群.基于ASP.NET的MVC设计模式及实现[J].软件开发与设 

进行调用,本身不包含任何业务逻辑。 

计。2009(1 O). 

3.2.5业务逻辑层 

[4]李容.基于MVC模式的Web应用研究[J].软件导刊。2010,9(1). 

系统的核心层,所有与数据访问无关的业务逻辑都内聚在该 

[5]舒娥.一种MVC框架的设计研究[J].软件导刊,201 0,9(7). 

们对PB2机柜的电容进行测量,发现55个用于250V电源滤波的电容 

250vDc ̄

仅有13个容值在4000uF以上,其他的42个已经完全失效,占77%,总 

久 一 一 一 \ 

的容值不到标称容值的20%,扩展机柜更是仅有2个正常。拆卸下来 

嗵 

几只电容,发现重量明显较轻,里面电解液已经很少,晃动时有声 

音,用电容表测量,无电容值,已经完全失效。 

经检查,经常烧坏保险的部位电容都是正常的(多在左机柜和 

中机柜),而电容完全失效的部位则没有烧坏过保险(扩展机柜),这 

个上述分析完全一致。 

因此,要彻底解决电源保险经常烧坏的问题,必需换掉那些已 

晦 警 

经失效的滤波电容。由于备份的电容有限,每天还要维持近18个小 

时的播音,我们先进行了部分更换,在对每个PB更换了约2o4"新的 

电容后,发射机已经能正常工作,加测试信号至90%调幅,也没有再 

出现烧坏保险的现象,测三大电声指标均有所提高。 

对DX600中波发射机来说,当高功率运行时,若出现有高调制度 

1RI R‘ I ^II一 一C 台‘ 

导致35A保险烧坏的现象,则表明有滤波电容失效了,需要对其进行 

检查,如不及时处理,会造成电容失效加快和保险大量烧坏的后果。 

高序位射频放大器供电的电路中的电容更容易失效,这是因为 

高序位的放大器开通关断更为频繁,电容充放电次数多造成的。 

图3射频放大器供电通路示意图 

这时电容的失效率很低,一般表现为容量缓慢减少,ESR逐渐变大, 

4、结语 

这些均是电解液减少而造成的。(3)达到使用寿命后的失效。这是电 

在电源滤波电路中使用的电解电容,其使用寿命是有限的,早 

解电容性能急聚恶化,失效率迅速变大。 

期由于技术不成熟,电器中经常会出现电容“爆浆”的现象。现在随 

着技术的发展,电容的使用寿命有了显著的提高,一般小型的电器, 

3、故障的处理以及一些维护经验 

在其使用年限内,已经不需要更换滤波电容。但是对于大功率,而且 

根据上述分析可以判断出,35A电源保险烧坏,就是因为用于 

工作年限在十多年甚至是几十年的设备来说,定期更换电源滤波电 

滤波的部分电解电容失效,导致正常电容充放电流过大造成的。我 

容是必须的维护项目。 


本文标签: 开发 框架 电容 进行 业务