&nbsp; I follow the Mono project since pre 1.0 and the question is only about a WinForms desktop app that runs fine on both Windows and Linux.<br>&nbsp; The focus in this moment is not the cost or risk, but the functionality. In our tests a simple app with a main menu, a toolbar and a richtext box chashes on both stable and development versions of mono under linux (Suse 10).
<br>&nbsp; The point is: The Mono WinForms implementation is not complete. The status page says that it is covering 99% of the MS implementation but before our tests i think it's not true. Simple apps created with <a href="http://VS.NET">
VS.NET</a> using C# language on version 1.1 of the MS runtime (Mono claims to be compatible with MS .NET implementation) simply suddenly close or shows the controls in the wrong positions on the form.<br>&nbsp;&nbsp; It's my opinion only from Winforms perspective. For class libraries it's ok, for 
<a href="http://ASP.NET">ASP.NET</a> it's ok, but for crossplatform WinForms it's not ok. I believe it will be soon.<br><br><div><span class="gmail_quote">On 4/3/06, <b class="gmail_sendername">Atsushi Eno</b> &lt;<a href="mailto:atsushi@ximian.com">
atsushi@ximian.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello,<br><br>Flavio Medeiros wrote:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;Hi, we are starting a (large) project that needs to be cross platform
<br>&gt; (windows/linux) and we are discussing about the .NET (MS framework and Mono)<br>&gt; and the Java technology.<br>&gt; Anyone can point me to any interesting information about projects developed<br>&gt; under windows using 
<a href="http://VS.NET">VS.NET</a> &lt;<a href="http://vs.net/">http://vs.net/</a>&gt; (language C#) ? I know that the<br>&gt; <a href="http://ASP.NET">ASP.NET</a> &lt;<a href="http://asp.net/">http://asp.net/</a>&gt; support of Mono is great, but we know none about
<br>&gt; Winforms support. Is there any project that uses WinForms developed using<br>&gt; <a href="http://VS.NET">VS.NET</a> &lt;<a href="http://vs.net/">http://vs.net/</a>&gt; that runs in Windows and Linux without problems ?
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Is it possible or only using GTK# ?<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Mono is realy crossplatform today on desktop apps ?<br><br>Not really. The biggest and worst reason is because C#/.NET users just<br>ignore cross-platform mind to work their code run on other OSes and
<br>platforms than Windows. They rather dream too much on others' effort<br>while they just neglect what they should do.<br>Their reality is a fantasy but their fantasy is killing me.<br><br>In cross-platform talk, .NET is much worse than Java. Java people
<br>tried to make things cross platform, though unfortunately it is not<br>perfect. Microsoft just gave up efforts to make things cross-platform.<br>There are plenty of Windows-oriented parts in the class libraries in<br>
System* namespace.<br><br>On the other hand, under pure Mono environment, things are much more<br>likely to work on several OSes and platforms since our implementations<br>are rather careful for cross-platform.<br><br>Having said that, if users still forget cross-platform mind, it is
<br>easily broken; for example,<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- invoking native libraries which is not cross platform:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we don't have kernel32.dll<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- No runtime callable wrapper in mono: COM is not love. It<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is windows only stuff.
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- ignoring environment-dependent matters, for example:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- file path separators (using '/' is the best; using '\\'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in paths is bad; Path.AltDirectorySeparatorChar is wrong)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- expecting drives, illegal path character differences
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- end-of-line (CRLF and LF)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- native encoding (obsolete language dependent encoding on<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://MS.NET">MS.NET</a>; always utf-8 on Mono as GNOME 2.0 uses)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- implementation dependent matters: one of the most FAQ is for
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;runtime serialization compatiblity which we can never promise<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;because they depend on Microsoft implementation internals<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;which we don't copy. They have different set of private<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fields than ours.
<br><br>This kind of differences exist by nature.<br><br>Oh, seems like there already is a explanation on how to make your<br>code cross-platform.<br><a href="http://www.mono-project.com/Guide:Writing_Cross_Platform_applications">
http://www.mono-project.com/Guide:Writing_Cross_Platform_applications</a><br>It tells that cross-platformness is *up to you*.<br><br>BTW I don't think this subject is not subject to the topic of mono-dev,<br>as some other people are already losing the point.
<br><br>Atsushi Eno<br><br></blockquote></div><br><br clear="all"><br>-- <br>Flavio Medeiros Sales<br><a href="http://www.flaviomedeiros.com">www.flaviomedeiros.com</a>