赵婉芳
摘要:网络应用系统开发是软件系统构建研究的重点方向,采用组件结构开发网络应用软件系统不仅可以提高开发速度,有效降低开发费用,也利于软件系统的升级维护。本文主要研究了.NET组件技术,以网络应用教学平台为例设计了基于.NET组件的网络应用软件系统结构,并讨论了开发过程中组件类的具体实现过程及实现重点,对于基于组件的软件系统开发有一定的借鉴意义。
关键词:组件技术 公共语言运行库CLR 网络应用软件系统
中图分类号:TP311.5 文献标识码:A 文章编号:1007-9416(2016)07-0055-01
随着网络技术的发展,网络应用系统开发成为软件系统构建研究的重点方向,而基于组件技术开发多层结构的网络应用软件系统,则是近年来应用软件开发领域中的主流技术。在组件技术中用户基于可以重复使用的组件库来构建开发特定的应用软件系统,很好的解决了分层应用系统架构中的代码重用,功能封装以及模块协同工作等问题,不仅缩短了软件开发周期,而且也使得软件的维护升级费用大大降低。
1 NET组件技术
微软公司于1993年提出组件对象模型COM(Component Object Model),该对象模型规定了对象组件之间相互通信的方式及规范,其实现与平台及使用语言无关,同时也支持网络互联技术。COM组件定义有很高的精确性,因此产生代码的方式非常快速有效,但这些优点同时也使得系统开发的不可靠性以及升级扩展的复杂性大大提高,导致com模型缺乏稳固的平台技术。为了解决COM所存在的这些问题,微软公司进一步推出了.NET框架技术,该技术的核心部分是公共语言运行库CLR(Common Language Runtime),它继承并发展于COM技术,完全代替了COM的组件功能,有效的解决了COM组件模型中缺乏稳固的平台技术的问题。在.NET 架构中CLR负责管理程序集的执行,而在.NET的程序集中所包含的CIL标准代码也只能在CLR的支持下才能运行,不能被直接执行。另外,为了提高平台可靠性,达到商业应用所要求的稳定性级别,CLR还负责监视程序的运行等其他任务。下图1-1展示了.NET程序集与CRL的相互关系。
2 基于.NET组件的网络应用软件系统研究
基于组件技术的三层网络软件平台系统结构一般划分为三层,分别是用户层,业务逻辑层,数据层。系统通过分层架构实现了分布式数据处理,并将所有对数据库的访问及包含教学信息的事务全部封装起来,将用户与数据隔离,有效地保证了数据库和系统的安全,有着更高的安全性。此外业务逻辑层采用组件技术开发,以达到提高系统灵活性并且易于移植目的。下面以网络应用软件系统中的教学系统为例来深入分析研究网络应用软件系统的开发设计过程及重点。
应用逻辑层是表示层和数据层之间的中间层,主要负责实现整个应用系统的核心功能,因此也是技术要求最复杂的一层。在该层的开发中,首先需要采用面向对象建模的方法分析系统业务活动中所涉及的主要对象,然后参考系统功能模型,抽象并提取出包含业务逻辑的组件对象来实现具体的系统功能。因此应用逻辑层主要由不同的功能模块构成,而不同的功能模块又由基于组件技术构建的不同业务组件构成。教学平台系统中主要实现的功能有:课堂学习、视频点播、在线讨论、问题解答、作业提交、个性化自测评价、公告栏等。
数据层是整个系统的基础,一般包含有用户信息数据库、教学资源数据库、知识结构数据库。在用户信息数据库中主要存放教师、学生及管理人员的基本信息。教学资源数据库主要包括教案、课件、练习、试题等资源,是系统中的核心数据库。知识结构数据库主要对信息资源进行组织管理。数据层一般采用存储过程来实现对底层数据的访问,与业务逻辑层不在同一台机器上,可以通过Internet相连,并使用数据库系统的公用接口标准进行访问。 这样的分层教学平台系统而数据访问的是通过标准的数据访问接口,所以和跟所使用的数据库无关,在.NET体系中一般选用sql server数据库。基于.NET组件网络软件应用系统结构图如下图2-1所示。
3 NET组件的具体开发实现
组件的实现主要涉及到组件和容器概念。构造组件的模版在组件中定义提供;而容器中则定义了组件之间有效结合的方法,提供环境来支持组件之间的结合和交互。组件的开发实现主要包括编写组件类,编译和分发组件过程。
.Net组件使用类和接口来实现,一个.Net组件一般位于一个命名空间下,.net framework的核心语言是C#, C#所有的代码都必须封装在一个类中,因此在编写组件类前首先要创建一个命名空间(namespace)来封装这个组件中的类,只要知道该命名空间,即可方便地创建对象,不再像COM一样需要复杂的创建函数来创建组件。注意命名空间的使用有很多种方法,可以嵌套命名空间,也可以在一个源文件里声明多个非嵌套的命名空间,还可以将命名空间内部的类分别写在多个文件中。在创建完命名空间后就可以在其中创建类,每个类都中都必须定义构造函数,构造函数和类同名,没有返回值类型前缀,因此也没有返回值。当用户新建一个实例类时,构造函数会随之自动执行,而C#的垃圾收集机制则会开始对这个实例进行管理并且在不需要时进行资源的回收。最后编写类中的具体功能函数就完成一个组件类的编码过程。组件类编写完成后,接下来要做得是把该类编译成.dll文件,由于.dll文件的内容已经提前编译完毕,在发布过程中不需要进行再次编译,因此这种方式可以大大提高程序运行速度,而且对后台源代码能够进行有效保护,提高安全性。当生成的dll组件 (程序集)后,任何一种.Net平台支持的语言就可以对该组件进行调用了。
4 结语
采用组件结构开发软件可以缩短开发时间,减少集成费用,同时降低系统维护难度。随着网络应用系统复杂度的日益提高,利用组件技术开发应用软件系统的需求也越来越迫切,因此基于组件技术的多层结构网络应用系统研究将会是软件开发领域的热点之一,并且会受到越来越多的关注。
参考文献
[1]马良.基于com 组件技术和BS体系开发应用系统[J].技术与创新管理,2009,7.
[2]秦伟俊,史元春.基于多层体系结构的网络教学系统[J].清华大学学报,2006,7.