0

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

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

提前致谢。

4

2 回答 2

2

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

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

在此处输入图像描述

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

在此处输入图像描述

于 2013-12-22T15:03:38.507 回答
0

我不知道最近有谁这样做过,但我最初在第一次创建 MvvmCross 时移植了几个 MonoCross 示例。一页对一“ViewModel”的总体理念保持不变,尽管 mvvm 绑定提供了比更离散的 Controller-Action 模型更连续的 view-viewmodel 交互。

在实践层面:

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

我怀疑这种迁移的最佳选择是让您的团队进行实验——他们已经对您的应用程序以及他们需要和不需要什么以及他们从框架中获得和没有获得的好处有很多了解。

于 2013-11-24T23:21:25.457 回答