我一直在SO &谷歌上搜索ASP可用的各种视图引擎的分类。NET MVC,但没有发现更多的简单的高级描述什么是视图引擎。
我并不一定是在寻找“最好”或“最快”,而是在各种情况下对主要玩家(例如默认的WebFormViewEngine, MvcContrib视图引擎等)的优点/缺点进行一些真实世界的比较。我认为这将有助于确定从默认引擎切换是否对给定的项目或开发组有利。
有人遇到过这样的比较吗?
我一直在SO &谷歌上搜索ASP可用的各种视图引擎的分类。NET MVC,但没有发现更多的简单的高级描述什么是视图引擎。
我并不一定是在寻找“最好”或“最快”,而是在各种情况下对主要玩家(例如默认的WebFormViewEngine, MvcContrib视图引擎等)的优点/缺点进行一些真实世界的比较。我认为这将有助于确定从默认引擎切换是否对给定的项目或开发组有利。
有人遇到过这样的比较吗?
当前回答
检查这个SharpDOM。这是一个c# 4.0内部dsl,用于生成html和asp.net mvc视图引擎。
其他回答
我认为这个列表还应该包括每个视图引擎的样本,这样用户就可以在不访问每个网站的情况下了解每个视图引擎。
图片胜过千言万语,标记样本就像视图引擎的截图:)所以这里有一个来自我最喜欢的Spark视图引擎
<viewdata products="IEnumerable[[Product]]"/>
<ul if="products.Any()">
<li each="var p in products">${p.Name}</li>
</ul>
<else>
<p>No products available</p>
</else>
我喜欢姜戈。它非常容易使用和非常灵活。您可以使用自定义标记和过滤器轻松扩展视图功能。我认为“与f#紧密相关”是优势而不是劣势。
我目前的选择是Razor。它非常干净,易于阅读,保持视图页面非常容易维护。还有智能感知支持,这真的很棒。另外,当与网络助手一起使用时,它也非常强大。
提供一个简单的示例:
@Model namespace.model
<!Doctype html>
<html>
<head>
<title>Test Razor</title>
</head>
<body>
<ul class="mainList">
@foreach(var x in ViewData.model)
{
<li>@x.PropertyName</li>
}
</ul>
</body>
结果出来了。这是非常干净,容易阅读。当然,这是一个简单的例子,但即使在复杂的页面和表单上,它仍然非常容易阅读和理解。
至于缺点呢?好吧,到目前为止(我是新手),当使用一些表单的助手时,缺少对添加CSS类引用的支持,这有点烦人。
谢谢 Nathj07
我知道这并不能真正回答你的问题,但是不同的视图引擎有不同的目的。例如,Spark视图引擎旨在通过使所有内容流畅且可读来消除视图中的“标签汤”。
最好的办法是只看一些实现。如果它看起来对您的解决方案的意图有吸引力,请尝试一下。你可以在MVC中混合和匹配视图引擎,所以如果你决定不使用特定的引擎,这应该不是一个问题。
检查这个SharpDOM。这是一个c# 4.0内部dsl,用于生成html和asp.net mvc视图引擎。