10

我在脑海中充实了一个 WPF 业务应用程序,而引起我兴趣的一件事是我应该如何处理使它变得难以置信的模块化。例如,我的主应用程序将简单地包含启动界面、加载模块、连接到服务器等的基础知识。这些模块以类库的形式包含它们自己的逻辑和 WPF 窗口。模块可以定义自己的资源字典,并从主应用程序的资源字典中提取常用画笔等。

实施这种性质的系统的最佳方法是什么?应该如何构建主界面,以便它加载的模块几乎可以改变其用户界面和逻辑的任何方面?

我意识到这是一个相当模糊的问题,但我只是在寻找一般输入和头脑风暴。

谢谢!

4

3 回答 3

9

查看复合客户端应用程序指南

复合应用程序库旨在帮助架构师和开发人员实现以下目标:

从可以由独立团队使用 WPF 或 Silverlight 构建、组装和部署的模块创建复杂的应用程序。

最大限度地减少跨团队依赖,并允许团队专注于不同领域,例如用户界面 (UI) 设计、业务逻辑实现和基础架构代码开发。

使用可促进独立团队之间可重用性的架构。

通过抽象所有团队可用的公共服务来提高应用程序的质量。

逐步集成新功能。

于 2009-03-31T20:24:25.107 回答
2

首先,您可能对SharpDevelop实现感兴趣。它基于它自己的插件系统,称为 AddInTree。它是一个单独的项目,可以在您自己的解决方案中免费使用。一切都在不同的插件中拆分,插件可以通过 xml 文件轻松添加/删除/配置。SharpDevelop 是一个开源项目,因此您将有机会研究如何引入基础架构以及服务总线和跨插件集成。核心插件树可以很容易地移动到 WPF 项目中而不会产生影响。

下一个选项是采用前面已经提到的“复合客户端应用程序指南”(又名Prism,又名CompositeWPF )。您将获得开箱即用的 Unity(对象构建器)支持、事件聚合以及实现的一组有价值的设计模式。

如果您想自己执行一些低级设计和架构,MEF将是最好的选择(尽管我个人喜欢这三个一起工作)。这是 VS 2010 的基础,因此您可以确定该项目将来不会失去支持。

我的建议是详细说明这些方法,并选择最适合您的需求和项目需求的最佳和有效的方法。

于 2009-04-03T06:56:53.663 回答
1

看看棱镜

于 2009-03-31T20:25:47.430 回答