1.2 建议的项目组织结构
1. 组织方式
Prism最大好处是进行模块化方式开发,在项目组织时也需要贯彻这一思想。笔者建议的项目组织方式是:
- 主项目
- 共享项目,共享项目包含公共信息,其他项目均引用该项目。
- 多个应用服务模块
- 多个功能模块
- 测试项目
项目的命名以主项目名.模块名命名。
以笔者领导开发的二级库项目为例,项目组织方式如下:
项目包图如下:
其中SecondaryCache为主项目,SecondaryCache.DbAccess,SecondaryCache.Hardware为应用服务模块,SecondaryCache.Infrastructure为共享项目,SecondaryCache.MaintainModule,SecondaryCache.OperateModule,SecondaryCache.QualityMgrModule为功能模块,SecondaryCache.DbAccess.Test为测试项目。MaterialDesignThemes.Wpf是第三方控件,Microsoft.EntityFrameworkCore.SqlServer是Database to Object 映射包。
2. 主项目包含什么?
主项目一般包含:
- Shell
- Bootstrapper
- 自定义日志系统(可选)
- 资源文件,包含文本,图片,音频及视频资源(可选)
- 样式文件(可选)
- Views及ViewModels文件夹(可选)
以笔者二级库项目为例,包含内容如下,
Shell.xaml,ShellViewModel.cs定义Shell。SecondaryCacheBootstrapper定义Bootstrapper类。LoggerAdapter为自定义日志系统类,使用log4net系统。Resource定义资源文件,Theme包含样式文件。View及ViewModels包含公共的View。
3. 共享项目包含什么?
共享项目包含:
- 公有的控件行为,
- 数据绑定转换器,WPF数据绑定机制允许将一个类型数据转换为另一个类型。
- 事件
- 接口
- Model
- 公共信息
- 帮助类
4. 应用服务需要包含什么?
应用服务模块定义服务,使用单一接口与外界交互。
5. 功能模块需要包含什么?
功能模块依据不同项目包含不同内容,是View及ViewModel集合。
6. 测试项目需要包含什么?
测试项目主要是为了测试单个模块的准确性,一般是一个模块一个测试项目。测试可以使用VS自带框架及xUnit,NUnit等第三方框架。