我们被要求为一个大项目研究一个完全开源的解决scheme,他们希望这个项目尽可能接近100%的开源,主要是因为这是一个社区项目,未来可能只有很less的钱,用于主机的运行。 使用操作系统软件可节省许可成本,因为服务器将由现有的IT系统团队进行内部pipe理。
其中一个供应商是提出.net作为系统的组成,这很好,我知道.net应用程序可以正确地在GPL等开源许可下发布。
然而,因为我不是一个.net开发者,所以在涉及.net的权力方面,我有点困惑。 它是否必须是一个Windows服务器,这当然会导致更高的服务器成本和与MS产品的联系,或者可能在Linux等开源服务器上运行.net应用程序。
请不要把它变成一个MS Vs Linux的参数和好处,或者使用其中一个。 我们只是想确保我们充分了解使用.net的信息,以及它是如何开源的。 我希望能打开我的眼睛。
就像其他人已经有了单声道一样,但由于它是不成熟的,它不仅是一个额外的复杂程度,而且是一个额外的风险水平。 此外,提供.NET解决方案的供应商不太可能希望在Apaches + Mono上支持他们的应用程序。
所以要么选择OSS(Apache + PHP / Perl / Python / Ruby等),要么选择IIS + .NET。 选择.NET解决方案绝对没有错,如果它是最好的应用程序,但不要试图将本质上为一个平台设计的应用程序穿在另一个平台上。
“真”的.NET只能在Windows上运行。 但是, Mono项目允许为.NET编写的应用程序在Linux(和其他平台)上运行,只要没有任何兼容性问题。 单声道有一个兼容性检查器 ,可以帮助你粗略看看你可能有多少问题,但我自己没有任何经验。 还有一个可移植性指南页面,您可能会发现非常有用。
我想你会发现在非微软环境下,开源社区和选择剪辑量要大得多。 虽然您可以使用Mono在Linux上运行.Net,但您可能只是增加了一层不必要的复杂性。
此外,请务必评估选择开源解决方案的真实成本。 可能没有社区来支持您选择的软件,从长远来看,您最终可能会花费尽可能多的时间/金钱进行维护,否则您将无法保存。
进一步的一些以前的答案; 一些其他的单声道细节:
这个供应商在开源操作系统上有单声道的实际经验吗? 或者只是与Windows上的.NET? 那你的系统家伙呢? 你可能不希望强迫他们进入一些他们不主动支持的新事物
你听起来不太理解许可证。 GPL与其他一些产品没有很好的结合。 请咨询专业人士。