【发布时间】:2011-09-12 11:16:16
【问题描述】:
我习惯于 WPF 开发。但最近,我被分配到 Windows 窗体项目。幸运的是,应用程序框架支持可插拔架构,这就是为什么我觉得我可以在 WPF 中开发插件。
如果我们安全地假设框架只需要一个接口来检测插件,我有以下问题:
- 首先,针对给定场景开发 WPF 插件是否是个好主意?
- 是否有我应该遵循的指导方针?有什么例子吗?
- 专门为 WPF 插件设计一些抽象层而不是依赖于接口是不是一个好主意?
提前致谢。
【问题讨论】:
我习惯于 WPF 开发。但最近,我被分配到 Windows 窗体项目。幸运的是,应用程序框架支持可插拔架构,这就是为什么我觉得我可以在 WPF 中开发插件。
如果我们安全地假设框架只需要一个接口来检测插件,我有以下问题:
提前致谢。
【问题讨论】:
是的,我们有一个名为“插件”的大型项目,它基本上是通过附加应用程序域加载的 WPF 应用程序/Windows。
我认为你的情况取决于你的 Windows 窗体是在 .NET 2 还是 .NET3.5 中。如果它是 .NET 3.5,那么您不需要额外的应用程序域来使用 WPF 加载 .NET 3.5。
如果您的 WinForms 已经在 .NET 3.5 中,那么您可以使用 ElementHost 在 WinForms 中托管您的 WPF。
除了一些小故障(比如有时没有重新绘制表格),在我们的例子中它进展得相当顺利
至于你的问题:
通常最好在 WPF 中做所有事情,但是你有选择吗? (我不这么认为)
在 WPF ElementHost 上查找示例
好吧,我会将 MVVM 与 WPF 一起使用,以便稍后您可以在不更改大部分业务层逻辑的情况下更改 UI 位(可能是 Silverlight 或 Win8 Metro)
【讨论】: