zoukankan      html  css  js  c++  java
  • ASP.NET MVC 框架路线图更新 【转】

    【原文地址】ASP.NET MVC Framework Road-Map Update
    【原文发表日期】 Tuesday, February 12, 2008 1:05 PM

    去年的十二月份,作为ASP.NET 3.5 Extensions CTP版的一部分,我们发布了新ASP.NET MVC 框架的第一个预览版。我也写了几个博客帖子,对该框架到底是什么,以及你可以如何使用它,提供了更多的细节:

    此后,我们得到了很多正面的反馈,下载量非常高,感受到了围绕着该框架的兴奋。最近大家常问我的一个问题是,“新的版本什么时候出来,里面都有些什么?”

    下面的内容将提供几个更新,是关于ASP.NET MVC 开发团队一直在开发的东西,以及不久就会发布的一些新特性。我在将来的另外一个帖子里将会讨论ASP.NET Dynamic Data(动态数据)以及一直在稳步前进的ASP.NET AJAX 特性方面的工作。

    所有这些特性(ASP.NET MVC, ASP.NET Dynamic Data, 以及新的ASP.NET AJAX 改进)都将在今年稍后发布,可用于VS 2008 和.NET 3.5。

    即将发布的ASP.NET MVC MIX 预览版

    我们计划在几个星期后的MIX 08 大会上发布 ASP.NET MVC 的下一个公开预览版。这个版本将可以在网上为任何人所下载(你不需要参加MIX)。在这个版本中,我们融合了许多早期采用者的反馈。下面是将在这下一个预览版中出现的一些改进:

    1)ASP.NET MVC框架可以部署在应用的\bin目录中,以及在部分信任权限下工作

    第一个ASP.NET MVC 预览版,为了将System.Web.Mvc.dll程序集注册到机器的GAC(全局程序集缓存)中去,需要一个安装程序在机器上运行。

    从即将发布的这个预览版开始,我们将允许应用直接从应用的\bin目录中直接引用System.Web.Mvc.dll 程序集。这意味着不需要在服务器上运行安装程序就可以使用ASP.NET MVC 框架,你只要直接将你的应用拷贝到远程ASP.NET 服务器上,就可以运行(不用注册,也不需要额外的配置步骤)。

    我们还在做一些工作,以允许ASP.NET MVC 框架能在“部分和中等信任权限(partial/medium trust")”的主机场景中运行。这将允许你在廉价的共享主机帐号中也可使用这个框架,而不用要求主机供应商做什么(只要将你的应用FTP上去,它就能运行,他们不需要安装什么东西)。

    2)显著增强的路径选择特性和基础设施

    ASP.NET MVC 框架一个最强大的特性是它的路径选择引擎(我在这里讨论过这些特性)。

    即将发布的这个ASP.NET MVC 预览版将包含更多的URL路径选择的特性和改进。你现在可以使用置名的路径(允许明确的路径规则的引用),使用灵活的路径通配符规则(允许自定义的基于CMS的URLs),引申和声明自定义的路径规则(允许象REST资源映射那样的场景等等)。

    在这个预览版中,我们还将URL路径选择基础设施与MVC框架的其他部分分开,这允许我们可将其用于ASP.NET中其他的非MVC特性中 (包括ASP.NET Dynamic Data和ASP.NET Web Forms)。

    3)改进的VS 2008工具支持

    第一个ASP.NET MVC预览版只有极小的VS 2008 支持(基本上就是简单的项目模板支持)。

    这个即将发布的ASP.NET MVC预览版将提供改进的VS 2008集成支持。这包括,更好的项目文件模板,自动的项目默认设置等等。我们还加了内置的“测试框架”向导,这向导将在你通过 File->New Project 对话框创建新ASP.NET MVC项目时自动运行。这将允许你轻松地为你的ASP.NET MVC应用命名和连接单元测试项目。

    ASP.NET MVC测试框架向导是可插拔的,允许自定义的测试项目模板添加到支持的测试选项表中去:

    这允许开发人员轻松地选择他们最喜欢使用的任意单元测试框架(以及关联的mocking和依赖注入选项)。

    4)Controller Action方法不再需要[ControllerAction]特性

    第一个ASP.NET MVC 预览版要求Controller类的action方法明确标有[ControllerAction]特性,才可调用:

    基于早期采用者的反馈,即将发布的ASP.NET MVC版将去掉这个要求,取而代之的是,在默认情形下,Controller上的所有公共方法现在都被认为是Action方法:

    注: 你可以添加特性,以避免你的Controller的公共方法成为可调用的action方法,假如你想要/需要加一个公共的非action方法的话。

    5)控制器和Action方法的新过滤特性支持

    在这下一个ASP.NET MVC版本中启用的一个新扩展性特性是个叫做“过滤特性(Filter Attributes)”的特性。这允许你把拦截代码注入到MVC控制器的请求中,这些代码可以在Controller或它的Action方法执行之前和之后执行。这个行为能促成一些非常棒的封装场景,在其中你可以干净,声明的方式来包装和重用功能。

    例如,我可以使用一个 [OutputCache] 过滤特性,来每次30秒输出缓存我的产品列表网页:

    或者使用 [Authorization] 过滤特性来确保只有拥有某个特定安全角色的人才允许编辑产品:

    这个过滤机制是可扩展的,你可以轻松地为Controller类或者其中的Action方法创建你自己的自定义过滤特性。过滤器(以及使用过滤器的控制器和action方法)是可以被完全单元测试的。

    6)HTML辅助方法成内置

    第一个ASP.NET MVC 预览版只有几个HTML UI辅助方法内置于核心程序集中。然后我们发布了一个单独的下载,内含一堆可为你所用的额外的HTML辅助方法。

    这个即将发布的ASP.NET MVC 预览版现在内置拥有这些HTML辅助方法(不需要单独的下载)。下个月,我们还将开始讨论我们正在对客户端ASP.NET AJAX库所做的一些新的改进,以及一些能与ASP.NET MVC轻松集成的AJAX辅助方法。

    7)许多重构和设计方面的改进

    这个即将发布的ASP.NET MVC预览版还包括几个重构和设计改进,以进一步提高MVC框架的可扩展性和可测试性。总的来说,开发团队遵循了这样一个设计理念,针对所有特性你都有三个选项:

    1. 原封不动地使用内置的特性/实现
    2. 稍微定制一下内置的特性/实现,不需要编写很多代码
    3. 用自定义的东西完全替换掉内置的特性/实现

    例外,你现在可以改变视图引擎(ViewEngine)的定位逻辑 (locator logic),而不用改变视图引擎的执行逻辑(反之亦然),或者可以把视图引擎完全置换掉。Controller Factory支持也被扩展成更便利与依赖注入框架的轻松集成。路径规则现在也是完全可扩展的,Controller也更易测试了,等等。

    8)可下载的ASP.NET MVC框架源码(可编译和施于补丁)

    上个月,我宣布了.NET框架源代码可以下载和调试了。最终在发布 ASP.NET MVC 框架之后,该框架的源代码也将以同样的机制提供给开发人员,就像其他的ASP.NET源代码一样。

    从下一个预览版开始,我们还将把ASP.NET MVC 框架的源代码以可编译的VS项目方案的方式提供下载。这将允许你轻松地查看和调试ASP.NET MVC 框架源代码。我们还将包括一个许可,允许你可以对ASP.NET MVC 框架的源代码进行补丁,万一你在使用MVC框架开发的应用中遇上其中的缺陷的话。

    这个许可将不允许你重新发布你补过的ASP.NET MVC 版本(我们想避免有多个不兼容的ASP.NET MVC 版本的流传以及相互之间的冲突)。但它会允许那些想动手开发ASP.NET MVC 应用的开发人员立刻取得进展,而不必担心为他们无法绕过的临时的缺陷所阻碍。

    结语

    下一个 ASP.NET MVC 预览版中还包括了很多其他的变动(包括许多辅助属性/方法/对象)。希望上面的列表对即将出现的几个较大的改进提供了一些介绍。在MIX大会左右我会在预览版发布后写帖子,提供更新的预览版的地址。

    希望本文对你有所帮助,

  • 相关阅读:
    golang 数据结构 优先队列(堆)
    leetcode刷题笔记5210题 球会落何处
    leetcode刷题笔记5638题 吃苹果的最大数目
    leetcode刷题笔记5637题 判断字符串的两半是否相似
    剑指 Offer 28. 对称的二叉树
    剑指 Offer 27. 二叉树的镜像
    剑指 Offer 26. 树的子结构
    剑指 Offer 25. 合并两个排序的链表
    剑指 Offer 24. 反转链表
    剑指 Offer 22. 链表中倒数第k个节点
  • 原文地址:https://www.cnblogs.com/cxd4321/p/1568024.html
Copyright © 2011-2022 走看看