由于生成Objective-C API有大量重复工作,MonoMac还提供了一个头文件解析工具,可以从Objective-C的头文件中生成绝大部分的API。不过对于某些生成的结果还需要进行一些修改才能满足设计的要求,例如,NSArray的参数和返回值需要根据文档修改为合适的强类型。 MonoMac还没有覆盖完整的Cocoa API,不过已经基本可以用于创建API,并已经开放接纳社区的贡献。目前的绑定有:
MonoMac仅仅是一套用于开发OSX应用程序的类库。MonoMac团队同样发布了一套基于MonoDevelop的开发工具,其生成结果便是Mac OS下的app应用程序包。此外,Mono 2.8还包含了一个新工具叫做“Mono打包器(bundler)”。这个打包器可以检查你的.NET应用程序,并将其依赖的部分打包在一起。这个技术如今已经用于OSX版本的Banshee项目(一款基于Mono和Gtk#的播放器),这样发布后的应用程序无需在目标机器装有Mono框架。 MonoMac使用MIT X11许可协议发布。源码分为两部分:monomac和maccore,都可以在GitHub上获得。前者包含了面向MacOS的绑定,而后者则包含了MonoMac和MonoTouch共用的代码。如果您对OS X下的.NET开发及MonoMac感兴趣,可以参考这篇开发向导。 另一方面,最近Logos Bible Software的技术领导人David Mitchell在Mono邮件列表上表示,他们基于Mono,将原本为Windows平台开发的软件移植到了Mac平台上,两者共享了绝大部分代码,唯一不同的只是UI方面从WPF变成了OS X的原生界面。不过与MonoMac的做法不同,Logos Bible Software的做法是在Objective-C编写的UI界面中调用.NET代码。 |