ASP.NET如何自定义项目模板详解

 更新时间:2019-09-08 20:01:39   作者:佚名   我要评论(0)

前言
在微服务架构盛行的时代,一言不合就新建一个服务,虽然搭建服务并没什么难度,但不可避免的是每个人搭建出来的架子会存在差异,这很合理,因为每个开发

前言

在微服务架构盛行的时代,一言不合就新建一个服务,虽然搭建服务并没什么难度,但不可避免的是每个人搭建出来的架子会存在差异,这很合理,因为每个开发者的个人风格、工作经验都不一样,难免认为自己喜欢的才是最好的。另一方面,如果需要较频繁搭建服务,这些重复而没难度的操作就显得浪费时间,而且每次手动处理总可能存在一些细节上的失误,出现异常然后花时间解决更得不偿失。

面对以上一些问题,拥有一个符合自己团队的项目模板就显得比较重要了,这篇文章主要介绍在 ASP.NET 如果自定义项目模板。

内置的项目模板

在 VS 中,新建项目时我们都需要先选项目类型,这些类型选项本质上是内置的项目模板,不同类型对应不同的项目代码结构。

通过命令查看当前有的项目模板:

dotnet new -h

以上是内置的一些项目模板,如 console 、 classlib 、 mvc 、 webapi 等应该都是平时使用比较多的。

创建项目模板

搭建项目 ( 这里是只是 Demo 例子,实际根据自己的项目要求自定义项目结构 )


  • 新建一个 .NET Core Web API 项目(DemoService.API) 和 .NET Standard 类库(DemoService.Core);
  • DemoService.API 引用 DemoService.Core;
  • DemoService.API 添加 Swashbuckle.AspNetCore 生成 Swager 文档的引用;
  • DemoService.Core 添加 ServiceStack.OrmLite.SqlServer 数据库操作的 ORM 库引用;

这一步和搭建普通的项目没任何区别,搭建完成后可测试看看效果。

添加模板配置

在解决方案 .sln 所在的目录下创建模板配置文件夹 .template.config ,并在 .template.config 文件夹下创建 template.json 文件,编辑 template.json ,输入以下配置:

{
"$schema": "http://json.schemastore.org/template",
"author": "Me",
"classifications": [ "micro", "webapi" ], 
"identity": "DemoService",
"name": "DemoService",
"shortName": "swa",
"tags": {
"language": "C#",
"type": "project" 
},
"sourceName": "DemoService", 
"preferNameDirectory":"true"
}

配置说明:

  • author:模板作者,必填
  • classifications:模板分类,必填
  • name:模板名称,当使用 dotnet new 创建项目时,指定的模板名称,必填
  • identity:模板唯一名称,可选
  • shortName:模板简短名称,必填
  • tags:模板标签
  • sourceName:指定一个字符串,当使用 dotnet new 带 -n 参数时,-n 参数的值会替换 sourceName 指定的字符串。
  • preferNameDirectory:是否生成相同名称的目录,可选。

安装模板

dotnet new -i <PATH> // 当前目录下:dotnet new -i .\

从模板创建项目

模板安装成功后,我们可以通过 dotnet new 创建新项目,在存放新项目的目录下执行如下命令:

dotnet new swa -n UserService

swa 为 DemoService 的 shortName , -n 后的 UserService 将替换 DemoService 名,这样一条命令 UserService 服务的基础架子就好了。

参考链接

  • 创建项目模板
  • ProjectTemplateSmaple 源码

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

您可能感兴趣的文章:

  • C#设计模式之Template模板方法模式实现ASP.NET自定义控件 密码强度检测功能

相关文章

  • Python实现TCP探测目标服务路由轨迹的原理与方法详解

    Python实现TCP探测目标服务路由轨迹的原理与方法详解

    本文实例讲述了Python实现TCP探测目标服务路由轨迹的原理与方法。分享给大家供大家参考,具体如下: 一 点睛 在此次实践中,通过scapy的traceroute()方法实现
    2019-09-08
  • ASP.NET如何自定义项目模板详解

    ASP.NET如何自定义项目模板详解

    前言 在微服务架构盛行的时代,一言不合就新建一个服务,虽然搭建服务并没什么难度,但不可避免的是每个人搭建出来的架子会存在差异,这很合理,因为每个开发
    2019-09-08
  • python requests证书问题解决

    python requests证书问题解决

    用requests包请求https的网站时,我们偶尔会遇到证书问题。也就是常见的SSLerror,遇到这种问题莫慌莫慌。 这里没有找到合适的网站去报SSL证书的错误,所以就
    2019-09-08
  • python global关键字的用法详解

    python global关键字的用法详解

    最近刚好有朋友遇到个global相关的问题,这里简单学习一下global关键字的用法。 想要更好的了解global关键字,首先要熟悉python的全局变量与局部变量的概念。
    2019-09-08
  • Python数据分析模块pandas用法详解

    Python数据分析模块pandas用法详解

    本文实例讲述了Python数据分析模块pandas用法。分享给大家供大家参考,具体如下: 一 介绍 pandas(Python Data Analysis Library)是基于numpy的数据分析
    2019-09-08
  • ASP.NET Core MVC基础学习之局部视图(Partial Views)

    ASP.NET Core MVC基础学习之局部视图(Partial Views)

    1.什么是局部视图   局部视图是在其他视图中呈现的视图。通过执行局部视图生成的HTML输出呈现在调用视图中。与视图一样,局部视图使用 .cshtml 文件扩展名。
    2019-09-08
  • python urllib爬虫模块使用解析

    python urllib爬虫模块使用解析

    前言 网络爬虫也称为网络蜘蛛、网络机器人,抓取网络的数据。其实就是用Python程序模仿人点击浏览器并访问网站,而且模仿的越逼真越好。一般爬取数据的目的主
    2019-09-08
  • 关于Python内存分配时的小秘密分享

    关于Python内存分配时的小秘密分享

    前言 Python 中的sys 模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数。 本文将会频繁地使用该模块
    2019-09-08
  • 你应该知道的.NET错误与异常处理机制

    你应该知道的.NET错误与异常处理机制

    前言 错误的出现并不总是编写程序的人的原因,有时应用程序会因为应用程序的最终用户引发的动作或运行代码的环境发生错误。无论如何,我们都应预测应用程序
    2019-09-08
  • 深入了解Python在HDA中的应用

    深入了解Python在HDA中的应用

    Event Handler 在HDA中,要创建Python脚本,需要先选择一个事件处理器(EventHandle),他表示你要在什么时候执行你现在所创建的脚本命令 On Created (在节点创建
    2019-09-08

最新评论