<p>If you were to write an GUI application that runs locally and calls a webservice, to be cross platform, can you do it with .Net, what tools would you recommend?</p>

<p>I was considering Java as it would be relatively easy to pick up due to its C# similarity and then I could use the JVM.</p>

[{'answer_id': 56017, 'author': 'Jon Galloway', 'author_id': 5, 'author_profile': 'https://Stackoverflow.com/users/5', 'pm_score': 4, 'selected': True, 'text': '<p>You should get familiar with the <a href="http://www.mono-project.com/Main_Page" rel="noreferrer">Mono project</a> and <a href="http://www.monodevelop.com/Main_Page" rel="noreferrer">MonoDevelop</a>; the express purpose of those projects is to allow building and running .NET code on a variety of platforms, including Windows, Linux, and Mac OSX.</p>\n\n<p>Since the Mono is a re-implementation of .NET, it always lags a little behind Microsoft.NET, but they\'ve got good coverage of .NET 2.0 and some .NET 3.x features. Note that Mono executes .NET binaries, so as long as your program features are supported by Mono, you can take an application EXE you complied on Windows and run it on Linux/Mono without recompiling.</p>\n'}, {'answer_id': 56018, 'author': 'Ash', 'author_id': 5023, 'author_profile': 'https://Stackoverflow.com/users/5023', 'pm_score': 0, 'selected': False, 'text': '<p>Check out the <a href="http://www.mono-project.com/" rel="nofollow noreferrer">Mono project</a></p>\n\n<p>Also have a look at <a href="http://silverlight.net" rel="nofollow noreferrer">Silverlight</a> or <a href="http://www.adobe.com/products/flash/" rel="nofollow noreferrer">Flash</a> for rich internet applications.</p>\n'}, {'answer_id': 56019, 'author': 'Vinko Vrsalovic', 'author_id': 5190, 'author_profile': 'https://Stackoverflow.com/users/5190', 'pm_score': 2, 'selected': False, 'text': '<p><a href="http://www.mono-project.com" rel="nofollow noreferrer">Mono</a> is the only option currently. It runs on <a href="http://www.mono-project.com/Supported_Platforms" rel="nofollow noreferrer">these platforms</a>. And there will be problems, not necessarily huge, but still.</p>\n'}, {'answer_id': 56027, 'author': 'lubos hasko', 'author_id': 275, 'author_profile': 'https://Stackoverflow.com/users/275', 'pm_score': 2, 'selected': False, 'text': '<p>You better write it using some cross-platform toolkit. Most likely you won\'t be able to use nice visual designer (really this depends on what toolkit you choose), but writing UI by hand is not really that difficult. HTML guys do it all the time and it\'s quite common practice in non-MS world too.</p>\n\n<p><strong>Some cross-platform UI toolkits with .NET bindings</strong></p>\n\n<ul>\n<li><a href="http://www.mono-project.com/GtkSharp" rel="nofollow noreferrer"><strong>GTK#</strong></a> (de-facto standard for Mono development, <a href="http://www.monodevelop.com/Main_Page" rel="nofollow noreferrer">MonoDevelop IDE</a> has in-built form designer that is utilizing this toolkit)</li>\n<li><a href="http://wxnet.sourceforge.net/" rel="nofollow noreferrer"><strong>wxNET</strong></a> (based on wxWindows, quite mature but you will have to built your UI by hand)</li>\n<li><a href="http://www.qyoto.org/" rel="nofollow noreferrer"><strong>Qyoto</strong></a> (based on QT, it\'s probably better than wxWindows but you might need commercial licence from Trolltech if your application can\'t have open-source license)</li>\n</ul>\n'}, {'answer_id': 56213, 'author': 'Andrew', 'author_id': 5662, 'author_profile': 'https://Stackoverflow.com/users/5662', 'pm_score': 0, 'selected': False, 'text': '<p>As said previously, <a href="http://www.mono-project.com/" rel="nofollow noreferrer">The Mono Project</a> is your best bet given it\'s community support.</p>\n\n<p>If you\'re in Visual Basic then <a href="http://www.realsoftware.com/products/realbasic/index.php" rel="nofollow noreferrer">REALbasic</a> could also be worth a look, as it has cross compiler that creates native executables. They have a trial edition you can <a href="http://www.realsoftware.com/download" rel="nofollow noreferrer">download too</a></p>\n'}, {'answer_id': 56220, 'author': 'Troels Arvin', 'author_id': 4462, 'author_profile': 'https://Stackoverflow.com/users/4462', 'pm_score': 0, 'selected': False, 'text': '<p>I recently wrote a little C# GUI application on Linux, compiling and running using mono. I found that I had to use the "gmcs" compiler in order to have access to modern C# and .Net features (mono 1.9 ships with several different compilers).</p>\n\n<p>And when compiling the .exe file, I found that I had to add the "-target:winexe" switch to make the app run on Windows without having a command line pop up behind the application.</p>\n\n<p>I\'ve yet to find out how to compile a .Net application which on Windows will run from network drives without requiring special .Net security configuration on the PC. (I think this is a general issue with .Net applications, but I\'m still learning.)</p>\n'}, {'answer_id': 56244, 'author': 'chrissie1', 'author_id': 2936, 'author_profile': 'https://Stackoverflow.com/users/2936', 'pm_score': 2, 'selected': False, 'text': '<p>A piece of advise. Cross-platform programming is like cross-browser programming and the one sure thing to do is test, test and test on all platforms you want to support.</p>\n'}, {'answer_id': 56248, 'author': 'Cory Foy', 'author_id': 4083, 'author_profile': 'https://Stackoverflow.com/users/4083', 'pm_score': -1, 'selected': False, 'text': '<p>Honestly I would evaluate your customer base and your existing skills. If you\'ve got a 50/50 split, or even a 70/30 split of Windows to non-Windows, you\'d likely be better off with Java or some other cross-platform toolkit. </p>\n\n<p>Mono is a decent platform (See <a href="https://stackoverflow.com/questions/42627/best-practices-for-portable-c">this SO question asked about a week ago</a>), but if you are doing anything significant, I\'d go with a toolkit designed for it.</p>\n\n<p>BTW, if you want to see what a .NET GUI app looks like on Mono, here\'s a post I did whenever I got the NUnit GUI running on Mono:</p>\n\n<p><a href="http://www.cornetdesign.com/2006/07/nunit-gui-running-green-on-monolinux.html" rel="nofollow noreferrer"><a href="http://www.cornetdesign.com/2006/07/nunit-gui-running-green-on-monolinux.html" rel="nofollow noreferrer">http://www.cornetdesign.com/2006/07/nunit-gui-running-green-on-monolinux.html</a></a></p>\n'}, {'answer_id': 9121503, 'author': 'Curtis', 'author_id': 981187, 'author_profile': 'https://Stackoverflow.com/users/981187', 'pm_score': 3, 'selected': False, 'text': '<p>Another relatively new option for cross-platform .NET development is to use the open source Eto.Forms Framework, which allows you to have one UI codebase target each platform\'s native toolkit. </p>\n\n<p>For Windows, it uses WinForms or WPF, for Linux, it uses GTK#, and for OS X it uses MonoMac/Cocoa.</p>\n\n<p>There are also mobile ports (iOS/Android) in development.</p>\n\n<p><a href="https://github.com/picoe/Eto" rel="noreferrer">https://github.com/picoe/Eto</a></p>\n'}]
['https://Stackoverflow.com/questions/56013', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/230/']