ASP.NET MVC教程一:ASP.NET MVC简介

一、MVC模式简介

MVC模式是一种流行的Web应用架构技术,它被命名为模型-视图-控制器(Model-View-Controller)。在分离应用程序内部的关注点方面,MVC是一种强大而简洁的方式,尤其适合应用在Web应用程序中。

MVC将应用程序的用户界面分为三个主要部分:

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

1、MVC在Web框架中的应用

MVC模式经常应用于Web程序设计中。在ASP.NET MVC中,MVC三个主要部分的定义大致如下:

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

2、执行顺序

在ASP.NET MVC中的执行顺序可以用下图进行表示,如图所示:

ASP.NET MVC教程一:ASP.NET MVC简介

其执行顺序可以描述如下:用户在浏览器地址栏里面输入要访问的网址,然后发起请求,控制器接收网页发送的请求,如果需要请求数据,则先从Model里面取出数据交给控制器,然后把数据交给视图,视图负责展现数据。如果不需要请求数据,则直接返回视图呈现给用户。

二、ASP.NET中的MVC

1、ASP.NET MVC和ASP.NET

  1. ASP.NET MVC是ASP.NET技术的子集。
  2. ASP.NET MVC在ASP.NET核心基础之上构建:
    1. 依赖于HttpHandler,如请求是如何进入控制器的。
    2. 依赖于Session、Cookie、Cache、Application等状态保持机制。
    3. 使用HttpContext、Request、Response、Server等对象。
    4. 在Controller使用智能感知很容易得到这些对象。
  3. .NET中编写Web程序的一种可选方式。

2、ASP.NET MVC和WebForms

  1. ASP.NET MVC和WebForm都是.NET中开发Web程序的一种方式,两者是一种并列的关系。
  2. WebForm的特点:
    1. 所见即所得,开发傻瓜式:服务器端控件、事件模型、状态管理。
    2. 借鉴了Winform的成功特色。
    3. 偏离了Web请求处理的原理(请求->处理->响应)。
  3. ASP.NET MVC的特点:
    1. 关注分离:
      1. WebForm只是把一个页面分成了前置页面和后置代码,分离的不够彻底。
      2. MVC可以把一个页面分成Controller、View、Model三部分,分离的更彻底。
    2. 测试性强。可以针对Controller、View、Model单独进行测试。
    3. 更加接近Web请求处理的本质。

三、创建ASP.NET MVC

下面使用Visual Studio2019创建一个ASP.NET MVC项目,其他版本的Visual Studio创建ASP.NET MVC步骤一致。

1、选择文件->新建->项目

如下图所示:

ASP.NET MVC教程一:ASP.NET MVC简介

2、选择.NET Framework版本的ASP.NET MVC

如下图所示:

ASP.NET MVC教程一:ASP.NET MVC简介

然后点击“下一步”按钮。

3、配置项目名称和路径

ASP.NET MVC教程一:ASP.NET MVC简介

最后点击“创建”按钮,然后会弹出创建新的ASP.NET Web应用程序对话框,该对话框列出了所有ASP.NET应用程序共有的一些选项,如下图所示:

ASP.NET MVC教程一:ASP.NET MVC简介

  • 选择模板。
  • 添加框架特定的文件夹和核心引用。
  • 添加单元测试。
  • 配置身份验证。
  • 添加Docker支持。

选择模板和添加文件夹和核心引用共同起作用。模板选择了一个起点,然后使用框架复选框来添加对WebForms、MVC和Web API的支持。这意味着我们可以选择一个MVC模板,然后添加Web Forms支持,或者可以选择空模板,添加对任意框架的支持。这种功能不只在创建新项目时可以使用:任何时候都可以添加对任意框架的支持,因为框架文件夹和核心引用是通过NuGet包添加的。

3.1、选择一种应用程序模板

下面对这些模板进行介绍:

  • 空(Empty):可以想见,空模板会建立一个空的项目骨架。得到的文件包括一个web.config(包含一些默认的网站配置设置)和创建项目所需的几个程序集引用,但是仅此而已。这个模板不会提供代码,不包含JavaScript或CSS脚本文件,甚至不会提供一个静态的HTML文件。
  • Web Forms:Web Forms模板为ASP.NET Web Forms开发打下基础。
  • MVC:MVC模板设置一个标准的、带几个视图的HomeController,配置站点布局,并包含一个MVC特定的HTML页面。
  • Web API:使用此模板创建的应用程序同时支持MVC和Web API。包含MVC支持,部分是为了显示API Help页面,它们记录了公有API签名。
  • 单页应用程序(Single Page Application):单页应用程序模板创建的应用程序主要通过JavaScript请求Web API服务驱动,而不是采用传统的Web页面请求/响应周期。

3.2、测试

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

推荐选中“创建一个单元测试项目”复选框

3.3、配置身份验证

单击“更改”按钮,可以打开更改身份验证对话框,从中可以选择身份验证方法,如下图所示:

ASP.NET MVC教程一:ASP.NET MVC简介

对话框中列出了4个选项:

  • 不进行身份验证:用于不需要身份验证的应用程序,例如没有管理单元的公共网站。
  • 个人用户账户:用于在本地存储用户配置文件(如在SQL Server数据库中存储)的应用程序。支持用户名/密码账号,以及社交认证提供程序。
  • 工作或学校账户:用于通过某种形式的活动目录(包括Azure Active Directory和Office365)进行身份验证的账户。
  • Windows身份验证:用于内部网应用程序。

这里为了演示方便,选择“不进行身份验证”

最后点击“创建”按钮,完成ASP.NET MVC应用程序的创建:

ASP.NET MVC教程一:ASP.NET MVC简介

上一篇:[swustoj 373] Antiprime数


下一篇:第1章 (ASP.NET MVC简介)