我有兴趣使用Mono编写一些跨平台代码,以期针对移动iOS和
Android运行时.
我已经仔细阅读过Mono和MonoTouch网站,但是没有看到任何特别建议不使用的方法,或Mono钩子应该避免.然而,这似乎有点太好了.
在进入这个项目时,我应该注意哪些限制,以确保代码的最大可移植性?
解决方法
API智能你在使用MonoTouch或Mono for Android(M4A)时得到一个非常相似的基类库(BCL),因为它们共享相同的移动配置文件(最初基于Silverlight配置文件并增强使用更多的FX 4.0 API).
这是很多常见的代码. BCL的差异很小但有些确实存在,主要是因为在iOS设备上运行需要一些妥协,这会产生一些limitations.
在BCL之外,MonoTouch和M4A都为他们的平台提供绑定.例如. MonoTouch提供了monotouch.dll,它绑定了大多数iOS(基于C或基于ObjectiveC的)API.该部分不适用于Android的Mono(对于M4A提供的Android绑定也是如此).
这就是你需要设计一个最小化差异的地方.在许多情况下,最不同的方面是用户界面,并且有一些方法,其中许多方法基于MVC(例如MonoCross),以使开发人员更容易,同时为每个平台启用本机外观.