知识大全 基于元数据和模板的代码生成器的目标

Posted

篇首语:高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 基于元数据和模板的代码生成器的目标相关的知识,希望对你有一定的参考价值。

本来是想弄完JavaScript混淆器再来整理这个的 但是天天都在和数据库打交道 索性还是先简化自己的工作量吧 把自己关于代码生成器的一些想法放上来由于本人从开始工作到现在 基本做的都是MIS 从刚开始的脚本模式到领域对象模式 然后是从手工输入SQL语句到由反射自动生成基本的SQL语句 虽然说方式变了很多 但还是逃不出一些琐碎的事情 比如说 中间层一个表对应的实体 你总要一个字段一个字段地把属性弄上去吧 列就算了 多那么点谁都头痛 前台界面上你得把一个个字段对应的控件放上去吧 调位置没法省什么工 但放上去也很麻烦吧 后台数据库操作如果要自己写Update Insert或者Delete就更麻烦了 虽然有不少代码生成器 可不是觉得麻烦 就是觉得不顺手 所以自己来动手    单位里自己写了一个代码生成器 不过不算是基于模板的 而且也不够智能和通用 严格说起来 只是在指定的地方输出固定的代码而已 不过其他方面的功能还不错 有点像现在的Codematic 不过Codematic现在似乎有那么一个模板功能了 看模板 似乎是用xslt来生成代码 这个似乎是不错的主意 能省掉自己解析模板的工作 不过觉得麻烦了一些 暂时不考率之    再一个咚咚就是很流行的CodeSmith 这东西不错 现成的模板很多 只要流行的框架它都能有模板套用 编辑器之类的东西也挺完善 不过还是觉得它麻烦 原因稍后再说    CodeProject上面有一个 Template based code generation 和 Smart Template Engine 感觉这 个东西和CodeSmith有些异曲同工的地方 CP上的都是需要模板中按照一定的规律进行替换后就可以生成输出的CS代码 然后对CS代码进行动态编译 执行后就得到了最终的代码 这里就出现了我刚才说的麻烦的地方 你必须有点编程的知识 而且还必须使用生成器支持的语言 而且模板编写起来也比较复杂 上手的时间比较长 还有一个可能不是原因的原因 我看到的几个代码生成器 似乎都只输出固定语言的代码    分析一下常用代码生成器的功能 不外乎如下 需要遍历用户所选的表 遍历每个表的字段 遍历表的主键列(当然外键不少人也用 可惜我一般不在数据库表加这个 暂时就不考虑了 等有时间再加入) 分析字段的类型 根据模板生成代码    所以 我的目标就是 模板定义简单 不需要复杂的定义 只需要通过定义一些简单的标记就可以完成     生成的代码不受语言的限制 各种语言的语法由模板来定义就好了     可以扩展 就是能支持插件 可以自己扩展一些标记 完成一些比较有针对性的事情 当然这个插件就看dotNet支持哪些语言了 如 数据库的类型和具体语言中数据类型的相互转换 不同风格的名称转换等     可以利用简单的标记取得一些必须的属性 如 表名 列名 在CLS中的数据类型 字符串长度等等     生成代码的时候 可以选择跳过某些不需要的字段 比如有些列对应的代码已经再基类中定义了     可以指定为每个选定的表都生成单独的文件 还是将所有生成的代码都放在一个文件中    PS 改个标题 其实 不一定要连接到实际的数据库 只要能有元数据就可以了 cha138/Article/program/net/201311/11405

相关参考

知识大全 JavaScript根据数据生成百分比图和柱状图的实例代码

JavaScript根据数据生成百分比图和柱状图的实例代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 基于客户端的分页导航

  思路用纯JS的方法只能通过判断当前页面的文件名然后算出上下页地址首页和尾页需要在脚本中配置好最后生成导航代码用数据绑定的方法则要简单得多设定dataPageSize然后用firstPage()pr

下列模块属于分散控制系统现场控制站的执行代码,并固化在EPROM中的是()各个模块的调用顺序按系统生成的数据结构和算法进

下列模块属于分散控制系统现场控制站的执行代码,并固化在EPROM中的是()各个模块的调用顺序按系统生成的数据结构和算法进行。A、输入处理模块和输出处理模块B、顺序逻辑控制模块C、数据处理模块与故障诊断

下列模块属于分散控制系统现场控制站的执行代码,并固化在EPROM中的是()各个模块的调用顺序按系统生成的数据结构和算法进

下列模块属于分散控制系统现场控制站的执行代码,并固化在EPROM中的是()各个模块的调用顺序按系统生成的数据结构和算法进行。A、输入处理模块和输出处理模块B、顺序逻辑控制模块C、数据处理模块与故障诊断

知识大全 一个简单的mysql数据库分页的程序模板

  下面是一个简单的php连接mysql数据库进行数据分页显示的模版可以按注释说明信息进行修改里面的sql语句是可以自己改的    注意分析和观察里面相关分页部分的代码的书写和实现的方式    <

知识大全 动态代码的使用(反射和动态生成类)

  在软件开发尤其是框架和底层开发时为了更灵活的控制代码常常需要进行一些动态的操作比如根据用户的输入等动态的调用类中的方法或者根据数据库表结构用户要求动态的生成一些类然后再动态的调用类中的方法当然使用

知识大全 企业库缓存依赖的实现-基于文件依赖

  最近在做项目的时候采用用Codesmith和Nettiers生成的框架来实现生成的代码核心是基于企业库的所以最近在恶补企业库对于缓存的学习当然是必不可少的尤其是经常要用到得缓存依赖这里我用到的是文

知识大全 微软同步框架中的自定义数据同步基础

  MicrosoftSyncFramework(MSF)为我们提供了进行同步应用开发的基础框架和API这些API即有基于托管代码的也有基于非托管代码的也就是说我们既可以开发基于NET平台使用托管AP

知识大全 php 批量生成html,txt文件的实现代码

  首先建立一个connphp的文件用来链接数据库复制代码代码如下:<?php$link=mysql_connect("mysql_host""mysql_user""mysql_passwor

知识大全 ASP模板类代码

ASP模板类代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138/Articl