首页 文章详情

.Net项目模板(Project Template)

DotNetCore实战 | 372 2021-04-11 22:57 0 0 0
UniSMS (合一短信)


你有没有这样的感觉,开启一个新项目时,总是做一堆体力活——项目的结构层次,常用日志库,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)。

四步就完成了一个项目模板的创建和测试,这里只是一个极简的例子,真正的模板项目要复杂的多,后续慢慢加大难度。


往期精彩回顾




【推荐】.NET Core开发实战视频课程 ★★★

.NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划

【.NET Core微服务实战-统一身份认证】开篇及目录索引

Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南)

.NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了

10个小技巧助您写出高性能的ASP.NET Core代码

用abp vNext快速开发Quartz.NET定时任务管理界面

在ASP.NET Core中创建基于Quartz.NET托管服务轻松实现作业调度

现身说法:实际业务出发分析百亿数据量下的多表查询优化

关于C#异步编程你应该了解的几点建议

C#异步编程看这篇就够了


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter