Новые возможности для разработчиков, связанные с социальными функциями и функциями совместной работы в SharePoint
Узнайте о новых и измененных функциях социальных сетей и совместной работы для сценариев разработки личных сайтов и сайтов сообщества в SharePoint. Функции социальных сетей и совместной работы в SharePoint упрощают взаимодействие и информирование пользователей. Улучшенная социальных канал на личных сайтах и сайтах групп помогает пользователям изучить людей и контент фрагментов. Новая функция веб-узел сообщества предоставляют возможности расширенными возможностями сообщества, который позволяет легко найти и обмениваться информацией и найдите те, кто имеет схожими интересами.
Подробный обзор новых функций социальных сетей и совместной работы в SharePoint см . в статье Новые возможности социальных вычислений в SharePoint в TechNet. Дополнительные сведения о программировании с помощью функций социальных сетей и совместной работы см. в статье Функции социальных сетей и совместной работы в SharePoint.
Новые и измененные функции личного сайта в SharePoint
Личный сайт API-Интерфейс, который включает профили пользователей и Социальный контент, содержит множество новых и измененных функций. Новые функции для личных сайтов и веб-сайтов групп обеспечивает интерактивных сообщений в пределах веб-каналов, упрощающая пользователям всегда оставаться на связи для пользователей и контента, которые имеют значения для них.
На странице Канала новостей в SharePoint отображаются некоторые из этих улучшений, в том числе текстовое поле, позволяющее пользователям быстро публиковать записи в микроблогах, а также интерактивный канал бесед с сообщениями и обновлениями от пользователей и содержимого, на которые следит пользователь.
Новое пространство имен социальных предоставляет API для социальных веб-каналов и подписки на людей и контент
Пространство имен Social содержит основной API для работы с веб-каналов и публикации в микроблога и следующие сотрудники и контента. Для получения дополнительных сведений см Microsoft.SharePoint.Client.Social для клиентской объектной модели .NET, SP. Социальные для JavaScript объектной модели и Microsoft.Office.Server.Social для серверной объектной модели.
Примечание.
API в пространстве имен Microsoft.Office.Server.ActivityFeed не рекомендуется. В разделе Устаревшие и удаленным Личный сайт API и функции.
Новые клиентские API для веб-каналов социальных ленты, следовать за пользователями и контентом, а также свойства пользователей в SharePoint
SharePoint включает новые клиентские API, которые можно использовать для работы с веб-каналами социальных параметров, следовать за людьми и контентом, а также извлекать свойства пользователей в онлайн-, локальной и мобильной разработке. По возможности следует использовать клиентские API для разработки SharePoint вместо серверной объектной модели или веб-служб. API-интерфейсов клиента включают управляемых клиентских объектных моделей, модель объекта JavaScript и службы представлений состояния (REST). При разработке Надстройка SharePoint, необходимо использовать API клиента.
Не все функциональные возможности на сервере в сборке Microsoft.Office.Server.UserProfiles доступен из клиентских API-интерфейсов. Например, нет клиентского доступа к API в пространстве имен Microsoft.Office.Server.Audience , пространстве имен Microsoft.Office.Server.ReputationModel или в пространстве имен Microsoft.Office.Server.SocialData . Доступные API-интерфейсы см пространства имен Microsoft.SharePoint.Client.Social и пространства имен Microsoft.SharePoint.Client.UserProfiles .
Сведения о том, как получить доступ к клиентским API my Site Social, см. в статье Начало разработки с помощью социальных функций в SharePoint. Дополнительные сведения о наборах API в SharePoint и их использовании см. в статье Выбор правильного набора API в SharePoint.
Метод ProfileLoader.CreatePersonalSiteEnqueueBulk используется для подготовки личных сайтов и OneDrive для бизнеса для нескольких пользователей (Администраторы узлаЛичный сайт на SharePoint Online только)
Личный сайт Администраторы узла можно использовать метод ProfileLoader.CreatePersonalSiteEnqueueBulk для подготовки личных сайтов для нескольких пользователей на SharePoint Online, которые включают функции, например OneDrive для бизнеса и на странице сайтов программными средствами.
В следующем примере кода используется клиентская объектная модель .NET в консольное приложение. Перед запуском в примере добавьте ссылки на Microsoft.SharePoint.Client.dll, Microsoft.SharePoint.Client.Runtime.dll и библиотеке Microsoft.SharePoint.Client.UserProfiles.dll и измените значения заполнителей для переменных userName, passwordStrи serverUrl. Переменная serverUrl должен быть URL-адрес SharePoint Online центра администрирования.
Примечание.
Чтобы получить необходимые клиентские библиотеки DLL, скачайте пакет SDK для компонентов клиента SharePoint Online.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security;
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.UserProfiles;
namespace CreatePersonalSiteBulkConsole
{
class Program
{
static void Main(string[] args)
{
string userName = "administrator@contoso.onmicrosoft.com";
string passwordStr = "password";
string serverUrl = "https://contoso-admin.sharepoint.com/";
using (var clientContext = new ClientContext(serverUrl))
{
SecureString password = new SecureString();
Array.ForEach(passwordStr.ToCharArray(), c => password.AppendChar(c));
var credentials = new SharePointOnlineCredentials(userName, password);
clientContext.Credentials = credentials;
var web = clientContext.Web;
clientContext.Load(web);
clientContext.ExecuteQuery();
ProfileLoader loader = ProfileLoader.GetProfileLoader(clientContext);
if (loader == null)
{
throw new InvalidOperationException("Failed to get ProfileLoader");
}
string[] userEmails = { "usera@contoso.onmicrosoft.com", "userb@contoso.onmicrosoft.com" };
loader.CreatePersonalSiteEnqueueBulk(userEmails);
loader.Context.ExecuteQuery();
}
}
}
}
Чтобы использовать метод CreatePersonalSiteEnqueueBulk с Windows PowerShell, сначала измените значения заполнитель (URL-адрес SharePoint Online Центр администрирования и имена пользователей) в следующие команды и выполните команды в Командная консоль SharePoint.
$webUrl = "https://yoursharepointadmin.sharepoint.com"
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($webUrl)
$web = $ctx.Web
$username = "admin@myadmin.sharepoint.com"
$password = read-host -AsSecureString
$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username,$password)
$ctx.Load($web)
$ctx.ExecuteQuery()
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.UserProfiles")
$loader =[Microsoft.SharePoint.Client.UserProfiles.ProfileLoader]::GetProfileLoader($ctx)
#To get profile
$profile = $loader.GetUserProfile()
$ctx.Load($profile)
$ctx.ExecuteQuery()
$profile
#To enqueue profile
$loader.CreatePersonalSiteEnqueueBulk(@("user1@domain.com"))
$loader.Context.ExecuteQuery()
Дополнительные сведения см. в статье Использование Windows PowerShell для администрирования SharePoint.
Новые объекты для пользователей и свойства пользователей в SharePoint
SharePoint включает новые объекты, представляющие пользователей и свойства пользователей:
Объект SocialActor представляет пользователей (и другие сущности) для веб-канала и следующих действий.
Объект PersonProperties содержит общие свойства пользователя и свойства профиля пользователя.
Примечание.
Версии серверной объектной модели — это объект SPSocialActor и объект PersonProperties .
SharePoint также включает новый клиентский объект UserProfile , который предоставляет методы, которые можно использовать для создания личного сайта для текущего пользователя. Тем не менее он не содержит все свойства пользователей, которые содержит объект на сервере UserProfile . Для доступа к все свойства пользователя из клиентского кода, используйте метод PeopleManager.GetMyProperties или метод PeopleManager.GetPropertiesFor (профилей пользователей, свойства, хранятся в свойстве PersonProperties.UserProfileProperties ) или используйте PeopleManager.GetUserProfilePropertiesFor метод или метод PeopleManager.GetUserProfilePropertyFor .
Новый элемент управления средства выбора людей со стороны клиента
Элемент управления "Выбор людей" со стороны клиента является элементом управления HTML и JavaScript, который обеспечивает поддержку браузеров для выбора пользователей, групп и утверждений. Можно настроить средство выбора с теми же настройками, как на сервере версию элемента управления, включая свойства этого элемента управления (например, позволяя пользователи или пользователи и группы) и веб-параметров конфигурации на уровне приложения (например, параметры Доменные службы Active Directory или определения отдельного леса). Дополнительные сведения см. в статье Использование клиентского элемента управления Люди Picker в надстройках SharePoint, размещенных в SharePoint.
Устаревшие и удаленным Личный сайт API и функции
В SharePoint не рекомендуется использовать следующие API и функции личного сайта для социальных узлов:
API в пространстве имен Microsoft.Office.Server.ActivityFeed не рекомендуется. Пространство имен Социальных пространств предоставляет API для программной работы с веб-каналами социальных пространств в SharePoint. Для обратной совместимости элементы ActivityEvent из SharePoint 2010 отображаются в веб-каналах SharePoint как события, на которые невозможно ответить. (Миграцию события должна быть включена в центре администрирования).
Новые интерфейсы API в службе REST, клиентской объектной модели и объектной моделью JavaScript заменяется Личный сайт RSS-канал (ActivityFeed.aspx). Перенос пользовательских SharePoint 2010 код, использующий этот интерфейс API (желательно клиента API), замените все запросы на ActivityFeed.aspx звонков на новые API и веб-канала данных, которые возвращаются в формате Нотация объектов JavaScript (JSON) маркер.
Веб-часть Последние действия заменяется новой веб-частью Канала новостей , которая поддерживает многопоточные беседы и динамический поиск веб-канала.
Примечание.
Мы не поддерживаем настройки веб-части канала новостей или других веб-частей веб-канала (например, веб-части веб-канала сайта на сайтах групп). Если вы настроите эти веб-части, например с помощью переопределений JavaScript, имейте в виду, что ваши настройки могут нарушить обновление SharePoint.
Веб-часть "Комментарии к социальным сетям" не рекомендуется использовать.
Следующие события активности больше не будет автоматически сообщить веб-канал: профиля обновления, предстоящие день рождения, предстоящие годовщина работы, новые членства и изменение диспетчера. Тем не менее можно создать приемники настраиваемых событий для этих действий. Новые события социальных не были добавлены.
Следующие поля в перечислении Конфиденциальность являются устаревшими: Контакты, Организация и Менеджер. SharePoint предлагает только параметры конфиденциальности Private ( Только я) и Public ( Все). Существующие параметры конфиденциальности, сохраняются до их изменения пользователем. Перенос пользовательских SharePoint 2010 код, использующий этот интерфейс API, замените все ссылки на поля не рекомендуемые для использования конфиденциальности.
Следующие сотрудники API, доступного из SocialFollowingManager заменяющей функциональность коллег из SharePoint Server 2010. Страница коллеги заменяется я отслеживаю страницы. Функция групп, которая позволяет пользователям организации коллег в группы больше не доступен.
Профили организации устарели в SharePoint, и следующие типы устарели: OrganizationProfileManager, OrganizationMembershipType, OrganizationNotFoundException, OrganizationProfileChange, OrganizationProfileChangeQuery, OrganizationProfileChangeQuery, OrganizationProfileMembershipChange и OrganizationProfileValueCollection.
Функция "Мои ссылки" не рекомендуется использовать в SharePoint.
Новая функция сайта сообщества в SharePoint
Новая функция веб-узел сообщества включает в себя новый шаблон сайта и улучшение качества обсуждений. Функции такие как репутации, категории, основные вопросы, тип вопрос post и ответов на наиболее позволяют членам сообщества легко найти популярные обсуждения, информацию и людей со схожими интересами. Члены построения репутации, как они участвовать в сообществах.
Компонент веб-узел сообщества не предоставляют доступ к определенным API для разработки. Чтобы расширить возможности веб-узел сообщества, используется сайт SharePoint и список API-интерфейсы непосредственно. Например можно использовать API-интерфейсов SharePoint шаблоны сайтов и списков, создания пользовательских действий из сообществ для социальных веб-канал, интегрировать сведения о репутации в результатах поиска, настроить модели репутации или создавать рабочие процессы для Модерация обсуждений.
Следующий список содержит сведения о разработке с использованием функций веб-узел сообщества:
Сайты сообщества используют шаблон сайта Community ( Id = 62). Шаблон сайта недоступен для общедоступных веб-сайтов. Тип шаблона списка доски обсуждений — DiscussionBoard (значение = 108).
Активация компонента Веб-узел сообщества активирует CommunityEventReceiver приемника событий.
Для настройки представления отрисовки списка со стороны клиента, необходимо использовать JavaScript переопределений для замены в представление. Представления списка нельзя расширить с помощью API SharePoint. Дополнительные сведения см . в статье Настройка представления списка в надстройках SharePoint с помощью отрисовки на стороне клиента.
Сайты сообществ использовать асинхронные события для обновления объектов. Если асинхронные события выполняются в фоновом режиме, при попытке обновить списки или элементы списка могут возникнуть конфликты сохранения , и дескриптор объекта может стать устаревшим.
В качестве решения обработки исключений, возвращаемых вызовов Update обновить экземпляр перед повторить вызов и цикл для нескольких повторных попыток, как показано в следующем примере кода.
int retries = 1;
while (retries <= 10)
{
try
{
spListItem.IconOverlay = urlString;
spListItem.Update();
break;
}
catch (SPException saveConflict)
{
spListItem = web.Lists.GetItemById(spListItem.ID);
retries++;
if (retries > 10) throw;
System.Threading.Thread.Sleep(1000);
}
}