ASP.NET Core 框架简介

2025年1月20日 | 阅读 8 分钟

ASP.NET的历史

ASP.NET长期以来一直是创建数据驱动的Web应用程序的平台。从那时起,ASP.NET Framework一直在不断发展,而ASP.NET Core(也称为.NET)最终成为最受尊敬的进步。

  • ASP.NET 4.x Framework并不包括ASP.NET Core(.NET)。相反,它是一个全新的结构。
  • 当前的ASP.NET 4.x Framework已完全重写,以便于这个框架,该框架更加紧凑和模块化。
  • 虽然很多事情没有太大变化,但根据一些人的说法,这并不完全准确。
  • ASP.NET Framework的一个重要且根本性的改变是ASP.NET Core。

什么是Core ASP.NET?

微软表示,ASP.NET Core是与Docker、Windows、Linux和macOS兼容的开源ASP.NET版本。与其他知名Web框架相比,它速度更快。ASP.NET Core的模块化架构最大限度地减少了开销,并且可以根据各个应用程序的需要,将其他复杂功能添加为NuGet包。

每年11月,.NET Core都会发布一个主要版本。偶数版本是LTS版本,提供三年免费补丁和支持。奇数版本STS版本提供18个月的免费支持和补丁。

微软计划每两年发布一个.NET框架,从.NET Core开始,提供三年的长期支持(LTS)。在这两年之间,微软计划发布一个框架,提供18个月的短期支持(STS)。

Introduction to ASP.NET Core Framework

注意:最初作为ASP.NET 5发布,后来ASP.NET Core被重新命名,目前被称为.NET。

是什么造就了ASP.NET Core?

如今,ASP.NET Core框架在开发人员中越来越受欢迎。现代开发人员出于各种原因使用它,其中一些原因如下所述

开源

ASP.NET Core框架得到广泛使用的主要因素是其开源性质。.NET Core团队随时可以帮助您创建完美的应用程序。它经常收到错误修复和改进的更新,通常在很短的时间内。

更新不需要您等待更长时间。由于其多功能性,框架代码仍然是开发人员的首选。可以稍后添加库和框架元素,这取决于项目的需要。

跨平台

从一开始,ASP.NET Core框架就旨在跨平台进行开发和部署。因此,我们不需要使用各种框架为不同的平台创建应用程序。通过将其与以前的ASP.NET Framework迭代进行对比,让我们从ASP.NET Core的角度考察跨平台。

使用旧版本ASP.NET Framework构建的应用程序仅限于Windows操作系统。

另一方面,ASP.NET Core应用程序可以在其他操作系统上创建和执行,包括Linux、Mac和Windows。虽然ASP.NET Core应用程序可以在Nginx、Docker、Apache、IIS甚至自托管部署上托管,但旧的ASP.NET Framework 4.x应用程序只能在IIS上托管。

CLI支持:您可以使用CLI(命令行界面)命令创建、构建和发布.NET应用程序。

快速:在ASP.NET Core中,浏览器-服务器连接不再需要System.Web.dll。由于ASP.NET Core,我们可以合并应用程序所需的包。这提高了可伸缩性和性能,同时减少了请求管道。

IoC容器:依赖注入设计模式对于实时系统至关重要。它经过测试且可维护,因为它带有用于自动依赖注入的集成IoC(控制反转)容器。

统一的MVC和Web API框架

对于创建Web应用程序和Web API,ASP.NET Core提供了一个统一的编程架构。这意味着一个控制器类可以同时管理这两者。

我们在ASP.NET Core应用程序(Web应用程序或Web API)中开发的控制器将返回IActionResult接口并从Controller基类继承。IActionResult接口提供了多种实现方法。内置结果类型实现了IActionResult接口,包括JsonResult和ViewResult(像这样,有如此多的结果类型可用,我们将在稍后探讨)。

ASP.NET Core Web API应用程序中的控制器操作函数将产生JsonResult。如果它是一个ASP.NET Core Web应用程序,控制器操作方法的返回类型将是ViewResult。

测试和可维护性

ASP.NET Core MVC框架使其可以轻松测试和维护使用它创建的应用程序。这是可行的,因为它使您能够单独测试应用程序的不同组件,并将其各种组件划分为独立的段。要复制任何场景,ASP.NET Core MVC应用程序可以与MSTtest、xUnit和MOQ等测试框架连接。

托管

ASP.NET Core Web应用程序不像标准.NET Framework Web服务器那样仅限于IIS;它们可以使用任何Web服务器(包括Apache、IIS等)在多个平台上托管。

  • 代码共享可让您创建一个适用于Mono或.NET Framework 4.x的类库,以及其他.NET Framework。因此,多个框架可以共享相同的代码库。
  • 并行应用程序版本控制:由于ASP.NET Core是使用.NET Core构建的,因此它可以同时执行应用程序的多个版本。

框架扩展

ASP.NET Core MVC框架旨在具有极强的可扩展性。这意味着您现在就可以开始开发应用程序,并在将来将其推向任何高度。以下是该框架提供的有助于其可扩展性的一些主要属性。

  • 视图组件
  • 标签助手
  • 路由

更小的部署占用空间:ASP.NET Core应用程序在.NET Core上运行,.NET Core是.NET Framework的较小版本,而不是完整版本。因此,仅使用.NET CoreFX的一部分的应用程序的部署大小将更小,从而减少了部署占用空间。

开发人员的杰出工具

