ASP.NET MVC与XSL的比较

7
有没有人(也许是XSL的粉丝?)能帮我找到使用XSL在网页上处理数据呈现方面相比于ASP.NET MVC的任何优势?
这两种选择是:
1. 使用XSL的ASP.NET(MVC/WebForms)。从数据库获取数据并将其转换为XML,然后使用XSL模板在不同的页面上显示。
2. ASP.NET MVC。从数据库获取C#对象(或LinqToSql/EF对象)并在MVC页面上使用内联代码显示。
XSL的主要优点一直是在许多不同页面上保持数据的一致显示,例如WebControls。因此,如果我错了,请纠正我,ASP.NET MVC可以以相同的方式使用,但使用强类型对象。请帮我看看是否有使用XSL的任何好处。
6个回答

7
我认为使用XSLT将数据转换并展示给用户的主要好处如下:
  • 数据已经以XML格式存在
  • 数据遵循明确定义的模式(这使得使用像XMLSpy这样的工具更容易)。
  • 数据需要转换为多种不同的输出格式,例如PDF、WMP和HTML
如果这是您的数据的唯一输出,并且它不是以XML格式存在,则XSLT可能不是最佳解决方案。
同样,如果需要用户交互(例如编辑数据),那么您最终还是需要使用后端代码来处理更新,因此可能会变得过于复杂。

6

在进行XML转换时,我发现存在两个主要问题:

首先,它们往往非常缓慢,必须在执行任何操作之前解析并验证整个XML文件。由于XML过于冗长,因此文件大小也比实际需要的要大。

其次,转换方式的编码有点麻烦 - 自定义工具如XmlSpy可以帮助,但它仍然是大多数开发人员所熟悉的不同模型。

目前MVC非常快速且前景看好,但遭受传统Web开发的诟病,即代码中到处都是<%%>。使用XML转换可以避免这种情况,但更难阅读和维护。


随着像 Razor 这样的替代视图引擎的出现,蜜蜂叮你的痛感现在应该会减少。 - Robert Harvey
3
@RobertHarvey - Razor很不错,使用@语法比<%(至少对于简单语句)更加方便,但仍存在在输出和代码之间切换的根本问题。请注意,这是一个三年半前的答案 - 那时MVC还只是“有前途”,现在我认为使用XML转换就太疯狂了。 - Keith

4

我过去曾经使用过这种技术,现在在我的工作场所也有应用。(我得承认,我不是完全的粉丝,但我会担任反对派) 实际上,这是其中一个主要的优点,推广这个想法可能会很有趣。你可以动态地创建XSL,并随心所欲地改变页面的外观和感觉。虽然通过其他方法也能实现,但构建一个程序来动态修改XML/XSL文档非常容易。

如果你考虑使用XSL将一个XML文档转换为另一个XML文档并显示为HTML(这实际上就是你正在做的事情),你将打开系统以允许其他程序通过XML访问页面上的数据。虽然你可以通过其他方法实现这一点,但使用XSL转换强制它每次输出XML。

我建议小心谨慎地使用这种方式创建系统。你会发现很多你没预料到的问题,如果你不非常非常了解XSL,还需要学习曲线。


1

好吧,我并不是真的想这么做。我只是想听听为什么有人想要使用它的意见。 - Seb Nilsson
我能想到使用它来分离数据和呈现的唯一原因是在超高流量的网站上,节省10-20%会产生显着的差异。 - bleevo

1
Jafar Husain在他的“Pretty XSL提案”中提供了一些优点,主要是缓存样式表以增加页面加载速度并减小数据大小。Steve Sanderson提出了一个稍微不同的方法,使用JavaScript作为控制器(这里)
另一种类似的方法是使用XForms,尽管最好的支持是通过JavaScript库实现的。

0

如果你只是从数据库中显示数据,XSL模板可能是一个方便的解决方案,但如果你要处理用户交互,嗯...我认为这根本不可维护。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接