Feasibility of C# Development with Mono

Feasibility of C# development with Mono

  1. (Strange, markdown starts the enumeration with one, even though I began with 2...)

  2. Yes, you can, but you're limited with 3rd-party components, because the internal implementation is different, and last time I checked (not very long ago), the Mono WinForms implementation made my test app look rather strange (owner-drawn list view). It is not really recommended, though Mono claims that it's now completely WinForms-2.0-compatible.

  3. MonoDevelop is/was a SharpDevelop branch, with the latter having solution support. I don't know if MonoDevelop has. But the cool thing is, you can just develop with Visual Studio and run your compiled apps on Mono. And Mono is, by the way, also available for Windows.

  4. Yes, it does, as far as the CLR goes. As Marc Gravell already wrote, the Windows Foundation libraries are missing, as are a few other (System.Management, for example). But things should mostly work, including ASP.NET 2.0. Mono's application portability guidelines are a good read on this.

Mutliplatform development with C#

Is Mono ready for prime time?
The link provided by @Mehirdad answers some of your question.

I find VS much better than MonoDevelop or the others. I'm sure they'll almost catch up one day. If you stick to System, cross-platform assemblies you'll be pretty good and then porting isn't really necessary, unless you mean testing, since the binaries just work.

Trying to compile x64 app on linux with mono gives PE32Plus error?

Managed applications are run via 'mono myApp.exe' on Linux. The version of 'mono' specified determines whether the app is 64-bit or 32-bit. If you use a 32-bit mono runtime, the managed application will be run in 32-bit mode. If you use a 64-bit mono runtime, the managed application will be run in 64-bit mode. Windows supports launching a managed executable directly via OS support, and uses the platform information to determine whether to launch the managed code as 32 or 64 bit.

So, platform information only matters on Windows with .Net. Mono ignores this information. I believe the most recent mono's support compiling with the x64 platform switch. If not, it's fine to compile it as x86 and run it with a 64-bit mono runtime.

Development resources for Mono on PS3

Just found this posting from Miguel de Icaza's blog. Promising that as recently as Feb 2008 he was looking into this. As he is a member of the SO community now, I hope he can shed some further light on the topic.

How do i add a custom configuration in mono develop?

I would guess that you are using a version of MonoDevelop before version 6.1.

Support for run configurations was added in Xamarin Studio 6.1, so that will be in MonoDevelop 6.1.

Run Configuration in Project Options

Adding a run configuration with a recent version of MonoDevelop will create a .user file named after your project's .csproj file which has custom run configuration information.

From .NET to Mono - A crash while hammering WinForms

The following proof of concept shows that this is probably promiscuous use of Windows Forms controls from a non-UI thread. This proof of concept is completely braindead, because I didn't exactly want to find out what lines in your 328-line DisplayResults function were the culprit. You can use the links below to alleviate your situation.

Read on the backgrounds here:

  • WinForms UI Thread Invokes: An In-Depth Review of Invoke/BeginInvoke/InvokeRequred
  • Control.Invoke Method
  • Application.Idle event significance

The following patch completely removes the symptoms for me.

diff --git a/Roulette/Roulette.cs b/Roulette/Roulette.cs
index d5ede34..ae098ac 100644
--- a/Roulette/Roulette.cs
+++ b/Roulette/Roulette.cs
@@ -402,6 +402,7 @@ namespace Roulette
//
// TODO: Add any constructor code after InitializeComponent call
//
+ Application.Idle += (sender, e) => DisplayResultsEx();
}

/// <summary>
@@ -5135,6 +5136,11 @@ namespace Roulette

public void DisplayResults()
{
+
+ }
+
+ private void DisplayResultsEx()
+ {
//Display the current result.
lblCurrentResult.Text = m_Wheel1.CurrentResult.Name;

Deploy a .NET Micro framework application on USB device from GNU/Linux with Mono

Use a USB to Serial adapter. Keep in mind that on most of these boards it is TTL not RS232 so you'll have to get a USB to TTL adapter.

They are usually very cheap. This one should work.



Related Topics



Leave a reply



Submit