vs未指定启动文件_高效开发利器之自定义模板文件

简介

越来越多的设计模式, 最佳实践, 优化了软件开发方式, 提高了软件质量, 但是也带来了大量的类似的文件. 比如说: 现在都使用三层模式来开发Web程序, 都会有服务层(Service), DI的流行, 每个服务类都会自动注入一些固定的对象, 日志对象, 缓存对象等等. 实体类(Entity)到DTO对象的转换也有大量的类似代码. 每次都要重复Typing一些固定的东西, 不困难,但是繁琐,也让我们在开发的时候不能专注于业务本身.

开发软件的一大作用就是提高效率, 所以程序员自己也应该努力提高自己的开发效率. 大部分IDE都提供自带模板, 也提供自定义模板的功能, 宇宙最强大的IDE, Visual Studio 提供了最方便的自定义模板的方式, 可以很简单的创建文件模板来减轻程序员的重复无意义的工作. 本文简单介绍如何使用VS2019创建自己的模板.

有人说其实自定义模板没有减轻太多工作, 我反对这样的观点. 所谓量变引起质变. 虽然自定义模板只是减轻了一点点重复劳动, 有如在本就平坦的路上扫除了几颗小石子. 然而, 只要有小石子, 高速公路就降级为省道了. 如果持续清除路上的小石子, 你的开发道路就会越来越通畅.

VS2019 创建模板

  1. 首先准备一个服务类文件
50685ce57d48c3016c32a20bffc55047.png

MyService

  1. 导出到模板
88639d195297c3b2da16fc4ba1cb8b44.png

导出到模板

d58726a5c2e90b76d92973c0d8a21542.png

选择要导出的项目

b93d6d1dab6b3579fe5764de6761fbb1.png

选择要导出的文件

47ce7340a07244c60a69eb9e454cbb82.png

如果选择引用,则在后面使用时,项目必须要已经加好对应的Assebmly, 一般不选

4f4598c81f59e212bfac0dbea60c7307.png

选上红色框内的checkbox, 则会自动导入到VS,否则需要手动放入

使用模板

如果是自动导入到VS中, 则立刻可以在项目中使用.

e77acf69b8185136656e1e2834902e4e.png

在添加新项目中, 您将看到创建的项目模板MySerivce

028d1d13d2874cffa8b7f9d02179a758.png

新模板

您会看到注入的内容基本都已经写好:

86626617eb44b6d2645dbd06fab2d2c5.png

新创建的文件

把模板放到特定目录

自定义的模板和系统自带的模板混在一起, 有时候不太好寻找, 我们可以把自定义的模板放到自己的目录中. VS所有的模板其实是放在一个特定目录下. 我们只需要创建一个子目录, 把我们自定义的模板(zip文件)放到子目录里即可.

在下面目录中创建一个子目录(MyOwnedTemplated), 并把导出的模板zip文件放到里面, 在重新打开VS以后, 模板就会在MyOwnedTemplated里面.

4dce21034bc47d28799391a1bf696222.png

子目录

注意: 手动把模板文件放到子目录后, 需要重启动VS才能看到效果

6cb7dfeca576f0fb43eae8f720528334.png

Item模板已经在特定目录下了

最后的话

VS2019的自定义Item模板的功能很强大, 也可以自定义项目模板. 甚至自定义的模板可以有UI,让用户输入一些自定义选项, 以便创建更复杂的文件. 但是我不建议去研究自定义的UI, 这个学习所花的时间和得到的收获不成正比. 自定义项目模板很好, 可以研究使用.

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

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

相关文章

react-router 4.0 学习笔记

1、安装react-router-dom 2、页面上要使用的时候要引入  import {BrowserRouter as Router,Route,Link } from react-router-dom 3、使用的时候要在外层包一个<Router> 4、param 在路径上如果带有/:id类似这种的&#xff0c;要取值的时候&#xff0c;match.params.id取…

分数优先遵循志愿php源码_2021年南昌中考志愿填报指导,这七大要点你都了解吗?...

