.Net 组件技术概述

时间:2023-11-11 11:23:50

1. 基本原理

组件是组件系统中功能的表现,没有组件就没有功能。特定接口是用于给组件管理程序来操纵、管理该组件,特定功能是组件需要完成的任务。在一个使用组件建立的产品中会随着功能数目的多少而会有多个组件的存在。  组件与组件管理程序的交互通过接口来完成,所以对于一个组件体系,组件接口的定义是很重要的事情。接口的定义描述了组件管理程序与组件的调用规则和交互过程。

2. 组件技术

概念

   : 组件是可独立完成某个或一系列功能的模块.通常组件由宿主程序加载,不能独立运行。

宿   : 宿主是承载组件运行的环境,为组件提供基本服务。通常组件由宿主程序管理和控制。

组件式: 通常是由开发人员编写宿主程序,并预先定义好系统提供基本服务接口和组件接口。然后由其他开发人员根据系统组件接口编写组件功能。通常组件以一个独立功能模块的形式出现。对于宿主程序来说并不知道组件的具体功能,通常宿主启动时检索组件信息,并根据预定的组件接口装载组件。

优势

增强系统扩展性: 在系统发布后可在不必重新编译系统的前提下按需对系统功能进行扩充。

易维护及复用性: 组件通常为独立的功能模块易于管理与维护,并可在多个业务系统中重用。

3. 组件管理

组件管理模块对所有组件进行管理和控制。对组件的管理主要是对本地的所有组件进行登记加载、运行控制、状态维护、停止释放。对组件的控制主要是要对本地的组件实现组件的加载、运行、停止、状态跟踪、组件交互、释放组件;如果平台涉及到网络通讯,那么还要实现对远程机器上的指定组件的运行和停止的控制,实现整个网络内的平台在逻辑上是一个整体,为上层插件应用提供透明的远程组件调用,而不需要关心下层的实现。

接口布局模块主要是了实现了接口表示。由于平台可以动态增加和减少组件,所以对在接口上如何有效布局和显示组件是需要一个方案来实施。接口布局模块更多的与一个产品的关联要大些,其实现对产品的接口需求有一定的依赖。当然如果有其他的应用方面的需求,平台的功能还可以进一步扩展。

4. 组件式架构优势

随着软件规模和复杂性的不断增加,在软件设计中,软件的局部和整体的系统结构显得越来越重要,对此人们提出了软件体系结构的概念。
      根据软件体系结构的发展历程,我们可以把软件体系结构分为四个阶段:无结构、萌芽、初级和高级阶段。自上世纪 90 年代步入高级阶段以来,软件开发的目标是使软件具备较好的自适应性、互操作性、可扩展性和可重用性,软件开发强调采用构件化技术和体系结构技术。
  软件体系结构在软件开发和维护中发挥着重要作用,在软件开发中,软件工程队软件体系结构设计支持的需求越来越迫切。同时越来越多人认可软件体系结构是整个软件设计成功的基础和关键所在,在项目实施和项目维护升级阶段表现尤为明显。在项目的实施阶段,体系结构是建立开发人员的组织、分工、协调开发人员关系和配合的依据。在项目的维护升级阶段,对软件对任何扩充和修改都要在体系结构的指导下进行,以维护整体设计的合理性和正确性,并为维护升级的复杂性和代价分析提供依据。经过长时间的积累,软件开发人员借鉴了硬件组成原理,基于组件式程序设计思想,提出了插件式软件体系结构,这一理论给软件开发工程注入了无限的活力。
  插件式体系结构是一种非常灵活的组件式结构,它把程序的功能分散在插件中来完成。插件是可独立开发的程序模块,它能够动态地插入到系统中,并且可以被*地删除和替换。因此它能够提高软件开发的并行性和开发效率,降低设计开发难度,缩短开发周期,增强应用程序的可运行性、可测试性和可维护性。归纳起来,基于组件技术的软件架构的优势主要为:
      插件体系结构能够提高软件的复用度。
      插件体系机构因为强大的独立性,可以提高软件开发的并行性,为软件产业的大规模生产提供支持。
      插件体系能够缩短软件的研发周期、节约研发成本,带给程序开发人员更多的灵活性,产品在软件发布以后还可以添加新的插件和完善已有的功能。
      插件体系结构方便软件的升级和维护。传统的应用程序因为采用单一的固定的模块,功能模块不易维护和替换,但是插件却可以动态的变更功能,对软件的升级和维护带来很大的帮助。
      插件体系结构可以满足用户不断变化的需求,缩短项目交付周期,而这传统点体系机构很难满足和实现。
      插件体系结构提供了更多的开发可能性,任何对该软件感兴趣的程序员都可以加入软件开发大军中,以集体的力量丰富完善软件。
      ...
      目前,我们看到组件技术已经被成功应用到国内外的多种软件中,如浏览器 chrome,图像处理软件 photoshop,java 开发平台 eclipse,报表开发软件 finereport,社区软件 discuz 等,虽然这些软件都采用了组件技术,但是不同的产品的实现方式也是多种多样和各不相同。然而毫无疑问,随着用户需求的不断增加,边缘创新的不断冲击,软件工程的不断发展,基于组件技术的软件开发方法将得以普及。