不知读者们是否听说过MonoTouch,下面来介绍一下。
MonoTouch是Mono运行时的一个移植版本,附带了一个适配器层,以便.NET开发人员能够使用原生的iPhone GUI工具包。MonoTouch在Mono的世界中是独一无二的,因为它是Novell发布的第一个商业Mono产品。如大家预料的一样,引起了社区的强烈反应。
包含在MonoTouch中的主要组件是:
◆MonoTouch.dll,访问iPhone原生API的C#互操作程序集(基础类、Quartz、CoreAnimation、CoreLocation、MapKit、Addressbook、AudioToolbox、AVFoundation、StoreKit和OpenGL/OpenAL)。
◆命令行SDK,用来编译C#代码和其他CIL语言代码,让它们可运行于iPhone模拟器或iPhone/iPod Touch设备中。
◆Mono运行时的商业许可(让你的代码可以使用Mono运行时的静态连接引擎)。
◆MonoDevelop插件,让iPhone开发更加简单,并集成了Interface Builder以方便创建GUI应用程序。
对MonoTouch一个常见的异议,就是大家认为Objective-C已经是iPhone开发最适合的语言。然而,Miguel de Icaza宣称,C#具有一些重要的优势。
随着mtouch命令和互操作功能的完成,我们开始尝试把Apple iPhone例子由Objective-C移植为C#。在这个过程中,我们发现两件事情:C# 3.0的构造器的初始化器是个非常棒的功能。
并且,这些被移植后的例子只有同样的Objective-C程序的一半体积。
Miguel接着解释到,MonoTouch的XML+分部代码隐藏类的方式如何消除Objective-C头文件和代码文件所需的那种冗长繁复。
大家的另外一个不满就是,MonoTouch不是开源的。新购买的单用户许可每年每人需要支付399美元,而企业版则需要支付夸张的999美元/每用户。由于和Apple的iPhone SDK紧密的集成在一起,程序员还是必须使用Mac来进行开发。
【编辑推荐】