在学习Sitecore时,我发现Web上的大多数Sitecore示例代码都是使用XSL而不是.NET。
选择XSL优于我已经习惯作为.NET开发人员的流程会有什么好处?
使用XSL是否有处理速度优势?
一旦您熟悉语法,XSL是否真的更容易?
答案 0 :(得分:7)
我也会加2美分:
我发现在XSLT中有太多的限制需要用外部“库”来克服,或者在C#中开发一个可以在XSLT中使用的方法。
所以我发现使用Asp.Net更简单。但是我使用Asp.Net比使用XSLT要好得多。
但XSLT有一些好处:
当我第一次开始使用Sitecore时,我的公司使用了相当多的XSLT,但我们已经慢慢地离开了它,因为它的局限性,因为这里的大多数人都更熟悉Asp.Net/C#。 / p>
答案 1 :(得分:3)
有些人更喜欢XSL,因为现有的团队技能,XSL人才的可用性,或者相信XSL更容易学习或更便宜。
在Sitecore中,基于ASP.NET的子布局实际上比XSL渲染要好得多。如果这是你感觉舒服的,那就去吧。我自己从未创建过XSL渲染。
答案 2 :(得分:3)
XSLT是一种强大的语言;当您希望在各种不同的页面或具有共同共享元素和其他变量结构的不同源文档结构上重用和自定义逻辑时,它的主要优势在于像ASP.NET这样的语言。为了达到这个目的,它采用了一种基于规则的处理模型,有些人发现在第一次遇到时很难掌握。学习它是一项可以随着时间的推移而获得回报的投资,但一开始可能令人望而生畏。
至于性能方面,我从来没有遇到过这样一个工作速度不够快的网站,其中包括一些非常高压力的服务;当人们遇到性能问题时,他们通常会出现在处理流程的其他部分(或者仅仅是由于编码错误)。
答案 3 :(得分:3)
Sitecore中XSLT和.Net组件之间的选择主要是品味和技能。 Sitecore中的XSLT确实有一些缺点 - 除了最简单的渲染以及使用它时看起来最合乎逻辑的地方(例如将内容树结构复制为站点菜单)之外,它往往优于.NET组件。实际上那些往往会带来最大的性能打击。在正确的情况下,XSLT是一个非常强大的工具,值得学习,但我还没有看到在Sitecore中大量使用它的令人信服的论据。值得注意的是,一些标准的XSLT编程模式在Sitecore中并不是最有效的。
答案 4 :(得分:3)
我能想到的唯一真正优势是XSLT渲染更容易单独部署。例如,假设您正在更新“新闻点”渲染,并且您希望立即将此更改部署到测试/生产 - 这将是一个上传.xsl文件本身的简单案例。
使用.NET开发(以及持久的Web应用程序项目模型),代码库的部署将隐式部署对受影响的程序集的任何和所有更改 - 包括您正在进行的任何工作。
当然,有一些方法可以解决这个问题。源代码分支/合并等等 - 但这是解决方案的另一层复杂性。
话虽这么说,我自己使用.NET占我所有Sitecore开发的95%以上: - )
答案 5 :(得分:3)
“总而言之,软件设计和编码的主要目标是克服复杂性。许多编程实践背后的动机是降低程序的复杂性。降低复杂性是成为有效程序员的关键。” -Steve McConnell(1993)
让该指南何时通过C#使用XSLT。