微软发布了ASP.NET MVC框架的第4个预览版本
作者 Robert Bazinet译者 赵劼
继续保持着一个月发布一个版本的进度,微软发布了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的作用域无关。
以下功能对新的类型提供支持:
- 新增IAuthorizationFilter和IExceptionFilter接口。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上对所有新特性细节的描述 。
本博客所有随笔版权归博客园和kai.ma所有,欢迎转载,转载请保留:
- 出处:http://kaima.cnblogs.com
- 作者:kai.ma
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述