SQL Azure Update (3)

Cloud 2011. 2. 21. 21:04 Posted by 알 수 없는 사용자

SQL Server 2008 R2 버전부터는 SQL Server Management Studio에서 SQL Azure를 연결이 가능합니다. 여기서는 SQL Server Denail CTP를 통해 SQL Azure를 연결해보도록 하겠습니다.

 

SQL Server Management Studio를 열어 서버에 연결에서 SQL Azure Portal에 있는 서버 이름과 SQL 인증으로 사용자와 암호를 입력합니다.

 

연결을 누르지 말고 옵션을 클릭하여 연결할 데이터베이스에 SQL Azure 데이터베이스 이름을 입력하고 연결을 클릭합니다.

 

혹시 연결되지 않고 IP 주소 관련한 아래 메시지가 나올 수 있습니다.


SQL Azure Portal에서 방화벽 규칙을 맞게 추가해주어야 합니다.

 

방화벽 설정이 문제 없이 잘 연결되었다면 아래와 같은 내용을 볼 수 있습니다.

 


n  새로운 쿼리 창을 열어 T-SQL 구문을 처리해보도록 하겠습니다.

l  현재 데이터베이스 이름을 db_name() 을 통해 알아봅니다.



l  물론 서버 버전을 알아볼 수 도 있습니다.

l  데이터베이스 종류는 어떤 것들이 있는지 카탈로그 뷰를 통해 알아볼 수 있습니다.


 

l  현재 데이터베이스에 USE 구문은 잘 실행되지만 다른 데이터베이스로의 이동은 지원되지 않습니다.

l  Master 데이터베이스로 새로운 쿼리 창을 열어 LOGIN을 생성할 수 있습니다. 또한 사용자 데이터베이스에 사용자를 생성할 수 있습니다. 개체 탐색기에서 GUI를 통한 생성은 지원되지 않고 쿼리문으로 나타납니다.



l  연결을 통해 새로운 쿼리 창을 위에서 생성한 hjuser 사용자를 통해 연결 하고 새로운 테이블을 생성합니다. 테이블에는 클러스터형 인덱스가 있어야 합니다. 그리고 많은 데이터를 INSERT 구문을 통해 처리합니다. 익숙한 T-SQL 구문이 그대로 쓰이고 있습니다.



l  SELECT, WHERE 구문을 통해 결과를 조회할 수 있습니다. 또한 아래 그림처럼 실행 계획을 포함시켜 실행 할 수 있습니다.



 위에서 살펴본 내용으로 한다면 일반적인 T-SQL 구문을 작업하기는 큰 무리가 없습니다만 아직 지원되지 않는 여러 구문에 해당하는 사항은 있습니다
 

n  T-SQL 지원에 대한 구체적인 내용은 아래 링크를 참조할 수 있습니다.

l  Supported Transact-SQL Statements

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

l  Partially Supported Transact-SQL Statements

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

l  Unsupported Transact-SQL Statements

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

 

SQL Server Denail CTP를 통해 SQL Azure에 대해 액세스하는 내용을 알아보았습니다. 다음 내용에서는 여러 데이터를 올리고 Windows Azure의 응용 프로그램에서 SQL Azure를 액세스해보는 내용을 새로운 Management Portal을 통해서 알아보도록 하겠습니다.

'Cloud' 카테고리의 다른 글

DataMarket (2) - 데이터 구독 및 탐색  (0) 2011.03.07
DataMarket (1) - 소개  (0) 2011.02.28
SQL Azure Update (2)  (0) 2011.02.11
SQL Azure Update (1)  (0) 2011.01.28
Windows Azure Update: Windows Azure CDN의 활용  (2) 2010.10.01

SQL Azure Update (2)

Cloud 2011. 2. 11. 09:00 Posted by 알 수 없는 사용자


Windows Azure Platform Management Portal을 통해 데이터베이스 서버와 데이터베이스를 생성했습니다여기서는 Management Portal을 통해 Database Manager를 통해 SQL Azure 를 액세스하는 내용을 다룹니다.


데이터베이스에 테이블을 생성, 입력하고 새 쿼리를 생성하는 내용에 대한 부분을 알아보겠습니다. 위에서 생성한 데이터베이스 이름을 클릭하고 상단 메뉴의 “Manage” 를 클릭합니다. 


Database Manager
창이 새롭게 나타나며 제일 처음 시작할 경우는 동의 함을 체크하면 아래와 같이 연결 창을 볼 수 있습니다.



비밀번호를 입력하고 connect를 클릭합니다. 물론 방화벽 규칙에 허용으로 추가되어 있어야 합니다.

연결이 성공하면 아래와 같이 Database Manager 창을 볼 수 있습니다 


상단의 New Table 메뉴를 클릭해서 새로운 테이블을 디자인합니다. Employee 테이블에 ID, Name, Email 열을 정의합니다. 디자인이 끝났으면 Save 메뉴를 클릭합니다.


Data
메뉴를 클릭해서 샘플 데이터 값을 추가합니다. Save 버튼을 클릭합니다.
 



Database
탭을 클릭하고 New Query 메뉴를 클릭합니다. 쿼리 창에서 SELECT * FROM Employee를 입력하고 Execute 메뉴를 클릭합니다. 결과 창에서 위에서 입력한 데이터를 확인 할 수 있습니다.
 


