5

我一直在考虑在开发我们的下一代软件时采用 MvvmCross,主要是为了为其开发平板电脑 UI。我知道 MvvmCross 目前不支持 WPF,但我可以看到我们自己正在开发并回馈它。

但是,我也注意到 MvvmCross 似乎很轻,因为对Prism 指南中描述的复合 UI 的支持很少。不幸的是,我们确实需要允许更复杂的复合 UI 场景。

鉴于https://stackoverflow.com/questions/10224376/mvvmcross-experiences-hindsight-limitations中关于使用 MvvmCross 作为参考分叉或滚动自己的内容,并且鉴于我们确实需要比 MvvmCross 更复杂的 UI 场景提供,最好的行动方案是什么,分叉并重新实现我们需要的 prism 部分,尝试让 MvvmCross 与 Prism 一起工作,或者从 MvvmCross 和 MonoCross 的灵感中开发我们自己的?

4

1 回答 1

6

更新:请参阅下面的第二个答案...


明天我可能需要写一个更长的答案...

作为初步答案:

  • 有人已经将 MvvmCross 移植到 Silverlight,开发人员建议这可能会提供给更广泛的社区
  • MvvmCross 的 PCL 版本应该非常直接地移植到 WPF - 尽管如果需要较旧的 .Net 运行时版本可能不是
  • 作为迄今为止 MvvmCross 的首席开发人员,我个人对支持 WPF 很感兴趣——尤其是现在我的项目http://github.com/slodge/BallControl需要在桌面上运行(Windows 应用商店已瘫痪——呸! )
  • MvvmCross 支持复合 UI - 例如选项卡、枢轴、全景图、拆分、模态子级等 - 但在 Prism 中常见的完整复合 UI 上还没有做太多工作。
  • 我见过人们将 MvvmCross 与其他 IoC 框架结合起来,但是(据我所知,没有工作)迄今为止已经完成了将 MvvmCross 与 MEF(通常与 Prism 一起使用?)

如果我正在解决这个问题领域,那么我会这样做:

  1. 确保我们首先尝试制作一个可以工作的应用程序——应用程序比框架更重要。
  2. 对于框架,我会尝试首先移植基本的 IoC 设置和一些简单的导航
  3. 对于自定义导航(用于在区域中显示 UI),我会查看演示者在 MvvmCross 中的角色 - 这是我在 Tab 示例、iPad 拆分视图示例等中使用的,以提供复杂的 UI 功能。
  4. 如果这个自定义导航还不够,我会看看它是如何更改/替换/扩展的 - 我的猜测是 WPF/Prism 的真正要求实际上与更大的 iPad、Surface 和 Nexus 的真正要求非常相似平板电脑应用程序。
  5. 我会尽量保持一切模块化和可选性,这样小型手机应用程序就不必引入大型应用程序可能需要的大型导航过程。这样做的缺点可能是很多项目和 DLL!
  6. 我也愿意将这种拆分成单独的项目——现代软件世界的大部分是由小型目标应用程序而不是更大的、庞大的框架统治的。
  7. 因为我是 Mvx 的兼职,而这是你的全职工作,我绝对建议你不要让 Mvx 阻碍你!

我最初的反应是“是的,我真的很想从事这个工作”——缺点(如上)是我只有空闲时间在 mvx 上......


这是第二个答案...


有一个关于这个的视频 - 有一些解释:http: //youtu.be/pYkLxqpu_5E


这显然只是 Wpf 支持的第一步,但我怀疑它已经满足了相当多的用例......请随时 fork 源代码树并扩展或替换第一次尝试。此外,如果它对您不起作用,请随意放弃它并尝试其他方法。

我会尝试在这方面做更多工作——但不能把它放在有偿工作之上……但我也愿意接受有偿在 mvvmcross 上工作:)

于 2012-12-13T16:50:02.827 回答