【问题标题】:.net open source and running platform choices [closed].net 开源和运行平台选择 [关闭]
【发布时间】:2023-08-28 21:28:01
【问题描述】:

我们被要求为一个大项目研究一个完全开源的解决方案,他们希望项目尽可能接近 100% 开源,主要是因为它是一个社区项目,可用的资金可能很少未来除了主机的运行。使用操作系统软件可以节省许可成本,因为服务器将由现有的 IT 系统团队在内部进行管理。

其中一家供应商提议将 .net 作为系统的组成部分,这很好。我知道 .net 应用程序可以在 GPL 等开源许可下发布。

但是,由于我不是 .net 开发人员,所以当谈到 .net 的驱动力时,我有点困惑。是否必须是 Windows 服务器,这当然会导致更高的服务器成本并与 MS 产品绑定,或者是否可以在 Linux 等开源服务器上运行 .net 应用程序。

请不要把它变成 MS 与 Linux 的争论和好处或使用其中一个或另一个。我们只是想确保我们在使用 .net 以及它的开源程度方面有充分的了解。我希望能睁大眼睛。

【问题讨论】:

    标签: .net windows linux open-source


    【解决方案1】:

    "True" .NET 仅在 Windows 上运行。但是,Mono project 允许为 .NET 编写的应用程序在 Linux(和其他平台)上运行,只要不存在任何兼容性问题。 Mono 有一个compatibility checker,它可以帮助您粗略地查看您可能遇到的问题,但我自己没有任何经验。还有一个Portability Guidelines 页面,您可能会发现它非常有用。

    【讨论】:

    【解决方案2】:

    正如其他人已经知道的那样,有 Mono,但考虑到它的不成熟性,它不仅是一个额外级别的复杂性,而且是一个额外级别的风险。此外,提供 .NET 解决方案的供应商不太可能希望在 Apaches + Mono 上支持他们的应用程序。

    所以要么选择 OSS(Apache + PHP/Perl/Python/Ruby 等),要么选择 IIS + .NET。选择 .NET 解决方案绝对没有任何问题,如果它是最适合这项工作的应用程序,但不要试图将本质上为一个平台设计的应用程序套用到另一个平台上。

    【讨论】:

    • 这就是我们的想法,谢谢
    【解决方案3】:

    我想您会发现,在非 Microsoft 环境中,开源社区和选择的剪切量要大得多。虽然您可以使用 Mono 在 Linux 上运行 .Net,但您可能只是增加了另一层不必要的复杂性。

    此外,请务必评估选择开源解决方案的真实成本。可能没有社区来支持您选择的软件,从长远来看,您最终可能会花费尽可能多的时间/金钱进行维护。

    【讨论】:

    • 是的,选择开源的真正成本是我们非常清楚的,正在开发的“系统”必须得到长期支持,并且只会考虑得到认可的支持系统。这是我们必须平衡大量 MS 许可证(多服务器)的东西。
    • 另一方面,封闭源代码的支持通常同样糟糕,但没有源代码
    【解决方案4】:

    对之前的一些答案的进一步了解;其他一些 Mono 细节:

  • 当前面向 .NET 2.0 和 3.5 的编译器是 NOT the default compiler。对我来说,这表明了一个不成熟的平台。如果您正在开始一个新项目,那么能够可靠地使用 .NET 框架必须提供的所有功能是一个巨大的优势。恕我直言,如果您需要将 .NET 框架推向极限/边缘情况,Mono 不会将其带到桌面上。

  • Mono 由 Novell 赞助,它确实谈到了它作为一个平台的潜在寿命。
  • 【讨论】:

      【解决方案5】:

      这家供应商在开源操作系统上是否有使用单声道的真实经验?或者只是在 Windows 上使用 .net?你的系统人呢?您可能不想强迫他们接受他们不积极支持的新事物

      您听起来不太了解许可证。 GPL 不能与其他一些很好地结合。请咨询专业人士。

      【讨论】:

      • 我们很清楚 GPL 如何与其他人结合,我们只是在寻找一些可能的解决方案。
      最近更新 更多