.net 開源模板引擎jntemplate 實戰演習:基礎篇之入門

翅膀的初衷發表於2021-03-03

一、簡介

模板引擎是Web開發中非常重要的一環,它負責將頁面上的動態內容呈現出最終的結果展現給前端使用者,在asp.net mvc中,我們最熟悉的就是Razor了,作為官方的檢視引擎(檢視引擎不等同於模板引擎),它的受眾十分廣闊。但是在部分場景,比如BLOG,CMS甚至非asp.net mvc(此處asp.net mvc特指官方MVC框架)環境中,我們往往可能需要第三方的模板引擎來解析我們頁面(或者檢視),在這一塊,JNTemplate,DotLiquid,Nustache,Razor,Saprk都是不錯的選擇,JNTemplate v2.0 做為使用il emit實現的編譯型模板引擎,在眾多模板引擎中表現優秀。

本系列文章將通過基礎篇與進階篇二部分,詳細介紹 jntemplate的基本使用與進階技巧。

二、準備開始

在開始之前,首先我們要準備本地的開發環境,jntemplate v2.0.0 所支援的環境為

  • .net framework 4.0 +
  • .net core 2.1 +
  • .netstandard 2.1 +
  • .net 5

建議安裝使用.net 5 環境(下載地址:https://dotnet.microsoft.com/download/dotnet/5.0)

IDE建議使用Visual Studio 2019或者vscode,如果都沒有,記事本也行。

三、 hello World

在下面我們通過一個簡單的hello World來了解jntemplate的用法:

  1. 開啟Visual Studio 2019,新建一個命令列專案sample!

  2. 點選選單:專案=>管理Nuget程式包,搜尋 jntemplate 並安裝(jiniannet.jntemplate),如圖一所示。

圖一

  1. 開啟Program.cs, 修改Main方法裡面的程式碼如下:
var template = Engine.CreateTemplate("Hello $name!");
template.Set("name", "World");
template.Render(Console.Out);

如圖二所示:

圖二

4.按F5執行程式,檢視程式執行結果。

圖三

恭喜。我們的hello world專案完成了,程式正確解析了模板並輸出了結果,我們來重點看一下這三句程式碼:

  • Engine.CreateTemplate("Hello $name!"); 表示從文字"Hello $name!" 建立一個模板物件,如果是從一個檔案建立模板可以使用 Engine.LoadTemplate("檔案路徑")
  • template.Set("name","World"); 將一個名稱為name的變數給遞給模板。
  • template.Render(Console.Out); 解析呈現模板內容。

在這裡,直接將模板解析結果呈現到了控制檯,如果需要輸出到文字,可以直接使用

string result = template.Render();

如果想儲存到檔案,可以參考下面的寫法

using (var sw = File.CreateText(@"c:\wwwroot\index.html"))
{
    template.Render(sw);
}

是不是很簡單?

五、總結

jntemplate 語法簡單,入門容易 ,輕量快速。而且不僅僅只能用來做模板引擎,原則上可以做任何純文字內容的解析,比如做郵件傳送,程式碼生成器等等。
下一節我們將詳細講解模板語法。

注:原始碼可以在Gitee或者Github上獲取。

相關文章