v9.8.2018.0605   由DataReader直接映射实体列表,以支持netstandard的MySql和SQLite,且提升性能
大石头 编写于 2018-06-05 00:45:23
X
2013-12-13
1,T4语法增强,比如<#-表示消去前一个换行,-#>表示消去后一个换行

2011-12-05
1,考虑模版引擎支持资源,这样子,编译的时候,就可以把某些文件当作资源嵌入到DLL里面

2011-11-19
1,可以考虑使用xslt来实现标签式模版
2,不行,用xslt的话,尖括号都得转义,太麻烦了

2011-10-01
1,考虑在项目里面使用T4,然后调用XTemplate,生成代码。T4只是作为桥梁,为此,XTemplate应该为这个调用提供方便。

2011-09-01 07:25
1,可以仿照vt那样设计标签
<vt:set var="data" value="$db.GetData()" />
<vt:foreach from="$db.GetData()" item="data">.......</vt:foreach>
为了外部扩展,可以通用解析这样子的标签:
<x:elm[ name=value]>...</x:elm>
其中x可以指定,XTemplate默认的标签,可以用x,然后每个系统的标签,比如xcms等

2,VTemplate里面有很好的语句
<vt:for from="1" to="9" index="i">
<vt:for from="1" to="$i" index="j">
<vt:expression var="r" args="$i" args="$j" expression="{0}*{1}" />{$:i}*{$:j}={$:r}&nbsp;&nbsp;&nbsp;&nbsp;
</vt:for>
<br />
</vt:for>
标签里面可以使用常量和$开头的变量,标签内容可以使用{$:i}之类的变量
XTemplate如果这样做的话,应该分三次处理:平衡组正则递归匹配标签元素、非标签内容变量元素匹配(如{$:i})、T4解析

3,VTemplate的标签可以指定id和name
 ElementCollection<Tag> ListCt = this.Document.DocumentElement.GetChildTagsByName("Category");
这个可以定位到模版里面的某一个标签,这是取模板里所有名为 Category 的标签
这个设计,显然是仿照浏览器Dom的

4,高级的变量表达式
{$user.name length="5" bytelength="8"}
{$user.last format="yyyy-MM-dd HH:mm:ss"}

5,很好的架构,标签可以由订制的标签解析器完成解析

6,XTemplate也应该考虑可以注册函数,允许模版调用外部方法

7,XTemplate应该开放更多的接口