ASP.NETCore-WebHostBuilder、WebApplication、WebApplication创建WebAPI应用的区别

一、三种创建WebAPI应用的区别

1、WebHost.CreateDefaultBuilder()

  Net Core 2.x(2.1.x、2.2.x);

2、Host.CreateDefaultBuilder()

  Net Core 3.x、Net5;

  从WebHost迁移到Host时Service的写法变化最大,刚出来的挺长一段时间里第三方NuGet的兼容性没跟上,好多第三方库不可用。

3、WebApplication.CreateBuilder()

  Net6、Net7,封装了WebHost和Host;

1)WebApplicationBuilder主要负责 4 项工作:

  使用 builder.Configuration 添加配置。

  使用 builder.Services 添加服务

  使用 builder.Logging 配置日志

  配置 IHostBuilder 和 IWebHostBuilder

2)WebApplication提供的部分接口
  • IHost - 用来启动和停止 Host

  • IApplicationBuilder - 用于建立中间件管道

  • IEndpointRouteBuilder - 用于添加路由端点

3)其他知识:

  app.UseRouting()、app.UseRouter()、app.UseEndpoints 在webapi(不带页面的WebApi应用)中不是必须的,使用mvc或者Razor时会用到。无页面的webapi无特殊需求不会用到。

  app.UseStaticFiles();可有可无;

  app.MapRazorPages();为Razor需要;

  app.UseMvc();为Mvc需要;

  app.MapControllers为WebAPI需要;

posted @   ꧁执笔小白꧂  阅读(541)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
历史上的今天:
2020-05-18 C#-类成员添加[DataContract]和[DataMember]标识
点击右上角即可分享
微信分享提示