[转载]mono几经改进,终支持WinForm开发

来源:互联网 发布:mac 单机游戏 编辑:程序博客网 时间:2024/05/20 05:58

    mono是跨平台的.NET Framework。然而,很多Windows .NET开发者往往喜欢利用.NET WinForm来开发丰富的桌面应用,可一旦涉及到GUI,快平台就成了一种梦想。而最新版本的mono平台在经历了数次改进之后,终于把这个梦想变成了现实!

    mono为了实现WinForm,至少尝试了3种不同的方法。最初的实现尝试把WinForm映射到GTK,但这种映射很难做到互相匹配,这两个独立的GUI工具包之间基本上没有什么等价物,并且这样做的话还必须在目标机器上部署GTK+。

    第二种尝试是使用Wine Windows仿真器。这样做尽管勉强可以工作,但其效率低下,Bug超多,并且在配置的时候还必须使用Wine Windows仿真器。这不符合“复制并运行”的跨平台精神。

    最后,mono使用了本机图形驱动结合System.Drawing实现了System.Windows.Forms。mono站点官方称:

“mono中的System.Windows.Forms使用System.Drawing实现。所有的控件都使用System.Drawing进行绘制。System.Windows.Froms实现了自身的驱动程序接口,勇于与基于窗口的宿主操作系统进行交互。目前我们拥有了支持Win32、X11和Mac OS X(无需X11)的驱动。这些驱动将本机的窗口消息翻译为兼容WndProc的消息,提供了对.NET尽可能大的兼容性。”

    mono的最新版本(1.1.7)实现了更多的.NET 1.1中WinForms的特性。然而还是有一些欠缺,比如不完整的DataGrid、RichTextBox、PrintPreview和其他一些控件。不过从mono的项目计划上来看,mono将在1.2版(2005年第三季度)中实现完整的Whidbey预览版特性,并且完全兼容.NET 2.0甚至更新的版本。

原创粉丝点击