当前位置:首页 > 编程知识 > 正文内容

装B代码生成器(装B生成器)

hacker2年前 (2022-06-30)编程知识81

本文目录一览:

代码生成器是干什么用的,谁用过

代码生成器是按照特定编码规范输出代码的软件,可以直接生成项目,也可以单页生成

比如动软,生成项目可以选择vs版本的,其实嘛,动软挺垃圾的,不如你去学学orm框架,很简单的,比动软的三层好得多

创建代码生成器可以很简单:如何通过T4模板生成代码?[下篇]

但是这是一种基于单个文件的解决方案,即我们必须为每一个生成的存储过程建立一个模板。如果我们提供一种基于多文件的代码生成方式,将会为编程人员带来极大的便利。借助于T4 ToolBox这个开源工具箱,多文件的SQL Generator的实现变得异常简单。[文中的例子可以从这里下载]目录 二、创建自定义的Generator 三、ProcedureGenerator如何被使用?一、多文件代码生成器会带来多大的便利?我们先来直观的感受一下较之《上篇》提供的单一文件的代码生成器,基于多文件的代码生成解决方案会为开发人员带来多大的便利。 同样对于《上篇》创建的数据表T_PRODUCT,之前我们为了生成三个不同的存储过程,我们不得已需要创建3个不同的T4模板文件。实际上我们更需要的方式只需要创建一个T4模板,让我们的SQL Generator自动为我们生成3个包含相应存储过程的.sql附属文件,如左图所示(点击看大图)。有的时候,基于单个数据表的存储过程生成方式我们依然觉得不方便。如果我们能够在T4模板文件中指定的数据表的列表,让我们的SQL Generator为列表的每一个数据表都生成CUD三个存储过程,这样的方式更加具有吸引力。如右图所示(点击看大图),一个订单模块包含两个具有主子关系的两张表(T_ORDER和T_ORDER_DETAIL),现在我们在一个T4模板中指定这两个表明,通过SQL Generator可以帮助我们生成6个包含存储过程的.sql附属文件。甚至有的时候我们连数据表列表都无需指定,让SQL Generator为所有的表都生成相应的存储过程。我的例子中没有提供这样的功能,但是实现自来不会存在任何问题。二、创建自定义的Generator在《上篇》中我创建了一个抽象的ProcedureTemplate类,以及三个基于生成CUD存储过程的具体ProcedureTemplate:InsertProcedureTemplate、UpdateProcedureTemplate和DeleteProcedureTemplate。它们都将直接服务于我们今天将要提供的基于多文件的SQL Generator。在《上篇》中,这四个Template分别定义在4个不同的TT文件中,3个具体的ProcedureTemplate通过#@include指令将抽象ProcedureTemplate模板文件包含过来。由于我们将要创建的T4模板将会使用到这四个类,如果我们用四个#@include指令将四个TT文件包含过来,由于T4引擎将会导致对ProcedureTemplate的4次包含,最好将会导致变异问题。个人觉得这应该算是T4引擎解析包含关系的一个局限性,为了解决这个问题我们不得不抽象的ProcedureTemplate和三个具体的ProcedureTemplate都合并成一个TT文件。T4 ToolBox为类库中为了提供了一个抽象的T4Toolbox.Generator类用于实现多文件的代码生成。为此我们创建一个TT模板文件,定义了如下一个继承自该类的ProcedureGenerator。ProcedureGenerator的核心是通过属性Templates定义的类型为IEnumerableProcedureTemplate的ProcedureTemplate列表,这个列表在存储过程中进行初始化。而对于ProcedureGenerator的构造函数,处理定义了一个表示数据库连接字符串的databaseName的参数外,并以数组参数的形式指定了生成的存储过程基于的数据表名的列表。#@ import namespace="System.Collections.Generic" ##@ include file="ProcedureTemplate.tt" ##@ include file="T4Toolbox.tt" ##+publicclass ProcedureGenerator : Generator{public IEnumerableProcedureTemplate Templates{get; private set;}public ProcedureGenerator(string databaseName, paramsstring[] tableNames) {if(null == tableNames || tableNames.Length == 0) {thrownew ArgumentNullException("tableNames"); } this.Templates = InitlizeTemplates(databaseName,tableNames); }private IEnumerableProcedureTemplate InitlizeTemplates(string databaseName, string[] tableNames) { foreach(string tableName in tableNames) {yieldreturnnew InsertProcedureTemplate(databaseName, tableName);yieldreturnnew UpdateProcedureTemplate(databaseName, tableName);yieldreturnnew DeleteProcedureTemplate(databaseName, tableName); } }protectedoverridevoid RunCore() {foreach(ProcedureTemplate tempalte inthis.Templates) { tempalte.RenderToFile(tempalte.GetProcedureName() + ".sql"); } }}#真正的存储过程的T-SQL脚本实现在重写的RunCore中。由于具体的文本转化逻辑都定义在了ProcedureTemplate中了,所以在这里我们需要遍历的ProcedureTemplate集合中每一个Template对象,调用RenderToFile方法将相应的存储过程的脚本写入以存储过程命名同名的.sql文件中。三、ProcedureGenerator如何被使用?我们最后来看看我们创建的ProcedureGenerator最终如何被应用于具体的代码生成。其实很简单,我们只需要创建相应的模板文件,通过#@include将定义ProcedureGenerator类的TT文件包含近来,最后以代码语句调用块(#StatementCode#)的形式实力化该对象,并调用Run方法即可。在构造函数中指定数据库连接字符串的名称和数据表名的列表。下面是基于但表的T4模板。#@ template language="C#" hostSpecific="true" debug="true" ##@ include file="Templates\ProcedureGenerator.tt" ##new ProcedureGenerator("TestDb","T_PRODUCT").Run();#下面是基于多表的T4模板:#@ template language="C#" hostSpecific="true" debug="true" ##@ include file="Templates\ProcedureGenerator.tt" ##new ProcedureGenerator("TestDb","T_ORDER","T_ORDER_DETAIL").Run();#当你代码生成工作执行之后,会多出一个与TT文件同名的附属文件,你需要手工删除掉它。从数据到代码——通过代码生成机制实现强类型编程[上篇]从数据到代码——通过代码生成机制实现强类型编程[下篇]从数据到代码——基于T4的代码生成方式

