- 产品发行. 尽量减少对其他组件的依赖.
- 报告bug
- 非正常关闭, 数据文件或配置文件损毁
- 自身版本. 每个软件都会打补丁和升级, 自然就会面临版本问题.
- 提供API返回当前运行程序的版本以及每个组件的版本, 以及打过的补丁列表
- 列出当前计算机上的所有本软件的版本以及每个版本的补丁
- 补丁的安装,卸载, 冲突
- 是否允许多个版本共存?
- 兼容旧版本的文件格式
- 升级时备份旧版本产生的数据, 比如配置文件
- 持久数据(文件, 通讯协议)必须有版本
- 平台或者第三方组件的版本.
- 必须获得运行平台极其第三方组件的版本.
- 跨平台支持: PC/手机, Windows/Mac/Linux, 各种数据库, 各种浏览器
- 字符编码. 存储/传输文本时必须指定字符编码, 以便下次或者其他程序识别.
- 日志. 如何快速地找到客户环境下产生的bug的位置和原因? 日志必不可少.
- 记录运行环境信息: OS版本, CLR版本, 程序版本, 每个组件的版本, System Directory, Application Installation Directory, User, Working Directory...
- 记录当前使用地配置文件路径, 以及配置参数
- 可设置成debug模式, 记录详细的运行信息
- 备份. 包括: 修改之前的配置文件, 正在编辑的数据文件...
- 自动更新. 通过网络自动更新, 包括补丁, 最新版本等.
- 绝大多数参数可在配置文件中配置. 比如: 字体, 颜色等
- 命令行. 用户可以在批处理程序中调用.
- 成为COM组件. 让其他程序能直接调用自己的功能.
- 安全
- 本机用户密码的保存, 登录时"保存密码"功能
- UI
- Theme, 自定义字体, 颜色
- 屏幕分辨率, DPI
- Globalization
- Tab order
- Auto complete
- Keyboard shortcuts
- Dashboard以及功能的快捷方式
- Copy&paste
- Undo
- Recent objects : words/urls/files/pages...
- 多线程
- 后台线程和UI线程交互
- 打印(到纸张, PDF等)