ActiveWriter----集成到VS.NET的NHibernate(ActiveRecord)对象可视化设计工具

     或许很多人向我一样,寻找一个可以直接对业务实体进行设计,然后直接根据设计生成持久层的工具,就象Hibernate Tools那样.当然,可能很多人对通过工具生成代码有着不一样的看法,不过有这样的一个工具,无疑能够给我们开发带来便利,尤其是一个开源的工具,能够根据修改来满足我们不同的需求.
     当然,这方面的代码生成工具首推CodeSmith,MyGeneration,它们能够直接支持模板,而且能够很方便的修改自定义模板文件.另外我还接触过LatticeFramework(http://www.latticesoft.com/),这个软件是由一个留学生研发的.把数据库表及索引信息生成Xeml文件(XML格式),然后通过xslt解析成生成的代码.
     但是这些工具唯一不足的地方就是它们不能支持对ORM业务类的可视化设计,其中也不能够很方便很准备的生成实体的映射关系.还有就是这些工具都是基于数据库,而不是业务对象,但是在很多情况下,业务对象和数据库还是有很大差别的.
     而ActiveWriter的特点是支持可视化开发,而且以插件的方式集成到VS.NET中,可设置项全面.下面来介绍一下ActiveWriter:

     ActiveWriter是castle下面的一个开源项目,直接集成在vs.net中,能够直接进行实体可视化设计,支持生成ActiveRecord代码及NHibernate实体代码及.hbm.xml映射文件.并且同时支持C#和VB.NET两种语言. 
一.下载安装
       最新版本: Preview 4.1 (26/06/2008)
       VS 2008: ActiveWriter Preview 4.1 for VS2008.rar (277.22 KB)
       VS 2005: ActiveWriter Preview 4 for VS2005.rar (1.43 MB)(这个开源项目的作者已经停止了此项目对支持2005版本的更新)

       源代码:
https://svn.castleproject.org/svn/castlecontrib/activewriter/

    源代码使用svn工具下载后,需要安装Microsoft Visual Studio 2008 or 2005 SDK才能够编译.其中代码是DSL Tools,看到最近园子里一直有人在研究Vs.net插件开发,这个应该也算是Vs.NET插件开发的一个开源典型项目.
    下载完成后,直接安装,无需做特殊设置

二.使用及功能介绍
      安装完成后,就可以使用ActiveWriter了,不过它并不用新建一个单独的项目,我们只需要新建一个普通的项目即可,然后添加ActiveWrite文件,就可以在这个文件里进行设计了.先介绍一下它的工作区(使用的作者的演示图).
       AW_Overview

    1.主要设计界面
      在这里可以对我们的业务实体进行设计,它们可以是从6中直接拖拉进来生成的,也可以由5中拖Class进来完全重新设计的.右击窗口里的对象或者属性,可以直接进行有效性验证,删除,编辑和添加.
    2.项目文件
      这里就是一个普通的项目,但是会有ActiveWriter文件存储类设计信息(actiw,actiw.diagram),当类设计完成时,我们直接右击actiw文件,选择Run Customer Tool即可生成代码,代码会生成到.cs文件中,如果生成的NHibernate还会单独再有一个.hbm.xml文件.
    3.属性窗口
     这里可以对选择项的属性进行编辑.其中包括生成模型的设置,单个对象的设置,对象属性的设置,关系的设置,编辑完后都会完整的生成到类或者映射文件中,其实简单的说,就是把我们以前手写代码或者是映射文件的操作,转换成了直接在属性设置窗口里完成.这里涵盖了大部分ActiveRecord(NHibernate)的设置.我们来看一下对于对象的设置窗口.
     screenshot31 
     可以看到,可以对Cache,Lazy,Schema,Table,Where等属性都有了设置,而且很多都可以直接下拉选择或者是开窗设置,相当强大.

     4.类详细窗口
      这里列出了当前选择的对象的所有的属性,而且可以直接编辑这个属性的类型,以及和数据库的对应的字段,还可以添加新的属性.
      screenshot31

       5.ActiveWriter工具栏
      这里现在包括Class,一对一关系.多对一关系,多对多关系,内嵌类,内嵌关系,可以直接拖拽他们到工作区1中,对于后面的关系,选中后再在工作区中选择源和目标即可.
       6.资源浏览
      这里列出了当前数据库的资源,可以直接拖拉表到工作区1中,生成对应的对象,现在支持SQL Server,MySQL,Oracle.

     生成代码之前的注意事项:
      1.请对建立的项目中添加对应的NHibernate和ActiveRecord的程序集的引用,另外最新版本对应的NHibernate的版本是1.2.0.4000,ActiveRecord的版本是0.0.1.3,同时添加他们所依赖的程序集的引用.(下面提供了下载)
      2. 右击工作区的空白地方,在属性窗口里对于NHIbernate和ActiveRecord程序集成文件夹进行设置.

     screenshot31 
     自动生成时就会将你在工作区中设置的实体属性,实体及属性的设置,以及实体之间的关系生成出来.

3.由于ActiveWriter对于中文版VS的支持问题,默认"安装新项"的模板到Common7\IDE\ItemTemplates\CSharp\1033下面,但是中文VS模板默认在2052下面,所以需要手动转换一下,也可以先拷贝到2052下面,然后新建项时选类关系图.后缀名从.cd改成actiw就可以了

三 资料及参考
     1.activewriter官网 http://altinoren.com/activewriter/   
     2.activewriter开发者的博客 http://altinoren.com/default.aspx
     3.园子里DSL的文章 http://www.cnblogs.com/yimlin/archive/2006/07/08/445673.html
     4.关于VS.NET DSL Tools的网站   http://www.domainspecificdevelopment.com/
     5.微软关于DSL Tools的资料
        http://msdn.microsoft.com/en-us/vsx/cc677256.aspx
        http://msdn.microsoft.com/en-us/vsx/default.aspx
        http://msdn.microsoft.com/en-us/library/bb126235.aspx

 

     相关程序集下载.

 

作者:孤独侠客似水流年
出处:http://lonely7345.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

posted @ 2009-03-17 22:16  孤独侠客  阅读(5313)  评论(9编辑  收藏  举报