Grande parte do código-fonte .NET está disponível e grande parte é de código aberto, embora sob várias licenças. Ainda outro código está disponível, mas apenas para fins de referência e não pode ser usado em seu código.
Dado que o objetivo declarado é:
Eu gostaria de aumentar esse limite para um aplicativo existente complexo que provavelmente atingirá esse limite. Não desejo alterar a interface do tipo. Não estou confiante de que poderia alterar a interface do tipo sem introduzir erros sutis em todo o código que teria que ser alterado como resultado.
se a intenção é atualizar o tipo de Hierarquia atual, se o código é Open Source ou não é irrelevante, porque, mesmo que seja, você nunca poderá introduzir alterações no sistema geral: mesmo se você pudesse substituir o Assembly em SQL Server, você não seria capaz de assiná-lo com o mesmo certificado / chave privada e, portanto, não seria usado pelo sistema.
No entanto, você pode criar seu próprio tipo definido pelo usuário SQLCLR (UDT) para fornecer a funcionalidade desejada.
Ainda assim , no que se refere a obter uma melhor compreensão do .NET Framework:
Você pode ver o código fonte da maioria das coisas aqui: https://github.com/Microsoft/referencesource
e ainda mais coisas aqui: https://github.com/dotnet/corefx
Ambos os repositórios mencionados acima são de código aberto e são administrados principalmente sob a licença MIT, embora você precise revisar as informações de licenciamento em cada local e, às vezes, em várias pastas, para ter certeza.
Muito do código restante pode ser encontrado aqui: http://referencesource.microsoft.com/
O código encontrado no ReferenceSource.Microsoft.com (o link diretamente acima) que também não é encontrado nos dois primeiros links (que são de código aberto) não é de código aberto e, em vez disso, é regido pela LICENÇA DE FONTE DE REFERÊNCIA DA MICROSOFT (MS-RSL) , sendo a parte relevante (levemente editada para colocar a definição de "uso de referência" logo após o uso dessa frase):
o Licenciante concede a você uma licença de direitos autorais intransferível, não exclusiva, mundial e sem royalties para reproduzir o software para uso em referência: uso do software em sua empresa como referência, em forma de somente leitura, com o único objetivo de depuração seus produtos, mantendo seus produtos ou melhorando a interoperabilidade de seus produtos com o software e exclui especificamente o direito de distribuir o software fora da sua empresa.
No entanto, parece que o Microsoft.SqlServer.*
espaço para nome não está disponível em nenhum desses locais. O que significa que a resposta simples para a pergunta: "é HierarchyID Open Source?" é: não .
Se o desejo for ver o código-fonte, será necessário abrir a DLL - Microsoft.SqlServer.Types.dll - com um descompilador. MAS, existem possíveis questões legais e / ou éticas para lidar. Este é um código proprietário, portanto há dois pontos principais a serem considerados:
conforme declarado no EULA (Contrato de licença de usuário final) do SQL Server (e conforme citado na resposta da @ TomV ), você pode " fazer engenharia reversa, descompilar ou desmontar " código não fornecido " apenas na medida em que a lei aplicável permitir expressamente " . Isso significa que, para algumas pessoas, é perfeitamente legal fazer isso, mas para outras, nem tanto. Portanto, convém consultar um advogado local de propriedade intelectual.
se for legal descompilar, a intenção da linguagem legal, mais o fato de que algum código-fonte seja fornecido (conforme vinculado na parte superior), mas esse código em particular não seja, certamente implica que o desejo é do público em geral. não vê ou tem esse código. Portanto, ser legal descompilar não deve ser considerado como duplicado, mas mais para que possa ser usado como referência (por exemplo, para depuração etc.).