MonoMac,为C#在OS X上创建GUI工具包的最新尝试,已经发布1.0版本了。MonoMac的设计会更多地和其它.NET/Mono类库保持一致。这是通过为Cocoa API提供一层遵循.NET Framework Design Guidelines的厚的包装做到的。
早期的类库,比如MonObjc和已经废弃的CocoaSharp使用了瘦的,通常在Cocoa API上机械生成的交互层。这要求使用selector,这是一种Objective-C使用的OOP消息传递方式。这些类库没有把selector映射到C#的基于方法的面向对象编程方式,而是简单地提供了一系列objc_msgSend函数。而所需的objc_msgSender的版本则依赖于参数和返回值类型,有时候还依赖于CPU架构体系分析师:iPhone在宏达雷电一下子就击倒在Verizon商店销售 。
使用包装原生代码的类库之外的一个选择是使用跨平台工具包。这里提供的选择都是熟悉的。Gtk#和已经废弃的Windows.Forms都简单易用,但不能创建原生用户界面的应用程序。此外还有Silverlight,它鼓励你重新定制应用程序的用户界面风格而不是试图模仿原生应用程序。
正如前面提到的,MonoMac的设计理念是按照.NET的规范尽可能多地提供Cocoa的特性。这意味着你可以安全地创建Objective-C 类的子类,重写基类的方法以及调用基类的构造函数。客户端代码可以通过Objective-C风格的委托和.NET风格的事件监听事件通知。.NET里的委托、lambda和闭包可以映射到Objective-C代码块。
MonoMac包含了发布到Mac App Store的支持。应用程序是通过Mono包装器打包给应用商店的,它包含了Mono运行时的副本,这样用户就无需另外下载了。
MonoMac为Cocoa开发提供了.NET风格的API
最新推荐文章于 2024-08-23 07:22:07 发布