在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言: 想到要写这样一个系列博客,初衷有两个:一是希望通过一个实践项目,将.NET 6 WebAPI开发的基础知识串联起来,帮助那些想要入门.NET 6服务端开发的朋友们快速上手,对使用.NET 6开发后端服务的技术全貌有一个基本的认识和掌握,顺便把自己的技能树检查一遍;二是希望为国内的.NET环境有一些小小的帮助,最早我自己是做C#桌面应用出身的,但是随着互联网产业的繁盛和微软早年间的固执,使得国内的.NET开发环境收缩到几个固定的领域,以致于很多人今天依然认为C#和.NET不适合做大型的企业级应用,这个观念需要改变了。我无意比较技术和语言之间的好坏,只是更愿意看到国内的技术环境也能呈现出百家争鸣的状态。经过微软这么多年的改变和进步,.NET 6是一个很优秀的框架,这一点自从我最开始接触. 1.列说明在这个系列博客中,我将会使用.NET 6从头开始一步一步开发一个 选择TodoList的原因是这个项目足够简单,但是也足够去覆盖我希望覆盖到的知识点,对于读者来说,有以下一些建议的前置要求:
2.系列导航2.1 使用.NET 6开发TodoList应用文章索引附:.NET 6 Web API项目代码上的变化 2.1.1创建项目mkdir ProjectName && cd ProjectName dotnet new sln -n SampleApi dotnet new project -f net6.0 -n SampleApi -o SampleApi dotnet sln SampleApi.sln add SampleApi/SampleApi.csproj dotnet restore dotnet run -p SampleApi/SampleApi.csproj 2.1.2.NET 6 WebAPI Program.cs的变更var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); builder.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.Run(); 2.1.3Change 1: Top-level statements顶级声明使得我们在编写 2.1.4Change 2: Implicit using directives隐式 内容如下: // <auto-generated/> global using global::Microsoft.AspNetCore.Builder; global using global::Microsoft.AspNetCore.Hosting; global using global::Microsoft.AspNetCore.Http; global using global::Microsoft.AspNetCore.Routing; global using global::Microsoft.Extensions.Configuration; global using global::Microsoft.Extensions.DependencyInjection; global using global::Microsoft.Extensions.Hosting; global using global::Microsoft.Extensions.Logging; global using global::System; global using global::System.Collections.Generic; global using global::System.IO; global using global::System.Linq; global using global::System.Net.Http; global using global::System.Net.Http.Json; global using global::System.Threading; global using global::System.Threading.Tasks; 也可以在 <!-- <ImplicitUsings>enable</ImplicitUsings> --> <ImplicitUsings>disable</ImplicitUsings> 2.1.5Change 3: No Startup class到了.NET 6,陪伴我们好几个版本至今的 对于一些大型项目来说,这两部分我们肯定不能就这样写在 当然,老版本的含有 2.2 关于Pipeline的一些知识点2.2.1Pipeline Sequence
2.2.2app.Run和app.Use
public static void Run(this IApplicationBuilder app, RequestDelegate handler); public delegate Task RequestDelegate(HttpContext context);
public static IApplicationBuilder Use(this IApplicationBuilder app, Func<HttpContext, Func<Task>, Task> middleware); 2.2.3app.Map和app.MapWhen这两个方法都是用于在 public static IApplicationBuilder Map(this IApplicationBuilder app, PathString pathMatch, Action<IApplicationBuilder> configuration) public static IApplicationBuilder MapWhen(this IApplicationBuilder app, Func<HttpContext, bool> predicate, Action<IApplicationBuilder> configuration) app.MapGet、app.MapPost、app.MapPut、app.Delete、app.MapMethods 在.NET 6中一个新增的特性叫做 到此这篇关于.NET 6开发TodoList应用实现系列背景的文章就介绍到这了,更多相关NET 6开发TodoList实现系列背景内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论