ASP.NET MVC应用程序的开源许可选项?
我正在计划开发开放源代码的ASP.NET MVC中的个人项目。过去,我开源了很多PHP脚本和基于UNIX的东西。对于这些,我通常会获得BSD / Apache样式的许可证,除非我包含阻止它的库。在Linux / PHP方面,这通常意味着经过GPL编译的内容,因此仍然可以做出明确的安排。
但是,对于该项目,我正在尝试找出哪些许可证甚至可以应用于该项目,而没有找到任何好的资源来回答问题。我知道,这个问题的唯一"真实"答案将涉及一名律师。但是,由于这不会产生收入,因此,如果我要为该项目投入1000美元,我宁愿雇用一名平面设计师或者可用性专家来通过该应用程序,也不愿支付律师费。
该特定项目还使用Subsonic进行数据库访问,并使用Argotic进行RSS解析,这使问题进一步复杂化。
我知道我可以使用所有这些作品,并且可以重新分发使用所有这些作品的项目。但是,我所剩下的就是对所产生的项目可以/必须获得许可的困惑。
我可能可以在Subsonic和Argotic比特的迷宫中协商自己的方式,因为它们已经获得了开源许可证,但是我不是唯一一个试图弄清楚我可以在上面编写的项目中申请哪些许可证的人ASP.NET MVC。
针对评论:
我什么都不"害怕"。我只是试图像对待应用程序的体系结构和开发那样,对最终应用程序的许可和分发给予同样的关注。除此之外,我还目睹了生活的毁灭,因为他们没有注意当今书籍上可疑的拜占庭式知识产权法。
而且,坦率地说,过去我实际上是从一个开源组件的律师那里收到一封令人讨厌的信,该信包含在我自己的一个开源项目中,但是使用了他们不满意的许可证。
不幸的是,"开放源代码许可证"在法律上并没有说"仅使用Web编程语言就可以了"。 GPL显然是最流行的开放源代码许可之一,而且从表面上看,它是为数不多的不能应用于ASP.NET MVC应用程序的许可之一。我很好奇,是否有一个现有的许可证可以与我使用的组件的其他许可证进行"编译"而不会引发合法的"编译器"错误。
我并不是说答案很简单(不是)。我之所以问这个问题,是因为我对从仔细研究该问题的角度出发的答案真正感兴趣。当我最初发布它时,我完全希望它长时间不会被回答,因为这不是一个简单的问题。
解决方案
回答
ASP.Net MVC最终应成为核心.Net框架的一部分。一旦它是我们不需要重新分配它。
同时,我们可以将自己喜欢的任何许可证应用到自己的代码中,而不用重新添加MVC程序集。用户可以自己下载当前的MVC预览。
回答
如果不是这样,他们几乎肯定会在RTM中提供某种上线许可。
回答
我真的没有得到我们所担心的。根据我的理解,Subsonic和ASP.NET MVC可以重新分配为开放源代码或者商业许可证,只要我们不使用需要对GPL进行一切处理的某种病毒性GPL许可证,就可以了。
我们可以尝试阅读自由软件基金会有关许可证的参考,我们可以将这些参考用于开放源代码项目,以尝试了解可能要使用的各种许可证。
回答
我真的不熟悉所有这些,但是前几天我在CodePlex上,有人根据Microsoft Public License发布了一个项目:
http://en.wikipedia.org/wiki/Microsoft_Public_License#Microsoft_Public_License_.28Ms-PL.29
回答
在GPL许可下获得许可是很常见的事情,否则会与GPL不兼容的事物例外。例如,出口许可证是:
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. In addition, for the avoidance of any doubt, permission is granted to link this program with OpenSSL or any other library package and to (re)distribute the binaries produced as the result of such linking.
如果我们想使用GPL,则可以执行类似的操作。
但是,听起来我们并不是特别想使用GPL,而是想要BSD样式许可证,在这种情况下,我们不需要特殊的例外。只需将代码置于所需的许可证下即可。只要很清楚,许可证仅适用于代码,而不适用于我们要与之一起分发的其他软件,那么就不存在法律上的问题,我们可以将自己喜欢的任何许可证放在自己的代码上。
回答
我们应该能够像分发DotNetNuke一样重新分发它。我相信这是一个开源项目。
回答
最终的RTM答案最终表明,ASP.NET MVC本身已根据Microsoft许可许可证(它是OSI认证的许可证)发布。该许可证与Apache,BSD和该系列许可证的其余部分非常相似。最重要的是,在该许可下,即使项目包含System.Web.Mvc DLL使其可以二进制部署,我们也可以自由地许可我们认为合适的代码。