Sunday, July 18, 2010

Caching in UltimateTemplateEngine

With ComponentSoft Template Engine, you can easily cache your loaded template data to speed up your application performance by using two events in TemplateEngine class, as shown below:

* Uses OnLoadTemplateFromCache for loading cached template data.
* Uses OnSaveTemplateToCache for saving template data to cache.

The Web Sample code-behind below shows how to load/save template data from/to Http Cache.
C# Copy Code
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using ComponentSoft;
public partial class _Default : System.Web.UI.Page
{
protected override void Render(HtmlTextWriter writer)
{
try
{
TemplateEngine dt = new TemplateEngine();
dt.OnLoadTemplateFromCache += new EventHandler(dt_OnLoadTemplateFromCache);
dt.OnSaveTemplateToCache += new EventHandler(dt_OnSaveTemplateToCache);

dt.LoadFromFile("MyTemplate.tpl");
dt.SetValue("CompanyName", "My Company Name");
dt.SetValue("EmailAddress", "myemail@somedomain.com");
dt.SetValue("FullName", "John Borders");
dt.Run(writer);
}
catch (Exception exc)
{
writer.Write("An error occurred: " + exc.Message);
}
}
void dt_OnSaveTemplateToCache(object sender, TemplateEngineCacheEventArgs e)
{
HttpContext.Current.Cache[e.CacheName] = e.CacheData;
}
void dt_OnLoadTemplateFromCache(object sender, TemplateEngineCacheEventArgs e)
{
e.CacheData = HttpContext.Current.Cache[e.CacheName];
}
}
VB.NET Copy Code
Imports System
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports ComponentSoft
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Overloads Overrides Sub Render(ByVal writer As HtmlTextWriter)
Try
Dim dt As New TemplateEngine()
AddHandler dt.OnLoadTemplateFromCache, AddressOf dt_OnLoadTemplateFromCache
AddHandler dt.OnSaveTemplateToCache, AddressOf dt_OnSaveTemplateToCache
dt.LoadFromFile("MyTemplate.tpl")
dt.SetValue("CompanyName", "My Company Name")
dt.SetValue("EmailAddress", "myemail@somedomain.com")
dt.SetValue("FullName", "John Borders")
dt.Run(writer)
Catch exc As Exception
writer.Write("An error occurred: " + exc.Message)
End Try
End Sub
Private Sub dt_OnSaveTemplateToCache(ByVal sender As Object, ByVal e As TemplateEngineCacheEventArgs)
HttpContext.Current.Cache(e.CacheName) = e.CacheData
End Sub
Private Sub dt_OnLoadTemplateFromCache(ByVal sender As Object, ByVal e As TemplateEngineCacheEventArgs)
e.CacheData = HttpContext.Current.Cache(e.CacheName)
End Sub
End Class

No comments:

Post a Comment