02 入门 - ASP.NET MVC 5 概述

时间:2022-03-28 13:52:35

目录索引:《ASP.NET MVC 5 高级编程》学习笔记

本篇内容:
  一、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的默认设计实际上看起来就像可以直接部署到生产环境一样,如图所示:
  02 入门 - ASP.NET MVC 5 概述

  更好的是,因为Bootstrap框架在Web开发人员群体中获得了很高的接受度,所以在https://wrapbootstrap.com/和http://bootswatch.com/上可以获得大量的、多种多样的Bootstrap主题(有免费的,也有付费的)。
  例如,如下图所示,我是用了Bootswatch免费提供的Slate主题,上面的默认“蓝白框”效果就变成了:
  02 入门 - ASP.NET MVC 5 概述

  后面我们将介绍如何针对移动Web浏览器优化MVC应用程序,详细介绍Bootstrap。

五、特性路由

  特性路由是一种新的指定路由的方法,可将注解添加到控制器类或操作方法上。
  流行的AttributeRouting开源项目让我们的这种方法成为可能。

  后面我们将单独介绍特性路由。

六、ASP.NET基架

  基架是基于模型类生成样板代码的过程。MVC从版本1开始就有了基架,但是仅限于MVC项目使用。
  新的ASP.NET基架系统可以在任何ASP.NET应用程序中工作。
  另外,它还支持构建强大的自定义基架,使其具有自定义对话框和完善的基架API。

  后面我们会单独一篇文章简单的讨论一下ASP.NET的基架系统,最后还会介绍扩展基架系统的两种方式。

七、身份验证过滤器

  MVC很久以来一直支持认证过滤器的功能,允许基于角色身份或其他自定义逻辑来限制对控制器或操作的访问。
  但是,在后面的文章中我们将会看到,身份验证(确定用户是谁)和授权(经过身份验证的用户能够做什么)之间存在一个重要的区别。
  新增的身份验证过滤器先于授权过滤器执行,从而允许访问ASP.NET Identity提供的用户声明,以及运行自定义的身份验证逻辑。

  后面我们会详细讨论身份验证过滤器。

八、过滤器重写

  过滤器是一项高级的MVC特性,允许开发人员参与操作和结果执行管道。
  过滤器重写意味着可以实现让某个控制器或操作不执行的全局过滤器。

  这个我们先不会详细介绍,在最后的文章中我们再详细地介绍过滤器以及过滤器重写。

02 入门 - ASP.NET MVC 5 概述的更多相关文章

  1. Easyui入门视频教程 第02集--- ASP.NET MVC下 搭建 EasyUI环境

    Easyui入门视频教程 第02集--- ASP.NET MVC下 搭建 EasyUI环境 目录 ----------------------- Easyui入门视频教程 第09集---登录完善 图标 ...

  2. 04 入门 - ASP.NET MVC应用程序的结构

    目录索引:<ASP.NET MVC 5 高级编程>学习笔记 用Visual Studio创建了一个新的ASP.NET MVC应用程序后,将自动向这个项目中添加一些文件和目录. 如图所示: ...

  3. 《ASP&period;NET MVC 5 高级编程》学习笔记

    前言: 记得当初培训的时候,学习的还是ASP.NET,现在回想一下,图片水印.统计人数.过滤器....HttpHandler是多么的经典! 不过后来接触到了MVC,便立马爱上了它.Model-View ...

  4. ASP&period;NET MVC 5 02 - ASP&period;NET MVC 1-5 各版本特点

    参考书籍:<ASP.NET MVC 4 高级编程>.<ASP.NET MVC 5 高级编程>.<C#高级编程(第8版)>.<使用ASP.NET MVC开发企业 ...

  5. ASP&period;NET MVC 5 入门指南汇总

    经过前一段时间的翻译和编辑,我们陆续发出12篇ASP.NET MVC 5的入门文章.其中大部分翻译自ASP.NET MVC 5 官方教程,由于本系列文章言简意赅,篇幅适中,从一个web网站示例开始讲解 ...

  6. ASP&period;NET MVC 5 入门摘要

    翻译和编辑的第一阶段后,.我们已经发出12片ASP.NET MVC 5入门文章. 他们中的大多数来自翻译ASP.NET MVC 5 官方教程,因为本系列文章言简意赅,篇幅适中,从一个web站点演示样例 ...

  7. 《ASP&period;NET MVC 5 破境之道》:概述

    第一节:写作本书的目的 关于笔者 张晓亭(Mike Cheers),1982年出生,内蒙古辽阔的大草原是我的故乡. 没有高学历,没有侃侃而谈的高谈阔论,拥有的就是那一份对技术的执著,对自我价值的追求. ...

  8. 自学MVC看这里——全网最全ASP&period;NET MVC 教程汇总

    MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从 ...

  9. ASP&period;NET MVC&plus;EF框架&plus;EasyUI实现权限管理系列

    http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开 ...

随机推荐

  1. 多站点配置apache服务器

    以阿里云服务器为例,使用的是阿里云web一键安装包 目录: /alidata/server/httpd-2.4.10/conf/extra 代码内容: <VirtualHost *:80> ...

  2. LayoutInflater和inflate&lpar;&rpar;

    LayoutInflater LayoutInflater抽象类是用来加载XML布局文件(UI界面)的. 作用: 1.对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater. ...

  3. DataTable的属性与使用方式

    一.DataTable简介 (1)构造函数            DataTable()   不带参数初始化DataTable 类的新实例.            DataTable(string t ...

  4. erlang调试技术之etop

    etop是erlang进程信息查看工具,类似于UNIX的top. 一.配置参数 node The measured node. Value: atom() Mandatory setcookie Co ...

  5. SpringMVC 自定义全局日期转换器

    第一步: 编写自定义转换器的类 /* * 自定义日期转换器 */ public class CustomDateConverter implements Converter<String, Da ...

  6. Ubuntu 重新安装声卡驱动

    有的时候ubuntu 的声卡不能用,没有声音也不能使用麦克风,所有很困惑,查看声卡驱动的时候不显示声卡的驱动,所有我们要自己安装声卡驱动, 1.下载驱动包这是比较新的声卡驱动,1.0.20 $ wge ...

  7. HDU-4471 Yet Another Multiple Problem (BFS&plus;路径还原)

    Problem Description There are tons of problems about integer multiples. Despite the fact that the to ...

  8. Spring框架之什么是IOC的功能?

    1. 什么是IOC的功能? * IoC -- Inverse of Control,控制反转,将对象的创建权反转给Spring!! * 使用IOC可以解决的程序耦合性高的问题!!  

  9. Linux下显示硬盘空间的两个命令

    1.df -h ,用于显示目前所有文件系统的可用空间及使用情况,示例如下: [root@msg45 ~]# df -hFilesystem                    Size  Used ...

  10. 最新Altium&lowbar;Designer&lowbar;Beta&lowbar;18&period;7&period;is AD18安装教程及破解说明

    下解Altium_Designer带破解的压缩包. 下载链接:https://pan.baidu.com/s/1TlPHtSthJKxLcXWcCR-q-g 密码:bt0g 解压缩Altium_Des ...