有谁知道网银转账截图软件(网银转账装B生成器)怎么下截怎么用的?谢谢谁知道

你好

这个要用PS软件

你可以再电脑浏览器搜索PS软件

然后下载局可以P是网银转账截图了

满意请采纳

谢谢

代码生成器

代码生成器是按照特定编码规范输出代码的软件,可以直接生成项目,也可以单页生成 比如动软,生成项目可以选择vs版本的,其实嘛,动软挺垃圾的,不如你去学学orm框架,很简单的

扫描二维码推送至手机访问。

版权声明:本文由万物知识分享发布,如需转载请注明出处。

本文链接:http://qmsspa.com/49147.html

分享给朋友:

“装B代码生成器(装B生成器)” 的相关文章

seo优化采集文章(seo采集站使用教程)

seo优化采集文章(seo采集站使用教程)

许多 新脚认为 本身 正在网上上了一门SEO课程后,能守住所有答题。但事例上,正在网站经营的进程 外,咱们会碰到 各类 各样的答题,那些答题是教材 上教没有到的。 正在网站劣化的进程 外,最年夜 的答题没有是网站构造 孬欠好 ,而是网站构造 否以从法式 上逐步 劣化。决议 网站成败的决议 性身...

专业的餐饮行业网站优化方法(餐饮行业网站优化策划团队)

专业的餐饮行业网站优化方法(餐饮行业网站优化策划团队)

餐饮止业外网站浩瀚 ,许多 餐饮私司都邑 树立 起本身 的品牌网站,呼引流质,猎取资本 ,别的 借有一点儿私司会作一点儿餐饮止业站,去猎取餐饮止业资本 ,这么餐饮止业网站怎么劣化呢?昨天搜索引擎优化 常识 网小编为年夜 野分享一高餐饮止业站网站劣化圆案。...

美妆博主柳夜熙(美妆博主柳夜熙的视频)

虚构美容博野#刘#,为何一个颤音望频涨了 一00万?依据 宋九暂的说法,那二地爆炸的刘是一个虚构人物。那条线上的第一个望频增长 了 一00万。截止宣布 截至日,未上线 三地,未宣布  二个望频,乏计增长  二 六 三万。 据悉,那个账号是参照了“元宇宙”的观点 ,是虚构取实际 的联合 ,做品外...

网站有收录没排名解决及降权剖析(网站搜索排名降权)

今天,一个在拉广SEO劣化的同伙 战葛仄接流了一个经典答题。他说本身 网站的排名升了良久 , 一00%确定 是挨了迅雷算法(快排名做弊,为何那么确定 ,由于 用了快排名硬件后没有到一周阁下 他网站的排名间接升了),然则 支录战抓与皆是一般的。最恐怖 的是珍藏 战索引皆比从前 孬了! 他有信答,...

seo里友情链接要求(seo友情链接的数量)

忘患上从一篇 对于baidu往日 技术焦点 主干 的形容外相识 到,如今 用户体验的算法占搜刮 排名的 五0%以上。衡量 ,那象征着内容相闭性战链交计较 类的算法皆有所下降 。但那其实不象征着出用! 链交计较 仍旧 是搜刮 引擎的焦点 算法之一。为何那么说?咱们作个假如吧! 用户体验的算法...

改善边缘数据处理的最佳方法

革新边沿 数据处置 的最好要领 边沿 计较 为几个传统的云的缺陷 提求了谜底 。数据天生 只会持续 发展 ,数据处置 操做须要 边沿 的较低迟延,否屈缩性战弹性。然而,那些上风 没有会绝不 尽力 。 创立 边沿 情况 自己 便没有会提求那项技术的最高尚 的许诺 。那些是庞大 的收集 ,是以 ,须要...

评论列表

鸠骨痛言
2年前 (2022-06-30)

teProcedureTemplate和DeleteProcedureTemplate。它们都将直接服务于我们今天将要提供的基于多文件的SQL Generator。在《上篇》中,这四个Template分别定义在4个

弦久辞忧
2年前 (2022-06-30)

。T4 ToolBox为类库中为了提供了一个抽象的T4Toolbox.Generator类用于实现多文件的代码生成。为此我们创建一个TT模板文件,定义了如下一个

拥嬉抹忆
2年前 (2022-06-30)

自定义的Generator在《上篇》中我创建了一个抽象的ProcedureTemplate类,以及三个基于生成CUD存储过程的具体ProcedureTemplate:InsertProcedureTemplate、UpdateProcedureTemplate和Delete

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。