本篇内容:
一、One ASP.NET
二、新的Web项目体验
三、ASP.NET Identity
四、Bootstrap 模板
五、特性路由
六、ASP.NET基架
七、身份验证过滤器
八、过滤器重写
2013年10月,ASP.NET MVC 5与Visual Studio 2013一起发布。
这个版本的关注点是“One ASP.NET”计划(稍后介绍),以及对整个ASP.NET框架所做的核心增强。
下面列出了一些主要特性:
1)One ASP.NET
2)新的Web项目体验
3)ASP.NET Identity
4)Bootstrap 模板
5)特性路由
6)ASP.NET基架
7)身份验证过滤器
8)过滤器重写
一、One ASP.NET
有很多的选项是好事。Web应用程序千差万别,而Web工具和平台也不是有了一种就可以应对所有情况。但是另一面,一些选项会让我们束缚手脚。
正如“鱼和熊掌不可兼得”,如果选择一样东西意味着放弃另一样东西,那么我们不希望被迫必须选择他。
这一点特别适用于开始创建项目时的选项:我们刚刚开始创建项目,怎么知道一年以后这个项目需要什么!
在之前的MVC版本中,每次创建项目的时候都面临着选择:创建一个MVC应用程序、Web Forms应用程序或其他项目类型。
之后,实际上我们就被限制住了。在某种程度上,可以吧Web Forms添加到一个MVC应用程序中,但是把MVC添加到Web Forms应用程序中是很困难的。
MVC应用程序在csproj文件中隐藏了一种特殊的项目类型GUID,当尝试吧MVC添加到Web Forms应用程序时,这只是必须做的几个神秘修改之一。
在MVC5中,情况发生了变化,因为现在只有一种ASP.NET项目类型,如图4所示:
在Visual Studio 2013中创建新的Web应用程序时,没有复杂的选项,只有Web应用程序。
不只是在一开始创建ASP.NET项目时才支持这么做:在不断开发的过程中,可以添加对其他框架的支持,因为工具和特性都是作为NuGet包提供的。
例如,如果开发过程中改变了想法,就可以使用ASP.NET基架向任何现有的ASP.NET应用程序添加MVC。
二、新的Web项目体验
作为新的One ASP.NET体验的一部分,Visual Studio 2013中创建新的MVC应用程序的对话框已被合并和简化(如上图)。
下篇咱们在一步步创建一个项目瞅瞅里面啥样的。
三、ASP.NET Identity
MVC5彻底重写了成员和身份验证系统,使其成为新的ASP.NET Identity系统的一部分。
这个新系统拜托了原来的ASP.NET成员系统的陈旧局限,并让MVC4的Simple Membership系统变得更加成熟,可配置性更好。
下面列出了ASP.NET Identity的一些主要新特性:
1)One ASP.NET Identity系统
为了支持前面介绍的One ASP.NET这个关注点,新的ASP.NET Identity被设计为可在整个ASP.NET家族中使用(包括MVC、Web Forms、Web Pages、Web API、SignalR,以及使用其中任何技术组合创建的混合应用程序)。
2)控制用户资料数据
虽然ASP.NET的成员系统常被用于存储关于用户的额外的、自定义的信息,但是使用起来越很困难。
ASP.NET Identity使得存储额外的用户信息(如账号、社交媒体信息和联系地址)很容易,只需要在代表用户的模型类中添加属性即可。
3)控制优于持久化
默认情况下,所有用户信息都是用Entity Framework Code First存储,所以可以获得我们在使用Entity Framework Code First的时候已经习惯了的简单性和控制。
但是,也可以插入其他任何我们希望使用的持久化机制,包括其他ORM、数据库、自定义的Web服务等。
4)可测试性
ASP.NET Identity API是使用接口设计的,所以允许为用户相关的应用程序代码编写单元测试。
5)基于声明
虽然ASP.NET Identity仍然支持用户角色,但是也支持基于声明的身份验证。
声明的表达力比角色强许多,所以给我们提供了强大的能力和灵活性。
角色成员关系是一个简单的布尔值(是/不是 管理员身份)。
而用户声明可以包含丰富的信息,比如用户的成员级别或身份细节等。
6)登录提供器
ASP.NET Identity并不是只关注用户名/密码身份验证,而是也理解用户经常通过社交服务提供器(如Microsoft 账户、Facebook或Twitter)和Windows Azure Active Directory进行身份验证。
7)NuGet分发
ASP.NET Identity作为NuGet包安装到应用程序中。
这意味着可以单独安装ASP.NET Idetntiy,并且通过更新一个NuGet包,就可以把它升级到最新版本。
关于ASP.NET Identtiy系统,我们会在后面的文章中详细讨论。
四、Bootstrap 模板
MVC1项目的默认模板的视觉设计一直到MVC3都没有改变。
创建并运行一个新的MVC项目时,得到的是蓝色背景,其上有一个白色的方框。
在MVC4中,重新设计了默认模板的HTML和CSS,使其默认的视觉设计也能拿得出手了。
而且,在不同的屏幕分辨率下,默认模板的HTML和CSS也工作的很好。
(这个在上面的MVC4概述介绍过了)但是MVC默认模板的HTML和CSS都是自定义的,这不够理想。
视觉设计的更新与MVC的产品发布周期捆绑在一起,所以很难与Web开发社区分享设计模板。
在MVC5中,项目模板改为运行在流行的Bootstrap框架上。
Bootstrap最初由Twitter的一名开发人员和一名设计师创建,他们后来离开了Twitter,专注于Bootstrap的开发。
MVC5的默认设计实际上看起来就像可以直接部署到生产环境一样,如图所示:
更好的是,因为Bootstrap框架在Web开发人员群体中获得了很高的接受度,所以在https://wrapbootstrap.com/和http://bootswatch.com/上可以获得大量的、多种多样的Bootstrap主题(有免费的,也有付费的)。
例如,如下图所示,我是用了Bootswatch免费提供的Slate主题,上面的默认“蓝白框”效果就变成了:
后面我们将介绍如何针对移动Web浏览器优化MVC应用程序,详细介绍Bootstrap。
五、特性路由
特性路由是一种新的指定路由的方法,可将注解添加到控制器类或操作方法上。
流行的AttributeRouting开源项目让我们的这种方法成为可能。
后面我们将单独介绍特性路由。
六、ASP.NET基架
基架是基于模型类生成样板代码的过程。MVC从版本1开始就有了基架,但是仅限于MVC项目使用。
新的ASP.NET基架系统可以在任何ASP.NET应用程序中工作。
另外,它还支持构建强大的自定义基架,使其具有自定义对话框和完善的基架API。
后面我们会单独一篇文章简单的讨论一下ASP.NET的基架系统,最后还会介绍扩展基架系统的两种方式。
七、身份验证过滤器
MVC很久以来一直支持认证过滤器的功能,允许基于角色身份或其他自定义逻辑来限制对控制器或操作的访问。
但是,在后面的文章中我们将会看到,身份验证(确定用户是谁)和授权(经过身份验证的用户能够做什么)之间存在一个重要的区别。
新增的身份验证过滤器先于授权过滤器执行,从而允许访问ASP.NET Identity提供的用户声明,以及运行自定义的身份验证逻辑。
后面我们会详细讨论身份验证过滤器。
八、过滤器重写
过滤器是一项高级的MVC特性,允许开发人员参与操作和结果执行管道。
过滤器重写意味着可以实现让某个控制器或操作不执行的全局过滤器。
这个我们先不会详细介绍,在最后的文章中我们再详细地介绍过滤器以及过滤器重写。
【来自:张董'Blogs:http://www.cnblogs.com/LonelyShadow,转载请注明出处。】
亲们。码字不容易,觉得不错的话记得点赞哦。。