.Net项目模板(Project Template)

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php导出数据库的指定表数据,MYSQL教程mysql数据库导出指定表数据的方法

《MYSQL教程mysql数据库导出指定表数据的方法》要点:本文介绍了MYSQL教程mysql数据库导出指定表数据的方法,希望对您有用。如果有疑问,可以联系我们。导读:linux下导出mysql中指定表数据 :MYSQLdump -uroot -p databas…

谈通过测试与失败测试

在软件测试技术中,现有的测试方法、测试技术中均未提及到通过测试与失败测试。 而在实际项目测试过程中,很多项目组却再应用该方法。虽然该方法被采用,但是很多人对通过测试与失败测试理解并不透侧,在实际使用过程中并未按统一的标…

100个微信小程序的源码公开分享

现在微信小程序越来越火,小编一直有意识地收集微信小程序源码,至今已经拥有100个小程序的源码,有gank、LOL战绩查询、百度小说、豆瓣电影、手势解锁等。现在,小编准备将这些资料免费分享给大家!gankLOL战绩查询百度小说…

NET问答:什么场景下应该选择 struct 而不是 class ?

咨询区 Esteban Araya:MSDN 上说当你需要一个轻量级对象时应该选择 struct,说的含含糊糊,真的不知道有哪些场景下优先选择 struct 而不是 class。可能有些人已经忘了。struct 可以有方法。struct 不能被继承。我非常明白 struct 和 class 在技…

php类的的属性值,PHP面向对象之旅:类的属性

在PHP5中,在属性定义可以不设置初值,或者赋予以下红色类型的初值。PHP中简单类型有8种,分别是:数值类型boolean 布尔类型integer 整型float 浮点型,也称为 double 双精度浮点型string 字符串复合类型array 数组object …

淘宝快捷通道——百汇家园

百汇家园 是一个便捷的通道,喜欢网购的同学,都可以在百汇家园了解到所需要的相关 产品的信息。我们的商品分为15个大类,包含了淘宝所有的商品,满足你的购物 需求。 百汇家园通过与淘宝的网店合作,将淘宝优质商品&#…

家里在一二线城市有很多套房是什么体验?答案太颠覆!

作者:匿名来源:知乎(图片:网络)“家里在一二线城市有很多套房是怎么的一种体验?”这是知乎上一个浏览超600万的话题。其中一个答案非常颠覆,获得高赞。作者的观点是否正确见仁见智,但…

希尔排序听起来有点难,其实很简单

前言直接插入排序当待排序数据的顺序和期望排序结果相反时,排序效率是最差的;上次聊到的折半插入排序只是减少有序列表的比较次数,而对于整体数据遍历次数还是没有得到优化;接下来要说的希尔排序就是针对整体数据进行优化&#xf…

中小企业信息化,“轻”和“快”是方向

中小企业有着自身的特殊性,在观念改变和专业服务产品到位后,中小企业轻装上阵,实现高效办公、快捷管理、快速发展的愿望并不遥远。 时间刚过早上七点,韩信吃完早餐,便坐到沙发上看起了新闻,查看手机日历也是…

php 下拉表单,PHP表单和填充下拉列表问题

我正尝试连接到MySQL并将数据填充到Dropdown。这是我的代码。某些原因下拉列表没有被填充。请建议。这是代码。$mysqli_connection new mysqli($db_host, $db_username, $db_password, $db_database);if (isset($_POST[Submit_1])) {require submit.php;require validate.php;…

等我敲完这行代码,就和你离婚!

工作是高端大气上档次,工资是低调奢华接地气!我们叫做“程序猿”,也叫“攻城狮”!但是往往城还没攻下来,我们的头发就先掉下来!我们最喜欢听的一句话就是☟段子一“等我敲完这行代码,就和你离婚…

凭什么还不自信!!

前几天挺gbx说有个11级的小同学,已经在某OJ上刷过1000多道题,倍受打击!一度感叹为什么我没有早点起步,甚至一度认为ACM是给那些初高中做过NOI的同学准备的。 今天突发神经查了查神牛HH 的简历,真的很震撼: …

yml php,使用 docker-compose.yml 快速搭建php开发环境

1、新建一个文件夹,里面创建文件 docker-compose.yml2、编辑 docker-compose.yml 文件,保存以下内容# docker volume#docker run -d --name dbdata -h dbdata -v /wwwroot:/home/vagrant/wwwroot -v /Downloads:/home/vagrant/Downloads -v /wwwroot/web…

深夜,学妹遇到了数据分析师生涯的第一个疑问

大家好,我是大鹏,目前是一名数据分析师。自从上次学妹深夜给我发微信,询问数据分析师招聘要求和需要掌握的技能,已经过去2个月了。直到昨天,我再次收到了学妹的召唤:当天深夜 学妹深夜求助,定是…

你知道WPF与WinForms的区别吗?

介绍WPF的缩写指微软的Windows Presentation Foundation,而WinForms是Windows Forms Applications的简单组合。这两个都是微软的Windows应用程序图形用户界面,开发人员可以使用它们来开发Windows桌面应用程序。本文重点介绍两种开发Windows桌面应用程序的…

一起谈.NET技术,发布NGuestBook(一个基于.NET平台的分层架构留言本小系统)

发布NGuestBook的动机说明 大约在半年前,我在博客上发表了一个系列文章:《基于.NET平台的分层架构实战》。当时在讲解过程中用到了一个叫NGuestBook的案例,在那以后,有很多朋友留言或发E-mail希望能得到NGuestBook的完整源代…

jodconverter水印java,OpenOffice实现Office转Pdf(支持自定义添加水印、页眉、页脚)

java OpenOffice officetopdf最近项目需要实现下载Office文档时自动转成PDF文档,以下代码支持2003及2007版的Word,PPT,Excel转换,并支持自定义添加水印、页眉、页脚实现需要事先安装OpenOffice(我这里安装的是OpenOffice 4)OpenOffice 下载: …

当Java、C++、Python等编程语言都变成妹子。。。

试想一下,当Java、C、Python、Ruby、PHP、C#、JS等编程语言变成了动漫人物会是怎样的一幅场景呢?下面就一起看看在日本作家渡辺将人的笔下,各种编程语言都是哪类“美女”的吧!Java犹如宫泽贤治的《不畏风雨》中出现的、性格木讷的…

对MySQL 进行深入学习是非常必要的

MySQL 在互联网行业非常流行,腾讯,阿里等互联网巨头都在深入使用MySQL, 我在腾讯时也使用MySQL,我在微信群里经常听到大家对MySQL 的意见也很大。在传统企业环境下使用最多的数据库产品是Oracle,SQL Server等企业级数据库&#xf…

windows下的NTP服务

近期的项目用到NTP,在使用的时候碰到一些问题,特记录如下: (1)NTP Server部分若要将内部时间服务器配置为与外部时间源同步,请按照下列步骤操作: 1. 将服务器类型更改为 NTP。为此&#xff0…