Mono and MEF Are they compatible. - mono

The two M's. Are they compatible? I would like to use MEF, or not, depending if it can run in MONO.

MEF is included in Mono 2.8 - see http://www.mono-project.com/Release_Notes_Mono_2.8

The latest version of Mono includes MEF, I believe, since it was open-sourced:
Mono 2.8
I assume that means they're compatible.

Related

What Mono version to use

I'm starting a new project that'll require Mono and mod_mono to run under CentOS. There are two versions of Mono: the release which is 2.10.8, and the development branch, which is 3.0.7 as of today.
I'm wondering what would be the right version to start. Obviously the stable version would be my choice, but I'm not sure what Mono 3.0 adds that could be missing from 2.10. Note that the project will be ASP.NET 4.0, using MVC4.
What version would be recommended? The stable but older one (dates back from 19-Dec-2011!) or the more recent one?
Mono 2.10 supports ASP.NET MVC3, since you want to use MVC4, you'll have to use a later version.
More recent versions of Mono have solved a lot of issues in 2.10, including issues related to ASP.NET.
So you may want to go for a more recent version. I don't think stability will be an issue,
but you will have to perform proper tests to determine if the version you are using supports everything you are trying to do in your application.
Don't deploy to production without testing.
UPDATE: Correction, there is 'partial' MVC4 support in 2.10 and no support for async.
So while you might be able to use 2.10, your mileage may vary depending on what features your app uses

Simple.Data can be safely used in mono today?

Some questions about Simple.Data and Mono:
Can I safely choose Simple.Data for a new project using Mono today?
There is the intention to maintain Mono compatibility in future versions?
The features are the same as the version for Windows?
Some testimony from someone who has already used in Mono?
Many thanks!
There will be a new official Mono build soon as part of the RC process. For now you should be able to clone the GitHub repo (http://github.com/markrendle/Simple.Data) and build the latest version.
Mono support is a requirement of the project, and will continue in all future versions.
Everything that works on Windows and MS.NET should work on Mono on OSX and Linux. If you find that something does not work, that is a bug and should be reported at http://github.com/markrendle/Simple.Data/Issues .
I have not personally got any projects using Simple.Data on Mono, so I can't offer a real testimony, but there are ~700 tests which all pass using Mono 2.10 on Mac OSX against a SQL Server DB.

Is the Reactive Framework (RX) available for use in Mono yet?

Been searching but the only thing I found was http://evain.net/blog/articles/2009/07/30/rebasing-system-reactive-to-the-net-clr which I got to work, but it feels like there should be a simpler way, specially since rx was first release back in mid 09.
You can now download it for .NET 3.5SP1 and .NET 4, so I wouldn't be at al surprised if it just worked against recent releases of Mono - no Silverlight doohickies required at all.
Having said that, I haven't tried it at all against Mono :)
Last time I tried, it did not work since one of the assemblies referenced either a native win32 dll or some framework dll not implemented by mono. However, there has been at least one release of Rx since I tried.
Yes, although I haven't tried it myself.
You can find mono-reactive at https://github.com/atsushieno/mono-reactive.
I've been playing around with it for a while and I've found that the .NET 3.5 SP1 binaries from Microsoft work on Mono 2.6.x. However, as of yet I haven't been able to get the .NET 4 binaries to work. It seems they expect IObserver/IObservable (possibly other stuff?) to be present in mscorlib.dll, which is not the case in Mono 2.6.x. Unfortunately this means no covariant/contravariant versions of IObservable/IObserver under 2.6.x.
Haven't yet dug through Mono's svn to see if I could get it working that way.
If you'll look at .gitmodules of mono repository you'll find reference to external RX repository which I expect will be the part of future mono distributions (Mono 3.0.1 doesn't contain it yet).

Are XmlMtomReader and XmlMtomWriter fully implemented in Mono project?

I'm working on a cross-platform solution currently. The solution uses XmlMtomReader and XmlMtomWriter from .NET framework 3.0.
Now i need to know if these two classes (and all the nessasary infrastructure around them) are fully supported in Mono project from the porting-it-to-linux point of view. :)
You can check it on the mono status:
http://go-mono.com/status/
You can also check your code using the mono migration analyser
http://www.mono-project.com/MoMA
I checked they are currently not implemented
The APIs are available on the current Mono 2.6 preview, but they are not available on the 2.4 release (the current official release).

Run NUnit on Mono?

Does anyone know if you can run NUnit on Mono? The reason I ask is because on the download page it says:
For some releases, we provide a zipped package for use under Mono.
However, the only release that actually has a separate mono release (judging by its label that says "mono:" and then shows the .zip) is the ancient 2.2. NUnit's most recent version is 2.4.8 so I would really rather not use that old of a version.
Can you use the recent version of NUnit on Mono? If not, is there anything I could do to get it to work? What exactly makes something Mono runnable?
Mono 2.4 will ship with NUnit 2.4.8, and has been in use by the Mono project for their tests for several months, so it should work pretty well.
Mono 2.4 preview: http://mono.ximian.com/monobuild/preview/download-preview/
To answer any other "Will x run on mono..." they've produced a tool called the Mono Migation Analyser.
It can be found here and will show you what methods (if any) mono is missing to run your application.