SharePoint 2010에서의 Chart

SharePoint 2010 2012.03.09 08:30 Posted by 정홍주


SharePoint 2010
에서의 Chart

Chart SharePoint 2010에서 나타내기 위해서는 여러 가지 방법이 있습니다.

l 차트 웹 파트

l Excel 액세스 웹 파트

l 사용자 지정 웹 파트(웹 파트, 비쥬얼 웹 파트)

l Silverlight Chart 웹 파트

Chart의 데이터는 Excel 데이터이거나 SharePoint의 목록에 있을 수도 있으며, XML이나 서비스를 통해서 액세스할 수도 있으며 또는 코드에 값을 고정(하드코드)해둘 수 도 있습니다.

여기서는 ASP.NET Chart 컨트롤을 이용하여 SharePoint 2010 웹 파트를 구성해보도록 하겠습니다.

ASP.NET 차트에 대한 내용은 아래 링크를 통해서 Chart gallery 프로젝트를 통해서 살펴볼 수 있습니다.

http://archive.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=4418

위의 ASP.NET Chart 컨트롤을 통해서 SharePoint 2010에 비쥬얼 웹 파트를 구성해서 처리해보도록 하겠습니다. SharePoint 2010의 데이터에 액세스하기 위해서는 SharePoint Object Model, Client Object Model, REST Service를 통해서 가능합니다.
(
http://redju.tistory.com/23)

비쥬얼 웹 파트 프로젝트를 생성하고 솔루션 탐색기에서 System.Web.DataVisualization 어셈블리를 참조 추가합니다. 그리고 위 그림의 Sample 프로젝트에서 html 소스와 c# 소스를 복사하고 일부를 원하는 대로 수정합니다.

ChartTypes\PieDoughnutCharts\3DPie\pie3d.aspx

3D의 경우 속성이 달라서 아래와 같이 수정했습니다.

// Enable 3D

Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D= true;

웹 파트를 배포한다고 해서 바로 보여지지는 않습니다. 해당 SharePoint 웹 응용 프로그램의 Web.Config를 아래와 같이 수정합니다.

l System.Web 아래의 httpHandlers

<httpHandlers>

<add path="ChartImg.axd" verb="GET,HEAD,POST" preCondition="integratedMode" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />

l appSettings

<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\Temp\;" />

</appSettings>

l System.WebServer 아래의 handlers

<add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

최종 결과는 아래와 같습니다.



신고
크리에이티브 커먼즈 라이선스
Creative Commons License

SharePoint 2010 ULS Viewer

SharePoint 2010 2012.02.16 08:30 Posted by 정홍주

ULS Viewer

SharePoint 2010의 오류가 발생할 경우 상관관계 ID를 통해 오류 로그를 액세스하게 됩니다.

C 드라이브일 경우 위치는 아시다시피 아래와 같습니다.

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\LOGS

오류를 볼 경우 찾기를 통해 해당 상관관계 ID를 찾게 되는데요.

ULS Viewer를 쓰시면 오류만 필터링하거나 해서 트러블슈팅하실 때 도움이 될 것 같습니다.

아래 링크를 참고하셔서 다운로드 받아서 서버에서 실행하면 됩니다.

http://archive.msdn.microsoft.com/ULSViewer

파일 메뉴의 Open From -> ULS를 통해서 로그를 확인이 가능하며 Level High 보시면 필터링해서 오류등의 결과 확인에 더 도움이 됩니다.


신고
크리에이티브 커먼즈 라이선스
Creative Commons License

외부 콘텐츠 형식(3)-Visual Studio 2010

SharePoint 2010 2011.09.27 08:30 Posted by 정홍주

외부 콘텐츠 형식(3)-Visual Studio 2010

외부 콘텐츠 형식을 Visual Studio 2010에서 구성해보도록 하겠습니다. Visual Studio 2010을 이용하여 SharePoint 빈 프로젝트를 생성하고 새 항목 추가에서 비즈니스 데이터 연결 모델을 선택하고 “ProductModel” 로 이름을 지정합니다.

생성된 결과는 아래와 같습니다.

BDC 디자인 창의 Entity1“Product”로 변경합니다. 그리고 Identifier1 속성을 “ProductID” 로 변경하고 속성 창에서 System.Int32로 데이터 형식을 변경합니다.

솔루션 탐색기의 Entity1.cs 파일을 Product.cs 로 변경하고 아래와 같이 속성을 추가합니다. 실제 외부 목록이나 외부 데이터 열에서 표시할 데이터의 속성이며 외부 데이터 원본으로부터의 데이터를 가져와서 ReadList, ReadItem 메서드에서 처리될 클래스 속성입니다.

BDC 탐색기로 이동해서 ReadItem, ReadList 속성을 위의 클래스에 맞게 수정하면 ProductService.cs 클래스의 메서드가 변경되게 됩니다.

BDC 탐색기가 안보인다면 보기 메뉴의 다른 창에서 BDC 탐색기를 클릭하거나 bdcm 파일에서 BDC 탐색기 링크를 클릭합니다.

ReadItem 메서드의 @id 부분을 @ProductID로 변경하고 Identifier1 ProductID 로 변경하고 속성 창에서 데이터 형식을 System.Int32로 변경합니다.

@returnParameter 를 확장해서 Entity1 Product 로 변경하고 속성 창에서 데이터 형식은 현재프로젝트의 Product 클래스를 선택합니다. 그리고 BDC 탐색기의 Product 를 오른쪽 클릭하여 TypeDescriptor 추가를 클릭하여 속성을 추가하고 이름과 데이터 형식을 Product 클래스의 속성과 일치시켜줍니다.

그리고 BDC 탐색기의 ReadList 메서드 아래의 EntityList ProductList로 이름을 변경하고 형식 이름을 현재 프로젝트의 Product 클래스를 지정합니다. 그리고 위에서 생성된 Product 를 오른쪽 클릭하여 복사하고 ReadList 메서드 아래 ProductList 에 붙여넣기 합니다.

이제 솔루션 탐색기의 ProductService.cs 클래스의 코드로 이동하면 Entity1에 대한 기존 메서드 에 해당하는 부분은 삭제합니다.

이제 외부 데이터 원본을 연결하여 해당 제품과 제품 목록을 반환되도록 ADO.NET 코드를 아래와 같이 작성합니다.

프로젝트를 배포하고 BCS 서비스 응용 프로그램에 보면 Product가 아래처럼 생성된 것을 알 수 있습니다. 크롤링은 아니오로 되어 있으며 검색을 위해서는 추가 메서드를 구성해야만 합니다.


Visual Studio 2010을 통해 비즈니스 데이터 연결 모델을 통해 생성한 외부 목록 결과입니다.

Visual Studio 2010의 비즈니스 데이터 연결 모델에 대한 내용을 간단하게 알아보았습니다. 필터와 검색 등에 대한 내용은 더 추가해야 합니다. 다양한 외부 데이터 원본에 대해서 Visual Studio 2010을 통해 복잡한 로직을 구성하여 외부 데이터를 손쉽게 연결할 수 있습니다.



신고
크리에이티브 커먼즈 라이선스
Creative Commons License

SPLINQ 를 통한 페이징

SharePoint 2010 2011.09.13 08:30 Posted by 정홍주

SPLINQ 를 통한 페이징

예전 글에서 SPQuery 통한 페이징에 대해서 다루어 보았습니다. 그리고 LINQ to SharePoint 에 대한 내용도 다루어 보았습니다. 앞부분에서 누락되어 정리해둡니다.

SPLINQ 를 통해서 페이징이 가능합니다. 원래 LINQ에 있는 기능일 뿐입니다. 아래에서 간단히 코드를 통해서 살펴보도록 하겠습니다.

간단히 Title 0에서 Tile 49까지 추가되어 있습니다.

SPMetal 을 이용해서 엔티티 클래스를 생성하고 프로젝트에 엔티티 클래스 파일을 추가했습니다.

자 그럼 1 페이지 코드를 살펴보도록 하겠습니다.

SPLINQ의 쿼리에서 Skip, Take를 사용하고 있습니다. 결과는 다음과 같습니다.

2 페이지의 경우는 int Page=2 라고 바꾸면 됩니다. 아래는 3 페이지의 결과입니다.

항목을 하나 더 추가하고 6 페이지로 가보도록 하겠습니다. 맨 마지막 항목 하나가 보입니다.

SPQuery의 경우보다 더 간단한 듯 합니다~


신고
크리에이티브 커먼즈 라이선스
Creative Commons License

SharePoint 2010 샌드박스 솔루션(2)

SharePoint 2010 2011.08.09 08:30 Posted by 정홍주

샌드박스 솔루션(2)

샌드박스 솔루션에 대한 코드 내용을 한번 살펴보도록 하겠습니다.

Visual 웹 파트 프로젝트는 샌드박스 솔루션을 기본적으로 지원하지 않아 일반 웹 파트로 구성을 해보도록 하겠습니다.

빈 프로젝트를 생성하고(샌드박스 솔루션으로 선택하고) 새 항목을 웹 파트로 추가해서 아래와 같은 코드를 작성해봅니다.

샌드박스 솔루션이지만 코드를 작성하고 빌드, 패키지를 해보면 별 문제 없다는 것을 확인 가능합니다. 해당 사이트 모음의 솔루션 갤러리에 wsp패키지 파일을 업로드하고 활성화합니다.

먼저 결과값을 출력할 Label을 아래와 같이 추가합니다.


l Hello World를 출력한 Button 클래스를 추가하고 이벤트에서 Label에 결과 값을 출력합니다.


물론 잘 됩니다. 일반적인 코딩에서는 별 문제 없습니다.


l SPContext 클래스를 테스트하기 위해 아래와 같이 Button 클래스를 추가하고 이벤트에 코드를 작성합니다.


현재 Context 에 대한 정보이므로 별 문제 없이 잘 됩니다.


l RunWithElevatedPrivileges 를 테스트하기 위해 아래와 같은 코드를 작성하고 이벤트에서 RunWithElevatedPrivileges를 사용해봅니다.


빌드하고 패키지 할 때 까지는 문제 없다가 런타임에서 문제가 발생합니다. 제대로 실행되었다면 결과값이 출력되어야 합니다.


l 위의 코드와 비슷하게 다른 사이트 모음을 방문해보도록 하겠습니다. 물론 권한은 있습니다.


마찬가지로 별 문제 없다가 실행할 경우 문제가 발생합니다.


l 이제 네트워킹을 한번 해보도록 하겠습니다. Google Request를 해보려고 합니다.


오류정보 표시를 클릭해서 좀 더 내려가 보면 System.Net.WebPermission 에 대한 사용 권한을 요청하지 못했다고 문제가 발생합니다. CAS를 적용해주어야 합니다.


l 데이터베이스 Connection Open 해보도록 하겠습니다. 문제없다면 Label Open~ 이라는 글자가 출력되어야 합니다.


TypeInitializationException: 'System.Data.SqlClient.SqlConnection'의 형식 이니셜라이저에서 예외를 Throw했습니다 라는 오류가 발생합니다.

l 마지막으로 SPFarm에 대한 내용을 액세스해보겠습니다.

'Microsoft.SharePoint.Administration.SPFarm' 형식을 로드할 수 없습니다. 라는 오류가 발생합니다.

팜 솔루션으로 배포했을 때는 아무런 문제 없이 진행되는 코드입니다.


샌드박스 솔루션은 코딩과 빌드, 패키지에서는 차이가 없으며 실행시 리소스에 제한적이며 안전하게 동작된다는 것을 아실 수 있습니다.



신고
크리에이티브 커먼즈 라이선스
Creative Commons License

SharePoint 2010 Sandbox 솔루션(1)

SharePoint 2010 2011.08.02 08:30 Posted by 정홍주


SharePoint 2010 Sandbox 솔루션(1)

SharePoint 2010 프로젝트를 만들려고 하면 팜 솔루션이나 샌드박스 솔루션을 선택하는 창을 보게 됩니다.

Office 365 SharePoint Online 사이트에서는 팜 솔루션으로는 제한되고 Client OM, Silverlight, 샌드박스 솔루션을 위주로 진행하게 됩니다.

샌드박스 루션이 어떤 것인지 좀 더 구체적으로 알아보도록 하겠습니다.


위 화면의 옵션은 프로젝트를 생성할 때 선택이 가능하며 배포하기 전에도 속성을 변경이 가능합니다.

샌드박스 솔루션의 특징은 다음과 같습니다.

l 해당 사이트 컬렉션의 기능에서만 보입니다. 다른 사이트 컬렉션에서는 보이지 않습니다.

l 사이트 컬렉션 소유자가 wsp파일을 솔루션 갤러리에 업로드 할 수 있습니다. 그리고 활성화합니다.

l 보안에 대해 안전하게 사용할 수 있다. 보안에 제한적이라는 의미입니다.

l 리소스가 제한적으로 기본적으로 300 포인트에서만 동작되게 됩니다. 초과하게 되면 임시적으로 중지됩니다. CPU, 데이터베이스 쿼리 등이 리소스에 해당되며 내부적으로 포인트를 계산합니다. 물론 중앙관리에서 포인트를 수정 가능합니다.

l 개발자가 코딩하는 것은 큰 차이 없습니다. 빌드, 디버그, 배포에도 큰 차이 없습니다. 해당 코딩에 대해서는 문제가 있을 경우 런타임에서 에러가 나타나게 됩니다. 전체 개체 모델의 SubSet으로 보면 됩니다.

l SPFarm, SPService, System.Net.HttpWebRequest.Create, SPSite 에서 다른 사이트를 액세스하려고 할 경우, SPSecurity.RunWithElevatedPrivileges, SQL Connection 등은 문제가 발생하게 됩니다. 해당 사이트 컬렉션에서만 놀아야 한다고 보시면 됩니다.

l 모든 프로젝트 템플릿과 프로젝트 항목이 샌드박스 솔루션을 지원하는 것은 아닙니다. (비쥬얼 웹 파트, 사이트 정의, 비즈니스 데이터 연결 모델, 응용 프로그램 페이지 등)

l 페이지 편집에서 웹파트 추가 등 사용하는 것에는 별 차이 없습니다.

l 샌드박스 솔루션을 이용하기 위해서는 중앙관리에서 “Microsoft SharePoint Foundation 샌드박스를 작동하는 코드 서비스서비스를 시작해주어야 합니다.


l w3wp.exe 프로세스에서 운영되는 것이 아니라 SPUCWorkerProcess.exe에서 운영됩니다.


다음 내용에서 샌드박스 솔루션에서 직접 런타임에서 오류가 발생하는 내용을 알아보도록 하겠습니다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

SharePoint 2010 Service Pack 1 설치

SharePoint 2010 2011.07.18 08:30 Posted by 정홍주

SharePoint 2010 Service Pack 1 설치

서비스 팩을 설치하기 전에 테스트를 해서 이상이 없는지 확인 후 실제 서버에 적용해야 합니다. 또한 14폴더 백업과 팜 백업을 미리 해두어야 합니다. 적용 후 결과를 확인 해보셔야 하며 잘못 되었을 경우 준비를 해두고 진행해야 합니다. 만약 잘못된다면 다 본인 책임입니다.

커스터마이징하거나 개발 사항의 경우 14 폴더의 기본적으로 제공되는 콘텐트(마스터페이지, CSS) 등을 바로 편집했을 경우 서비스 팩이 설치되면 다 덮어써 버릴 수 있습니다. 이번 기회에 제대로 했는지 확인 가능할 것 같군요.

6월 말에 서비스 팩이 출시 되었습니다.
아래 사이트를 방문해서 언어에 맞게 서비스 팩을 다운로드 합니다.

http://www.microsoft.com/downloads/ko-kr/details.aspx?familyid=b9fcdc42-eea4-4c08-9169-a9a73e55b8d4&displaylang=ko

실행 파일을 실행하고 동의하면 업데이트가 아래와 같이 진행됩니다. 다 완료되고 나면 재 부팅하시면 됩니다.

서버 재 시작 후 다음 내용을 보시면 설치 여부를 확인 가능합니다.

14.0.6029.1000 이라는 것을 볼 수 있습니다.

테스트 후 이상 없다면 운영 팜에 각각 반영하실 수 있습니다.

서비스 팩을 설치해서 크게 변경된 것은 없지만 기존 화면과 비교해보면 기타 옵션에서 도서관이 없어지고 라이브러리로 변경되어 있는 것을 확인 가능합니다. Connect 사이트에 피드백을 올리긴 했지만 서비스 팩을 설치하면 변경되네요 ^ ^

아래는 기존 사이트의 모습이며 Office 365 사이트도 아래처럼 나옵니다.

오류나 잘못된 사항에 대해서는 맘에만 담아두지 마시고 한국 마이크로소프트나 MVP 에게 얘기해서 반영을 하실 수 있습니다~


 

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

유효성 검사 – 열, 목록

SharePoint 2010 2011.05.13 08:30 Posted by 정홍주

유효성 검사, 목록


SharePoint 2010
의 목록에서 유효성 검사에 대한 다양한 내용이 있는데 앞에서는 코드를 통한 내용을 살펴보았습니다. 하지만 SharePoint 2010에서는 새롭게 열, 목록에 대한 유효성 검사를 제공하고 있습니다. 웹 페이지를 통해 손쉽게 설정할 수 있습니다.

먼저 열의 유효성 검사에 대한 내용을 알아보겠습니다. 해당 목록의 설정 페이지에서 검사할 열을 클릭하면 아래 부분에 열 유효성 검사라는 링크를 볼 수 있습니다.



확장하면 아래와 같이 보입니다. 간단하게 제목에 “test” 라는 말이 들어오면 메시지를 나타내보도록 하겠습니다. 수식은 유효한 식을 나열하는데 SQL 구문과 유사하게 작업할 수 있으며 수식이 거짓인 경우 사용자 메시지가 나타나게 됩니다.



실행해서 결과를 테스트합니다.


필수 열인데 값을 입력하지 않거나 정수 형식인데 문자를 입력하면 기본적으로 열 유효성 검사가 수행됩니다. 간단하게 열 유효성 검사를 확인할 수 있습니다.

이제 목록의 유효성 검사를 알아봅니다. 열 유효성 검사에서는 다른 열을 참조할 수 없습니다. 목록에서는 다른 열과 비교하여 검사할 수 있습니다. 목록의 유효성 검사는 해당 목록의 설정 페이지에 보면 일반 설정에 유효성 감사 설정이라는 메뉴를 살펴볼 수 있습니다. 클릭하면 아래와 같은 화면을 볼 수 있습니다.

공지사항의 만료 일자와 만든 날짜를 비교해서 만든 날짜보다 작을 경우 메시지를 나타내게 유효성 검사를 설정 할 수 있습니다.


과거 일자를 만료 날짜로 설정하면 아래와 같은 결과를 볼 수 있습니다.

코딩 없이 열, 목록 유효성 검사를 손쉽게 처리한 내용을 살펴보았습니다.


신고
크리에이티브 커먼즈 라이선스
Creative Commons License


유효성 검사이벤트 수신기 Custom Alert

SharePoint 2010의 목록에서 유효성 검사에 대한 다양한 내용이 있는데 앞에서는 Custom Error Page Redirect 시켰지만 여기에서는 Custom Alert을 나타내도록 해보겠습니다. 대화상자로 열기가 아닌 경우에는 Custom Alert이 더 효과적일 수 있습니다. 실무에서 비슷한 요구사항이 있어 정리를 해봅니다.



이벤트 수신기를 생성하는 등의 내용은 동일하니 설명은 생략하겠습니다.

관련 내용은 아래 링크를 참조하십시오.

http://redju.tistory.com/48

이벤트 수신기에서 유효성 검사에 맞지 않을 경우(잘못된 입력일 경우)의 코드를 아래와 같이 수정합니다.

l HttpContext를 이용하는 방법


l properties.RedirectUrl를 이용하는 방법


위의 방법 둘 다 요청된 주소를 Get 방식으로 Custom Error 페이지로 전달해주고 있습니다.

CustomError 페이지에서는 Get 방식을 검사하여 eventError 인 경우 Alert으로 메시지를 나타내고 요청된 주소를 다시 보여주게 됩니다.

자 잘못된 입력일 경우 Custom Alert를 살펴보시죠~

확인 버튼을 누르면 원래 요청된 페이지로 이동합니다.

간단하게 유효성 검사의 일환으로 Custom Alert을 살펴보았습니다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

이번 내용은 유효성 검사에 대한 내용을 다루어 보겠습니다.

유효성 검사는 코딩 없이 할 수 있도록 SharePoint 2010에서는 제공하는 것도 있으며 이벤트 수신기를 통해서도 처리할 수 있습니다. 기본적으로 제공되는 것은 다음에 다루고 이벤트 수신기를 이용한 Custom Error page 에 대한 내용을 다루어 보겠습니다. 

이벤트 수신기에 대한 일반적인 내용은 앞에서 이미 다루었고 아래 링크를 참조하면 됩니다.

http://redju.tistory.com/13

 공지 사항의 제목에 ‘test’ 라는 값을 입력하면 Custom Error Page Redirection 되는 내용을 알아보도록 하겠습니다.

Visual Studio 2010을 이용해서 이벤트 수신기를 생성합니다. 

이벤트는 목록 항목의 항목 추가중(Adding) 이벤트를 생성하도록 하겠습니다. 

Visual Studio 2010SharePoint 2010 도구는 기본적인 여러 사항을 다 생성해주고 로직에만 신경쓸 수 있도록 개발자 경험을 향상시켜준 것을 이벤트 수신기를 통해 알 수 있습니다.

생성된 이벤트 코드를 볼 수 있습니다. 코드에는 제목을 검사하여 맞지 않다면 Custom Error Page Redirect 시켜보도록 하겠습니다. 이전 버전에서는 System.Web 의 클래스를 통해서 Redirect 되도록 처리해야만 했지만 SharePoint 2010에서는 properties 가 기본적으로 제공되고 있습니다.

아래와 같은 코드를 작성합니다.

public override void ItemAdding(SPItemEventProperties properties)

       {

           base.ItemAdding(properties);

 

           if (properties.AfterProperties["Title"].ToString().ToLower() == "test")

           {

               properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;

               properties.RedirectUrl = "/_layouts/EventDemo/CustomError.aspx";

           }

       }

 

물론 응용 프로그램 페이지를 통해 에러를 표시해주어야 하겠죠. 

이벤트 수신기를 특정 공지사항에 연결하고 응용 프로그램 페이지에 에러 내용을 표시해줍니다. 또는 Get 방식으로 매개변수를 받아 추가적인 처리가 가능합니다.

배포해서 결과를 테스트해봅니다. 

프로그램으로 유효성 검사를 처리하는 방법을 알아보았습니다. SharePoint 2010의 이벤트 수신기를 통해 Custom Error Page Redirect 되는 내용이며 다른 여러 방법도 있습니다. 그런 방법들은 다음에서 다루도록 하겠습니다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

SharePoint 2010에서의 Silverlight 지원

SharePoint 2010 2011.02.23 08:30 Posted by 정홍주

 

SharePoint 2010에서 Silverlight 에 대한 지원을 알아보도록 하겠습니다. 내용을 살펴보고 나면 또한 손쉽게 Silverlight 콘텐츠를 구성할 수 있다는 것을 알 수 있습니다.

l  사이트 작업 메뉴의 기타 옵션 

l  Silverlight 웹 파트

개발자들이 손쉽게 Silverlight 콘텐츠를 구성하기 위한 웹 파트, 별도로 커스텀 Silverlight 웹 파트를 생성할 수도 있습니다. 

l  미디어 웹 파트

– Client Silverlight 미디어 플레이어 웹 파트, 위에 그림에서 추가 할 수 있습니다. 자산 라이브러리에서는 기본적으로 마우스만 올려도 동영상 플레이가 가능합니다. 

 


l  개발적 요소

– Client 개체 모델과 REST에서 Silverlight 콘텐츠에 대한 내용을 제공하고 있습니다. 이전 블로그를 참조하십시오.

Client Object Model – Silverlight (1) http://redju.tistory.com/19

Client Object Model – Silverlight (2) http://redju.tistory.com/20

REST – Silverlight http://redju.tistory.com/25

 

l  워크플로 시각화

      워크플로의 진행 사항을 시각화해서 살펴볼 수 있습니다, 이 또한 Silverlight 콘텐츠입니다. 

l  Performance Point Services의 분해 트리

– PPS의 분석 차트의 경우 분해 트리 메뉴를 볼 수 있고 사용자가 원하는 대로 손쉽게 분석 데이터를 분해해 볼 수 있습니다.


l  PowerPivot 갤러리

클라이언트용 Excel Add-in이 아닌 SharePoint 2010 PowerPivot 으로 해당 내용을 구성하고 나면 PowerPivot 갤러리를 제공하며 Excel 시트의 내용을 Silverlight으로 미리 보기가 가능합니다. 

 

이상으로 SharePoint 2010에서의 Silverlight 지원에 대한 사항을 살펴보았습니다. Silverlight 웹 파트와 Silverlight 관련 개체 모델, API를 통해 트리뷰 웹 파트, 전역 탐색 웹 파트, 이미지 뷰어 웹 파트, 메인 페이지의 애니메이션, 게시판에서의 Silverlight 등 다양한 내용으로 SharePoint 2010에서는 더 강력한 사용자 경험을 구성할 수 있습니다.

 

신고
크리에이티브 커먼즈 라이선스
Creative Commons License



SharePoint 2010에서 대화 상자를 리본에서만 Show 시킬 수 있는 것은 아니고 웹 파트의 버튼에서도 손쉽게 대화 상자를 Show 시킬 수 있습니다. 여기서는 앞에서 살펴본 options url 뿐만 아니라 html 을 적용해보도록 하겠습니다.

Visual 웹 파트를 하나 생성하고 웹 파트에 HTML DIV 태그와 버튼을 추가하고 JavaScript로 해당 DIV를 대화상자로 Show 할 것입니다.

 

SharePoint 프로젝트 이름은 DialogDemo 로 입력하고 새로운 프로젝트를 생성합니다. 프로젝트에 새로운 항목으로 비쥬열 웹 파트를 추가합니다. 웹 파트의 이름은 VisualDialogWP 으로 지정합니다.

비쥬얼 웹 파트의 ascx html 컨트롤은 아래와 같이 추가합니다.

 

SP.js를 추가해야 JavaScript에서 사용이 가능합니다. 아래와 같은 SharePoint Script Control 태그아래에 추가합니다.



자 이제 JavaScript를 아래와 같이 작성해서 클릭할 경우에 이벤트와 취소를 클릭할 경우 이벤트를 구성하면 됩니다.

 

비쥬얼 웹 파트를 배포해서 결과를 확인해보도록 하겠습니다.

 

Show ModalDialog를 클릭하면 새로운 divDialog의 내용을 대화상자로 확인할 수 있습니다.



이번 블로그에서는 Ribbon, 대화상자(Dialog)에 대해서 알아보았습니다.


신고
크리에이티브 커먼즈 라이선스
Creative Commons License

SharePoint 2010에서의 대화상자(Dialog) (1)

 

SharePoint 2010의 사용자 인터페이스 중의 또 다른 큰 변화는 대화상자(Dialog)라고 할 수 있습니다. 목록의 항목이나 리본의 컨트롤을 클릭할 경우 아래처럼 대화 상자를 볼 수 있습니다.

 

여기서는 리본에 컨트롤을 추가했을 경우 컨트롤의 Command에서 해당 대화 상자를 Show 시키는 javascript를 작성해보도록 하겠습니다.

앞에서 다룬 Ribbon에서 CommandUIHandler의 내용을 아래와 구성할 수 있습니다.

 

<CommandUIHandlers>

        <CommandUIHandler

        Command="Demo_HelloWorld" CommandAction="javascript:

         function demoCallback(dialogResult, returnValue)

         {

         SP.UI.Notify.addNotification('Operation Successful');    

         SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);

         }

        

         var options={

          url:'/_layouts/RibbonDemo/hj.aspx',

          title:'HJ Dialog',

          allowMaximize: true,

          showClose: true,

          width: 600,

          height: 400,

          dialogReturnValueCallback: demoCallback };

         

        

          SP.UI.ModalDialog.showModalDialog(options);

        

         " />

      </CommandUIHandlers>

 

