[MonoDevelop] Why does MonoDevelop require .Net 4 on Windows?

Lluis Sanchez Gual slluis.devel at gmail.com
Fri Apr 29 03:35:17 EDT 2011


El dj 28 de 04 de 2011 a les 11:10 -0700, en/na Rod va escriure:
> Lluis Sanchez Gual-3 wrote:
> > 
> > Last time I checked, Mono wasn't also included in any Windows version,
> > so you also have to download and install it.
> > 
> 
> I never said Mono was, not sure why you bring this up. You have to Download
> .Net 4.0 also which is the requirement so this is a wash.

Well, it was you who made the point that ".Net 4 is not everywhere and
doesn't come installed on any Windows out of the box". I just made the
point that the same happens with Mono.

> 
> 
> Lluis Sanchez Gual-3 wrote:
> > 
> > If you install Mono and set it as default target framework, you're
> > ensured that all you do will work with mono.
> > 
> This is false on Windows. You can set Mono as the default, but you get the
> message "MonoDevelop is currently running on Microsoft .NET" even though you
> have a version of Mono selected as the default runtime.

The default runtime is for the projects you develop with MonoDevelop,
not for MonoDevelop itself. When you said "I can insure that all that I
do only is working with mono and that there are no accidental usage
of .Net" I assumed you were talking about your projects. If what you
want is test that MD works fine on Mono, you'll have to get the binaries
and try it.

> 
> Lluis Sanchez Gual-3 wrote:
> > 
> > You are confused. .NET 4 is required for running MonoDevelop, but the
> > projects you create with MonoDevelop can target any .NET and Mono
> > version.
> > 
> You are not reading correctly, because I never said anything about PROJECTS.
> I am only talking about RUNNING MonoDevelop 2.6 not running projects.

Then, I don't see the point of your comment "I am not sure WHY there is
a requirement for .Net 4 when Mono 2.10 is not fully .Net 4 compliment".
If you are only interested in running MonoDevelop, I don't understand
why that bothers you. MD requires .NET 4.0 because it is using some 4.0
features implemented in Mono 2.10 which we are dogfooding (on Linux and
Mac).

> Lluis Sanchez Gual-3 wrote:
> > 
> > That's correct. The installer requires .NET 4.0 and GTK# for .NET. 
> > 
> This is my point and my problem.  That the installer requires this because
> MonoDevelop requires this.  This is wrong to REQUIRE it, to allow it is
> awesome to force it shows the Mono group has no confidence in running Mono
> in real applications like MonoDevelop on Windows.
> 
> 
> Lluis Sanchez Gual-3 wrote:
> > 
> > Historically, Mono on Windows has not been as fast and as reliable as
> > Mono on Unix. This is a matter of fact. Our focus has always been to
> > bring Mono to platforms where .NET is not available. When MonoDevelop
> > was ported to Windows some years ago, we decided to use .NET to provide
> > the best experience to Windows users, and to simplify the installation.
> > 
> I agree that there is a performance delta between .Net and Mono and not only
> on Windows, that the performance is the same on other platforms as it is on
> Windows. I would think that the Mono Project would want to meet or beat .Net
> performance on all platforms.

Sure, we'd like Mono to be the best .net implementation in all
platforms. However, for the core Mono Team at Novell, making Mono better
than .NET on Windows is not a priority. Our resources are limited, and
other platforms like Linux, Mac, iOS and Android have higher priority.

But Mono is an open source project, and there are many contributors out
there that have helped a lot in improving Mono on Windows.

> 
> 
> Lluis Sanchez Gual-3 wrote:
> > 
> > If you are not happy with this, you are free to build or get the
> > MonoDevelop binaries and run them on Mono. Some people have done that
> > and it seems to work. But I can't guarantee that everything is going to
> > work, because it's basically untested. Any help in that area is welcome.
> > 
> This is the wrong attitude. Mono has gone commercial they offer commercial
> licensing, commercial tools, and proprietary and commercial SDK's like
> MonoTouch and Mono for Andriod.  If Mono is to be a commercial success they
> have to take all platforms including Windows seriously.

We take very seriously the platforms on which our commercial offerings
run. We do all we can on the other platforms.

> If you want large
> companies to embed mono in their products Windows and or Cross Platforms
> Novell (or Attachmate now) needs to treat it the commercial projects as
> such, and take their dependencies on the OpenSource projects serious and
> make them commercial-able.

Not sure what you mean here. We treat our commercial projects as such,
but we have no commercial project that requires Mono running on windows.

> 
> The reason stuff like this is important to me, is that what would it say of
> Microsoft if they said you have can only install Visual Studio on Linux to
> develop for Windows? It says that they don't have confidence in there
> development tools to work correctly on the platform they are design to
> develop for. 

That's right, and that is what's happening with MD on Windows. Like it
or not, .NET is better than Mono on Windows. We have no shame on it. The
Mono Project has always been focused on bringing .NET to Unix.

Also, it is not just a matter of performance and stability. For example,
the .NET debugger is heavily based on COM, and although COM is supported
on Mono, I can't tell if all features required by that api are
supported. Also, the Subversion add-in is based on Mixed (native and
managed) assemblies, which are not supported on Mono. Those potential
problems could be overcome by investing development time on it, but as I
said, our resources are limited, and our priorities are elsewhere.

>  
> 
> Right now the Mono Project is saying to develop for Mono on Windows with
> their MonoDevelopment IDE you cannot run our product in Mono you have to run
> it in .Net.  
> 
> As a company we find it critical to "dog food" are products in our
> production environment before letting our customers use it.  What I see here
> is Mono Project isn't "dog food"-ing Mono with their Mono based products on
> Windows.

Again, we don't have Mono based commercial products on Windows. We have
products which run on Windows for building Mono applications for other
platforms.

Also, running MonoDevelop on .NET is also dogfooding. It is a live
demonstration that a complex desktop application can run out of the box
on .NET and Mono. This has helped in the past in detecting and fixing
compatibility issues between Mono and .NET.

> I mean the Mono-Project first and for most should be about making
> Mono the best they can and making sure everything they product that depends
> on it runs well on it on all platforms. 

"Mono-Project" is a wide concept. The Mono Project is composed not only
by the core Mono Team at Novell, but also by many other companies which
use mono internally or in their commercial offerings, and by many other
independent users and contributors. Each company and each contributor
has its own priorities and goals, and help improving Mono according
those. Novell is leading the project, has its own goals and priorities,
and can offer support services for companies which want to use Mono in
different ways. That's how open source projects work and evolve.

> Then on windows you always want to
> make sure they can also run on .Net but you should default to Mono.
> 
> I my group is in the middle of a research project for review mono for
> viability for porting our C, Java (on Linux and Unix) and C, C# products (on
> Windows) to Mono.  This means that Mono is important on Windows that we need
> to be able to run successfully in Mono on a Windows system, as well as on
> all our supported Linux and UNIX platforms.

So yes, that's worth a research project. We (the Mono Project) will be
happy to help if you have any question or find any issue.

Lluis.




More information about the Monodevelop-list mailing list