.NET Framework 라이브러리 소스코드 공개(2008/01)

.NET Framework Library Source Code now available - ScottGu's Blog

이전에 예고된대로 라이브러리의 소스 코드가 공개되었습니다.

공개된 소스의 내역은 다음과 같습니다:

  • .NET Base Class Libraries (including System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading, etc).
  • ASP.NET (System.Web, System.Web.Extensions)
  • Windows Forms (System.Windows.Forms)
  • Windows Presentation Foundation (System.Windows)
  • ADO.NET and XML (System.Data and System.Xml)

소스 코드는 참조를 위한 공개로 모든 코드를 통째로 받을 수 있는 형태가 아니라 소스 서버라는 것을 사용하여 필요한 소스의 요청을 처리하여 제공하는 방식으로 공개됩니다.

조금 더 자세히 이야기하면, 디버거에서 심볼 서버의 심볼 정보를 통해서 소스 서버에서 해당 소스를 요청하면 (처음 한번의) 라이센스 동의를 통해서 코드를 보는 방식으로 제공됩니다. Shawn Burke가 소스 코드를 액세스할 수 있는 방법을 블로깅해 놓았습니다. (현재 VS2008의 패치 다운로드에 문제가 있는 상황입니다. 해결 되었습니다.)

Scott의 라이센스에 대한 설명에서 "소스코드를 보게될 경우 영향"(지적재산권등)이 언급되어있습니다. 공개된 소스코드 같은 기능의 코드가 구현되어있는데, 의도하지 않게 이를 보는 것으로 영향이 있지 않겠느냐는 문제인데, 이를 라이센스에서 문제시하지 않도록 수정하였다고 합니다. 이 수정 사항은 Windows에서 구현된 것들에 해당하고, Windows가 아닌 플랫폼에서는 원칙적으로는 소스코드를 보는 방법이 없기 때문에(우회적으로 볼 수는 있지만 라이센스에는 위배되겠죠) 해당되지 않아 혹여 주의를 해야합니다.

위의 설명으로 조금 느낌이 오셨을텐데, 이번 코드 공개는 문제가 발생할 경우나 문제를 해결하고자 할 경우의 (디버깅) "참조" 성격을 강조합니다. 투명성을 높여 개발자들의 편의를 극대화하는 것이 그 목적이지, 코드를 공개하여 모두가 개발에 참여한다거나 가져다 사용할 수 있게 한다는 성격과는 다르다고 하겠습니다.