ASP.NET Core包含许多预装工具。由于这些工具的使用方式简单易用,任何人都喜欢使用它们。当您使用ReSharper(它提供即时代码分析并删除C#、VB.NET、XAML、ASP.NET和XML中的问题)、Libmam(它使安装Bootstrap和JQuery变得容易)和其他工具时,构建测试和其他出色的应用程序非常简单。

多功能性:除了现代数据驱动的Aeb应用程序外,用户还可以创建桌面和移动应用程序。他们可以随时自由更换。

ASP.NET Core没有哪些功能?

如果您来自ASP.NET 4.x,ASP.NET Core中缺少以下功能。

  • Global.sax文件
  • Web.Config文件
  • HTTP处理程序和HTTP模块
  • ASP.NET页面生命周期模型

.NET Framework和.NET Core之间的区别

.NET Framework

  • .NET Framework仅与Windows操作系统兼容。它与Windows生态系统紧密相连,并依赖于仅限Windows的API和组件。
  • 微软开发并维护了名为.NET Framework的专有软件。.NET Framework可用于开发各种应用程序,例如桌面应用程序(Windows Forms、WPF)、Web应用程序(ASP.NET Web Forms、MVC)和服务(Windows Services、WCF)。

.NET Core

  • 由于.NET Core是平台和移动无关的,因此它可以在多个操作系统上运行。由于其跨平台互操作性,它适用于创建可在Linux、macOS和Windows环境中使用的程序。
  • 已经有三千七百家公司为.NET Core做出了贡献,该软件在GitHub上以开源形式提供,贡献超过10万次。
  • .NET Core的主要重点是现代应用程序开发,包括Web应用程序(ASP.NET Core)、微服务和云原生应用程序。

.NET Core(.NET)与ASP.NET Core

  • 许多人希望将ASP.NET Core和.NET Core结合起来。请注意,ASP.NET Core和.NET Core不等同。
  • 它们就像ASP.NET和.NET Framework彼此不同一样。ASP.NET Core是一个快速、轻量级、模块化、开源的框架,用于创建在线应用程序、移动应用程序和Windows、Linux和macOS网络程序。
  • .NET Core软件平台,通常称为运行时环境,是ASP.NET Core应用程序运行的地方。
Introduction to ASP.NET Core Framework

.NET Core(.NET)

  • 在.NET Core运行时上编写的应用程序由它执行。
  • 安装.NET Core SDK以创建应用程序,并安装.NET Core Runtime以执行它们。
  • 最新的稳定版本是.NET 7。我们有一个.NET 8的预览版。

ASP.NET Core

  • 单元、互联网和物联网包被设计为在.NET Core平台上运行,使用一种名为ASP.NET Core的Web应用程序开发框架。
  • 要运行您正在增加使用的ASP.NET Core 1.X或2.Z的软件,您可以使用.NET Framework和.NET Core Platform。
  • 要构建和运行.NET Core应用程序,必须安装.NET SDK和.NET Runtime。要简单地运行.NET Core程序,您需要做的就是安装.NET Core Runtime。

ASP.NET Core关键特征的摘要如下所示

跨平台支持:ASP.NET Core与Windows、macOS和Linux操作系统兼容。这种跨平台功能由.NET Core运行时(一个可以在一系列工作结构上安装的薄型、模块化运行时环境)实现。这使开发人员可以获得更大的灵活性和可访问性,使他们能够在他们希望的任何平台上开发和发布ASP.NET Core包。

统一的MVC框架:ASP.NET Core提供的单一Model-View-Controller(MVC)框架促进了Web应用程序的开发。该应用程序使用MVC,并分为三个主要组件

  • 模型:描述应用程序的数据和业务逻辑。
  • 视图:利用模型数据呈现用户界面。
  • 控制器:响应传入的HTTP请求,解释用户输入,并与模型通信以生成所需的答案。

Razor页面:Razor页面提供了一种更直接的编程方式,用于使用服务器端逻辑开发动态网页,结合了MVC和Web Forms的优势。Razor页面非常适合于页面中心策略比控制器中心策略更可取的场景,包括基本的内容驱动网站和CRUD(创建、读取、更新、删除)活动。

借助这些框架,开发人员可以为其ASP.NET Core包提供动态和灵活的用户界面。

命令行界面(CLI):ASP.NET Core中包含的命令行界面(CLI)工具dotnet使程序员能够设计、构建、运行和管理ASP.NET Core包。CLI的指令使开发人员能够执行所需的增强任务,例如发布、依赖项管理和企业支架,而无需IDE。

由于其对整体性能、适应性和开发人员生产力的奉献,ASP.NET Core对于希望构建可以在当前的动态数字环境中扩展、适应和蓬勃发展的尖端网络解决方案的公司和开发人员来说是一个不错的选择。开发人员可以使用ASP.NET Core生产微服务、RESTful API和企业级Web应用程序,同时提供满足客户和利益相关者需求的软件解决方案。这使得构建者能够实现他们的想法。

结论

总而言之,微软最终推出了强大的开源框架 ASP.NET Core,使程序员能够开发现代、可扩展、快速的 Web 应用程序和 API。 凭借其模块化架构、跨平台兼容性、性能优化以及与现代前端框架的交互,ASP.NET Core 提供了众多功能和工具,以满足现代软件开发领域的需求并加速开发过程。

凭借其统一的 MVC 框架、对 Razor Pages 的支持以及集成的依赖注入,ASP.NET Core 促进了清晰的代码组织、问题分离和代码重用,使开发人员能够创建组织良好且易于维护的应用程序。


下一主题ASP.NET 访谈