系列文章
- 基於 abp vNext 和 .NET Core 開發博客項目 - 使用 abp cli 搭建項目
- 基於 abp vNext 和 .NET Core 開發博客項目 - 給項目瘦身,讓它跑起來
- 基於 abp vNext 和 .NET Core 開發博客項目 - 完善與美化,Swagger登場
- 基於 abp vNext 和 .NET Core 開發博客項目 - 數據訪問和代碼優先
- 基於 abp vNext 和 .NET Core 開發博客項目 - 自定義倉儲之增刪改查
- 基於 abp vNext 和 .NET Core 開發博客項目 - 統一規范API,包裝返回模型
- 基於 abp vNext 和 .NET Core 開發博客項目 - 再說Swagger,分組、描述、小綠鎖
- 基於 abp vNext 和 .NET Core 開發博客項目 - 接入GitHub,用JWT保護你的API
- 基於 abp vNext 和 .NET Core 開發博客項目 - 異常處理和日志記錄
- 基於 abp vNext 和 .NET Core 開發博客項目 - 使用Redis緩存數據
- 基於 abp vNext 和 .NET Core 開發博客項目 - 集成Hangfire實現定時任務處理
- 基於 abp vNext 和 .NET Core 開發博客項目 - 用AutoMapper搞定對象映射
- 基於 abp vNext 和 .NET Core 開發博客項目 - 定時任務最佳實戰(一)
- 基於 abp vNext 和 .NET Core 開發博客項目 - 定時任務最佳實戰(二)
- 基於 abp vNext 和 .NET Core 開發博客項目 - 定時任務最佳實戰(三)
- 基於 abp vNext 和 .NET Core 開發博客項目 - 博客接口實戰篇(一)
- 基於 abp vNext 和 .NET Core 開發博客項目 - 博客接口實戰篇(二)
- 基於 abp vNext 和 .NET Core 開發博客項目 - 博客接口實戰篇(三)
- 基於 abp vNext 和 .NET Core 開發博客項目 - 博客接口實戰篇(四)
- 基於 abp vNext 和 .NET Core 開發博客項目 - 博客接口實戰篇(五)
- 基於 abp vNext 和 .NET Core 開發博客項目 - Blazor 實戰系列(一)
- 基於 abp vNext 和 .NET Core 開發博客項目 - Blazor 實戰系列(二)
- 基於 abp vNext 和 .NET Core 開發博客項目 - Blazor 實戰系列(三)
- 基於 abp vNext 和 .NET Core 開發博客項目 - Blazor 實戰系列(四)
- 基於 abp vNext 和 .NET Core 開發博客項目 - Blazor 實戰系列(五)
- 基於 abp vNext 和 .NET Core 開發博客項目 - Blazor 實戰系列(六)
- 基於 abp vNext 和 .NET Core 開發博客項目 - Blazor 實戰系列(七)
- 基於 abp vNext 和 .NET Core 開發博客項目 - Blazor 實戰系列(八)
- 基於 abp vNext 和 .NET Core 開發博客項目 - Blazor 實戰系列(九)
- 基於 abp vNext 和 .NET Core 開發博客項目 - 終結篇之發布項目
首先,默認咱們已經有了.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.Hosting
├── Meowv.Blog.Swagger
└── Meowv.Blog.ToolKits
編譯一下,全部生成成功,到這里算是用abp cli成功搭建一個屬於自己的項目,並且還做了響應的調整。
本章只是搭建了項目,后面將逐一分解,期待嗎,騷年?