\\\看新闻很累?看技术新闻更累?试试下载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)关注我们。