닷넷누크는 마이크로소프트가 공식적으로 지원하는 오픈소스 프로젝트의 하나로 현재까지 가장 성공적인 운영을 하고 있는 프로젝트입니다. 닷넷누크는 마이크로소프트가 ASP.NET을 발표하면서 샘플프로그램으로 발표한 IBuySpy를 발전시킨 포털 솔루션입니다. 포털 솔루션이란 웹사이트를 개발할 때 일반적으로 필요한 사이트 관리기능을 가진 프로그램을 말하는 것으로 웹사이트 개발을 편리하고 효과적으로 해주는 도구 입니다.
닷넷누크의 홈페이지는 www.dotnetnuke.com이며 현재 회원수가 20만에 이르는 오픈소스 커뮤니티 전체를 통틀어서도 최상위권의 활발한 활동을 하고 있는 프로젝트입니다. 이 글을 쓰고 있는 시점을 기준으로 오픈소스의 전당이라고 할 수 있는 소스포지(SourceForge) 주간 랭킹으로 15위를 달리고 있습니다.
닷넷누크가 성공하고 있는 이유
1. BSD스타일의 자유로운 오픈소스정책
대부부의 오픈소스 프로젝트들은 GPL을 그 라이센스 정책으로 택하고 있습니다. GPL은 해당 소스를 사용하여 프로그램을 개발하였을 경우 그 프로그램도 소스를 공개하여야 한다는 조건을 달고 있습니다. 그러한 이유로 상업적인 이용을 해야 할 경우에는 이 정책이 심각한 제약이 될 수도 있습니다. 닷넷누크의 라이센스정책은 이러한 제약이 전혀 없으며 소스를 공개할 필요도 없고 상업적으로 판매하는 것도 완전히 자유롭습니다.
2. 모듈시장을 통한 효과적인 웹사이트 개발
사이트를 구성하는 요소 예를 들면 공지사항, 게시판, 자료실등의 기능적인 단위를 닷넷누크에서는 모듈이라고 부릅니다. 예를 들면 이 사이트의 공지사항은 닷넷누크의 기본 모듈인 Announcement를 사용한 것입니다. 인터넷 사이트는 많은 공통적인 요소도 많이 있지만 사이트의 특성에 따라 다양한 기능들이 필요하게 되는데 이 기능들은 닷넷누크에서는 모듈단위로 개발되게 되므로 매우 효과적으로 개발이 가능합니다. 특히 수많은 개발자들이 자신의 모듈을 무료, 또는 유료로 배포하고 있기 때문에 상호간의 모듈 공유를 통하여 빠르게 사이트를 개발하는 것이 가능합니다. 닷넷누크는 이미 수천개의 모듈이 개발되어 배포되고 있으며 www.snowcoverd.com같은 사이트에 가면 이러한 모듈들을 구입할 수 있습니다. 예를 들어 이 아티클을 올리고 있는 모듈도 이곳에 $30에 소스까지 구입한 것이며 이 소스를 약간 수정한 것입니다. 물론 이 모듈은 지극히 기초적이 기능만을 가지고 있지만 앞으로 충분히 소스수정을 통하여 발전시키거나 이를 참고하여 새로운 개발을 손쉽게 할 수 있도록 해줍니다.
3. 디자인의 완전한 분리
ASP.NET을 이야기 할 때 코드비하인드(웹페이지를 구동하는 프로그램 요소)를 통하여 디자인을 분리한다는 이야기를 많이 합니다. 이것은 개발단계의 분리를 의미하는 것입니다. 닷넷누크의 디자인 분리는 개발단계의 것이 아니고 한 차원 높은 관리단위에서의 분리입니다. 즉 윈도우 데스크톱의 Theme을 바꾸는 것과 마찬가지로 웹사이트의 모든 색상, 이미지, 레이아웃을 즉각적으로 바꾸는 것이 가능합니다. 여기서 레이아웃을 바꿀 수 있다는 점을 주목할 필요가 있습니다. 즉 3칼럼으로 만든 사이트를 2칼럼으로 바꿀 수도 있으며 상단 메뉴가 좌측 메뉴로 갈 수도 있습니다. 이 모든 변화를 주는데 있어 어떤 프로그래밍도 필요치 않으며 즉각적으로 수행이 가능합니다. 이것을 닷넷누크에서는 스킨이라고 부릅니다. 더불어 모든 모듈들은 페이지 내 또는 다른 페이지로 자유롭게 이동이 가능하기 때문에 모듈 개발이 완료되면 웹 페이지의 구성은 언제라도 자유롭게 변경이 가능합니다.
4. 자유로운 언어 사용
닷넷의 기능이기도 하지만 닷넷누크는 이점을 충분히 잘 활용하고 있습니다. 닷넷누크 자체는 비주얼베이직 닷넷으로 개발되었지만 그 모듈들은 어떤 언어로던지 개발이 가능합니다. 이러한 언어선택의 자유는 많은 다양한 영역의 개발자로 하여금 모듈을 쉽게 개발 할 수 있도록 하는 촉매제 역할을 하고 있습니다.
5. 한 개의 데이터베이스로 여러 개의 포털을 지원
닷넷누크는 하나의 프로그램과 데이터베이스로 여러 개의 포털을 동시에 만들고 관리 할 수 있습니다. 즉 하나의 서버에 여러 개의 도메인을 독립적으로 운영이 가능하고 각 도메인의 관리자를 따로 둘 수 있고 이 모든 사이트를 호스트는 웹을 통하여 직관적으로 관리가 가능합니다. 이러한 관리의 편리성은 많은 웹사이트 개발뿐만 아니라 운영에서도 매우 효과적인 관리가 가능하게 함으로써 전체 비용을 획기적으로 낮춰주는 역할을 합니다.
6. 마이크로소프트의 전폭적인 지원
앞에서 언급하였듯이 닷넷누크는 마이크로소프트가 공식적으로 지원하는 거의 유일한 성공적인 오픈소스 프로젝트입니다. 그 예로 닷넷누크는 현재 닷넷프레임웍 1.1에서 운영되고 있지만 닷넷프레임웍 2.0의 일부 사양을 이미 사용하고 있습니다. 이것은 마이크로소프트웨어 닷넷팀과의 직접적인 협조로 이루어지고 있는 것이며 이를 통하여 향후 마이크로소프트의 업그레이드 정책에 가장 빠르고 효과적으로 대응할 수 있는 토대를 가지고 있는 것입니다.