问候, 任何对TDD很重要且使用.NET的人似乎最终都会遇到密封类问题。 .NET库中的某些类是密封的,这会阻止您扩展它们(从而模拟它们)。为了减轻伤害,Microsoft不为这些类提供接口。所有类的工作倾向于将您与IO(FileInfo,DirectoryInfo)或IIS(HttpContext,HttpRequest,HttpResponse)等事物联系起来
最终你最终会编写自己的接口和匹配的包装类。我这么做了很多次,所以我决定用它来制作一个开源项目供所有人使用。
我的问题是许可证可以/应该使用什么。我偏爱Apache / BSD风格的许可证;但我可以用.NET吗?我可以使用GPL并仍然允许人们在商业应用中使用它吗?或者我应该使用像Microsoft Permissive License这样的东西?
答案 0 :(得分:3)
您可以使用.NET所需的任何许可证 - 框架和平台不会将您锁定在任何特定许可证中。
至于你的具体问题:
我偏爱Apache / BSD风格的许可证;但我可以用.NET吗?
是的,这对于.NET应用程序来说是完全可以接受的,也是一个很好的选择,还有MIT许可证。
我可以使用GPL并仍然允许人们在商业应用中使用它吗?
GPL确实对使用做了相当严格的限制,这往往会限制商业利用(因为它迫使用户根据您的库重新分发他们的应用程序作为GPL)。不过,LGPL是一个不会禁止商业使用的选项。
或者我应该使用像Microsoft Permissive License这样的东西?
这在.NET库中更为常见,并且对于许多.NET开发人员来说会更加熟悉。如果您对本许可证的条款感到满意,那么这是一个非常好的选择(至少在不限制许可证使用方面)。
答案 1 :(得分:1)
如果您想完全开放,请使用MIT许可。
版权所有(c)
year
copyright holders
特此授予许可,免费 向任何获得副本的人收取费用 这个软件和相关的 文档文件(“软件”), 在没有的情况下处理软件 限制,包括没有 限制使用权,复制权, 修改,合并,发布,分发, 从属许可证,和/或出售的副本 软件,并允许人员 软件提供的人员 所以,以下为准 条件:
以上版权声明及此 许可通知应包括在内 所有副本或重要部分 软件。
该软件“按原样”提供, 没有任何形式的保证,快递 或暗示,包括但不限于此 对适销性的保证, 适用于特定用途和 不侵权。在任何情况下都不应该 作者或版权所有者应承担责任 对于任何索赔,损害或其他 责任,无论是在行动中 合同,侵权或其他,引起关注 来自,不相关或与之相关 软件或使用或其他交易 在软件中。