今天我们来了解一下ASP.NET MCV的基础知识,ASP.NET是一种构建Web应用程序的框架,它将通常的MVC(Model-View-Controller)模式应用于ASP.NET框架。

1.1 ASP.NET MVC 简介

 今天我们来了解一下ASP.NET MCV的基础知识,ASP.NET是一种构建Web应用程序的框架,它将通常的MVC(Model-View-Controller)模式应用于ASP.NET框架。html

1.1.1 MVC模式简介

MVC将应用程序的用户界面(User Interface, UI)分为三个主要部分:web

  • 模型:一组类,描述了要处理的数据以及修改和操做数据的业务规则。
  • 视图:定义应用程序用户界面的显示方式。
  • 控制器:一组类,用于处理来自用户、整个应用程序流以及特定应用程序逻辑的通讯。

 MVC做为用户界面模式数据库

 注意这里的MVC指的是一种用户界面模式。MVC模式是处理用户交互的一种解决方案,它并不处理应用程序关注的其余问题,如数据访问、服务交互等。浏览器

1.1.2 MVC在Web框架中的应用

MVC模式常常应用于Web程序设计中。在ASP.NET MVC中,MVC三个主要部分的定义大体以下:服务器

  • 模型:模型是描述程序设计人员感兴趣问题域的一些类,这些类一般封装存储在数据库中的数据,以及操做这些数据和执行特定域业务逻辑的代码。在ASP.NET MVC中,模型就像使用了某种工具的数据访问层(Data Access Layer),这种工具包括实体框架(Entity Framework)或者与包含特定域逻辑的自定义代码组合在一块儿的NHibernate。
  • 视图:一个动态生成HTML页面的模板。
  • 控制器:一个协助视图和模型之间关系的特殊类。它响应用户输入,与模型进行对话,并决定呈现哪一个视图(若是有的话)。在ASP.NET MVC中,这个类文件一般之后缀名Controller表示。

注意  MVC是一种高级架构模式,它的使用取决于具体应用环境。ASP.NET MVC的上下文是问题域(一个无状态的Web环境)和宿主系统(ASP.NET)。架构

ASP.NET MVC注重应用MVC模式来提供一个运行在.NET平台上的强大Web开发框架,上下文则是其强大缘由的一部分。框架

ASP.NET采用了大部分觊觎MVC的Web框架所使用的一些基本原则:工具

  • 约定优于配置(convention over configuration)
  • 不重复(又名DRY原则)
  • 尽可能保持可插拔性(pluggability)
  • 尽可能为开发人员提供帮助,单必要时容许开发人员自由发挥。

1.2 ASP.NET MVC5概述

ASP.NET MVC5主要特性:布局

  • One ASP.NET
  • 新的Web项目体验
  • ASP.NET Identity
  • Bootstrap模板
  • 特性路由
  • ASP.NET基架
  • 身份验证过滤器
  • 过滤器重写
  • 进口气动球阀

1.2.1 One ASP.NET

在MVC5中,只有一种ASP.NET项目类型。在Visual Studio2013中建立新的Web应用程序时,没有复杂的选项,只有Web应用程序。不仅是在一开始建立ASP.NET项目时才支持这么作:在不断开发的过程当中,能够添加对其余框架的支持,由于工具和特性都是做为NuGet包提供的。例如,若是开发过程当中改变了想法,就可使用ASP.NET基架向任何现有的ASP.NET应用程序添加MVC。单元测试

1.2.2 ASP.NET Identity

ASP.NET Identity的一些主要的新特性:

  • One ASP.NET Identity系统:为了支持前面介绍的One ASP.NET这个关注点,新的ASP.NET Identity被设计为可在整个ASP.NET家族中使用。
  • 控制用户资料数据:ASP.NET Identity使得存储额外的用户信息很容易,只须要在表明用户的模型类中添加属性便可
  • 控制优于持久化:默认状况下,全部用户信息都使用Entity Framework Code First存储,因此能够得到咱们在使用Entity Framework Code First时已经习惯了的简单性和控制。可是,也能够插入其余任何咱们但愿使用的持久化机制,包括其余ORM、数据库、自定义的Web服务等。
  • 可测试性:ASP.NET Identity API是使用接口设计的,因此容许为用户相关的应用程序代码编写单元测试。
  • 基于声明:虽然ASP.NET Identity仍然支持用户角色,可是也支持基于声明的身份验证。
  • 登陆提供器:ASP.NET Identity并非只关注用户名/密码身份验证,而是也理解用户常常经过社交服务-提供器和Windows Azure Active Directory进行身份验证。
  • NuGet分发:AP.NET Identity 做为NuGet包安装到应用程序中。这意味着能够单独安装ASP.NET Identity,而且经过更新一个NuGet包,就能够把它升级到新版本。 

