본문 바로가기

기술자료/.NET

MOSS 2007 이벤트 핸들러 편집기.

외국에서 제공하는 각종 이벤트 핸들러들을 쓰다가, 이래저래 피곤해서, 그냥 만들어보았다
물론 화려한 트리 UI 같은 것은 제공하지 않지만, 내 궁금증과 불편함을 해소해주는 수준의
프로그램이다. 추후 C# Windows APP UI가 익숙해지면 조금씩 개선할 생각도 있지만, 언제가 될지..

사용자 삽입 이미지

이 프로그램은 웹서비스를 이용해서 구성한 프로그램이 아니기 때문에, 실제 이벤트를 추가/삭제/편집할 사이트에서 직접 실행해야 한다.(터미널 서비스를 이용하던지, 콘솔로 직접 들어가든지) 일단 실행하면 위와 같이 나온다.

1. 해당 사이트 연결 및 GAC 로딩
사이트 URL 내에 자신의 사이트 Url을 넣는다.
사용자 삽입 이미지
이 URL을 접근할 때는 로그인한 계정을 기반으로 접근하기때문에, 해당 사이트에 접근 권한이 충분한(최소한 사이트 관리자 급) 계정으로 로그인해서 이 프로그램을 실행할 필요가 있다.
연결 버튼을 클릭하면 약 30초 정도 기다리면 프로그램이 전체적으로 로딩한다.
이 로딩 시간이 긴 이유가 GAC 내의 모든 Assembly를 로딩하는데 걸리는 시간이다.

2. 이벤트를 처리할 사이트 및 리스트 선택
사용자 삽입 이미지
왼편에 있는 웹사이트 및 리스트를 선택한다. 현재 이 이벤트 핸들러 도구는 Web, Field 단위의 기능은 없고, 오로지 List에 대한 설정만 가능하다. 그러므로 Web Site를 선택한 뒤에 List를 선택해준다. 이벤트가 있으면 최하단에 있는 목록도 업데이트 된다.

3. 이벤트 추가/수정/삭제
사용자 삽입 이미지
3.1 새 이벤트 만들기.
생성하려는 리스트를 선택해 주었으면 먼저 자신이 이벤트로 등록할 때 사용될 어셈블리는 선택한다. 이 때, 주의할 점은, 반드시 GAC에 등록되어 있어야 한다. 별도의 DLL을 사용해서 등록한다면, 다른 도구를 활용하는 것이 좋을 듯 싶다.
이벤트 핸들러가 있는 어셈블리를 선택하면, 그 안에 적절한 이벤트 핸들러 클래스가 있는 경우 이벤트 관련 클래스가 자동으로 업데이트 된다. 그 안에 적절한 이벤트 핸들러 클래스를 선택한다.
그리고 이벤트 이름을 넣고, 적절한 순번( 1~50000 사이), 동작 방법을 넣는다.
이벤트 이름은 이 이벤트를 대표하는 이름인데, 이 값을 넣어야 순번이 정상적으로 처리된다.
순번은 이벤트가 실행할 순서를 의미하는데, 1~50000 사이의 값을 넣으면 된다.
액션은 이벤트가 발생되는 조건을 의미하는데, Item Added 나 Item Updating 같은 것을 의미한다.

값이 정상적으로 들어 갔으면 새 이벤트를 클릭하면 위의 설정 대로 이벤트가 추가된다.

3.2 기존 이벤트 수정하기.
사용자 삽입 이미지
이벤트를 수정하려면 최 하단에 위치한 이벤트 목록에서 편집하려는 이벤트를 선택한다.
그리고 자신이 변경하고자 하는 형태의 값으로 변경하고 등록/변경을 클릭한다.
(주의! 절대 이 작업을 통해 어셈블리나 이벤트 핸들러 클래스 및 액션을 변경하면 안된다. 여기서는 동일한 이벤트라고 비교 하는 값이 이벤트 핸들러 클래스와 액션이기 때문이다!)

3.3 이벤트 삭제하기.
삭제하려는 이벤트를 하단의 목록에서 선택한 뒤에, 선택 삭제를 클릭한다.

3.4 이벤트 목록 Save/Load
현재 이벤트 목록을 Save하는 방법은 save 버튼을 클릭한 뒤에, 적절한 장소에, xml이라는 확장자로 저장해주면 된다.
그리고 Load 하고 싶은 적절한 리스트에서 load 버튼을 클릭한 뒤에, 해당 xml 을 읽어 주면 xml 내용대로 복구 된다.
xml 내에 필수적으로 들어가야 되는 속성이 없는 경우 해당 이벤트는 추가되지 않는다.
event class="" assembly="" seq="" type="" name=""
수작업시에 필수 속성 값이 잘못되지 않도록 주의하면서 편집한다.