ASP.NET 3.5 Extensions CTP - ASP.NET MVC 框架、Data Service、Dynamic Data 和 Silverlight 支持

  • Hartmut Wilms
  • 赵劼

2007 年 12 月 17 日

话题:.NET语言 & 开发

昨天,微软发布了一个众人翘首期盼许久的 ASP.NET 3.5 Extensions 的第一个 CTP(客户技术预览,Customer Technology Preview)版本(译者注:按照微软以往对于 CTP 的定义,应该是“社区技术预览,Community Technolgy Preview”)。这个扩展包内包括 ASP.NET MVC 框架,AJAX 增强,动态数据(Dynamic Data)支持,Silverlight 支持,以及 ADO.NET 数据服务(Data Service)。

ASP.NET 3.5 Extensions CTP 是向社区发布的第一个包含了 MVC(模型 - 视图 - 控制器,Model-View-Controller)框架的扩展包。之前微软在位于奥斯汀(Austin,位于美国中南部德州的首府)举办的ALT.NET会议上第一次公布了ASP.NET MVC框架的消息。Scott Guthrie给出了这个 CTP 版本的详细信息

  • ASP.NET AJAX 增强:ASP.NET 3.5 Extensions 中为 ASP.NET AJAX 提供的新功能包括更好的浏览器“历史”功能的支持(后退 / 前进按钮集成,以及服务器端的历史管理支持),提供了固定链接功能以增强直接访问 AJAX 内容的支持,以及一些额外的 JavaScript 类库的增强。
  • ASP.NET MVC 框架:这个基于 ASP.NET 的模型 - 视图 - 控制器(Model-View-Controller,MVC)框架提供了一个结构化的模型,将 Web 应用程序中的各种概念清晰地分离开来,这样易于编写单元测试,并且能够支持 TDD 的开发流程。它提供了对你的 Web 应用程序中发布的 URL 更多的控制,以及它们对于 HTML 呈现的控制。
  • ASP.NET 动态数据支持:这个 ASP.NET 3.5 Extensions 版本发布了一些新功能,能够更快地构建数据驱动的 Web 站点。它提供了一个丰富的“脚手架”框架,能够轻易使用 ASP.NET WebForms 或 MVC 框架来开发数据驱动的站点。
  • ASP.NET Silverlight 支持:随 ASP.NET 3.5 Extensions 我们还提供了可以把 Silverlight 轻易集成你的 ASP.NET 应用程序的支持。它包含一个控件,使您能够轻松地在站点中集成 Silverlight 视频 / 媒体和交互性内容。
  • ADO.NET 数据服务:与 ASP.NET Extensions 同时发布的还有 ADO.NET 实体框架(ADO.NET Entity Framework)。它提供了模型化的框架,能够让开发人员为数据库架构定义一个与真实世界信息相似的概念化的模型。我们同样发布了一系列新的数据服务(代码名“Astoria”),便于在 ASP.NET 应用程序中发布 REST 形式的 API。
  • 这个 ASP.NET 3.5 Extensions 的 CTP 版本能够在微软 ASP.NET 站点上下载 。伴随它的还有ASP.NET MVC 工具箱,这个东西“为 MVC 框架提供了生成 HTML 的辅助类(helper)以及动态数据的支持”。

  • HTML 生成辅助类(Rendering helpers)让在 MVC 的视图中输出各种 HTML 标签变得容易。
  • 动态数据(Dynamic Data)支持:它为 ASP.NET MVC 提供了一个强大的,可扩展的脚手架架构。这个工具箱同时增加了元数据的插接能力,使得动态数据能够根据这些元数据来选择其它的存储(而不是默认的基于自定义属性的机制)。
  • David Ebbo在博客中发布了一篇文章解释了动态数据支持和它的脚手架框架: 

    动态数据能够让您在自己的架构上运行一个结构化的 Web 应用程序。尽管这个脚手架有一个“标准的”UI,它可以让您在数据表上进行所有的 CRUD 操作。此外它还完全支持关系。用 Northwind 数据库为例,产品页面能让您导航产品分类信息,并且在修改产品分类时能够让您通过一个下拉列表进行选择分类名(而不是选择 ID)。

    Scott Hanselman提供了一个关于 ASP.NET MVC 框架的视频讲座,它应该能够帮助你开始使用 MVC 框架来开发 Web 应用程序。同时他还安抚了社区里那些对于大量新发布的内容无从下手的人们:

    为什么我们在发布了 Visual Studio 2008 之后马上又发布了新的扩展包呢?这是我们正在采用的一种类似正弦曲线一样的工作方式。我们交错发布一些大型的产品,例如.NET 或 Visual Studio,接着发布一些较小的东西,例如 MVC 框架或 AJAX 框架。因此,发布 Vistual Studio 2005 之后则是 AJAX,然后是 Visual Studio 2008,接着是 MVC,动态数据框架以及新的控件等等。有些时候这会显得有些混乱(相信我,我正在设法解决它们),但是这会使您更快的得到新的东西。

    Scott 建议大家不时访问一下ASP.NET 官方站点,并且着重注意一下扩展的下载栏目(download section),“这个星期每隔几天就会在那里发布一些视频,它们覆盖了这次发布的所有内容——并非只是 MVC 框架”。

    针对那些对于细节感兴趣的人,Scott Guthrie 发布了一系列的文章关于“一个简单的电子交易商店应用程序示例来展示 ASP.NET MVC 框架是如何工作的”:

    ASP.NET MVC 框架(第 1 部分) ASP.NET MVC 框架(第 2 部分):URL 导向 ASP.NET MVC 框架(第 3 部分):从控制器向视图传递试图数据(ViewData) ASP.NET MVC 框架(第 4 部分):处理表单编辑以及 Post 场景  

    Nikhil Kothari解释了如何在 ASP.NET MVC 框架中集成 ASP.NET AJAX 。那里提供了一个特别的 AjaxController,它应该取代 Controller 类来作为控制器的基类。AjaxController 提供一些特殊的成员,例如 IsAjaxRequest 和 RenderPartial,它们支持不同视图的生成以及部分更新。

    查看英文原文:ASP.NET 3.5 Extensions CTP - ASP.NET MVC, Data Services, Dynamic Data and Silverlight Support
    译者简介:赵劼 (Jeffrey Zhao,网名老赵),毕业于复旦大学软件学院,曾任职于微软中国研发中心,现任某创业团队架构师。有 8 年左右的 Web 应用开发和 5 年左右的.NET 应用程序开发经验,对 ASP.NET 企业应用开发与客户端技术(如 JavaScript 和 AJAX 等)有较为深入的理论基础与实践经验,另外,他对 SOA、重构以及程序员能力与修养等相关问题也有着浓厚的兴趣,并且非常希望能够写程序到 60 岁。他的博客为:http://jeffreyzhao.cnblogs.com
    .NET语言 & 开发