맨 마지막 부분을 보면  SP.UI.ModalDialog.showModalDialog(options); 으로 구성되어 있으며 대화 상자를 Show 시켜주는 구문입니다.

options에서는 해당 페이지 url, 제목, 높이, 넓이 등을 나열 할 수 있습니다.

dialogReturnValueCallback의 경우는 대화상자를 닫을 경우 호출되는 javascript 함수를 참조합니다.

SP.UI.Notify.addNotification('Operation Successful'); SharePoint에서 오른쪽 상단의 알림을 나타내는 부분을 제공하고 있는데 Notify를 통해 해당 문자열을 3초간 표시해주게 됩니다.

SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK); AJAX 스타일의 새로 고침을 제공해주고 있습니다.

 

전체 Elements.xml은 아래와 같습니다.

 

 

배포해서 결과를 확인해보도록 하겠습니다. 물론 hj.aspx가 추가되어 있어야겠죠

 

대화 상자를 확인 가능합니다. 오른쪽 상단의 X 를 클릭해서 창을 닫아 봅니다. 화면 오른쪽 상단에서 알림을 알아 볼 수 있습니다.

 

다음 블로그에서는 options url외에 html이 올 수 있습니다. 웹 파트에서 대화 상자를 Show 해 보도록 하겠습니다.