Windows Azure Platform
Management Portal에서 SQL Azure에 대한 내용을 액세스할 수 있는 Database Manager를 알아보았습니다. 새롭게 변경된 Portal을 통해 데이터베이스 서버와 데이터베이스, 테이블을 생성해보았으며 다음 블로그에서 Windows Azure Platform Management Portal에 있는 SQL Azure 데이터베이스를 SQL Server Management Studio Windows Azure에서 액세스해 보도록 하겠습니다.

'Cloud' 카테고리의 다른 글

DataMarket (1) - 소개  (0) 2011.02.28
SQL Azure Update (3)  (0) 2011.02.21
SQL Azure Update (1)  (0) 2011.01.28
Windows Azure Update: Windows Azure CDN의 활용  (2) 2010.10.01
SQL Azure 와 SQL Reporting Service  (0) 2010.09.30

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

SharePoint 2010 2011. 2. 9. 09:00 Posted by 알 수 없는 사용자



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)에 대해서 알아보았습니다.


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

SharePoint 2010 2011. 2. 2. 09:00 Posted by 알 수 없는 사용자

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 해 보도록 하겠습니다.


SQL Azure Update (1)

Cloud 2011. 1. 28. 09:00 Posted by 알 수 없는 사용자



Azure가 많은 부분이 Update  되었습니다.

2010
년 말에 Azure PlatformManagement Portal 이 새롭게 선보였으며 SQL Azure 에 대한 내용을 업데이트합니다.

Portal에 액세스하기 위해서는 https://windows.azure.com 에 액세스하고 Windows Live ID를 제공하면 됩니다. 리본과 유사하게 변경되었으며 Hosted Service, Storage Account, Database Server, Connect 메뉴가 상단에 보이고 있습니다.


왼쪽 메뉴는 Hosted Services, Storage Account & CDN, Database, Reporting, Service Bus, Access Control & Caching, Virtual Network 로 되어 있습니다.

SQL Azure를 살펴볼 것이므로 왼쪽 메뉴의 Database나 상단 메뉴의 New Database Server 를 클릭해보겠습니다. 

l  Database Server 생성

Database New 메뉴를 통해 구독을 생성해야 하며 구독을 생성하고 나면 Create 메뉴가 활성화됩니다.

hongju 라는 Subscription 에 새로운 SQL Azure Database Server를 생성해보겠습니다. Create 메뉴를 클릭하면 먼저 지역을 선택하게 되는데 여기서는 “East Asia”를 선택하고 다음을 클릭 해보겠습니다.

 

관리자 계정과 비밀번호를 설정하게 됩니다. 비밀번호는 복잡성 규칙을 따르니 복잡하게 구성하면 됩니다.


관리자 계정과 비밀번호를 설정하고 다음을 클릭하면 방화벽 규칙을 지정하는 창을 볼 수 있으며 여기서는 마침을 클릭합니다. 별도로 방화벽 규칙을 지정할 수 있습니다.

 

작업이 완료되었으면 아래와 같은 Database Server가 생성된 것을 확인할 수 있습니다.


왼쪽 트리를 확장해서 보면 master 데이터베이스가 생성된 것을 알 수 있습니다.

  

방화벽 규칙을 클릭해서 방화벽을 설정해줄 수 있습니다. 그렇지 않으면 기본값으로 Deny이므로 허용 IP 대역을 설정해야만 합니다.

 

l  Database 생성

해당 데이터베이스 서버를 클릭하고 데이터베이스를 생성해보도록 하겠습니다.

상단의 Create 메뉴를 클릭합니다.



Create Database 창에서 적절한 데이터베이스 이름을 입력하고 Edition Size를 지정합니다.

 

 



이상으로 Management Portal에서 SQL Azure의  데이터베이스 서버와 데이터베이스를 생성해보았습니다.

다음 블로그에서  Management Portal에서 테이블을 생성하고 SELECT 하는 내용과 SQL Denail CTP 에서 액세스하고 Windows Azure에서 액세스하는 추가적인 내용을 알아보도록 하겠습니다.



'Cloud' 카테고리의 다른 글

SQL Azure Update (3)  (0) 2011.02.21
SQL Azure Update (2)  (0) 2011.02.11
Windows Azure Update: Windows Azure CDN의 활용  (2) 2010.10.01
SQL Azure 와 SQL Reporting Service  (0) 2010.09.30
Windows Azure Update: myAzureStorage  (0) 2010.09.06

SharePoint 2010에서의 Ribbon

SharePoint 2010 2011. 1. 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을 클릭할 경우 대화 상자를 처리해 보도록 하겠습니다.


Windows Phone Developer Tool Release

Windows Mobile 7 2010. 9. 30. 22:28 Posted by 알 수 없는 사용자

MSDN 영문 사이트의 Main Page에 보면 Windows Phone Developer Tool Release 라는 내용에 대한 이미지를 볼 수 있습니다. 릴리스 시점은 추석 연휴 시작하기 전인 9 16일입니다.

아직 관련 소식에 대한 업데이트가 없어 릴리스에 대한 내용을 알아보도록 하겠습니다.

