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

发布于:2008 年 7 月 20 日 22:04

继续保持着一个月发布一个版本的进度,微软发布了 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 属性修补了这个问题。以下是这个实现的示例:

<pre id="ll3b46">Application_Start( sender, EventArgs e) <br id="ll3b47"></br>{<br id="ll3b48"></br> ControllerBuilder.Current.DefaultNamespaces.Add();<br id="ll3b49"></br> ControllerBuilder.Current.DefaultNamespaces.Add();<br id="ll3b50"></br> ControllerBuilder.Current.DefaultNamespaces.Add();<p>}</p>### 增强 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

阅读数:543 发布于:2008 年 7 月 20 日 22:04

更多 .NET、语言 & 开发 相关课程,可下载【 极客时间 】App 免费领取 >

评论

发布
暂无评论
  • 比较:Jetty 架构特点之 Handler 组件

    Jetty的Handler在设计上非常有意思,可以说是Jetty的灵魂,Jetty通过Handler实现了高度可定制化。

    2019 年 6 月 1 日

  • Promesh.NET:一个.NET 的 MVC Web 框架

    Philippe Leybaert最近发布了一个名为ProMesh.NET的Model-View-Controller (MVC)框架,用于创建.NET 2.0 Web 应用程序。这个框架在开源许可下发布在Codeplex上。MVC框架随着Ruby on Rails以及Castle Project 和 MonoRails的流行,最近获得了大家的欢迎。

    2007 年 8 月 23 日

  • 基于 jQuery 的 UI 框架 jQuery EasyUI 1.4 发布

    近日,jQuery EasyUI 1.4发布,该版本相比上一版本有了很大的改进, 新增了插件,修复了bug,还为许多插件新增了方法和属性。

    2014 年 8 月 4 日

  • Java Agent 与字节码注入

    我们可以通过Java agent的类加载拦截功能,修改某个类所对应的byte数组,并利用这个修改过后的byte数组完成接下来的类加载。

    2018 年 10 月 5 日

  • 客户端创建和调用原理

    gRPC 的客户端调用主要包括HTTP/2 客户端创建、客户端负载均衡、请求消息的发送和响应接收处理四个流程。

    2018 年 3 月 13 日

  • Redis 基础:redis 特点

    redis作为非关系型数据库的一种,属于键值型数据存储,因为redis支持高并发的快速数据访问,所以在生产中多用来作为缓存使用,以提高数据读取效率,提高整个应用程序的并发性能。redis主要有以下特点

    2020 年 7 月 13 日

  • 第一周:架构方法 - 架构师如何做架构学习总结

    第一周:架构方法-架构师如何做架构学习总结

    2020 年 6 月 11 日

  • Win2D:面向 C#的 2D 图形加速 API,不适用于 WPF

    Windows应用开发人员有了一种利用GPU加速2D图形代码的新方法。Win2D是一种新的Windows Runtime API,为Windows Phone和Windows Store上的Universal App提供了一种访问DirectX的新方法,而不必借助C++。

    2014 年 9 月 23 日

  • 怎样构建底层的发布和订阅事件总线?

    在今天这篇文章中,我和你分享了事件总线是什么,以及事件总线解决了什么样的问题。

    2019 年 5 月 7 日

  • Rider EAP17 带来了许多改进但缺乏.NET Core 调试功能

    JetBrains近日发布了Rider的新版本,其中引入了许多的改进,但是这个版本仍然无法调试基于.NET Core开发的应用程序。

    2017 年 2 月 27 日