InfoQ

新闻

微软发布了ASP.NET MVC框架的第4个预览版本

作者 Robert Bazinet译者 赵劼 发布于 2008年7月20日 下午10时4分

社区
.NET
主题
.NET框架
标签
ASP.NET MVC,
ASP.NET

继续保持着一个月发布一个版本的进度,微软发布了ASP.NET MVC框架的Preview 4版本。这个版本开始提供更多高端功能,以帮助开发人员提高生产力。

Scott Guthrie在他的博客文章《ASP.NET MVC Preview 4发布(第一部分)》中介绍了这个发布,同时也解释了一些新特性。

更新

默认项目模板中新增的简单Membership(成员)特性

默认的项目模板中引入了一个AccountController类,可以操作以下用户行为:

  • 登陆
  • 登出
  • 注册
  • 改变密码

考虑到大部分应用程序会涉及用户及验证,这部分功能为开发人员节省了时间。默认设置的MembershipProvider使用了SQL Server快速版,不过您也可以使用其他SQL Server版本,或者已存在的数据库。

新增的授权和异常处理的Filter(过滤器)类型

这次发布包含两个新的Filter类型:Authorization(授权)和Exception(异常)Filter。这些Filter会在其他类型的Action Filter(动作过滤器)之前执行,而与其它Filter的作用域无关。

以下功能对新的类型提供支持:

  • 新增IAuthorizationFilterIExceptionFilter接口。Authorization Filter保证在其它Action Filter之前执行。即使某个Filter已经处理了请求中的异常,Exception Filter也会被执行。这一点在捕获和记录异常时非常有用。
  • AuthorizeAttribute类。这是个IAuthorizationFilter的具体实现。它为action方法提供了保护。
  • HandleErrorAttribute类。这是个IExceptionFilter的默认实现。 它可以捕获异常,并且在异常发生时指定一个视图进行输出。

新的Output Cache Filter

OutPutCacheAttribute利用了ASP.NET中健壮的缓存机制,为Action方法实现了输出缓存。

为ASP.NET AJAX的改变

框架中添加了一些新的AJAX辅助方法,它们利用AjaxOptions类来提供异步操作。

  • ActionLink -  生成一个指向某个Action方法的a标签。点击这个链接会异步调用Action方法。一个典型的使用方式是在得到响应之后更新某个DOM元素,这个DOM元素可以使用AjaxOptions.UpdateTargetId属性来指定。
  • Form - 生成一个HTML异步提交的表单。典型的使用方式则是异步提交一个表单,然后和ActionLink一样,得到响应之后更新一个AjaxOptions.UpdateTagetId指定的DOM元素。

Scott Hanselman在他的博客文章中提供了一个不错的示例来演示这些功能。

Routes中的命名空间

这个框架之前的版本中用于查找Controller的方法偶尔会出现问题而引发异常。这次的版本通过为ControllerBuilder类引入DefaultNamespaces属性修补了这个问题。以下是这个实现的示例:

Application_Start( sender, EventArgs e) 
{
ControllerBuilder.Current.DefaultNamespaces.Add();
ControllerBuilder.Current.DefaultNamespaces.Add();
ControllerBuilder.Current.DefaultNamespaces.Add();


}

增强TempData可测试性的新接口

新版本框架引入了一个新接口:ITempDataProvider。这允许Controller使用SessionStateTempDataProvider以外的Provider,这增强了可测试性,并允许开发人员使用cookies而不是会话状态。

ActionInvoker扩展性的改进

ActionInvoker中添加了一些virtual方法,能够在高级情景下用于扩展invoker。这些新方法包括:

  • GetFiltersForActionMethod - 返回所有的Filter(Authorization、Action和Expcetion Filter)。
  • InvokeActionResultWithFilters - 调用Action方法返回的ActionResult对象中的ExecuteReuslt方法,并且将所有的Filter应用到Action方法上。
  • InvokeAuthorizationFilters - 执行所有运用在Action方法上的Authorization Filter。
  • InvokeExceptionFilters - 执行所有运用在Action方法上的Exception Filter。

这个预览版本能够在CodePlex上下载到。请仔细阅读Readme文件中的内容,以及CodePlex上对所有新特性细节的描述

查看英文原文:Microsoft Releases ASP.NET MVC Framework Preview 4

3 条回复

回复

? 发表人 feng jian 发表于 2008年7月20日 下午11时36分
re 发表人 Giampaolo Pazzini 发表于 2008年7月22日 上午4时5分
感谢赵老师的翻译 发表人 皓月 江天 发表于 2008年7月22日 下午8时51分
  1. 返回顶部

    ?

    2008年7月20日 下午11时36分 发表人 feng jian

    为什么点'更早的'的那链接速度好慢.现在都没跳过去

  2. 返回顶部

    re

    2008年7月22日 上午4时5分 发表人 Giampaolo Pazzini

    密切关注

  3. 返回顶部

    感谢赵老师的翻译

    2008年7月22日 下午8时51分 发表人 皓月 江天

    之前有看过Scott Hanselman的日志,经过赵老师的翻译,理解起来轻松多了。

独家内容

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。

AtomServer:数据分发的发布动力(第二部分)

在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。

架构师(试刊第二期)

InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!

一种正规的性能调优方法:基于等待的调优

在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。

Java程序员ActionScript 3入门

通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。

浅谈如何创建Rails应用

本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。

Alexandru Popescu谈InfoQ.com网站架构

InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。