[Mono-osx] General cross-platform issues and considerations

matteo tesser matteo.tesser at gmail.com
Thu Oct 15 07:10:05 EDT 2009

Does anybody knows of windows.forms apps running on osx at the moment
?   In my opinion, a part from the left-to-right issue, the mono
Windows.Form  implementation is very good on Linux and it is a good
option for porting windows apps, but to me it performs very bad on OS
X now and make apps unusable.

Given that the WF on OSX problems are mostly related to the carbon
driver, anyone has taken in consideration the option of providing a
X11 version of Managed Windows Form  by pathching the X11 linux
driver, given that X11 must be present in any case? at least until a
working native driver will be written?
May be this an option? have already be taken into consideration ?
(sorry to repeat if this is the case)


On Thu, Oct 15, 2009 at 12:54 PM, Stifu <stifu at free.fr> wrote:
> At the risk of telling you something you already know, there is a Mono / .NET
> version of Qt called Qyoto. However, it's not very mature from what I've
> heard (you might want to check out Synapse which uses it:
> http://synapse.im/). But if you like Qt, you might want to try and push
> Qyoto forward...
> Andrew Brehm wrote:
>> Yes, ideally the UI should be rewritten.
>> I just think it's ironic that cross-platform tools like REALbasic or QT
>> can give you (somewhat) native-looking applications based on the same code
>> while Mono, with its ability to run even the same binary on all target
>> platforms, cannot. There is a certain disconnect there.
>> And when I have to rewrite the GUI for each platform I can also recompile
>> the non-GUI code while I am at it and most of the advantage of managed
>> code goes away.
>> My particular problem is that Mono's Windows Forms does not support
>> right-to-left writing on Linux and Mac OS, otherwise a Windows Forms
>> version of my program would at least run on all three platforms. (I really
>> have to try whether Gtk# works with right-to-left scripts! Anyone know?)
>> Ignoring the right-to-left script issue, I think the best solution is
>> this:
>> I Put everything but the GUI in a DLL.
>> II Write a GUI for each targeted platform and one GUI that runs on
>> everything.
>> III Offer four downloads:
>> 1. Mac OS X (Monobjc)
>> 2. Linux (Gtk#)
>> 3. Windows (WPF or Windows Forms)
>> 4. cross-platform (Windows Forms or Gtk#)
>> Download #4 should have a functional GUI without bells or whistles.
>> The DLL itself should be perfectly cross-platform with everything
>> platform-specific abstracted within the DLL.
>> duanew wrote:
>>> Not an easy answer.  The conclusion I have come to is that the UI most
>>> always be rewritten for each platform.  One goal that I have when writing
>>> an
>>> application is that it offers the best UI experience possible.  At least
>>> so
>>> far, any cross platform UI is going to diminish the user's experience
>>> with
>>> your application, which makes your application look inferior.  Separate
>>> the
>>> logic as much as possible, but use native UI tools to develop the UI.
>>> Thanks to mono we have the ability to reuse large portions of the
>>> library.
>>> To me implementing the UI in native tools and recompiling is trivial
>>> compared to the cost of writing in C, C++, Objective-C or using a
>>> non-standard cross-platform GUI toolkit.
>>> Bset of luck.
>>> Duane
>>> On Wed, Oct 14, 2009 at 6:49 AM, Andrew Brehm <ajbrehm at gmail.com> wrote:
>>>> I have been working with Delphi Prism for a while now and can recommend
>>>> it
>>>> to
>>>> anyone who wants to do Mac development in .NET. Any criticism below is
>>>> not
>>>> to be understood as criticism of Delphi Prism. It's just the tool I use
>>>> because I think it is the best for the job.
>>>> Between Windows Forms, Windows Presentation Foundation (WPF), Monobjc
>>>> (Cocoa
>>>> bindings), and Gtk# we have ample GUI toolkits to choose from, but this
>>>> also
>>>> means that the ability of .NET/Mono binaries to run unchanged on any
>>>> platform is somewhat diminished, to say the least. I found that Mono's
>>>> implementation of Windows Forms on Mac OS and Linux does not support
>>>> right-to-left text. I haven't checked with Gtk#. (In fact I have never
>>>> really looked at Gtk#.)
>>>> So currently the best solution for cross-platform .NET development is to
>>>> create separate binaries for each platform which, as I said, diminished
>>>> the
>>>> advantage of being able to run the same binary on any target platform.
>>>> One year ago I managed to create a test program that would check whether
>>>> it's running on Windows or Mac OS and then use a Windows Forms or a
>>>> Cocoa#
>>>> (back then) GUI depending on the result. A single binary worked on both
>>>> systems again, with decent results on both targets too. But this
>>>> configuration is not easily supported by IDEs or build scripts and
>>>> doesn't
>>>> play well with Apple's (excellent) concept of bundles.
>>>> But then even checking which OS one is running on is difficult since
>>>> Mono
>>>> reports UNIX when running on Mac OS (at least it did the last time I
>>>> checked).
>>>> How is the Gtk# implementation on Mac OS? Is it better than Windows
>>>> Forms?
>>>> Would Gtk# be a good solution for a single binary for all three targets?
>>>> (On
>>>> Windows, can I just include Gtk# DLLs or does the user have to install
>>>> Mono
>>>> or Gtk# himself?)
>>>> I like Monobjc and the Cocoa GUI it makes available to .NET programs.
>>>> But
>>>> porting the GUI part of an app to Monobjc is (doable but) an effort that
>>>> seems ironic considering .NET/Mono is inherently a cross-platform
>>>> development environment.
>>>> So what's the best way to go for cross-platform apps? Three separate
>>>> GUIs?
>>>> Gtk# for all? And if the first, should it be a single binary checking
>>>> the
>>>> OS
>>>> and then using the right GUI or should it be separate binaries?
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/General-cross-platform-issues-and-considerations-tp25888867p25888867.html
>>>> Sent from the Mono - OSX mailing list archive at Nabble.com.
>>>> _______________________________________________
>>>> Mono-osx mailing list
>>>> Mono-osx at lists.ximian.com
>>>> http://lists.ximian.com/mailman/listinfo/mono-osx
>>> _______________________________________________
>>> Mono-osx mailing list
>>> Mono-osx at lists.ximian.com
>>> http://lists.ximian.com/mailman/listinfo/mono-osx
> --
> View this message in context: http://www.nabble.com/General-cross-platform-issues-and-considerations-tp25888867p25906478.html
> Sent from the Mono - OSX mailing list archive at Nabble.com.
> _______________________________________________
> Mono-osx mailing list
> Mono-osx at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-osx

More information about the Mono-osx mailing list