신고
크리에이티브 커먼즈 라이선스
Creative Commons License

SharePoint 2010에서의 Ribbon

SharePoint 2010 2011.01.26 09:00 Posted by 정홍주

 

SharePoint 2010의 사용자 인터페이스 중의 가장 큰 변화는 리본이라고 할 수 있습니다. SharePoint 웹 사이트의 여러 메뉴 들이 복잡하게 구성된 2007 버전과는 달리 2010에서는 아래 그림과 같이 동적으로 바뀌는 리본으로 구성되어 있습니다.

 

개발 측면으로서 볼 때 리본에 버튼을 추가하거나 해서 사용자 요구사항을 해결해야 할 수 있으며 버튼을 클릭할 경우 추가로 Dialog (대화 상자)를 통해 사용자에게 사용자 인터페이스를 제공할 수 있게 됩니다.

 

자 그럼 리본에 원하는 버튼을 추가해보도록 하겠습니다.

Visual Studio 2010의 빈 SharePoint 프로젝트를 통해 새로운 프로젝트를 하나 생성합니다. 여기서 프로젝트 이름은 RibbonDemo라고 합니다. 생성된 프로젝트의 솔루션 탐색기를 통해 새 항목을 추가합니다. 새로 추가할 항목은 빈 요소입니다.

 

