写点什么

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

  • 2011-03-31
  • 本文字数:621 字

    阅读完需:约 2 分钟

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 架构体系。

使用包装原生代码的类库之外的一个选择是使用跨平台工具包。这里提供的选择都是熟悉的。Gtk#和已经废弃的 Windows.Forms 都简单易用,但不能创建原生用户界面的应用程序。此外还有 Silverlight,它鼓励你重新定制应用程序的用户界面风格而不是试图模仿原生应用程序。

正如前面提到的,MonoMac 的设计理念是按照.NET 的规范尽可能多地提供 Cocoa 的特性。这意味着你可以安全地创建 Objective-C 类的子类,重写基类的方法以及调用基类的构造函数。客户端代码可以通过 Objective-C 风格的委托和.NET 风格的事件监听事件通知。.NET 里的委托、lambda 和闭包可以映射到 Objective-C 代码块

MonoMac 包含了发布到 Mac App Store 的支持。应用程序是通过 Mono 包装器打包给应用商店的,它包含了 Mono 运行时的副本,这样用户就无需另外下载了。

2011-03-31 06:041740

评论

发布
暂无评论
发现更多内容

有奖活动:pick 你最爱的 AI 项目!拿社区年度大奖!

声网

海信116英寸RGB-Mini LED:一朵绽放在科技穹顶的中国花火

脑极体

AI

征程 6X release版本内核模块安全加载

地平线开发者

自动驾驶; #算法 地平线征程6

ThreadLocal 为何能取代 Session?

王中阳Go

ThreadLocal session管理

AI赋能服装零售:商品计划智能化,化危机为转机

第七在线

【YashanDB知识库】YCM上CPU负载超过实际核数是怎么回事

YashanDB

数据库 yashandb

【YashanDB知识库】YMP从达梦迁移到崖山,报错:不能识别文件路径,没找到csv文件

YashanDB

数据库 yashandb

第82期 | GPTSecurity周报

云起无垠

AIGC GPT

解锁企业数字转型新密码:JNPF低代码让业务“活”起来

不在线第一只蜗牛

低代码

【YashanDB知识库】YashanDB JDBC驱动查询时抛出io fail:Read timed out异常

YashanDB

数据库 yashandb

【YashanDB知识库】使用Reverse索引的解决自增序列做索引,插入性能大幅提升

YashanDB

数据库 yashandb

0 Token 间间隔 100% GPU 利用率,百度百舸 AIAK 大模型推理引擎极限优化 TPS

Baidu AICLOUD

gpu 大模型推理 vLLM trt-llm

关于低代码平台的安全性考量

伤感汤姆布利柏

Apache Commons 3 比较对象三两事

FunTester

华为Flexus云服务器搭建Cloudreve私人网盘

平平无奇爱好科技

双揽工信部典型案例,百度大模型安全技术实践备受认可

百度安全

【YashanDB知识库】YashanDB JDBC查询时抛出YAS-02094 current session has been killed or canceled异常

YashanDB

数据库 yashandb

NVIDIA 推出智能体构建工具 Agentic AI Blueprints;VITA-1.5:实时多模态交互,1.5 秒延迟

声网

MonoMac为Cocoa开发提供了.NET风格的API_.NET_Jonathan Allen_InfoQ精选文章