首先,預設咱們已經有了.net core 3.1的開發環境,如果你沒有,快去下載... https://dotnet.microsoft.com/download 由於項目是基於abp vNext開發的,所以開發之前建議去擼一遍abp官方文檔,https://docs.abp.io/en/abp/l ...
首先,預設咱們已經有了.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成功搭建一個屬於自己的項目,並且還做了響應的調整。
本章只是搭建了項目,後面將逐一分解,期待嗎,騷年?
開源地址:https://github.com/Meowv/Blog/tree/blog_tutorial