SQL Server XML 模板经过高度流程化,能尽可能高效地通过 HTTP 访问数据库。为此付出的代价是功能集受到限制。在模板中找不到所需功能的情况下,SQL Server 的专用 ISAPI 应用被替换为 ASP、ASP 和 COM+ 的组合或自定义的 ISAPI 应用。
本节中说明的体系结构适用于您的页面要执行下列操作的情况:
访问多个服务器上的数据库
处理在设计时未知其格式的 HTTP 请求
调用 COM/COM+ 对象
使用 COM+ 事务
连接至 Internet 上的任何应用或 Web 服务,例如付款提供程序
图 4:写入方体系结构
Web 层上的代码表示应用功能的四个层——数据访问、业务逻辑、工作流和表示。在开发应用时,请确保此代码与体系结构保持一致。这可使代码的可读性更高,也更易于维护。如果决定单独使用 ASP,脚本类的效率会更高。如果在业务逻辑层或工作流层有大量复杂的处理,对这些层使用 COM+ 组件可能速度更快。相反,对于处理量相对较小的情况,使用脚本可能速度更快。
这种新体系结构更出色的原因是,所有层(从数据到表示)都使用 XML 来传输和存储信息。数据库中的存储过程使用这些新功能来读写 XML。数据访问层利用 ADO 2.6 流与数据库进行高效、基于 XML 的通讯。
在整个应用中使用 SQL Server XML 将有助于最大程度地降低不同技术的工作量。(XSL 是一个例外:它不属于 SQL Server XML,但却紧密集成在 SQL Server XML 模板中)。各层之间一起工作,但产生的冲突最少。在各层之间进行调试非常简便,因为所有的中间数据都是 XML,无需任何额外操作。但是,可编程性的最大优点可能是大大减少了代码量:基于 SQL Server XML 版本的 Duwamish Books, Phase 4 可完成基于 COM+ 的同类产品相同的工作,但前者的代码量只有后者的十分之一。通过 SQL Server XML 的内置功能使数据访问、XML 转换、XSL 转换和数据缓存变得更加简便。
遗憾的是,不能再使用 XSL 的高效调试工具,而用于其他新技术的调试工具相对来讲还不成熟(尤其是与 Microsoft Visual Studio® 提供的跨语言调试能力相比)。