月工日
指导教师签名: 年
月 日
独创性声明
本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立 进行研究工作所取得的成果。除文中已注明引用的内容以外,本论文不 包含任何其他个人或集体己经发表或撰写过的作品成果。对本文的研究 做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意
识到本声明的法律结果由本人承担。
学位论文作者签名:批
日期:.2-006年后月五日
江苏大学硕士学位论文
第一章
1.1研究背景和意义
绪论
自从2000年6月微软宣布自己的NET战略以来,NET已经从战略变成了 现代企业应用开发的一个重要平台,且越来越占据了应用开发的主导地位。软件 开发逐渐形成Java和.NET两大阵营。面向方面的编程即AOP(Aspect?Oriemed Programming)的提出比.NET的提出还要早,从1997年正式被提出至今,AOP 技术得到了很大的发展。作为一种编程方
法学,目前已经出现了许多支持语言和 工具:面向方面(Aspect.Ofiented)作为~种新的思想也开始渗入到计算机应用的 各个领域。但是作为一种新的编程方法,AOP的广泛应用不觉有待于更多工作 的完成。支持的语言需要进~步丰富并保证其正确性;必须有更多的工具支持 AOP,满足其从软件设计到维护各个阶段的需要:还必须有一套行之有效的开发 模式来适应程序设计社会化生产的需要。 因为时间的关系AOP技术在Java平台下是最先得到应用的。目前比较成熟 的AOP框架当属Java环境下的AspecO,它是标准Java语言的扩展。它对于AOP 框架的划分,已经有了比较公认的成果。随着IBM,BEA等一些顶级国际大公 司对AOP的投入,AOP己经在Java开发中实际应用起来,并出现不少很成熟 的AOP框架。在.NET的阵营中,AOP技术的应用远不如Java阵营对AOP的 关注。目前在.NET平台下的各种AOP工具,基本上还停留在实验室阶段。当 然人们对任何新技术的接受都要有一个过程,从2004年.NET阵营开始重新关 注起AOP的应用,但是在.NET环境下,目前还没有公认可靠的AOP产品出现, 而更多的是在这方面的探索和尝试。AOP的出发点是让开发人员在面向对象技 术的基础之上具有更大的代码重用率,同时改进系统的扩展性以便于系统的升 级,并且要有更灵活的功能组织形式。 使用面向对象技术时,功能是以“对象”为载体来实现,对函数的调用依赖 与对象的联系,而这对于扩展极有阻碍。AOP的核心理念就是把对代码的组织 管理,从基于对象,变为基于功能:功能的调用,特别是在逻辑模块中共享的系 统级功能,以更积极的方式在执行过程中“织入”。为了能提供更好的扩展性, 功能的组织结构在模块开发过程中不能预知,那么传统的微软开发世界里,消息 处理(MFC)和事件处理(.NET)机制都不能适应这种要求(这两者对于横切
江苏大学硕士学位论文
关注点功能的加入是在编泽时确定,不符合晚绑定的要求),需要采用更新的技 术方式来加以解决。新的功能整合方式也需要有新的开发模式来提供支持,要保 障系统基本的稳健性和容错性,也需要新的处理机制。 AOP技术不是对面向方面技术的否定.而是在此基础上的改进和扩展。最底 层的代码组织管理还是以面向对象方面的C#语言来实现,但是对逻辑上的功能 所实现的组织,其功能已经优于面向对象技术。 本文就是基于.NET Framework构建了自己的AOP属性框架
AspectProxyAttribute和AOP管理器,并着重强调了异常处理机制。并且分 析了下一步AOP框架的改进方向。
1.2研究内容及主要工作
本文首先介绍了面向方面开发技术的发展历史,探讨了面向对象技术在实现
系统功能共享上的不足,进一步分析面向方面技术在这一点上的优越性。简要介 绍了其他几