zoukankan      html  css  js  c++  java
  • 【架构】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

  • 相关阅读:
    你应该了解Nginx的7个原因
    linux 中php以及nginx的重启命令
    HTTP 长连接和短连接
    git常用命令
    Linux 防火墙开放特定端口 (iptables)
    redis配置文件相关
    关于解决emoji表情的存储
    文件内容统计——Linux wc命令
    Git 服务器搭建
    关于微信二次分享,描述变链接的解决方法(一)----文档说明
  • 原文地址:https://www.cnblogs.com/cosiray/p/1655576.html
Copyright © 2011-2022 走看看