BT

Windows.Forms Comes to 64-bit Mac OS X

| by Jeff Martin Follow 16 Followers on Feb 28, 2018. Estimated reading time: 1 minute |

Mono has long had a pure C# implementation of the Windows.Forms stack for Linux, Mac, and Windows.  As technology trends changed, Mono's Windows.Forms platform has not been actively developed, but does remain a common dependency for various third party libraries and applications making its support important beyond those writings WinForms applications directly.  Mono's switch to 64-bit platform by default has caused problems for continuing the support of Windows.Forms on MacOS, since this support was built on Carbon's 32-bit foundation.

To address this gap, Mono's Miguel de Icaza recently explored how the MacOS support could be modernized.  His initial choices were either to use APIs provided by the 64-bit edition of Carbon or attempt a new back-end built on top of Cocoa using Xamarin.Mac.  An initial look into 64-bit Carbon suggested that the APIs by needed for Windows.Forms are poorly documented and making it hard to discern what is 64-bit capable.  This lead de Icaza to begin experimenting with Xamarin.Mac.

Fortuantely de Icaza was doing his development publicly, which provided an opportunity for Filip Navara to notice what de Icaza was working on.  Navara then contacted de Iacaza to say that one of his projects may be useful in this new endeavour.   Navara has made available an existing Cocoa backend that can be repurposed for inclusion on Mono proper. Navara's code comes from Mono SWF, which built a working Cocoa backend for Mono.  

De Icaza has since decided to use this code as the foundation for a new 64-bit implementation of Mono's Windows.Forms on MacOS.  In reviewing the code, de Icaza noticed that it uses native AppKit controls for some of the controls.  It also utilizes a custom version of System.Drawing that Mono originally developed for iOS users.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT