다음을 통해 공유


연습: SharePoint용 OData를 표시하는 Silverlight 웹 파트 만들기

SharePoint 2010 Odata를 사용 하 여 목록 데이터를 노출합니다.Sharepoint에서 OData 서비스 RESTful 서비스 Listdata.svc에서 구현 됩니다.이 연습에서는 Silverlight 응용 프로그램을 호스팅하는 SharePoint 웹 파트를 만드는 방법을 보여 줍니다.Silverlight 응용 프로그램 Listdata.svc를 사용 하 여 SharePoint 공지 사항 목록 정보를 표시 합니다.자세한 내용은 SharePoint Foundation REST 인터페이스Open Data Protocol.

이 연습에서는 다음 작업을 수행합니다.

  • Silverlight 응용 프로그램 및 Silverlight 웹 파트 만들기.

  • Silverlight 응용 프로그램 사용자 지정.

  • Silverlight 응용 프로그램 사용자 지정.

  • Silverlight 응용 프로그램 사용자 지정.

  • Silverlight 웹 파트 테스트.

[!참고]

다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

사전 요구 사항

이 연습을 완료하려면 다음 구성 요소가 필요합니다.

Silverlight 응용 프로그램 및 Silverlight 웹 파트 만들기

먼저 Silverlight 응용 프로그램에서 Visual Studio 만듭니다.Silverlight 응용 프로그램의 ListData.svc 서비스를 사용 하 여 SharePoint 공지 사항 목록에서 데이터를 검색 합니다.

[!참고]

Silverlight 4.0 이전 버전이 없습니다 SharePoint 목록의 데이터를 참조 하기 위해 필요한 인터페이스를 지원 합니다.

