自强不息,厚德载物!身心自在,道法自然!


揭秘MVC4新的特性

MVC 4 概述

MVC4版是一个相当成熟的基础上,能够把重点放在一些更高级的场景。一些高级的功能包括:

  • ASP.NET Web API
  • Enhancements to default project templates(增强了默认的项目模板)
  • Mobile project template using jQuery Mobile(使用jQuery Mobile的移动项目模板)
  • Display Modes(显示模式)
  • Task support for Asynchronous Controllers(任务支持异步控制器)
  • Bundling and minifi cation(捆绑和微小)

ASP.NET Web API

ASP.NET MVC的目的是为创建网站。整个平台是明显的设计的决定,表示假设的用法:响应浏览器请求并返回HTML。

MVC4包括一个更好的解决方案:ASP.NET Web API的(称为作为Web API),该框架提供ASP.NET MVC的开发风格,是专为编写HTTP服务。这包括修改一些ASP.NET MVC的概念来的HTTP服务领域,并提供一些新的面向服务的功能。

这里有一些类似MVC的Web API功能,只适用于HTTP服务域:

  1. 路由:ASP.NET的Web API使用相同的路由系统,将URL映射到控制器行动。它的背景路由到HTTP服务的HTTP动词映射到行动按照惯例,使代码更容易阅读和鼓励以下的RESTful设计服务。
  2. 模型绑定和验证:正如MVC简化的过程中,映射输入值(表单域,cookies,URL参数等),模型值,Web API的自动映射HTTP请求值模型。可扩展性和约束力的制度包括弼基于相同attri-bute-based验证中使用MVC模型绑定。
  3. 过滤器:MVC使用过滤器来允许添加行为的行动通过属性。例如,添加[Authorize]属性的MVC行动将禁止匿名访问,自动重定向到登录页面。网络API也支持一些lters标准的MVC网络连接(如服务的优化[Authorize]属性)和自定义过滤器。
  4. (Scaffolding)脚手架:添加新的Web API控制器使用相同的对话框,用于添加一个MVC控制器。您可以选择使用“添加控制器直径日志来快速支架,一个Web API控制器的基础上的实体框架为基础的模式类型。
  5. 简易装置可测性:就像MVC Web API是建立在依赖的概念注射,避免使用全局状态。

网络API还增加了一些新的概念和功能明确HTTP服务的发展:

  • HTTP的Web编程模型:API开发工作的经验进行了优化HTTP请求和响应。有一个强类型的HTTP对象模型,HTTP状态码和头方便等.
  • 方法是基于HTTP:MVC派遣的操作方法是根据他们的名字。在Web API的方法可以自动调度的基础上HTTP.
  • 内容协商:HTTP长期以来一直支持系统的内容协商,在浏览器(和其他HTTP客户端)表示他们的反应的格式喜好,和服务器响应最高的首选,它可以支持的格式。这意味着,您的控制器可以提供XML,JSON和其他格式(你可以添加你自己的),响应任何客户端最喜欢的格式。这使您可以添加对新格式的支持,而不不必改变任何的控制器代码.
  • 基于代码的组态:组态服务可能会很复杂。不像WCF的详细复杂的组态文件的方法,Web API是完全通过代码配置。

虽然ASP.NET的Web API包含与MVC4,它可以被单独使用。事实上,它没有依赖于ASP.NET所有,并且可以自托管的,那就是外托管ASP.NET 和IIS。这意味着您可以运行Web API。NET应用程序,包括Windows服务或甚至一个简单的控制台应用程序。

Enhancements to Default Project Templates

默认的模板的可视化设计MVC的1个项目已经基本保持不变通过MVC 3当您创建了一个新的MVC项目,并运行它,你有一个白色方形蓝色背景,如在图1中示出。 在MVC中,无论是HTML和CSS的默认模板已经完全重新设计。一新的MVC应用程序出现如图1所示。在MVC4中,无论是HTML和CSS的默认模板已经完全重新设计。一新的MVC应用程序出现如图2所示.

图1.图2.

您的网站应该拥有自己的定制设计,这是很好的,在底层的HTML和CSS,MVC4个项目都可以通过现代化的标记和CSS,能够很好地响应不断增长的移动浏览器的收视率。

Mobile Project Template Using jQuery Mobile

如果你将要创建的网站,将被视为在移动浏览器,你可以使用新的移动项目模板。此模板预配置您的网站使用流行的jQuery手机库,它提供了风格,看起来不错,在移动设备上,如下图所示图3,4所示。 jQuery Mobile的触摸优化,支持Ajax导航,采用逐行支持移动设备的功能增强。

图3.图4.

Display Modes

