千家信息网

.NET 6开发TodoList应用怎么实现

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍".NET 6开发TodoList应用怎么实现",在日常操作中,相信很多人在.NET 6开发TodoList应用怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2025年01月18日.NET 6开发TodoList应用怎么实现

这篇文章主要介绍".NET 6开发TodoList应用怎么实现",在日常操作中,相信很多人在.NET 6开发TodoList应用怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答".NET 6开发TodoList应用怎么实现"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.列说明

选择TodoList的原因是这个项目足够简单,但是也足够去覆盖我希望覆盖到的知识点,对于读者来说,有以下一些建议的前置要求:

  • 需要会写C#,不需要.NET (Core)相关的开发经验。

  • 需要后端服务的开发经验,对基本的服务端相关特性有一定的认识。

  • 有对Clean Architecture的基本理解。

2.系列导航

2.1 使用.NET 6开发TodoList应用文章索引

附:.NET 6 Web API项目代码上的变化

2.1.1创建项目
mkdir ProjectName && cd ProjectNamedotnet new sln -n SampleApidotnet new project -f net6.0 -n SampleApi -o SampleApidotnet sln SampleApi.sln add SampleApi/SampleApi.csprojdotnet restoredotnet 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

顶级声明使得我们在编写Program类时可以不用再定义该类,省略Main函数定义,直接开始写方法体。编译器会在编译阶段为我们自动加上命名空间和相关定义。

2.1.4Change 2: Implicit using directives

隐式using指令是编译器根据项目类型,在编译阶段自动生成一个名为CompanyEmployees.GlobalUsings.g.cs的文件,

内容如下:

// 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;

也可以在CompanyEmployees.csproj工程配置文件中修改以下属性,禁用全局隐式using指令这一特性:

disable
2.1.5Change 3: No Startup class

到了.NET 6,陪伴我们好几个版本至今的ConfigureServices and Configure方法终于消失了,取而代之的是这两部分的配置都集中在了Program.cs中。曾经写过.NET Core WebAPI的小伙伴不难看出来现在应该写在哪里。

对于一些大型项目来说,这两部分我们肯定不能就这样写在Program.cs里面,后面将会想办法把这两部分单独拆开进行配置。

当然,老版本的含有Startup.cs的项目在.NET 6下打开没有任何问题。

2.2 关于Pipeline的一些知识点

2.2.1Pipeline Sequence
  • ExceptionHandler

  • HSTS

  • HttpsRedirection

  • Static Files

  • Routing

  • CORS

  • Authentication

  • Authorization

  • Custom Middlewares

  • Endpoint Configuration

2.2.2app.Run和app.Use

app.Run用于终止Pipeline的链式调用并向客户端返回

public static void Run(this IApplicationBuilder app, RequestDelegate handler);public delegate Task RequestDelegate(HttpContext context);

app.Use用于向Pipeline中插入一段逻辑作为链式调用的其中一个环节

public static IApplicationBuilder Use(this IApplicationBuilder app, Func, Task> middleware);
2.2.3app.Map和app.MapWhen

这两个方法都是用于在middleware的链式调用中进行分支Pipeline调用链处理。

public static IApplicationBuilder Map(this IApplicationBuilder app, PathStringpathMatch, Action configuration)  public static IApplicationBuilder MapWhen(this IApplicationBuilder app,Func predicate, Action configuration)

app.MapGet、app.MapPost、app.MapPut、app.Delete、app.MapMethods

在.NET 6中一个新增的特性叫做Minimal APIs,允许应用程序以这种形式响应客户端的请求,在快速构建微服务应用的过程中十分好用,在这个系列里,因为构建的是一个单体应用,这部分知识点我打算放到第二个系列关于微服务开发实践中去,看有没有更合适的场景去展示。

到此,关于".NET 6开发TodoList应用怎么实现"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

应用 开发 项目 方法 知识 学习 服务 编译 特性 知识点 部分 链式 配置 客户 指令 文件 文章 更多 版本 经验 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 买个游戏服务器多少钱 世界风互联网科技有限公司 当前网络安全存在的主要问题 火柴盒软件开发服务工作室 网络安全责任法是怎么规定的 完美竞技平台服务器进不去 2k22 登录不上服务器 网络安全周答题有奖励吗 外国的网络服务器 数据库系统工程师头像情侣 小学生网络安全信息ppt 南京联通软件开发待遇 服务器端每个角色使用一个线程 腾讯云服务器apache怎么用 腾讯防沉迷网络安全平台 电子网络安全知识小报 云开发小程序 服务器地址 vba 查看数据库日志 浙江项目软件开发销售 电脑ntp同步时钟服务器 梁猛网络安全 数据库配置与部署 软件开发转语言简历怎么写 虚拟机快照恢复影响数据库么 数据库为什么建不了 新乡市兆祺网络技术有限公司 高一学生有哪些网络安全教育 网络安全的表达形式 电脑数据库密码能改吗 软件开发工程师的工作职责
0