Silverlight 응용 프로그램과 Silverlight 웹 파트를 만들려면

  1. 메뉴 표시줄에서 선택 파일, New, 프로젝트 표시 하는 새 프로젝트 대화 상자.

  2. 확장은 SharePoint 노드 중 하나에서 C# 또는 Visual Basic, 다음 선택은 2010 노드.

  3. 템플릿 창에서 선택 된 SharePoint 2010 Silverlight 웹 파트 템플릿.

  4. 에 있는 이름 상자에서 Slwebparttest를 입력 하 고 다음을 선택의 확인 단추.

    SharePoint 사용자 지정 마법사 대화 상자가 나타납니다.

  5. 디버깅에 사용할 사이트 및 보안 수준 지정 페이지에서 사이트 정의를 디버깅할 SharePoint 서버 사이트의 URL을 입력하거나 기본 위치(http://system name/)를 사용합니다.

  6. 에 있는 이 SharePoint 솔루션의 신뢰 수준을 무엇입니까? 섹션에서 선택 된 팜 솔루션으로 배포 옵션 단추.

    이 예제에서는 팜 솔루션을 사용 하지만 Silverlight 웹 파트 프로젝트 팜 또는 샌드박스 솔루션으로 배포할 수 있습니다.샌드박스가 적용 된 솔루션과 팜 솔루션에 대 한 자세한 내용은 샌드박스가 적용된 솔루션 고려 사항.

  7. Silverlight 웹 파트를 연결할 방법을 섹션의 Silverlight 구성 정보를 지정할 페이지에서 선택의 새 Silverlight 프로젝트 만들기 및 웹 파트에 연결 옵션 단추.

  8. 변경의 이름 Slapplication으로 설정 언어Visual Basic 또는 C#, 다음 설정 Silverlight 버전Silverlight 4.0.

  9. 선택 된 마침 단추입니다.프로젝트에 솔루션 탐색기.

    솔루션에 프로젝트가 두 개 있습니다: Silverlight 응용 프로그램 및 Silverlight 웹 파트입니다.Silverlight 응용 프로그램이 검색 하 고 Sharepoint에서 목록 데이터를 표시 하 고 Silverlight 웹 파트를 Sharepoint에서 볼 수 있도록 Silverlight 응용 프로그램을 호스트 합니다.

Silverlight 응용 프로그램 사용자 지정

Silverlight 응용 프로그램에 코드 및 디자인 요소를 추가 합니다.

Silverlight 응용 프로그램을 사용자 지정 하려면

  1. Silverlight 응용 프로그램에서 System.windows.data는 어셈블리 참조를 추가 합니다.자세한 내용은 방법: 참조 추가 대화 상자를 사용하여 참조 추가 또는 제거을 참조하십시오.

  2. 솔루션 탐색기, 바로 가기 메뉴를 열고 참조, 다음 선택 서비스 참조 추가.

    [!참고]

    Visual Basic 사용 하는 경우를 선택 해야 여 모든 파일 표시 아이콘 상단에 솔루션 탐색기 표시 하는 참조 노드.

  3. 주소 상자에서는 서비스 참조 추가 대화 상자에서 SharePoint 사이트의 URL을 입력 http://MySPSite, 다음 선택은 이동 단추.

    Silverlight ListData.svc SharePoint OData 서비스를 찾는 경우 전체 서비스 URL로 주소를 대체 합니다.이 예를 들어 http://myserver http://myserver/_vti_bin/listdata.svc가 됩니다.

  4. 선택은 확인 프로젝트에 서비스 참조를 추가 하려면 단추를 누르고 ServiceReference1 기본 서비스 이름으로 사용 합니다.

  5. 메뉴 표시줄에서 선택 빌드, 솔루션 빌드.

  6. 새 데이터 원본을 SharePoint 서비스를 기반으로 프로젝트에 추가 합니다.메뉴 표시줄에서이 작업을 수행 하려면 보기, 기타 Windows, 데이터 원본.

    데이터 원본 창에 사용할 수 있는 SharePoint 목록 데이터 작업, 공지 사항, 일정 등의 모든 표시입니다.

  7. 공지 사항 목록 데이터를 Silverlight 응용 프로그램에 추가 합니다."공지"를 끌 수는 데이터 원본 Silverlight 디자이너 창.

    SharePoint 사이트의 공지 사항 목록에 바인딩된 눈금 컨트롤을 만듭니다.

  8. Silverlight 페이지에 맞게 표 컨트롤의 크기를 조정 합니다.

  9. Mainpage.xaml에 코드 파일 (MainPage.xaml.cs에 Visual C#) 또는 MainPage.xaml.vb Visual Basic 다음 네임 스페이스 참조를 추가 합니다.

    ' Add the following three Imports statements.
    Imports SLApplication.ServiceReference1
    Imports System.Windows.Data
    Imports System.Data.Services.Client
    
    // Add the following three using statements.
    using SLApplication.ServiceReference1;
    using System.Windows.Data;
    using System.Data.Services.Client;
    
  10. 다음과 같은 변수 선언을 클래스의 맨 위에 추가 합니다.

    Private context As TeamSiteDataContext
    Private myCollectionViewSource As CollectionViewSource
    Private announcements As New DataServiceCollection(Of AnnouncementsItem)()
    
    private TeamSiteDataContext context;
    private CollectionViewSource myCollectionViewSource;
    DataServiceCollection<AnnouncementsItem> announcements = new DataServiceCollection<AnnouncementsItem>();
    
  11. 대체 된 UserControl_Loaded 프로시저를 다음.

    Private Sub UserControl_Loaded_1(sender As Object, e As RoutedEventArgs)
        ' The URL for the OData service.
        ' Replace <server name> in the next line with the name of your SharePoint server.
        context = New TeamSiteDataContext(New Uri("http://<server name>/_vti_bin/ListData.svc"))
    
        ' Do not load your data at design time.
        If Not System.ComponentModel.DesignerProperties.GetIsInDesignMode(Me) Then
            'Load your data here and assign the results to the CollectionViewSource.
            myCollectionViewSource =   DirectCast(Me.Resources("announcementsViewSource"), System.Windows.Data.CollectionViewSource)
            announcements.LoadCompleted += New EventHandler(Of LoadCompletedEventArgs)(AddressOf announcements_LoadCompleted)
            announcements.LoadAsync(context.Announcements)
        End If
    End Sub
    
    private void UserControl_Loaded_1(object sender, RoutedEventArgs e)
    {
        // The URL for the OData service.
        // Replace <server name> in the next line with the name of your 
        // SharePoint server.
        context = new TeamSiteDataContext(new Uri("https://ServerName>/_vti_bin/ListData.svc"));
    
        // Do not load your data at design time.
        if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
        {
            //Load your data here and assign the results to the CollectionViewSource.
            myCollectionViewSource = (System.Windows.Data.CollectionViewSource)this.Resources["announcementsViewSource"];
            announcements.LoadCompleted += new EventHandler<LoadCompletedEventArgs>(announcements_LoadCompleted);
            announcements.LoadAsync(context.Announcements);
        }
    }
    

    바꿔야는 ServerName Sharepoint를 실행 중인 서버의 이름 자리 표시자입니다.

  12. 다음 오류 처리 프로시저를 추가 합니다.

    Private Sub announcements_LoadCompleted(sender As Object, e As LoadCompletedEventArgs)
        ' Handle any errors.
        If e.[Error] Is Nothing Then
            myCollectionViewSource.Source = announcements
        Else
            MessageBox.Show(String.Format("ERROR: {0}", e.[Error].Message))
        End If
    End Sub
    
    void announcements_LoadCompleted(object sender, LoadCompletedEventArgs e)
    {
        // Handle any errors.
        if (e.Error == null)
        {
            myCollectionViewSource.Source = announcements;
        }
        else
        {
            MessageBox.Show(string.Format("ERROR: {0}", e.Error.Message));
        }
    }
    

Silverlight 웹 파트 수정

Silverlight 디버깅을 사용할 수 있도록 Silverlight 웹 파트 프로젝트에 속성을 변경 합니다.

Silverlight 웹 파트를 수정 하려면

  1. Silverlight 웹 파트 프로젝트에 대 한 바로 가기 메뉴를 엽니다 (SLWebPartTest), 다음을 선택 하 고 속성이.

  2. 속성 창의 선택은 SharePoint 탭.

  3. 선택 되어 있지 않으면 선택 된 (스크립트 디버깅 대신) 사용 하는 Silverlight 디버깅 확인란을 선택 합니다.

  4. 프로젝트를 저장합니다.

Silverlight 웹 파트 테스트

SharePoint 목록 데이터는 올바르게 표시 되도록 하려면 Sharepoint에서 새 Silverlight 웹 파트를 테스트 합니다.

Silverlight 웹 파트를 테스트 하려면

  1. 빌드 및 SharePoint 솔루션을 실행 하려면 F5 키를 선택 합니다.

  2. Sharepoint의에서 사이트 작업 메뉴를 선택 새 페이지.

  3. 새 페이지 대화, SL 웹 파트 테스트 등의 제목을 입력 한 다음 선택은 만들기 단추.

  4. 페이지 디자이너의에 편집 도구 탭에서 선택 삽입.

  5. 탭 스트립을 선택 웹 파트.

  6. 범주 상자에서 선택 된 사용자 지정 폴더.

  7. 웹 파트 목록에서 Silverlight 웹 파트를 선택 하 고 다음을 선택의 추가 디자이너에 웹 파트를 추가 하는 단추입니다.

  8. 기능은 모두 사용자가 원하는 웹 페이지에 변경한 후 선택은 페이지 탭을 클릭 한 다음 선택은 저장 & 닫기 도구 모음 단추를.

    이제 Silverlight 웹 파트 SharePoint 사이트에서 알림 데이터가 표시 됩니다.기본적으로 sharepoint에서 사이트의 페이지 목록에서 페이지 저장 됩니다.

    [!참고]

    도메인 간 Silverlight의 데이터를 액세스할 때 Silverlight 웹 응용 프로그램을 악용 하는 데 사용 하는 보안 취약성 으로부터 보호 합니다.Silverlight에서 원격 데이터를 액세스할 때 문제가 발생할 경우 참조 하십시오 는 서비스 사용할 수 있는 여러 도메인 경계를 만들 수.

참고 항목

개념

SharePoint 솔루션 패키지 배포, 게시 및 업그레이드

기타 리소스

SharePoint를 위한 웹 파트 만들기