Gran parte del código fuente .NET está disponible, y gran parte es de código abierto, aunque bajo varias licencias. Todavía hay otro código disponible, pero solo con fines de referencia y no se puede utilizar en su código.
Dado que el objetivo declarado es:
Me gustaría aumentar ese límite para una aplicación existente compleja que seguramente alcanzará este límite. No deseo cambiar la interfaz del tipo. No estoy seguro de poder cambiar la interfaz del tipo sin introducir errores sutiles en todo el código que tendría que ser modificado como resultado.
si la intención es actualizar el tipo de Jerarquía actual, entonces si el código es Open Source o no es irrelevante porque, incluso si lo fuera, nunca sería capaz de introducir ningún cambio en el sistema general: incluso si pudiera reemplazar la Asamblea en SQL Server, no podría firmarlo con el mismo Certificado / Clave privada y, por lo tanto, el sistema no lo usaría.
Sin embargo, puede crear su propio tipo SQLCLR definido por el usuario (UDT) para proporcionar la funcionalidad deseada.
Aún así , en lo que se refiere a obtener una mejor comprensión de .NET Framework:
Puede ver el código fuente de la mayoría de las cosas aquí: https://github.com/Microsoft/referencesource
e incluso más cosas aquí: https://github.com/dotnet/corefx
Ambos repositorios mencionados anteriormente son de código abierto y se rigen principalmente bajo la licencia MIT, aunque es necesario revisar la información de la licencia en cada ubicación, y a veces en varias carpetas, para estar seguro.
Gran parte del código restante se puede encontrar aquí: http://referencesource.microsoft.com/
El código que se encuentra en ReferenceSource.Microsoft.com (el enlace directamente arriba) que no se encuentra también en los dos primeros enlaces (que son de código abierto) no es de código abierto y en su lugar se rige por la LICENCIA DE FUENTE DE REFERENCIA DE MICROSOFT (MS-RSL) , siendo la parte relevante (ligeramente editada para poner la definición de "uso de referencia" justo después del uso de esa frase):
el Licenciante le otorga una licencia de copyright no transferible, no exclusiva, mundial y libre de regalías para reproducir el software para uso de referencia: uso del software dentro de su empresa como referencia, en forma de solo lectura, con el único propósito de depurar sus productos, mantener sus productos o mejorar la interoperabilidad de sus productos con el software, y excluye específicamente el derecho de distribuir el software fuera de su empresa.
Sin embargo, parece que el Microsoft.SqlServer.*
espacio de nombres no está disponible en ninguna de esas ubicaciones. Lo que significa que la respuesta simple a la pregunta de "¿es HierarchyID Open Source?" es: n .
Si desea ver el código fuente, deberá abrir la DLL ( Microsoft.SqlServer.Types.dll ) con un descompilador. PERO, hay posibles problemas legales y / o éticos que tratar. Este es un código propietario, por lo que hay dos puntos principales a considerar:
como se indica en el Acuerdo de licencia de usuario final (CLUF) de SQL Server (y como se cita en la respuesta de @ TomV ), solo puede " aplicar ingeniería inversa, descompilar o desensamblar " código no proporcionado " solo en la medida en que la ley aplicable lo permita expresamente " . Lo que significa que para algunas personas, es perfectamente legal hacer esto, pero para otras personas, no tanto. Por lo tanto, es posible que desee consultar a un abogado local de propiedad intelectual.
si es legal para usted descompilar, la intención del lenguaje legal, más el hecho de que se proporciona algún código fuente (como se vincula en la parte superior) pero este código en particular no lo es, ciertamente implica que el público en general desea No veo ni tengo este código. Por lo tanto, no debe considerarse legal descompilar, ya que también es legal duplicar, sino más bien para que pueda usarse como referencia (es decir, para depuración, etc.).