CERN 的 Tim Berners-Lee 发明现代 Web 时的初衷是将其作为允许在基于网络的系统上存储和链接静态文档的系统。之后的数年间,随着创新的发展和成熟,"活动"文档自然而然地成为了现代 Web 发展的新阶段,这些文档在收到访问请求时即会生成,文档中包含特定于时间或用户的信息。CGI 之类的技术成为了这一阶段的实现基础。随着时间的推移,在 Web 上生成文档的功能变得极为重要,技术上的发展也历经 CGI、Java、ASP,到达 ASP.NET 阶段。
在开发人员采用服务器开发模式并使用 Visual Studio 系列产品中的同类最佳工具快速开发高质量 Web 应用程序时所能拥有的能力方面,ASP.NET 树立了一个里程碑。
事实证明,用户体验是 Web 应用程序中的一大障碍,在这方面,技术上的限制使 Web 应用程序无法提供与使用本地数据的客户端应用程序同样丰富的用户体验。
XMLHttpRequest 对象(2000 年由 Microsoft 作为 Internet Explorer 5 的一部分发布)成为了异步 JavaScript 和 XML (AJAX) 技术的基础,该技术使 Web 应用程序能够对用户输入做出更加动态的响应,因为采用该技术时只会刷新网页的一小部分,并不需要重新加载所有内容。基于 AJAX 构建的创新型解决方案(如 Windows Live Local 映射)使 Web 应用程序更进一步,已经能够提供客户端式的用户体验。
"WPF/E"是应用程序开发人员和设计人员可以向其客户呈现的潜在用户体验丰富性的下一个发展阶段。它通过允许设计人员展现其创造力并以能够直接对 Web 产生影响的格式保存其工作来实现此目的。在过去,设计人员会使用提供了丰富输出功能的工具来设计网站和用户体验,但在实现能力上开发人员会受到 Web 平台的限制。在"WPF/E"模型中,设计人员可以构建其想要的用户体验,并将其表示为 XAML。开发人员随后可以使用"WPF/E"运行时直接将该 XAML 并入到网页中。因此,两者可以比以往任何时候都更加紧密地合作,从而提供丰富的客户端用户体验。
由于 XAML 属于 XML,因此它是基于文本的,也就能够为这些丰富内容提供与防火墙兼容的、易于检查的说明。尽管可以使用其他技术(如 Java 小程序、ActiveX 和 Flash)来部署比 DHTML/CSS/JavaScript 更丰富的内容,但它们都会向浏览器发送二进制内容,这种内容难以进行安全性审核,更不用说还有更新上的困难,因为进行任何更改后都必须重新安装整个应用程序,而这并不是最友好的用户体验,并可能导致页面停滞。使用"WPF/E"时,如果需要对丰富内容进行更改,服务器端会生成新的 XAML 文件;下次用户浏览到该页面时,将会下载该 XAML 并更新体验,而不需要进行任何重新安装。
"WPF/E"的核心是浏览器增强模块,其作用是呈现 XAML 并在浏览器表面上绘制所生成的图形。它的下载体积较小(不到 2 MB),可以在用户点击包含"WPF/E"内容的站点时进行安装。该模块会向 JavaScript 开发人员公开 XAML 页面的底层框架,以便能够实现在页面级与内容进行交互,开发人员于是就可以进行自己的工作,例如:编写事件处理程序或使用 JavaScript 代码来处理 XAML 页面内容。