MonoMac为Cocoa开发提供了.NET风格的API

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运行时的副本,这样用户就无需另外下载了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值