HyperDTT(Hyper Dynamic Text Translator)是代码生成器的核心部件。
HyperDTT 模板语法非常类似于 CodeSmith 和 ASP.NET,能够让开发人员快速上手。
模板支持多语言脚本
--- HyperDTT 支持 C#、VB.NET、J# 三种脚本语言进行模板的编写。目前 HyperDAL 代码生成器的模板是用 C# 脚本语言编写的,但您在编写自己的模板时,可以自由选择三种语言之一。
动态文本翻译引擎,完全不受目标文本格式的限制
--- HyperDTT 是一个动态文本翻译引擎,它能够生成与数据库相关的 SQL 脚本、存储过程和各种语言的程序代码,还能够根据用户的实际使用需求,将模板翻译成任何形式的文本,完全不受目标文本格式的限制。
利用外部的各种程序集最大限度的扩展引擎的翻译能力
--- HyperDTT 能够将外部程序集中各种类型、数量不限的对象注入到模板中,最大限度的扩展引擎的翻译能力。
模板的各种语法和使用请参见 HyperDAL 用户手册中“HyperDTT 语法”介绍。学习和掌握这些模板语法在您编写自己的模板时是非常有用的。
评论
在这个示例中,展现了 HyperDTT 是如何将 Smartsoft.HyperDAL.dll 程序集的 tableMap 对象注入到模板中和模板是如何操作注入的 tableMap 对象来完成模板翻译工作的。
<%@ template kind=‘script‘ %>
<%@ template language="cs" %>
<%@ template references="Smartsoft.HyperDAL.dll" %>
<%@ template imports="Smartsoft.HyperDAL" %>
<%
string appNamespace = DTTDomain[ "APP_NAMESPACE" ] as string;
TableMap tableMap = DTTInput[ "TABLE_MAP" ] as TableMap;
int index = 0;
int count = tableMap.ColumnMaps.Count;
%>
using System;
namespace <%=appNamespace%>
{
/// <summary>
/// Summary description for <%=tableMap.TokenName%>BusinessObject.
/// </summary>
public class <%=tableMap.TokenName%>BusinessObject
{
public <%=tableMap.TokenName%>BusinessObject()
{
}
<%
for( index = 0; index < count; index++ )
{
ColumnMap cm = tableMap.ColumnMaps[ index ];
string start = new string( cm.Caption[ 0 ], 1 );
string fieldName = start.ToLower() + cm.Caption.Substring( 1 );
string attrName = start.ToUpper() + cm.Caption.Substring( 1 );
%>
private <%=cm.DataType%> _<%=fieldName%>;
public <%=cm.DataType%> <%=attrName%>
{
get{ return( _<%=fieldName%> ); }
set{ _<%=fieldName%> = value; }
}
<%
if( index < count - 1 )
{
%>
<%
}
}
%>
}
}
有兴趣研究一下
--- HyperDTT 是一个动态文本翻译引擎,它能够生成与数据库相关的 SQL 脚本、存储过程和各种语言的程序代码,还能够根据用户的实际使用需求,将模板翻译成任何形式的文本,完全不受目标文本格式的限制。
真的不受目标文本格式的限制?感觉有点悬,真的实现就太牛了!先去申请个试试!
您可以访问以下网页下载。
http://smartsoft2005.cnblogs.com/archive/2005/08/24/222188.html
谢谢关注!