来自MonoMac 1.0 的发布公告:大约一年前,我们开始为建设中的本地MacOS X 应用打造一套Mono绑定。 MonoMac是面向Mac OSX API的C#绑定,其API设计主要受到了MonoTouch的启发,后者可以基于Mono开发原生的iOS应用程序。 MonoMac套件的目标之一,也 是发布独立的 .app应用程序,让最终用户摆脱对Mono的依赖。 如果你已经安装了MonoDevelop,那么只需要更新MonoMac Add-In就可以了。如果没有安装MonoDevelop,可以参考我写的一篇 OS X 上使用.NET开发应用程序。 MonoMac 1.0已经自带了一个经过修改的OpenTK 1.0。
MonoMac套件的目标之一,也是发布独立的 .app应用程序,让最终用户摆脱对Mono的依赖。 MonoMac提供了新的一套新的绑定引擎MonoMac.ObjCRuntime,以及btouch绑定生成器。 MonoMac仅仅是一套用于开发OSX应用程序的类库。 MonoMac使用MIT X11许可协议发布。源码分为两部分:monomac和maccore,都可以在GitHub上获得。 下载和安装 MonoMac。 MonoMac的插件安装参考http://www.mono-project.com/MonoMac#Obtaining_MonoMac也很简单。 安装完MonoMac的插件,在MonoDevelop的新建项目的对话框上就有了MonoMac的项目类型。
value var title = info.GetValue(this,null)); // to read the property value 只是.NET的反射代码显得有点长河丑陋,使用MonoMac ,通过使用[Export("xxxxx")]进行装饰,xxxx就是Cocoa的Key了: using System; using System.Collections.Generic; using MonoMac.Foundation Producer { get; set; } [Export("year")] public int Year { get; set; } } } 上面引入了MonoMac.Foundation 具体参考文章 http://cocoa-mono.org/archives/153/kvc-kvo-and-cocoa-bindings-oh-my-part-1/ http://tirania.org/monomac
Invoke和COM Interop 很熟悉了,这两种技术使得.NET人员可以使用Win32 API和COM组件,Mono也是使用P/Invoke技术创建原生的库,例如Gtk# 绑定到 Gtk+ API, MonoMac 绑定到Cocoa API, Qyoto 绑定到Qt API,Mono出现了MonoTouch,MonoDroid和MonoMac等等很有创新性的产品。
lambdas与LINQ Expressions 更快、更精确的Find References C#的语法高亮 通过新的预定义“AllMan”模式实现的更好的代码格式化,兼容于VS default 新版的MonoMac
shanyou/archive/2011/01/23/Jexus.html OSX 上使用.NET开发应用程序 http://www.cnblogs.com/shanyou/archive/2011/01/28/monomac.html
例如 Avalonia 在 Win32 平台上使用 GetMessage 实现等待;在 iOS 和 Android 平台上使用外部的全局循环;Mac 使用 MonoMac.AppKit 创建;Linux
支持的平台:支持Windows Forms、WPF、MonoMac和GTK#等桌面平台,以及正在开发中的iOS(使用Xamarin.iOS)和Android(使用Xamarin.Android)移动平台支持