写点什么

64 位的 Mac OS X 也有 Windows.Forms 了

  • 2018-03-04
  • 本文字数:756 字

    阅读完需:约 2 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Mono 长期以来一直为 Linux、Mac 和 Windows 提供 Windows.Forms 的纯 C#实现。随着技术潮流的变化,Mono 的 Windows.Forms 平台仍然没有得到很好的发展,还只是各种第三方库和应用程序的依赖,这使得它的重要性超过了那些基于 WinForms 的应用程序。Mono 默认切换到 64 位,给 MacOS 对 Windows.Forms 的持续支持带来了问题,因为这个支持是建立在 32 位版本 Carbon 的基础之上的。

为了弥补这个差距,Mono 的 Miguel de Icaza 最近在研究如何改进MacOS 的支持。他最初的选择要么是利用64 位版本Carbon 提供的API,要么是尝试用Xamarin.Mac 在Cocoa 之上构建新后端。对64 位版本Carbon 的初步研究表明,Windows.Forms 的API 文档很差劲,很难看出64 位版本能做些什么。于是,de Icaza 开始尝试使用Xamarin.Mac。

幸运的是,de Icaza 把他的开发公布于众,这让Filip Navara 有机会注意到他在做的事。然后,Navara 联系了de lacaza,提到他在做的一个项目也许对这个新尝试有帮助。Navara 提供了一个现成的Cocoa 后端,可以重新规划后用在Mono 上。Navara 的代码来自Mono SWF,它为Mono 构建了可用的Cocoa 后端。

至此,de lcaza 决定把这些代码作为新64 位版本的实现基础,在MacOS 上支持Mono 的Windows.Forms。在审查代码时,de lcaza 注意到,对于某些控件,代码中使用了本地AppKit。它也用到了System.Drawing 的定制版本,这个版本最初是Mono 为iOS 用户开发的。

查看英文原文: Windows.Forms Comes to 64-bit Mac OS X


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2018-03-04 18:004078
用户头像

发布了 199 篇内容, 共 86.6 次阅读, 收获喜欢 295 次。

关注

评论

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

图数据库|如何从零到一构建一个企业股权图谱系统

NebulaGraph

数据库 知识图谱

易周金融观点 | 个人养老金制度正式出炉;居民贷款延期还款政策密集落地

易观分析

银行 养老金制度

输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

InfoQ IT百科

输入一个链表,输出该链表中倒数第k个结点。

InfoQ IT百科

什么是完全二叉树?

InfoQ IT百科

计算单链表的长度。

InfoQ IT百科

动态重定位需要由什么来实现?

InfoQ IT百科

玩转小程序压测

阿里巴巴云原生

小程序 阿里云 云原生 压测 PTS

什么是满二叉树?

InfoQ IT百科

国厂自研的操作系统都有哪些?

InfoQ IT百科

Plato Farm 的MARK 处于永远通缩,经济模型解析

西柚子

给定两个字符串s和t,判断这两个字符串中的字母是不是完全一样。

InfoQ IT百科

有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

InfoQ IT百科

递归算法的三个定律是什么?

InfoQ IT百科

计算机操作系统最基本的特征是什么?

InfoQ IT百科

数组去重的5种方法是什么?

InfoQ IT百科

什么是“哈希算法”?

InfoQ IT百科

加密算法有哪几种?

InfoQ IT百科

CPU散热器是电脑标配吗?

InfoQ IT百科

数据结构和算法的关系?

InfoQ IT百科

什么是分治算法?

InfoQ IT百科

EventBridge 集成云服务实践

阿里巴巴云原生

阿里云 云原生 事件总线 EventBridge 事件源

消息传递通信的实现方式?

InfoQ IT百科

算法的五大特征是什么?

InfoQ IT百科

单调栈与栈的区别是什么?

InfoQ IT百科

在Windows中,当一个应用程序窗口被关闭,该应用程序将会保留在哪里?

InfoQ IT百科

netty系列之:netty中常用的对象编码解码器

程序那些事

Java Netty 程序那些事 4月月更

操作系统中的文件管理系统为用户提供的功能是什么?

InfoQ IT百科

企业如何进行数字化转型?零代码简道云剑指「全民开发」新机遇

ToB行业头条

写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度

InfoQ IT百科

如何判断两个字符串是否互为回文?

InfoQ IT百科

64位的Mac OS X也有Windows.Forms了_.NET_Jeff Martin_InfoQ精选文章