ASP.NET MVC 3 中对视图引擎适当的优化也会提高网站的性能,今天就让我们看看关于视图引擎的优化,最后再简单说下网站发布时注意 Release 版本的生成。
1.禁用不用的视图引擎
ASP.NET MVC 3 在缓存方面做得非常好,它会缓存视图、局部视图等,但一个例外是内置的 display/editor 模板。当我们使用 Html.EditorFor 或 Html.DisplayFor 方法时,MVC 会查找所有的视图模板来创建合适的标记,这样会影响到运行时的性能。我们可以使用下边的代码指定我们需要的视图引擎,如我使用的是 Razor:
protected void Application_Start()
{
//移除不用的视图引擎
ViewEngines.Engines.Clear();
//添加Razor
ViewEngines.Engines.Add(new RazorViewEngine());
2.避免传递 null 实体到视图
实体为 null 时,会抛出 NullReferenceException 异常。如下图:
我们可以在传递前实例化一个实体,这样可提高性能,如下:
public ActionResult Index()
{
//return View(); //model 默认为null
return View(new Account());
}
3.应该发布 Release 版本
在发布 ASP.NET MVC 3 项目时,我们应该注意将项目生成 Release 版本的,它相对于 Debug 版本做了很多的优化,这样可提高运行效率。对比两个版本的 dll 文件,可发现 Release 版本的文件相对要小一些。在 VS “生成” ->“配置管理器”中可进行配置,如下图:
上传程序时应该确保将 Web.config 中 compilation节点 的 debug 值设置为 false,如下:
<compilation debug="false" targetFramework="4.0">
</compilation>
关于 ASP.NET MVC 3 项目中的一些基本优化知识就小结到这里,可以看到很多和 ASP.NET 早期项目一样。关于数据读取方面在这里没有过多的提及,我们应该记得添加索引等等优化知识,在项目开发过程中始终考虑优化,确保最终项目的运行效率。