Поделиться через


Пошаговое руководство. Создание веб-части Silverlight, отображающей OData для SharePoint

SharePoint 2010 предоставляет свои данные списка с помощью OData. Служба OData реализована в SharePoint службой RESTful (ListData.svc). В данном пошаговом руководстве показано, как создать веб-часть SharePoint, в которой размещается приложение Silverlight. Приложение Silverlight отображает информацию списка извещений SharePoint с помощью ListData.svc. Дополнительные сведения см. в разделе REST Interface SharePoint Foundation и Open Data Protocol.

Примечание.

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация среды IDE.

Необходимые компоненты

Для выполнения этого пошагового руководства требуются следующие компоненты:

  • Поддерживаемые редакции Microsoft Windows и SharePoint.

  • Visual Studio 2012.

Создание приложения Silverlight и веб-части Silverlight

Сначала необходимо создать приложение Silverlight в Visual Studio. Приложение Silverlight извлекает данные из списка извещений SharePoint с помощью службы ListData.svc.

Примечание.

Версии Silverlight младше 4.0 не поддерживают необходимые интерфейсы для ссылки на данные списка SharePoint.

Создание приложения Silverlight и веб-части Silverlight

  1. В строке меню выберите "Файл>нового проекта">, чтобы отобразить диалоговое окно "Новый проект".

  2. Разверните узел SharePoint в Visual C# или Visual Basic, а затем выберите узел 2010.

  3. В области шаблонов выберите шаблон веб-части SharePoint 2010 Silverlight.

  4. В поле "Имя" введите SLWebPartTest и нажмите кнопку "ОК".

    Откроется диалоговое окно мастера настройки SharePoint.

  5. На странице "Указание сайта и уровня безопасности для отладки" введите URL-адрес сайта сервера SharePoint, в котором требуется выполнить отладку определения сайта, или используйте расположение по умолчанию (имя системы http:///).

  6. В разделе " Что такое уровень доверия для этого решения SharePoint?" , нажмите кнопку "Развернуть как решение фермы".

    Хотя в этом примере используется решение фермы, проекты веб-части Silverlight можно развертывать либо как решения фермы, либо как изолированные решения. Дополнительные сведения об изолированных решениях и решениях ферм см. в разделе "Изолированные решения".

  7. В разделе "Как связать веб-часть Silverlight" на странице "Указание сведений о конфигурации Silverlight", выберите проект Create a Silverlight и свяжите его с кнопкой параметра веб-части.

  8. Измените имя на SLApplication, установите для языка значение Visual Basic или Visual C#, а затем установите для Версии Silverlight 4.0 значение Silverlight.

  9. Нажмите кнопку Готово . Проекты отображаются в Обозреватель решений.

    Решение содержит 2 проекта: приложение Silverlight и веб-часть Silverlight. Приложение Silverlight извлекает и отображает данные списка из SharePoint, а веб-часть Silverlight размещает приложение Silverlight, позволяя просматривать его в SharePoint.

Настройка приложения Silverlight

Добавление кода и элементов оформления в приложение Silverlight.

Настройка приложения Silverlight

  1. Добавьте ссылку на сборку в System.Windows.Data в приложении Silverlight. Дополнительные сведения см. в разделе "Практическое руководство. Добавление или удаление ссылок с помощью диалогового окна "Добавление ссылки".

  2. В Обозреватель решений откройте контекстное меню для ссылок и нажмите кнопку "Добавить ссылку на службу".

    Примечание.

    Если вы используете Visual Basic, щелкните значок "Показать все файлы" в верхней части Обозреватель решений, чтобы отобразить узел "Ссылки".

  3. В поле "Адрес" диалогового окна "Добавить ссылку на службу" введите URL-адрес сайта SharePoint, например http://MySPSite, и нажмите кнопку "Перейти ".

    Когда Silverlight находит службу OData SharePoint ListData.svc, он заменяет адрес полным 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 using directives.
    using SLApplication.ServiceReference1;
    using System.Windows.Data;
    using System.Data.Services.Client;
    
  10. Добавьте следующие объявления переменных в начало класса.

    private TeamSiteDataContext context;
    private CollectionViewSource myCollectionViewSource;
    DataServiceCollection<AnnouncementsItem> announcements = new DataServiceCollection<AnnouncementsItem>();
    
  11. Замените процедуру UserControl_Loaded следующим кодом.

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

    Обязательно замените заполнитель ServerName именем сервера, на котором выполняется SharePoint.

  12. Добавьте следующую процедуру обработки ошибок.

    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

Протестируйте новую веб-часть Silverlight в SharePoint, чтобы убедиться в том, что он правильно отображает данные списка SharePoint.

Тестирование веб-части Silverlight

  1. Выберите ключ F5 для сборки и запуска решения SharePoint.

  2. В SharePoint в меню "Действия сайта" выберите "Создать страницу".

  3. В диалоговом окне "Новая страница" введите заголовок, например тест веб-части SL, а затем нажмите кнопку "Создать".

  4. В конструкторе страниц на вкладке "Средства редактирования" нажмите кнопку "Вставить".

  5. На вкладке выберите веб-часть.

  6. В поле "Категории" выберите пользовательскую папку.

  7. В списке веб-части выберите веб-часть Silverlight и нажмите кнопку "Добавить", чтобы добавить веб-часть в конструктор.

  8. После внесения всех добавлений на нужную веб-страницу выберите вкладку "Страница ", а затем нажмите кнопку "Сохранить" и " Закрыть " на панели инструментов.

    Веб-часть Silverlight теперь должна отображать данные извещений с сайта SharePoint. По умолчанию страница хранится в страницах сайта в SharePoint.

    Примечание.

    При доступе к данным в Silverlight между доменами, Silverlight защищается от уязвимостей безопасности, которые могут быть использованы для эксплуатации веб-приложений в своих целях. Если при доступе к удаленным данным в Silverlight возникают проблемы, ознакомьтесь с разделом "Доступность службы через границы домена".