序
国庆假期,地铁站过道都是人山人海,故决定放弃了去祖国的大好河山的路上添堵。宅在家里折腾pgsql和个人网站,让我决定个人网站后台弃用Abp这个被奉做神明的框架。
初探gensql工具
因为长期混迹于.net core群,群里面的叶生大神几近偏执地宣传他创建维护了11年多的gensql工具;该工具的参考地址是:.NETCore 快速开发做一个简易商城。这篇文章总结里面有一句话:
在当今,面向 dbfirst 开发的思想比较”落后“,许多同行在对比他们的同时,却忽略了什么是结果导向。技术都是实现业务的工具,不管是 code first 还是 dbfirst 都是为解决业务而存在。
这句话算是得到了我的强烈认同。结合我公司现有的项目进展来看,几百个表的主键、外键等依赖关系也几近完美。基于业务需要,公司想转.net core实现跨平台。而现在主流的.net core一般都是和code first相结合,若想重新整理代码,硬生生地从dbfirst改成code first这会是一个很大的工作量了。
我通过阅读教程,使用genmy的工具,基于公司的数据库进行测试,几百个表的增删改查页面都不用手动去写就已经配置好了。摒弃实际业务中的校验逻辑,数据传输这一块,这个Api的测试接口却不需要自己再去一个一个的编写。即实现了跨平台,又减少了编码量。gensql算是.net core和dbfirst相结合的一个比较完美的工具了。
初探PostgreSql
正如两个月前刚接触mysql一样。2天前刚接触pgsql。我死皮赖脸地请教叶生怎么在pgsql中创建一个表,结果他在我电脑上把.NETCore 快速开发做一个简易商城。这个过程在pgsql中完全演示了一遍。在这个演示过程中:我得知了pgsql支持枚举类型,string[],point(坐标点),json类型。初次尝试通过ER-Model导入database生成了表格,视图等。从安装pgsql到创建数据库到生成解决方案到部署到我的个人站点,整个过程不到3个小时。这就是工具决定效率的一个良好的体现。
为了验证工具的稳定性,后来我自己在pgsql上折腾了27个各种主外键关系的数据库表,经过12个小时左右形成了一个具备增删改查功能的可以访问的站点,算是初探成功。
初探Abp之增删改查
之前在.net core群里面聊天,说小项目不建议使用abp。我当时的一个疑问是:小项目不用,难道等小项目扩展成大项目的时候再换框架么?直到今天有人问我abp怎么实现crud。我就想在我的个人网站中实现abp的增删改查的示例,结果发现小项目果真不太适合使用Abp这种框架。ddd理论层面的东西我不讲太多,仅以以下代码做个简短说明:
entity和input,前者是数据库对象,后者是表单对象(数据传输对象),不同的表单会有不同的数据传输对象,怎么样划分model才是正确的方式,在编码过程中估计得纠结大半天。
另外了解abp框架中automapper,module,repository,applicationservice等各种概念的时间,估计都足够完成一个小型项目了。结果他这个小伙子在网站找了三天资料,然后加上我一知半解地跟进demo配置了半天,依旧未解,算是初探失败。等现有事项完成之后可以继续深入了解Abp,但不是现在。
总结
我并不是要吹捧gensql工具特别特别厉害,毕竟这个工具的主要作用还是让人花更多精力在业务层面上来。至于我为啥要在个人网站中弃用Abp,可能原因是个人没有形成足够的DDD的理念,然后强行运用Abp在个人网站中有种杀鸡焉用牛刀的感觉。
个人网站的未来:语言.net core+后台gensql+前台inspinia+富文本编辑器TinyMCE(不得不说这个博客园的编辑器就是比layeditor和summernote这两款编辑器高端大气不少)。因为涉及到框架调整,也就意味着个人博客网站在一定的时间内不会更新新的版本了。这样的技术选型既满足了前台足够好看,TDD的理念,也达到了分享源码之后,别的It人员能够迅速的搭建其自己的业务网站的目的。
最后祝大家国庆快乐!我剩下的四天节假日得去练车了,试图做个老司机了。