




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑一种DOTNET平台组件配置工具的应用-设计应用反转控制(IOC)和面向切面编程(AOP)技术作为当前比较流行的技术,其优势已受到广泛关注,但是这两项新技术在实际项目上的应用研究却很落后,而且在。NET平台下实现这两项技术没有形成可以广泛套用的框架,使得开发人员在。NET平台下应用IOC和AOP技术的难度和成本大幅度提高。Castle提供了。NET平台下开发IOC和AOP技术的框架,一定程度上解决了开发人员的难题,但是如何高效地实现IOC和AOP技术的开发,至今无人提出较好的建议。
DOTNET就是。NET,严格说是:.NetFramework框架.但为什么叫DOTNET(。NET)呢?在计算机行业DOT是DistributedObjectTechnology的简称,意为分布式对象技术。DOT恰好与"点"的英语单词相同,DOT的音标[d?t]NET是一个微软开发的编程环境,里面可以使用C#,VB等多种编程语言。借助于.NET平台,可以创建和使用基于XML的应用程序、进程和Web站点以及服务,它们之间可以按设计、在任何平台或智能设备上共享和组合信息与功能,以向单位和个人提供定制好的解决方案。
本文主要研究Castle框架中的IOC和AOP机制,目标是设计出一个可视化工具,实现IOC和AOP机制中配置文件的可视化配置。该工具经过修改和完善也适用于其他框架中的IOC和AOP配置文件的生成。
1Castle框架和相关技术介绍
1.1Castle框架介绍
Castle是针对。NET平台下的一个非常的开源项目,从数据访问框架ORM到依赖注入容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务。
1.2IOC技术介绍
IOC的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。IoC设计模式重点关注组件的依赖性、配置以及生命周期。当然IoC也适用于简单类,而不只是组件。除了具有"DependencyInjection"(依赖注入)的昵称外,IoC还有另一个称呼,即Hollywood原则("Don'tcallme,I'llcallyou,请不要调用我,我将调用你),Ioc设计模式实现了"面向接口编程,而不是实现"的原则。
1.3AOP技术介绍
AOP为AspectOrientedProgramming的缩写,意为:面向方法编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。在Spring中提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的--完成业务逻辑--仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
2可视化IOC和AOP配置工具设计思路
可视化IOC和AOP配置工具是一个在。NET平台下开发的WinForm程序,这个工具的主要作用就是在IOC组件或者AOP组件都开发好的条件下,利用这个工具生成IOC或者AOP的配置文件,方法是读取现存的IOC组件或者AOP组件。在工具中进行相应的配置,直接生成开发人员所需的配置文件。
该工具的主要功能是通过读入现存的IOC组件或AOP组件,提取并暂存组件中与配置有关的重要信息,以可视化的方式显示在工具界面中,然后由开发人员操作该工具完成组件对应的配置文件的生成。这个过程可以划分为5个阶段(如图1):读取类文件分析类文件显示配置信息开发人员对参数进行配置生成配置文件。其中前三层是该工具主要实现的功能。因此,该可视化工具的代码部分分为3个层次来编写。分别是:读类文件、分析提取信息、显示信息。
层主要是完成类文件的读取,在。NET平台下使用到了System.IO命名空间中文件操作相关的File类和StreamReader类,终将整个读取的文件内容以string类型返回,以供第二层分析文件使用。
第二层的功能是在层的读取文件内容的基础上分析并提取关键字,即取出配置文件需要的重要信息,例如IOC反转控制模式主要有设值注入和构造方法注入,设值注入就是对类中的属性进行注入,而构造方法注入是对构造函数中的参数值进行注入。因此类中的属性和构造函数的参数就属于IOC配置文件的重要信息,第二层主要完成对类似的重要信息的识别和分类。在第二层中,完成的识别功能主要有:
(1)识别类文件的命名空间、类名、接口名
命名空间、类名、接口名都是组成IOC和AOP配置文件的必备元素。
在IOC配置文件中,命名空间、类名、接口名常出现在component标签的service和type属性值中,而在AOP的配置文件中命名空间出现在Imports关键字之后。所以对命名空间、类名、接口名的提取是生成配置文件的必要条件。
(2)识别类文件中的属性
IOC反转控制模式中的设值注入就是对类中的属性进行注入,如采用该注入模式设计系统,在IOC配置文件中,需要把类中的属性作为配置文件的标签。
(3)识别类的构造方法中的参数名
IOC反转控制模式中的构造注入是对构造函数中的参数值进行注入,如果采用该模式设计系统,在IOC的配置文件中,需要把构造方法的参数名作为配置文件中的标签。
以上介绍的是第二层所识别的关键字的类别。在程序中关键字的获取主要是通过编写获取方法来实现。获取命名空间使用GetNamespace方法;获取类名使用GetClass方法;获取接口名使用GetInterface方法;获取属性名使用GetProperty方法。实现的思路是在遵循一定规约的前提下通过属性在类中的位置特征将其提取出来并且依次保存到一个ArrayList对象中。
为了保证该可视化工具识别关键字的准确性,程序员在编写IOC组件时要遵循以下规约:
(1)要求IOC组件类的修饰符为"Public"
(2)要求类中的全局变量都声明为"Private"
(3)要求属性的修饰符为"Public"
(4)要求构造方法的修饰符为"Public"
第三层是页面层。主要负责页面可视化设计。页面层用到了TreeView、Datagrid、TabControl、ContextMenuStrip等控件。TreeView控件以树形结构展示了当前读入的组件;Datagrid控件用来展示选中组件的构造方法参数或属性,并可以设置其参数值或属性值;ContextMenuStrip控件用于控制添加和删除组件操作;TabControl控件则是其他控件的容器。
以下,对该层使用到的主要控件及其触发事件按照其重要程度依次做介绍:
(1)TreeView控件
该控件的内容占第三层代码的三分之一,主要涉及到的触发事件有NodeMouseClick(单击)、NodeMouseDoubleClick(双击)、AfterCheck(复选框被选中)。设计的功能主要有:单击TreeView控件结点可查看该结点所代表组件的命名空间和类名;双击组件可以显示出该组件的构造方法参数或属性信息;选中复选框后可以将该组件标签添加到IOC配置文件中。
(2)TabControl控件
该控件主要用于分栏。在该系统中一共用到了2个TabControl控件,个用于左栏即控制栏,该栏一共包含了2个TabPage.这两个TabPage分别作为IOC组件的控制栏和AOP组件的控制栏。第二个TabControl控件作为显示栏,共包含了3个TabPage:个用来显示IOC的配置信息;第二个用来显示AOP的配置信息;第三个用来实时地显示当前正在配置的XML文件。
(3)Datagrid控件
Datagrid主要用于分行显示读入的构造方法的参数名或者类的属性名。
(4)ContextMenuStrip控件
该控件作为快捷菜单出现在单击TreeView控件某个结点后,它通常包含2个选项:"添加组件"和"删除所有组件".主要使用到的触发事件就是该控件的单击事件。
(5)OpenFileDialog控件
打开文件对话框控件,在本系统中,用于读入要配置的组件文件。
(6)SaveFileDialog控件
保存文件对话框控件,在本系统中,用于保存配置好的XML文件到指定的位置。
(7)WebBrowser控件
Web浏览器控件,在本系统中,主要用来实时的显示当前正在配置的XML文件。
除了上述设计内容外,还添加了两个类文件作为页面层的辅助类。主要负责一些常用的初始化代码及其辅助性方法代码,比如配置文件的初始化方法、DataTable的初始化方法、还有DataTable与Arraylist转换函数等。
以上主要介绍了可视化配置工具代码的三层结构。这三层结构是紧密联系的,层与层之间的代码是调用与被调用的关系。它们共同完成了可视化工具所需的功能。完成的主要功能有:
(1)支持IOC中的构造方法注入和设值注入两种注入方式。
(2)可以对IOC的构造方法参数值或者属性值进行设置或者修改;支持数组类型的构造参数。
(3)可以设置或修改组件ID.
(4)可以保存上次关闭时的组件及其状态信息。
(5)支持AOP组件配置:可以在参数设置栏设置拦截器键值、自动识别切面的类型等。
(6)可以同时配置AOP和IOC组件。
3可视化配置工具的实现和应用
通过三层结构,可视化工具就实现了预计的功能:在IOC和AOP组件存在的前提下,使用该工具可以帮助开发人员完成配置文件的生成。
3.1IOC可视化配置工具的实现
可视化工具的IOC部分的操作方法和操作步骤如下:
(1)在左栏Component节点上单击鼠标右键,选择添加组件,如图2,即可把组件信息载入进来;如果选择"删除所有组件",就可以把树型结构中的所有加载的组件删除,并把IOC配置文件中的该组件标签的全部信息相应删除。
(2)添加完组件后单击该组件可以查看该组件的命名空间和类名;双击组件可以在IOC配置栏中显示出该组件的构造方法参数或属性信息。该工具支持两种IOC配置模式,即设值注入(属性注入)和构造方法注入。在遵循一定规则的前提下可以自动区分属性注入或构造方法注入。图3、图4展示的是一个设值注入(属性注入)的实例。
3.2AOP可视化配置工具的实现
与IOC不同,AOP的配置也需要读入相应的类文件,根据AOP的配置特点,要分别读入拦截器(Interceptor)、混淆器(Mixin)和切面(Aspect对象),其中Mixin是可选项。
AOP配置界面中"参数配置"栏可以对Interceptor、Mixin设置别名,这就如同HashTable中键和值的一一对应关系,在使用到某个Interceptor或Mixin时可以用它的别名代替。
"Aspect配置"栏显示了当前读入的拦截器(Interceptor)、混淆器(Mixin)和切面信息。根据Castle中AOP的配置原则进行相应配置后点击"添加该方面"按钮就可以生成对应的AOP配置文件,同样可以查看配置结果。
图5、图6展示了AOP配置的过程。
4可视化工具的插件版本
可视化配置工具的插件版本是把先前在。NET平台下做好的W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租地种植合同协议
- 门面合同终止协议
- 用工合同协议解除协议书
- 门面转让合同协议
- 管理培训协议合同
- 空调安装安全协议合同
- 抖音合同合作协议
- 股权投资质押协议合同
- 房屋分租合同协议
- 租赁定金合同协议
- 徐士良《计算机软件技术基础》(第4版)笔记和课后习题详解
- 房屋建造过程课件
- 坯布检验标准及检验规范
- 带压堵漏、带压开孔作业安全管理制度
- (新教材)教科版二年级上册科学 1.2 土壤 动植物的乐园 教学课件
- 采用冷却塔变流量的中央空调冷却水系统能效分解
- 航空航天技术概论
- 篮球比赛记录表(上下半场)
- 毕业设计-太平哨水利枢纽引水式水电站设计
- 新云智能化管理系统运行管理标准
- 毕业设计(论文)-多功能平板道路清障车设计(拖拽车)
评论
0/150
提交评论