Mono 团队为 Cocoa API 创建了相关绑定,它是 Mac OS 下的一个主要应用程序开发环境,这使得开发人员可以用 C#给苹果操作系统的编写应用程序。
基于他们在 MonoTouch 的成功之处,Mono 团队开始给 Mac 应用程序框架创建绑定——Cocoa。根据 Mono 之父 Miguel de Icaza 的表述, MonoMac 有两种类型绑定:
- 针对 C 的 P/Invoke 绑定——基于 AudioToolbox、CoreGraphics、CoreFoundation 和 CoreText 等框架的 API
- MonoMac.ObjCRuntime ——使用 MonoTouch 的 btouch 绑定生成器的新型绑定引擎。 btouch 生成由 C#接口表示 API 契约所需的绑定。但最终该绑定过程仍要费一番周折
MonoMac 已经完成了一部分,Mono 团队正寻求自愿者加入来完善以下内容:
- CoreFoundation(必要的组成部分,参见设计原则)
- CoreText(已完成)
- CoreGraphics(已完成)
- Foundation(必要的组成部分,可参与余下部分的完善工作中)
- AppKit(仍剩 30%)
Mono 有一个类似的项目 CocoaSharp ,Geoff Norton 在 2004 年开始创建并于 2005 年第一次正式发布。计划在 2008 年继续进行改进,但 de Icaza 声称 2009 年 5 月 Novell 已不再对该项目进行投入。de Icaza 表示他们会从这次的教训中学习并尝试给 Cocoa 创建绑定。
Monobjc 是另一个.NET 的 C 对象桥接器。在 2.0 版本中,Monobjc 是一种成熟的绑定,它让程序员可在 Mac OS X 框架如 Cocoa、WebKit、QuickTime 和 DiskRecording 进行编程。开发人员可访问 Mac OS X 10.4、10.5 和 10.6 中超过 1400 个类和 7000 种方法。该项目集成了 MonoDevelop IDE 并配备了相应的文档和教程。
评论