中考是孩子即将面对人生的第一个十字路口&#xff0c;家长们也因此开始为孩子的未来紧张。都说选择大于努力&#xff0c;给孩子选一个适合的学校也很重要&#xff0c;为了大家可以更好的填报志愿&#xff0c;小编为大家汇总了这份指南&#xff0c;快来一起看看吧~1、认清自己&a…

gin ip 和 本地访问的结果不一样_golang web开发——gin实战之整合swagger

背景如果我们之前搞过java web开发&#xff0c;我们应该都知道swagger这个API文档自动生成利器&#xff0c;有了swagger可以方便我们与客户端的联调&#xff0c;基本上是一目了然&#xff0c;swagger支持java&#xff0c;自然它也能支持golang的gin框架&#xff0c;本小节&…

常用运算符和表达式

运算符在程序中应用广泛&#xff0c;尤其在计算功能中&#xff0c;常常需要大量的运算符。运算符结合操作数&#xff0c;便形成了表达式&#xff0c;并返回运算结果。 一. 运算符 1.算术运算符 算术运算符用于对数值数据进行计算。 在C#语言中&#xff0c;根据两个操作数的类型…

python爬取淘宝数据魔方_淘宝数据魔方技术架构解析

淘宝网拥有国内最具商业价值的海量数据。截至当前&#xff0c;每天有超过30亿的店铺、商品浏览记录&#xff0c;10亿在线商品数&#xff0c;上千万的成交、收藏和评价数据。如何从这些数据中挖掘出真正的商业价值&#xff0c;进而帮助淘宝、商家进行企业的数据化运营&#xff0…

opencv 处理黑夜_1.1 OpenCV+Python引言篇(一)

OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库。无论你是做科学研究&#xff0c;还是商业应用&#xff0c;OpenCV都可以作为你理想的工具库&#xff0c;因为&#xff0c;对于这两者&#xff0c;它完全是免费的。该库采用C及C语言编写&#xff0c;可以在windows, l…

python字典导入mongodb_python连接mongoDB进行数据提取→常用操作指南

1. 连接mongo需要知道mongoDB的地址、端口、授权用户、授权密码。一般情况下&#xff0c;技术都会给到数据分析人员这些信息。python没有安装模块pymongo模块的&#xff0c;在cmd里面&#xff0c;pip install pymongo 进行安装。(具体操作可以自行百度)##导入连接mongo需要的模…

解决C语言程序报错:return type defaults to‘int’

下面是通过自定义一个函数printN&#xff0c;之后在main函数中调用printN&#xff0c;使得可以通过输入整数N&#xff0c;将从1到N的全部整数都打印出来的程序。 但是在编译过程中却报错&#xff1a; return type defaults to ‘int’ 产生报错的原因&#xff1a; printN的默认…

cif是目的港交货吗_刚接手出口业务,搞不懂FOB? CIF? 为你科普→

Export专用名词辨析01 名词辨析#FOBFOB(Free On Board)&#xff0c;含义是装运港船上交货&#xff0c;指卖方在合同规定的装运港负责将货物装上买方指定的船上&#xff0c;并负责货物装船之前的一切费用和风险&#xff0c;以及办理出口通关的相关事宜及费用&#xff0c;所以在实…

python字符串的表示形式_python - 如何为类对象创建自定义字符串表示形式?_class_酷徒编程知识库...

当前python 3的更新如下&#xff1a;class MC(type):def __repr__(self):return Wahaha!class C(object, metaclassMC):passprint(C)如果希望跨python 2和python 3运行的代码&#xff0c;则six模块将包含以下内容&#xff1a;from __future__ import print_functionfrom six im…

MyBatis核心接口和类

三大对象&#xff1a; 1、SqlSessionFactoryBuilder&#xff1a;负责构建SqlSessionFactory&#xff0c;并且提供了多个build()方法的重载 2、SqlSessionFactory&#xff1a;创建SqlSession实例的工厂 3、SqlSession&#xff1a;用于执行持久化操作的对象 三大对象获取的步骤&a…

