和朋友合作开发一个测量机产品, 用于测量汽车零件形位公差, 客户的客户是电动汽车第一品牌, 我负责上位机开发, 历时2个月, 完成上百次的commit.
时间虽紧, 但代码质量上没有妥协, 软件层次划分合理, 后续考虑做成系列产品.
开发利器
感恩这个时代, 现在的软件开发开发体验真好, 可以将主要精力都用于产品研发.
. 各类AI大语言模型, 问题检索效率比搜索引擎高太多了.
. 微软的C#和Visual studio 2022 社区版, C# 语言和社区版
. MySQL 8社区版, 之前我一直觉得MySQL功能较弱, 所以个人项目一般采用MS SQL Server 社区版或 PG, 这两个在工控行业都不太合适, SQL Server社区版数据量有上限限制; PG功能倒没限制, 但安装和运维对于工控行业来讲难度太高. 这次尝试MySQL8, 数据分析已经足够强大, 加上运维超级简单, 非常适合工控行业.
. Modbus 协议和Mobus slave 软件, 和PLC通讯首选Modbus协议, 代码可移植性性好, 而且有可靠的调试软件.
. gitee 提供的私有代码仓库
. git extensions 软件, 用的最顺手的git客户端.
. nuget 仓库, 类库安装太方便了.
. ConfuserEx 混淆工具, 测试了很多款开源混淆工具, 这是唯一一个使用方便同时功能又强大的, 混淆后的程序没有发现有异常情况.
. DnSpy 工具, 之前主要使用 ILSpy 工具, 发现 DnSpy 阅读代码的体验比ILSpy好太多, 可惜不更新了.
使用类库
上个项目中部分使用了.Net core + WinForm, 感觉到.Net core 对于 WinForm支持还不够成熟. 所以这次还是使用了最稳妥的技术: .NetFramework 4.8 + WinForm.
. Dapper 框架, 使用越来越顺手了
. ObjectListView 组件, UI 中大量使用 ObjectListView 组件, 开发效率非常高.
. NLog 组件, 我需要在UI上显示一些关键的日志信息, NLog 支持 RichTextBox 输出, 完美地解决了这个需求点,
. Newtonsoft.Json 组件, 配方文件使用 json 格式, 使用 Newtonsoft 一行代码即可映射到class
. NString 类, 除了提供一些String 扩展类, 最赞的是提供一个模板引擎, 我用它作为量测公式的预处理器, 完成变量赋值工作.
. NCal 类, 非常强大, 我使用它完成公式表达式的求解.
. NModbus 类, 支持Modbus TCP和 Mobus RTU
. NullGaurd 类库, 幕后英雄, 预防了很多空引用低级错误.