2020-03-19 18:07:22 版本 : ABP框架开发效率提升之自定义模板(文末有福利)
作者: 潘帅 于 2020年03月19日 发布在分类 / 人防组 / 人防后端 下,并于 2020年03月19日 编辑
 历史版本

修改日期 修改人 备注
2020-05-07 15:26:52[当前版本] 潘帅 1.1
2020-03-19 18:07:22 潘帅 1.0

古人说得好“工欲善其事必先利其器”,隔壁小黑也说“磨刀不误砍柴功”,在使用ABP框架时可以自定义代码模板来提高开发效率。


1.ABP中常用的类和接口

一个通用的ABP应用服务往往要涉及到多个类和接口才能完成,常用的有


  • 业务实体类Entity
  • 新增数据传输对象CreateEntityDto
  • 修改数据传输对象UpdateEntityDto
  • 分页查询数据传输对象PagedEntityDto
  • 详情数据传输对象DetailEntityDto
  • 数据传输对象与实体映射类EntityMapper
  • 业务应用服务接口IEntityAppService
  • 业务应用服务类EntityAppService
  • 领域服务接口IEntityManager
  • 领域服务类EntityManager
  • 实体与数据库映射类EntityMap
要实现一个完整的应用服务API接口,就需要以上所有的类和接口,一个个手动创建无疑要花费很多时间。虽然有52ABP、ZeroPower之类的插件支持ABP框架,但使用过程中还是有些不如意的地方。


2.从现有代码创建代码模板

在VS中选中已有代码文件,选择“项目>导出模板”弹出导出模板向导,勾选“项模板”并选择代码文件所在的项目。

点击“下一步”,勾选要导出的项。

点击“下一步”,勾选需要引用的类库。

点击“下一步”,可以为模板命名,并指定输出位置以及是否将模板自动导入VS。

之后在项目上右键选择“添加>新建项”,就可以从自定义的模板创建代码文件了。

3.手动改造代码模板

VS2019的用户自定义模板默认位于C:\Users\Administrator\Documents\Visual Studio 2019\Templates\ItemTemplates路径下。

代码模板一般包含两个文件,一个是代码模板配置文件,后缀是.vstemplate,另一个是代码模板文件本身,后缀是.cs。

代码模板配置文件为XML格式,关键的属性有DefaultName、Name、Description、References和ProjectItem,其中ProjectItem的值就是指向代码模板文件本身。


编辑代码模板文件,可以添加自定义的头部注释,设置代码文件的默认结构。其中$safeitemrootname$为文件名,$rootnamespace$为命名空间,$username$为用户名(当前操作系统的登录名,不是VS的登录名),$time$为当前时间。


/*-----------------------------------------------
// Copyright (C) 2020 南京戎光软件科技有限公司  版权所有。
// 文件名称:    $safeitemrootname$
// 功能描述:    应用服务类
// 创建标识:    panshuai $time$
// 修改标识:    panshuai $time$
// 修改描述:     
-----------------------------------------------*/

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Abp.Domain.Repositories;
using Abp.AutoMapper;
using RunGo.Application;

namespace $rootnamespace$
{
	/// <summary>
    /// 应用服务类
    /// </summary>
	public class $safeitemname$:RunGoApplicationService<TEntity, TEntityDto, TPrimaryKey, TPagedInput, TCreateInput, TUpdateInput>,I$safeitemname$
    {
        //private readonly IRepository<Entity, string> _repository;
        //public CodingAppService(IRepository<Entity,string> repository)
        //{
        //    _repository = repository;
        //}
    }

其他过程类似,手动创建一系列模板,写代码再也不愁了。






 附件

附件类型

RARRAR PNGPNG

历史版本-目录  [回到顶端]
    知识分享平台 -V 4.8.7 -wcp