ASP.NET Core与RESTful API学习笔记 二、.NET Core和ASP.NET Core

ASP.NET Core与RESTful API学习笔记 二、.NET Core和ASP.NET Core

  • .NET Core和ASP.NET Core
    • .NET Core简介
    • .NET Standard简介
    • ASP.NET Core简介
      • ASP.NET Core主要特性
      • ASP.NET Core 2.1新增特性
      • ASP.NET Core 2.2新增特性
      • ASP.NET Core 3.0新增特性
    • 设置开发环境

.NET Core和ASP.NET Core

微软于2016年推出.NET Core和ASP.NET Core。作为一个全新的开发平台,.NET Core的主要特点是跨平台,基于.NET Core的应用程序能够运行在不同的操作系统平台中。ASP.NET Core是基于.Net Core平台的Web开发框架。

.NET Core简介

.NET Core是一个通用的开发平台,由微软和GitHub上的.NET社区共同维护,主要特点就是跨平台,同时也是一个开源平台。
.NET Core和.NET Framework是不同的.NET平台,两者的区别:

  1. 最主要的区别就是.NET Core跨平台,而.NET Framework仅支持Windows平台;
  2. .NET Core采用包化(Packages)的管理方式,应用程序只需要获取需要的组件即可;.NET Framework采用大包式安装;

.NET 平台除了**.NET Core.NET Framework两个平台外,还包括Xamarin**(是跨平台的移动应用开发解决方案)。

.NET Standard简介

.NET Standard是一套.NET规范或标准,这套标准定义了所有.NET平台都应实现的接口,即API。.NET Standard不是一个平台(Platform)。
ASP.NET Core与RESTful API学习笔记 二、.NET Core和ASP.NET Core_第1张图片

ASP.NET Core简介

ASP.NET Core是免费、开源、高性能且跨平台的Web框架,能够运行在多个操作系统平台上,包括Windows、macOS和Linux系统等,而 它的前任ASP.NET只能运行在Windows系统上。

ASP.NET Core主要特性

  1. 跨平台与"自我宿主"
    Kestrel是ASP.NET Core中内置的跨平台服务器,具有高性能、速度快等特点;
    ASP.NET Core应用程序本质上是一个控制台程序,因此能够实现"自我宿主"。
  2. 统一Web UI与Web API开发
    在ASP.NET中,Web UI和Web API是两个分开的不同的子框架,前者用于创建基于HTML页面的Web应用程序,后者用于创建Web API应用程序,如RESTful API。ASP.NET Core将这两者合并,简化了Web应用和Web API的开发模式。
  3. 内置依赖项注入
    ASP.NET Core提供依赖注入容器,且在框架内部大量使用了依赖注入,有助于创建低耦合的应用程序。
  4. 轻型的高性能模块化HTTP请求管道
    在ASP.NET Core中,多个中间件构成了HTTP请求管道,用于处理请求和响应,这种管道机制提高了HTTP请求处理的灵活性。
  5. 基于环境配置与云就绪配置
    ASP.NET Core支持运行环境的配置,针对不同的环境可以使用不同的配置。这些环境包括了开发(Development)、预演(Staging)、生产(Production)。
  6. 支持容器
    ASP.NET Core支持主流的容器,如IIS、Nginx、Apache、Docker和Kubernetes等,将ASP.NET Core应用程序部署到容器中非常容易。

ASP.NET Core 2.1新增特性

2018年5月发布了ASP.NET Core 2.1,新增特性包括以下方面:

  1. SignalR
    SignalR是用于执行实时操作的Web框架,使用它可以创建类似于在线实时聊天的Web应用程序。
  2. HTTPS
    在创建项目时,ASP.NET Core 2.1默认启用HTTPS,HTTPS都非常容易配置和使用。
  3. Razor类库
    在ASP.NET Core 2.1中,使用新的Razor SDK能够在类库中创建Razor页面文件,因此可以创建基于Razor UI的类库并在多个项目中共享,甚至发布成一个NuGet包。
  4. [ApiController]特性和ActionResult< T >类
    ASP.NET Core 2.1新增了[ApiController]特性和ActionResult< T >类,[ApiController]特性会对数据进行模型验证,并在验证失败时自动返回400 Bad Request状态码。ActionResult< T >类能更方便地在Action中返回具体类型或者状态码等结果。
  5. Identity UI类库
    ASP.NET Core 2.1提供了一个默认的Identity UI库,通常NuGet可以直接将其添加到项目中,在Startup类库中配置即可使用。
  6. Microsoft.AspNetCore.App
    Microsoft.AspNetCore.App是ASP.NET Core 2.1中引入的新元包(meta-package),所有ASP.NET Core 2.1程序在创建时都会默认使用这个元包,而不再使用之前的Microsoft.AspNetCore.All。

ASP.NET Core 2.2新增特性

2018年12月发布了ASP.NET Core 2.2,新增特性包括以下方面:

  1. IIS进程内托管
    在ASP.NET Core 2.2中,ASP.NET Core Module能够在IIS工作进程(w3wp.exe)与IIS HTTP服务器之间处理请求。
  2. HTTP/2支持
    ASP.NET Core 2.2添加了对HTTP/2的支持。
  3. OpenAPI分析器和约定
    ASP.NET Core 2.2改进了创建Open API文档的工具和运行时的体验。Open API(也称Swagger)是一个与语言无关的规范,用于描述RESTful API。
  4. Kestrel配置
    在ASP.NET Core 2.2中,IWebHostBuilder接口新增了ConfigureKestrel服务器。
  5. 运行状况检查
    主要用来报告应用程序中组件的运行状态。
  6. SignalR Java客户端
    ASP.NET Core 2.2引入了适用于SignalR的Java客户端,支持通过Java代码连接到ASP.NET Core SignalR服务器(包括Android应用)。
  7. CORS改进
    在ASP.NET Core 2.2中,仅当在Access-Control-Request-Headers中发送的消息头与WithHeaders中声明的标头完全匹配时,才能进行CORS中间件策略匹配。

ASP.NET Core 3.0新增特性

2019年9月发布ASP.NET Core 3.0,从此ASP.NET Core应用程序将仅支持.NET Core平台,不再支持.NET Framework平台。新增特性包括以下方面:

  1. 使用C#构建可交互的客户端web应用(使用C#,而非Javascript,即Blazer框架)。
  2. 使用gRPC创建高性能的后端服务。
  3. SignalR现在支持自动重连“client-to-server”的数据流。
  4. 使用OpenAPI 文档生成强类型的Web APIs客户端代码。
  5. 在框架中集成端口路由(Endpoint routing)。
  6. 现在于Kestrel中默认支持HTTP/2。
  7. 集成IdentityServer对单页应用SPA中Web APIs的鉴权。
  8. 支持证书及网络身份证认Kerberos的鉴权。(更多关于Kerberos的信息 )
  9. 集成新的System.Text.Json 序列化工具。
  10. 新的通用HOST服务启动项,包括:依赖注入(DI),配置服务(configuration),及日志服务(logging)。
  11. 新的长期运行的工人服务(Worker Service)模版。
  12. 新的事件记数器,用来记录每秒的请求数、总请求数、当前请求数、失败的请求数。
  13. 当寄宿在IIS中时,Startup类中的错误现在会报告给Windows Event Log。
  14. 将请求队列与System.IO.Pipelines集成。
  15. 全栈的性能都得以增强。

设置开发环境

  1. Visual Studio
  2. Visual Studio Code
  3. .NET Core CLI

你可能感兴趣的:(ASP.NET,asp.net,restful,学习)