一.?? 概述
ASP.NET Core 是一个跨平台的高性能开源框架,可以用来:建置 Web 应用程序和服务、IoT应用和移动后端、在 Windows macOS 和 Linux 上使用喜爱的开发工具、部署到云或本地、NET Core 或 .NET Framework 上运行。
ASP.NET Core??可以面向 .NET Core 或 .NET Framework。面向 .NET Framework 的 ASP.NET Core 应用无法跨平台,它们仅在 Windows 上运行。通常,ASP.NET Core由 .NET Standard 库组成。与 .NET Standard 2.0 兼容的 .NET Framework?版本建议使用4.7.1。在未来ASP.NET Core 3.0及以上只能在 .NET Core 中运行。
?
1.1?ASP.NET Core 具有如下优点:
(1)生成 Web UI 和 Web API 的统一场景。
(2)针对可测试性进行构建。
(3)Razor Pages可以使基于页面的编码方式更简单高效。
(4)能够在 Windows、macOS 和 Linux 上进行开发和运行。
(5)开放源代码和以社区为中心。
(6)集成新式客户端框架和开发工作流。
(7)基于环境的云就绪配置系统。
(8)内置依赖项注入。
(9)轻型的高性能模块化 HTTP 请求管道。
(10)能够在IIS、Nginx、Apache、Docker?上进行托管或在自己的进程中进行自托管。
(11)目标到NET Core?时,可以使用并行应用版本控制。
(12)简化新式 Web 开发的工具。
?
1.2?使用 ASP.NET Core MVC 生成 Web API 和 Web UI所需的功能:
Model-View-Controller (MVC) 模式使 Web API 和 Web 应用可测试。
Razor Pages是基于页面的编程模型,它让 Web UI 的生成更加简单高效。
Razor 标记提供了适用于?Razor 页面和 MVC 视图的高效语法。
标记帮助程序使服务器端代码可以在 Razor 文件中参与创建和呈现 HTML 元素。
内置的多数据格式和内容协商支持使 Web API 可访问多种客户端,包括浏览器和移动设备。
模型绑定自动将 HTTP 请求中的数据映射到操作方法参数。
模型验证自动执行客户端和服务器端验证。
?
1.3?NET Core与 .NET Framework 比较
.NET Core与 .NET Framework 相比优势包括: 跨平台、提高性能、并行版本控制、新API、开源。目前NET Framework 还不会被 .NET Core 代替。Core会试图缩小二者在实现上的差距,下表将 ASP.NET Core 与 ASP.NET 4.x 进行比较:
ASP.NET Core | ASP.NET 4.x |
针对 Windows、macOS 或 Linux 进行生成 | 针对 Windows 进行生成 |
Razor 页面是在 ASP.NET Core 2.x 及更高版本中创建 Web UI 时建议使用的方法 | 使用 Web 窗体、SignalR、MVC、Web API、WebHooks 或网页 |
每个计算机多个版本 | 每个计算机一个版本 |
比 ASP.NET 4.x 性能更高 | 良好的性能 |
选择 .NET Framework 或 .NET Core 运行时 | 使用 .NET Framework 运行时 |
?
1.4 运用场景
(1) 在什么情况下要求使用?.NET Core包括: 用户有跨平台需求、用户正在面向微服务、用户正在使用 Docker 容器、需要高性能和可扩展的系统、需按应用程序提供并行的 .NET 版本。
(2)?在什么情况下使用.NET Framework包括: 当前使用 .NET Framework(建议扩展而不是迁移)、不可用于 .NET Core 的第三方 .NET 库或 NuGet 包、不可用于 .NET Core 的 .NET 技术、不支持 .NET Core 的平台。
不可用于?.NET Core的.NET技术包括:不能用于 ASP.NET Web 窗体、WCF 服务的实现(将来会考虑在Core上实现)、工作流相关的服务。