ASP.NET MVC应用程序的开源许可选项?

ASP.NET MVC应用程序的开源许可选项?

Open Source Licensing Options for ASP.NET MVC Application?

我正在计划开发开放源代码的ASP.NET MVC中的个人项目。过去,我开源了很多PHP脚本和基于UNIX的东西。对于这些,我通常会获得BSD / Apache样式的许可证,除非我包括阻止它的库。在Linux / PHP方面,这通常意味着经过GPL编译的内容,因此仍然可以做出相当明确的安排。

但是,对于该项目,我正在尝试找出哪些许可证甚至可以应用于该项目,而没有找到任何好的资源来回答问题。我知道,这个问题唯一的"真实"答案将涉及一名律师。但是,由于这不会产生收入,因此,如果我要为该项目投入1000美元,我宁愿雇用一名平面设计师或可用性专家来通过该应用程序,也不愿支付律师费。 。

这个特定项目还使用Subsonic进行数据库访问,并使用Argotic进行RSS解析,这使问题进一步复杂化。

我知道我可以使用所有这些作品,并且可以重新分发使用所有这些作品的项目。但是,我所剩下的就是对所产生的项目可以/必须获得许可的困惑。

我可能可以通过迷宫般的方式来解决Subsonic和Argotic位的问题,因为它们已经获得了开源许可证,但是我不是唯一一个试图弄清楚我可以在上面编写的项目中申请哪些许可证的人。 ASP.NET MVC。

针对评论:

我什么都不"害怕"。我只是试图像对待应用程序的体系结构和开发那样,对最终应用程序的许可和分发给予同样的关注。除此之外,我还目睹了生活的毁灭,因为他们没有关注当今书籍上可疑的拜占庭式知识产权法律。

而且,坦率地说,过去我实际上是从一个开源组件的律师那里收到一封令人讨厌的信,该信包含在我自己的一个开源项目中,但是使用了他们不满意的许可证。

不幸的是,"开放源代码许可证"在法律上并没有说"仅使用Web编程语言就可以了"。 GPL显然是最流行的开放源代码许可之一,而且从表面上看,它是为数不多的不能应用于ASP.NET MVC应用程序的许可之一。我很好奇是否有一个现有的许可证可以与我正在使用的组件的其他许可证进行"编译"而不会引发合法的"编译器"错误。

我并不是说答案很简单(不是)。我之所以问这个问题,是因为我真的对从仔细研究该问题的角度得出的答案感兴趣。当我最初发布它时,我完全希望它长时间不会被回答,因为这不是一个简单的问题。


RTM的最终答案是,ASP.NET MVC本身已根据Microsoft许可许可证(它是OSI认证的许可证)发布。该许可证与Apache,BSD和该系列许可证的其余部分非常相似。最重要的是,在该许可下,即使您的项目包含System.Web.Mvc DLL使其可二进制部署,您也可以自由地许可您认为合适的代码。


我真的没有得到您所担心的。根据我的理解,Subsonic和ASP.NET MVC可以重新分配为开放源代码或商业许可证,只要没有使用某种需要GPL一切的病毒性GPL许可证,就可以了。

您可以尝试阅读自由软件基金会有关许可证的参考,您可以将这些参考用于开放源代码项目,以尝试了解可能要使用的各种许可证。


ASP.Net MVC最终应成为核心.Net框架的一部分。一旦确定,您将不需要重新分配它。

同时,您可以将自己喜欢的任何许可证应用到自己的代码中,但不能随便重新添加MVC程序集。用户可以自己下载当前的MVC预览。


您应该能够像分发DotNetNuke一样重新分发它。我相信这是一个开源项目。


根据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样式许可,在这种情况下,您不需要特殊的例外。只需将您的代码置于所需的许可证下即可。只要很清楚,您的许可证仅适用于您的代码,而不适用于您与之一起分发的其他软件,那么这就不存在法律问题-您可以将自己喜欢的任何许可证放在自己的代码上。


我真的不熟悉所有这些,但是前几天我在CodePlex上,有人根据Microsoft Public License发布了一个项目:

http://en.wikipedia.org/wiki/Microsoft_Public_License#Microsoft_Public_License_.28Ms-PL.29


如果没有,他们几乎肯定会在RTM中提供某种上线许可。


推荐阅读