.Net开发一直缺少一个强大的先进的开发框架。微软在.Net方面的宣传和文档总是让人感觉在不断的纠缠一些技术细节,一直没有像J2EE那样从整体为采用.Net技术开发中小型企业应用软件的开发人员指出一个清晰的开发框架。Petshop和Duwamish这样的范例太小了,并且很落后于当前的开发水平,无法体现一些类似IoC容器,AOP,OR Mapping等流行的开发理念。而类似MBF这样的由微软官方推荐的企业架构又太过于庞大,并且特定于一些类似Biztalk,Sharepoint这样的商业产品,给一些中小型企业软件软件商带来很大的压力。

这些做法其实是基于利益最大化而考虑的,微软做为一家非常优秀的商业公司,这么做本身也无可厚非。但是如果抛开一些商业上的因素,熟悉.Net技术的人一定会知道.Net其实是一个技术非常先进的优秀开发平台,并且绝对有能力可以实现一个类似J2EE这样的开发架构。许多开源界的软件开发人员也知道这一点,并且世界上也有许多优秀的程序员已经做出了卓越的贡献,创造了有名的Castle、Spring.Net、Aspect#、NHibernate等。这些项目已经为构建一个“类J2EE”的的.Net开发架构做好了充分和必要的条件。

而Agile Framework则是Agilelabs Team为了这个目标尽自己的努力的成果。

Agile Framework框架是一个为了帮助快速搭建企业级应用程序的基础性平台。它采用了.Net 2.0技术,充分利用了面向对象、Web Service、多层结构、分布式部署、IoC容器、智能客户端、ORM、动态插件、工作流等先进技术,并完美的体现了SOA的设计理念。达到降低耦合、提高重用,增加系统的灵活性和可扩展性,提高开发效率和质量,节约开发成本的效果。

Agile Framework不会像微软的官方解决方案一样,只考虑使用自家的技术,也不会像某些开源社区项目一样,非开源免费产品不用,追求所谓的“零成本”,“开放”、“跨平台”。Agile Framework会尽量站在用户的角度替用户考虑问题,博采众长,综合利用各种最合适的,最优秀的技术或产品,在合理的成本条件下为用户提供一套性价比最好、最实用的软件系统。

Agile Framework框架是根据最新的Smart Client、MonoRails WebFramework、Castle IoC容器、WWF工作流引擎、XML数据库、DB4O面向对象数据库、数据挖掘、Reporting Service等技术构建的一个插件式SOA开发框架,随着时间推移,它将不断增加入更新的设计概念和功能。

应用功能特点

  • Availability(可用性):为了保证采用Agile Framework开发的应用系统具有高可用性,Agile Framework 利用了SQL Server 2005的数据库镜像功能,允许事务日志以连续的方式从源服务器传递到单台目标服务器上。当主系统出现故障时,应用程序可以立即重新连接到辅助服务器上的数据库。辅助实例几秒钟内即可检测到主服务器发生了故障,并能立即接受数据库连接。同时还采用了离线数据处理技术,使应用程序在网络设备或服务器发生故障,甚至在大停电的情况下,都能在一定程度上保证系统的继续运行。
  • Scalability(可伸缩性):Agile Framework采用的是多层分布式架构,在负载量小的时候整个系统可以完全部署到一台服务器上以降低成本,同时系统也可以非常方便的采用纵切(按照系统的功能模块来划分)、横切(按照系统的逻辑层次来划分)或者两者结合的方式将每个子模块分别部署到多台服务器上群集处理。因此当服务的负载增长时,系统能简单的通过增加服务器数量来满足需求,且不降低或得到更好服务质量。
  • Performance(性能):在表现层,Agile Framework采用了智能客户端的离线数据处理,与服务器端的交互是异步的,即使是在系统业务量非常繁重的情况下,工作站也能以极高的速度进行操作,给用户带来良好的使用体验。在中间层,Agile Framework采用了强大的动态代理缓存技术,能对调用的服务方法自动拦截,并根据不同的缓存策略进行数据缓存处理,极大的提高了服务响应速度。在数据层,Agile Framework采用了三层数据库技术,将系统数据按照活动数据、联机事务数据和联机分析数据分类,并根据这些数据的特点有针对性的采用了面向对象嵌入式数据库、XML数据库和关系型数据仓库分别保存和处理,极大提高了数据处理速度。

开发功能特点

  • Transparency(透明性):Agile Framework提供的大量的优秀特性,比如离线处理、客户端自动升级、内存数据库、缓存处理、远程调用、事务处理、日志记录等等都被内建到框架之中,对开发人员透明化,开发人员可以完全不用自己来编写代码处理这些问题。Agile Framework已经都为您提供,并且一切都是在内部进行的,程序员只需要配置一些参数选项,所开发的应用程序就能自动获得这些先进的特性。
  • Extendable(可扩展性):不需要做任何编程修改,原始的Agile Framework本身就已经是一个可以运行起来的软件系统,只是还不包含任何的业务逻辑,没有实用价值。所有的业务逻辑和用户界面都是通过一种动态的插件机制将各种特定的业务组件和界面组件“插入”到框架之中,构建起一套具有实用价值的系统软件。这种“插件式”软件设计结构非常容易被扩展,并且灵活性相当高。开发人员只需要开发和管理一些特定的业务逻辑模块,并可以根据实际情况选择插入和替换某些业务或界面插件就能达到添加和修改系统功能的目的,不需要重新编译系统。
  • Loose coupling(松耦合):Agile Framework的设计从业务组件、界面组件到子系统都完全贯通了松耦合的概念。具体体现在:每个组件都不直接依赖于其它组件,它们之间通过接口来互相通讯。每个子系统也都不直接依赖于其它的子系统,它们之间通过工作流引擎来互相通讯。这样做的好处是,无论小到一个组件,还是大到一个系统,都是可“插拔”的,当您需要添加或替换一个功能组件甚至是一个系统的时候,会非常方便,甚至都不需要中断系统的正常运行。

另:以上的介绍用语有些广告宣传的语气,如果不太习惯还请谅解:)

Agile Framework目前正在开发和完善中,等到成熟后一定会发布并且公开源代码,如果兴趣请保持关注博客园和我们的网站,我会及时的公布一些进展消息。有好的建议或者批评都请不吝赐教,希望加入我们一起开发也非常的欢迎。

关于Agile Framework和敏捷实验室的链接:

posted on 2005-12-26 22:29  linkin  阅读(3530)  评论(14编辑  收藏  举报