作者:Daniel Roth、Rick Anderson 和 Shaun Luttin
重要
此信息与预发布产品相关,相应产品在商业发布之前可能会进行重大修改。 Microsoft 对此处提供的信息不提供任何明示或暗示的保证。
有关当前版本的信息,请参阅.NET 9 版本的文章。
ASP.NET Core 是一个跨平台的高性能开源框架,用于生成启用云且连接 Internet 的新式应用。
使用 ASP.NET Core,您可以:
- 构建 Web 应用和服务,Azure IoT(物联网) 应用和移动后端。
- 在 Windows、macOS 和 Linux 上使用喜爱的开发工具。
- 部署到云或本地。
- 在 .NET 上运行。
为何选择 ASP.NET Core?
数百万开发人员在使用或使用过 ASP.NET 4.x 创建 Web 应用。 ASP.NET Core 是对 ASP.NET 4.x 的重新设计,其中包括体系结构上的更改,产生了更精简、更模块化的框架。
ASP.NET Core 具有如下优点:
- 构建 Web UI 和 Web API 的统一方案。
- 针对可测试性进行构建。
- Razor Pages 可以使基于页面的编码方式更简单高效。
- Blazor 允许在浏览器中使用 C# 和 JavaScript。 共享全部使用 .NET 编写的服务器端和客户端应用逻辑。
- 能够在 Windows、macOS 和 Linux 上进行开发和运行。
- 开放源代码和以社区为中心。
- 集成新式客户端框架和开发工作流。
- 支持使用 gRPC 托管远程过程调用 (RPC)。
- 可以在云环境中使用的基于环境的配置系统。
- 内置依赖项注入。
- 轻型的高性能模块化 HTTP 请求管道。
- 能够托管于以下各项:
- 并行版本控制。
- 简化新式 Web 开发的工具。
使用 ASP.NET Core MVC 生成 Web API 和 Web UI
ASP.NET Core MVC 提供生成 Web API 和 Web 应用所需的功能:
客户端开发
ASP.NET Core 包括用于生成丰富的交互式 Web UI 的 Blazor,且还与其他常用的前端 JavaScript 框架(如 Angular、React、Vue 和 Bootstrap)集成。 有关详细信息,请参阅 ASP.NET Core Blazor 和“客户端开发”下的相关主题。
ASP.NET Core 目标框架
ASP.NET Core 3.x 或更高版本仅面向 .NET。
将 .NET 作为目标有以下几个优势,并且这些优势会随着每次新版本的发布而增加。 与 .NET Framework 相比,.NET 的部分优势包括:
- 跨平台。 在 Windows、macOS 和 Linux 上运行。
- 性能更强
- 并行版本控制
- 新 API
- 开源
推荐的学习路径
建议通过以下一系列教程来了解如何开发 ASP.NET Core 应用:
按照你要开发或维护的应用类型的教程操作:
按照介绍如何进行基本数据访问的教程操作。
阅读适用于所有应用类型的 ASP.NET Core 基础知识的概述。
浏览目录以了解其他感兴趣的主题。
†此外,还提供了一个交互式 Web API 教程。 无需在本地安装开发工具。 代码在浏览器中的 Azure Cloud Shell 中运行,并且 curl 用于测试。
从 .NET Framework 迁移
有关将 ASP.NET 4.x 应用迁移到 ASP.NET Core 的参考指南,请参阅从 ASP.NET 升级到 ASP.NET Core。
ASP.NET Core 是一个跨平台的高性能开源框架,用于生成启用云且连接 Internet 的新式应用。 使用 ASP.NET Core,您可以:
为何选择 ASP.NET Core?
数百万开发人员在使用或使用过 ASP.NET 4.x 创建 Web 应用。 ASP.NET Core 是对 ASP.NET 4.x 的重新设计,通过体系结构上的更改,产生了更精简、更模块化的框架。
ASP.NET Core 具有如下优点:
- 构建 Web UI 和 Web API 的统一故事。
- 针对可测试性进行构建。
- Razor Pages 可以使基于页面的编码方式更简单高效。
- Blazor 允许在浏览器中使用 C# 和 JavaScript。 共享全部使用 .NET 编写的服务器端和客户端应用逻辑。
- 能够在 Windows、macOS 和 Linux 上进行开发和运行。
- 开放源代码和以社区为中心。
- 集成新式客户端框架和开发工作流。
- 支持使用 gRPC 托管远程过程调用 (RPC)。
- 基于环境的云就绪配置系统。
- 内置依赖项注入。
- 轻型的高性能模块化 HTTP 请求管道。
- 能够托管于以下各项:
- 并行版本控制。
- 简化新式 Web 开发的工具。
使用 ASP.NET Core MVC 生成 Web API 和 Web UI
ASP.NET Core MVC 提供生成 Web API 和 Web 应用所需的功能:
客户端开发
ASP.NET Core 与常用客户端框架和库(包括 Blazor、Angular、React、Vue 和 Bootstrap)无缝集成。 有关详细信息,请参阅 ASP.NET Core Blazor 和“客户端开发”下的相关主题。
面向 .NET Framework 的 ASP.NET Core
ASP.NET Core 2.x 可以面向 .NET Core 或 .NET Framework。 面向 .NET Framework 的 ASP.NET Core 应用无法跨平台,它们仅在 Windows 上运行。 通常,ASP.NET Core 2.x 由 .NET Standard 库组成。 使用 .NET Standard 2.0 编写的库在实现 .NET Standard 2.0 的任何 .NET 平台上运行。
ASP.NET Core 2.x 在实现 .NET Standard 2.0 的 .NET Framework 版本上受支持:
- 建议使用最新版本的 .NET Framework。
- .NET Framework 4.6.1 或更高版本。
ASP.NET Core 3.0 或更高版本仅在 .NET Core 上运行。 有关此更改的详细信息,请参阅 A first look at changes coming in ASP.NET Core 3.0(抢先了解 ASP.NET Core 3.0 即将推出的更改)。
面向 .NET Core 有以下几个优势,并且这些优势会随着每次发布增加。 与 .NET Framework 相比,.NET Core 的部分优势包括:
- 跨平台。 在 macOS、Linux 和 Windows 上运行。
- 性能更强
- 并行版本控制
- 新 API
- 开源
为了帮助缩小从 .NET Framework 到 .NET Core 的 API 差距,Windows 兼容包使数千个仅可在 Windows 中运行的 API 可在 .NET Core 中使用。 这些 API 在 .NET Core 1.x 中不可用。
推荐的学习路径
建议通过以下一系列教程和文章来了解如何开发 ASP.NET Core 应用:
按照你要开发或维护的应用类型的教程操作。
按照介绍如何进行基本数据访问的教程操作。
阅读适用于所有应用类型的 ASP.NET Core 基础知识的概述。
浏览目录以了解其他感兴趣的主题。
此外,还提供了一个 Web API 教程,需要在浏览器中完全遵循,无需在本地安装 IDE。 代码在 Azure Cloud Shell 中运行,并且 curl 用于测试。
从 .NET Framework 迁移
有关将 ASP.NET 应用迁移到 ASP.NET Core 的参考指南,请参阅从 ASP.NET 升级到 ASP.NET Core。
如何下载示例
很多文章和教程中都包含有示例代码链接。
- 下载 ASP.NET 存储库 zip 文件。
- 解压缩
AspNetCore.Docs-main.zip
文件。
- 若要在解压缩的存储库中访问文章的示例应用,请借助文章的示例链接中的 URL 来导航到示例文件夹。 通常,文章的示例链接显示在文章顶部,链接文本为“查看或下载示例代码”。
示例代码中的预处理器指令
为了演示多个方案,示例应用使用 #define
和 #if-#else/#elif-#endif
预处理器指令选择性地编译和运行示例代码中不同的片段。 对于那些利用此方法的示例,请将 C# 文件顶部的 #define
指令设置为定义与你想要运行的方案相关联的符号。 一些示例要求在多个文件的顶部定义符号才能运行方案。
例如,以下 #define
符号列表指示四个方案可用(每个符号一个方案)。 当前示例配置运行 TemplateCode
方案:
#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode
若要更改示例以运行 ExpandDefault
方案,请定义 ExpandDefault
符号并保留剩余的符号处于被注释掉的状态:
#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode
若要详细了解如何使用 C# 预处理器指令选择性地编译代码段,请参阅 #define(C# 参考)和 #if(C# 参考)。
重大更改和安全建议
公告存储库上报告了重大更改和安全建议。 可以通过选择“标签”筛选器将公告限制为特定版本。
后续步骤
有关详细信息,请参阅以下资源: