ASP.NET 的未来:简化开发,HTML 5 及性能提升

  • 赵劼

2009 年 12 月 8 日

话题:.NETHTML5语言 & 开发

在上月举办的 PDC 09 大会中,微软 ASP.NET 团队的 Jonathan Carter 和 Scott Hunter 演示了为 ASP.NET 4 以后版本设计的一些功能,其主要方向是简化应用程序的开发,支持 Web 标准,以及提高性能提升。

在简化应用程序开发方面,ASP.NET 团队正在考虑以下几个功能:

  • 可用于 ASP.NET MVC 和 WebForms 的 Action Record 模式支持,基于 Entity Framework,方便快速建模,快速开发。
  • 更易于使用的 Route 规则:能结合各种信息(如硬盘上的文件路径)自动判断路由目标及相关参数。
  • 可扩展的,基于常见任务 / 场景的辅助方法,例如:
    • 图片处理,如缩放,水印等常用操作。
    • OpenID 支持,这样开发人员可以轻松将 ASP.NET 认证与 OpenID 集成。
    • 后台计划任务,如“每 10 分钟”或“每天凌晨 2 点”执行某个任务。
    • Email 发送,以及使用 Email 进行验证的注册流程。
    • 真实的文件上传进度提示,目前实现这个功能需要使用某些危险的技巧,而今后 ASP.NET 可能会释放更多接口来进行支持。

HTML 5 带来了许多新特性,例如新的 HTML 标记,原生的视频和音频支持,以及拖放操作等等。未来的 ASP.NET 首先会支持 HTML 5 中更符合语义的标记。如在 ASP.NET 2.0 中,<asp:Menu /> 控件会生成复杂的 table 标记,在 ASP.NET 4 中则会变成符合目前语义的 ul/il 嵌套,而在未来的 ASP.NET 中,便可能会生成 <menu /> 标记。此外,HTML 5 的 Web Storage 功能允许将数据储存在浏览器上,未来的 Microsoft AJAX 库中将会提供一个可选的 IntermediateDataContext 用于替换目前的 AdoNetDataContext,后者将数据通过 WCF 接口存放在服务器端,而前者则将数据保存在本地。

在性能提高方面,ASP.NET 团队会在在微软的分布式缓存 Velocity 发布之后,为 ASP.NET 提供相应的各类 provider。这样 ASP.NET 便可以将数据缓存,会话状态等各种信息存放在进程外的的分布式缓存中,以此得到更好的性能和健壮性。这些 provider 实现可以与 ASP.NET 现有的扩展方式良好集成,对开发人员的使用保持透明。

由于 Web 应用程序的显示效果越来越丰富,网页前端性能优化的重要性也随之提高。未来的 ASP.NET 将会内置 CSS 或 JavaScript 文件的压缩及合并,并对 CSS Sprites 等复杂优化方式提供支持。CSS Sprite 的优化原理是将页面上大量的小图片合并成一个文件,然后使用 CSS 定位机制来显示其中的一部分,这么做的好处是大大减少了浏览器与服务器端的通信次数,往往可以使页面加载速度有明显提高。ASP.NET 在未来可以根据开发人员的需求,自动将一组图片进行合并,并通过一些接口将单独某幅图片的信息(如位置,尺寸)暴露出来,甚至直接在页面上生成包含特定属性的 HTML 标签。

你可以在PDC 2009 的网站上浏览或下载本次演讲的完整录像及幻灯片等资源。

.NETHTML5语言 & 开发