Compartilhar via


Passo a passo: criar uma Web Part do Silverlight que exibe OData para o SharePoint

O SharePoint 2010 expõe seus dados de lista por meio do OData. No SharePoint, o serviço OData é implementado pelo serviço RESTful ListData.svc. Este passo a passo mostra como criar uma Web Part do SharePoint que hospeda um aplicativo Silverlight. O aplicativo Silverlight exibe informações da lista de Comunicados do SharePoint usando ListData.svc. Para obter mais informações, consulte Interface REST do SharePoint Foundation e Protocolo Open Data.

Observação

Seu computador pode mostrar diferentes nomes ou locais para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, confira Personalizar o IDE.

Pré-requisitos

Você precisará dos seguintes componentes para concluir este passo a passo:

  • Edições do Microsoft Windows e do SharePoint com suporte.

  • Visual Studio 2012.

Criar um aplicativo e uma Web Part do Silverlight

Primeiro, crie um aplicativo Silverlight no Visual Studio. O aplicativo Silverlight recupera dados da lista de Comunicados do SharePoint usando o serviço ListData.svc.

Observação

Nenhuma versão do Silverlight antes da 4.0 dá suporte às interfaces necessárias para referenciar dados de lista do SharePoint.

Para criar um aplicativo e uma Web Part do Silverlight

  1. Na barra de menus, escolha Arquivo>Novo>Projeto para exibir a caixa de diálogo Novo Projeto.

  2. Expanda o nó do SharePoint no Visual C# ou no Visual Basic e escolha o nó 2010.

  3. No painel de modelos, escolha o modelo Web Part do Silverlight do SharePoint 2010.

  4. Na caixa Nome, insira SLWebPartTest e clique no botão OK.

    A caixa de diálogo do Assistente de Personalização do SharePoint é exibida.

  5. Na página Especificar o site e o nível de segurança para depuração, insira a URL do site do servidor do SharePoint em que você deseja depurar a definição do site ou use o local padrão (http://nome do sistema/).

  6. Na seção Qual é o nível de confiança para esta solução do SharePoint?, clique no botão da opção Implantar como uma solução de farm.

    Embora este exemplo use uma solução de farm, projetos de Web Part do Silverlight podem ser implantados como soluções de farm ou em área restrita. Para obter mais informações sobre soluções de área restrita e soluções de farm, confira Considerações sobre a solução em área restrita.

  7. Na seção Como você deseja associar a Web Part do Silverlight da página Especificar Informações de Configuração do Silverlight, escolha o botão de opção Criar um projeto do Silverlight e associá-lo à Web Part.

  8. Altere o Nome para SLApplication, defina Linguagem como Visual Basic ou Visual C# e defina Versão do Silverlight como Silverlight 4.0.

  9. Escolha o botão Concluir. Os projetos aparecem no Gerenciador de Soluções.

    A solução contém dois projetos: um aplicativo Silverlight e uma Web Part do Silverlight. O aplicativo Silverlight recupera e exibe os dados da lista do SharePoint, e a Web Part do Silverlight hospeda o aplicativo Silverlight, permitindo que você os exiba no SharePoint.

Personalizar o aplicativo Silverlight

Adicione elementos de código e design ao aplicativo Silverlight.

Para personalizar o aplicativo Silverlight

  1. Adicione uma referência de assembly a System.Windows.Data no aplicativo Silverlight. Para obter mais informações, consulte Como: adicionar ou remover referências usando a caixa de diálogo Adicionar Referência.

  2. No Gerenciador de Soluções, abra o menu de atalho para Referências e escolha Adicionar Referência de Serviço.

    Observação

    Se você estiver usando o Visual Basic, deverá escolher o ícone Mostrar Todos os Arquivos na parte superior do Gerenciador de Soluções para exibir o nó Referências.

  3. Na caixa Endereço da caixa de diálogo Adicionar Referência de Serviço, insira a URL do site do SharePoint, como http://MySPSite, e escolha o botão Ir.

    Quando o Silverlight localiza o serviço OData do SharePoint ListData.svc, ele substitui o endereço pela URL de serviço completa. Neste exemplo, http://myserver se torna http://myserver/_vti_bin/ListData.svc..

  4. Escolha o botão OK para adicionar a referência de serviço ao projeto e use o nome de serviço padrão, ServiceReference1.

  5. Na barra de menus, escolha Compilar>Compilar Solução.

  6. Adicione uma nova fonte de dados ao projeto com base no serviço do SharePoint. Para fazer isso, na barra de menus, escolha Exibir>Outras Janelas>Fontes de Dados.

    A janela Fontes de Dados mostra todos os dados disponíveis da lista do SharePoint, como Tarefas, Comunicados e Calendário.

  7. Adicione os dados da lista Comunicados ao aplicativo Silverlight. Você pode arrastar "Comunicados" da janela Fontes de Dados para o designer do Silverlight.

    Isso cria um controle de grade associado à lista Comunicados do site do SharePoint.

  8. Redimensione o controle de grade para caber na página do Silverlight.

  9. No arquivo de código MainPage.xaml (MainPage.xaml.cs para o Visual C# ou MainPage.xaml.vb para o Visual Basic), adicione as referências de namespace a seguir.

    // Add the following three using directives.
    using SLApplication.ServiceReference1;
    using System.Windows.Data;
    using System.Data.Services.Client;
    
  10. Adicione as declarações de variáveis a seguir na parte superior da classe.

    private TeamSiteDataContext context;
    private CollectionViewSource myCollectionViewSource;
    DataServiceCollection<AnnouncementsItem> announcements = new DataServiceCollection<AnnouncementsItem>();
    
  11. Substitua o procedimento UserControl_Loaded pelo seguinte.

    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("http://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);
        }
    }
    

    Substitua o espaço reservado ServerName pelo nome do servidor que está executando o SharePoint.

  12. Adicione o procedimento de tratamento de erros a seguir.

    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));
        }
    }
    

