.Net項目模板(Project Template)


你有沒有這樣的感覺,開啟一個新項目時,總是做一堆體力活——項目的結(jié)構(gòu)層次,常用日志庫,OpenAPI庫,ORM庫,的引入,權(quán)限認(rèn)證方式選擇添加,配置文件重新歸置存放等等。公共框架的部分總是不變的,如果有個常用項目的模板就好了,可以一鍵創(chuàng)建,接下來直接寫業(yè)務(wù)就ok了。
這種場景還適合一些公司對源碼,項目,技術(shù)都有嚴(yán)格的要求,這時模板也能帶來便利性。
Project Template在.Net中是很好的支持的,并且實現(xiàn)自己的模板也不是那么困難。
先來個開胃菜吧,安裝完.net(core)的sdk后,可以在命令行上查看自己的現(xiàn)有項目模板。

我們的目標(biāo)是把自己的項目模板添加到這個列表里,然后用dotnet new 命令可以創(chuàng)建我們的項目了。
具體步驟:
1、創(chuàng)建一個控件臺項目,命名GSWCon,這時,就可以整理自己的項目層次和添加自己想的三方庫了。這里為了區(qū)分官方,只對輸出作了少許改變。
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在一個目錄下)創(chuàng)建.template.config文件夾,并且在這個文件夾中添加template.json文件,內(nèi)容如下:
{"$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"}
關(guān)于template.json文件的描述詳情,可參考http://json.schemastore.org/template,基本名稱就代碼了它的含義。
template.json文件就是對項目模板的配置,其中的sourceName就是項目名稱,當(dāng)我用這個項目生成自己的項目時,這個名稱會換成自己定義的項目名稱。
3、生成項目模板,用cmd(終端),進(jìn)入項目文件,刪除bin,obj文件夾(如果存在),然后執(zhí)行命令:dotnet new -i ./,這里就會看到自己的模板添加到了本地模板庫里了,結(jié)果如下:

4、測試模板,創(chuàng)建自己的項目,假如項目名稱叫ABC,那就創(chuàng)建一個文件夾ABC,cmd(終端)進(jìn)入該文件夾,執(zhí)行命令:dotnet new GSWCon,就會看到創(chuàng)建一個新的控制臺項目,打開項目,項目里所有的GSWCon都會替換成ABC,代碼和模板中的Program.js里的代碼是一樣的(GSWCon會被換成ABC)。
四步就完成了一個項目模板的創(chuàng)建和測試,這里只是一個極簡的例子,真正的模板項目要復(fù)雜的多,后續(xù)慢慢加大難度。
【推薦】.NET Core開發(fā)實戰(zhàn)視頻課程 ★★★
.NET Core實戰(zhàn)項目之CMS 第一章 入門篇-開篇及總體規(guī)劃
【.NET Core微服務(wù)實戰(zhàn)-統(tǒng)一身份認(rèn)證】開篇及目錄索引
Redis基本使用及百億數(shù)據(jù)量中的使用技巧分享(附視頻地址及觀看指南)
.NET Core中的一個接口多種實現(xiàn)的依賴注入與動態(tài)選擇看這篇就夠了
用abp vNext快速開發(fā)Quartz.NET定時任務(wù)管理界面
在ASP.NET Core中創(chuàng)建基于Quartz.NET托管服務(wù)輕松實現(xiàn)作業(yè)調(diào)度
現(xiàn)身說法:實際業(yè)務(wù)出發(fā)分析百億數(shù)據(jù)量下的多表查詢優(yōu)化
