InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

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

作者 Hartmut Wilms 译者 赵劼 发布于 2007年12月17日

领域
语言 & 开发
主题
.NET框架 ,
.NET ,
Silverlight
标签
MVC ,
Astoria ,
AJAX ,
ADO.NET ,
ASP.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

    译者 赵劼 网名为老赵,洋名Jeffrey Zhao,写有技术博客“老赵点滴”。关注前沿技术,并致力于开源社区与微软平台的组合优化。

    深度内容

    应用云平台的可用性——从新浪SAE看云平台设计

    云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

    JVM定制改进 @ 淘宝

    淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
    本次演讲视频录制于QCon杭州2011

    "伤得起"的云计算应用——对云端应用之架构的思考

    2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

    让交付的速度跟上思考的速度

    12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
    本次演讲视频录制于QCon杭州2011

    架构之路——穿行在产品和业务之间

    篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
    本次演讲视频录制于QCon杭州2011

    特性注入:成功三部曲

    本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。

    解析JDK 7的动态类型语言支持

    随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。

    Java Remoting远程服务(下)

    随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。