빈 요소에는 특별한 내용 없이 Elements.xml 파일에 XML 만 보입니다. 정해진 태그를 통해 리본에 대한 내용을 CustomAction으로 생성할 수 있습니다.

Elements 루트 태그 안에 CustomAction 태그를 추가하고 추가된 태그에 아래와 같은 리본에 대한 내용을 나열합니다.

<CustomAction

Id="DemoHelloWorldButton"

RegistrationType="List"

RegistrationId="101"

Location="CommandUI.Ribbon"

 Sequence="10"

 Title="Ribbon Demo">

    <CommandUIExtension>

      <CommandUIDefinitions>

        <CommandUIDefinition

         Location="Ribbon.Documents.New.Controls._children">

          <Button

           Id="Ribbon.Documents.New.Controls.DemoHelloWorldButton"

           Alt="Hello World Ribbon Button"

           Sequence="10"

           Command="Demo_HelloWorld"

           Image32by32="_layouts/images/ribbondemo/demobutton32.png"

           Image16by16="_layouts/images/ribbondemo/demobutton16.png"

           LabelText="Hello World Demo"

           TemplateAlias="o1"/>

        </CommandUIDefinition>

      </CommandUIDefinitions>

      <CommandUIHandlers>

        <CommandUIHandler

         Command="Demo_HelloWorld" CommandAction="javascript:alert('Hello World!');" />     

      </CommandUIHandlers>

    </CommandUIExtension>

  </CustomAction>

 

