温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

.NET6如何开发TodoList应用

发布时间:2021-12-27 12:29:32 来源:亿速云 阅读:164 作者:小新 栏目:开发技术

小编给大家分享一下.NET6如何开发TodoList应用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1.TodoList需求简介

首先明确一下我们即将开发的这个TodoList应用都需要完成什么功能,我不会一次性把所有的特性诸如允许用户登陆之类的需求全部写上,只是先列出最基本的功能性需求:

  • 我们可以维护一个TodoList

  • TodoList可以包含多个TodoItem

  • 对于TodoList,我们可以设置其名称

  • 对于每个TodoItem,我们可以设置其内容,超期时间,是否完成。

  • 对于所有实体,可以完成增删改查的操作。

2.开发工具

2.1.NET 6

.NET 6这个没什么好说的,按照官方说明下载安装好就可以了。

2.2Visual Studio Code

使用Visual Studio Code的原因是其免费,跨平台,功能足够用。虽然在智能补全上不如Visual StudioVisual 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后可以在地址栏上点击可用扩展标志,选择安装到本地,方便以后使用:

.NET6如何开发TodoList应用

打开以后的界面长这样:

.NET6如何开发TodoList应用

功能非常强大,测试Restful接口,GraphQL接口,实时通信接口(WebSocket/SSE/Socket.IO/MQTT)都可以,而且占用资源比Postman要低很多,颜值又高还免费……简直良心。

3.Clean Architecture简介

Clean Architecture是大神Robert C. Martin在自己的博客上发表的一篇关于如何组织应用程序结构和依赖关系来实现更好的独立、解耦的多层项目结构的方式,推荐大家有时间把这篇文章好好看一下。

经过长久的实践和演化,目前我个人觉得最简洁、使用起来最舒服的Clean Architecture结构是这样的:

.NET6如何开发TodoList应用

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接口查看项目是否运行成功:

.NET6如何开发TodoList应用

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

.NET6如何开发TodoList应用

以上是“.NET6如何开发TodoList应用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI