.Net 6简介并和之前版本写法的对比是怎样的
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,.Net 6简介并和之前版本写法的对比是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。介绍vs2022正式版已经推出了,估计很
千家信息网最后更新 2025年11月06日.Net 6简介并和之前版本写法的对比是怎样的
.Net 6简介并和之前版本写法的对比是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
介绍
vs2022正式版已经推出了,估计很多人已经下载并开始创建.Net 6 开始尝鲜了, 本节我简要的给大家介绍一下.Net 6的一些改动。
正文
本次.Net6带来最明显的变化就是:
采用顶级语句,我们看不到
Program.Main()了。隐式 using 指令,隐式 using 指令意味着编译器会根据项目类型自动添加一组 using 指令。
移除了Startup文件。
var builder = WebApplication.CreateBuilder(args);var app = builder.Build();app.Run();
对于这样的改动大家可能会觉得这是C# 10 带来的优化,但我的理解是.Net6为了新手更加方便入门,早期我们使用.Net Core 2/3/5 版本,还要给新人解释系统启动入口Program.Main()以后不需要了,配置拆分成两个文件Program.cs和Startup.cs虽然做到了关注点分离,但是对于新人会难以理解这次也没了,当我们讨论Startup的时候不用在去解释如何调用的2个约定方法,即使它们没有显式实现接口,也可以调用它们。
我们来看一下之前的语法,我们有一大堆嵌套的 lambda,代码看上去非常复杂。
var hostBuilder = Host.CreateDefaultBuilder(args) .ConfigureServices(services => { services.AddControllers(); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.Configure((ctx, app) => { if (ctx.HostingEnvironment.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseStaticFiles(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGet("/", () => "Hello World!"); endpoints.MapRazorPages(); }); }); }); hostBuilder.Build().Run();升级到.Net 6之后,我们可以使用更简单的 API 来实现。
var builder = WebApplication.CreateBuilder(args);builder.Services.AddControllers();var app = builder.Build();app.MapGet("/", () => "Hello World!");app.Run();对比
我们将 2个版本的语法对比来看
向DI 容器添加服务
var hostBuilder = Host.CreateDefaultBuilder(args);hostBuilder.ConfigureServices(services => { services.AddControllers(); services.AddSingleton(); })var builder = WebApplication.CreateBuilder(args);builder.Services.AddControllers();builder.Services.AddSingleton(); 日志记录
var hostBuilder = Host.CreateDefaultBuilder(args);hostBuilder.ConfigureLogging(builder => { builder.AddFile(); })var builder = WebApplication.CreateBuilder(args);builder.Logging.AddFile();Serilog 集成
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseSerilog() // <-- Add this line .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); });builder.Host.UseSerilog(); 完成的来看效果
public interface IHelloService { string Hello(bool isHappy); } public class HelloService : IHelloService { public string Hello(bool isHappy) { var hello = $"Hello World"; if (isHappy) return $"{hello}, you seem to be happy today"; return hello; } }using MinimalApiDemo;using System.Security.Claims;var builder = WebApplication.CreateBuilder(args);builder.Services.AddScoped();// Add services to the container.builder.Services.AddControllers();// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbucklebuilder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen();var app = builder.Build();// Configure the HTTP request pipeline.if (app.Environment.IsDevelopment()){ app.UseSwagger(); app.UseSwaggerUI();}app.UseHttpsRedirection();app.UseAuthorization();app.MapControllers();app.MapGet("/Hello", (bool? isHappy, IHelloService service) =>{ if (isHappy is null) return Results.BadRequest("Please tell if you are happy or not :-)"); return Results.Ok(service.Hello((bool)isHappy));});app.Run(); 关于.Net 6简介并和之前版本写法的对比是怎样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
版本
指令
问题
写法
简介
文件
新人
方法
更多
语法
帮助
解答
解释
复杂
明显
易行
简单易行
不用
两个
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全独一无二的产品
冬奥会 网络安全 居民
年公安机关网络安全执法检查
怎么删除服务器记录
游戏服务器架构设计数据库
小学科技类互联网介绍
图数据库系统平台有哪些
鄂州市一鸣软件开发
周村食品管理软件开发
服务器维护除尘
求生之路2纯净服务器ip
基于华为网络技术的网络规划
碧橙网络技术有限公司环境
虎丘区信息化软件开发系统
柯美服务器硬盘灯亮黄灯
信息管理系统需要数据库吗
sql有哪些系统数据库
搜索三年级网络安全减一
微软sccm可以做服务器管理吗
网络安全保障有哪些
数据库报告高级查询
浦东新区智能软件开发
数据库概念 逻辑 物理
数据库时间 时间段
华为x86服务器都有哪些型号
怎么把数据库的连接密码加密
数据库架构的类型有哪些
硅谷科技与乌镇互联网
华为捐给国家服务器系统叫什么
山西潮流软件开发品质保障