본문 바로가기

.Net/SharePoint 2013

[Sample Code] 멀티 탭 웹파트(Multi Tab WebPart) 구현 안녕하세요. 김승진입니다. 오늘은 간단한 탭형 웹파트의 샘플 코드를 공개하려 합니다. 보통 SharePoint 기반으로 포탈 구축을 하다보면 필수적으로 나오는 요구사항 중 하나가 탭형 웹파트입니다. 일반적으로 메인화면의 공간이 제한적이기 때문에 주요 게시판 즉 공지사항 같은 게시판을 중첩해서 메인화면에 배치하려는 요구사항이죠. 아래 화면과 같이 탭을 클릭 할 때 마다 다른 게시판에 내용을 보여 주는 것이죠. 조금 특이하다면 첫번째 최신 탭은 대상이 되는 게시판 중 최신 내용만 모아서 보여주는 가상 탭을 의미합니다. 아마 SharePoint 외에 국내 포탈/그룹웨어 솔루션에서는 기본 기능으로 많이 있는 기능입니다. 코드를 보기 전에 간단히 정리를 하자면 개념은 이렇습니다. 1. 탭형웹파트는 기존의 목록(L.. 더보기
[Sample Code]다중 서버 환경에 타이머 잡을 이용한 웜업(Warm Up) 구현 안녕하세요. 김승진입니다. SharePoint 기반의사이트를 운영하다 보면 매일 아침 첫사용자에게 속도가 너무 느리다며 불평을 종종 듣게 됩니다. 이것은 근본적으로는 SharePoint Server의 문제리 보다 ASP.NET의 동적 컴파일(Diynamic Compiled) 때문에 발생하는 문제 입니다. (http://msdn.microsoft.com/ko-kr/library/ms366723(v=vs.100).aspx) 매일 새벽 IIS 서버는 재생(Recycle)이 되고 재생된 이후 첫사용자에게 컴파이 과정을 거치게 되어 있습니다. 사이트의 규모가 크고 서버가 여러대인 경우 불편을 격는 사용자가 생각보다 많아지기도 합니다. 따라서 이거을 해결하고자 구글링을 해보시면 Warm Up, Wake Up 등의 .. 더보기
피플 피커 조작하기 - 첫번째 커스텀 필터 안녕하세요. 김승진입니다. SharePoint를 이용하다 보면 가장 많이 하게되는 작업 중 하나가 '권한 관리' 입니다.오늘은 '권한 관리'에 대해서 알아 볼 것은 아니고 권한 입력는 피플 피커(People Picker) 조작에 대해 알아보고자 합니다. 피플 피커(People Picker)를 조작해야 하는 이유피플 피커를 조작해야 하는 이유는 참 많습니다.SharePoint는 대부분 AD(Active Directory, 이하 AD)를 기반으로 해서 사용자를 관리하도록 되어 있습니다. 그런데 경우에 따라 AD에서 불필요한 사용자 정보가 SharePoint 내에 노출 되는 경우가 있습니다. 시나리오예를 들자면 AD 내에 특정 그룹 전체의 사용자가 등록되어 있고 해당 그룹은 10개의 계열사를 있습니다. 직원수.. 더보기
끝나지 않은 질문 '탐색기에서 열기' 안녕하세요. 김승진입니다. SharePoint 기반 서비스를 운영하다보면 가장 많은 사용자 민원 중 하나가 '탐색기에서 열기(Open with Explorer View)' 입니다.라이브러리에서 해당 기능을 이용하면 폴더에서 문서들을 바로 확인하기 때문에 많이들 좋아하는 기능합니다.마치 SharePonit의 문서들을 공유폴더 혹은 내 로컬 폴더에서 이용한다는 착각을 주기 때문이죠. 그러나 해당 기능은 WebDAV프로토콜을 이용하고 있어서 사용자 OS 내에 해당 설정이 되어있지 않은 경우 이용을 할 수 없습니다. 오류의 메시지는 다음과 같은 형태들입니다. 오류 메시지 1. 클라이언트에서 Windows 탐색기를 통해 이 목록을 여는 것을 지원하지 않습니다.(Your client does not support .. 더보기
SharePoint의 환경 변수 Property Bag 안녕하세요. 김승진입니다. SharePoint 기반의 시스템을 구축하다보면 다양한 경우의 환경 변수를 이용해야 하는 상황들이 발생합니다.예를 들어 수많은 사이트 모음에서 함께 공유 변수가 필요한 경우나 솔루션을 개발할 때 초기 값 설정이 필요한 경우가 대표적입니다. 이러한 경우 대부분 web.config 파일을 이용합니다.하지만 web.config의 경우 IIS 재시작이 필요하고 타이머 잡과 샌드백스 솔루션과는 호환이 되질 않습니다.더구나 SPWebConfigModification 클래스라는 대안이 존재하긴 하지만 서버가 여러대인 경우 배포의 어려움도 존재합니다. 그래서 SharePoint 2010부터 제공되는 기능은 Property Bag이라는 기능입니다.Property Bag은 운영체계의 시스템 환경.. 더보기
SharePoint Designer Cache 초기화 안녕하세요. 김승진입니다. SharePoint에서 Workflow를 이용하다 보면 Visual Studio에서 Custom Workflow를 개발해야 하는 상황들이 생깁니다.이 때 Custom Workflow를 배포하고 나서 SharePoint Designer를 보면 새롭게 만든 Action(Custom Workflow)들이 보이지 않을때가 있습니다. 이것은 SharePoint Designer가 동기화와 캐쉬 때문입니다.따라서 아래 2개의 폴더를 모두 삭제하고 나서 사이트를 열면 재동기화가 이뤄지면 새롭게 만든 Action을 확인 할 수 있습니다. 1. %AppData%\Microsoft\Web Server Extensions\Cache2. %USERPROFILE%\AppData\Local\Microso.. 더보기
SharePoint 2013에서 사라진 일정(달력)의 자원을 다시 살려 줍니다. 안녕하세요. 김승진입니다. SharePoint 2013에서 사라진 일정(달력)의 자원을 다시 살려 줍니다.역시 삭제 된게 아니라 숨겨 둔거군요,,,,하지만 Office365에서는 하이브 폴더에 접근할 수 없으니 별도의 솔루션 파일로 기능이 가능하도록 합니다. 아래 블로그의 러시아의 SharePoint 전문가가 제공합니다.http://formsdesigner.blogspot.kr/2013/05/reservation-of-resources-in-calendar-of.html 해당 내용을 정확히 이야기 하면 Group Work Lists의 기능을 재구현 한것인데 2010 하위 호환성도 제공합니다. 1. On-Premise에서는 템플릿폴더 XML 변경으로 가능 (15\TEMPLATE\1033\XML\WEBTEM.. 더보기
SharePoint기반 프로젝트 대한 오해 몇가지 안녕하세요. 김승진입니다. 프로젝트라는 것이 고객의 요구로 시작해서 그 요구를 달성하는데 목적이 있다고 합니다.하지만 최근 SharePoint 기반 프로젝트를 하면서 재미난 경험을 하게됩니다. 첫번째, 고객의 요구대로 시스템을 만들었더니 괴물을 만들다. 고객은 솔루션을 생각보다 잘 이해하지 못합니다.적지않은 비용을 들여 솔루션을 구매하는데 해당 솔루션을 이해하지 못하고 구매한다는 것이 쉽게 납득하지 못 할 수도 있습니다.하지만 우리나라 대기업의 SW구매 절차나 의사결정 과정을 생각한다면 당연한 결과일지 모릅니다. SharePoint를 어떤 사람은 포탈 솔루션이라고 하고 어떤 사람은 협업, 또 어떤 사람은 ECM, WCM, 아카이빙 솔루션 이라고 합니다.표현은 다르지만 모두 맞는 이야기 입니다. 때문에 고.. 더보기
[SPS2013] SharePoint 2013 Features Guid List 안녕하세요. 김승진입니다. SharePoint 2013이 설치 될 때 올라오는 Features 목록입니다. 영어 버전을 기준으로 한 목록이며 설치되는 언어팩에 따라 달라 질 수 있습니다. 실제 각 사이트 모음, 사이트 별 Feature 활성화 목록은 Get-SPFeature 명령어로 찾을 수 있습니다. 감사합니다. 참고 : http://technet.microsoft.com/en-us/library/ff607945.aspx 참고 : http://social.technet.microsoft.com/wiki/contents/articles/14423.sharepoint-2013-existing-features-guid.aspx DisplayName Id Scope AbuseReportsList c6a92db.. 더보기
[SPS2013][동영상] SharePoint 2013 커뮤니티 기능 안녕하세요. 김승진입니다. 이번에는 SharePoint 2013의 새로운 기능인 커뮤니티 기능에 대해서 알아 보겠습니다. 더보기