What Mono version to use - mono

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

Related

PHP7 compatibility with Symfony3?

With the release of both PHP7 and Symfony3 this week, have Symfony3 been developed with PHP7 in mind?
To put it another way, if we have PHP7 installed and are starting a new Symfony3 project from scratch, do we run the risk of facing migration problems from within the Symfony framework?
PHP 7 is mostly backward compatible with 5.x versions. Most of the changes that are incompatible with previous versions consist of the removal of quirky features anyway. This is usually not the type of stuff SF developers tend to use.
And, yes, SF3 has been developed with PHP7 (and HHVM, by the way) in mind.
PHP 7 is backwards compatibly unless a featured has been deprecated. Symfony3 is 100% PHP 7 compatible and is built using PHP 7.

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.

MSI install of dll on request from FireFox

With the new firefox we are shipping more and more libraries as the XPom interfaces we interact with are changing. We are at 10 dlls and increasing, each with a size of almost 2M.
This size is a concern for some users.
While we look at restructuring the library to seperate the parts we can make common between them, we are thinking about how we might reduce space on the disk while supporting version upgrades.
For instance, user has FireFox 3.6 and 4.0 installed and when our product is installed we install a dll for each version. When Firefox is 4.0 upgraded (say to 6.0) how might we now install from the msi the missing dll for 6.0 support.
Any ideas on how we could achieve this?
Are we worrying for no reason?
My first thought was we 'AllowAdvertise' and when FF tries to load the dll as directed by chrome it will cause the install, it doesn't seem to work.
My first reaction is to suggest that you move away from XPCOM and towards js-ctypes. After all, this is the direction that Mozilla is pushing extension developers (see Wladimir Palant's comments for example). If there isn't anything in your binary code that absolutely positively requires use of XPCOM, you'll be much happier to ship a DLL that interfaces with JS when needed via js-ctypes.
I guess that your extension is Windows-only so supporting multiple platforms is not an issue. A possible short-term solution:
Have a separate extension package for each Firefox version, mark it as compatible with this Firefox version only (e.g. minVersion 4.0 and maxVersion 4.*).
When your extension is installed, install the version that is compatible with user's installed Firefox version.
Make sure that your extensions have an updateURL entry that is pointing to your server. It is important to have %APP_VERSION% in the URL.
Make sure to test Firefox betas and prepare a new extension version in time for the next Firefox release (releases are scheduled on Tuesdays every 6 weeks, next release being on September 27th).
Configure your server to indicate different packages as updates depending on the Firefox version used. So an update check with %APP_VERSION% 4.0.1 would be sent to extension-ff4.xpi while %APP_VERSION% 6.0 would get extension-ff6.xpi.
Firefox will always check for extension updates when the application is updated. If you can give it a compatible update it will install it. But preparing new packages every six weeks requires tons of effort and I guess that you want to refactor your code/move to js-ctypes ASAP. Oh, and I think that you need to ignore the unlikely scenario that some user has more than one Firefox version installed.

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.