Повторное развертывание пользовательских настроек и решений в SharePoint Foundation 2010 и SharePoint Server 2010
Обзор. Приводится процесс повторного развертывания пользовательских настроек и решений, созданных для Windows SharePoint Services 3.0 и Microsoft Office SharePoint Server 2007 в Microsoft SharePoint Server 2010 и Microsoft SharePoint Foundation 2010.
Дата последнего изменения: 12 января 2011 г.
Применимо к: Business Connectivity Services | Office 2010 | Open XML | SharePoint Designer 2010 | SharePoint Foundation 2010 | SharePoint Online | SharePoint Server 2010 | Visual Studio
В этой статье
Начало работы с объектной моделью 2010
Установка обновлений
Работа с объектной моделью 2010
Изменения в пользовательском интерфейсе
Заключение
Дополнительные материалы
Джеймс Кроули (James Crowley), корпорация Майкрософт
Майкл Уошем (Michael Washam), корпорация Майкрософт
Октябрь 2009
Применяется к: Microsoft SharePoint Server 2010, Microsoft SharePoint Foundation 2010
Содержание
Начало работы с объектной моделью 2010
Установка обновлений
Работа с объектной моделью 2010
Изменения в пользовательском интерфейсе
Заключение
Дополнительные материалы
Загрузите списки устаревших типов и методов, которые связаны с данной статьей:Microsoft SharePoint Server 2010: устаревшие типы и методы (Возможно, на английском языке)
Начало работы с объектной моделью 2010
В Microsoft SharePoint Foundation 2010 и Microsoft SharePoint Server 2010 содержатся обновления объектной модели, разработанные так, чтобы быть совместимыми с существующими решениями, разработанными для Windows SharePoint Services 3.0 и Microsoft Office SharePoint Server 2007. Некоторые пространства имен, классы и методы теперь устарели, но они остаются доступны и будут продолжать работать прежним образом в пользовательском коде. Хотя пользовательский интерфейс был существенно изменен, визуальный режим обратной совместимости предоставляет возможность сохранить визуальные настройки до тех пор, пока не произойдет адаптация к новым возможностям пользовательского интерфейса. Можно синхронизировать настройки и приложения с обновленными версиями Microsoft SharePoint Foundation 2010 и Microsoft SharePoint Server 2010 после их повторного развертывания. В данной статье предоставлены рекомендации, которые могут помочь избежать и преодолеть проблемы, которые могут возникнуть при повторном развертывании, тестировании и отладке кода Windows SharePoint Services 3.0 и Office SharePoint Server 2007 в SharePoint Foundation 2010 и Microsoft SharePoint Server 2010 соответственно.
Если были созданы проекты Windows SharePoint Services 3.0 или Office SharePoint Server 2007 с помощью расширений Microsoft Visual Studio 2005 для Windows SharePoint Services 3.0 версии 1.1, расширений Microsoft Visual Studio 2005 для Windows SharePoint Services 3.0 версии 1.2 и расширений Microsoft Visual Studio 2005 для Windows SharePoint Services 3.0 версии 1.3, можно обновить их с помощью средства обновления VSeWSS (Возможно, на английском языке), которое устанавливает шаблоны, преобразующие существующие пакеты решений для расширений Visual Studio для Windows SharePoint Services (написанные на Microsoft Visual Basic или Microsoft Visual C#) в решения Microsoft Visual Studio 2010 (рис. 1).
Рис. 1. Импортирование проекта для расширений Visual Studio для Windows SharePoint Services в Visual Studio 2010
После преобразования решений для расширений Visual Studio для Windows SharePoint Services в решения Visual Studio 2010 необходимо развернуть новые пакеты решений в обновленной платформе.
Установка обновлений
Можно выполнить обновления как на месте (в существующей ферме серверов, в которой уже установлены Windows SharePoint Services 3.0 или Office SharePoint Server 2007) или на новой ферме серверов, к которой вы или администратор присоединит имеющуюся базу данных контента. В любом случае развертывания будут работать лучше при использовании файлов пакетов решений SharePoint (WSP-файлы) вместо файлов пакетов установщика Windows (MSI-файлов). Если требуется повторно развернуть шаблон сайтов, необходимо создать сайт из этого шаблона и сохранить его в качестве пакета решения. Наиболее важное начальное условие — убедиться, что папка "14" является целевым расположением для всех развертываний, а не папка "12"; пакеты развертываний упрощают это. SharePoint Foundation 2010 и SharePoint Server 2010 проверяют папку 12\TEMPLATE\FEATURES, если они не находят файл в соответствующей папке "14". Однако они могут не найти пользовательские файлы, развернутые в других папках, поэтому существенно проще отлаживать установки, если все пользовательские файлы развернуты в папке "14".
Использование файлов пакетов решений (WSP-файлов)
Если возможно, развертывайте пользовательские решения с помощью файлов пакетов решений (WSP-файлов), так как это лучший способ обеспечить развертывание пользовательских файлов в правильных расположениях. Сведения о создании файлов пакетов решений в Windows SharePoint Services 3.0 и Office SharePoint Server 2007 см. в статье Создание решения. Сведения о развертывании файлов решений в SharePoint Foundation 2010 и SharePoint Server 2010 см. в статье Установка и развертывание решения фермы.
Использование файлов установщика Windows
Если пользовательские решения развертываются с помощью пакетов установщика Windows (MSI-файлов), измените их таким образом, чтобы пользовательские файлы развертывались в своих правильных расположениях в папке "14". Это особенно важно, если файлы развертываются в расположениях, отличных от папки TEMPLATE\FEATURES.
Повторное развертывание шаблона сайта
Шаблоны сайтов являются устаревшими. Если требуется повторно развернуть шаблон сайта в SharePoint Foundation 2010 или SharePoint Server 2010, выполните следующее:
Создайте сайт из шаблона сайтов.
Установите SharePoint Foundation 2010 или SharePoint Server 2010 на существующей ферме серверов или на новой ферме серверов. Если производится установка обновлений на новой ферме серверов, подключите базу данных контента, содержащую сайт, созданный для новой фермы.
В новой установке выберите Сохранение сайта в качестве шаблона на странице Параметры сайта. При этом создается пакет решений с расширением имени файла WSP.
Работа с объектной моделью 2010
Объектная модель содержит множество изменений и улучшений, но имеющийся пользовательский код будет по-прежнему компилироваться и, с одним потенциальным исключением, работать как положено. Если какие-либо пользовательские изменения зависят от запросов списков, которые могут создавать наборы результатов, превышающие 5000 элементов, или которые проверяют все строки списков, содержащих более 5000 элементов, необходимо изменить пороговое значение размера запроса (инструкции см. в разделе Работа с запросами для больших списков). В другом случае можно присмотреться к изменениям и включить новые элементы объектной модели в соответствии с планом. Обновленная объектная модель предоставляет альтернативные подходы, которые могут помочь в улучшении оформления и производительности настроек во многих случаях.
Обратная совместимость
Так как изменения в интерфейсе API обновлений являются обратно совместимыми, нет необходимости делать какие-либо изменения в имеющемся пользовательском коде до повторного развертывания в SharePoint Foundation 2010 или SharePoint Server 2010. Некоторые классы и пространства имен являются устаревшими, но они будут продолжать работать. Если необходимо обновить приложения, чтобы в них использовались самые новые классы и методы, перекомпилируйте код. В предупреждениях компилятора будет указано, какие элементы объектной модели являются устаревшими и какие новые альтернативы рекомендуется использовать. На рис. 2 показан пример предупреждения компилятора и соответствующее предупреждение при наведении указателя мыши в Visual Studio 2010.
Рис. 2. Предупреждение компилятора для устаревшего конструктора в Visual Studio 2010
Список устаревших типов и методов в объектной модели Microsoft SharePoint 2010 см. на веб-странице Microsoft SharePoint Server 2010: устаревшие типы и методы (Возможно, на английском языке).
В SharePoint Server 2010 содержится более 1500 устаревших типов; большинство из них находится в пространстве имен Microsoft.SharePoint.Portal. В SharePoint Foundation 2010 содержится гораздо меньше устаревших типов, но в них содержится несколько сотен устаревших методов и свойств.
Нет необходимости повторно компилировать пользовательский код, написанный для Windows SharePoint Services 3.0 и Office SharePoint Server 2007, который работает в службах IIS. Это значит, что можно использовать пользовательские библиотеки DLL без перекомпиляции; однако они могут не работать правильно в некоторых случаях. Например, если произведено повторное развертывание всех файлов в папке "14" и очищена папка "12", все ссылки на файлы в папке "12" не будут работать. Так же как нужно переписать пакеты установщика Windows, если они ссылаются на расположения в папке "12"; необходимо переписать и перекомпилировать весь код, ссылающийся на файлы и ресурсы, перемещенные в новое расположение. Необходимо оценить пользовательский код в отношении новой установки и проверить, что код, зависящий от каких-либо данных старой установки, будет продолжать работать после установки обновлений.
Необходимо перекомпилировать пользовательский код, написанный для Office SharePoint Server 2007, если решение включает приемник компонента, использующий методы FeatureInstalled, FeatureUninstalling, FeatureActivated или FeatureDeactivating, и производится развертывание с помощью средства командной строки Stsadm или службы таймера. Перенаправления сборок SharePoint Server 2010 поддерживаются с помощью записей в файле сервера web.config, и средства командной строки могут не перенаправлять на новые версии сборок до тех пор, пока решение не будет установлено.
Необходимо перекомпилировать пользовательский код, написанный для Windows SharePoint Services 3.0 и Office SharePoint Server 2007, который не работает в IIS (например, консольные приложения и службы).
Работа с запросами для больших списков
В SharePoint Foundation 2010 и SharePoint Server 2010 по умолчанию применяется пороговое значение для запросов в 5000 элементов. Любой пользовательский код, который зависит от наборов результатов запросов, превышающих этот максимум, будет работать неправильно после обновления. Запросы по спискам, содержащим более 5000 элементов, которые включают неиндексируемые поля в условиях запросов, также не будут работать, так как эти запросы должны проверять все строки в списках. Можно увеличить указанный предел (установив свойство EnableThrottling в объекте SPList) или позволить объектной модели переопределять его. Рекомендации по эффективной обработке больших папок и списков см. в статьях Обработка больших папок и списков и Написание эффективного кода в SharePoint Server.
Увеличение порогового значения по умолчанию для запросов
На сайте центра администрирования в разделе Управление приложениями щелкните Управление веб-приложениями.
Щелкните Общие параметры, а затем щелкните Регулирование ресурсов (рис. 3).
Рис. 3. Задание порогового значения размера запросов в SharePoint Foundation 2010 и SharePoint Server 2010
Новые возможности SharePoint
Существенные дополнения в объектной модели SharePoint Foundation 2010 и SharePoint Server 2010 включают следующие новые возможности:
Пространство имен Microsoft.SharePoint.Linq, которое определяет LINQ для поставщика SharePoint, преобразовывающего запросы LINQ в запросы языка CAML (и поэтому предоставляющего возможность замены запросов списков и CAML запросами LINQ).
Три интерфейса API на стороне клиента в пространстве имен Microsoft.SharePoint.Client, позволяющие взаимодействовать с сайтами SharePoint посредством скриптов, работающих в браузере из управляемого кода Microsoft .NET Framework и в приложениях Microsoft Silverlight.
SharePoint Foundation 2010 и SharePoint Server 2010 содержат много дополнений, предоставляемых службами Business Connectivity Services. Эти изменения упрощают интеграцию внешних бизнес-данных и процессов с серверными и клиентскими приложениями.
Дополнительные сведения об использовании этих и других новых интерфейсов API см. в статьях Новые возможности SharePoint Foundation 2010 и Новые возможности SharePoint Server 2010.
Диаграмма на рис. 4 демонстрирует пример пространства имен, к которому добавлено много типов.
Рис. 4. Новые типы в пространстве имен в SharePoint Server 2010
Изменения в пользовательском интерфейсе
Так как пользовательский интерфейс в SharePoint Foundation 2010 и SharePoint Server 2010 существенно изменился, все настройки, которые зависят от определенных классов CSS и элементов пользовательского интерфейса, будут работать лучше в режиме обратной совместимости. При обновлении до SharePoint Foundation 2010 или SharePoint Server 2010 можно выбрать режим обратной совместимости или обновленный пользовательский интерфейс. Можно переключаться между режимом обратной совместимости и новым интерфейсом на уровне семейства сайтов или на уровне сайта.
Чтобы сохранить внешний вид и особенности работы существующих сайтов, используйте PSConfig или PSConfigUI.
Чтобы сохранить внешний вид и особенности работы существующих сайтов при обновлении с помощью присоединения старой базы данных контента к новой ферме серверов, используйте Stsadm.
Можно также использовать веб-интерфейс, чтобы задать для всех сайтов в семействе сайтов использование обновленного пользовательского интерфейса (и исключить использование пользователями старого интерфейса).
Задание для всех сайтов в семействе сайтов использования обновленного пользовательского интерфейса
В разделе Параметры сайта щелкните элемент Администрирование семейства веб-сайтов.
Щелкните элемент Поддерживаемые пользовательские интерфейсы (рис. 5).
Рис. 5. Смена пользовательского интерфейса на уровне семейства сайтов
Также можно выбрать предыдущий внешний вид и особенности работы для определенного сайта. В разделе Параметры сайта щелкните Заголовок, затем Описание и Вид (рис. 6).
Рис. 6. Смена пользовательского интерфейса на уровне сайта
Также можно программно узнать или задать версию пользовательского интерфейса (3 для режима обратной совместимости и 4 для нового интерфейса) с помощью свойства SPWeb.UIVersion.
![]() |
---|
После установки свойства SPWeb.UIVersion в значение 3 или 4 необходимо использовать метод SPWeb.Update, чтобы сохранить изменения. |
Свойство UIVersion также доступно для элементов управления SharePoint:VersionedContent и SharePoint:VersionedPlaceHolder. Оба элемента управления размещают контент с управлением версиями на странице, но элемент управления SharePoint:VersionedPlaceHolder работает во время обработки, после завершения загрузки страницы.
В следующих примерах показано, как реализовать эти элементы управления в ASPX-файлах.
<SharePoint:VersionedPlaceHolder ID="vph4" runat="server" UIVersion="4">
<div>Content</div>
</SharePoint:VersionedPlaceHolder>
<SharePoint:UIVersionedContent ID="vc4" runat="server" UIVersion="4">
<ContentTemplate>
<div>Content</div>
</ContentTemplate>
<SharePoint:UIVersionedContent>
Можно программно включить или отключить параметр Поддерживаемые пользовательские интерфейсы в веб-интерфейсе, задав логические свойства SPWeb.UIVersionConfigurationEnabled, SPSite.UIVersionConfigurationEnabledInAllWebs и SPSite.UIVersionConfigurationEnabled. Задание свойства SPSite.UIVersionConfigurationEnabled в значение false имеет тот же эффект, что и выбор варианта Сохранить новый пользовательский интерфейс в разделе Действия сайта. В обоих случаях нельзя больше переключаться с одной версии пользовательского интерфейса на другую с помощью веб-интерфейса (хотя можно переключаться программно, задавая указанные выше свойства).
В режиме обратной совместимости визуальные настройки будут продолжать работать и будет доступ ко всей инфраструктуре (включая CSS), связанной с темами. Режим обратной совместимости позволяет получить время на перенос и обновление настроек, чтобы они работали с новым интерфейсом. Некоторые визуальные элементы будут работать правильно в новом интерфейсе, но некоторые пользовательские действия (которые используют атрибуты ControlAssembly, ControlClass и ControlSrc) не будут работать. Если сделано много визуальных настроек, особенно настроек CSS и панели инструментов, нужно начинать с режима обратной совместимости. После развертывания настроек нужно проверить их на обновленном интерфейсе, чтобы определить, какие элементы необходимо изменить.
Изменения в классах CSS
Так как новые классы CSS существенно изменились, все настройки и оформление, зависящие от классов CSS, в Windows SharePoint Services 3.0 и Office SharePoint Server 2007 будут работать только в режиме обратной совместимости. Темы больше не существуют в SharePoint Foundation 2010 и SharePoint Server 2010, поэтому все настройки и оформление, которые были сделаны с темами, не будут импортироваться в новый интерфейс. При смене оформления страниц после обновления и повторного развертывания необходимо настроить новую главную страницу вместо попыток заставить работать старые классы CSS с обновленным пользовательским интерфейсом.
Пользовательские действия и дополнения панели инструментов
Большинство пользовательских действий, включая те, что ориентированы на ссылки и меню редактирования блоков элементов управления (ECB), продолжают работать в новом интерфейсе правильно. Так как панель инструментов заменена лентой, большинство пользовательских действий, которые добавляют кнопки в панель инструментов, будут помещены на вкладку Пользовательские команды на ленте (рис. 7).
Рис. 7. Пользовательские действия на панели инструментов и на вкладке пользовательских команд на ленте
Любой элемент Custom Action Element, использующий атрибуты ControlAssembly, ControlClass или ControlSrc, однако, не будет отображен в новом интерфейсе. Чтобы заставить работать эти добавления панели инструментов до смены оформления приложения, можно использовать режим обратной совместимости. Или можно использовать параметр Показать панель инструментов для каждого представления списков и формы списков, которые используют настроенную панель инструментов, содержащую эти типы пользовательских действий. Параметр Показать панель инструментов вызывает отображение панели инструментов на ленте и, хотя это может создать избыточную функциональность, может являться хорошим вариантом, если настроенные панели инструментов отображаются в ограниченном количестве контекстов.
Заключение
Можно получить преимущества расширенных возможностей в SharePoint Foundation 2010 и SharePoint Server 2010 сразу после их установки; хотя не требуется сразу переписывать имеющийся код. Все устаревшие элементы интерфейса API остаются доступными, поэтому есть время для ознакомления с новыми элементами интерфейса API перед включением их в настройки. Также режим обратной совместимости дает время для пересмотра и при необходимости смены оформления, чтобы оно получило все преимущества нового пользовательского интерфейса. Также не требуется адаптировать новый пользовательский интерфейс для всех сайтов сразу. Некоторые сайты могут оставаться со старой версией интерфейса, а другие сайты могут сразу быть адаптированы к новой версии. Платформа дает возможность переноса настроек и получения преимуществ новых возможностей постепенно, чтобы можно было адаптировать расширения в требуемых областях.