CustomAction의 특성에 보면 Location=”CommandUI.Ribbon” 이라는 내용을 볼 수 있으며 리본으로 처리됩니다. RegistrationId=”101”은 문서 라이브러리를 가리킵니다.

그리고 CommandUIExtension 안에 CommandUIDefinitions, CommnadUIHandlers를 배치합니다.

CommandUIDefinitions 는 리본의 UI를 정의하게 되며 CommnadUIHandlers 는 리본의 UI를 클릭할 경우의 Command, 이벤트를 정의하게 됩니다.

 

CommandUIDefinition 에도 Location이 보이는데
Location="Ribbon.Documents.New.Controls._children"
의 경우는 문서 라이브러리의 문서 탭의 새로 만들기 그룹 밑의 컨트롤이라는 정보를 나타내게 됩니다.


CommandUIDefinition에 컨트롤 들의 그룹을 추가 할 수 있으나 여기서는 Button 컨트롤만 배치했습니다. 리본에 추가할 수 있는 컨트롤들은 아래 링크를 참조할 수 있습니다.

http://msdn.microsoft.com/en-us/library/ee537017.aspx

 

Button 컨트롤의 여러 속성(이미지, 제목 등)을 설정하면 되고 이벤트와 연동하기 위해서는 Command라는 속성을 설정하면 됩니다.

