What a long title… But why not.
This week has been exhausting for mr. Huso. It has been some security holes and more.
But I have also noticed something that I think the mono developer team should start doing.
This past week I was part of a small team that upgraded a website from .Net 1.1 to .Net 3.5. In this process I noticed that, and I knew this from earlier, that with each visual studio release there is a new .Net Framework.
So: If you run vs 2008, you are coding against .net 3.5. The new VS 2010 will use the 4.0 version of the framework.
How about MonoDevelop (which is an just as awesome IDE/RAD).
There is a bug in Podsleuth that I wanted to look at and hopefully fix (tired of not being able to update my iPod in Banshee under Ubuntu). So I fired up MonoDevelop. But since I needed debugging information on the “service”, I needed some help. Best place is IRC.
And I got in touch with some people there. And they told me that MD 2.2 has this feature. So of I went to download and install it (apt-get and so on).
Unfortunately MD2.2 does not fire a dependency warning on Mono 2.4 that it also needs. So installing and using MD2.2 isn’t quite as easy.
So this is what the MD/M-team should learn from the guys in Redmond: Whenever you update the Mono Framework, update the MonoDevelop package as well. And release them at the same time!
Maybe they should change the versioning as well, following VS. So MonoDevelop 2.4 could be MonoDevelop 2010. Mono could follow the versioning that they are doing now.
Important: This is not meant to disgrace the great work the Monodevelop-team is doing, it’s just a public personal suggestion…
Monodevelop vs Visual Studio – or what the monoteam could learn from VS
January 16th, 2010
5 Comments


Firstly, if the MD 2.2 package you used did not depend on MD 2.4.x, then the package you used had broken dependencies. The MD 2.2 build scripts certainly require 2.4, as do the packages that we ship for openSUSE and Mac. Distros have their own often complicated policies and requirements for packaging and shipping, so we leave that to the distros’ own experts.
We’ve considered tying MD releases to Mono releases a few times, but synchronizing the releases would really delay getting features to users. We prefer to do smaller incremental releases so users can get the features that are done as soon as possible. Not many features in MD are directly dependent on Mono versions.
Also, it’s useful to support running MonoDevelop on slightly older versions of Mono because upgrading MonoDevelop is much easier than upgrading Mono. Mono’s a core framework that other apps depend on, so Mono packagers have to be extra-careful that they don’t break Mono apps like Banshee, F-Spot, Tomboy, etc. If we were tying releases together, MD 2.2 would have required Mono 2.6, but the upcoming and most recent release versions of Ubuntu only have Mono 2.4, so Ubuntu users would not have been able to run MD 2.2.
Point taken, but this can be fixed like they do in .Net. If I upgrade to .Net framework 3.5 I still have .Net 2.0 on the machine, and so when I compile an application I just tell which version I want to use. This, I believe is working from version 2.0 and upwards.
It would not surprise me if you know more about this than I do though.
I really don’t see what that would gain you. Sure, you can install .NET 1.1, 2.0, 4.0 side-by side, but the newer frameworks are backwards-compatible anyway (except for a few obscure changes), so this is only to ensure ultra-backwards-compatibility, and it isn’t much different to what Mono does with having all the 1.0 and 2.0-3.5 assemblies anyway. Also, Mono versions really don’t map easily to .NET versions at all, and are much more frequent.
Need to know what is the difference between MonoDevelop vs Monotools for visual studio. because Monodevelop is freeware where as MonoTools is a paid version
You’ve probably found this out already: The difference between MonoDevelop is that this is a standalone RAD IDE, while Monotools is a plugin for Visual Studio this so that you can use the latter RAD IDE to develop Mono applications.