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
A
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电源保险烧坏,就是因为用于
工作年限在十多年甚至是几十年的设备来说,定期更换电源滤波电
滤波的部分电解电容失效,导致正常电容充放电流过大造成的。我
容是必须的维护项目。
版权声明:本文标题:基于MVC和NHibernate的开发框架研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1711624732a602385.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论