原文地址:http://www.cnblogs.com/smartbooks/archive/2012/05/13/2498258.html

 

 

缘由

用Net技术生成纯静态网站目前市面上的技术貌似不是很多,要么就是一些大公司的项目。相比于Php语言来说,基于Php语言的CMS系统就有很多了,并且模板解析技术也已经比较成熟了。模板解析引擎一直是一个核心的问题,曾经我也尝试了好多种办法来间接的实现模板解析,但都不能完美的解决面临的问题,相信很多使用Net做网站的朋友也希望有一套像Php那样的CMS系统。直到有一天公司组织微软的专家过来培训让我了解到了VS10在代码生成方面所呈现出的优越表现,让我联想到了这套引擎能不能用于其他的方面应用。。。。(写此文的目的为记录日志,所以大牛的话可以飘过了。)

一、所需准备:

  1. 本文介绍的实现方法将以C#语言为实现。
  2. 实验环境是VS10+sp1+VSsdk
  3. 需要引入程序集:Microsoft.VisualStudio.TextTemplating.10.0.dll  和 Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll
  4. 所需的Net framework平台是 4,还在用2  || 3  ||  3.5的朋友赶紧的更新一下吧!

下载地址(vssdk):http://www.microsoft.com/en-us/download/details.aspx?id=2680

已知问题:如果你的VS已经打过了SP1,那么安装VSSDK时会出现一个错误,需要手工更改一下注册表,需要将注册表中的某个键值1更改为0。具体的详细设置办法Google一下就有答案了。

二、技术实现

2.1实现思路

用T4做为模板文件的解析引擎,将数据、解析引擎、静态文件模板、控制器分别单独出来,这样的话程序员只用写一套框架程序就行了,框架写好之后剩下的就是写静态文件模板了。关于T4模板解析引擎功能的强大之处,可以参考MSDN的官方资料。()像这些问题如:模板嵌套子模板、可编程等问题,早已被T4完美的解决了。

2.2实现代码

要实现我们的自定义主机解析引擎,首先要添加一个实现了ITextTemplatingEngineHost 和  ITextTemplatingSessionHost  接口的类,代码如下(时间长了,我也忘记是从哪里Copy过来的代码了,应该是MSDN吧):

首先创建一个CustomCmdLineHost类,添加如下应用:

using System.IO;
using System.CodeDom.Compiler;
using Microsoft.VisualStudio.TextTemplating;

相关文章:

  • 2021-10-28
  • 2022-12-23
  • 2022-01-29
  • 2021-07-23
  • 2022-12-23
猜你喜欢
  • 2021-12-25
  • 2021-05-20
  • 2021-08-18
  • 2021-07-24
  • 2021-11-03
  • 2022-12-23
相关资源
相似解决方案