是否可以将MonoCross应用程序逐步迁移到MvvmCross?

时间:2013-11-22 16:22:45

标签: xamarin.ios xamarin.android mvvmcross monocross

我所在的团队创建了一个跨平台的应用程序,该应用程序在iOS,Android和Windows Mobile上运行,使用Xamarin的工具和MonoCross创建。我们将MvvmCross视为可能的MonoCross替代品,但不想从头开始编写应用程序。

有没有人有过将Xamarin / MonoCross跨平台应用程序迁移到Xamarin / MvvmCross的经验或想法?这两个框架是否有可能在同一个应用程序中共存(理想的解决方案是让我们一次将应用程序迁移到一个屏幕)。

提前致谢。

2 个答案:

答案 0 :(得分:2)

根据Stuart的建议,我确认可以将MvvmCross集成到现有的MonoCross应用程序中。

在原始代码中,View 1上的选择使用MonoCross URI导航启动对Controller 2的调用。控制器2显示视图2,从模型2传递数据。

enter image description here

按照this视频中的示例,我创建了一个MvvmCross View和ViewModel。 View 1上的选择仍然导航到Controller 2,但Controller 2现在显示新的MvvmCross View 2. View 2是绑定到ViewModel 2的数据,它接管Controller 2获取Model数据的功能。

enter image description here

答案 1 :(得分:0)

我不知道最近有人这么做过,但是在我第一次创建MvvmCross时,我最初移植了几个MonoCross样本。尽管mvvm绑定提供了比更离散的Controller-Action模型更多的连续视图 - 视图模型交互,但是一个页面到一个“ViewModel”的整体思想保持不变。

在实践层面:

  • MvvmCross本身非常模块化,可以在“CrossLight”模式下使用,它只提供数据绑定和插件 - 请参阅http://mvvmcross.wordpress.com/中的CrossLight。您可以使用它来逐个迁移页面
  • MonoCross实际上不是非常基于接口/ IoC的 - 因此您可能会发现您的MvvmCross迁移也不会基于接口
  • MonoCross应用程序倾向于使用文件链接和#define而不是PCL - 因此您可能会发现在MvvmCross中不使用PCL更容易

我怀疑此迁移的最佳选择是让您的团队进行实验 - 他们已经掌握了很多关于您的应用的知识,以及他们做什么和不需要什么以及他们做什么和从框架中获得的好处