欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.NET 6開(kāi)發(fā)TodoList應(yīng)用實(shí)現(xiàn)結(jié)構(gòu)搭建

 更新時(shí)間:2021年12月27日 10:38:30   作者:CODE4NOTHING  
這篇文章主要介紹了.NET 6開(kāi)發(fā)TodoList應(yīng)用實(shí)現(xiàn)結(jié)構(gòu)搭建,上一篇我們講解了實(shí)現(xiàn)系列背景 ,今天繼續(xù)來(lái)講講.NET 6開(kāi)發(fā)TodoList并且實(shí)現(xiàn)結(jié)構(gòu)搭建,更多詳細(xì)內(nèi)容剛興趣得小伙伴可以來(lái)參考一下下面文章得具體內(nèi)容

往期學(xué)習(xí):

.NET 6開(kāi)發(fā)TodoList應(yīng)用實(shí)現(xiàn)系列背景

1.TodoList需求簡(jiǎn)介

首先明確一下我們即將開(kāi)發(fā)的這個(gè)TodoList應(yīng)用都需要完成什么功能,我不會(huì)一次性把所有的特性諸如允許用戶(hù)登陸之類(lèi)的需求全部寫(xiě)上,只是先列出最基本的功能性需求:

  • 我們可以維護(hù)一個(gè)TodoList。
  • TodoList可以包含多個(gè)TodoItem
  • 對(duì)于TodoList,我們可以設(shè)置其名稱(chēng)
  • 對(duì)于每個(gè)TodoItem,我們可以設(shè)置其內(nèi)容,超期時(shí)間,是否完成。
  • 對(duì)于所有實(shí)體,可以完成增刪改查的操作。

2.開(kāi)發(fā)工具

2.1.NET 6

.NET 6這個(gè)沒(méi)什么好說(shuō)的,按照官方說(shuō)明下載安裝好就可以了。

2.2Visual Studio Code

使用Visual Studio Code的原因是其免費(fèi),跨平臺(tái),功能足夠用。雖然在智能補(bǔ)全上不如Visual Studio、Visual Studio for Mac或者Rider強(qiáng)大,但是因?yàn)榭催@篇文章的你可能用不同的系統(tǒng),不同的工具,所以我還是決定用所有平臺(tái)都免費(fèi)并且表現(xiàn)一致的IDE來(lái)進(jìn)行演示,你可以任選一個(gè)自己已有的IDE進(jìn)行開(kāi)發(fā)。

當(dāng)然為了順利的使用VScode開(kāi)發(fā).NET 6 Web API項(xiàng)目,有一些擴(kuò)展應(yīng)用也是必須要安裝的,在VSCode的Extension中搜索并安裝以下擴(kuò)展ID:

  • ms-dotnettools.csharp - 由OmniSharp提供的VSCode開(kāi)發(fā)調(diào)試C#項(xiàng)目的必選項(xiàng)。
  • ms-azuretools.vscode-docker - Docker擴(kuò)展。

2.3Hoppscotch

大家可能對(duì)這個(gè)工具名字比較陌生,這是用于對(duì)Web API項(xiàng)目進(jìn)行本地測(cè)試的工具。大家更熟悉Postman,而這款工具的前身叫做Postwoman,現(xiàn)在更名為Hoppscotch,使用Chrome內(nèi)核的瀏覽器打開(kāi)Hoppscotch后可以在地址欄上點(diǎn)擊可用擴(kuò)展標(biāo)志,選擇安裝到本地,方便以后使用:

打開(kāi)以后的界面長(zhǎng)這樣:

功能非常強(qiáng)大,測(cè)試Restful接口,GraphQL接口,實(shí)時(shí)通信接口(WebSocket/SSE/Socket.IO/MQTT)都可以,而且占用資源比Postman要低很多,顏值又高還免費(fèi)……簡(jiǎn)直良心。

3.Clean Architecture簡(jiǎn)介

Clean Architecture是大神Robert C. Martin在自己的博客上發(fā)表的一篇關(guān)于如何組織應(yīng)用程序結(jié)構(gòu)和依賴(lài)關(guān)系來(lái)實(shí)現(xiàn)更好的獨(dú)立、解耦的多層項(xiàng)目結(jié)構(gòu)的方式,推薦大家有時(shí)間把這篇文章好好看一下。

經(jīng)過(guò)長(zhǎng)久的實(shí)踐和演化,目前我個(gè)人覺(jué)得最簡(jiǎn)潔、使用起來(lái)最舒服的Clean Architecture結(jié)構(gòu)是這樣的:

4.搭建解決方案結(jié)構(gòu)

# 創(chuàng)建解決方案目錄
mkdir TodoList && cd TodoList

# 創(chuàng)建解決方案
dotnet new sln -n TodoList

# 按照clean architecture的項(xiàng)目結(jié)構(gòu),創(chuàng)建WebApi項(xiàng)目以及classlib項(xiàng)目
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的結(jié)構(gòu)和依賴(lài)關(guān)系,設(shè)置項(xiàng)目間的引用
# Application只依賴(lài)于Domain
dotnet add src/TodoList.Application/TodoList.Application.csproj reference src/TodoList.Domain/TodoList.Domain.csproj
# Infrastructure只依賴(lài)于Application
dotnet add src/TodoList.Infrastructure/TodoList.Infrastructure.csproj reference src/TodoList.Application/TodoList.Application.csproj
# Api依賴(lài)于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

# 將所有項(xiàng)目添加到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.運(yùn)行

在終端定位到當(dāng)前解決方案目錄里運(yùn)行:

$ 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項(xiàng)目自帶的WeatherForecast接口查看項(xiàng)目是否運(yùn)行成功:

項(xiàng)目結(jié)構(gòu)到這里就搭建完成了,我們可以刪除Api項(xiàng)目中的示例WeatherForecast相關(guān)的文件,以及三個(gè)類(lèi)庫(kù)項(xiàng)目中的Class1.cs文件。最終的項(xiàng)目結(jié)構(gòu)長(zhǎng)這樣:

到此這篇關(guān)于.NET 6開(kāi)發(fā)TodoList應(yīng)用實(shí)現(xiàn)結(jié)構(gòu)搭建的文章就介紹到這了,更多相關(guān).NET 6開(kāi)發(fā)TodoList實(shí)現(xiàn)結(jié)構(gòu)搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論