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