Monocross / HTML5与MonoDroid / MonoTouch / Windows

时间:2012-12-26 14:56:26

标签: html5 xamarin.ios cross-platform xamarin.android monocross

我一直在阅读关于Monocross的一些内容,它似乎支持与ASP.NET MVC非常相似的模型。它可以使用HTML5 / CSS / Javascript作为UI。

最初直接关注MonoDroid和MonoTouch,它鼓励开发人员使用设备本机控件进行开发。我是否正确地说Monocross支持在所有设备上使用HTTP / GET / POST的HTML / CSS / Javascript? MonoDroid / MonoTouch支持跨平台开发一直到UI,但这种方法似乎理论上得到100%(或接近)代码重用。这是对的吗?

1 个答案:

答案 0 :(得分:1)

MonoCross is a very thin layer on top of Xamarin's code。 (看到右上角的Xamarin贴纸?)
它们提供了在不同实现中重用相同的MVC代码,例如MonoTouch和MonoDroid。

抽象远离MVC适用于小样本,但这些家伙似乎虔诚地相信100%的代码共享 - 我不赞成。这是一个美丽的概念,但它从未在现实生活中发挥作用。

制作优秀的应用程序很难,但我认为这很难,因为数据库技术不同,或者因为你必须为ASP.NET MVC,MonoTouch或MonoDroid编写类似的类。如果这是软件开发的真正挑战,那么多年前我们就已经解决了这个问题。

MonoCross似乎是premature generalisation中的练习 - 所有程序员都喜欢这种练习 但抽象不是免费的。想想Eric Gunnerson的这个轶事:

  

我知道那些滚雪球的团队 - 他们最终得到了一个用于许多不同场景的“瑞士军刀”组件。就像许多组件做得很多,它很大,很复杂,并且有很多难以理解的行为。 但是开发它对于所涉及的开发人员来说是一个有趣的技术挑战(读作“有趣且有益于他们的职业”......)

     

问题发生在团队发现一次操作需要的时间长达4倍之后。但是由于执行操作的组件的广义性质,没有简单的方法来优化它。

     

如果操作是在不使用“超级组件”的情况下从头开发的,那么可以采用几种简单的优化方法。但是这些都不适用于通用组件,因为您无法在一个场景中实现优化 - 它必须适用于所有场景。你无法负担开发成本使其在任何地方都可以工作,在这种情况下,即使你可以,也会导致性能在其他情况下退化。

(重点是我的。)

虽然MonoCross developers seem enthusiastic about it,但项目周围似乎没有社区,我找不到构建在iFactr或MonoCross之上的单个应用程序。

话虽如此,我认为它们不会提供超过MonoTouch或MonoDroid的任何有价值的东西 在旁注上,Miguel approves :-)