Just my two cents. &nbsp;Cross platform is a nice concept. &nbsp;Mono and monobjc are a great step in the right direction. &nbsp;You can run WinForms apps on Linux and Macs today, with certain limitations. &nbsp;But those applications look terrible on non-Windows platforms. &nbsp;Of course anything is possible, but no one has truly solved the cross platform GUI issue, write once deploy many &nbsp;Qt, Java, Mono all attempt and all fall short.<div>
<br></div><div>If you want a Windows application use WinForms/WPF. &nbsp;If you want an OSX application use Interface Builder. &nbsp;Thanks to the work of mono and monobjc we cross platform developers can reuse the majority of our C# code across Windows and Macs. &nbsp;I believe it is a small price to pay to write twice the GUI specific code so that I can truly have a native looking application on both platforms. &nbsp;On Macs, generally speaking they are very unforgiving for non-standard Mac UIs.</div>
<div><br></div><div><br></div><div><br><div class="gmail_quote">On Wed, Dec 17, 2008 at 9:56 AM, Andrew Brehm <span dir="ltr">&lt;<a href="mailto:ajbrehm@gmail.com">ajbrehm@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Hiya,<br>
<br>
I&#39;ll try the different calls. Thanks.<br>
<br>
I know this would be a ridiculously huge project, but do you think there is<br>
a possibility of creating an auto-converter that would look at Windows Forms<br>
GUI code and create a NIB file containing the equivalent controls, so that<br>
the porting programmer would only have to write some glue code and set<br>
connections? Is this even possible/feasible (I assume it is possible) or<br>
worth the effort?<br>
<br>
I assume you have more important things to do. I&#39;ll see what I can figure<br>
out.<br>
<br>
I do believe that portability from Windows to Mac OS would be one of the<br>
most important factors for most people once it has been established that<br>
Mono and Monobjc can be used to port Windows Forms applications to Cocoa.<br>
<br>
I&#39;ll go and read the Cocoa documentation as you suggest.<br>
<div><div></div><div class="Wj3C7c"><br>
<br>
<br>
Laurent Etiemble wrote:<br>
&gt;<br>
&gt; Hello,<br>
&gt;<br>
&gt; First, thank you for supporting Monobjc.<br>
&gt;<br>
&gt; For your NIB loading issue, know that there is two ways to load a NIB file<br>
&gt; and each has a different behavior:<br>
&gt; - The &quot;loadNibNamed:owner:&quot; message use a name to locate the file (neither<br>
&gt; path nor extension required). The owner will tell how to lookup the NIB<br>
&gt; file<br>
&gt; (if you pass the shared NSApplication object, then the Resources folder of<br>
&gt; the bundle will be searched).<br>
&gt; - The &quot;loadNibFile:externalNameTable:withZone:&quot; message uses a relative or<br>
&gt; an absolute path to locate the NIB file. As a bonus, you retrieve an array<br>
&gt; containing the top level objects that were created.<br>
&gt;<br>
&gt; I suggest you to read the NSBundle class reference (along with the AppKit<br>
&gt; additions). Let me know if you have some success.<br>
&gt;<br>
&gt; Regards, Laurent Etiemble.<br>
&gt;<br>
&gt;<br>
&gt; 2008/12/16 Andrew Brehm &lt;<a href="mailto:ajbrehm@gmail.com">ajbrehm@gmail.com</a>&gt;<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; Hi, thanks for the reply.<br>
&gt;&gt;<br>
&gt;&gt; I know the way to handle NIBs is the official way. But I wish there were<br>
&gt;&gt; an<br>
&gt;&gt; alternative way to handle them for debugging. It&#39;s not so important. I<br>
&gt;&gt; can<br>
&gt;&gt; live with it. :-)<br>
&gt;&gt;<br>
&gt;&gt; What about NIB 3.x?<br>
&gt;&gt;<br>
&gt;&gt; I will help by using Monobjc. Couldn&#39;t see the paypal button at first as<br>
&gt;&gt; I<br>
&gt;&gt; use OmniWeb and it shields me from seeing expensive things.<br>
&gt;&gt;<br>
&gt;&gt; Thanks,<br>
&gt;&gt; Andrew<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Laurent Etiemble wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Hello,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; My comments inline.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Regards, Laurent Etiemble.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 2008/12/15 Andrew Brehm &lt;<a href="mailto:ajbrehm@gmail.com">ajbrehm@gmail.com</a>&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; My second test of Monobjc is a program (StupidWordCounter, the same<br>
&gt;&gt; &gt;&gt; example<br>
&gt;&gt; &gt;&gt; I<br>
&gt;&gt; &gt;&gt; used for Cocoa#) that uses a NIB file or a Windows.Forms GUI depending<br>
&gt;&gt; on<br>
&gt;&gt; &gt;&gt; which platform it runs on. (It checks for a directory<br>
&gt;&gt; &gt;&gt; &quot;/System/Library/Frameworks/Cocoa.framework&quot; to determine if it is<br>
&gt;&gt; &gt;&gt; running<br>
&gt;&gt; &gt;&gt; on Mac OS.)<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I made a few screenshots of the development process in Visual Studio<br>
&gt;&gt; 2008<br>
&gt;&gt; &gt;&gt; and Xcode 3. I&#39;ll upload them in tutorial form in the next few days<br>
&gt;&gt; and<br>
&gt;&gt; &gt;&gt; give<br>
&gt;&gt; &gt;&gt; the URL here.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Remaining issues:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 1. The path to the NIB file as used by Monobjc confuses. Apparently<br>
&gt;&gt; this<br>
&gt;&gt; &gt;&gt; past must be relative to the .app bundle containing the assembly. This<br>
&gt;&gt; is<br>
&gt;&gt; &gt;&gt; useful for the finished program but makes testing/debugging difficult.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; This is the official way to locate the NIB and Monobjc conforms to.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 2. I still have an awful lot of platform-specific code in two classes<br>
&gt;&gt; for<br>
&gt;&gt; &gt;&gt; each GUI. I wonder if there is an elegant practice for dealing with<br>
&gt;&gt; this<br>
&gt;&gt; &gt;&gt; (and whether using native GUIs rather than a crossplatform GUI toolkit<br>
&gt;&gt; is<br>
&gt;&gt; &gt;&gt; really the way to go).<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 3. Can Monobjc use XIB files? If yes, how? Interacting with NIB files<br>
&gt;&gt; is<br>
&gt;&gt; &gt;&gt; a<br>
&gt;&gt; &gt;&gt; hassle with Xcode 3, which by default wants XIB files and doesn&#39;t even<br>
&gt;&gt; &gt;&gt; let<br>
&gt;&gt; &gt;&gt; you create IB 2.x NIB files easily.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; XIB is only a development format, not a deployment one. Quoted from<br>
&gt;&gt; &gt;<br>
&gt;&gt; <a href="http://developer.apple.com/documentation/developertools/conceptual/IB_UserGuide/BuildingaNibFile/chapter_3_section_2.html" target="_blank">http://developer.apple.com/documentation/developertools/conceptual/IB_UserGuide/BuildingaNibFile/chapter_3_section_2.html</a><br>

&gt;&gt; &gt; :<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; &quot;The xib file format was also introduced in Interface Builder 3.0 as a<br>
&gt;&gt; &gt; development-time format and was conceived as a way to provide tighter<br>
&gt;&gt; &gt; integration with your Xcode projects, particularly in the areas of SCM<br>
&gt;&gt; &gt; support, diff support, and refactoring. Xcode automatically converts<br>
&gt;&gt; files<br>
&gt;&gt; &gt; in the xib format to the nib format at build time.&quot;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; If you look at the build process in XCode, you will see that the XIB<br>
&gt;&gt; file<br>
&gt;&gt; &gt; is<br>
&gt;&gt; &gt; compiled into a NIB one. Monobjc build tasks allow you to do the same.<br>
&gt;&gt; &gt; Check <a href="http://www.monobjc.net/index.php?page=building-tools" target="_blank">http://www.monobjc.net/index.php?page=building-tools</a> for more<br>
&gt;&gt; &gt; details<br>
&gt;&gt; &gt; on the &lt;ibtool/&gt; task.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; But all-in-all I remain very convinced that Monobjc is the greatest<br>
&gt;&gt; thing<br>
&gt;&gt; &gt;&gt; since sliced .NET.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Any chance that it become part of the default Mono distribution?<br>
&gt;&gt; Novell?<br>
&gt;&gt; &gt;&gt; Buy<br>
&gt;&gt; &gt;&gt; Monobjc?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; And if anyone from the Monobjc team reads this: is there a way I can<br>
&gt;&gt; &gt;&gt; help?<br>
&gt;&gt; &gt;&gt; I<br>
&gt;&gt; &gt;&gt; am a bad programmer but excellent user. Can I at least donate or<br>
&gt;&gt; &gt;&gt; something?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; You can help by simply using Monobjc. We need the users&#39; feedback to<br>
&gt;&gt; &gt; refine<br>
&gt;&gt; &gt; the API and find bugs.<br>
&gt;&gt; &gt; You can also make a donation via PayPal (the button is on the download<br>
&gt;&gt; &gt; page).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Happy Holidays.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Andrew<br>
&gt;&gt; &gt;&gt; --<br>
&gt;&gt; &gt;&gt; View this message in context:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; <a href="http://www.nabble.com/.exe-using-Winforms-and-Monobjc-Cocoa-%28success%29-tp21011520p21011520.html" target="_blank">http://www.nabble.com/.exe-using-Winforms-and-Monobjc-Cocoa-%28success%29-tp21011520p21011520.html</a><br>

&gt;&gt; &gt;&gt; Sent from the Mono - OSX mailing list archive at Nabble.com.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; Mono-osx mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:Mono-osx@lists.ximian.com">Mono-osx@lists.ximian.com</a><br>
&gt;&gt; &gt;&gt; <a href="http://lists.ximian.com/mailman/listinfo/mono-osx" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-osx</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; Mono-osx mailing list<br>
&gt;&gt; &gt; <a href="mailto:Mono-osx@lists.ximian.com">Mono-osx@lists.ximian.com</a><br>
&gt;&gt; &gt; <a href="http://lists.ximian.com/mailman/listinfo/mono-osx" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-osx</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; View this message in context:<br>
&gt;&gt; <a href="http://www.nabble.com/.exe-using-Winforms-and-Monobjc-Cocoa-%28success%29-tp21011520p21031349.html" target="_blank">http://www.nabble.com/.exe-using-Winforms-and-Monobjc-Cocoa-%28success%29-tp21011520p21031349.html</a><br>

&gt;&gt; Sent from the Mono - OSX mailing list archive at Nabble.com.<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Mono-osx mailing list<br>
&gt;&gt; <a href="mailto:Mono-osx@lists.ximian.com">Mono-osx@lists.ximian.com</a><br>
&gt;&gt; <a href="http://lists.ximian.com/mailman/listinfo/mono-osx" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-osx</a><br>
&gt;&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Mono-osx mailing list<br>
&gt; <a href="mailto:Mono-osx@lists.ximian.com">Mono-osx@lists.ximian.com</a><br>
&gt; <a href="http://lists.ximian.com/mailman/listinfo/mono-osx" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-osx</a><br>
&gt;<br>
&gt;<br>
<br>
--<br>
</div></div>View this message in context: <a href="http://www.nabble.com/.exe-using-Winforms-and-Monobjc-Cocoa-%28success%29-tp21011520p21054526.html" target="_blank">http://www.nabble.com/.exe-using-Winforms-and-Monobjc-Cocoa-%28success%29-tp21011520p21054526.html</a><br>

<div><div></div><div class="Wj3C7c">Sent from the Mono - OSX mailing list archive at Nabble.com.<br>
<br>
_______________________________________________<br>
Mono-osx mailing list<br>
<a href="mailto:Mono-osx@lists.ximian.com">Mono-osx@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-osx" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-osx</a><br>
</div></div></blockquote></div><br></div>