首先,預設我們們已經有了.net core 3.1的開發環境,如果你沒有,快去下載... https://dotnet.microsoft.com/download
由於專案是基於abp vNext開發的,所以開發之前建議去擼一遍abp官方文件,https://docs.abp.io/en/abp/latest/
建立專案有很多種方式:
- 第一種,純手擼,使用vs手動建立新專案
- 第二種,藉助abp模板直接傻瓜式下載,地址:http://abp.io/get-started
- 第三種,abp cli(推薦)
abp cli
abp cli是使用ABP框架啟動新解決方案的最快方法,那麼前提是你要安裝啊。
dotnet tool install -g Volo.Abp.Cli
如果你的版本比較低,使用下面命令進行更新
dotnet tool update -g Volo.Abp.Cli
更多使用方法,請參考 https://docs.abp.io/en/abp/latest/CLI
abp new
終於進入主題了,使用命令
abp new <solution-name>
建立部落格專案
預設會生成兩個專案,一個aspnet-core,一個react-native。暫時幹掉不需要專案吧,雖然react-native也很香,但是現在先忽略它。
然後將aspnet-core資料夾下所有檔案剪下至我們的根目錄,於是就變成下面這個樣子。
至此,基於abp cli建立專案完成,用VS2019開啟看看吧。
此時整個目錄結構是這樣嬸的~
blog_tutorial
├── common.props
├── Meowv.Blog.sln
├── Meowv.Blog.sln.DotSettings
├── src
│ ├── Meowv.Blog.Application
│ ├── Meowv.Blog.Application.Contracts
│ ├── Meowv.Blog.DbMigrator
│ ├── Meowv.Blog.Domain
│ ├── Meowv.Blog.Domain.Shared
│ ├── Meowv.Blog.EntityFrameworkCore
│ ├── Meowv.Blog.EntityFrameworkCore.DbMigrations
│ ├── Meowv.Blog.HttpApi
│ ├── Meowv.Blog.HttpApi.Client
│ └── Meowv.Blog.Web
└── test
├── Meowv.Blog.Application.Tests
├── Meowv.Blog.Domain.Tests
├── Meowv.Blog.EntityFrameworkCore.Tests
├── Meowv.Blog.HttpApi.Client.ConsoleTestApp
├── Meowv.Blog.TestBase
└── Meowv.Blog.Web.Tests
由於是基於abp開發,所有預設的專案幫我們引用了一些非常強大但是我們用不到或者不想用的功能,進一步優化專案結構,刪掉不要的引用,美化美化。
- 先幹掉test資料夾吧,專案剛搭建測試個毛毛啊?幹掉不代表測試不重要
- 幹掉Meowv.Blog.sln.DotSettings,目前來說沒啥亂用
- 新增了一個LICENSE
- 再新增一個README.md檔案
- 再新增一個.github資料夾,請暫時忽略它,這個是GitHub Action所需
- 幹掉src\Meowv.Blog.DbMigrator,有Meowv.Blog.EntityFrameworkCore.DbMigrations就夠了
- 幹掉src\Meowv.Blog.HttpApi.Client
- 在src目錄下新增專案Meowv.Blog.Application.Caching,用來處理應用服務快取
- 在src目錄下新增專案Meowv.Blog.BackgroundJobs,用來處理後臺定時任務
- 在src目錄下新增專案Meowv.Blog.Swagger,這裡用來編寫Swagger擴充套件、Filter等
- 在src目錄下新增專案Meowv.Blog.ToolKits,這裡放公共的工具類、擴充套件方法
- 修改專案名稱Meowv.Blog.Web為Meowv.Blog.HttpApi.Hosting,為了完美同時也可以去修改一下資料夾的名稱哦
- 在解決方案中新建解決方案資料夾solution-items,然後編輯Meowv.Blog.sln檔案,修改Meowv.Blog.Web為Meowv.Blog.HttpApi.Hosting,再新增以下程式碼
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "solution-items", "solution-items", "{731730B9-645C-430A-AB05-3FC2BED63614}"
ProjectSection(SolutionItems) = preProject
.gitattributes = .gitattributes
.gitignore = .gitignore
common.props = common.props
LICENSE = LICENSE
README.md = README.md
EndProjectSection
EndProject
現在整個專案變成了下面這個樣子
blog_tutorial
├── common.props
├── LICENSE
├── Meowv.Blog.sln
├── README.md
└── src
├── Meowv.Blog.Application
├── Meowv.Blog.Application.Caching
├── Meowv.Blog.Application.Contracts
├── Meowv.Blog.BackgroundJobs
├── Meowv.Blog.Domain
├── Meowv.Blog.Domain.Shared
├── Meowv.Blog.EntityFrameworkCore
├── Meowv.Blog.EntityFrameworkCore.DbMigrations
├── Meowv.Blog.HttpApi
├── Meowv.Blog.HttpApi.Client
├── Meowv.Blog.HttpApi.Hosting
├── Meowv.Blog.Swagger
└── Meowv.Blog.ToolKits
編譯一下,全部生成成功,到這裡算是用abp cli成功搭建一個屬於自己的專案,並且還做了響應的調整。
本章只是搭建了專案,後面將逐一分解,期待嗎,騷年?