全栈老程序员|企业系统/工厂MES/ERP专用
目录
1. 适用场景与价值
2. 项目架构(分层设计)
3. 通用类库封装(直接复制可用)
4. 窗体基类设计
5. 通用控件与界面规范
6. 数据分页、查询、导出Excel
7. 权限控制与菜单
8. 异常处理与日志
9. 打印、条码、扫码通用方案
10. 部署与打包规范
11. 老程序员Winform开发20条军规
- 适用场景与价值
本模板专为企业内部系统、工厂MES、车间管理、ERP、WMS设计。
特点:
-
稳定、简单、易维护
-
适合快速做外包项目
-
符合工厂、车间现场使用习惯
-
新手也能按规范写出高质量项目
解决痛点:
-
窗体代码混乱
-
没有统一规范
-
重复造轮子
-
维护成本高
- 项目架构(企业级分层)
2.1 标准三层架构
-
Model:实体类、数据表映射
-
DAL:数据访问层,SQL/存储过程操作
-
BLL:业务逻辑层,校验、计算、流程
-
Common:通用工具类
-
UI:窗体界面
2.2 项目命名规范
-
Company.Project.Model
-
Company.Project.DAL
-
Company.Project.BLL
-
Company.Project.Common
-
Company.Project.UI
好处:结构清晰、交接方便、维护成本极低。
- 通用类库封装(直接可用)
3.1 常用工具
-
配置文件读取(App.config)
-
数据库帮助类(SqlHelper)
-
Excel导入导出
-
条码生成、打印
-
串口通信(电子秤、PLC)
-
日志记录(文本/数据库)
3.2 通用方法
-
数据验证(非空、数字、日期)
-
控件清空、赋值
-
弹窗提示(成功/失败/确认)
-
异常统一捕获
- 窗体基类设计
所有窗体继承一个BaseForm,统一实现:
-
权限校验
-
快捷键
-
窗体加载/关闭统一处理
-
异常捕获
-
操作日志
好处:
-
改一处,全部窗体生效
-
代码量减少50%
-
风格统一、专业
- 通用控件与界面规范
5.1 控件使用规范
-
Label:文字对齐、字体统一
-
TextBox:禁止全角、长度限制
-
DataGridView:禁止自动生成列、固定表头
-
Button:重要按钮高亮,普通按钮灰色
5.2 界面布局
-
上下结构:查询区 + 数据区 + 按钮区
-
弹窗大小固定,禁止随意拉伸
-
字体:微软雅黑 9~10号
-
色彩:简洁、工厂风,不花哨
- 数据分页、查询、导出Excel
6.1 分页原则
-
必须分页,不允许加载全部数据
-
每页 20/30/50 条
-
只查需要的字段,不使用 SELECT *
6.2 查询规范
-
条件为空时不过滤
-
日期范围必加
-
支持模糊查询
6.3 导出Excel
-
统一导出样式
-
大数据量分Sheet
-
不卡死界面
- 权限控制与菜单
7.1 权限模型
- 用户 → 角色 → 菜单权限 → 按钮权限
7.2 控制粒度
-
菜单是否可见
-
按钮是否可用(增删改查导出)
-
数据权限(部门/车间)
7.3 菜单规范
-
一级菜单:系统、基础、生产、质量、设备、报表
-
二级菜单:功能模块
-
三级菜单:具体页面
- 异常处理与日志
8.1 异常处理原则
-
UI层捕获,不抛给用户
-
业务层校验,提前提示
-
数据层记录日志
8.2 日志必须记录
-
错误信息、堆栈、时间、用户、IP
-
关键操作:增删改、导出、打印、登录
- 打印、条码、扫码通用方案
9.1 扫码枪
-
监听键盘事件
-
自动过滤多余字符
-
自动触发查询
9.2 条码/标签打印
-
支持批量打印
-
模板化设计
9.3 报表打印
-
固定纸张大小
-
先预览后打印
- 部署与打包规范
-
.NET Framework 版本匹配
-
数据库脚本版本管理
-
config配置文件分离
-
正式环境禁用调试模式
- 老程序员Winform开发20条军规
1. 能复用就不重写
2. 能简单就不复杂
3. 能小改不大改
4. 禁止写超长方法(一个方法不超过50行)
5. 变量名见名知意,不写a1/a2/b
6. 禁止复制粘贴大段代码
7. 增删改必须加确认框
8. 敏感操作必须记录日志
9. 数据库操作必须加事务
10. 所有窗口必须能关闭、能最小化
11. 查询必须分页
12. 输入必须校验
13. 报错必须提示清楚
14. 不使用过时、弃用的API
15. 配置写config,不写死代码
16. 多用户系统必须考虑并发
17. 部署前必须备份
18. 上线先测试,再正式
19. 保留升级、回滚方案
20. 代码永远为维护者负责