写点什么

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

评论

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

Apache Linkis 介绍

一道圣光

计算中间件 大数据 开源 数据计算 10月月更

SAP | 在ABAP中如何使用方法

暮春零贰

SAP 方法调用 10月月更

JavaScript刷LeetCode拿offer-二叉树层序遍历篇

Geek_07a724

JavaScript LeetCode

【文本检测与识别白皮书-3.2】第二节:场景文本识别方法

合合技术团队

人工智能 深度学习 文字识别 OCR 文本识别

彻底搞懂nodejs事件循环

coder2028

node.js

js进阶手写常见函数

hellocoder2029

JavaScript

Java | Map集合的子类

陌上

Java 编程 10月月更

漏洞评分高达9.8分!Text4Shell 会是下一个 Log4Shell吗?

SEAL安全

安全 log4j 漏洞分析 Log4j2 漏洞 软件供应链安全

JavaScript模板字符串与es6中let的用法

何极光

ES6 let 模板字符串 10月月更

华为开发者大会 2022即将举办 HarmonyOS开发者用“代码”创造无限可能

Geek_2d6073

MobLink for Flutter

MobTech袤博科技

flutter ios android

js对象和原型、原型链的关系

hellocoder2029

JavaScript

Java | Map集合两种遍历方式

陌上

Java 编程 10月月更

Java | HashMap和哈希表数据结构

陌上

Java 编程 10月月更

新闻贴 | KaiwuDB 受邀亮相中国 1024 程序员节

KaiwuDB

JavaScript刷LeetCode拿offer-链表篇

Geek_07a724

JavaScript LeetCode

SAP | 功能模块

暮春零贰

SAP 功能块 10月月更

0元上新丨PostgreSQL零基础开发指南+223页学习资料

博文视点Broadview

js异步编程的三种模式

hellocoder2029

JavaScript

实用的正则表达式知识【建议收藏】

何极光

正则表达式 10月月更 RegExp

JavaScript刷LeetCode拿offer-经典高频40题

Geek_07a724

JavaScript LeetCode

前端工程师leetcode算法面试必备-简单的二叉树

js2030code

JavaScript LeetCode

文读懂NodeJs知识体系和原理浅析

coder2028

node.js

嵌入式 Linux 入门 环境篇(二、安装虚拟机 — 体验 Ubuntu 22.04)

矜辰所致

Ubuntu20.04 嵌入式Linux 10月月更

前端工程师leetcode算法面试必备-二叉树深度广度遍历

js2030code

JavaScript LeetCode

云安全系列2:访问安全和身份管理

HummerCloud

云计算 云安全 iam 身份和访问管理 10月月更

深入nodejs的event-loop

coder2028

node.js

原生拖拽太拉跨了,纯JS自己手写一个拖拽效果,纵享丝滑

茶无味的一天

CSS html HTML5, CSS3 拖拉拽 原生js

从 wepy 到 uniapp 变形记

vivo互联网技术

wepy uni-app 前端 编译器

Redis 知识点全面击破,多图警告

小小怪下士

Java redis 程序员

前端工程师leetcode算法面试必备-二叉树的构造和遍历

js2030code

JavaScript LeetCode

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