CommnadUIHandler 에는 Button Command 속성의 값과 일치하는 이름의 Command를 추가하고 CommandAction에서는 javascript를 통해 대화상자 페이지를 나타내게 할 수 있습니다.

 

솔루션 탐색기에서 추가 새 항목에서 SharePoint “이미지매핑된 폴더를 이용해서 위의 XML처럼 이미지를 추가할 수 있습니다.

TemplateAlias의 경우는 o1(Large 이미지), o2(medium 이미지)로 구분할 수 있습니다.

 

이제 배포를 해서 결과를 확인합니다.


클릭할 경우 아래와 같은 메시지 박스를 볼 수 있습니다.

 

XML에서 Button 컨트롤에 보면 ID가 처리되는데 기존에 있는 여러 컨트롤의 ID는 아래 링크를 참조하면 됩니다.

http://msdn.microsoft.com/en-us/library/ee537543.aspx

ID를 이용해서 HideCustomAction을 사용해 기존 Ribbon의 컨트롤을 안보이게도 가능합니다.

 

다음 블로그에서는 Ribbon을 클릭할 경우 대화 상자를 처리해 보도록 하겠습니다.


신고
크리에이티브 커먼즈 라이선스
Creative Commons License

SharePoint 2010 Developer Dashboard

SharePoint 2010 2010.09.30 22:18 Posted by 정홍주

ASP.NET Trace와 유사하게 SharePoint 2010의 웹 페이지를 Trace 할 수 있는 기능을 제공해주고 있는데 이를 Developer Dashboard 라고 합니다.

기본값은 Off 이며 필요할 경우 Power Shell이나 Stsadm을 이용하여 On, OnDemand 두 가지 방식으로 Developer Dashboard를 사용할 수 있습니다. C# 코드로도 On 시킬 수 있습니다.

개발자들이 만든 웹 파트의 성능 문제, 병목을 찾아낸다거나 할 경우 아주 유용하게 사용이 가능합니다.

아래는 C# 코드로 Developer Dashboard On 시키고 있습니다. 사용을 완료했으면 Off 시키면 됩니다. 또는 OnDemand 모드로 Update 할 수 도 있습니다.


Developer Dashboard
On 시켰을 경우 아래와 같은 결과를 웹 페이지에서 살펴볼 수 있습니다.

속도, 이벤트, SQL 쿼리 문까지 볼 수 있습니다.


