.Net 组件技术概述
1. 基本原理
组件是组件系统中功能的表现,没有组件就没有功能。特定接口是用于给组件管理程序来操纵、管理该组件,特定功能是组件需要完成的任务。在一个使用组件建立的产品中会随着功能数目的多少而会有多个组件的存在。 组件与组件管理程序的交互通过接口来完成,所以对于一个组件体系,组件接口的定义是很重要的事情。接口的定义描述了组件管理程序与组件的调用规则和交互过程。
2. 组件技术
概念
组 件: 组件是可独立完成某个或一系列功能的模块.通常组件由宿主程序加载,不能独立运行。
宿 主: 宿主是承载组件运行的环境,为组件提供基本服务。通常组件由宿主程序管理和控制。
组件式: 通常是由开发人员编写宿主程序,并预先定义好系统提供基本服务接口和组件接口。然后由其他开发人员根据系统组件接口编写组件功能。通常组件以一个独立功能模块的形式出现。对于宿主程序来说并不知道组件的具体功能,通常宿主启动时检索组件信息,并根据预定的组件接口装载组件。
优势
增强系统扩展性: 在系统发布后可在不必重新编译系统的前提下按需对系统功能进行扩充。
易维护及复用性: 组件通常为独立的功能模块易于管理与维护,并可在多个业务系统中重用。
3. 组件管理
组件管理模块对所有组件进行管理和控制。对组件的管理主要是对本地的所有组件进行登记加载、运行控制、状态维护、停止释放。对组件的控制主要是要对本地的组件实现组件的加载、运行、停止、状态跟踪、组件交互、释放组件;如果平台涉及到网络通讯,那么还要实现对远程机器上的指定组件的运行和停止的控制,实现整个网络内的平台在逻辑上是一个整体,为上层插件应用提供透明的远程组件调用,而不需要关心下层的实现。
接口布局模块主要是了实现了接口表示。由于平台可以动态增加和减少组件,所以对在接口上如何有效布局和显示组件是需要一个方案来实施。接口布局模块更多的与一个产品的关联要大些,其实现对产品的接口需求有一定的依赖。当然如果有其他的应用方面的需求,平台的功能还可以进一步扩展。
4. 组件式架构优势
随着软件规模和复杂性的不断增加,在软件设计中,软件的局部和整体的系统结构显得越来越重要,对此人们提出了软件体系结构的概念。
根据软件体系结构的发展历程,我们可以把软件体系结构分为四个阶段:无结构、萌芽、初级和高级阶段。自上世纪 90 年代步入高级阶段以来,软件开发的目标是使软件具备较好的自适应性、互操作性、可扩展性和可重用性,软件开发强调采用构件化技术和体系结构技术。
软件体系结构在软件开发和维护中发挥着重要作用,在软件开发中,软件工程队软件体系结构设计支持的需求越来越迫切。同时越来越多人认可软件体系结构是整个软件设计成功的基础和关键所在,在项目实施和项目维护升级阶段表现尤为明显。在项目的实施阶段,体系结构是建立开发人员的组织、分工、协调开发人员关系和配合的依据。在项目的维护升级阶段,对软件对任何扩充和修改都要在体系结构的指导下进行,以维护整体设计的合理性和正确性,并为维护升级的复杂性和代价分析提供依据。经过长时间的积累,软件开发人员借鉴了硬件组成原理,基于组件式程序设计思想,提出了插件式软件体系结构,这一理论给软件开发工程注入了无限的活力。
插件式体系结构是一种非常灵活的组件式结构,它把程序的功能分散在插件中来完成。插件是可独立开发的程序模块,它能够动态地插入到系统中,并且可以被自由地删除和替换。因此它能够提高软件开发的并行性和开发效率,降低设计开发难度,缩短开发周期,增强应用程序的可运行性、可测试性和可维护性。归纳起来,基于组件技术的软件架构的优势主要为:
插件体系结构能够提高软件的复用度。
插件体系机构因为强大的独立性,可以提高软件开发的并行性,为软件产业的大规模生产提供支持。
插件体系能够缩短软件的研发周期、节约研发成本,带给程序开发人员更多的灵活性,产品在软件发布以后还可以添加新的插件和完善已有的功能。
插件体系结构方便软件的升级和维护。传统的应用程序因为采用单一的固定的模块,功能模块不易维护和替换,但是插件却可以动态的变更功能,对软件的升级和维护带来很大的帮助。
插件体系结构可以满足用户不断变化的需求,缩短项目交付周期,而这传统点体系机构很难满足和实现。
插件体系结构提供了更多的开发可能性,任何对该软件感兴趣的程序员都可以加入软件开发大军中,以集体的力量丰富完善软件。
...
目前,我们看到组件技术已经被成功应用到国内外的多种软件中,如浏览器 chrome,图像处理软件 photoshop,java 开发平台 eclipse,报表开发软件 finereport,社区软件 discuz 等,虽然这些软件都采用了组件技术,但是不同的产品的实现方式也是多种多样和各不相同。然而毫无疑问,随着用户需求的不断增加,边缘创新的不断冲击,软件工程的不断发展,基于组件技术的软件开发方法将得以普及。
.Net 组件技术概述的更多相关文章
- 【VS开发】COM组件技术概述
这篇文章对COM做出来比较完整的解释,非常好. COM是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术.在COM构架下,人们可以开发出各种各样功能专一的组件,然后将它 ...
- (转)Eclipse平台技术概述
转载:周金根 http://zhoujg.blog.51cto.com/1281471/516833 Eclipse:Eclipse平台技术概述 2010-10-19 13:35:00 标签:E ...
- IM-即时通讯技术概述
IM-即时通讯技术概述 简述 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容.大多数常用的即时通讯发 ...
- vue项目实现按需加载的3种方式:vue异步组件技术、es提案的import()、webpack提供的require.ensure()
1. vue异步组件技术 vue-router配置路由,使用vue的异步组件技术,可以实现按需加载. 但是,这种情况下一个组件生成一个js文件. 举例如下: { path: '/promisedemo ...
- iPhone之IOS5内存管理(ARC技术概述)
ARC(Automatic Reference Counting )技术概述 此文章由Tom翻译,首发于csdn的blog,任何人都可以转发,但是请保留原始链接和翻译者得名字.多谢! Automati ...
- 微信团队分享:iOS版微信的高性能通用key-value组件技术实践
本文来自微信开发团队guoling的技术分享. 1.前言 本文要分享的是iOS版微信内部正在推广和使用的一个高性能通用key-value 组件的技术实践过程,该组件在微信内部被命名为MMKV(以下简称 ...
- HiCar技术概述
HiCar技术概述 HUAWEI HiCar(以下简称 HiCar)是华为提供的人-车-家全场景智慧互联(HUAWEI HiCar Smart Connection)解决方案,具备如下特点: 安全交互 ...
- HDFS(Hadoop Distributed File System)的组件架构概述
1.hadoop1.x和hadoop2.x区别 2.组件介绍 HDFS架构概述1)NameNode(nn): 存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个 ...
- [转载]WEB缓存技术概述
[原文地址]http://www.hbjjrb.com/Jishu/ASP/201110/319372.html 引言 WWW是互联网上最受欢迎的应用之一,其快速增长造成网络拥塞和服务器超载,导致客户 ...
随机推荐
- maven 本地仓库的设置
设置方式一: 安装好maven后,在maven安装目录的conf文件夹下有一个settings.xml文件,该文件就是用来配置maven的一些常用参数 %MAVEN% / conf / setting ...
- [C++]VAssistX函数添加注释功能设置
问题情况:每次手写注释太慢,而且不系一.问题原因:C++可以利用宏写注释,也可以使用VAssistX提供的方法.问题处理:1.安装VAssistX在VS2010上 2.VS2010菜单->VAs ...
- ASP.NET MVC中防止跨站请求攻击(CSRF)
转载 http://kevintsengtw.blogspot.co.nz/2013/01/aspnet-mvc-validateantiforgerytoken.html 在 ASP.NET M ...
- 【UNIX】select、poll、epoll学习
三者都是UNIX下多路复用的内核接口,select是跨平台的接口,poll是systemV标准,epoll是linux专有的接口,基于poll改造而成. select 函数原型: int select ...
- 编写一个Shape类,具有属性:周长和面积; 定义其子类三角形和矩形,分别具有求周长的方法。 定义主类E,在其main方法中创建三角形和矩形类的对象, 并赋给Shape类的对象a、b,使用对象a、b来测试其特性。
package shape; public class Shape { //定义成员变量 private double zhouchang; private double mianji; public ...
- spring aop 的一个demo(未完,待完善)
假设我们有这样的一个场景 : 对于一个类的众多方法,有些方法需要从缓存读取数据,有些则需要直接从数据库读取数据.怎样实现呢? 实现方案有多种.下面我说下常见的几种实现方案 : 1.直接采用spring ...
- Unity3d 使用NPOI读写Excel 遇到的问题
开发环境:unity5.3 NPOI(.net 2.0版 http://npoi.codeplex.com/) 运行环境:PC版, 其他平台没有测试 先上效果图: 实现步骤: 1.新建一个Exce ...
- js与java通信
js 调用java中的接口并传递参数给客户端处理方式: webView.addJavascriptInterface(new NewsDetail() , "newsDetail" ...
- CentOS 下SSH无密码登录的配置
CentOS 下SSH无密码登录的配置 最近学习Hadoop.它要求各节点之间通过SSH无密码登录,配置SSH的时候费了一番功夫,记录下来,以备忘. 配置SSH无密码登录需要3步: 1.生成公钥和私钥 ...
- iOS开发——swift精讲&MVC应用实战
MVC应用实战 iOS开发中设计模式是很重要的,其中,使用最多的就是MVC模式,今天就简单介绍一下在Swift中这么使用MVC模式来实现我们想要的功能: 模型-视图-控制器(Model-View-Co ...