Modificar a Web Part do Silverlight

Altere uma propriedade no projeto da Web Part do Silverlight para habilitar a depuração do Silverlight.

Para modificar a Web Part do Silverlight

  1. Abra o menu de atalho do projeto de Web Part do Silverlight (SLWebPartTest) e escolha Propriedades.

  2. Na janela Propriedades, escolha a guia SharePoint.

  3. Se ainda não estiver selecionada, marque a caixa de seleção Habilitar depuração do Silverlight (em vez de Depuração de script).

  4. Salve o projeto.

Testar a Web Part do Silverlight

Teste a nova Web Part do Silverlight no SharePoint para garantir que ela exiba os dados da lista do SharePoint corretamente.

Para testar a Web Part do Silverlight

  1. Pressione a tecla F5 para compilar e executar a solução do SharePoint.

  2. No SharePoint, no menu Ações do Site, escolha Nova Página.

  3. Na caixa de diálogo Nova Página, insira um título, como Teste de Web Part do SL, e escolha o botão Criar.

  4. No designer de página, na guia Ferramentas de Edição, escolha Inserir.

  5. Na faixa de guias, escolha Web Part.

  6. Na caixa Categorias, escolha a pasta Personalizado.

  7. Na lista Web Parts, escolha a Web Part do Silverlight e, em seguida, o botão Adicionar para adicionar a Web Part ao designer.

  8. Depois de fazer todas as adições desejadas à página da Web, escolha a guia Página e escolha o botão Salvar e Fechar na barra de ferramentas.

    A Web Part do Silverlight agora deve exibir dados de Comunicados do site do SharePoint. Por padrão, a página é armazenada na lista Páginas do Site no SharePoint.

    Observação

    Ao acessar dados no Silverlight entre domínios, o Silverlight protege contra vulnerabilidades de segurança que podem ser usadas para explorar aplicativos Web. Se você encontrar problemas ao acessar dados remotos no Silverlight, consulte Disponibilizando um serviço entre limites de domínio.