Привет, Любой, кто имеет большое значение в TDD и кто использует .NET, в конечном итоге сталкивается с проблемой закрытых классов. Некоторые классы в библиотеке .NET запечатаны, что препятствует их расширению (и, таким образом, насмехается над ними). Чтобы добавить оскорбление к травме, Microsoft не предоставляет интерфейсы для этих классов. Работа всех классов имеет тенденцию быть теми, которые связывают вас с такими вещами, как IO (FileInfo, DirectoryInfo) или IIS (HttpContext, HttpRequest, HttpResponse).
В конце концов вы просто закончите писать свои собственные интерфейсы и соответствующие классы-оболочки. Я делал это так много раз, что я решил просто сделать проект с открытым исходным кодом из него, чтобы все могли использовать.
Мой вопрос заключается в том, какую лицензию использовать/использовать. Я не согласен с лицензией на стиль Apache/BSD; но могу ли я использовать это с .NET? Могу ли я использовать GPL и позволить людям использовать его в коммерческих приложениях? Или я должен использовать что-то вроде Microsoft Permissive License?
Вы можете использовать любую лицензию, которую хотите использовать с .NET - инфраструктура и платформа не блокируют вас в какой-либо конкретной лицензии.
Что касается ваших конкретных вопросов:
Я частично отношусь к лицензии на стиль Apache/BSD; но могу ли я использовать это с .NET?
Да, это вполне приемлемо для использования в .NET-приложениях и хороший вариант, а также лицензия MIT.
Могу ли я использовать GPL и позволить людям использовать его в коммерческих приложениях?
GPL делает довольно жесткие ограничения на использование, что ограничивает коммерческое поглощение (поскольку оно заставляет пользователей распространять свое приложение на основе вашей библиотеки как GPL). LGPL - это вариант, который не запрещает коммерческое использование почти столько же.
Или я должен использовать что-то вроде Microsoft Permissive License?
Это гораздо более распространено с библиотеками .NET, и это будет намного более знакомо многим разработчикам .NET. Если вы довольны условиями этой лицензии, это очень хороший вариант (по крайней мере, с точки зрения не ограничения использования только по лицензии).
Если вы хотите быть полностью открытым, используйте MIT лицензию.
Авторское право (c)
year
copyright holders
Настоящим предоставляется разрешение, свободное от поручить любому лицу, получившему копию этого программного обеспечения и связанных с ним файлы документации ( "Программное обеспечение" ), заниматься Программным обеспечением без ограничение, в том числе без ограничение прав на использование, копирование, изменять, объединять, публиковать, распространять, сублицензировать и/или продать копии Программного обеспечения и разрешать лицам кому предоставляется Программное обеспечение поэтому, при условии соблюдения следующих Условия:
Вышеупомянутое уведомление об авторских правах и уведомление о разрешении должно быть включено в все копии или существенные части Программное обеспечение.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ "КАК ЕСТЬ", БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫЕ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ К ГАРАНТИЯМ КОММЕРЧЕСКОЙ ЦЕННОСТИ, ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕПОСЯГАТЕЛЬСТВА. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ АВТОРСКИЕ ПАРТНЕРЫ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГИЕ ОТВЕТСТВЕННОСТЬ, КАК В ДЕЙСТВИИ КОНТРАКТ, ДЕЙСТВИЕ ИЛИ ИНОЕ, ВОЗНИКАЮЩИЕ ОТ, ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИЛИ ИСПОЛЬЗОВАНИЕ ИЛИ ДРУГИЕ СООТВЕТСТВИЯ В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ.