• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

多层结构来开发ASP.NET程序

发布: 2007-7-14 20:06 | 作者: 佚名    | 来源: 网络转载     | 查看: 12次 | 进入软件测试论坛讨论

领测软件测试网 最近我们用ASP.NET开发了一个企业内部的软件开发管理系统,这也是我们第一次用ASP.NET,用的语言是C#。下面我着重讲一下我们系统的架构,恳请大家指点。

先讲讲系统开发的背景。系统不大,开发的目的也是用来管理我们公司的软件开发流程,同时达到学习.NET的目的。既然是公司自己的系统,同时还带有学习的目的,所以在系统的架构上,我们也力求结构完整和清晰,而把性能等其他放在第二位考虑。存在很多不完善的地方也是在所难免的,大家带着批判的眼光来看待它就好了:)

系统分为4层,分别为(Web)表示层、(Facade)业务外观层、(Rules)业务逻辑层和(Data)数据层。每层分别属于自己的Project。另外还有一个用于处理共通业务的Project。他们之间互相的调用关系如下所示:
Web --> Facade --> Rules --> Data --> DB

下面分别来讲讲每层的作用和特点:
Data层叫数据层,它负责数据的提取和转换。Data层继承自DataTable。在它上面建立了一个数据库的映射关系,也就是说,数据库的每一个字段在这里都有一个常量和它关联。它封装好了Select,insert和update方法。你可以像操作DataTable那样来操作它,比如取值前先调用Select方法,然后再用oData.GetValue(i,数据库字段的别名)就可以取得值了。插入和更新操作前先用oData.GetValue(i,数据库字段的别名,value)设置值,然后再调用Insert或者Update方法。通过这层,就把数据库的定义和上层业务逻辑分离开了。

Data上面是Rules层。Rules层叫规则层,那它主要做什么呢?其实很简单,Data层相当于是数据库的一个记录集,它可能包括了很多条记录。而Rules这一层则把包含多条记录的Data对象拆分成多个Rules对象,通过提供属性的方式给Facade层调用。在这一层上,根据业务规则做一些处理和检查操作。上一层就可以通过调用Rules对象不同的属性来获取相应的处理后的值。

Facade层叫业务外观层,它在Rules层的上一层。它主要负责一些业务的外观处理,组织多个Rules对象和为Web层提供显示准备等。

最上层就是Web表示层了。它负责处理页面上的一些check和显示的制御等等。

以上结构也是参考了微软的Duwamish 7.0。并且每层的命名完全是按照微软的命名来的。在具体实施的过程中,根据上面的设计,Data和Rules层已经很有规律了,而且数据库的定义是通过我们公司的另外一个系统来管理的,数据库表和列的定义都可以很方便的得到,于是我们制作了一个自动生成Data层和Rules层的小工具,这个小工具能自动生成Data层和Rules层的类,你要做的仅仅是根据你的业务来充实Rules层的类和处理Facade和Web层了,这样就大大地减轻了我们的负担。

系统现在已经编码测试完成正准备投入试用。由于是在企业内部网上使用,也没感觉慢:)。但是性能不好是肯定的了,接下来就是要想办法如何来提高性能了。

在开发的过程中,自己也总是不断的拿它来跟JSP比较。个人ASP.NET还是很不错的,它可以让你象桌面程序开发那样来开发WEB程序,微软也提供了很丰富的控件,但是很多控件感觉有点像鸡肋,好像用起来挺方便,但是却有各方面的缺陷不是很实用。另外VS.NET这套开发工具还有很多Bug,由于是在进行WEB开发的时候(我们用的是2003版)。不过据说VS.NET 2005在2003的基础上改良了很多,很值得期待。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网