이미지를 클릭하면 블로그로 이동해서 내용을 살펴보시면 여러 유용한 정보를 알려주고 있으니 Windows Phone 7에 관심 있는 분은 방문해보시기 바랍니다.

http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/09/16/windows-phone-developer-tools-are-final.aspx

 

도구가 새로 릴리스 되었으니 다운로드 받아 설치해보도록 하겠습니다. 개발도구 등의 사이트는 아래 사이트를 방문하면 됩니다.

http://developer.windowsphone.com/windows-phone-7/

이전 버전의 도구(Beta) 가 설치되어 있다면 제거합니다. 도구를 다운로드 받아 설치를 진행합니다. 이전 버전보다는 더 많은 구성요소가 설치됩니다. Expression Blend 4 가 있다면 Expression Blend 4 Add-in for Windows Phone 도구도 설치됩니다.

현재는 Windows Phone Developer Tool 은 영문 버전만 제공되고 있습니다.

설치가 다 되고 나면 Visual Studio 2010에서 새 프로젝트를 생성하려고 하면 Silverlight for Windows Phone에 대한 내용을 볼 수 있으며 아래와 같은 프로젝트 템플릿을 확인할 수 있습니다.

Expression Blend 4 에서도 마찬가지로 Windows Phone에 대한 프로젝트 템플릿을 확인할 수 있습니다.


프로젝트 템플릿을 보면 이전 버전(Beta)와 다르게 CodePlex에서 소개하던 Panorama, Pivot 에 대한 프로젝트 템플릿이 나타나는 것을 알 수 있습니다.

 

아직 설치를 하지 않으셨다면 설치해서 Windows Phone 개발을 시작해보시기 바랍니다.

앞으로의 블로깅은 모바일에 대한 새로운 기능 위주로 작성할 예정입니다.

 


SQL Azure 와 SQL Reporting Service

Cloud 2010. 9. 30. 22:24 Posted by 알 수 없는 사용자

현재 SQL Azure에서는 Business Intelligence 에 대한 내용을 제공해주고 있지 않지만 향후에는 지원이 될 예정입니다. SQL Azure를 활용하는 방법 중의 하나로 SQL Reporting Service에서 SQL Azure를 이용하는 방법을 다루어보도록 하겠습니다.

사실 데이터 원본에 대한 내용이 SQL Azure 이며 나머지 보고서를 작성하는 것은 별 다른 차이가 없습니다.

보고서 서버 프로젝트를 생성해서 보고서를 추가하고 데이터 원본을 생성합니다.

데이터 원본의 서버이름은 SQL Azure의 서버 이름을 입력하고 SQL 계정과 비밀번호를 입력하고 데이터베이스 이름은 직접 입력합니다.


SQL Azure
에 있는 테이블과 뷰로 보고서 집합을 생성합니다.

여기서는 Category, SubCategory, Product 테이블에 대한 뷰를 생성하도록 하겠습니다.

쿼리 디자이너를 통해 테이블을 추가하려고 하면 아래와 같은 메시지를 볼 수 있습니다.

그래서 직접 쿼리문을 작성하거나 SQL Server Management Studio에서 쿼리문을 작성해서 데이터 집합을 생성합니다.

쿼리문은 아래와 같습니다.

아래와 같이 보고서를 디자인합니다.

미리보기를 클릭해서 결과를 확인합니다.


현재의 SQL Azure Business Intelligence를 제공하고 있지 않아 SQL Azure를 활용하는 방법으로 SQL Server Reporting Service에서 SQL Azure 데이터를 표시하는 것을 다루어 보았습니다.


SharePoint 2010 Developer Dashboard

SharePoint 2010 2010. 9. 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를 이용할 수 있습니다.


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

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

SharePoint 2010 프로젝트 디버깅

SharePoint 2010 2010. 8. 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에 대한 내용을 알아보도록 하겠습니다.

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

SharePoint 2010에서의 Ribbon  (0) 2011.01.26
SharePoint 2010 Developer Dashboard  (0) 2010.09.30
REST - jQuery  (0) 2010.08.30
REST – Silverlight  (0) 2010.07.30
REST -.NET  (0) 2010.07.28

REST - jQuery

SharePoint 2010 2010. 8. 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의 데이터를 액세스하는 방법을 알아보았습니다.

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

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

SQL Azure와 Excel 2010의 PowerPivot

Cloud 2010. 8. 2. 17:12 Posted by 알 수 없는 사용자

Excel 2010 PowerPivot은 별도의 Add-in을 설치하면 Excel 2010에서 사용할 수 있는 도구입니다.

아래의 사이트에서 다음과 같은 내용을 얘기하고 있습니다.

http://www.powerpivot.co.kr/

 

PowerPivot for Excel은 많은 사용자들을 확보하고 있는 Microsoft Excel 내에서 가히 독보적인 연산 능력을 직접 발휘할 수 있도록 하는 데이터 분석 도구입니다. Office와 동일한 사용자 인터페이스, 피벗 테이블 및 피벗 차트 보기, 슬라이서 등과 같이 이미 잘 알고 있는 Excel 기능을 사용하여 손쉽게 데이터를 분석할 수 있습니다.

 

제가 말씀드릴 내용은 SQL Azure의 데이터를 Excel 2010 PowerPivot에서도 문제없이 접근할 수 있다는 것입니다.

