您现在的位置是:网站首页> 编程资料编程资料
.NET 6开发TodoList应用实现结构搭建_实用技巧_
2023-05-24
362人已围观
简介 .NET 6开发TodoList应用实现结构搭建_实用技巧_
往期学习:
1.TodoList需求简介
首先明确一下我们即将开发的这个TodoList应用都需要完成什么功能,我不会一次性把所有的特性诸如允许用户登陆之类的需求全部写上,只是先列出最基本的功能性需求:
- 我们可以维护一个
TodoList。 TodoList可以包含多个TodoItem。- 对于
TodoList,我们可以设置其名称 - 对于每个
TodoItem,我们可以设置其内容,超期时间,是否完成。 - 对于所有实体,可以完成增删改查的操作。
2.开发工具
2.1.NET 6
.NET 6这个没什么好说的,按照官方说明下载安装好就可以了。
2.2Visual Studio Code
使用Visual Studio Code的原因是其免费,跨平台,功能足够用。虽然在智能补全上不如Visual Studio、Visual Studio for Mac或者Rider强大,但是因为看这篇文章的你可能用不同的系统,不同的工具,所以我还是决定用所有平台都免费并且表现一致的IDE来进行演示,你可以任选一个自己已有的IDE进行开发。
当然为了顺利的使用VScode开发.NET 6 Web API项目,有一些扩展应用也是必须要安装的,在VSCode的Extension中搜索并安装以下扩展ID:
ms-dotnettools.csharp- 由OmniSharp提供的VSCode开发调试C#项目的必选项。ms-azuretools.vscode-docker-Docker扩展。
2.3Hoppscotch
大家可能对这个工具名字比较陌生,这是用于对Web API项目进行本地测试的工具。大家更熟悉Postman,而这款工具的前身叫做Postwoman,现在更名为Hoppscotch,使用Chrome内核的浏览器打开Hoppscotch后可以在地址栏上点击可用扩展标志,选择安装到本地,方便以后使用:

打开以后的界面长这样:

功能非常强大,测试Restful接口,GraphQL接口,实时通信接口(WebSocket/SSE/Socket.IO/MQTT)都可以,而且占用资源比Postman要低很多,颜值又高还免费……简直良心。
3.Clean Architecture简介
Clean Architecture是大神Robert C. Martin在自己的博客上发表的一篇关于如何组织应用程序结构和依赖关系来实现更好的独立、解耦的多层项目结构的方式,推荐大家有时间把这篇文章好好看一下。
经过长久的实践和演化,目前我个人觉得最简洁、使用起来最舒服的Clean Architecture结构是这样的:

4.搭建解决方案结构
# 创建解决方案目录 mkdir TodoList && cd TodoList # 创建解决方案 dotnet new sln -n TodoList # 按照clean architecture的项目结构,创建WebApi项目以及classlib项目 dotnet new webapi -f net6.0 -n TodoList.Api -o ./src/TodoList.Api dotnet new classlib -f net6.0 -n TodoList.Application -o ./src/TodoList.Application dotnet new classlib -f net6.0 -n TodoList.Domain -o ./src/TodoList.Domain dotnet new classlib -f net6.0 -n TodoList.Infrastructure -o ./src/TodoList.Infrastructure # 按照clean architecture的结构和依赖关系,设置项目间的引用 # Application只依赖于Domain dotnet add src/TodoList.Application/TodoList.Application.csproj reference src/TodoList.Domain/TodoList.Domain.csproj # Infrastructure只依赖于Application dotnet add src/TodoList.Infrastructure/TodoList.Infrastructure.csproj reference src/TodoList.Application/TodoList.Application.csproj # Api依赖于Application和Infrastructure dotnet add src/TodoList.Api/TodoList.Api.csproj reference src/TodoList.Application/TodoList.Application.csproj dotnet add src/TodoList.Api/TodoList.Api.csproj reference src/TodoList.Infrastructure/TodoList.Infrastructure.csproj # 将所有项目添加到sln上 dotnet sln TodoList.sln add src/TodoList.Api/TodoList.Api.csproj dotnet sln TodoList.sln add src/TodoList.Application/TodoList.Application.csproj dotnet sln TodoList.sln add src/TodoList.Domain/TodoList.Domain.csproj dotnet sln TodoList.sln add src/TodoList.Infrastructure/TodoList.Infrastructure.csproj
5.运行
在终端定位到当前解决方案目录里运行:
$ dotnet restore Determining projects to restore... Restored /Users/yu.li1/Projects/asinta/blogs/cnblogs/TodoList/src/TodoList.Application/TodoList.Application.csproj (in 206 ms). Restored /Users/yu.li1/Projects/asinta/blogs/cnblogs/TodoList/src/TodoList.Infrastructure/TodoList.Infrastructure.csproj (in 206 ms). Restored /Users/yu.li1/Projects/asinta/blogs/cnblogs/TodoList/src/TodoList.Api/TodoList.Api.csproj (in 306 ms). 1 of 4 projects are up-to-date for restore. $ dotnet run --project src/TodoList.Api/TodoList.Api.csproj Building... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:7039 info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:5050 info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development info: Microsoft.Hosting.Lifetime[0] Content root path: /Users/yu.li1/Projects/asinta/blogs/cnblogs/TodoList/src/TodoList.Api/
使用Hoppscotch使用WebAPI项目自带的WeatherForecast接口查看项目是否运行成功:

项目结构到这里就搭建完成了,我们可以删除Api项目中的示例WeatherForecast相关的文件,以及三个类库项目中的Class1.cs文件。最终的项目结构长这样:

到此这篇关于.NET 6开发TodoList应用实现结构搭建的文章就介绍到这了,更多相关.NET 6开发TodoList实现结构搭建内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
- .NET 6开发TodoList应用之实现查询分页
- .NET 6开发TodoList应用之实现ActionFilter
- .NET 6开发TodoList应用之实现接口请求验证
- .NET 6开发TodoList应用之实现DELETE请求与HTTP请求幂等性
- .NET 6开发TodoList应用之实现PUT请求
- .NET 6开发TodoList应用之实现全局异常处理
- .NET 6开发TodoList应用之使用AutoMapper实现GET请求
- .NET 6开发TodoList应用之实现Repository模式
- .NET 6开发TodoList应用之使用MediatR实现POST请求
- .NET 6开发TodoList应用引入数据存储
- .NET 6开发TodoList应用引入第三方日志库
- .NET 6开发TodoList应用实现系列背景
- 使用.NET 6开发TodoList应用之引入数据存储的思路详解
- 使用.NET 6开发TodoList应用之领域实体创建原理和思路
- .NET 6开发TodoList应用之请求日志组件HttpLogging介绍
相关内容
- .NET 6开发TodoList应用实现系列背景_实用技巧_
- 浅析.netcore中的Configuration具体使用_实用技巧_
- Visual Studio 2022智能辅助编码介绍_实用技巧_
- 正确使用dotnet-*工具的方法_实用技巧_
- ASP.NET Core中Startup类、Configure()方法及中间件详解_基础应用_
- 详解Asp.net 5中的ApplicationBuilder_基础应用_
- ASP.NET Core的中间件与管道介绍_基础应用_
- 详解ASP.NET Core中间件Middleware_基础应用_
- ASP.NET Core命名空间System.Text.Encodings.Web介绍_基础应用_
- .Net Core依赖注入IOC和DI介绍_实用技巧_