1.3 安装MVC5和建立应用程序

1.3.1 建立ASP.NET MVC5应用程序 

建立一个新的MVC项目的步骤以下:

(1).选择File|New Project选项。

(2).在New Project对话框左栏的Installed Templates部分,选择Visual C#|Web模板列表,这件在中间栏显示Web应用长须类型列表。

(3).选择ASP.NET Web Application,将应用程序命名为MvcMusicStore,而后单击OK按钮。

1.3.2 New ASP.NET Project对话框

建立一个新的MVC5应用程序后,将会出现New ASP.NET Project对话框。该对话框列出了全部ASP.NET应用程序共有的一些选项:

asp.net架构源码 asp.net mvc框架_ASP.NET框架

  • 选择模板
  • 添加框架文件夹和核心引用
  • 添加单元测试
  • 更改身份验证
  • Microsoft Azure

前两个选项(Select a template和Add folders and core references for)共同起做用。模板选择了一个起点,而后使用框架复选框来添加对Web Forms、MVC和Web API的支持。这意味着咱们能够选择一个MVC模板,而后添加Web Forms支持,或者能够选择空模板,添加对框架的支持。这种功能不止在建立新项目时可使用:任什么时候候均可以添加对任意框架的支持,由于框架文件夹和核心引用是经过NutGet包添加的。

1.选择一种应用程序模板

  • MVC:MVC模板设置一个标准的、带几个视图的Home Controller,配置站点布局,并包含一个MVC特定的Project_Readme.html页面。
  • Empty:空模板会创建一个空的项目骨架。获得的文件包括一个web.config(包含一些默认的网站配置设置)和建立项目所需的几个程序集引用,可是仅此而已。这个模板不会提供代码,不包含JavaScript或CSS脚本,甚至不会提供一个动态地HTML文件。
  • Web Forms:Web Forms模板为ASP.NET Web Forms开发发下基础。
  • Single Page Application:Single Page Application模板建立的应用程序主要经过JavaScript请求Web API服务驱动,而不是采用传统的Web页面请求/相应周期。最初的HTML由一个MVC Home Controller提供,其他的服务器端交互则有一个Web API控制器处理。次模板使用Knockout.js库来帮助管理浏览器中的交互。
  • Facebook:这个模板方便了构建一个Facebook“画布”应用程序,也就是看上去托管在Facebook网站上的一个Web应用程序。
  • Azure Mobile Service:Azure Mobile Service如今支持Web API服务,因此使用这个模板可以比较容易地建立针对Azure Mobile Service的Web API。

2.测试

 全部的内置项目模板都有一个选项,用来使用样本单元测试建立单元测试项目。

3.配置身份验证

 可选择身份验证方法:

  • No Authentication:用户不须要身份验证的应用程序,例如没有管理单元的公共网站。
  • Individual User Accounts:用于在本地存储用户配置文件的应用程序。支持用户名/密码帐号,以及社交认证提供程序。
  • Organizational Accounts:用于经过某种形式的活动目录进行身份验证的帐户。
  • Windows Authentication:用于内部网应用程序

新MVC项目在应用程序的根目录下包含Project_Readme.html文件。建立项目时间自动显示这个文件。这是一个彻底自包含的文件----全部的样式都经过HTML样式标签包含进来,因此使用完该文件后能够删除它。

1.4 ASP.NET MVC应用程序的结构

 用VS建立了一个新的ASP.NET MVC应用程序后,将自动向这个项目中添加一些文件和目录。

asp.net架构源码 asp.net mvc框架_MCV的基础知识_02

    

asp.net架构源码 asp.net mvc框架_ASP.NET_03

 这些由VS添加的默认文件提供了一个能够运行的应用程序的基本结构,完整地包括了首页、关于首页、帐户登陆/退出/注册页面以及一个未经处理的错误页面(全部页面彼此联系起来,能够直接使用)。

 1.4.1 ASP.NET MVC和约定

默认状况下,ASP.NET MVC应用程序对约定的依赖性很强。这样就避免了开发人员配置和指定一些项。

ASP.NET MVC的约定很是容易理解,下面是预期的程序结构:

  • 每一个Controller类的名字以Controller结尾。
  • 应用程序的全部视图放在单独的Views目录下。
  • 控制器使用的视图实在Views主目录的一个子目录中,这个子目录是根据控制器名称来命名的。