아래는 Developer DashboardOnDemand 모드로 사용하는 경우입니다. SharePoint 사이트의 맨 위 오른쪽에 작업 관리자의 성능 그래프와 같은 이미지를 볼 수 있으며 클릭할 경우 Developer Dashboard 결과를 확인할 수 있습니다.

아래는 SharePoint 2010의 관리 셀을 이용해서 Power Shell을 통해 Developer Dashboard를 액세스하고 있습니다.


전체 구문은 아래와 같습니다.

$devdashboard =[Microsoft.SharePoint.Administration.SPWebService]::ContentService.DeveloperDashboardSettings

$devdashboard.DisplayLevel = 'OnDemand'; 

$devdashboard.Update()

성능 측정이나 병목 현상의 원인을 파악할 경우 Developer Dashboard를 이용할 수 있습니다.


신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'SharePoint 2010' 카테고리의 다른 글

SharePoint 2010에서의 대화상자(Dialog) (1)  (0) 2011.02.02
SharePoint 2010에서의 Ribbon  (0) 2011.01.26
SharePoint 2010 Developer Dashboard  (0) 2010.09.30
SharePoint 2010 프로젝트 디버깅  (0) 2010.08.31
REST - jQuery  (0) 2010.08.30
REST – Silverlight  (0) 2010.07.30

SharePoint 2010 프로젝트 디버깅

SharePoint 2010 2010.08.31 23:41 Posted by 정홍주

이번 내용은 Visaul Studio 2010에서 SharePoint 2010 프로젝트로 개발할 경우 디버깅을 하는 방법에 대한 것입니다.

너무 간단하지만 몰라서 디버깅을 잘 못하는 분들이 있더라구요.

디버깅을 하는 방법은 그냥 F5 를 누르시면 됩니다. Feature를 Dactivate 하고 다시 배포하고 디버깅 메뉴에서 프로세스를 연결하고 등등은 다 옛날 얘기입니다. Visual Stduio 2010 에서의 SharePoint 2010 프로젝트는 그냥 F5 입니다. 물론 중단점 찍구요.

아래는 Visual Web Part 를 디버깅하기 위해 중단점을 찍은 화면입니다.



자 그럼 F5 를 누르면 어떤 일이 벌어지는지 한번 보도록 하겠습니다.

1. 새 버전 .wsp 파일 빌드
2. Feature 비활성화/삭제
3. old .wsp 파일 삭제
4. new .wsp 파일 추가/배포
5. Feature 활성화

디버깅을 해서 출력 창을 캡쳐해보도록 하겠습니다.



SharePoint 2010 웹 사이트의 웹 페이지가 뜨게 되고 웹파트를 추가하고 액션을 발생하면 디버깅으로 들어오게 됩니다. 무조건 알아서 오지는 않습니다. 여기는 드롭다운을 변경했을때 디버깅으로 들어오게 됩니다.
이제 디버깅으로 들어온 화면입니다. .NET 디버깅이므로 별로 드릴 말씀이 없습니다.



타임아웃이 있기 때문에 시간이 지나면 디버깅이 중지되게 됩니다.

이 디버깅으로 인하여 개발하기가 편해진 감이 있기는 합니다.

다음 내용은 Developer Dashboard에 대한 내용을 알아보도록 하겠습니다.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'SharePoint 2010' 카테고리의 다른 글

SharePoint 2010에서의 Ribbon  (0) 2011.01.26
SharePoint 2010 Developer Dashboard  (0) 2010.09.30
SharePoint 2010 프로젝트 디버깅  (0) 2010.08.31
REST - jQuery  (0) 2010.08.30
REST – Silverlight  (0) 2010.07.30
REST -.NET  (0) 2010.07.28

REST - jQuery

SharePoint 2010 2010.08.30 23:30 Posted by 정홍주

REST API를 이용해서 SharePoint 2010 데이터를 액세스하는 Client Side의 방식중에서 REST -jQuery 에 대한 내용으로 알아보도록 하겠습니다.

먼저 사용하는 방법에 대한 좋은 예제가 있어 바로 구성해서 살펴보겠습니다.

아래 내용의 REST API를 jQuery 를 이용해서 데이터를 표시해보겠습니다.
http://sp.webtime.co.kr/_vti_bin/ListData.svc/기술소식


SharePoint 2010 프로젝트의 응용 프로그램 페이지를 생성하고 아래와 같은 javascript 구문을 작성했습니다.
큰 내용없이 script를 포함하고 REST API를 접근해서 제목과 본문을 읽어서 div에 표시해주는 내용입니다.



결과는 다음과 같습니다. Visual Studio 2010 Camp #1 에서 생성한 목록으로 값은 두 개만 있습니다.





간력하게 REST API 를 통해 SharePoint 2010의 데이터를 액세스하는 방법을 알아보았습니다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'SharePoint 2010' 카테고리의 다른 글

SharePoint 2010 Developer Dashboard  (0) 2010.09.30
SharePoint 2010 프로젝트 디버깅  (0) 2010.08.31
REST - jQuery  (0) 2010.08.30
REST – Silverlight  (0) 2010.07.30
REST -.NET  (0) 2010.07.28
SharePoint 2010 개발환경 구축 가이드  (0) 2010.07.21

REST – Silverlight

SharePoint 2010 2010.07.30 08:30 Posted by 정홍주

 

 

이전 내용에서 REST 에 대한 소개와 .NET에서 REST API를 이용해서 SharePoint 데이터를 액세스하는 내용을 알아보았습니다. 이번 내용은 Silverlight 응용 프로그램에서 REST API를 통해 액세스하는 방법을 다루어봅니다.

 

먼저 Silverlight 응용 프로그램을 생성합니다. Silverlight 디자인은 아래와 같이 Button ListBox로 구성합니다.

 

Silverlight 응용 프로그램에 ListData.svc를 서비스 참조 추가를 통해 프록시 클래스를 생성합니다.

프록시 클래스의 클래스 뷰를 보면 앞에서 살펴본 .NET 응용프로그램과 동일하다는 것을 알 수 있습니다.

 