아래 그림은 PowerPivot 창의 화면입니다.

*PowerPivot 탭은 PowerPivot을 설치해야 나옵니다.

 

[외부 데이터 가져오기] 그룹의 기타 원본을 클릭하면 아래와 같이 SQL Azure에 대한 내용을 볼 수 있습니다.



SQL Azure를 선택하고 서버이름과 인증 정보, 데이터베이스를 선택합니다.

(SQL Azure의 방화벽이 설정되어 있어야 연결할 수 있습니다.)



SQL Azure에 있는 테이블을 선택합니다. 여기서는 CategorySubCategory 를 선택합니다. 그리고 클라우드가 아닌 로컬 네트워크에 있는 Product 테이블을 선택해서 관계를 적용할 것입니다.로컬 네트워크의 테이블과 연결하는 것은 PowerPivot에서 다양한 데이터 원본을 통해(클라우드 포함해서) Self-분석이 가능하다는 것을 알아보기 위함입니다.


데이터를 가져오기 할 경우에 “XML 구문 분석에 대한 에러가 발생할 경우는 SQL Server 2008 R2 기능 팩의 Microsoft® SQL Server® 2008 R2 Microsoft® Analysis Services OLE DB 공급자를 다운로드 받아 설치하면 됩니다.

http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=ceb4346f-657f-4d28-83f5-aae0c5c83d52


잘 가져오면 아래와 같이 성공으로 나타납니다.



데이터 가져오기 결과는 아래와 같습니다.


클라우드 환경이 아닌 로컬 데이터베이스에 있는 Product 테이블을 가져오기 했습니다.



디자인 탭의 관계 만들기를 통해 PowerPivot 테이블 간의 관계(FK)를 정의했습니다.


클라우드의 SQL Azure 를 이용해서 피벗 테이블을 구성한 결과는 아래와 같습니다. 또한 Excel 2010의 슬라이서를 이용했습니다.



이상으로 SQL Azure의 활용 측면으로 Excel 2010의 PowerPivot을 이용해서 SQL Azure의 데이터를 연결하는 내용을 알아보았습니다.

다음은 SQL Reporting Services 에서 SQL Azure 데이터를 나타내보도록 하겠습니다.







 

REST – Silverlight

SharePoint 2010 2010. 7. 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 를 통해 액세스할 수 있다는 것을 알 수 있습니다.

 

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

SharePoint 2010 프로젝트 디버깅  (0) 2010.08.31
REST - jQuery  (0) 2010.08.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. 7. 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 를 사용하는 방법을 알아보았습니다.

 

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

REST - jQuery  (0) 2010.08.30
REST – Silverlight  (0) 2010.07.30
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 – 정리

SharePoint 2010 2010. 5. 28. 09:00 Posted by 알 수 없는 사용자

Client Object Model에 대해서 다시 한번 정리를 해보도록 하겠습니다.

 

SharePoint 개체를 액세스 하기 위해서는 Microsoft.SharePoint.dll 이 있어야 하는데 원격 클라이언트에서는 Microsoft.SharePoint.dll 어셈블리를 접근하기 곤란합니다. SharePoint 2010에서는 Client Object Model을 제공해서 원격 클라이언트에서 손쉽게 SharePoint 데이터를 액세스할 수 있습니다.

 

아래 그림은 Client Object Model을 설명하면서 언급하는 그림인데 저는 먼저 코드를 나열하고 살펴봅니다.

Client Object Model을 사용할 수 있는 주된 이유는 아래 그림의 SharePoint 서버쪽의 Client.svc 때문입니다. Client.svc가 서버 개체 모델을 액세스해서 JSON 포맷으로 결과를 반환해주게 되며 클라이언트에서는 Proxy를 통해 손쉽게 액세스하게 됩니다.


 

 

앞에서 한번 살펴보았던 표를 다시 한번 정리 합니다.

SP 이름만 제외하면 서버, 클라이언트 개체 모델이 유사하다는 것을 기억 하시죠?

Server
(Microsoft
.SharePoint)

.NET Managed
(Microsoft.SharePoint
.Client)

Silverlight
(Microsoft.SharePoint
.Client.Silverlight)

JavaScript
(SP.js)

SPContext

ClientContext

ClientContext

ClientContext

SPSite

Site

Site

Site

SPWeb

Web

Web

Web

SPList

List

List

List

SPListItem

ListItem

ListItem

ListItem

SPField

Field

Field

Field

 

.NET Managed Client OM

-       Microsoft.SharePoint.Client.dll

-       Microsoft.SharePoint.Client.Runtime.dll

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

 

Silverlight Client OM

-       Microsoft.SharePoint.Client.Silverlight.dll

-       Microsoft.SharePoint.Client.Silverlight.Runtime.dll

(C:\Program Files\Common Files\Microsoft Shared\
Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin)

 

JavaScript Client OM

<SharePoint:ScriptLink ID="ScriptLink1" Name="SP.js" runat="server" OnDemand="true"

    Localizable="false" />

 

 

아래 주소를 참고하시면 성능 향상 등의 더 높은 수준의 코드를 살펴보실 수 있습니다.

 

http://msdn.microsoft.com/en-us/library/ee857094(office.14).aspx


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

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

