阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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:041473

评论

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

文字识别:关键信息提取的3种探索方法

华为云开发者联盟

深度学习 文字识别 图结构 关键信息提取 栅格

如何只用一个小时定制一个行业AI 模型?

华为云开发者联盟

自然语言处理 AI 华为云 hdc ModelArts Pro

“区块链新基建”可否发展可信平台?

电微13828808271

区块链+ 区块链新基建

国人开源的运维监控系统——WGCLOUD

王逅逅

开源 运维 Grafana Prometheus zabbix

Javascript执行机制-事件循环

Sakura

4月日更

关于Go语言,你不得不知的并发模式!

博文视点Broadview

Linux scp 命令

一个大红包

4月日更

2021 技术展望 | 弱网下的极限实时视频通信

声网

RTC 2021年展望 RTE 2021技术

从金融到物联网 区块链的落地应用将如何改变世界?

CECBC

区块链

SumSwap与金色财经共为 首席创新合作大会在上海拉开帷幕

币圈资讯

Python OpenCV 图片模糊操作 blur 与 medianBlur

梦想橡皮擦

Python OpenCV 4月日更

区块链BaaS服务平台开发,助推中小企业快速落地

13828808769

区块链+ #区块链#

“区块链+”司法合约,电子认证不造假

电微13828808271

区块链+

c 语言思维地基搭建(总概论)

-jf.

4月日更

事务隔离级别实战学习

U2647

事务隔离级别 事务 4月日更

在多人音视频聊天中插入现场直播

anyRTC开发者

android 大前端 音视频 WebRTC RTC

「开源免费」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之序列号自定义组件(四)

crudapi

Vue crud crudapi 序列号 quasar

云智一体 AI开发模式打造电力行业的智慧化范本

百度大脑

云计算 智能云

2021 技术展望 | 2021,5G 将会倒逼传输协议、算法做出更多改进

声网

5G RTC 2021年展望 RTE 2021技术

2021 技术展望 | 实时互动场景下,音频的技术变迁与机遇

声网

音视频 RTC 2021年展望 RTE 2021技术

2021技术展望|开源十年,WebRTC 的现状与未来

声网

开源 WebRTC 2021年展望 RTE 2021技术

构建从目标到研发过程的全生命周期管理体验

PingCode

敏捷开发 研发管理 Jira Atlassian 敏捷开发管理 研发工具

EGG NETWORK公链阿凡提以“完全开放式自治”的唯一标准搭建New-DeFi链上生态EFTalk

币圈那点事

如何实现屏幕共享时的多人实时标注?

拍乐云Pano

windows Electron RTC

集客业务支撑领域标准化产品套件“火麒麟”的配置化能力提升之路

鲸品堂

产品 解决方案 运营商

释放千行百业数据价值,华为云DAYU有一套

华为云开发者联盟

大数据 数据湖 华为云 数据价值 dayu

科技“智”造:智慧工厂这样规划,既高效又节能

一只数据鲸鱼

数据可视化 工业物联网 智慧园区 智慧工厂

想快速重构智慧园区5A系统,这份方案推荐给你

华为云开发者联盟

系统 智慧园区 HDC.Cloud 2021 端边云协同架构 南向系统

2021 技术展望 | 走向未来的实时生成技术

声网

RTC 2021年展望 RTE 2021技术

2021 技术展望 | AV1 在 RTC 应用实践中的现状与展望

声网

RTC 2021年展望 RTE 2021技术

爱好历史的程序员,不容错过!

不脱发的程序猿

程序员 程序人生 4月日更 全历史

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