ASP.NET Core 是一个跨平台的高性能开源框架,用于生成启用云且连接 Internet 的新式应用。
使用 ASP.NET Core,可以:
ASP.NET Core 是对 ASP.NET 4.x 的重新设计,其中包括体系结构上的更改,产生了更精简、更模块化的框架。
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。
ASP.NET 4.x 是一个成熟的框架,提供在 Windows 上生成基于服务器的企业级 Web 应用所需的服务。
| ASP.NET Core | ASP.NET 4.x |
|---|---|
| 针对 Windows、macOS 或 Linux 进行生成 | 针对 Windows 进行生成 |
| Razor Pages 是在 ASP.NET Core 2.x 及更高版本中创建 Web UI 时建议使用的方法。 另请参阅 MVC、Web API 和 SignalR。 | 使用 Web FormsSignalR、MVCWeb APIWebHooks 或网页 |
| 每个计算机多个版本 | 每个计算机一个版本 |
| 使用 C# 或 F# 通过 Visual Studio、Visual Studio for Mac 或 Visual Studio Code 进行开发 | 使用 C#、VB 或 F# 通过 Visual Studio 进行开发 |
| 比 ASP.NET 4.x 性能更高 | 良好的性能 |
| 使用 .NET Core 运行时 | 使用 .NET Framework 运行时 |
有两种支持的 .NET 实现可用于生成服务器端应用。
| 实现 | 包含的版本 |
|---|---|
| .NET | .NET Core 1.0 - 3.1、.NET 5 及更高版本的 .NET。 |
| .NET Framework | .NET Framework 1.0 - 4.8 |
这两者共用许多相同的组件,你可在它们之间共享代码。 但两者之间存在根本的差异,可根据需要实现的目标进行选择。 本文介绍了在何种情况下进行选择。
在以下情况,对服务器应用程序使用 .NET:
在以下情况,对服务器应用程序使用 .NET Framework :
有三种常见的方法可以使用 ASP.NET Core 构建新式 Web UI:
在服务器或客户端上呈现 UI 时,需要考虑其优点和缺点。
优点:
常见的服务器呈现的 Web UI 应用场景的示例:
缺点:
Razor Pages 和 MVC 是基于服务器的框架,用于通过 .Net 生成 Web 应用。
Razor Pages 是一个基于页面的模型。 UI 和业务逻辑关注点保持分离状态,但都在页面内。
Razor Pages 创建新的基于页面或基于窗体的应用。
Razor Pages 入门比 ASP.NET Core MVC 要简单一些。
在服务器呈现的优点基础上,Razor Pages 的优点:
ASP.NET MVC 在服务器上呈现 UI,并使用模型-视图-控制器 (MVC) 结构模式。
MVC 模式将应用分成三组主要组件:模型、视图和控制器。
用户请求被路由到控制器。 控制器负责使用模型来执行用户操作或检索查询结果。 控制器选择要显示给用户的视图,并为其提供所需的任何模型数据。
对 Razor Pages 的支持是建立在 ASP.NET Core MVC 基础之上的。
在服务器呈现的优点基础上,MVC 也有它的优点:
Blazor 是一个使用 Blazor 生成交互式客户端 Web UI 的框架:
使用 .NET 进行客户端 Web 开发可提供以下优势:
Blazor Server 支持在 ASP.NET Core 应用中托管服务器呈现的 UI。 可通过 SignalR 连接处理客户端 UI 更新。 运行时保留在服务器上,并处理应用 C# 代码的执行。
Blazor WebAssembly 是单页应用 (SPA) 框架,用于生成具有本文前面 Blazor Server 部分所述的一般特征的交互式客户端 Web 应用。
通过 WebAssembly,可在 Web 浏览器内运行 .NET 代码。 WebAssembly 是针对快速下载和最大执行速度优化的压缩字节码格式。 WebAssembly 是开放的 Web 标准,支持用于无插件的 Web 浏览器。 Blazor WebAssembly 适用于所有新式 Web 浏览器,包括移动浏览器。
当 Blazor WebAssembly 应用生成并运行时:
使用热门的 JavaScript 框架(如 Angular 或 React)生成适用于 ASP.NET Core 应用的客户端逻辑。 ASP.NET Core 为 Angular 和 React 提供了项目模板,也可以用于其他 JavaScript 框架。
在前面列出的客户端呈现的优点基础上,将 ASP.NET Core SPA 与 JavaScript 框架结合使用也有一些优点:
缺点:
MVC、Razor Pages 和 Blazor 都是 ASP.NET Core 框架的一部分,设计为可以结合使用。 Razor 组件可以通过托管的 Blazor WebAssembly 或 Blazor Server 解决方案集成到 Razor Pages 和 MVC 应用。 呈现视图或页面时,可以同时预呈现组件。