在我目前的工作中,我们有一个基于 .NET/SQL Server 的 CMS 系统。在为一些内部使用定制几个模块时,我有点惊讶地发现,API 没有通过绑定到 DataGrid/DataList/Repeater 控件的典型结果集返回数据,而是返回 XML节点/集合,然后将其传递给 XSLT 转换并以这种方式呈现在页面上。
使用这样的模型有什么好处?
在我目前的工作中,我们有一个基于 .NET/SQL Server 的 CMS 系统。在为一些内部使用定制几个模块时,我有点惊讶地发现,API 没有通过绑定到 DataGrid/DataList/Repeater 控件的典型结果集返回数据,而是返回 XML节点/集合,然后将其传递给 XSLT 转换并以这种方式呈现在页面上。
使用这样的模型有什么好处?
使用 XSLT 转换将使您能够使用与标准 .Net 网格控件不同的布局和格式。有些人不赞成使用 .Net 网格,因为它们可以包含比必要更多的 HTML,而且如果不仔细管理,它们可能会使 ViewState 膨胀。
最近有一个关于 .Net 网格是英国媒体报道(但开发人员仍然使用它们)的讨论。
输出的页面可以是任何类型,如 html、php 等。
通过设置页面仅转换的数据源和 xml,您还立即创建了一个可以被其他软件使用的简单“Web 服务”。例如,将那个网格变成一个 RSS 提要或编写一个程序来定期抓取该数据并发送更紧迫的警报将是微不足道的。
XSLT 方法非常 MVC、单元测试、单独关注友好,而 ASP.NET 控制良好......不是。
警告:我拒绝 MS 可以编写比我更好的 html/css/js 的假设。ASP.NET 控件是笨重的可憎之物。