前言
在微服務架構盛行的時代信殊,一言不合就新建一個服務炬称,雖然搭建服務并沒什么難度,但不可避免的是每個人搭建出來的架子會存在差異涡拘,這很合理玲躯,因為每個開發(fā)者的個人風格、工作經(jīng)驗都不一樣鳄乏,難免認為自己喜歡的才是最好的跷车。另一方面,如果需要較頻繁搭建服務橱野,這些重復而沒難度的操作就顯得浪費時間朽缴,而且每次手動處理總可能存在一些細節(jié)上的失誤,出現(xiàn)異常然后花時間解決更得不償失水援。
面對以上一些問題不铆,擁有一個符合自己團隊的項目模板就顯得比較重要了,這篇文章主要介紹在 ASP.NET 如果自定義項目模板裹唆。
內置的項目模板
在 VS 中,新建項目時我們都需要先選項目類型只洒,這些類型選項本質上是內置的項目模板许帐,不同類型對應不同的項目代碼結構。
通過命令查看當前有的項目模板:
dotnet new -h
以上是內置的一些項目模板毕谴,如 console
成畦、classlib
、mvc
涝开、webapi
等應該都是平時使用比較多的循帐。
創(chuàng)建項目模板
-
搭建項目 (這里是只是 Demo 例子,實際根據(jù)自己的項目要求自定義項目結構)
DemoService新建一個 .NET Core Web API 項目(DemoService.API) 和 .NET Standard 類庫(DemoService.Core)舀武;
DemoService.API 引用 DemoService.Core拄养;
DemoService.API 添加 Swashbuckle.AspNetCore 生成 Swager 文檔的引用;
-
DemoService.Core 添加 ServiceStack.OrmLite.SqlServer 數(shù)據(jù)庫操作的 ORM 庫引用银舱;
這一步和搭建普通的項目沒任何區(qū)別瘪匿,搭建完成后可測試看看效果。
-
添加模板配置
在解決方案 .sln 所在的目錄下創(chuàng)建模板配置文件夾
.template.config
寻馏,并在.template.config
文件夾下創(chuàng)建template.json
文件棋弥,編輯template.json
,輸入以下配置:{ "$schema": "http://json.schemastore.org/template", "author": "Me", "classifications": [ "micro", "webapi" ], "identity": "DemoService", "name": "DemoService", "shortName": "swa", "tags": { "language": "C#", "type": "project" }, "sourceName": "DemoService", "preferNameDirectory":"true" }
配置說明:
- author:模板作者诚欠,必填
- classifications:模板分類顽染,必填
- name:模板名稱漾岳,當使用
dotnet new
創(chuàng)建項目時,指定的模板名稱粉寞,必填 - identity:模板唯一名稱尼荆,必填
- shortName:模板簡短名稱,必填
- tags:模板標簽
- sourceName:指定一個字符串仁锯,當使用
dotnet new
帶 -n 參數(shù)時耀找,-n 參數(shù)的值會替換sourceName
指定的字符串。 - preferNameDirectory:是否生成相同名稱的目錄业崖,可選野芒。
-
安裝模板
dotnet new -i <PATH> // 當前目錄下:dotnet new -i .\
DemoService 模板安裝
從模板創(chuàng)建項目
模板安裝成功后,我們可以通過 dotnet new
創(chuàng)建新項目双炕,在存放新項目的目錄下執(zhí)行如下命令:
dotnet new swa -n UserService
swa
為 DemoService
的 shortName
狞悲,-n
后的 UserService
將替換 DemoService
名,這樣一條命令 UserService
服務的基礎架子就好了妇斤。