中的数组怎么转成结构体_传说中的“衡水体”应该怎么练?

传说中的“衡水体”应该怎么练&#xff1f;我也不知道&#xff0c;哈哈哈哈哈哈。因为我之前关于衡水体的回答最高赞评论说我这个不是衡水体……随便写的之前的回答所以&#xff0c;这篇文章纯属交流分享&#xff0c;同时枯燥无味&#xff0c;可能适合觉得自己书写不好看的高中…

windows 显示苹果分区_基准测试数据显示苹果M1运行Windows的表现比微软自家硬件好上近一倍...

根据最新的基准测试&#xff0c;苹果M1运行 "Windows 10 on ARM "的速度比微软自家的硬件快了近2倍。更新后的基准数据显示&#xff0c;苹果M1上的Windows 10比Surface Pro X快得多&#xff0c;这还是配备了基于骁龙8cx的处理器的Surface Pro X原生运行该操作系统的环…

centos7默认字体_CentOS7.5字体美化

背景知识有衬线 (Serif) 无衬线 (Sans Serif) 和等宽 (Monospace) 字型1 有衬线 (Serif) 字型是比较正式的字体&#xff0c;比划粗细不一&#xff0c;在笔划的边缘有装饰部分(我的理解是有笔锋)。英文当中比较有名的包括 Times New Roman, Georgia, 而中文当中则是包括大名鼎鼎…

翻译:通向T-SQL的阶梯:超越基础水平3:建立相关子查询

原文链接&#xff1a;http://www.sqlservercentral.com/articles/StairwaySeries/105972/ 原文作者&#xff1a;Gregory Larsen 该系列 本文是楼梯系列的一部分:通向T-SQL的阶梯:超越基础水平 从他的t - sql DML楼梯后,格雷戈里拉森涵盖了更高级的子查询等方面的t - sql语言。…

筛选中很容易粘贴到被隐藏部分_excel复制粘贴:如何将数据粘贴到筛选区域中?...

编按&#xff1a;哈喽&#xff0c;大家好&#xff01;看到标题相信大家都会纳闷吧。复制粘贴不是excel中最简单&#xff0c;最基础的操作吗&#xff1f;怎么可能90%的人都不会呢&#xff1f;今天咱们要说的可不是普通的复制粘贴&#xff0c;而是将数据复制粘贴到筛选后的区域中…

python 发邮件_Python发邮件告别smtplib,迎接zmail

之前介绍过smtplib发邮件代码&#xff0c;直到今天仍有人在这里遇到问题。而且代码复杂&#xff0c;解释起来很麻烦&#xff0c;今天给大家介绍一个新的发邮件方法——zmailzmail的优势自动填充头信息将一个字典映射为email&#xff0c;构造邮件相当于构造字典自动寻找邮件服务…

重复数据_MongoDB 自动过滤重复数据

摘要&#xff1a;使用 update_one() 方法而不是 insert_one() 插入数据。相信你一定有过这样的经历&#xff1a;大晚上好不容易写好一个爬虫&#xff0c;添加了种种可能出现的异常处理&#xff0c;测试了很多遍都没有问题&#xff0c;点击了 RUN 开始正式运行 &#xff0c;然后…

多个canvas画布合并_canvas的基础入门

nvas是定义在浏览器上的画布。它不仅仅是一个标签元素更是一个编程工具是一套编程的接口。利用它可以开发出很多东西&#xff0c;比如动画&#xff0c;游戏&#xff0c;动态的图表等富有变现力和感染力的应用。还可以开发出绚丽的3D动态效果。接下来我们一起学习&#xff01;一…

AngularJS 计时器

<div ng-controller"MyController"><!--显示$scope.clock的now属性--><h1>hello {{clock.now}}</h1><!--显示$scope.clock&#xff0c;里面有一个属性now--><h1>hello {{clock}}</h1> </div><script src"ht…