ASP.NET CORE 简介

ASP.NET Core 是一个跨平台的高性能开源框架,用于生成启用云且连接 Internet 的新式应用。 使用 ASP.NET Core,您可以:

  • 生成 Web 应用和服务、物联网 (IoT) 应用和移动后端。
  • 在 Windows、macOS 和 Linux 上使用喜爱的开发工具。
  • 部署到云或本地。
  • 在 .NET Core 上运行。

为何选择 ASP.NET Core?

ASP.NET Core 具有如下优点:

  • 生成 Web UI 和 Web API 的统一场景。
  • 针对可测试性进行构建。
  • Razor Pages 可以使基于页面的编码方式更简单高效。
  • Blazor 允许你在浏览器中使用 C# 和 JavaScript。 共享全部使用 .NET 编写的服务器端和客户端应用逻辑。
  • 能够在 Windows、macOS 和 Linux 上进行开发和运行。
  • 开放源代码和以社区为中心。
  • 集成新式客户端框架和开发工作流。
  • 支持使用 gRPC 托管远程过程调用 (RPC)。
  • 基于环境的云就绪配置系统。
  • 内置依赖项注入。
  • 轻型的高性能模块化 HTTP 请求管道。
  • 能够托管于以下各项:

    • Kestrel
    • IIS HTTP.sys
  • Nginx
  • Apache
  • Docker
  • 并行版本控制。
  • 简化新式 Web 开发的工具。

使用 ASP.NET Core MVC 生成 Web API 和 Web UI

  • ASP.NET Core MVC 提供生成 Web API 和 Web 应用所需的功能:
  • Model-View-Controller (MVC) 模式 使 Web API 和 Web 应用可测试。
  • Razor Pages 是基于页面的编程模型,它让 Web UI 的生成更加简单高效。
  • Razor 标记提供了适用于 Razor Pages 和 MVC 视图的高效语法。
  • 标记帮助程序使服务器端代码可以在 Razor 文件中参与创建和呈现 HTML 元素。
  • 内置的多数据格式和内容协商支持使 Web API 可访问多种客户端,包括浏览器和移动设备。
  • 模型绑定自动将 HTTP 请求中的数据映射到操作方法参数。
  • 模型验证自动执行客户端和服务器端验证。

客户端开发

ASP.NET Core 与常用客户端框架和库(包括 Blazor、Angular、React 和 Bootstrap)无缝集成。 有关详细信息,请参阅 ASP.NET Core Blazor 简介 和“客户端开发”下的相关主题。

ASP.NET Core 目标框架

与 .NET Framework 相比,.NET Core 的部分优势包括:

  • 跨平台。 在 Windows、macOS 和 Linux 上运行。
  • 性能更强
  • 并行版本控制
  • 新 API
  • 开源

ASP.NET CORE MVC

ASP.NET CORE 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。

ASP.NET CORE 支持三种不同的开发模式: Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体)。

MVC 编程模式

MVC 是三种 ASP.NET CORE 编程模式中的一种。

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:

Model(模型)表示应用程序核心(比如数据库记录列表)。 View(视图)显示数据(数据库记录)。 Controller(控制器)处理输入(写入数据库记录)。 MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。

我的照片

MVC 模式定义 Web 应用程序

带有三个逻辑层:

业务层(模型逻辑)

显示层(视图逻辑)

输入控制(控制器逻辑)

Model是应用程序中用于处理应用程序数据逻辑的部分。 通常模型对象负责在数据库中存取数据。

View是应用程序中处理数据显示的部分。 通常视图是依据模型数据创建的。

Controller是应用程序中处理用户交互的部分。 通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。

MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

创建 Web 应用程序

启动 VS 并选择 New Project 来新建项目,选择ASP.NET CORE Web 模板,创建工程 20201221151605-2020-12-21

按照项目实际需求定义项目名称、源码位置

1608534997(1)-2020-12-21

创建完成的项目预览如下

20201221151722-2020-12-21

.Net Core 应用程序文件夹

文件夹列表

说明

Properties——launchSettings.json

launchSettings.json文件为一个ASP.NET Core应用保存特有的配置标准,用于应用的启动准备工作,包括环境变量,开发端口等。在launchSettings.json文件中进行配置修改,和开发者右键项目——属性中所提交的更改的效果是一样的(目前右键属性中的Property真是少得可怜),并且支持同步更新。

{
  "iisSettings": {                               #选择以IIS Express启动  
    "windowsAuthentication": false,              #是否启用windows身份验证
    "anonymousAuthentication": true,             #是否启用匿名身份验证
    "iisExpress": {
      "applicationUrl": "http://localhost:64767", #IIS Express随机端口
      "sslPort": 44377
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "webpagetest": {           #选择本地自宿主启动,详见Program.cs文件。删除该节点也将导致Visual Studio启动选项缺失
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000", #本地自宿主端口
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
} 

Startup.cs

在之前的ASP.NET CORE 启动和运行机制中有介绍Program.cs中会初始化Startup类.

Startup.cs文件是ASP.NET Core的启动入口文件, 除了构造函数外,它可以定义Configure和ConfigureServices方法, 其中ConfigureServices 方法需会在 Configure 之前被调用。

  • Configure 方法是用来处理我们程序中的中间件操作
  • ConfigureServices 配置我们应用程序中的各种服务

bundleconfig.json

bundleconfig.json是一个压缩包的集合文件,它可以自动压缩关联文件用于项目中,如生成 <script> 和 <link>符号.

wwwroot和bower.json

wwwroot是一个存放静态内容的文件夹,存放了诸如css,js,img等文件。

appsettings

同样是顾名思义——应用配置,类似于.NET Framework上的Web.Config文件,开发者可以将系统参数通过键值对的方式写在appsettings文件中(如程序的连接字符串),而Startup类中也在构造器中通过如下代码使得程序能够识别该文件

Controllers 文件夹

Controllers 文件夹包含负责处理用户输入和响应的控制类。

MVC 要求所有控制器文件的名称以 "Controller" 结尾。

在我们的实例中,VS 已经创建好了以下文件: HomeController.cs(用于 Home 页面和 About 页面)和AccountController.

Models 文件夹

Models 文件夹包含表示应用程序模型的类。

VS 自动创建一个 ErrorViewModel.cs 文件,该文件包含用于应用程序报错的模型。

Views 文件夹

Views 文件夹存储的是与应用程序显示(用户界面)相关的文件(HTML 文件)。根据所采用的语言内容,这些文件可能扩展名可能是 html、asp、aspx、cshtml 和 vbhtml。

Views 文件夹中包含每个控制器对应的一个文件夹。

在 Views 文件夹中,VS 已经创建了一个 Home 文件夹、一个 Shared 文件夹。

Home 文件夹用于存储诸如 home 页和 about 页之类的应用程序页面。

Shared 文件夹用于存储控制器间分享的视图(母版页和布局页)。

  • _Layout.cshtml 是母版页的意思
  • 通过Razor import 文件模板添加_ViewImports.cshtml (Tag Helper)

Tag Helper 是一个很重要但容易忽略添加原理的地方贴下如下代码示意

@using webpagetest
@using webpagetest.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 

调用代码如下所示

 <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">webpagetest</a> 

具备如上知识点,对ASP.NET CORE 创建项目就具备了基础知识内容

博主GitHub地址

https://github.com/yuyue5945

关注公众号不迷路

alt


于跃
14 声望1 粉丝