在今天的一个本地。net活动上,Mono的使用被“提及”为iPhone开发的替代方案。在c#和。net中非常舒适,这似乎是一个有吸引力的选择,尽管Mono堆栈有一些奇怪的地方。然而,由于MonoTouch的售价为400美元,我有些纠结于这是否是iPhone开发的发展方向。
有人用MonoTouch和Objective-C开发过吗?如果是的话,用MonoTouch开发比学习Objective-C更简单、更快,而且值得花400美元吗?
在今天的一个本地。net活动上,Mono的使用被“提及”为iPhone开发的替代方案。在c#和。net中非常舒适,这似乎是一个有吸引力的选择,尽管Mono堆栈有一些奇怪的地方。然而,由于MonoTouch的售价为400美元,我有些纠结于这是否是iPhone开发的发展方向。
有人用MonoTouch和Objective-C开发过吗?如果是的话,用MonoTouch开发比学习Objective-C更简单、更快,而且值得花400美元吗?
当前回答
如果这是你唯一要开发的iPhone应用程序,而你对开发Mac应用程序毫无兴趣,那么MonoTouch可能是值得的。
如果你想要开发更多的iPhone应用,或者想要做一些Mac原生开发,那么学习Objective-C和相关框架可能是值得的。另外,如果你是那种喜欢学习新东西的程序员,这是一个有趣的新范式。
其他回答
我会花时间在Objective-C上,主要是因为你可以从这样的网站上得到帮助。Objective-C的优点之一是你可以使用C和c++代码,而且有很多项目都经过了很好的测试。
另一件事是你的代码(语言选择)将被苹果支持。什么是ios5。例如,x删除了对第三方解决方案如MonoTouch?你会怎么告诉你的客户?
如果你还没有完全准备好转向Objective-C,也许使用HTML5等独立于平台的解决方案会更好?
三个字:Linq to SQL
是的,很值。
MonoTouch库的成本完全不是重点。你不应该在你的iPhone应用中使用Mono的原因是,它是一种拐杖。如果您懒得学习本机工具,那么我就没有理由相信您的产品值得下载。
编辑:4/14/2010用MonoTouch编写的应用程序不适合iTunes Store。这是应该的。苹果在Mac上看到了大量的浅端口,使用跨平台工具包,如Qt,或Adobe自己的System 7工具箱的部分重新实现,总之,它们不够好。
我个人认为你只学习Objective-C会过得更好。
简而言之:
“学习Objective-C”并不像你想象的那样令人生畏,你甚至会在最初几周后就喜欢上它 你已经熟悉了含有大量*&(){}的“C风格”语法;到处都是 苹果在记录方面做得很好 你将以苹果公司预期的方式与iPhone互动,这意味着你将直接从源头获得好处,而不是通过某种过滤。
我发现像Unity和MonoTouch这样的项目应该“节省你的时间”,但最终你还是需要学习他们的领域特定语言,有时不得不回避一些事情。所有这些可能会花费你学习你试图避免学习的语言的时间(按日历时间计算)。最后你并没有节省任何时间,而是与某些产品紧密耦合。
编辑:我从未想过要暗示任何关于。net的负面信息,我只是碰巧是它的忠实粉丝。我的观点是,仅仅因为你还不习惯古怪的objc括号符号,就添加更多的复杂性层,对我来说真的没有多大意义。
2019年更新:7年过去了。我现在仍然有同样的感觉。当然,使用“领域特定语言”可能是错误的,但我仍然相信,最好直接为您正在使用的平台编写,并尽可能避免兼容层和抽象。如果你担心代码重用和重做,一般来说,你的跨平台应用需要执行的任何功能都可以通过现代web技术来完成。
补充一下其他人已经说过的话(好吧!):我的感觉是你基本上把你需要担心的bug数量增加了一倍,把MonoTouch中的bug添加到iPhone OS中已经存在的bug中。更新新的操作系统版本将比正常情况下更加痛苦。恶心,到处都是。
我认为MonoTouch唯一引人注目的情况是,那些有大量c#程序员和c#代码的组织必须在iPhone上使用。(就是那种3500美元都不眨眼的商店。)
但对于任何从零开始的人来说,我真的不认为这是值得或明智的。