[转载]AgileEAS.NET应用开发平台介绍 – 魏琼东 – 博客园.
介绍
AgileEAS.NET应用开发平台,简称EAS.NET,是基于敏捷并行开发思想以及.NET构件技术而开发的一个应用系统快速开发平台,用于帮助中 小型软件企业建立一条适合快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的,AgileEAS.NET应用开发平台包含基 础类库、资源管理平台、运行容器、开发辅助工具等四大部分,资源管理平台为敏捷并行开发提供了设计、实现、测试等开发过程的并行,基于 AgileEAS.NET平台的应用系统的各个业务功能子系统,在系统体系结构设计的过程中被设计成各个原子功能模块,各个子功能模块按照业务功能组织成 单独的程序集文件,各子系统开发完成后,由AgileEAS.NET资源管理平台进行统一的集成部署。
AgileEAS.NET应用开发平台也是为应用信息系统开发而提供的一组低层功能集合及开发支撑平台,应用信息系统的开发建立在此平台之上,采用构件 式、可复用开发,节省开发成本,加快开发速度,在软件开发上更好的作到多快省。
AgileEAS.NET平台的核心思想是包含两点,一是基于DotNET构件技术的插件式开发,二是基于敏捷并行开发方法以的构件并行,即应用系统的构 件(模块)同步并行开发,由平台进行总装集成。
起源
2004年我们做一个农业系统的项目,当时我们开发上没几个人,.NET应该刚刚应用于公司不久,以当时的技术力量根本不可能按期交付,所以我们想到了把 某部分模块外包给其他公司。
作为一个新的尝试和创新,我们在对项目进行了自顶向下的细分,把项目分为子系统,子系统分解子系统和模块,模块做为不可细分的业务功能,以模块为计量单位 进行分包。各模块相互独立的进行开发,开发完成后进行集成、测试。
为了适合这种创新,我们要求模块的开发要遵守一定的约定,即一种契约;我们还需要一个能集成、管理和调用这些模块的一套应用程序,即平台。这样就形成了一 种平台+模块(插件)架构。
为此,我们按此思路开发了EAS.NET的最初版本,包含模块的所遵守的接口和一套能够管理、调用模块的WinForm应用程序,当然,最初版本也提供了 基于账号、角色与模块之间的权限管理部分以极一部分基础函数库。
这就是AgileEAS.NET的最早起源,也是EAS.NET的支撑思想“并行开发”的基础。
结构
以上文字简单的对EAS.NET起源及理念做了一个简单的介绍,从以上文字我们知道,EAS.NET平台的核心理念涵盖两个方面,第一方面是基于一种软件 工程的实践,插件模块独立并行开发和总装集成的一种思路,第二方面则是利用.NET技术(反射调用)实现了这种思想。由此可知EAS.NET应该包含以下 四部分内容:第一、软件过程工程的支持,第二、插件标准与平台(运行容器),第三、插件的组织及管理,第四、支持插件快速开发的技术及工具。
上图是AgileEAS.NET平台的架构简图,也许看第一眼也不甚明白,我会在后面专门就AgileEAS.NET架构做详细解释,下面我把各部分简要 说明一下。
插件契约定义了一组插件开发的接口,实现这些接口的模块可以被运行容器调用,并可以被资源管理平台所管理。
基础类库是一组用于支持快速开发插件模块的基础组件库,包含IOC、ORM、AOP、UDA、Session等基础类库。
服务容器实现了一个服务插件运行容器,可以动态的调用服务插件,服务插件是实现了插件契约的企业服务组件。
分布式通信/传输服务基于消息技术实现了支持分布式开发所需要的数据通信支持,目前支持传输基础数据类型及ORM组件。
插件运行容器是一组能实现插件调用的一组应用程序,它能实现加载插件并依据权限执行插件的业务功能,目前实现了WinForm、SmartClient、 WebForm、ActiveXForm四件插件运行容器。
资源管理平台是基于插件运行容器的一组插件集合,业务功能包含集成、管理、组织插件、管理账户及角色以及基于插件/角色(账户)的权限机制,目前,资源管 理平台基于WinForm、SmartClient、ActiveXForm运行容器基于实现。
项目管理工具提供基于“并行开发”这种模式的项目管理工具。
辅助工作是一组用于支持快速开发插件模块的基础应用工具,包括插件调试环境、ORM设计器、代码生成器、报表系统等。
AgileEAS.NET自2004年起应用于诸多MIS项目,我也一直忙于生计,没有想去过推广,只是一直在慢慢的完善,很多时间很想写点东西,但一直 都没有去写,最近无事在家休息,就整理了一下这些东西,发到博客园和大家探讨和交流。
我会坚持把这东西写的能让大家明白,在以后的文章中,我会分别将各部分进行详细听介绍,在适当的时候提供给大家下载,也希望大家支持和拍砖。