BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Mono的第一个商业版本:MonoTouch

| 作者 Jonathan Allen 关注 612 他的粉丝 ,译者 朱永光 关注 0 他的粉丝 发布于 2009年9月20日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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来进行开发。

查看英文原文:Mono’s First Commercial Release: MonoTouch

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

不是说苹果不让第三方的语言在上面运行吗? by yibing zhang

不是说苹果不让第三方的语言在上面运行吗
如果是真的话还是C#比Objective-C要好用啊
成本也低啊

不出意料,MONO果然要收费了 by Lee Jet

这世界没有免费的午餐,MONO作为第一个可移植.Net framwork,被广大.net开发人员所关注,往往大家都误以为跨平台就是免费。然而忽视了MONO本身是有一个商业性的公司所开发的,这注定它天生是不会免费。

现在做iPhone应用的大部分都在用本地网页技术了 by wen bob

只需要一个通用的webkit框架,把网页加载显示,就OK了,程序本身都是用javascript的,这种程序还很容易就移植到Android平台。我现在负责的项目都是这么做的。mono注定卖不出多少的,呵呵。

Re: 现在做iPhone应用的大部分都在用本地网页技术了 by Chu Kevin

iPhone上的很多程序都不是用webkit和JavaScript开发的吧?这种模式,在WM6.5也支持。但是个人感觉还是客户端程序更好。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

4 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT