我和一些朋友正在考虑编写一个新的 FOSS 项目,争论分为使用 .NET 还是其他东西。
所以我想知道 Linux 机器上是否有广告的 Mono 安装基础?并且,Windows 机器上是否存在已知的 Mono 或 Microsoft .Net 安装基础?
谢谢。
安装基数- 衡量实际使用的特定类型系统的单元数量。
Hanselman 给出了 .Net Framework Installs 的统计数据。他将其放置在90% 以上的 PC上。超过 65% 的 PC 具有 3.5 SP1 。 (发布于 2010 年 1 月 19 日)
我不确定这些数字来自哪里,但这是我很长一段时间以来看到的唯一数字。至于单声道……我不确定。
对于 Linux,我只想看看最流行的发行版。例如,Ubuntu 默认带有 Mono。在那里,您拥有庞大的潜在用户群。
Vista+ 将拥有 .Net。
在 Mac OS X 上,GTK# 和 Mono 实际上可以包含在应用程序中。Banshee 最近发布了一个可以做到这一点的版本。
对于 Windows XP,我只是使用 Visual Studio 安装项目创建一个安装程序,并使用先决条件功能来确定依赖项。如果依赖项不在机器上,安装程序可以为您放入它们。
.RPM 和 .DEB 安装程序格式可以在 Linux 上为您做同样的事情。
总而言之,我想说的是编写应用程序,然后通过编写一个好的安装程序或包来解决依赖关系。
顺便说一句,如果您在 Windows 上没有用于安装程序的 Visual Studio,Innosetup也可以很好地工作。
N8
您最好的总体选择是使用 .NET。虽然我们专注于开发应用程序套件,但我们会尽可能地保持技术跨平台(我会使用通用术语,但这会令人困惑)。
首先让您的整体设计/架构到位。然后研究你正在考虑的技术。例如,如果您的应用程序将针对 Mono 平台,那么您甚至不应该考虑一些 MS 技术(想到 MEF)。
不要让 Linux/Windows/Mono 讨论阻止您完成任何事情。;)
根据 Am 的评论进行编辑:我没有意识到您实际上担心使用 C# 的决定是否是最佳决定。有鉴于此,我再补充一点。
Mono 是用 C# 编写的。人气是压倒性的。添加 C# 的灵活性和 C++ 的扩展(或多或少),我真的不认为你会出错。正如我上面提到的,您仍然需要注意一些注意事项。
根据Debian Popularity Contest,mono-runtime安装在 90447 台参与的 Debian 主机中的 13184 台上(排名 #1504)。
这将转化为所有 debian 安装(当然包括许多服务器)的 15% 安装基数。
对于桌面安装的近似值,我查看了 xserver-xorg 安装(49872 inst,排名 #390)。
假设只有在安装了 X 服务器的情况下才安装 mono,这将转化为桌面用户中 26% 的安装基数。
其他:
附带说明:由于自动依赖解析和安装 apt 和 yum 之类的工具,与在手动安装过程更加繁琐的 Windows 下相比,安装小型解释器的问题要小得多。
所有运行 Vista 的计算机都将至少安装 .NET 2 和 Windows-7 .NET 3.5.1。
Aaron Stebner 有一个页面详细说明了哪个版本的 Windows 安装了哪个版本的 .NET 作为标准。因此,如果您知道目标受众正在运行的操作系统,您将能够确定他们是否会安装 .NET 以及哪个版本。
让我试着给你一个关于 Linux 上 Mono 渗透的有根据的猜测。对于 KDE,几乎没有任何应用程序依赖于 Mono。对于 GNOME,可能会有所不同。几个流行的应用程序(TomBoy、F-Spot、我自己的 GIMP# 东西;))需要 Mono。
现在让我们假设 50% 的桌面环境是 KDE,另一半是 GNOME。让我们再次假设一半的 GNOME 用户安装了一个依赖于 Mono 的程序。在这种情况下,您将获得大约 25% 的 Linux 用户群安装了 Mono。我个人认为这已经是一个相当高的数字,但如果给你一个上限。我自己的猜测是 10% 左右,但这只是直觉。希望这可以帮助。