显示模式使用一个基于约定的方法允许选择不同的观点的基础上浏览器发出请求。默认视图引擎将首先查找与名称以.Mobile.cshtml浏览器的用户代理时,表示已知的移动设备。此外,您还可以注册自己的自定义设备模式,将根据自己的定制标准 - 所有的只是一个代码语句。例如,要注册一个WinPhone设备模式,将有助于视图结束。.WinPhone.cshtmlto的Windows Phone设备,你会用下面的代码,在您的global.asax Application_Startmethod:

DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("WinPhone") 
{ 
ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf 
("Windows Phone OS", StringComparison.OrdinalIgnoreCase) >= 0) 
});

Bundling and Minification

ASP.NET 4支持相同的捆绑和微小的框架中包含ASP.NET4.5。该系统减少了通过结合几个单独的脚本引用到您的网站的请求一个单一的请求。它还“更少”的要求,通过一些技术,如缩短变量名和删除空白符和注释。该系统的工作原理,以及对CSS,CSS请求捆绑成一个单一的请求,和压缩的CSS请求的大小,以产生使用最少的字节,包括语义分析等先进技术的同等规则关闭CSS选择器。

是高度可配置的捆绑系统,使您可以创建自定义捆绑包含特定的脚本,并引用它们与一个单一的URL。你可以看到一些例子参照在/ App_Start/ BundleConfig.cs在一个新的MVC应用程序使用的默认列出的软件包互联网的模板。

一个不错的副产品利用捆绑和缩小,你可以删除文件引用你的视图代码这意味着,你可以添加或升级脚本库和CSS网络连接文件有不同的文件名,而无需以更新您的视图布局,因为引用脚本和CSS束,而不是单个文件。例如,MVC的互联网应用温度板包括一个jQuery包,不依赖于版本号:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));

 这是束URL中引用的站点布局(_Layout.cshtml),如下:

@Scripts.Render("~/bundles/jquery")

由于这些引用不依赖jQuery的版本号,更新了jQuery库(无论是手动或通过的NuGet)将被自动拿起的捆绑和微小系统无需进行任何代码更改.

Miscellaneous Features(其他特性)

MVC包括了很多以前没有列出的功能的完整列表是在发行说明,可在 http://www.asp.net/whitepapers/mvc4-release-notes 看到。

  • 配置的逻辑搬到App_Start:新功能都不错,但额外的逻辑通过代码配置的功能,真的开始变得混乱起来的Global.asax的Application_Start方法。这些配置已经移动到静态类的App_Start目录.
  1. AuthConfig.cs:配置安全设置,包括网站的OAuth登录。
  2. BundleConfig.cs:用于注册所使用的捆绑和微小的束系统。几束被添加默认情况下,包括jQuery和jQuery验证,jQueryUI,Modernizr,默认的CSS引用。
  3. FilterConfig.cs:毫无疑问,这是用来,注册全球MVC滤波器。唯一的网络连接默认情况下,滤波器注册的HandleErrorAttribute,但这个是一个伟大的地方,把
    其他的网络连接滤波器注册。
  4. RouteConfig.cs:持有的原始MVC的配置语句,配置路由。
  5. WebApiConfig.cs:用于注册Web API的路线,以及任何其他WebAPI的配置设置。
  • 空的MVC项目模板:MVC包含一个空的项目模板,因为MVC2,但它是不是真的空,它仍然包含一个CSS文件,文件夹结构,并超过打Javascript的网络连接文件。该模板由于受欢迎的请求,已更名为“基本”,和新的空项目模板,真的是空的。
  • 任何地方添加控制器:在此之前,在Visual Studio添加控制器“菜单项,仅显示播放时,右键单击控制器文件夹。然而,使用的控制器文件夹是纯粹的组织。 (MVC将识别任何类,它实现IController接口作为控制器,无论它的位置在您的应用程序。)MVC4 Visual Studio工具已被修改以显示“添加控制器”菜单项的任何你的MVC项目的文件夹中。这允许你组织你的控制器,但你会想,也许把它们分开成逻辑组或分离的MVC和Web API控制器。

OK!关于MVC4的特性就先介绍到这里,后续的话,看能不能整一些系统的东西出来,和大家学习!非常感谢各位前辈的指导,让酱油学到不少的东西,非常谢谢!希望大家多多指点,胡想学习!文章要是有什么描述错误或者不对的地方,还强大家指点一二!期待啊!怎么还不放假,呵呵!快过年了,祝各位朋友,天天快乐!期待回老家。。。。。。。

posted @ 2013-01-29 11:16  辉太  阅读(4717)  评论(5编辑  收藏  举报

路漫漫其修远兮,吾将上下而求索!