大家好,我是张飞洪,专注.NET开发十来年。感谢您的阅读,我会不定期分享我的学习心得和职场经验,希望我的文章能成为你成长路上的助力。让我们一起精进,共同进步。
视频
今天想和分享的是如何基于一套自定义的模版,用来快速搭建项目的脚手架。
1.各种搭建方式
我们知道ABP 有提供了自己的脚手架搭建方式,有很多种方式,比如像下面这种操作:
1.1命令行
- abp new Tota.Microservices -t console -o Tota.Microservices -v 9.3.0
复制代码- abp new Tota.Gdpr -t module --no-ui --dbms mysql -cs "Server=192.168.11.11;Port=3306;Database=JackfeiDb;Uid=root;Pwd=JackfeiDb;" -v 9.3.0
复制代码- abp new Tota.File --no-ui -dbms mysql -cs "Server=192.168.11.11;Port=3306;Database=JackfeiDb;Uid=root;Pwd=JackfeiDb;" --separate-auth-server -v 9.3.0
复制代码 1.2第三方工具
你也可以采用第三方工具,比如AbpHelper来快速搭建,比如下面这种操作:
1.3官网
还有一种,就是你到官网配置并下载
1.4其他
当然,还有其他方式,比如基于老项目进行复制,采用abp studio进行创建等等
2.自定义搭建
以上搭建方式十分方便,但是我想实现的是结合公司自己的规范,希望脚手架能够包含更多自己的最佳实践,比如:
2.1每个类都有完整的注释
- /// <summary>
- /// 数据集应用服务
- /// <para>版 权:蓝略数字科技有限公司(https://www.lanlue.cn)</para>
- /// <para>作 者:张飞洪</para>
- /// </summary>
- public class DataSetAppService : ApplicationService, IDataSetAppService
复制代码 2.2给每个接口增加注释
- private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration)
- {
- context.Services.AddAbpSwaggerGenWithOAuth(
- configuration["AuthServer:Authority"]!,
- new Dictionary<string, string>
- {
- {"DataIntegration", "DataIntegration API"}
- },
- options =>
- {
- options.SwaggerDoc("v1", new OpenApiInfo { Title = "DataIntegration API", Version = "v1" });
- options.DocInclusionPredicate((docName, description) => true);
- options.CustomSchemaIds(type => type.FullName);
- // 引入 XML 注释文件
- var xmlContractFile = $"Tota.DataIntegration.Application.Contracts.xml";
- var xmlHttpApiFile = $"Tota.DataIntegration.HttpApi.xml";
- if (File.Exists(Path.Combine(AppContext.BaseDirectory, xmlContractFile)))
- options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, "Tota.DataIntegration.Application.Contracts.xml"));
- if (File.Exists(Path.Combine(AppContext.BaseDirectory, xmlHttpApiFile)))
- options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, "Tota.DataIntegration.HttpApi.xml"));
- });
- }
复制代码 2.3 给每个接口一个默认模版,比如像下面这样
- /// <summary>
- /// 创建连接器
- /// </summary>
- /// <param name="input">创建连接器入参</param>
- /// <returns>创建后的连接器</returns>
- [HttpPost]
- public async Task<ConnectorOutput> CreateAsync([FromBody] CreateConnectorOutput input)
- {
- return await _connectorAppService.CreateAsync(input);
- }
复制代码 当然还有很多可能你想要预先内置的规范,这里不一一罗列了,重点来了,这里要怎么实现呢?
3.如何实现
3.1 准备模版项目
这个工作还是不可避免的,因为没有人知道你的规范是什么,我这里简单介绍一下我们公司自己的规范,因为规范很多,下面截图只是冰山一角。
比如 DDD 每层的规约:
又比如,DTO 内部的规约:
这些规约是一个公司十分重要的规范,但是你如果只是让新人看文档,可能不是很有感觉,如果这些规范能内置到脚手架里面,那就太好了。
3.2 采用生成工具
- 把我的模版项目和工具拷贝到你的目录下,比如叫 src目录:
- 输入配置参数
这个时候,下面会多出一个项目文件
新生成项目目录
对比模版项目目录
关于生成小工具,也放在我的知识星球当中:
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |