내가 Sharepoint 프로젝트를 할 때, 가장 많이 쓰는 2개의 프로그램 중에 하나다.

직접 설치해서 이거저거 보면 되기때문에, 구체적인 내용은 쓰지 않겠지만. 간략히 이야기하면...

보통 Sharepoint 코딩이라는 것도 결국 WSS_Content 라는 데이터베이스와의 소통이다. 넣고빼고넣고빼고 -_-; 뭐 예를 들어서 어느 사이트의 어느 리스트에 있는 어떤 아이템 중에 최근 10개만 불러와라. 라고 하는것도. 결국은 WSS_Content의 어느 테이블의 어느 리스트의 어느 아이템의 정보가 어떻게 저장되어있는지 캐치해서 적절하게 뭐 SPWeb, SPList 등으로 가져오는 그런 정도?

의의로 Sharepoint가, 데이터 부분에 있어서는 정말 단순한 것 같다. 결국 저장창고는 모두 DB다. 리스트 정보, 컨텐츠 타입 정보, 아이템 정보, 사이트 정보, 웹 정보, 리스트 컬럼 정보... 다 WSS_Content 라는 DB에 때려박는다.

그런데 WSS_Content 라는 DB를 보면 알겠지만, 진짜 복잡하다. 구조를 전혀 모르겠다. 그렇다고 Sharepoint UI 안에서 이 모든 정보를 볼 수 있느냐? 그것도 아니다. 내가 한번은 어떤 List 의 Guid 값이 뭔지 찾아볼라 했는데. 결국 못찾았다. 뭐 여기서 이렇게 가셔서 보시면 되요 라고 친절하게 알려주실 수 있는 분들에게 참 감사하다.

그런데 중요한건 어쨌건 한눈에 안들어왔다는게 중요한거지 -_-; 솔까말 [리스트 설정] 들어가서 그 정보 안보이면 '못보나?' 라고 생각하는게 당연한거 아닌가.

그러다보니 이 아이템에는 어떤 정보가 들어가있고, 이 사이트에는 어떤 컬럼이 있으며.. 뭐 이런거 한눈에 볼 수 있는 방법이 없는가? 를 찾게된다. 이건 실제로 코딩할때도, 쉽게 볼 수 있으면 꽤 유용한 정보가 될 것이다.

출처는 http://spm.codeplex.com/ 이다.  

Release 20110711.zip

 

간단한 스샷! 보통 이렇게 각 요소별로 디테일하게 알려면, 우리는 디버깅을 해야한다 -_-; 어느세월에...

보면 별거 다 있다. Event Receivers, Fields, Lists, Webs, Items 개별 조회 모두 가능하다. 간단하게 각 요소 삭제나 편집이 가능한 항목도 있으니 한번 가지고 놀아(?) 보는것도 좋겠고, 현업에서 현재 Sharepoint 구조상태 조회용으로도 유용하게 사용할 수 있을 것이다. -_-)/

 

아마 SharePoint 코딩을 하다보면 가장 짜증나고 막막한 에러는 다음 유형의 에러가 아닐까. 

뭐 어떻게 하라는지 나와있지도 않고, 어디서 에러가 난건지. 굉장히 뜬금없다.

이럴때, 사실 어느 부분에서 에러가 났는지 LOG 디렉토리에는 다 쌓여있다. 그래? 그럼 로그파일을 보면 무엇이 문제인지 나와있을꺼야. 

... 싸우자는 것도 아니고.

그래서, 외국의 어떤 착하신 분께서 이 로그파일을 쉽게 알아볼 수 있게끔 프로그램을 만들어주셨다. 바로 ULS Viewer 라는 툴이다.  (http://archive.msdn.microsoft.com/ULSViewer)

  UlsViewer.zip

사용방법은 아주 간단하다. 첨부파일을 다운받아 서버에 두고, 관리자 모드로 실행시킨 후에. File -> Open From -> ULS 를 각각 선택한다.

다음 화면에서 그냥 OK를 눌러주면 되겠다.

그러면, 창이 뜨면서, 뭐가 막 쌓인다.  

자세히 보면 사실 앞에서 잠깐 봤었던 황당한 텍스트파일이 정리되어 나오는 것이라는걸 눈치챌 수 있을 것이다. 오 그럼 그게 틀린 로그는 아니구나. 하지만 아까의 텍스트 파일은 너무 무성의했어(...)

이렇게 해 놓은 상태에서 아까의 에러 케이스를 재현시켜보면 여기에 로그가 쌓인단 이야기가 되겠지. 오오..

여기에 있는 에러 ID를 기억했다가..

ULS Viewer에 똑같은 아이디에 Unexpected 라고 되어있는 부분 때문에 에러가 났다고 알려준다. 그 부분을 클릭하면 상세 정보가 나오며, 문제 해결에 '꽤나 큰' 도움을 준다.  

뭐 예를 들어서, 어떤 페이지에 웹파트가 덕지덕지 붙어있을 때 그거 권한에러 한번 나면 난감하다. 그 페이지에 웹파트 100개 붙어있다면 어쩔껀데? 다 떼고 하나씩 다 붙여야되나 -_- 싶을 때 이걸 해보면 어느 웹파트에서 권한오류가 나는지도 조회할 수 있다. 등등.. 기타 여러가지 예외상황을 조회할 수 있다.

이렇게 까지 해서 문제를 해결해야하는 MS를 욕하자 ㅋㅋㅋㅋㅋ 아니 그들 입장에선 개발자도 고객일텐데 뭐 좀 쉽게 만들어주던지 해야할꺼 아닌가.