强大的代码生成工具MyGeneration.docVIP

  • 2
  • 0
  • 约6.39千字
  • 约 10页
  • 2020-06-01 发布于湖北
  • 举报
强大的代码生成工具MyGeneration MyGeneration是一个功能很强大的代码生成工具。通过编写包含各种类型脚本(C#,VB.Net,JScript,VBScript)的模板,通过数据库的表内容,生成你需要的各种代码。你可以用它来生成ORM的实体类,存储过程,SQL语句等等。我甚至用它来生成Asp.Net的页面(呵呵,我很懒)。 MyGeneration提供了强大的在线模版库,你可以通过访问其网站或者使用Template Browser中的在线模版功能按钮寻找你需要的模版。当然你也可以根据需要自己写模板。 我的NHibernate模板已经公布,并写了个随笔专门介绍它。详见“ 用我的MyGeneration模板生成NHibernate映射文件和关系(one-to-one,one-to-many,many-to-many) ”。 你可以从 这里下载它的最新版本。 重要组件介绍 它由几个重要的外部组件组成,其中常用的有以下两个 MyMeta包含数据库中的信息。我们可以从这个库中获得想要的和数据库相关的信息。例如:数据库名,数据库里面的表,表里面的主键等等。 Zeus为 MyGeneration提供了一个的框架,里面最常用的就是一组对WinFrom组件封装后的一套组件,通过这套组件我们可以动态的生成我们需要的界面(我们可以在这个界面中让模版使用者选择使用的参数),然后界面里面的信息可以为生成模版服务。 工作原理分析 MyGeneration的支持用多种脚本模式,其工作原理是一致的,只是通过不同的语言来表达。 我最常用的是C# Template。Template分为两个步骤运行,首先是通过脚本引擎执行Template Code和Interface Code中的脚本,生成Template Source和Interface Source的C#代码,然后执行Template Source,生成需要的代码。如下图 Template Code模版简介 C# Template Code的语法和Asp的语法十分的类似(注意Source是不能写代码的,那是根据你的Code生成的)。 %=%表示绑定某一个字段或属性。 %%表示脚本段,我们可以在这里写符合C#语法的任何语句。 其他的内容不进行解析。直接用output写到最后的结果里。 一般C#脚本会从DotNetScriptTemplate继承,DotNetScriptTemplate里面在Template Source里面可以看到他是从_DotNetScriptTemplate继承而来。Interface也类似。 public?abstract?class?DotNetScriptTemplate?:?_DotNetScriptTemplate { ????protected?Zeus.UserInterface.GuiController?ui; ????protected?MyMeta.dbRoot?MyMeta; ????protected?Dnp.Utils.Utils?DnpUtils; ????public?DotNetScriptTemplate(IZeusContext?context)?:?base(context) { ????????this.ui?=?context.Objects[ui]?as????Zeus.UserInterface.GuiController; ????????this.MyMeta?=?context.Objects[MyMeta]?as?MyMeta.dbRoot; ????????this.DnpUtils?=?context.Objects[DnpUtils]?as?Dnp.Utils.Utils; } } DotNetScriptTemplate里面把模版需要使用到的数据库信息和界面信息也引用进来了,我们可以通过MyMeta来获得数据库里面的信息,而从ui里面获得和Template相关的参数设置信息。 代码写在模版Render方法里。页面代码写在Setup方法里。 使用配置文件 MyGeneration支持配置文件的使用,在Edit里面的Default Settings...我们可以看到。 Language Mapping定义了数据库和语言(C#,VB.Net等)的字段对应关系。 Database Target Mapping定义了数据库和ADO.Net里面的字段对应关系。 User Meta-Date允许用户设置自定义的配置文件。 在模版中我们可以通过类似input[__dbDriver]的语法来访问其中的内容。 常见的有如下: __defaultOutputPath __dbDriver __dbT

文档评论(0)

1亿VIP精品文档

相关文档