前言
在微服务架构盛行的时代,一言不合就新建一个服务,虽然搭建服务并没什么难度,但不可避免的是每个人搭建出来的架子会存在差异,这很合理,因为每个开发者的个人风格、工作经验都不一样,难免认为自己喜欢的才是最好的。另一方面,如果需要较频繁搭建服务,这些重复而没难度的操作就显得浪费时间,而且每次手动处理总可能存在一些细节上的失误,出现异常然后花时间解决更得不偿失。
面对以上一些问题,拥有一个符合自己团队的项目模板就显得比较重要了,这篇文章主要介绍在 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 源码
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。
asp.net,自定义项目模板
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。