Client Object Model - Javascript(2)

SharePoint 2010 2010. 5. 26. 00:09 Posted by 알 수 없는 사용자

이전 블로그에서는 javascript SharePoint 항목의 데이터를 추가하는 것을 알아보았는데 이번 블로그에서는 공지사항 목록을 생성하는 내용을 알아보겠습니다. 여기까지 Client Object Model을 살펴보시면 SharePoint Server Object Model의 내용을 그대로 원격 클라이언트 위에서도 사용이 가능하다는 것을 알 수 있습니다.

 

Visual Studio 2010을 이용해서 빈 SharePoint 프로젝트를 생성하여 Application Page를 추가합니다. 추가한 페이지에 아래와 같은 코드를 작성하고 결과를 확인해봅니다.

 

추가한 Application Page PageHead content 부분에 아래 내용을 추가합니다.

 

<SharePoint:ScriptLink ID="ScriptLink1" Name="SP.js" runat="server" OnDemand="true"

    Localizable="false" />

 

목록을 생성하는 자바 스크립트 코드를 바로 아래 부분에 추가합니다.

 

 

<script language="javascript" type="text/javascript">


function CreateList() {

        var clientContext = new SP.ClientContext.get_current();

        var site = clientContext.get_web();


       
//
공지사항 목록 생성

        var listCreationInfo = new SP.ListCreationInformation();

        listCreationInfo.set_title("HJ2");

        listCreationInfo.set_templateType(SP.ListTemplateType.announcements);

        listCreationInfo.set_quickLaunchOption(SP.QuickLaunchOptions.on);


        site.get_lists().add(listCreationInfo);


       
clientContext.executeQueryAsync(Function.createDelegate(this, this.onSucceeded)

        , Function.createDelegate(this, this.onFailed));

    }


function onSucceeded(sender, args) {

        alert("Succeeded");

    }


function onFailed(sender, args) {

        alert("Failed");

    }


     
</script>

 

 

목록을 생성하는 코드는 바로 아래 내용입니다. SP.ListCreationInformation을 이용해서 Title TemplateType, 빠른 실행 표시를 지정하고 있습니다.

var listCreationInfo = new SP.ListCreationInformation();

listCreationInfo.set_title("HJ2");

listCreationInfo.set_templateType(SP.ListTemplateType.announcements);

listCreationInfo.set_quickLaunchOption(SP.QuickLaunchOptions.on);

실제 생성된 내용을 적용하는 코드입니다.

site.get_lists().add(listCreationInfo);

 

서버 개체 모델에서 본 것과 거의 동일하다는 것을 알 수 있습니다.

 

Application Page Main content 부분에 아래 내용을 추가해서 CreateList() 를 호출합니다.


   
<input id="Button1" type="button" value="Create List"  onclick=" CreateList()" />

 

 솔루션 탐색기를 오른쪽 클릭하여 배포를 선택하고 해당 Application Page를 액세스 해서 결과를 확인합니다.


HJ2 라는 공지사항이 생성되어 있고 빠른 실행에 표시되는지 확인합니다.


이상으로 Client Object Model중에서 JavaScript 를 이용한 내용을 알아보았습니다.


Client Object Model - Javascript(1)

SharePoint 2010 2010. 5. 25. 09:00 Posted by 알 수 없는 사용자

이번 블로그는 SharePoint 2010의 데이터 기술 중에서 Client Object Model의 마지막 javascript에 대한 내용을 다루어 보겠습니다.

 

Javascript sp.js를 통해 SharePoint 개체를 접근할 수 있습니다.

SharePoint 2010 프로젝트를 통해 알아보도록 하겠습니다.

SharePoint 프로젝트를 생성하면서 프로젝트 이름을 아래와 같이 “javascriptOM”이라고 합니다.


SharePoint 2010 사이트 주소를 입력하고 Farm Solution 으로 지정합니다.


프로젝트에서 Application Page를 추가하도록 합니다. 솔루션 탐색기에서 오른쪽 클릭해서 추가, 새 항목을 클릭해서 Application Page를 선택하고 이름은 “ClientOM.aspx”라고 지정합니다.


생성된 Application page HTML 소스의 Main 부분에 아래와 같은 HTML 코드를 작성합니다.

<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">

<SharePoint:FormDigest ID="FormDigest1" runat="server"></SharePoint:FormDigest>

 

<table>

<tr>

<td>Title:</td>

<td><input id="txtTitle" type="text" /></td>

</tr>

<tr>

<td>Body:</td>

<td><input id="txtBody" type="text" /></td>

</tr>

<tr>

<td colspan="2">  

<input id="btnGo" type="button" value="Javascript Client OM" onclick="javascript:execOM();" />

</td>

</tr>

</table>

</asp:Content>

 

FormDigest SharePoint 데이터를 변경하려고 할 경우 보안의 유효성 검사를 위해 추가해야 합니다.

 

<asp:Content ID="PageHead" 바로 아래 부분에 도구 상자에서 SharePoint Controls 부분에서 ScriptLink를 드래그하고 아래와 같이 속성을 정의합니다.

 

<SharePoint:ScriptLink ID="ScriptLink1" Name="SP.js" runat="server" OnDemand="true"

    Localizable="false" />

 

SharePoint:ScriptLink  아래 부분에 버튼의 onClick 이벤트에 있는 javascript를 작성합니다.

SP.js를 통해 Client Object Model JavaScript를 통해 액세스하는데 HJ라는 공지사항에 항목을 생성하는 내용이며 아래 코드와 같습니다.

 

 

<script language="javascript" type="text/javascript">


   
function AddHJItem() {

        var context = new SP.ClientContext.get_current();

        this.site = context.get_web();

        context.load(this.site);


       
this.list = site.get_lists().getByTitle("HJ");

        context.load(this.list);


       
var listitemCI = new SP.ListItemCreationInformation();

        var item = list.addItem(listitemCI);

        item.set_item("Title", document.getElementById("txtTitle").value);

        item.set_item("Body", document.getElementById("txtBody").value);

        item.update();


       
context.executeQueryAsync(Function.createDelegate(this, this.Succeeded)

        , Function.createDelegate(this, this.Failed));

    }

    function Succeeded(sender, args) {

        alert("Succeeded");

    }

    function Failed(sender, args) {

        alert("Failed");

    }

</script>

 

 

 

프로젝트를 배포하고 웹 브라우저를 통해 액세스 해서 텍스트 박스에 값을 입력하고 버튼을 클릭합니다


HJ 공지 사항에서 보면 Javascript를 통해 SharePoint 2010의 공지 사항 항목이 생성된 것을 확인할 수 있습니다.


이상으로 javascript를 통한 SharePoint 2010의 목록을 추가하는 내용을 살펴보았습니다.

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

Client Object Model – 정리  (0) 2010.05.28
Client Object Model - Javascript(2)  (0) 2010.05.26
Client Object Model – Silverlight (2)  (0) 2010.05.19
Client Object Model – Silverlight (1)  (0) 2010.05.18
Client Object Model - .NET  (1) 2010.05.14

Client Object Model – Silverlight (2)

SharePoint 2010 2010. 5. 19. 09:00 Posted by 알 수 없는 사용자

앞에서 ExecuteQueryAsync 에 대한 내용과 Silverlight 웹 파트에 대한 내용을 알아보았는데 이번 블로그에서는 Silverlight Client Object Model또 다른 예를 살펴보도록 하겠습니다.

 

Silverlight 응용 프로그램을 생성하고 아래와 같이 디자인 합니다.

Silverlight Client Object Model 어셈블리를 참조 추가합니다.

ButtonClick 이벤트를 발생시키고 코드 보기에서 using 구문에 아래 코드를 작성합니다.

using Microsoft.SharePoint.Client;

 

생성자 위에 비동기적으로 UI 스레드를 처리하기 위해 아래 코드를 추가합니다. Dispatcher BeginInvoke 에서 사용되어야 합니다. ListInfo LoadQuery를 통해 List 개체를 담게 됩니다.

private delegate void UpdateUIMethod();

IEnumerable<List> listInfo;   

 

아래는 목록 정보를 액세스하는 코드입니다. Button Click 이벤트에 아래 코드를 통해 LoadQuery 메서드를 호출합니다.

ClientContext context = new ClientContext("http://sp.webtime.co.kr");


Web site = context.Web;

ListCollection collList = site.Lists;


context.Load(site, website => website.Title);

            listInfo = context.LoadQuery(

                collList.Include(

                    list => list.Title).Where(

                    list => list.OnQuickLaunch== true));


context.ExecuteQueryAsync(Succeeded, Failed);


빠른 실행에 표시되는 ListTitle을 담게 됩니다.

 

DisplayInfo 메서드에서 ListBox 컨트롤에 바인딩하는 코드입니다.

private void Succeeded(object sender, ClientRequestSucceededEventArgs e)

        {

            UpdateUIMethod updateUI = DisplayInfo;

            this.Dispatcher.BeginInvoke(updateUI);

        }


private
void DisplayInfo()

        {

       

            this.listBox1.DisplayMemberPath = "Title";

            this.listBox1.ItemsSource = listInfo.ToList();

        }


private
void Failed(object sender, ClientRequestFailedEventArgs e)

        {

            MessageBox.Show("Create Fail");

        }

 

 

 

 Xap 파일을 라이브러리에 업로드하고 Silverlight 웹 파트를 추가해서 경로를 지정합니다.

버튼을 클릭하면 빠른 실행에 있는 목록들의 Silverlight Client Object Model을 이용해서 알 수 있습니다.


SDK의 아래 주소를 참고하실 수 있습니다.

http://msdn.microsoft.com/en-us/library/ee538971(office.14).aspx

 

Silverlight Client Object Model을 알아보았고 다음 블로그에서 Javascript를 이용한 내용을 알아보도록 하겠습니다.

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

Client Object Model - Javascript(2)  (0) 2010.05.26
Client Object Model - Javascript(1)  (0) 2010.05.25
Client Object Model – Silverlight (1)  (0) 2010.05.18
Client Object Model - .NET  (1) 2010.05.14
SharePoint 2010 LINQ to SharePoint  (1) 2010.05.12

Client Object Model – Silverlight (1)

SharePoint 2010 2010. 5. 18. 09:00 Posted by 알 수 없는 사용자

앞에서 .NET Managed Client Object Model에 대한 내용을 알아보았습니다. 이번 블로그에서는Client Object Model(개체 모델) Silverlight을 이용해서 액세스해보도록 하겠습니다.

 

SharePoint 2010에서 Media 웹 파트, Silverlight 웹 파트가 기본적으로 제공이 되고 있어 웹 파트를 만들지 않아도 되고 그냥 콘텐트를 생성하면 됩니다.

Client OM을 액세스하기 전에 Silverlight 지원되는 내용을 먼저 알아보겠습니다.

 

1. 사이트 작업의 기타 옵션을 클릭해서 여러 목록이나 라이브러리를 생성할 수 있습니다. 클릭했을 때의 화면이 Silverlight 콘텐트입니다.


2. Silverlight 미디어 웹 파트를 제공해주고 있습니다. 또한 이미지 라이브러리에 동영상을 업로드해서 바로 재생하기가 가능합니다.


3. Silverlight 웹 파트를 제공하고 있습니다.


그 외 지원되는 내용도 있지만 생략하고 바로 Silverlight을 통해 Client OM을 액세스해보도록 하겠습니다.

본격적으로 Silverlight Client Object Model을 살펴보도록 하겠습니다.

Visual Studio 2010에서 Silverlight 응용 프로그램을 생성합니다.

프로젝트이름은 SilverlightClientOMDemo으로 지정했습니다. Silverlight 응용 프로그램의 디자인은 아래와 같이 TextBox 컨트롤 2개와 Button 컨트롤 1개로 구성되어 있습니다.


Client OM을 액세스하기 위해 아래 어셈블리를 참조 추가합니다.

Microsoft.SharePoint.Client.Silverlight.dll

Microsoft.SharePoint.Client.Silverlight.Runtime.dll

 

아래 경로에 어셈블리들이 위치해 있습니다.

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin

 

Using 구문에 다음과 같은 코드를 입력합니다.

using Microsoft.SharePoint.Client;

 

 

생성자 위에 비동기적으로 UI 스레드를 처리하기 위해 아래 코드를 추가합니다. Dispatcher BeginInvoke 에서 사용되어야 합니다.

private delegate void UpdateUIMethod();

 

 

Client OM Button Click 이벤트에서 아래와 같은 코드를 작성합니다.

ClientContext context = new ClientContext("http://sp.webtime.co.kr");

Web site = context.Web;


List list = context.Web.Lists.GetByTitle("HJ");


ListItem listitem = list.AddItem(new ListItemCreationInformation());

listitem["Title"] = this.txtTitle.Text;

listitem["Body"] = this.txtBody.Text; ;

listitem.Update();      


context.ExecuteQueryAsync(Succeeded, Failed);

 

맨 마지막 라인을 제외하면 .NET Managed Client Object Model가 동일합니다.

Succeeded, Failed 에 대한 메서드는 아래와 같이 정의합니다.

private void Succeeded(object sender, ClientRequestSucceededEventArgs e)

        {

            UpdateUIMethod updateUI = DisplayInfo;

            this.Dispatcher.BeginInvoke(updateUI);

        }


private
void DisplayInfo()

        {

            this.lblInfo.Text = "Success ";

        }


private
void Failed(object sender, ClientRequestFailedEventArgs e)

        {

            MessageBox.Show("Create Fail");

        }

 

Silverlight 응용 프로그램을 빌드하여 이상이 없으면 xap 파일을 SharePoint 2010 사이트의 문서 라이브러리로 업로드합니다. 14 폴더의 ClientBin 폴더에 배포할 수도 있습니다.

업로드하고 나서 xap 파일을 오른쪽 클릭하여 바로 가기를 복사합니다.


HJ
공지사항을 클릭하여 페이지 편집으로 Silverlight 웹 파트를 추가합니다.


Silverlight 웹 파트 대화 상자에서 이전에 복사했던 바로 가기를 붙여넣기 합니다.


페이지 편집을 중지하고 TextBox 에 값을 입력하고 버튼을 클릭합니다.


공지사항 내용 보기를 통해서도 확인이 가능합니다.


Silverlight Client Object Model을 액세스 해보았습니다. 비동기적으로 호출하는 것(ExecuteQueryAsync)만 유념하면 .NET Managed Client Object Model과 거의 동일합니다.

다음 블로그에서는 Silverlight Client Object Model의 다른 예(LoadQuery)를 알아보도록 하겠습니다.

Client Object Model - .NET

SharePoint 2010 2010. 5. 14. 09:00 Posted by 알 수 없는 사용자

이전 블로그에서 설명한 SharePoint 2010 데이터 기술 중에서 Client OM(개체 모델)에 대한 내용을 알아보도록 하겠습니다.

SharePoint 2010 데이터 기술에 대한 내용은 아래 주소를 참고하시기 바랍니다.

http://www.vsts2010.net/224

 

SharePoint 2010 박스 위가 아닌 원격에 떨어져 있을 경우 SharePoint 개체를 액세스하려면 웹 서비스를 통해 힘들게 해야 하지만 SharePoint 2010에서는 아주 손쉽게 접근할 수 있도록 Client OM을 제공해주고 있습니다. 생성할 수 있는 유형은 .NET, Silverlight, Javascript 를 통해 접근할 수 있습니다.

 

