使用Prism库开发模块化应用程序
关键决策
您需要做出的第一个决定是是否要开发模块化解决方案。正如前面讨论的一样,构建模块化应用程序会有许多好处,但是需要您付出时间和精力才能获得这些好处。如果您决定开发一个模块化解决方案,那么还需要考虑以下几点:
- 确定你将使用的框架。 您可以创建自己的模块化框架、使用Prism框架或其他框架。
- 确定如何组织你的解决方案。 模块化架构需要定义每个模块的边界,包括每个模块包含哪些程序集。您可以决定使用模块化来简化开发,但还需要控制应用程序的部署方式或它是否支持插件或可扩展架构。
- 确定如何分割你的模块。 模块可以根据需求进行不同的划分,例如根据功能区域、提供者的模块、开发团队和部署需求。
- 确定应用程序将提供给所有模块的核心服务。 例如核心服务可以是错误报告服务或身份验证和授权服务。
- 如果你使用Prism,则需要确定注册模块到模块目录的方法。 对于WPF,你可以在代码、XAML和配置文件中注册模块,或者在本地磁盘目录中发现模块。
- 确定模块之间的通信和依赖策略。 模块需要相互通信,以及你需要处理模块之间的依赖关系。
- 确定你的依赖注入容器。 通常模块化系统需要依赖注入、控制反转或服务定位器来允许模块的松耦合和动态加载以及创建。Prism允许您在使用Unity或DryIoc之间进行选择,并为基于Unity和DryIoc的应用程序提供了相应的库。
- 最小化应用程序启动时间。 考虑按需和后台下载模块以最小化应用程序启动时间。
- 确定部署需求。 你需要考虑如何部署应用程序。
接下来的几节将提供有关其中一些决策的详细信息。