ASP.NET Core 概述

ASP.NET Core 是一个跨平台的高性能开源框架,用于生成基于云且连接 Internet 的新式应用程序。使用 ASP.NET Core,您可以:

  • 建置 Web 应用程序和服务、IoT应用和移动后端。
  • 在 Windows、macOS 和 Linux 上使用喜爱的开发工具。
  • 部署到云或本地。
  • 在 .NET Core 或 .NET Framework 上运行。

ASP.NET Core 的优点:

  • 生成 Web UI 和 Web API 的统一场景。
  • 针对可测试性进行构建。
  • Razor Pages 可以使基于页面的编码方式更简单高效。
  • 能够在 Windows、macOS 和 Linux 上进行开发和运行。
  • 开放源代码和以社区为中心。
  • 集成新式客户端和开发工作流。
  • 基于环境的云就绪配置系统。
  • 内置依赖项注入。
  • 轻型的高性能模块化 HTTP 请求管道。
  • 能够在 IIS、Nginx、Apache、Dockers 上进行托管或在自己的进程中进行自托管。
  • 定目标到 .NET Core 时,可以使用并行应用版本控制。
  • 简化新式 Web 开发工具。

使用 ASP.NET Core MVC 生成 Web API 和 Web UI:

  • Model-View-Controller (MVC) 模式使 Web API 和 Web 应用可测试。
  • ASP.NET Core 2.0中新增的 Razor 页面是基于页面的编程模型,可简化 Web UI 生成并提高工作效率。
  • Razor 标记提供了适用于 Razor 页面和 MVC 视图的高效语法。
  • 标记帮助程序使服务器端代码可以在 Razor 文件中参与创建和呈现 HTML 元素。
  • 内置的多数据格式和内容协商支持使 Web API 可访问多种客户端,包括浏览器和移动设备。
  • 模型绑定自动将 HTTP 请求中的数据映射到操作方法参数。
  • 模型验证自动执行客户端和服务器端验证。

ASP.NET Core 2.x 可以面向 .NET Core 或 .NET Framework。面向 .NET Framework 的 ASP.NET Core 应用无法跨平台,只能在 Windows 运行。ASP.NET Core 3.0 以及更高版本只能在 .NET Core 中运行。

面向 .NET Core 有以下几个优势,并且这些优势会随着每次发布增加。与  .NET Framework 相比,.NET Core 的部分优势包括:

  • 跨平台。在 macOS、Linux 和 Windows 上运行。
  • 提高的性能
  • 并行版本控制
  • 新 API
  • 开源

比较 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 时建议使用的方法。 另请参阅 MVCWeb API 和 SignalR 使用 Web 窗体SignalRMVCWeb APIWebHooks 或网页
每个计算机多个版本 每个计算机一个版本
使用 C# 或 F# 通过 Visual Studio、Visual Studio for Mac 或 Visual Studio Code 进行开发 使用 C#、VB 或 F# 通过 Visual Studio 进行开发
比 ASP.NET 4.x 性能更高 良好的性能
选择 .NET Framework 或 .NET Core 运行时 使用 .NET Framework 运行时

比较 .NET Core 和 .NET Framework:

以下情况应对服务器应用程序使用 .NET Core:

  • 用户和跨平台需求。
  • 用户正在面向微服务。
  • 用户正在使用 Docker 容器。
  • 需要高性能和可扩展的系统。
  • 需按应用程序提供并行的 .NET 版本。

以下情况应对服务器应用程序使用 .NET Framework:

  • 应用当前使用 .NET Framework (建议扩展而不是迁移)。
  • 应用使用不可用于 .Net Core 的第三方 .NET 库或 NuGet 包。
  • 应用使用不可用于 .Net Core 的 .Net 技术。
  • 应用使用不支持 .Net Core 的平台。

在ASP.NET Core之前,ASP.NET Framework应用程序由IIS加载。Web应用程序的入口点由InetMgr.exe创建并调用托管。以初始化过程中触发HttpApplication.Application_Start()事件。开发人员第一次执行代码的机会是处理Application_StartGlobal.asax中的事件。

在ASP.NET Core中,Global.asax文件不再可用,已被新的初始化过程替代。
ASP.NET Core 应用程序是在.NET Core 控制台程序下调用特定的库,这是ASP.NET Core应用程序开发的根本变化。所有的ASP.NET托管库都是从Program开始执行,而不是由IIS托管。也就是说.NET工具链可以同时用于.NET Core控制台应用程序和ASP.NET Core应用程序。

using System;
using Microsoft.AspNetCore.Hosting;

namespace aspnetcoreapp{   

public class Program
{       
    public static void Main(string[] args)
    {            
        var host = new WebHostBuilder()
            .UseKestrel() //指定宿主程序为Kestrel
            .UseStartup<Startup>()// 调用Startup.cs类下的Configure 和 ConfigureServices
            .Build();
         host.Run();
    }
}

以上是Program类中Main方法的示例代码,Main方法负责初始化Web主机,调用Startup和执行应用程序。主机将调用Startup类下面的ConfigureConfigureServices方法。

参考链接:

https://docs.microsoft.com/zh-cn/aspnet/core/index?view=aspnetcore-2.1

https://blog.csdn.net/sD7O95O/article/details/78126384

猜你喜欢

转载自blog.csdn.net/yiyelanxin/article/details/84230900