Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.NET/Mono Install Base

Tags:

.net

mono

survey

Me and some friends are considering writing a new FOSS project, and the debate is divided between using .NET or something else.

So I am wondering if there is an advertised install base for Mono on Linux machines? and, if there known install base of Mono or the Microsoft .Net on windows machines?

Thanks.


Install Base - A measure of the number of units of a particular type of system actually in use.

like image 940
Amirshk Avatar asked Jan 31 '10 20:01

Amirshk


People also ask

How do I install Mono on Windows 10?

To install Mono on Windows, download and run the installer from the download page at http://www.go-mono.com/. Gtk# is included in the installer. The installer will deposit all the necessary files in C:\Program Files\Mono-1.0, but you can override that by entering a different folder.

Can Mono run .NET framework?

NET Core is supported on Mono (or if it even needs mono, now?), at least not entirely. Take a look here for what Mono supports. FastCGI is simply the server that runs ASP.NET code with mono. Now, having said that, is there a particular reason you need to run it on Linux?

Does ASP.NET support Mono?

Supported Versions Mono supports ASP.NET 2.0, ASP.NET AJAX and a handful of 3.5 controls.


6 Answers

Hanselman gives a stat for .Net Framework Installs. He places it over 90% of PCs. with over 65% of PCs having 3.5 SP1. (This was posted on Jan 19, 2010)

I'm not sure where the numbers come from, but it's the only figure I've seen in quite some time. As for Mono...I'm not sure.

like image 185
Nick Craver Avatar answered Oct 03 '22 21:10

Nick Craver


For Linux, I would just look at the most popular distributions. For example, Ubuntu comes with Mono by default. Right there you've got a large potential user base.

Vista+ will have .Net.

On Mac OS X, GTK# and Mono can actually be included with the app. Banshee recently released a version that does this.

For Windows XP, I just create an installer using Visual Studio Setup project and use the prerequisites feature to determine the dependencies. If the dependencies aren't on the machine, the installer can put them in for you.

.RPM and .DEB installer formats can do the same thing for you on Linux.

All, in all I'd say write the app and then work around the dependencies by writing a good installer or package.

BTW, if you don't have Visual Studio for the installer on Windows, Innosetup works nicely as well.

N8

like image 42
Nate Avatar answered Oct 03 '22 21:10

Nate


Your best overall bet is to go with .NET. While we are focusing on getting the application suite developed, we are keeping technologies as cross-platform as possible (I would use the term generic but that would be confusing).

Get your overall design/architecture in place first. Then study the technologies you are considering. For instance, if your application is going to target a Mono platform, there are MS technologies that you shouldn't even consider (MEF comes to mind).

Don't let a Linux/Windows/Mono discussion keep you from getting anything accomplished. ;)

Edit based on Am's comment: I didn't realize you were actually concerned whether the decision to use C# was the best decision. In light of that, I'll add a bit more.

Mono is written in C#. The popularity is overwhelming. Add C#'s flexibility and an extension (more or less) of C++, I really don't think you can go wrong. There are still considerations as I mentioned above that you need to keep aware of.

like image 26
IAbstract Avatar answered Oct 03 '22 22:10

IAbstract


According to the Debian Popularity Contest, mono-runtime is installed on 13184 out of 90447 participating Debian hosts (rank #1504).

That would translate to an installed base of 15% on all debian installations (surely including many servers).

For an appoximation of Desktop installations, I looked at the xserver-xorg installations (49872 inst, rank #390).

Assuming that mono is only installed if an X server is installed, that would translate to an installed base of 26% within the desktop population.

Others:

  • bash: 99.9%
  • perl: 99.4%
  • python: 97%
  • php(4,5,cgi,cli): 56% (probably contains some duplicates)
  • tcl8.4: 45%
  • tk8.4: 35%
  • java: 35% (more than 50% of which are the old non-free sun JREs)
  • ruby1.8: 26%
  • ghc6 (haskell): 2%

As a side-note: due to the automatic dependency resolution and installation of tools like apt and yum, a small installed base of the interpreter is much less of a problem than under Windows where the manual installation process is much more tedious.

like image 26
David Schmitt Avatar answered Oct 03 '22 22:10

David Schmitt


All computers running Vista will have at least .NET 2 installed, and Windows-7 .NET 3.5.1.

Aaron Stebner has a page detailing which version of Windows has which version of .NET installed as standard. So if you know the OS being run by your target audience you'll be able to work out whether they'll have .NET installed and which version.

like image 36
ChrisF Avatar answered Oct 03 '22 20:10

ChrisF


Let me try to give you an educated guess of the Mono penetration on Linux. For KDE there are hardly any applications dependent on Mono. For GNOME that might be different. Several popular applications (TomBoy, F-Spot, my own GIMP# stuff ;) ) need Mono.

Now lets suppose that 50 % of all desktop environments are KDE, the other half is GNOME. And lets suppose again that half of the GNOME users install a program that depends on Mono. In that case you get about 25 % of your Linux user base that has Mono installed. Personally I think that is already a pretty high number, but if gives you an upper limit. My own guestimate would be around 10 %, but that is just gut feeling. Hope this helps.

like image 45
Maurits Rijk Avatar answered Oct 03 '22 21:10

Maurits Rijk