2

不久前,我发布了一个关于在 Blend 创作的 GUI 和 Visual Studio 创作的 GUI 之间切换的问题。通过将我的 Blend 项目添加到我的 VS2008 项目中,然后更改启动应用程序并重新编译,我让它正常工作。这将导致两个应用程序具有完全不同的 GUI,但使用完全相同的 ViewModel 和 Model 代码。我对此很满意。

既然我已经了解了 Laurent Bugnion 的 MVVM Light Toolkit,我真的很想利用他的努力来使支持同一后端代码的多个 GUI 的过程成为可能。问题是,工具包是否促进了这一点,还是我坚持以前的方式?

我在 MIX10 上看过他的视频,并在网上阅读了一些关于它的文章。但是,我还没有看到表明有一种干净的方法允许用户通过加载不同的 DLL 动态切换 GUI。VS2008 和 Blend 3 有 MVVM 模板,但我是否应该为我的应用程序创建这两种类型的项目,然后从我的 VS2008 解决方案中引用特定文件?

更新 我重新阅读了 Laurent 网站上的一些信息,似乎忘记了模板的全部意义在于允许在 VS2008Blend中打开相同的解决方案。所以无论如何,从这个新视角来看,模板实际上是打算使用单个 GUI,很可能完全在 Blend 中设计(通过 VS2008 方便调试),然后能够使用两种不同的 ViewModel——一个用于设计时,一个用于运行时。

所以在我看来,我的问题的答案是我想结合使用我以前的解决方案以及 MVVM Light Toolkit。前者将允许我围绕我的核心代码制作多个不同的 GUI,而后者将通过使用设计时 ViewModel 使在 Blend 中设计精美的 GUI 变得更容易。任何人都可以对此发表评论吗?

4

2 回答 2

2

我检查了你的上一个问题和这个问题,但我从未真正听说过将项目切换到 Blend 和 Studio 中工作,并最终得到两个不同的 UI。我认为这不是 MSFT 在构建 Blend 时的意图。相反,在两个 IDE 中打开完全相同的项目和代码文件的可能性(以及我与 MSFT 的各个团队进行的所有讨论)暗示,事实上,意图是只有一个可以在两种环境中编辑的应用程序。

我认为最终的目标是拥有各种可用于编辑 UI 的工具——XAML、Visual Studio 设计器、Blend。根据您在项目中的角色(开发人员、设计师、集成商)以及您使用工具的能力,您可以选择其中一种。

这并不意味着我们从不切换模板!根据应用程序的类型(例如,在 SL4 桌面应用程序或 WinPhone7 应用程序之间),我们使用相同的 ViewModel(及以下)代码,但在文件上完全使用不同的 UI。我在这个视频中演示了如何做到这一点:http: //channel9.msdn.com/posts/kreekman/TechDays-2010-Understanding-the-Model-View-ViewModel-pattern/

这与我在 MIX 上的演讲相同,但延长了 15 分钟,我展示了如何重用 ViewModel 和模型文件,但为 WinPhone7 使用完全不同的 UI。

另一个应用程序是在调整窗口大小时切换模板(在 WPF 中经常使用,但也适用于 Silverlight),以便为不同的屏幕尺寸显示更少的细节或不同的布局。

我希望这个回复不会让您感到困惑 :) 事实上,在我们继续讨论之前,我很想听听您对此的评论。

干杯,劳伦特

于 2010-05-25T08:10:37.413 回答
0

我认为MEFedMVVM将是一个很好的候选人。它很简单,您可以将它与其他框架结合使用。

于 2010-05-24T18:35:37.733 回答