[关闭]
@wang9563 2017-05-22T19:48:28.000000Z 字数 1051 阅读 1338

使用MVC插件化开发流程实践


为了更有效的管理代码,我设想将项目拆分开,通过插件化的方式来实现功能模块。并通过 SVN 实现对代码的权限化的管理。公共组件需要大家一起讨论,维护,以便于加快开发效率,提升性能、稳定性等。
不过,以下流程仅限讨论后端服务的开发方式为主,前端不在考虑范围内。

Created with Raphaël 2.1.2按照功能模块分到开发负责人,建立该功能在 SVN 工作目录下的文件夹开发负责人开发功能,并再确保功能完成后提交代码开发负责人通过 FTP 将插件部署到测试环境测试负责人检验功能是否可以交付由功能负责人进行功能发布生产环境使用yesno

1、功能模块立项,建立代码结构目录

Plug 存放项目插件;Release 存放编译后的程序集;WMS1.0 存放主项目


2、使用 SongshuErpPlug 建立项目

选择 松鼠ERP插件模块 模板,并设置项目的位置为 SS_WMS\Plug 将自动引用基础的类库

现在需要开发一个测试插件

  1. using SongshuERP.Mvc.Core;
  2. namespace SongshuERP.Mvc.Areas.TestPlug
  3. {
  4. public class FirstPlugController : BaseController
  5. {
  6. public string Index()
  7. {
  8. return "这是通过 MVC 插件实现的!";
  9. }
  10. }
  11. }

此处的命名空间都是自动生成的,至于要编写 FirstPlugController 类即可,现在可以访问 Url http://host:port/testplug/firstplug/index 检查插件是否能正常运行!

3、开发完成编译代码,复制到主项目的 bin 目录即可使用

4、提交代码

确保代码可以正常使用后,可以提交代码到服务器,通过 SVN 按目录提交即可

5、服务端人工构建,发布

人工在服务器上或自己的工作电脑上通过 SVN 获取最新的源码,并整体编译,再发布到测试环境

当然如果有一项编译失败,则不建议发布,需要负责该功能代码的同事检查不能正常编辑的原因 当然不能成功编译的代码我们也不会提交

以下计划将是之后实践的目标

6、尝试自动构建、发布
完善编译工具,增加自动发布的功能,定时去获取源码、编译、发布 本地发布/FTP/WebDeploy

7、尝试构建 docker 镜像,推送部署,实现自动更新
编译服务定时将编译后的文件打包成 Docker 镜像,并通过 swarm 推送实现自动更新

编写 YAML 实现流程化集群部署

其他事项:

1、代码规范

建议通过 Resharper 插件进行控制,编写不合法的代码时会有提示。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注