有多少次您開始一個新項目并想:“這個項目與那個非常相似”,我可以使用它的結構作為起點嗎?
對此,我想給大家介紹一下項目模闆。 更具體地說,我們将讨論自定義模闆。
讓我們從一些基本概念開始。
什麼是自定義模闆?
自定義模闆是一組預定義的檔案和代碼,可用作建立新項目或應用程式的起點。
它可以包括特定項目結構、類檔案和在特定類型的應用程式或程式設計場景中常用的其他資源。
模闆可用于快速設定具有一緻結構和常用功能的新項目,進而為開發人員節省時間和精力。
它主要由兩部分組成:
- 源檔案:是包含構成模闆的代碼和功能的檔案。 它們可以包括多種檔案類型,例如類、接口、控制器等。 所有這些檔案都是模闆正常運作所必需的。
- 配置檔案 (template.json):它包含模闆的中繼資料和設定。 它還包含模闆名稱、描述、圖示以及導出模闆時應包含的檔案等資訊。
現在,在我們一起了解什麼是自定義模闆及其結構之後,讓我們一起建構一個簡單的模闆。
建構自定義模闆
準備模闆包:
- 建立一個名為 templatepack 的項目,運作以下指令:dotnet new console -n template pack -o。
- 删除 program.cs 檔案。 該檔案未被目前模闆使用,是以我們可以安全地删除它。
- 将 templatepack.csproj 的内容替換為以下内容:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageType>Template</PackageType>
<PackageVersion>1.0</PackageVersion>
<PackageId>Basic.Template</PackageId>
<Title>Basic template</Title>
<Authors>William Paciaroni</Authors>
<Description>Templates to use when creating a basic web app.</Description>
<PackageTags>dotnet-new;templates;</PackageTags>
<TargetFramework>netstandard2.0</TargetFramework>
<IncludeContentInPack>true</IncludeContentInPack>
<IncludeBuildOutput>false</IncludeBuildOutput>
<ContentTargetFolders>content</ContentTargetFolders>
<NoWarn>$(NoWarn);NU5128</NoWarn>
<NoDefaultExcludes>true</NoDefaultExcludes>
</PropertyGroup>
<ItemGroup>
<Content Include="templates\**\*" Exclude="templates\**\bin\**;templates\**\obj\**" />
<Compile Remove="**\*" />
</ItemGroup>
</Project>
建立模闆配置:
- 在 templatepack 項目檔案夾中建立一個檔案夾 templates。
- 在模闆檔案夾中建立 .template.config 檔案夾。
- 在 .template.config 中建立 template.json 檔案。
- 将 template.json 的内容替換為以下内容:
{
"author": "William Paciaroni <[email protected]>",
"classifications": [ "WebApi" ],
"description": "",
"name": "Basic template to create simple web app",
"defaultName": "Basic Template",
"identity": "BasicTemplate",
"groupIdentity": "BasicTemplate",
"tags": {
"language": "C#",
"type": "project"
},
"shortName": "basic-template",
"sourceName": "Bsctmplt",
"guids": [],
}
建立我們的自定義模闆:
- 讓我們建立一個名為 Bsctmplt 的新解決方案
-
将以下項目添加到解決方案中:
1. Bsctmplt.WebApi: Web App工程。 這是我們的啟動項目。 它包含控制器和契約。
2. Bsctmplt.Dto: 包含項目的所有DTO。
3. Bsctmplt.BusinessLayer:包含業務邏輯。
4. Bsctmplt.Entity: 這是我們添加新實體類的地方。
5. Bsctmplt.EntityFramework: 它包含DbContext。
- 之後我們建立了我們的解決方案結構,是時候打包它了。 進入 templatepack 項目檔案夾并運作以下指令:dotnet pack
- 安裝我們的自定義模闆運作:dotnet new install dotnet new install bin/Debug/Basic.Template.1.0.0.nupkg
如何使用:
- 建立将包含我們的新項目的檔案夾
- 在其中運作指令 dotnet new basic-template。