[Mono-osx] .exe using Winforms and Monobjc/Cocoa (success)

Andrew Brehm ajbrehm at gmail.com
Wed Dec 17 10:34:55 EST 2008


On Wed, Dec 17, 2008 at 3:28 PM, Matt Emson <memsom at interalpha.co.uk> wrote:
> Andrew Brehm wrote:
>>
>> but do you think there is
>> a possibility of creating an auto-converter that would look at Windows
>> Forms
>> GUI code and create a NIB file containing the equivalent control
>
> Gorm? I think it will import/export to NIB format. The Windows port is very
> unstable though.

Getting GNUstep involved? This is getting more complicated now. :-)


> RE: NIB vs XIB : InterfaceBuilder wise - install the XCode 2.x line in
> Leopard. It will give you an InterfaceBuilder pre XIB (iirc). There's an
> intel version.
>
> Conversion: Winforms would need to be a full on parser. WPF is probably
> simpler as the UI is XML based at design time.

Good point.


> For WinForms, you could write
> a routine that sucks out the Controls at runtime and deposits their public
> interface.

Too complicated.


> You might also want to look at the WinForms designer that Mono
> has. It crashes a lot, but I managed to use it. You might be able to alter
> the source to do the "sucking" part, You should be able to archive/stream
> the controls straight to an XML file. In XML format, you'll be able to apply
> a transformation, or write a tool to interpret and out put a basic XIB? I've
> never looked at XIB's XML format, so I don't know if it's even vaguely
> close. What we're talking about here is probably a XIB "compiler" and would
> be a lot of work IMO.

It would only be a lot of work if it has to be perfect. But since I
see it only as an automated process to assist a manual port it
wouldn't matter if it misses controls.

In fact it would be a good start if it simply created NIB files
containing nothing but a default menu and windows with the same
attributes as the windows defined in Windows Forms (or WPF). I think
that should be doable via XIB files. I'll look into it!


> For real cross platform - well, WinForms getting more work would probably be
> the answer. Gtk# is working well enough for me though. Spose it depends on
> what you're trying to achieve.

MonoWinForms using Cocoa windows and controls would be nice. But I
understand Mac OS is not Novell's highest priority. It is sad that we
are not getting any support from Apple. .NET on Mac OS is going to
happen, so I figure Apple should make sure that it happens in the best
possible way.

I am personally quite unsatisfied with the fact that any Cocoa code I
write (and it's not a lot) is stuck in the Mac world. The iPhone
helped a bit, but it's still not super. Reviving Cocoa for Windows
would be one solution; REALbasic with Cocoa support is another; but I
think Mono is the best way.

(I don't know enough about GNUstep to be able to judge whether it
constitutes a possible escape route to UNIX from Cocoa.)


More information about the Mono-osx mailing list