[Mono-osx] MacOS bindings and MonoDevelop.
Mac Programmer
MacPgmr at fastermac.net
Tue May 12 19:43:31 EDT 2009
I'm taking a break from Mono work right now, but I have worked with
Cocoa#, Monobjc and a bit with NObjective. I'm exercising them by
writing the GUI in code, independent of Interface Builder. Here are
some observations:
(1) The difference in performance between Cocoa# and Monobjc is
noticeable. On older hardware, Cocoa# is so slow to respond to events
that it acts like it's broken. I've dismissed Cocoa# as even a remote
possibility for production software.
(2) Eugeny's tests appear to indicate a performance advantage to
NObjective over Monobjc. While it's hard to imagine getting another
big bump compared to what you get by dumping Cocoa#, if there is a
real performance edge (and possibly lower resource requirements), we
would be remiss, if not downright irresponsible, not to investigate
NObjective as thoroughly as Monobjc. I want any performance edge I
can get, until somebody can convince me that my users won't
appreciate snappier response times.
(3) I'm currently waiting to see if Laurent can eliminate Monobjc's
dependency on System.Drawing. Referencing something as seemingly
innocuous as System.Drawing.SystemColors.ButtonFace in your code adds
a dependency on libgdiplus.dylib and all of its dependent native
libraries, as well as the X11 libraries, to your Monobjc app. Having
System.Drawing lurking there in Monobjc makes me kind of nervous.
NObjective does not have any System.Drawing dependency.
(4) Some things in Monobjc don't work yet. For example, I have not
been able to get some of the notification handlers like the
NSWindow.WindowWillClose or NSWindow.WindowShouldClose event handlers
to be called. I believe Laurent is aware of this. At least this
sounds like the problem I'm having, although not being an Objective-C
programmer I don't understand the workaround suggested:
http://www.monobjc.net/index.php?page=events-and-delegates
(5) I started working with NObjective just before I decided that
maybe I would take a break from Mono for a while to see if a few
things work themselves out, so I don't have too much to report.
NObjective's assemblies are obviously a bit bigger in size than
Monobjc. For example, Monobjc.Cocoa.dll for 1.0 is about 1.5 MB,
whereas NObjective.Proxies.Tiger.dll is about 6.5 MB. Not sure what
accounts for the difference in size, although perhaps when
considering libmono.dylib's 14MB size it's not too bad.
(6) NObjective doesn't seem to have as many handy enums as Monobjc.
For example, I couldn't find the style mask constants that Monobjc
has as the NSWindowStyleMasks enum.
Thanks.
-Phil Hess
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-osx/attachments/20090512/0f1c9531/attachment.html
More information about the Mono-osx
mailing list