Xamarin.Forms与Xamarin Mvvmcross对比

5
我们计划在下一个大项目中采用Xamarin技术。 看起来Xamarin.Forms已经足够成熟,可以用于生产项目。 但我仍然想听听你们专家的建议-我们应该选择使用Xamarin.Forms还是采用带有MvvmCross架构的Xamarin? 这个项目对我们的客户来说非常重要。

很抱歉要说,但如果这是一个重要的大型项目,我建议您学习更多关于这个主题的知识。Xamarin.Forms 和 Xamarin with MvvmCross 是可以结合使用的。这并不意味着使用其中一个就不能使用另一个。因此,在做出正确决策之前,似乎您需要在这个问题上获得更多的知识。 - Gerald Versluis
@Gerald 我知道我们可以使用Mvvm来进行Xamarin.Forms开发,但是...我想换个方式问,使用Mvvmcross的Xamarin.Android与使用Mvvmcross的Xamarin.Forms相比如何?我想检查性能方面的差异。 - VPatil
取决于您从UI角度预期什么。应用程序是否有大量自定义UI?事物是否需要与本机控件不同的样式?如果您预计这些类型的要求,那么Xamarin.Android和Xamarin.iOS w / MvvmCross是一个很好的解决方案,因为它通过Mvvm为您提供了增加的代码共享,但在UI方面也完全灵活。根据我的X.Forms经验,编写自定义渲染器所花费的时间通常抵消了节省的时间。 - pnavk
2个回答

23

我们大约18个月前尝试了Xamarin.Forms,因此这个经验可能已经过时,但我们发现Xamarin.Forms不适合生产项目。当然,在多个平台上快速运行基本数据捕获应用程序非常容易,但我们发现它的UI功能受限,最终我们不得不在许多地方编写自定义渲染器,这使代码变得更加复杂。

依我之见,Xamarin.Forms试图以错误的方式解决多平台问题 - 通过尝试为每个平台的UI元素提供共同的包装器。这意味着您总是能够使用Xamarin out-of-the-box完成更多工作,而使用Xamarin.Forms则总是要与最常见元素的最低公共分母实现进行斗争,同时需要为更高级的UI编写自己的代码。

相比之下,MvvmCross方法旨在将尽可能多的业务逻辑整合到单个库中,同时使您可以自由地在每个平台的UI中实现所需。您可以将80-90%的代码放入共享库中,同时完全自由地为每个平台实现所需的UI。在我看来,这是一种更清晰的解决多平台问题的方式。


我想使用Xamarin.android而不是Xamarin.forms,但实际上所有网络上的示例,包括Pluralsight课程和Youtube视频,都涉及到Xamarin.forms。这让人们误以为它是唯一的选择! - Post Impatica
3
是的,微软正在大力推广.Forms方法。他们仍然沿用桌面时代的思维方式,即您可以将WinForms应用程序随意拼凑在一起,用户也能使用,因为被告知要使用什么。在移动设备上,用户体验需要更加强调,如果这是您的目标,那么.Forms方法是错误的选择。关于MvvmCross,有一门相对较新且非常好的Pluralsight课程: https://www.pluralsight.com/courses/mvvm-based-architecture-xamarin-mobile-apps - Adrian Frielinghaus
@Helzgate 只需查看 xamarin.android 的本机 Android 示例即可。在编写 xamarin.android 之前,我曾经编写真正的本机代码,并将其转换为 .net / c#等效的 Java 非常微小。 - ClintL

1

3
尽管你的答案可能是100%正确的,但如果该链接被移动、更改、合并到其他链接或该主站点消失了,它也可能变得100%无用。因此,请编辑你的答案,并将链接中的相关部分复制到答案中,从而确保你的答案在本站点寿命期间始终有效!你可以在答案底部留下链接作为材料来源。 - Piotr Labunski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接