使用MonoTouch的备选语言

10

MonoTouch经常与C#一起提到。这个框架和工具集是否仅限于C#,或者其他CLR语言如IronRuby和F#也能够使用?

2个回答

12

这并不限于C#,但在运行其他语言时需要注意以下几点:

  • 动态代码生成(反射发射)在iPhone上不可行,因此IronPython和IronRuby无法工作
  • 如果编译器生成的代码依赖于MonoTouch上不存在的API,例如VB.NET运行库,那么这些API/库就需要进行移植
  • 编译器必须能够针对自定义的框架/核心库进行目标定位 - 虽然MonoTouch的核心fx与silverlight相同,因此任何针对SL的编译器都应该可以直接使用。我相信你也可以使用一些工具如Cecil进行简单的程序集引用重定向。

Delphi Prism已知可以工作 - 他们的MonoDevelop插件甚至支持MonoTouch。其他静态编译的.NET语言通常也应该比较容易移植。


3
Novell在这一点上有些含糊,他们说:"MonoTouch是一个软件开发工具包,用于Mac OS X让您使用.NET编程语言"。似乎像Hello-world这样的简单F#程序可以工作,参见此帖子:http://jamesmoorecode.blogspot.com/2009/09/f-running-on-iphone.html 由于IronRuby是建立在DLR之上,而Novell不支持DLR用于MonoTouch,因此IronRuby不应该工作。

感谢您非常有帮助的回答。我点了+1。 - Chuck
1
为了让在MonoDevelop中使用F#更加方便一些,我刚刚在git://github.com/banshee/fsharp_rakefile.git上发布了一个rakefile。 - James Moore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接