ASP.NET Core 简介
随着微软逐渐拥抱开源,旗下.NET 家族也转向跨平台。虽然国内使用.NET 技术栈的项目比较少,但我相信随着对 .NET Core
的逐步了解,在国内其也将拥有一片天地。我也希望为 .NET Core
在国内的普及贡献自己的一份力量。本次带来 ASP.NET Core
入门教程。下面是第一章,对 ASP.NET Core
做一个总体的介绍。
ASP.NET Core
是一个跨平台、开源的 web 应用程序框架,您可以使用它快速构建动态的、服务器端呈现的应用程序。您还可以使用 ASP.NET Core
创建 HTTP APIs,移动应用程序、基于浏览器的单页应用程序(如 Vue
,Angular
和 React
)或其他后端应用程序都可以使用这些 API 来提供服务。
开发 ASP.NET Core
的动机是希望创建一个能实现以下四个主要目标的 WEB 框架:
- 跨平台运行和开发
- 有一个模块化的架构,以便于维护
- 可以完全的作为开源软件来进行开发
- 适用于当前 WEB 开发的趋势,例如客户端应用程序和云环境部署
如下图所示,ASP.NET Core
运行在 .NET Core
和 .NET 5.0
,因此它可以跨平台运行。相反,ASP.NET
只能运行在 .NET Framework
,所以它是完全和 Windows 操作系统绑定起来的。
.NET Core
( 及其继承者,.NET 5.0
) 使用了许多与 .NET Framework 相同的 APIs,但它更加模块化,并且只实现了 .NET Framework
的部分子集,目的是提供一个更简单的实现和编程模型。它是一个完全独立的平台,而不是一个 .NET Framework
的分支,尽管他们的许多 API 使用的代码都是类似的。
微软默认提供了一个跨平台的 WEB 服务器,叫Kestrel
。通过添加一个 ASP.NET Core
WEB 服务器到你的应用程序,你的应用程序就可以作为一个 WEB 应用程序运行。ASP.NET Core
是由许多小型库组成的,你可以从这些库中进行选择,以便为应用程序提供不同的特性。你几乎不需要所有可用的库,只需要添加所需的内容。有些库是常见的,实际上会出现在您创建的每个应用程序中,例如用于读取配置文件或执行日志记录的库。其他库建立在这些基本功能之上,以提供特定于应用程序的功能,例如通过 Facebook 或 Google 的第三方登录。
ASP.NET Core
可以作为各种客户端的服务器端应用程序:它可以为传统 WEB 应用程序提供 HTML 页面,可以为客户端 SPA 应用程序提供 REST API,还可以作为客户端应用程序的特定 RPC 服务。
ASP.NET 的上一个版本,IIS 与应用程序紧密耦合。而 ASP.NET Core
中的托管模型更简单。IIS 将请求发送给 ASP.NET Core
应用程序中的自托管 WEB 服务器并接收响应,不需要对应用程序内部的处理有更深入的了解。
当您使用 ASP.NET Core
构建 web 应用程序时,浏览器仍将使用与以前相同的 HTTP 协议与您的应用程序进行通信。ASP.NET Core
本身包含了在服务器上处理请求所需要的一切,包括验证请求是否有效、处理登录细节和生成 HTML 等。
ASP.NET Core
应用程序从网络接收请求。每个 ASP.NET Core
应用程序都有一个内置的 WEB 服务器,默认情况下是 Kestrel,它负责接收原始请求并构建数据的内部表示,即一个 HttpContext
对象,该对象可以被应用程序的其他部分使用。通过这种表示,您的应用程序应该具有创建对请求的适当响应所需的所有细节。它可以使用存储在 HttpContext
中的细节来生成适当的响应,这可能是生成一些 HTML,返回一个“拒绝访问”消息,或者发送一封电子邮件,这些都取决于您的应用程序的需求。一旦应用程序处理完请求,它将返回响应到 WEB 服务器。ASP.NET Core
WEB 服务器将这个表示转换成原始的 HTTP 响应并发送到网络,网络将把它转发到用户的浏览器。
总结
ASP.NET Core
是一个以现代软件体系结构实践和模块化为核心的新的 WEB 框架。- 遗留技术,如 WCF 服务器和 Web 表单不能与
ASP.NET Core
一起使用。 ASP.NET Core
允许您动态地构建对给定请求的响应。ASP.NET Core
应用程序包含一个 WEB 服务器,作为请求的入口点。ASP.NET Core
应用程序通常由反向代理服务器从互联网上保护起来,该服务器将请求转发给应用程序。
(全文完)