다양한 .NET 소스 코드를 사용할 수 있으며, 다양한 라이센스에 따라 대부분 오픈 소스입니다. 다른 코드도 사용 가능하지만 참조 용으로 만 사용되며 코드에서 사용할 수 없습니다.
명시된 목표는 다음과 같습니다.
이 제한에 도달해야하는 복잡한 기존 응용 프로그램에 대한 제한을 늘리고 싶습니다. 유형의 인터페이스를 변경하고 싶지 않습니다. 결과적으로 변경해야 할 모든 코드에 미묘한 버그를 도입하지 않고 유형의 인터페이스를 변경하지 않아도 될 것입니다.
현재 계층 유형을 업데이트하려는 의도라면 코드가 오픈 소스인지 여부는 관련이 없더라도 전체 시스템에 변경 사항을 도입 할 수 없기 때문에 관련이 없습니다. SQL Server에서는 동일한 인증서 / 개인 키로 서명 할 수 없으므로 시스템에서 사용하지 않습니다.
그러나 원하는 기능을 제공하기 위해 고유 한 SQLCLR 사용자 정의 유형 (UDT)을 빌드 할 수 있습니다.
.NET Framework에 대한 이해를 높이는 것과 관련하여 여전히 그렇습니다.
https://github.com/Microsoft/referencesource 에서 대부분의 소스 코드를 볼 수 있습니다.
그리고 더 많은 것들 : https://github.com/dotnet/corefx
위에서 언급 한 두 리포지토리는 모두 오픈 소스이며 대부분 MIT 라이센스 하에서 관리되지만 각 위치 및 때로는 여러 폴더의 라이센스 정보를 확인해야합니다.
나머지 코드는 http://referencesource.microsoft.com/ 에서 찾을 수 있습니다.
ReferenceSource.Microsoft.com (위의 링크)에서 처음 두 링크 (오픈 소스)에도 없는 코드 는 오픈 소스가 아니며 대신 MICROSOFT REFERENCE SOURCE LICENSE (MS-RSL) 에 의해 관리됩니다 , 관련 부분 (해당 문구의 사용법에 따라 "참조 사용"의 정의를 표시하도록 약간 편집 됨) :
라이센스 허가자는 참조 용도로 소프트웨어를 재생할 수있는 양도 불가능하고 비 독점적 인 전 세계 로열티가없는 저작권 라이센스를 부여합니다. 디버깅 목적으로 만 회사 내에서 소프트웨어를 읽기 전용 형태로 참조로 사용 귀하의 제품, 제품 유지 관리 또는 소프트웨어와 제품의 상호 운용성을 향상 시키며, 특히 회사 외부에 소프트웨어를 배포 할 수있는 권리는 제외됩니다.
그러나 Microsoft.SqlServer.*
해당 위치에서 네임 스페이스를 사용할 수없는 것 같습니다 . "HierarchyID 오픈 소스인가?" 입니다 : 아니요 .
소스 코드를보고자하는 경우 디 컴파일러로 DLL ( Microsoft.SqlServer.Types.dll) 을 열어야합니다 . 그러나 다루어야 할 잠재적 인 법적 및 / 또는 윤리적 문제가 있습니다. 이것은 이다 고려해야 할 두 가지 사항이있다, 그래서 독점 코드 :
은 SQL Server 최종 사용자 사용권 계약 (EULA)에 명시된 바와 같이 (그리고 TomV의 @에 인용 대답 ) 할 수 있습니다 만 " 리버스 엔지니어링, 디 컴파일 또는 분해 ", "비 제공된 코드 관련 법률에서 명시 적으로 허용하는 범위 내에서만 " . 어떤 사람들에게는 이것을하는 것이 완벽하게 합법적이지만 다른 사람들에게는 그렇게하지 않는다는 것을 의미합니다. 따라서 현지 지적 재산권 변호사와 상담하고 싶을 수도 있습니다.
만약 당신이 디 컴파일하는 것이 합법적이라면, 합법적 언어의 의도와 일부 소스 코드가 제공된다는 사실 (상단에 링크 된 것처럼) 그러나이 특정 코드는 그렇지 않다는 사실은 일반 대중이 욕구가 있다는 것을 암시합니다 이 코드를 보거나 가지고 있지 않습니다. 따라서 디 컴파일하는 것이 합법적 인 것은 복제하는 것이 합법적 인 것으로 간주되어서는 안되며 참조로 (예를 들어 디버깅 등) 사용할 수 있습니다.