Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 使用MVVMCROSS时的主要挑战是什么


使用MVVMCROSS时的主要挑战是什么


MVVMCROSS是一个流行的框架,用于使用模型视图模型(MVVM)模式来构建跨平台应用程序。尽管它提供了许多好处,例如数据绑定和依赖注入,但与其使用相关的挑战存在一些挑战。

###框架组件中的缺陷

MVVMCross的主要挑战之一是其某些组件中存在缺陷,尤其是与支持数据绑定的Android和iOS视图相关的缺陷。这些缺陷可能导致UI问题,并需要其他调试工作。由于MVVMCross是开源的,因此用户可以贡献修复程序,但是对于开发人员而言,这并不总是很简单的,而没有广泛了解该框架的内部设备[3]。

###启动速度

与其他框架相比,MVVMCross应用程序通常经历较慢的启动时间。这在很大程度上是由于初始化过程中使用的基于反射的机制,这些机制是框架架构所固有的。尽管通常在Xamarin应用程序中也很常见,但对于预期快速应用程序启动的用户来说,它可能是一个缺点[3]。

###升级疼痛

升级MVVMCROSS版本可能会具有挑战性,这是由于命名惯例和行为的重大变化。该文档通常落后于这些更新,从而难以找到解决新问题的解决方案。这导致了漫长的,有时令人沮丧的升级过程[3]。

###文档质量

MVVMCROSS文档的质量是另一个挑战。它通常包含拼写错误,缺乏全面的参考材料,并包含断开的链接。开发人员经常必须深入研究框架的源代码,以查找准确的信息,这可能是耗时的,需要很好地了解框架的体系结构[3]。

###过时的样本

MVVMCross提供了一个示例项目的存储库,但是其中许多样本已过时,并且与框架的最新版本不兼容。这使得新开发人员很难开始或现有开发人员适应框架的更改。只有少数样本被积极地维护,这限制了它们对学习和故障排除的有用性[3]。

###数据绑定限制

尽管MVVMCross支持数据绑定,但某些结合模式(例如一次性结合)较少使用,并且可能不适合所有情况。此模式不会主动监视ViewModel的更改,如果无法正确管理,可以在视图中导致过时的数据[1]。

###导航和生命周期问题

在视图模型和管理其生命周期之间导航可能很复杂,尤其是在处理诸如Android上的墓碑之类的平台特定行为时。 MVVMCross提供了生命周期方法来帮助管理这些方案,但是掌握它们需要对框架和基础平台细节有很好的了解[7]。

###控制和服务定位器的倒置

MVVMCross的内置服务定位器模式和控制(IOC)支持是强大的功能,但它们需要仔细的设置和管理。如果没有正确组织,则注册服务和解决依赖关系可能会变得复杂,尤其是在较大的应用程序中[3] [6]。

总而言之,尽管MVVMCross为跨平台开发提供了许多好处,但它提出了与缺陷,性能,文档和复杂性有关的几个挑战。解决这些挑战需要深入了解框架及其基本技术。

引用:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://github.com/mvvmcross/mvvmcross/issues/4201
[3] http://wojosoftware.com/software/mvvmcross/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-usion-app-anp-setup
[5] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phote-phote-build-mvvm-mvvm-apps-with-xamarin-and-mvvmcross
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://stackoverflow.com/questions/16301045/mvvmcross-v3-is-rong-to-trong-trong-trong-tron-to-behaviours-behaviours-and-sporyboard in-a-mu