前言
在微服务场景中,开发人员分配到不同的小组,系统会拆分为很多个微服务,有一点是,每个项目都需要单元测试,接口文档,WebAPI接口等,创建新项目这些都是重复的工作,而且还要保证各个项目结构的大体一致,这时就需要一个适用于企业内部的框架模板,类似于前端的脚手架,可以做到开箱即用,注重业务功能开发,提升工作效率。
简介
NET 命令行接口 (CLI) 工具是用于开发、生成、运行和发布 .NET 应用程序的跨平台工具链。
本次主要介绍的是 dotnet new 命令,可以通过这个命令创建我们的自定义模板,我们安装完.NET SDK后,本身自带了一些项目模板,可以通过 dotnet new --list
查看已经安装的模板。
接下来,我会介绍如何构建自定义的项目模板。
准备工作
首先,我们需要准备一个简单的项目模板,我们希望以后可以通过脚手架,自动为我们生成这些项目和文件,这里面可能包含了单元测试项目,WebAPI项目等。
你也可以在这里找到项目源代码,https://github.com/SpringLeee/Dy.Template
在本地创建 Dy.Template 文件夹,并在文件夹内创建 templates 文件夹(后边所有的模板文件都在这里), 这里我创建了一个解决方案,里面包含了3个项目,WebAPI,Test 和 Task,项目结构如下:
构建模板
在 templates 文件夹内,创建一个名为 ".template.config" 的文件夹(可以通过命令 mkdir .template.config 创建, 然后进入该文件夹,再创建一个名为 "template.json" 的新文件, 文件夹结构应如下所示:
然后修改配置文件如下:
{"$schema": "http://json.schemastore.org/template","author": "SpringLee","classifications": [ "Template" ],"name": "Dy.Template","identity": "Dy.Template", "shortName": "dy-template","tags": {"language": "C#" },"sourceName": "Template"
}
上面是一些基本的描述信息,需要注意的是 "sourceName" 属性,它相当于一个变量,我们通过这个属性,可以创建 Dy.Order.WebAPI, Dy.User.WebAPI 这样的项目,后边我会进行详细介绍。
打包模板
基础工作已经准备完成,我们还需要把项目打包,发布到Nuget.org 或者是公司的内部 Nuget Server,这样其他人才可以下载和安装这个模板。
你可能很熟悉在.NET 中对单个项目进行打包,比如类库,可以在VS中直接对项目使用右键打包,也可以使用dotnet pack
命令,不一样的是,我们需要打包的是整个项目结构,而不是单个项目。
我们在 Dy.Template 文件夹下,创建 template-pack.csproj
文件
修改内容如下:
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><PackageType>Template</PackageType><PackageVersion>1.0.0</PackageVersion><PackageId>Dy.Template</PackageId><Title>Dy.Template</Title><Authors>SpringLee</Authors><Description>Dy.Template</Description><PackageTags>dotnet-new;templates;Dy.Template</PackageTags><TargetFramework>netstandard2.0</TargetFramework><IncludeContentInPack>true</IncludeContentInPack><IncludeBuildOutput>false</IncludeBuildOutput><ContentTargetFolders>content</ContentTargetFolders><NoWarn>$(NoWarn);NU5128</NoWarn></PropertyGroup><ItemGroup><Content Include="templates\**\*" Exclude="templates\**\bin\**;templates\**\obj\**" /><Compile Remove="**\*" /></ItemGroup></Project>
我们指定了程序包的基础信息,版本ID, 描述信息,包含了 templates 文件夹下的所有文件,然后排除了 bin\ obj\ 文件夹的dll文件。
然后,运行 dotnet pack
命令进行打包, 你可以在 /bin/nuget/ 文件夹找到 生成的 nupkg 文件
在win10的应用商店(Microsoft Store)安装 Nuget Package Explore
我们把生成的 nupkg 文件 丢到 Nuget Package Explore
里查看,结构如下,包含了我们的 .config 配置文件,各个项目,解决方案。
最后,你可以把程序包推送到 nuget 服务器。
安装并使用
在终端中运行 dotnet new --install Dy.Template
命令安装,安装成功后,应该可以看到下边的输出,里边包含了我们的自定义模板
运行 dotnet new Dy.Template --name=Order
,--name 指定了变量值,它会自动帮我们生成 Order 项目,这很棒!
欢迎扫码关注我们的公众号 【全球技术精选】,专注国外优秀博客的翻译和开源项目分享。