4

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

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

4

1 回答 1

1

MonoCross是 Xamarin 代码之上的一个非常薄的层。(看到右上角的 Xamarin 贴纸了吗?)
他们提议在不同的实现中重用相同的 MVC 代码,例如 MonoTouch 和 MonoDroid。

抽象出 MVC 适用于小样本,但这些人似乎虔诚地相信 100% 的代码共享——我不赞成这一点。这是一个美丽的概念,但它在现实生活中从未奏效。

制作出色的应用程序很难,但我不认为这很困难,因为数据库技术不同,或者因为您必须为 ASP .NET MVC、MonoTouch 或 MonoDroid 编写类似的类。如果这是软件开发的真正挑战,我们早就在很多年前解决了。

MonoCross 似乎是一种过早泛化的练习——所有程序员都喜欢的东西。
但是抽象不是免费的。想想 Eric Gunnerson 的这则轶事:

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

当团队发现一项操作需要大约 4 倍的时间时,问题就出现了。但是由于执行操作的组件的通用性,没有简单的方法来优化它。

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

(重点是我的。)

虽然MonoCross 开发人员似乎对此充满热情,但该项目周围似乎没有社区,而且我找不到基于 iFactr 或 MonoCross 构建的单个应用程序。

话虽如此,我不认为他们提供任何比 MonoTouch 或 MonoDroid 更有价值的东西。
在旁注中,米格尔同意:-)

于 2012-12-27T19:32:17.737 回答