Button
의 클릭 이벤트를 생성하고 아래와 같은 코드를 작성합니다. HomeDataContext 클래스의 인스턴스를 생성하고 DataServiceQuery 클래스를 통해 비동기적으로 호출합니다.



GetAsyncData 메서드에서 결과값을 바인딩하면 됩니다.


 

Xap 파일을 배포해서 SharePoint 2010 Silverlight 웹 파트에 연결해서 버튼을 클릭하면 손쉽게 Silverlight 응용프로그램에서도 SharePoint 데이터를 REST 를 통해 액세스할 수 있다는 것을 알 수 있습니다.

 

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'SharePoint 2010' 카테고리의 다른 글

SharePoint 2010 프로젝트 디버깅  (0) 2010.08.31
REST - jQuery  (0) 2010.08.30
REST – Silverlight  (0) 2010.07.30
REST -.NET  (0) 2010.07.28
SharePoint 2010 개발환경 구축 가이드  (0) 2010.07.21
Client Object Model – 정리  (0) 2010.05.28

REST -.NET

SharePoint 2010 2010.07.28 08:30 Posted by 정홍주

REST -.NET

 

Client Side OM에서 Client OM은 이전내용에서 다루었으며 이번 블로깅은 SharePoint 2010에서 REST API 에 대한 내용을 다루어 보겠습니다

 

SharePoint 2010에서는 Representational State Transfer (REST)를 통한 데이터 작업이 가능합니다.

SharePoint 목록 데이터, 문서 라이브러리의 Excel 문서의 차트, 표 등의 데이터를 손쉽게 액세스 할 수 있습니다.

액세스 하는 방법은 ListData.svc 를 통해서 진행하게 됩니다. 응용 프로그램에서 서비스 참조 추가 등을 통해 처리되게 됩니다.

 

아래 그림은 ListData.svc 를 액세스한 결과입니다.

http:/SiteCollectionName/_vti_bin/ListData.svc

 


해당 리스트만 보기 위해서는 마지막에 리스트의 이름을 입력합니다.

_vti_bin/ListData.svc/
공지사항

 


REST
를 액세스 하는 구문은 아래와 같으며 다양하게 액세스 할 수 있습니다.

/_vti_bin/ListData.svc/{Entity}[({identifier})]/[{Property}]

) 공지사항 #3의 제목

/_vit_bin/ListData.svc/공지사항(9)/제목

* 인터넷 옵션의 피드 보기 사용을 해제해야 결과를 볼 수있습니다.

 
목록과 항목을 액세스 하는 경우는 아래 구문의 예를 통해서 가능합니다. 



정렬 등 옵션에 대한 내용은 아래 표를 참고하십시오. 

 

REST의 일반적인 내용은 살펴보았습니다. REST를 이용해서 Client Side에서 여러 응용 프로그램을 통해(.NET, Silverlight, Javascript) 액세스 가능합니다. 여기서는 .NET 응용 프로그램에서 액세스 해보도록 하겠습니다.

.NET Windows 응용 프로그램을 생성하고 서비스 참조 추가에 REST URL을 입력하고 프록시 클래스를 생성합니다. 프록시에 대한 클래스 뷰는 아래와 같습니다.

 

사이트의 제목이 “Home” 이므로 HomeDataContext 클래스가 생성되며 한글 사이트라 공지사항Item” 이라는 클래스와 클래스의 한글 속성 들을 확인할 수 있습니다.

이제는 프록시 클래스를 통해 DataGrid에 공지사항 목록을 바인딩해보도록 하겠습니다.

아래와 같은 소스를 작성합니다.


WCF 와 달리 HomeDataContext의 클래스는 Uri 를 지정해주어야 합니다.

Where OrderBy 는 생략했습니다. 실행한 결과는 아래와 같습니다.

 

위에서 살펴본 것처럼 REST –ListDataSvc 를 통해 Client Side에서 손쉽게 SharePoint 2010 SharePoint 데이터를 액세스할 수 있습니다.

 

목록을 읽기만 하는 것이 아니고 항목을 추가하거나 수정, 삭제할 수 있습니다.

아래 구문으로 공지사항에 항목을 추가해보도록 하겠습니다.

아래 그림을 통해 먼저 공지사항Item 클래스의 다이어그램을 확인해봅니다. (한글 속성.., ㅠㅠ)

 

아래 코드를 통해 공지사항Item의 인스턴스를 생성해서 DataContext SaveChanges 메서드를 호출
하면 됩니다.


본문에는 아래와 같이 이미지가 보이게 HTML 코드를 입력했습니다. 아래에서 추가된 결과를 확인 가능합니다.

 

이상으로 SharePoint 2010에서 REST의 소개와 .NET 응용 프로그램에서 REST 를 사용하는 방법을 알아보았습니다.

 

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'SharePoint 2010' 카테고리의 다른 글

REST - jQuery  (0) 2010.08.30
REST – Silverlight  (0) 2010.07.30
REST -.NET  (0) 2010.07.28
SharePoint 2010 개발환경 구축 가이드  (0) 2010.07.21
Client Object Model – 정리  (0) 2010.05.28
Client Object Model - Javascript(2)  (0) 2010.05.26

SharePoint 2010 개발환경 구축 가이드

SharePoint 2010 2010.07.21 08:30 Posted by 정홍주


가이드라고 보기는 어렵고 한글용은 안보여서 구성해본 개발환경 내용~


Active Directory 도메인 서비스 설치

SQL Server 2008 R2 설치

SharePoint 2o10 설치

Office 2010 클라이언트 설치

VS 2010 설치

SharePoint 2010 SDK 설치 등

아래 링크를  참고하셔요.

SharePoint 2010 개발환경 구축 가이드.pdf

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'SharePoint 2010' 카테고리의 다른 글

REST – Silverlight  (0) 2010.07.30
REST -.NET  (0) 2010.07.28
SharePoint 2010 개발환경 구축 가이드  (0) 2010.07.21
Client Object Model – 정리  (0) 2010.05.28
Client Object Model - Javascript(2)  (0) 2010.05.26
Client Object Model - Javascript(1)  (0) 2010.05.25


 

티스토리 툴바