最近公司的一个小项目尝试使用 .net core作为服务端进行开发,并顺利上线运行了一段时间,整体效果还是比较满意的。这里记录下整体开发过程,用于备忘和分享
背景
项目需求其实很简单,类似于一个简单的审批+简单的任务管理系统,但需要同时有PC端和APP端。
由于项目规模不大,时间也比较宽裕,组内商量下来干脆全采用新技术来踩踩坑。这么一提,大家积极性比较高,既完成了任务同时也能学到新的知识。
前后端大家做了一个分工,前端讨论下来采用React+Ant Design(不是我所关注的),后端我们决定下来用 .net core开发并部署在docker下,这对我们来说还是有一定挑战的,一来是没底,毕竟周边没有一个成熟的项目使用,二来我们也不是很了解。
但经过调研发现,还是有很多成熟案例的,所以最终拍板下来就这样做了。
但从后面的开发经历来看,踩的坑真的不少。
项目架构讨论
这里只说后端部分,我们在讨论后端架构的同时,前端小伙伴已经着手开始搭建框架和设计原型了。
在架构方面其实大家基本观点一致的,虽然项目小,但五脏俱全,前端不仅有PC,还有APP。
对后端来说,首先,项目外网是可以访问的,得需要一个网关;用于提供功能需求的基础服务;用于异构解耦一些数据,得需要一个MQ(后来通过Redis和Job给替代了);用于处理一些定时任务的Job。
在数据库选型方面基本就是Mysql+Redis了。
由于用户只给了我们两台服务器(配置也一般般),我们一直在纠结虚几个容器出来,达到资源利用最大化。
下图是我们这个项目的整体拆分,我主要负责的是服务和网关这块(后端部分)。
回顾总结
项目虽然结束了,期间也一直比较忙,项目上线后一直想找个时间把这次项目经历记录下来,一来是为了巩固和积累,二来也是锻炼下自己的写作总结能力。
这次项目大致会分下面几个章节去记录(主要是后端 .net core开发部分)
- docker + .net core开发环境搭建
- 基于 .net core Restful API+Swagger搭建
- .net core下配置、数据库访问等操作实现
- .net core下对于Excel的一些操作及使用
- .net core下对于附件上传下载的实现
- .net core下访问控制层的实现
- .net core下验证码及二维码登录的实现
- .net core下定时任务的实现
- docker的一些常规操作
- docker的一些部署配置问题汇总
说在前面
项目的开发环境如下:
- 操作系统: Win10(docker安装方便)
- 开发IDE:Visual Studio 2017
- 其他:Docker for Windows
由于工作的关系不能贴对应的源码,但在写文章时我会重新搭建一个demo出来供大家参考。到最后会贴在文章后面。
如果在记录过程中有不恰当的地方或者有更好的实现方式,欢迎指出和交流。
文章尽量在两周内更新完,若工作比较忙可能会稍有延迟。
最后,也希望大家有一颗学习和总结的心,期待更加完美的自己。