<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">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:<div><br></div><div>(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.</div><div><br></div><div>(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.</div><div><br></div><div>(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.</div><div><br></div><div>(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:</div><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" style="font: 12.0px Helvetica">  <a href="http://www.monobjc.net/index.php?page=events-and-delegates">http://www.monobjc.net/index.php?page=events-and-delegates</a></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br></div></div><div>(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.</div><div><br></div><div>(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.</div><div><br></div><div>Thanks.</div><div><br></div><div>-Phil Hess</div><div><br></div><div><br></div><div><br></div><div><br></div></body></html>