Skip to content
| Marketplace
Sign in
Visual Studio>Tools>明源重构开发插件
明源重构开发插件

明源重构开发插件

LeoXiong

|
50 installs
| (1) | Free
明源重构开发插件
Download

明源重构开发项目/项模板插件

  • 安装插件,暂时仅在VS2019和VS2022进行测试使用通过,适配VS版本>=16.10,VS2019如果安装完成后无法使用请尝试更新VS。
  • 新建项目->搜索“明源”,选择“明源重构开发项目”(新增过后,就可以直接选择历史记录中的)
  • 填写项目名称(注意必须符合开发规范命名:扩展项目以.Plugin结尾,Model项目以.Model结尾,接口项目以.Interface或.Interfaces结尾,资源项目包含.Resource,二开项目以.Customize结尾)
  • 设置位置,一般项目位置必须为三级目录(如\01-采招系统\01 项目准备\02 二开独立\),资源项目路径为二级目录(如\01-采招系统\20 资源文件\)
  • 添加->新建项,选择“明源重构项目类”,命名规则参考说明 (已弃用)
  • 添加->新建明源重构项...,选择“文件项类型”,输入文件名称

项目模板,自动完成内容

  1. 项目输出路径
  2. Assembly信息
  3. 资源文件模板
  4. 注册接口类

新建明源重构项

  • 在解决方案中选中对应目录右键->添加->新建明源重构项...(或直接按快捷键Shift+F2)打开
  • 可以创建文件、文件夹、文件夹+文件
  • 打开窗口时将根据所在目录加载检索文件项类型(暂时不太精准,如无法选择所属类型,可双击文件项类型已加载所有类型)
  • 选择了文件项类型,可自动添加文件夹、文件后缀名(如在项目直接新增应用服务,会自动添加到AppServices文件夹下,且后缀AppService可不填写)
  • 实体类可直接选择数据表,自动生成实体属性

生成实体代码说明

  • 如果是需要新增二开实体对象,或者扩展产品实体(项目未新增实体类),先在对应的目录添加实体类(已经存在实体类需要更新属性跳过该步骤)
  • 在Model项目下打开需要生成实体代码的类
  • 在命名空间内,右键->生成Entity代码->输入数据表名->确定(如果类存在EntityName属性,将自动使用该属性值)
  • 将根据元数据表生成对应的实体类,如果命名空间中包含多个类,将第一个类全部替换为生成的代码
  • 如果未显示按钮,请检查是否在Model项目下、命名空间内右键,且文件非以Const、Enum、Dto、LangRes结尾,命名控件不包含.Const、.Enum、.Dto,因采用异步加载,所以可能刚刚打开的解决方案需要等待一段时间,右键才能加载出按钮

生成多语言代码说明(因实现方案不完善,暂处于测试版本)

  • 右键->二开多语言查询
  • 选择需要生成代码的多语言项
  • 单击生成CS代码或生成JS代码,将自动将选择的多语言项生成代码,并放至剪贴板中
  • 在对应位置Ctrl+V即可
  • 如果未显示按钮,因采用异步加载,所以可能刚刚打开的解决方案需要等待一段时间,右键才能加载出按钮

生成AppService.js说明

  • 在AppService类中,右键->生成AppService.js
  • 将根据AppService类中public的方法生成对应的AppService.js
  • 会先根据AppService类名查找对应的AppService.js文件,如果没有找到将生成新的文件,需要手动保存到对应目录下,并包含在项目中
  • 如果已存在对应的AppService.js文件,将替换原js文件中所有内容,请注意做git对比是否原文件中存在手动修改内容
  • 请确保AppService类名的唯一性,否则可能无法正确的替换到AppService.js内容
  • 如果未显示按钮,请检查文件名是否以AppService.cs结尾,因采用异步加载,所以可能刚刚打开的解决方案需要等待一段时间,右键才能加载出按钮

js文件前台编译说明

  • 在js文件中,右键->前台编译
  • 如果未显示按钮,请检查是否为js文件,是否存在"\00-ERP站点\node\02_二开构建.cmd"文件,因采用异步加载,所以可能刚刚打开的解决方案需要等待一段时间,右键才能加载出按钮

项模板,命名说明(已弃用,不做更新)

  • 为了保证PublicService、RemoteService公共接口及远程接口服务正常注册,请确保二开项目的AppInitializer.cs文件命名一致,且在项目根目录中,非Properties中
  1. 以Plugin结尾,项目名包含Plugin,扩展产品类,自动引用产品DLL,类继承PluginBase<产品类>
  2. 以AppService结尾,二开应用服务,自动添加类标签AppServiceScope
  3. 以DomainService结尾,二开领域服务,继承DomainService
  4. 以Profile结尾,二开集成配置,继承MapProfile
  5. 以AjaxHandler结尾,二开处理程序,继承AjaxHandler
  6. 以DataApiHandler结尾,二开数据API,继承DataApiBaseHandler,实现LoadData、LoadFields方法
  7. 以QueryDataHandler结尾,二开查询组件的备选项API,继承AjaxHandler, IQueryDataApiOption,实现Load、Query方法
  8. 以PublicService结尾且以I开头,二开公共接口服务,继承IPublicService,存在接口实例注释代码(可手动删除)
  9. 以PublicService结尾,二开公共服务,继承AppService, I接口,自动引用接口项目(项目需以Interfaces或Interface结尾),自动在AppInitializer中添加注册对应的接口服务
  10. 以RemoteService结尾且以I开头,二开远程接口服务,继承IRemoteService,自动在AppInitializer中添加注册对应的远程接口服务
  11. 以EventSubscriber结尾,二开事件订阅者,继承EventSubscriberBase,实现Execute方法
  12. 以AggregateService结尾,二开聚合服务,继承AggregateService
  13. 以ResourceFilter结尾,二开资源化过滤,继承IResourceFilter,类标签ResFilterDescription(需手动填写名称及信息)
  14. 以ProjectFilter结尾,二开项目过滤,继承BaseProjectFilter,实现GetAllProjectList、GetDiagramModeFilterSql方法、SettingInfo属性,类标签ProjectFilterDescription(需手动填写名称及信息)
  15. 以Ex结尾,项目名包含Plugin,扩展实体对象,继承产品实体类,类标签EntityName(需手动填写表名)
  16. 以Dto结尾,项目名包含Model,二开Dto对象,继承DtoBase,类标签DtoDescription
  17. 以LangRes结尾,二开多语言,GgptAspxNav000127属性模板(仅作为模版,需调整为自定义的多语言)
  18. 以Job结尾,二开后台作业,继承IBackgroundJob,实现Execute方法,类标签BackgroundJobName(需手动填写名称及信息),暂时仅支持自动创建无参后台作业,有参作业,将继承的改为IBackgroundJob<参数类>,在Execute方法中加上参数类的参数即可
  19. 以Enum结尾,二开枚举类,类标签EnumOption,实例代码作为参考
  20. 以EventPublisher结尾,二开事件发布者,继承EventPublisherBase,示例代码可作参考
  21. ...
  22. ..
  23. .
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft