您的位置:首页 > 编程语言 > ASP

实战揭秘:开发.Net平台应用系统框架 (4)

2007-04-11 10:18 726 查看
 业务外观层

业务外观层为 Web 层提供处理、浏览和操作的界面。业务外观层用作隔离层,它将用户界面与各种业务功能的实现隔离开来。

业务外观层只是将已经完成的系统功能,根据各个模块的需要,对业务规则进行高层次的封装。

框架没有规定采用在业务外观层采用何种实现方式,但是建议使用Web Service来提供服务。采用IIS为Web服务器,可以很方便的部署Web Service。

· Web层

Web 层为客户端提供对应用程序的访问。Web 层由 ASP.NET Web 窗体和代码隐藏文件组成。Web 窗体只是用 HTML 提供用户操作,而代码隐藏文件实现各种控件的事件处理。

通常,对于数据维护类型的ASP.NET Web 窗体和控件事件处理代码,我们提供了工具来生成,减轻开发工作量。

除了上述6个逻辑层以外,系统通常还包括一个系统配置项目,提供应用程序配置和跟踪类。

框架服务的设计策略

为了能够很好的支持上面所述的系统架构,我们需要一套核心的类库,以实现对构筑其上的应用软件的支持。这样,在具体每个应用系统的开发时,可以省略很多基础性的工作,提高开发的效率。在这个方面,我们设计了以下核心类和接口:

· EntityData:定义实体类的通用结构

· IClassBuilder:定义实体类结构构造的结构。我们预定义了根据这个接口实现的几个标准类:AbstractClassBuilder、SingletableClassBuilder、ThickClassBuilder、StandardClassBuilder。这些Builder通过ClassBuilderFactory进行管理。

· IEntityDAO:定义实体控制类的接口

· EntityDataManager:提供对所有实体类的缓存管理和查找服务

· DBCommon:封装数据库操作

· ApplicationConfiguration:记录系统配置

· SqlManager:管理系统的SQL语句及其参数。

通过这些核心的类和接口,框架能够为应用系统提供如下服务:

· O-R Map:对象-关系数据库映射服务

这部分完成应用程序中的实体对象同关系型数据库的映射,主要为数据实体层提供服务。

在这个部分中,定义了JIXML实体-对象映射语言。这是我们开发的一种使用XML来描述对象-实体间的映射关系的规范语言,开发者可以使用它来描述对象-实体间的映射关系。开发者也可以直接扩展IClassBuilder接口,手工完成对象-实体间映射关系的代码。系统在运行时刻,会根据配置文件的设置,调用实体类的构造器,动态构造出实体对象的结构。

· Database Access:数据库访问服务

这个部分提供对数据库访问的服务。在这个框架上构建的应用软件系统,不直接操纵数据库,而是通过类库提供的数据访问服务来进行。数据库访问服务作为应用程序同数据库之间的中介者,能够有效防止对数据库的不安全操作。

数据库访问服务同时提供了对数据库库事务处理的调用方法,开发者可以很方便的通过数据库访问服务调用数据库的事务处理功能。

· DML Search:数据操纵语句查询服务

在系统架构中,对数据库进行操作的SQL语句不在程序中硬编码,而是同数据实体层的实体类结构一样在XML文件中描述,其结构符合JIXML规范。这些操纵语句中的基本部分,如数据的插入、删除、修改、查询等语句,可以通过我们自己开发的工具生成。这样,在系统的便于修改性和灵活性上能够得到很大的提高。这样一来,系统必须提供这些数据操纵语句的查询服务。核心类库提供了在XML文件中查找这些数据操纵语句和相关参数的服务。

· Entity Buffer&Search:实体对象缓存&查找服务

系统中的实体对象在第一次创建后,就被系统缓存起来,当系统第二次需要访问该对象时,不需要再从头创建这个对象,而只需要从缓存中取出即可。这就是框架提供的实体对象缓存服务。同这个服务相关联的是实体对象的查找服务,即从这些缓存的实体对象中寻找相应的实体对象的服务。

· Transaction:事务处理服务

我们充分利用Windows COM+事务处理机制的强大功能,使在应用程序能够充分使用事务处理的功能,保证应用系统的稳定性和可靠性。

当某个类需要使用事务处理功能时,首先使该类继承System.EnterpriseServices名称空间下的ServicedComponent类,然后使用如下方式申明该类使用的事务类型:[Transaction(TransactionOption.Required)]。系统在该类第一次被调用时,自动在COM+服务中注册中该类,使得应用程序可以使用COM+的事务处理功能。

系统支持如下几种事务处理类型:

成员名称说明
Disabled忽略当前上下文中的任何事务。
NotSupported使用非受控事务在上下文中创建组件。
Required如果事务存在则共享事务,并且如有必要则创建新事务。
RequiresNew使用新事务创建组件,而与当前上下文的状态无关。
Supported如果事务存在,则共享该事务。
同时,为了简化开发,我们还为这个框架设计了一个开发工具,并且作为插件集成到VS.Net的开发环境中,能够大大减少开发的代码编写工作量。

这样,通过以上这些工作,我们达到了以下目标:

· 有了一个非常清晰的系统架构

· 因为有了一套核心的类库来为应用系统提供服务,使得我们在后面的开发过程中可以减少很多基础性的工作

· 有了自己的有针对性的开发工具,能够减少大量的重复编码的工作。

为了读者能够更好的了解系统的结构,附上一个Demo工程(下载Demo工程)。这是一个简单的仓库入库的示例,基本上展示了这个框架的应用系统的结构和核心类库的使用。

不得不看得实战内容:利用.Net框架开发应用系统

作者简介:孙亚民,1998年毕业于南京大学,现任苏州迪讯软件开发有限公司技术总监,熟悉J2EE架构、.Net以及C#语言。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