오늘은 땡스빌을 외치며 시작하죠. 그리고 코드 플렉스에도 감사를.

개발자를 지긋지긋하게 괴롭히는 것 중 하나는 문서 작업이죠. 어쩌겠습니까 뭐.

최근에 회사에서 라이브러리를 정리하면서 '위키로 라이브러리를 정리하자!'하고 막상 위키를 개설해 놨더니… 뭐 결과는 다 아시잖아요? 문서 만드는게 죽도록 귀찮은 일이라서…

이럴 시간에 한 줄이라도 더 쓰지 OTL

음음.

그래서 한동안 잊고 있었던 샌드캐슬 프로젝트를 혹시나 하고 기웃거려 봤더니 코드플렉스로 죄다 이사를 갔더군요. 그리고 기대를 져버리지 않고 닷넷 3.5까지 잘 지원을 하고 있었어요. 앗싸~

여튼, 슬슬 이 글 쓰는 것도 귀찮아지고 있어서 아주 초간단하게 준비물과 해야 할 일을 주욱 늘어놓고 끝내도록 하죠.

준비물

[필수]

[툴]

[옵션]

와우, 죄다 코드 플렉스로 이사갔네요. 요즘은 마이크로소프트랑 관계된 오픈 소스 프로젝트는 거의 대부분 코드 플렉스에 있는 것 같아요.

간단하게 설명하자면 Sandcastle은 일종의 라이브러리이고 Sandcastle을 사용하여 여러 가지 프로젝트들이 각기 다른 방법으로 문서화나 빌드를 하는 툴 혹은 프로젝트를 진행하고 있죠.

실제로 사용할 툴은 Sandcastle Help File Builder(SHFB) 또는 DocProject에서 진행하고 있는 건데요 서로 다른 특성을 가지고 있어요.

SHFB는 GUI 툴로 프로젝트 파일을 추가하고 연관된 어셈블리 들을 넣어주면 헬프 파일을 만들어주는데 단점은 의존성 있는 어셈블리를 일일이 추가해 줘야 한다는 것과 편집 옵션이 전체 헬프 파일 서머리와 네임스페이스 별 서머리만을 지원하고 나머지는 그냥 기본이라는 점. (이 외에 다른 방법이 있는 것 같은데 귀찮습니다. … ㅠ.ㅜ)

이에 반해 DocProject는 의존성 있는 어셈블리를 별도로 지정할 수 있어서 간편하고 좀 더 편리한 편집 툴도 제공해서 더 좋은 것 같아요. 하지만 C# 프로젝트 형식이라서 별도의 솔루션을 만드는 것이 좋고 해서 스탠드얼론 방식을 좋아하는 분에게는 별로겠죠.

여튼 선택은 자유…이지만 설명은 DocProject만 할께요.

헬프 파일 스타일은 헬프 파일의 디자인의 몇몇 템플릿인데요, MSDN말고도 다른 스타일로 할 수 있죠. 이건 뭐 말 그대로 옵션.

마지막으로 MS 헬프 2.0 형식의 파일(.HsX)는 CHM과는 다르게 곧바로 볼 수 없고 별도의 등록 과정을 거쳐야만 Document Explorer에서 볼 수 있죠. 근데 이게 또 만만치가 않아요. =_=;

 

설치 과정

 

사용 방법

DocProject를 기준으로, 기본적으로 릴리즈 노트에 잘 설명이 되어 있으니,

…라고 하고 싶습니다만, 실버라이트용 프로젝트에서는 약간 더 손대야 할 부분이 있어서 그 부분만 언급하고 넘어갈께요;; 길어서 접어둡니다.

Posted by gongdo

Submit comment.

  1. Favicon of http://www.oscarplex.net BlogIcon 오스카 2008.11.05 15:52  comment URL  Edit/Remove  Submit comment.

    좀 다른 이야기이지만, chm -> hsx -> register document explorer 하는 방법 발견하시면 포스팅 좀... -0-

  2. Favicon of http://blog.powerumc.kr BlogIcon 땡초 2008.11.05 17:34  comment URL  Edit/Remove  Submit comment.

    //오스카
    제 블로그에 Help Integration 내용이 있습니다만,,,
    http://blog.powerumc.kr/article/2008/10/17/MS-HELP-2-And-Help-Integration-Trouble-Shooting.aspx

    개인적으로 DocProject 보다는 http://www.codeplex.com/doctools 이 더 편한것 같더라구요.
    최대 단점이 영문 Office 에서만 동작한다는 것을 제외하면 말이죠.

    Sandcastle 도 help 2.0 생성시 BOM 이 포함되어있어서, 원본 코드를 고치던가 해야지 불편하네요 -_-;

  3. Favicon of http://tc.netspheres.org/glradios/ BlogIcon Glradios 2008.11.06 00:39  comment URL  Edit/Remove  Submit comment.

    전혀 다른 얘기긴 하지만, 저거 무슨 영화인가요? '_'

    • Favicon of http://gongdosoft.com BlogIcon 공도 2008.11.06 09:14  comment URL  Modify/Remove

      스탠리 큐브릭 감독의 유명한 공포영화 '샤이닝'에서 따왔어요.
      저는 잭 니콜슨하면 떠오르는게 샤이닝과 배트맨 1밖에 없게 되어버렸죠;;;

  4. Favicon of http://www.dongyon.net BlogIcon fancyydk 2008.11.08 12:02  comment URL  Edit/Remove  Submit comment.

    처음 와봤는데 글이 너무 재밌네요 ㅎㅎㅎ
    실버라이트 개발자이신가요?

  5. 희eSpoir망 2008.11.13 11:19  comment URL  Edit/Remove  Submit comment.

    엇..안녕하세요
    새내기 IT개발자 =_=;; 입니다.
    졸업하고 일 시작한지는 8개월 조금 넘었구요.
    사는곳은 대전.. (왜 여기에 자기소개를 하고있지 ㅡ,.ㅡ)

    문서화 툴을 찾아보다나 Doxygen부터 찾기 시작해서 Ndoc을 거쳐 Sandcastle까지 오게 되었네요.
    글 참고 잘 할께요 감사합니다.

    이건 사족이지만, Silverlight개발자라고 하셨는데, 질문이 하나 있어서요
    C# winform에서 Silverlight를 붙여넣을수가 있나요?
    찾아봤더니 그냥 WPF를 사용하라고들만 하셔서요..
    Silverlight가 WPF/E에 여러 언어의 지원이 추가되서 이름이 바뀐거라고는 알고 있는데,
    정말 안붙나요? +_+ 알려주세용~

    • Favicon of http://gongdosoft.com BlogIcon 공도 2008.11.13 19:19  comment URL  Modify/Remove

      안녕하세요 에스포와로 호에 잘못타면 신세 망치는 수가 있죠.(이 말은 무시하세요)

      Winform에서 실버라이트를 꼭! 꼭! 넣어야겠다면 크게 두 가지 방법이 있는데요,
      1. 웹브라우저 컨트롤을 올리고 거기에 실버라이트 애플리케이션을 호스팅하는 HTML을 올리는 방법.
      이건 꽤나 간편하게 구현할 수 있긴 하지만 만약 실버라이트 영역과 WinForm영역이 뭔가 데이터를 자주 주고 받아야 한다면 그냥 WPF로 만드는 게 낫겠죠.

      2. 하나는 COM 인터페이스를 통해 직접 올리는 방법인데 http://msdn.microsoft.com/en-us/library/cc296246(VS.95).aspx 여기를 참고하세요. 사실 이쪽은 저도 잘 모르겠네요.