通过Web Platform installer安装
或者如果你想直接下载安装器,可以访问下载详细页面。
目标
在深入介绍这些推荐的特性之前,我们先来看看这个版本的整体目标。站得更高,才能看得更远,我们的目标是使 ASP.NET MVC 成为最优秀的构建现代富Web **应用程序的平台。**因此我们关注ASP.NET MVC 4中的特性(以及整个Web堆栈),这可以使我们离这个目标更近一些。
主题
在计划特殊的特性之前,ASP.NET小组制定出了一些主题,来指导我们的计划。有些主题并不特定于ASP.NET MVC的,因此无法在ASP.NET MVC特性小组中单独实现。我们将与微软以及微软以外的人士合作,来实现这些目标。
- 开发和部署:使开发和部署的流程更加简单、优秀、快速。
- 利用平台:Razor视图引擎以及ASP.NET MVC 3中一些新的辅助器也可用于ASP.NET Web页面。我们将在ASP.NET MVC中继续利用整个Web平台中的共享特性。
- Ajax:无论是向现有Web应用程序中添加Ajax,还是实现一个完整的单页应用程序(如Gmail),我们都将改进ASP.NET MVC中的Ajax开发。我们已经有了一些想法,但现在正处于构建应用程序以暴露和了解那些可以修复的bug这一过程之中。
- HTML 5、平板和移动设备:通过简单地构建一个HTML 5 Web应用程序,来构建平板和移动应用程序,已经成为了产业趋势。HTML 5应用程序提供了最广泛的分布选择,可以运行于各种各样的设备之中。但编写面向移动和平板设备的应用程序引擎则需要丰富的经验。我们希望构建这种应用程序可以变得更加简单。
- 云:我们要将在云上(如Windows Azure)部署和承载Web应用程序的任务变得更加简捷。为了从云中受益,我们将关注于性能、安全和可扩展性。
特性
现在,要开始介绍你最感兴趣的部分了------特性!注意,有些特性比其他的要更加丰满。
Recipses (基于任务的可扩展工具)
有些任务要求你操作应用程序的多个部分。例如,要向视图中添加一个Ajax网格,需要生成视图代码来呈现网格的HTML标记,创建数据访问类来展示网格,添加控制器类使得Ajax网格可以通过异步调用来获取数据。
ASP.NET MVC 4 recipe是通过NuGet发布的一个对话框,它包含相关的用户界面以及用来自动执行某个特殊任务的代码。比如,实现一个基于OAuth的认证永远要比调用一个方法复杂得多,因为它需要很多设置和很多UI。而实现OAuth认证的recipe可能会提供一个UI,供你进行设置,然后生成所有需要的代码。
示例
以下是一些可以使用recipe实现的想法:
- Ajax网格
- 实现基于OAuth的认证
- 支持使用Windows Identity Framework的基于声明的认证
编写、部署和安装Recipe
要编写一个recipe,只需要实现一个使用了recipe API的对话框。该对话框包含一个MVC项目接口的实例,用起来比EnvDTE.DTE(用来自动化Visual Studio中的任务)要简单得多。
例如,要向一个ASP.NET MVC项目的某个area中添加一个controller,使用DTE可能需要调用多个方法,而recipe API则只需调用一个方法。
编写完这个对话框之后,将其打包成NuGet包,这样大家就可以用你的食谱(recipe)来做菜了。
Recipe实物模型
下面这个实物模型展示了recipe是如何工作的。要启动一个recipe,可以在Solution Explorer中(或适当的文件中;一些recipe是位于上下文中的)右击项目节点,选择Run Recipe。这将打开一个菜单,有很多recipe可供选择。(这也可能是Run Recipes上下文菜单选项的子菜单。)

用NuGet安装的recipe都会显示在列表中。选中一个并启动recipe。不同的recipe具有不同的UI。

Recipe可以简单到只有一个对话框(理论上也可以一个对话框都没有),也可以是包含多个步骤的向导。点击Finish,使用你指定的设置运行recipe。
Recipe API
对于API来说,其理念是,recipe开发者可以获取项目接口的实例,该接口包含如何启动recipe的上下文。它还将在MVC项目系统之上提供一个简单易用的façade,开发者不必学习整个接口的DTE集合。不过,接口还是可以访问DTE,以防止项目接口可能不够充分。
内置的Recipe
作为该项目的一部分,我们计划构建一些内置的recipe。如前面提到的OAuth支持、Ajax网格、WIF。我们也在寻找其他的想法。
移动支持
移动设备(手机和平板)从可以浏览网站之后就开始愈发流行了。因此要为公众建立一个网站,你需要考虑能够为使用小屏幕或可触屏的访问者提供什么样的体验。在ASP.NET MVC 4中,我们希望为你提供直接却灵活的方式,实现一流的移动支持,不管你是创建新网站,还是增强已有的站点。
默认模板的改变
我们对默认项目模板的标记和CSS做了改进,这样最新创建的项目放在移动设备上可以和桌面上一样好看。例如,我们添加了viewport元标记,页面在小屏幕上也可以布局得很好,即便页面专为桌面设计,也不会出现奇怪的放大和缩小。下图比较了使用新旧模板构建的页面:

新的"Mobile Application"项目模板
另一个正在考虑的改变是专门用于移动和平板Web应用程序的项目模板。该项目模板会包含布局、视图和脚本(如jQuery Mobile),用于构建可提供富用户体验和为现代移动设备进行了优化的应用程序。用该模板构建的页面可能会如下所示:

针对特殊设备的视图
你常常需要剪裁用户界面以适应用户的设备。我们希望能使针对特殊设备类型的视图、分部视图和布局进行的重写(override)能变得简单。无论你是创建全新项目还是将已有项目升级到ASP.NET MVC 4,该特性都能正常工作。
例如,你可以针对移动设备重写一个特殊的视图,只需创建以".Mobile"为文件名后缀的新视图即可:

我们还可能会提供一个新的基于jQuery Mobile的视图模板,并增强Add View和Add Controller对话框,这样你就可以为新的或已存在的controller和action快速添加基于jQuery Mobile的视图重写。下图展示了一个Add Controller对话框可能的外观:
