gpt4 book ai didi

wpf - MVVMCross 和 Prism 组合

转载 作者:行者123 更新时间:2023-12-04 18:46:16 25 4
gpt4 key购买 nike

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

但是,我也注意到 MvvmCross 似乎很轻,因为它几乎不支持复合 UI,如 Prism guide 中所述。 .
不幸的是,我们确实需要允许更复杂的复合 UI 场景。

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

最佳答案

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

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

作为初步答案:

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

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

  • 我最初的 react 是‘是的,我会是 真的对此感兴趣' - 缺点(如上所述)是我只有空闲时间在 mvx ....

    这是第二个答案...
  • 我以 MvvmCross 的 WinRT 版本为基础(但也使用了 Console、WP7、Touch 和 Droid 的元素)
  • 我制作了一个简单的 WPF 版本的 MvvmCross - https://github.com/slodge/MvvmCross/tree/vnext/Cirrious/Cirrious.MvvmCross.Wpf
  • 这个版本的主要特点是它不包含太多的导航方式
  • 例如不要尝试回电!
  • 例如主presenter留给应用程序 UI 的抽象实现 - 见 https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Wpf/Views/MvxWpfViewPresenter.cs


  • 然后我使用了 TwitterSearch 演示应用程序 - https://github.com/slodge/MvvmCross/tree/vnext/Sample%20-%20TwitterSearch/TwitterSearch.UI.Wpf
  • 创建了一些简单的 View (使用 WP7 版本的 Xaml 剪切和粘贴)
  • 创建了一个简单的基于区域的演示者 - 看看如何RegionAttribute用于 https://github.com/slodge/MvvmCross/blob/vnext/Sample%20-%20TwitterSearch/TwitterSearch.UI.Wpf/MultiRegionPresenter.cs并在 https://github.com/slodge/MvvmCross/blob/vnext/Sample%20-%20TwitterSearch/TwitterSearch.UI.Wpf/MainWindow.xaml.cs
  • 就是这样……花几个小时的调试时间

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

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

    我会尝试在这方面做更多的工作 - 但不能真正将它放在有偿工作之上......但我也愿意为 mvvmcross 工作而获得报酬:)

    关于wpf - MVVMCross 和 Prism 组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13863152/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com