Novedades para desarrolladores en características sociales y de colaboración en SharePoint
Obtenga información sobre las características sociales y de colaboración nuevas y modificadas para los escenarios de desarrollo mi sitio y sitio de la comunidad en SharePoint. Las características sociales y de colaboración de SharePoint facilitan a los usuarios comunicarse y mantenerse comprometidos e informados. La fuente social mejorada en sitios personales y sitios de grupo ayuda a los usuarios a mantenerse informado con las personas y el contenido que le preocupan. La nueva característica de sitio de la Comunidad proporciona una experiencia de comunidad enriquecido que permite a los usuarios encontrar fácilmente y compartir información y buscar personas que tienen intereses similares.
Para obtener información general detallada de las nuevas características sociales y de colaboración en SharePoint, vea Novedades de la informática social en SharePoint en TechNet. Para obtener más información sobre la programación con características sociales y de colaboración, vea Características sociales y de colaboración en SharePoint.
Características nuevas y modificadas de Mi sitio en SharePoint
La API Mi sitio social, que incluye perfiles de usuario y datos sociales, contiene muchas funciones nuevas y modificadas. La nueva funcionalidad para Mis sitios ofrece una experiencia interactiva y conversacional dentro de las fuentes que facilita a los usuarios mantenerse conectados a las personas y el contenido que son importantes para ellos.
La página Suministro de noticias en SharePoint muestra varias de estas mejoras, incluido un cuadro de texto que permite a los usuarios publicar rápidamente publicaciones de microblog y una fuente interactiva y conversacional de publicaciones y actualizaciones de las personas y el contenido que el usuario está siguiendo.
Nuevo espacio de nombres Social proporciona varias API para fuentes sociales y seguir a gente y contenido
El espacio de nombres Social contiene la API principal para trabajar con fuentes y entradas de microblog, y contenido y personas que siguen. Para obtener más información, vea Microsoft.SharePoint.Client.Social para el modelo de objetos de cliente de .NET, SP. Social para el modelo de objetos de JavaScript y Microsoft.Office.Server.Social para el modelo de objetos de servidor.
Nota:
La API del espacio de nombres Microsoft.Office.Server.ActivityFeed está en desuso. Consulte Funciones y API de Mi sitio social en desuso y eliminadas.
Nuevas API de cliente para fuentes sociales, seguimiento de personas y contenido, y propiedades de usuario en SharePoint
SharePoint incluye nuevas API de cliente que puede usar para trabajar con fuentes sociales, seguir personas y contenido, y recuperar propiedades de usuario en desarrollo en línea, local y móvil. Cuando sea posible, debe usar las API de cliente para el desarrollo de SharePoint en lugar de usar el modelo de objetos de servidor o los servicios web. API de cliente incluyen modelos de objetos de cliente administrado, un modelo de objetos de JavaScript y un servicio Representational State Transfer (REST). Si está desarrollando un Complemento de SharePoint, debe usar una API de cliente.
No todas las funciones de servidor en el ensamblado Microsoft.Office.Server.UserProfiles está disponible desde la API de cliente. Por ejemplo, no hay acceso del lado cliente a la API en el espacio de nombres Microsoft.Office.Server.Audience , el espacio de nombres Microsoft.Office.Server.ReputationModel o el espacio de nombres Microsoft.Office.Server.SocialData . Para ver qué API están disponibles, vea el espacio de nombres Microsoft.SharePoint.Client.Social y el espacio de nombres Microsoft.SharePoint.Client.UserProfiles .
Para obtener información sobre cómo acceder a las API de cliente de My Site Social, consulte Introducción al desarrollo con características sociales en SharePoint. Para obtener más información sobre los conjuntos de API en SharePoint y cuándo usarlos, vea Elegir el conjunto de API adecuado en SharePoint.
Utilice el método ProfileLoader.CreatePersonalSiteEnqueueBulk para aprovisionar sitios personales y OneDrive para la Empresa para varios usuarios (administradores de Host deMi sitio en SharePoint Online )
Mi sitio Los administradores de host pueden usar el método ProfileLoader.CreatePersonalSiteEnqueueBulk para aprovisionar mediante programación los sitios personales para varios usuarios en SharePoint Online, que incluyen características como OneDrive para la Empresa y la página sitios.
En el ejemplo de código siguiente se usa el modelo de objetos de cliente de .NET en una aplicación de consola. Antes de ejecutar el ejemplo, agregue referencias a ensamblados Microsoft.SharePoint.Client.dll, Microsoft.SharePoint.Client.Runtime.dll y Microsoft.SharePoint.Client.UserProfiles.dll y cambie los valores de marcador de posición de las variables userName, passwordStry serverUrl. La variable serverUrl debe ser la dirección URL de la SharePoint Online en el centro de administración.
Nota:
Para obtener los archivos DLL de cliente necesarios, descargue el SDK de componentes de cliente de 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();
}
}
}
}
Para usar el método CreatePersonalSiteEnqueueBulk con Windows PowerShell, en primer lugar cambie los valores de marcador de posición (la dirección URL de la SharePoint Online en el centro de administración y nombres de usuario) de los siguientes comandos y, a continuación, ejecute los comandos en el Shell de administración de 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()
Para obtener más información, vea Uso de Windows PowerShell para administrar SharePoint.
Nuevos objetos para usuarios y propiedades de usuario en SharePoint
SharePoint incluye nuevos objetos que representan usuarios y propiedades de usuario:
El objeto SocialActor representa a los usuarios (y otras entidades) para la fuente y las actividades siguientes.
El objeto PersonProperties contiene propiedades generales de usuario y propiedades de perfil de usuario.
Nota:
Las versiones del modelo de objetos de servidor son el objeto SPSocialActor y el objeto PersonProperties .
SharePoint también incluye un nuevo objeto UserProfile del lado cliente que proporciona métodos que puede usar para crear un sitio personal para el usuario actual. Sin embargo, no contiene todas las propiedades de usuario que contiene el objeto del servidor UserProfile . Para obtener acceso a todas las propiedades de usuario desde el código del lado cliente, utiliza el método PeopleManager.GetMyProperties o PeopleManager.GetPropertiesFor (perfil de usuario, las propiedades se almacenan en la propiedad PersonProperties.UserProfileProperties ) o utilice el método PeopleManager.GetUserProfilePropertiesFor o PeopleManager.GetUserProfilePropertyFor .
Nuevo control selector de personas del lado cliente
El control selector de personas del lado cliente es un control de HTML y de JavaScript que proporciona ayuda entre exploradores para seleccionar gente, grupos y declaraciones. Se puede configurar el seleccionador con la misma configuración que la versión del lado servidor del control, incluidas las propiedades específicas del control (como permitir múltiples usuarios o usuarios y grupos) y los ajustes de configuración a nivel de aplicación web (como parámetros Servicios de dominio de Active Directory o destinatarios en bosques concretos). Para obtener más información, vea Usar el control selector de Personas del lado cliente en complementos de SharePoint hospedados en SharePoint.
Funciones y API de Mi sitio social en desuso y eliminadas
Las siguientes características y la API de My Site Social están en desuso en SharePoint:
La API del espacio de nombres Microsoft.Office.Server.ActivityFeed está en desuso. El espacio de nombres Social proporciona la API para trabajar mediante programación con fuentes sociales en SharePoint. Por compatibilidad con versiones anteriores, los elementos ActivityEvent de SharePoint 2010 se muestran en fuentes de SharePoint como eventos a los que no se puede responder. (La migración de eventos heredados debe estar habilitada en Administración central).
La fuente RSS Mi sitio (ActivityFeed.aspx) se reemplaza con las nuevas API en el servicio REST, el modelo de objetos de cliente y el modelo de objetos JavaScript. Para migrar código SharePoint 2010 personalizado que usa esta API (preferiblemente una API de cliente), reemplace todas las solicitudes a ActivityFeed.aspx con llamadas a la nueva API y manipule los datos de la fuente que se devuelven en formato Notación de objetos de JavaScript (JSON).
El elemento web Actividades recientes se reemplaza por un nuevo elemento web de suministro de noticias que admite conversaciones multiproceso y recuperación dinámica de fuentes.
Nota:
No se admiten personalizaciones del elemento web Suministro de noticias ni otros elementos web de fuente (como el elemento web Fuente de sitio en sitios de equipo). Si personaliza estos elementos web, por ejemplo, mediante invalidaciones de JavaScript, tenga en cuenta que las personalizaciones pueden interrumpir las actualizaciones de SharePoint.
El elemento web Comentarios sociales está en desuso .
Los siguientes eventos de actividad ya no informan automáticamente a la fuente: actualización de perfil, próximos cumpleaños, próximos aniversarios de trabajo, nuevos miembros y cambio de administrador. Sin embargo, puede crear receptores de eventos personalizados para estas actividades. No se han agregado nuevos eventos sociales.
Los siguientes campos de la enumeración Privacidad están en desuso: Contactos, Organización y Administrador. SharePoint solo ofrece la configuración de privacidad privada ( solo yo) y pública ( todos). La configuración de privacidad existente se mantiene hasta que el usuario la modifique. Para migrar código personalizado SharePoint 2010 que usa esta API, reemplace todas las referencias a los campos de privacidad en desuso.
La API Siguiendo a personas a la que se tiene acceso desde SocialFollowingManager reemplaza a la funcionalidad Compañeros de SharePoint Server 2010. La página Compañeros se reemplaza con la página Personas a las que sigo. La función Grupos que permitía a los usuarios organizar compañeros en grupos ya no está disponible.
Los perfiles de la organización están obsoletos en SharePoint y los siguientes tipos están en desuso: OrganizationProfile, OrganizationProfileManager, OrganizationMembershipType, OrganizationNotFoundException, OrganizationProfileChange, OrganizationProfileChangeQuery, OrganizationProfileMembershipChange y OrganizationProfileValueCollection.
La característica Mis vínculos está en desuso en SharePoint.
Nueva característica de sitio de la comunidad en SharePoint
La nueva función Sitio de la comunidad incluye una plantilla de nuevo sitio y una experiencia mejorada de debate. Las funciones tales como reputación, categorías, debates destacados, un tipo de entrada-pregunta y mejores respuestas permite a los miembros de la comunidad encontrar fácilmente debates populares, información relacionada y a personas con intereses similares. Los miembros crean la reputación según participan en las comunidades.
La función Sitio de la comunidad no expone una API específica para desarrollo. Para ampliar las funciones de Sitio de la comunidad use el sitio de SharePoint y la lista de las API directamente. Por ejemplo, puede usar las API de SharePoint para personalizar las plantillas de lista y de sitio, y crear actividades personalizadas de comunidades para la fuente social, integrar información de reputación en resultados de búsqueda, personalizar el modelo de reputación o crear flujos de trabajo para debates moderados.
La siguiente lista contiene información para el desarrollo con funciones de Sitio de la comunidad:
Sitios de la Comunidad usan la plantilla de sitio de Community ( Id = 62). La plantilla de sitio no está disponible para los sitios Web públicos. El tipo de plantilla de la lista de paneles de discusión es DiscussionBoard (valor = 108).
Al activar la función Sitio de la comunidad se activa el receptor de evento CommunityEventReceiver.
Para personalizar la vista de lista representada de cliente, debe utilizar los reemplazos de JavaScript para reemplazar la vista. Las vistas de lista no se pueden extender a través de la API de SharePoint. Para obtener más información, vea Personalizar una vista de lista en complementos de SharePoint mediante la representación del lado cliente.
Los sitios de la comunidad usan eventos asincrónicos para actualizar los objetos. Si se ejecutan eventos asincrónicos en segundo plano, puede encontrarse con conflictos de Guardar al intentar actualizar listas o elementos de lista y su controlador al objeto puede convertirse en obsoleto.
Como solución, controle las excepciones devueltas por llamadas Actualizar, actualice la instancia antes de volver a intentar la llamada y haga un bucle para múltiples reintentos, como se muestra en el siguiente ejemplo de código.
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);
}
}