.NET/Mono安装基础

11
我和一些朋友正在考虑编写一个新的自由开源软件项目,我们正在就使用.NET还是其他技术进行辩论。
因此,我想知道Linux机器上Mono的安装基数是否有官方数据?同时,Windows机器上Mono或Microsoft .Net的已知安装基数是多少?
谢谢。

安装基数 - 表示实际使用的特定类型系统单位数量的度量。


“安装基数”是什么意思?我们正在开发一个跨平台项目,旨在支持Mono/Windows/Mac。 - IAbstract
安装基础是什么意思? - user59634
2
@dboarman和@Amit - 我认为他在这里寻找统计数据,比如“97%的计算机都有Flash”(无论是什么统计数据)......这样他就知道可部署受众有多广了。 - Nick Craver
完全正确,我添加了“官方定义”。 - Amirshk
6个回答

6

.NET Framework安装情况

Hanselman给出了.NET Framework安装的统计数据,他表示超过90%的电脑已经安装了.NET Framework,其中超过65%的电脑安装了3.5 SP1版本(此数据发布于2010年1月19日)

我不确定这些数字的来源,但这是我近期看到的唯一一个数字。至于Mono...我不确定。


2
他说这个统计数据是基于Windows更新的统计数据。因此,实际上,这个统计数据表明90%配置为使用Windows更新的连接到互联网的计算机有.NET。并没有提供真正有用的信息。 - Paul
有趣的是,至少它提供了一些Windows的统计数据。结合操作系统的安装基础,我可以得出一个很好的假设,即它有多常见。 - Amirshk
@Paul - 没错,但我认为大多数不使用Windows更新的机器都在公司内部...如果是这样运作的话,安装任何想要的软件可能根本不是一个选项。我认为那些没有连接/使用Windows更新的人大多属于程序员/早期采用者类型,他们正在远离XP...而任何更高版本都有.Net 2.0+我欢迎任何关于为什么这个数字可能更/少有效的讨论...但我不知道其他有关此问题的知情统计数据,很想看到有人在这里发布它以供比较。 - Nick Craver
我的观点很简单,即Scott的统计数据并没有让我们更接近于找出全球.NET/Mono安装基数的百分比,这正是OP所要求的。它排除了Mac和*nix系统,以及任何由于任何原因未运行MS更新的Windows系统。 - Paul
1
@Paul:我个人会依赖于基于真实用户的统计数据,而不是担心服务器和公司的安装数量。我认为这真的取决于项目以及它的预期使用情况。 - Will Eddins
@Will:这是你的决定;我只是想指出那个统计数据中的缺陷。仅供参考。 - Paul

6
对于Linux,我建议使用最流行的发行版。例如,Ubuntu默认带有Mono。这样,您将拥有一个庞大的潜在用户群。
Vista+将拥有.Net。
在Mac OS X上,GTK#和Mono实际上可以与应用程序一起包含。Banshee最近发布了一个版本,支持该功能
对于Windows XP,我只需使用Visual Studio安装程序创建安装程序,并使用先决条件功能来确定依赖项。如果机器上没有依赖项,则安装程序可以为您添加它们。
RPM和.DEB安装程序格式也可以在Linux上为您执行同样的操作。
总之,我想说的是,写好应用程序,然后通过编写良好的安装程序或软件包解决依赖关系问题。
顺便说一句,如果您没有Windows上的Visual Studio安装程序,Innosetup也很不错。
N8

1
可以比较肯定地说,选择C#编程语言后,我可以将很多代码交叉编译到Unix/Mac系统上。 - Amirshk
几乎任何代码都可以工作。避免使用WPF和P/Invoke。如果你能避免使用Winforms并改用GTK#,那么你会更好。现在大多数Winforms应该可以工作了。 - Nate
足够真实。我们将我们的WinForms使用保持到最基本(基本上只有6个不同的控件)- 至少在我们准备好GTK#和我们的框架进行匹配之前(也就是说,一旦我学会了如何使用它...哈哈)。 - IAbstract

4
你最好的选择是使用.NET。虽然我们专注于开发应用套件,但尽可能使技术跨平台(我会使用通用术语,但那会让人感到困惑)。
首先确定整体设计/架构,然后研究你正在考虑的技术。例如,如果你的应用程序将针对Mono平台,有些微软技术你甚至不应该考虑(MEF就是其中之一)。
不要让Linux/Windows/Mono的讨论阻碍你的进展。 ;)
根据Am的评论进行编辑:我没有意识到你实际上关心是否使用C#是最佳决策。基于这个,我会再补充一点。
Mono是用C#编写的。它的流行程度是压倒性的。加上C#的灵活性和C++的扩展(或多或少),我真的认为你不会错。但还有上述需要注意的地方。

没关系,项目已经在进行中了,我只是想知道我们选择使用C#是否正确。 - Amirshk
我相信你选择C#是一个很好的选择。这也是我们正在使用的语言。MonoDevelop是用C#编写的。你可以去www.koders.com,甚至可以找到所有Mono开源文件。我之前并没有意识到你实际上在讨论使用C#。 - IAbstract
有一些 MS 技术不应该与 Mono 一起使用,但是 MEF 可以直接使用。WPF、Entity Framework 和 Windows Workflow 是需要避免的主要领域。 - Justin

2
根据Debian流行度调查mono-runtime已安装在13184个参与的Debian主机中(排名第1504)。
这意味着在所有Debian安装中(其中肯定包括许多服务器),安装基数达到15%。
为了近似计算桌面安装量,我查看了xserver-xorg的安装情况(49872个实例,排名第390)。
假设只有在安装X服务器时才会安装mono,那么在桌面用户中,该软件的安装基数将达到26%。
其他信息:
  • bash:99.9%
  • perl:99.4%
  • python:97%
  • php(4、5、cgi、cli):56%(可能包含一些重复内容)
  • tcl8.4:45%
  • tk8.4:35%
  • java:35%(其中超过50%是旧的非免费Sun JRE)
  • ruby1.8:26%
  • ghc6(haskell):2%

作为一个附注:由于自动依赖解析和安装工具(如apt和yum),解释器的安装基础较小在Windows下不像在Windows下那样需要进行繁琐的手动安装过程。

谢谢David,我一直在寻找这样的东西。 - Amirshk

1
所有运行Vista的计算机都至少安装了.NET 2,而Windows-7则是.NET 3.5.1。 Aaron Stebner有一页详细介绍了哪个版本的Windows标准安装了哪个版本的.NET。因此,如果你知道目标受众正在运行的操作系统,就能确定他们是否已安装.NET以及是哪个版本。

1

让我试着给你一个关于Mono在Linux上的普及率的有根据的猜测。对于KDE来说,几乎没有任何依赖于Mono的应用程序。但对于GNOME来说可能会有所不同。一些流行的应用程序(如TomBoy、F-Spot、我的GIMP# stuff ;))需要Mono。

现在假设所有桌面环境中50%是KDE,另外50%是GNOME。再假设其中一半的GNOME用户安装了一个依赖于Mono的程序。在这种情况下,你大约有25%的Linux用户基础已经安装了Mono。个人认为这已经是一个相当高的数字了,但它给出了一个上限。我的估计大约是10%,但这只是我的直觉。希望这能帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接