아래 표를 보시면 클래스와 메서드 등의 경우 서버 개체 모델과 거의 유사하게 구성되어 있습니다.

Server
(Microsoft
.SharePoint)

.NET Managed
(Microsoft.SharePoint
.Client)

Silverlight
(Microsoft.SharePoint
.Client.Silverlight)

JavaScript
(SP.js)

SPContext

ClientContext

ClientContext

ClientContext

SPSite

Site

Site

Site

SPWeb

Web

Web

Web

SPList

List

List

List

SPListItem

ListItem

ListItem

ListItem

SPField

Field

Field

Field

 

표에서 보듯이 SP 라는 글자가 없어지고 거의 동일하게 작업이 가능합니다. 하지만 일부는 변경되어 있습니다. 웹 서비스를 통해 CAML을 처리하지 않아도 API를 통해 정말 편하게 접근이 가능합니다.

 

먼저 .NET Client OM을 알아보도록 하겠습니다. 그리고 다음 블로그에서 Silverlight, Javascript를 알아보도록 하겠습니다.

 

Visual Studio 2010을 통해 WPF 응용 프로그램을 생성합니다. 이름은 WpfClientOMDemo라고 하겠습니다.

Button 컨트롤을 디자인 영역으로 드래그하고 Click 이벤트를 생성합니다.

.NET Managed Client OM을 이용하기 위해서는 아래 어셈블리를 참조해야 합니다.

Microsoft.SharePoint.Client.dll

Microsoft.SharePoint.Client.Runtime.dll

 

경로는 아래와 같습니다.

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

코드보기로 이동하여 소스 코드에 아래 using 구문을 추가합니다.

using Microsoft.SharePoint.Client;

using SP=Microsoft.SharePoint.Client;

 

InitializeComponent() 아래 부분에 다음과 같은 코드를 입력하고 프로젝트 속성에서

.NET Framework 4.0 Client Profile .NET Framework 4.0으로 변경하고 실행해봅니다.

x86은 그대로 두고 진행하면 됩니다.

ClientContext context = new ClientContext("http://sp.webtime.co.kr");

Web site = context.Web;


context.Load(site);

context.ExecuteQuery();

site.Title = site.Title + " Client OM";

site.Update();

context.ExecuteQuery();


위 코드는 SP 라는 이름이 붙어있다면 서버 개체 모델과 동일하다는 것을 알 수 있습니다.

 

결과는 아래처럼 “Home Client OM”으로 변경되어 있습니다.


디자인 보기로 이동하여 ListBox 컨트롤을 드래그합니다.

코드 보기에서 위에서 작성한 코드는 주석처리하고 아래와 같은 코드를 입력합니다.

아래 코드는 목록들의 이름을 리스트박스에 추가해서 나타내는 내용입니다.

 

ClientContext context = new ClientContext("http://sp.webtime.co.kr");

Web site = context.Web;


ListCollection
lists = site.Lists;

IEnumerable<Microsoft.SharePoint.Client.List> listcollection =

context.LoadQuery(lists.Include(l => l.Title, l => l.Id));

context.ExecuteQuery();


listbox1.ItemsSource = listcollection;

listbox1.DisplayMemberPath = "Title";

 

 

결과는 다음과 같습니다.



작성한 코드는 주석처리하고 아래와 같은 코드를 입력합니다.

아래 코드는 사이트에 HJ 라는 공지사항을 생성하고 빠른 실행에 표시해주는 코드입니다. 이런 내용을 서버 개체 모델로 하는 것이 아니라 클라이언트 개체 모델로 해주고 있습니다.

ClientContext context = new ClientContext("http://sp.webtime.co.kr");

Web site = context.Web;


ListCreationInformation listCI = new ListCreationInformation();

listCI.Title = "HJ";

listCI.TemplateType = (int)SP.ListTemplateType.Announcements;

listCI.QuickLaunchOption = SP.QuickLaunchOptions.On;


SP.List li = site.Lists.Add(listCI);

site.Update();

 



위에서 생성한 HJ라는 공지사항에 항목을 입력해보겠습니다. 작성된 코드를 주석처리하고

HJ를 찾아서 ListItem을 생성하는 코드를 아래와 같이 작성합니다. ListItemCreationInformation 이라는 클래스를 이용합니다.

 

ClientContext context = new ClientContext("http://sp.webtime.co.kr");

Web site = context.Web;


SP.List li = site.Lists.GetByTitle("HJ");

            ListItemCreationInformation listitemCI = new ListItemCreationInformation();

SP.ListItem item = li.AddItem(listitemCI);


item["Title"] = "hongju";

item["Body"] = "Consulting Services";

item.Update();

context.ExecuteQuery();

 

HJ 라는 공지 사항에 항목이 하나 추가되어 있는 것을 아래 그림과 같이 확인이 가능합니다.




위에서 Client Object Model에 대한 개요와 .NET Managed Client Object Model에 대한 내용을 알아보았습니다. 서버 개체 모델은 서버 박스 위에서 실행되는 웹 파트나 유틸리티를 통해 처리되지만 원격의 클라이언트에서 실행되도록 하려면 SharePoint 2010에서는 Client OM을 사용할 수 있습니다. 다음 블로그에서 Silverlight Client Object Model 을 알아보도록 하겠습니다.