Open source licenses impose constraints on the way in which a given software can be distributed. The fact that you are using a Microsoft based product to develop your software does not pose any particular restriction on the distribution of software that you are developing. You are free to do as you want. To choose an appropriate license you must consider the restrictions that are associated to each specific license and choose whatever option is best for you. I'll give a few rough examples just to give an overview:
Do you want just to be recognized for developing the software and you do not expect anything else? It is fine if someone takes your software, modifies it without distributing the improvements and the sells it as a commercial software? Then evaluate BSD or MIT or Apache licenses.
Are you fine if someone embeds your software as a statically linked library, even in a commercial project, but you would like all improvements to your original software to be distributed back to you? Then evaluate a LGPL license.
You want to "contribute to the community" and you would like that evey work derived from your software should be a "community contribution too". In this case choose a GPL. Every software derived from yours must be open sourced as well. Note that this does not prevent someone from selling the derived software when he publishes the source code.
If you don't want in any case that your software could be part of a commercial product then you must explicitly disallow it in your license.
发布评论
评论(1)
开源许可证对给定软件的分发方式施加了限制。您使用基于 Microsoft 的产品来开发软件这一事实并不会对您正在开发的软件的分发构成任何特定限制。你可以自由地做你想做的事。要选择适当的许可证,您必须考虑与每个特定许可证相关的限制,并选择最适合您的选项。我将举几个粗略的例子来进行概述:
您是否只想因开发软件而获得认可,而不期望其他任何事情?如果有人拿走你的软件,修改它而不分发改进并将其作为商业软件出售,这可以吗?然后评估 BSD 或 MIT 或 Apache 许可证。
如果有人将您的软件作为静态链接库嵌入(即使是在商业项目中),您是否可以接受,但您希望将原始软件的所有改进分发给您?然后评估 LGPL 许可证。
您想要“为社区做出贡献”,并且您希望从您的软件中获得的每项工作也应该是“社区贡献”。在这种情况下,请选择 GPL。每个源自您的软件也必须是开源的。请注意,这并不能阻止某人在发布源代码时出售派生软件。
如果您在任何情况下都不希望您的软件成为商业产品的一部分,那么您必须在许可证中明确禁止它。
Open source licenses impose constraints on the way in which a given software can be distributed. The fact that you are using a Microsoft based product to develop your software does not pose any particular restriction on the distribution of software that you are developing. You are free to do as you want. To choose an appropriate license you must consider the restrictions that are associated to each specific license and choose whatever option is best for you. I'll give a few rough examples just to give an overview:
Do you want just to be recognized for developing the software and you do not expect anything else? It is fine if someone takes your software, modifies it without distributing the improvements and the sells it as a commercial software? Then evaluate BSD or MIT or Apache licenses.
Are you fine if someone embeds your software as a statically linked library, even in a commercial project, but you would like all improvements to your original software to be distributed back to you? Then evaluate a LGPL license.
You want to "contribute to the community" and you would like that evey work derived from your software should be a "community contribution too". In this case choose a GPL. Every software derived from yours must be open sourced as well. Note that this does not prevent someone from selling the derived software when he publishes the source code.
If you don't want in any case that your software could be part of a commercial product then you must explicitly disallow it in your license.