【发布时间】:2015-06-05 17:45:06
【问题描述】:
我目前正在搜索我们将用于下一个应用程序的框架。目前我们有应用程序使用 winform 运行,我们计划慢慢切换到 WPF(使用新应用程序,然后重构 GUI)。我们是一个由 9 人组成的团队,致力于解决这个问题。
我们有一个大的解决方案(目前有 300 多个 VS 项目,大约 1'500'000 行代码),所以在选择框架时,我们正在寻找能够促进干净代码、良好基础架构的东西,但是也是一个不会减慢(太多)应用程序的框架。
目前,我主要对Prism(完全理解起来似乎有点复杂)和Caliburn.Micro感兴趣。
Caliburn.Micro 似乎更易于使用,但我有点担心所有这些面向约定的东西意味着很多事情将在运行时使用反射来完成。
我说的对吗?或者这是在编译时完成的?
我也不确定是否应该考虑 MVVM Light,因为它缺乏文档/目标应用程序大小。
【问题讨论】:
-
MVVM 不需要很快,因为它的操作往往不会迭代。别担心。就个人而言,我不喜欢约定俗成的方法。
-
你可以试试MugenMvvmToolkit是一个跨平台的框架,也支持WinForms。它非常适合大型项目。文档不多,但例子很多。如果您对项目有任何疑问,我很乐意回答。
-
您能否提供一些您认为会慢的示例(可能来自 Caliburn.Micro 文档)?到目前为止,我发现只有 ViewModelLocator 使用反射/约定,这不是你应该担心的事情
-
@Liero 例如:
<ListBox x:Name="Products" />绑定到VM的“产品”属性,这必须使用反射来获取属性,对吧? -
好的,我不知道这一点,我永远不会这样做,但这不应该是性能问题。如果是这样,没有人说你必须使用这个约定。但这就是我不喜欢 mvvm 框架的原因。您说您希望 MVVM 框架会强制或指导您和您的团队以正确的方式组织代码,但通常 MVVM 框架为您提供了太多的方式,因为它们必须支持所有可能的情况。通过编写自己的组件(例如视图模型的基类、命令或导航等服务),您可以更好地控制团队。
标签: wpf mvvm prism mvvm-light caliburn.micro