你有没有这样的感觉,开启一个新项目时,总是做一堆体力活——项目的结构层次,常用日志库,OpenAPI库,ORM库,的引入,权限认证方式选择添加,配置文件重新归置存放等等。公共框架的部分总是不变的,如果有个常用项目的模板就好了,可以一键创建,接下来直接写业务就ok了。
这种场景还适合一些公司对源码,项目,技术都有严格的要求,这时模板也能带来便利性。
Project Template在.Net中是很好的支持的,并且实现自己的模板也不是那么困难。
先来个开胃菜吧,安装完.net(core)的sdk后,可以在命令行上查看自己的现有项目模板。
命令:
> dotnet new -l
结果:
我们的目标是把自己的项目模板添加到这个列表里,然后用dotnet new 命令可以创建我们的项目了。
具体步骤:
1、创建一个控件台项目,命名GSWCon,这时,就可以整理自己的项目层次和添加自己想的三方库了。这里为了区分官方,只对输出作了少许改变。
using System;
using Newtonsoft;
using Newtonsoft.Json;
using static System.Console;
namespace GSWCon
{
class Program
{
static void Main(string[] args)
{
var template = new Template
{
Name = "GSWCon",
Author = "桂素伟",
Description = "第一个项目模板,控制台项目,引入了Newtonsoft库!",
CreateTime = DateTime.Parse("2021-04-06 08:00:00")
};
WriteLine(JsonConvert.SerializeObject(template, Formatting.Indented));
}
}
class Template
{
public string Name { get; set; }
public string Author { get; set; }
public string Description { get; set; }
public DateTime CreateTime { get; set; }
}
}
2、添加Template文件,在项目目录下(与csproj在一个目录下)创建.template.config文件夹,并且在这个文件夹中添加template.json文件,内容如下:
{
"$schema": "http://json.schemastore.org/template",
"author": "GuiSuWei",
"classifications": [ "Common", "Console","GuiSuWei"],
"identity": "GSW Console",
"name": "GSW Console",
"shortName": "GSWCon",
"tags": {
"language": "C#",
"type": "project"
},
"sourceName":"GSWCon"
}
关于template.json文件的描述详情,可参考http://json.schemastore.org/template,基本名称就代码了它的含义。
template.json文件就是对项目模板的配置,其中的sourceName就是项目名称,当我用这个项目生成自己的项目时,这个名称会换成自己定义的项目名称。
3、生成项目模板,用cmd(终端),进入项目文件,删除bin,obj文件夹(如果存在),然后执行命令:dotnet new -i ./,这里就会看到自己的模板添加到了本地模板库里了,结果如下:
4、测试模板,创建自己的项目,假如项目名称叫ABC,那就创建一个文件夹ABC,cmd(终端)进入该文件夹,执行命令:dotnet new GSWCon,就会看到创建一个新的控制台项目,打开项目,项目里所有的GSWCon都会替换成ABC,代码和模板中的Program.js里的代码是一样的(GSWCon会被换成ABC)。
四步就完成了一个项目模板的创建和测试,这里只是一个极简的例子,真正的模板项目要复杂的多,后续慢慢加大难度。