首页 > 作文

.NET 6开发TodoList应用实现系列背景

更新时间:2023-04-04 07:21:40 阅读: 评论:0

前言:

想到要写这样一个系列博客,初衷有两个:一是希望通过一个实践项目,将.net 6 webapi开发的基础知识串联起来,帮助那些想要入门.net 6服务眼部小细纹端开发的朋友们快速上手,对使用.net 6开发后端服务的技术全貌有一个基本的认识和掌握,顺便把自己的技能树检查一遍;二是希望为国内的.net环境有一些小小的帮助,最早我自己是做c#桌面应用出身的,但是随着互联网产业的繁盛和微软早年间的固执,使得国内的.net开发环境收缩到几个固定的领域,以致于很多家庭教育活动方案人今天依然认为c#和.net不适合做大型的企业级应用,这个观念需要改变了。我无意比较技术和语言之间的好坏,只是更愿意看到国内的技术环境也能呈现出百家争鸣的状态。经过微软这么多年的改变和进步,.net 6是一个很优秀的框架,这一点自从我最开始接触.net core 2起一年一年进化到现在,就深切地感受到,那好东西就拿出来和大家分享一下。

1.列说明

在这个系列博客中,我将会使用.net 6从头开始一步一步开发一个todolist单体应用,在这个过程中尽可能将多的知识点独立成每篇文章,最后将应用通过docker进行打包,并使用githubactionazure container instance服务实现ci/cd。

选择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 rvices to the container.builder.rvices.addcontrollers();builder.rvices.addendpointsapiexplorer();builder.rvices.addswaggergen();var app = builder.build();// configure the http request pipeline.if (app.environment.isdevelopment()){    app.uswagger();    app.uswaggerui();}app.uhttpsredirection();app.uauthorization();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的文件,

内容如下:

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

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

<!-- <implicitusings>enable</implicitusings> --><implicitusings>disable</implicitusings>

2.1.5change 3: no startup class

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

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

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

2.2 关于pipeline的一些知识点

2.2.1pipeline quence

exceptionhandlerhstshttpsredirectionstatic filesroutingcorsauthenticationauthorizationcustom middlewarendpoint configuration

2.2.2app.run和app.u

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

public static void run(this iapplicationbuilder app, requestdelegate handler);public delegate task requestdelegate(httpcontext context);

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

public static iapplicationbuilder u(this iapplicationbuilder app, func<httpcontext,func<task>, task> middleware);

2.2.3app.map和app.mapwhen

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

public static iapplicationbuilder map(this iapplicationbuilder app, pathstringpathmatch, 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中一个新增的特性叫做minimal apis,允许应用程序以这种形式响应客户端的请求,在快速构建微服务应用的过程中十分好用,在这个系列里,因为构建的是一个单体应用,这部分知识点我打算放到第二个系列关于微服务开发实践中去,看有没有更合适的场景去展示。

到此这篇关于.net 6开发todolist应用实现系列背景的文章就介绍到这了,更多相关net 6开发todolist实现系列背景内容请搜索www.88755孤独造句1.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 07:21:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/247ce77573e4abfb3ec6a87dc541702f.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:.NET 6开发TodoList应用实现系列背景.doc

本文 PDF 下载地址:.NET 6开发TodoList应用实现系列背景.pdf

标签:链式   项目   系列   知识点
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图