Elegir el conjunto de API correcto en SharePoint

Obtenga información sobre los distintos conjuntos de API proporcionados en SharePoint, lo que incluye el modelo de objetos de servidor, los distintos modelos de objetos de cliente y el servicio web REST/OData.

Factores que determinan que conjunto de API usar

Puede elegir entre varios conjuntos de API que puede usar para obtener acceso a la plataforma de SharePoint. La conveniencia de elegir uno u otro depende de varios factores:

  • Puede elegir entre varios conjuntos de API que puede usar para obtener acceso a la plataforma de SharePoint. Las posibilidades incluyen, entre otras, las siguientes, que no son categorías mutuamente excluyentes: un complemento de SharePoint, un elemento web en una página de SharePoint, una aplicación silverlight que se ejecuta en un equipo cliente o un dispositivo móvil cliente, una aplicación ASP.NET expuesta en SharePoint por un IFrame, JavaScript que se ejecuta en una página de sitio de SharePoint, una página de aplicación de SharePoint, una aplicación de Microsoft .NET Framework que se ejecuta en un equipo cliente, un script de Windows PowerShell y un trabajo de temporizador que se ejecuta en un servidor de SharePoint.
  • Los conocimientos del usuario. Se sorprenderá de cómo consigue crear aplicaciones en SharePoint sin necesidad de asimilar cantidades ingentes de información sobre programación de SharePoint. También puede pasar directamente al desarrollo de SharePoint si ya tiene experiencia en alguno de los siguientes modelos de programación:
    • JavaScript
    • ASP.NET
    • REST/OData
    • .NET Framework
    • Windows Phone
    • Silverlight
    • Windows PowerShell
  • El dispositivo en el que se usa el código. Entre las distintas posibilidades disponibles se encuentran los servidores de granjas de servidores de SharePoint, los servidores externos (por ejemplo, en la nube), los PC cliente y los dispositivos móviles. En este tema se proporciona una descripción general de los distintos conjuntos de API que proporciona SharePoint. En la figura 1 muestra qué conjuntos de API pueden usarse para desarrollar cada una de las 13 aplicaciones comunes relacionadas con SharePoint. Para muchas de ellas, puede elegir más de una API.

Figura 1. Tipos de extensión de SharePoint seleccionados y conjuntos de API de SharePoint

Diagrama de Venn de conjuntos de API y tipos de aplicación de SharePoint

La siguiente tabla proporciona una guía sobre qué conjunto de API usar para una lista seleccionada de proyectos de extensibilidad de SharePoint comunes. Las secciones restantes de este tema describen los distintos conjuntos de API.

Si desea usar esto... ...use estas API
Crear una aplicación web ASP.NET que haga tareas de crear, leer, actualizar y eliminar (CRUD) a través de un firewall en los datos de SharePoint o los datos externos que aparecen en SharePoint con un tipo de contenido externo de Servicios de conectividad empresarial de Microsoft (BCS) Cree una aplicación web ASP.NET que haga tareas de crear/leer/actualizar/eliminado (CRUD) a través de un firewall en los datos de SharePoint o los datos externos que aparecen en SharePoint con un tipo de contenido externo de Servicios de conectividad empresarial de Microsoft (BCS)
Modelo de objetos de cliente JavaScript Cree una aplicación web de ASP.NET que haga tareas CRUD en datos de SharePoint o datos externos que aparecen en SharePoint con un tipo de contenido externo BCS pero que no necesita llamar a SharePoint a través de un firewall
Cree una aplicación web de LAMP que haga tareas CRUD en datos de SharePoint o datos externos que aparecen en SharePoint con un tipo de contenido externo BCS Extremos REST/OData
Cree una aplicación de Windows Phone que haga tareas CRUD en datos de SharePoint Modelo de objetos de cliente móvil
Cree una aplicación de Windows Phone que use el Servicio de alerta de notificaciones de Microsoft para que envíe avisos al dispositivo móvil sobre eventos en SharePoint Modelo de objetos de servidor y modelo de objetos de cliente móvil
Cree una aplicación iOS o Android que haga tareas CRUDQ en datos de SharePoint Extremos REST/OData
Extremos REST/OData Cree una aplicación de .NET Framework que haga tareas CRUD en datos de SharePoint
Modelo de objetos de cliente .NET Framework Modelo de objetos de cliente de Silverlight
Modelo de objetos de cliente Silverlight Cree una aplicación HTML/ JavaScript que haga tareas CRUD en datos de SharePoint
Modelo de objetos de cliente JavaScript Cree un Complemento de Office que funcione con SharePoint
Modelo de objetos de cliente JavaScript Modelo de objetos de servidor
Cree un trabajo de temporizador Modelo de objetos de servidor
Cree una extensión de Administración central Modelo de objetos de servidor
Cree una personalización de marca uniforme en una granja completa de servidores de SharePoint Modelo de objetos de servidor
Crear un elemento web personalizado, una página de aplicación o un control de usuario de ASP.NET Modelo de objetos de servidor
Importante: Si las funciones que quiere ofrecer a los clientes no están orientadas a la administración de SharePoint en un ámbito más amplio que la colección de sitios, le recomendamos que, en lugar de usar el modelo de objetos de servidor, cree un complemento de SharePoint que incluya una aplicación web ASP.NET remota con elementos web y controles de usuario personalizados según sea necesario. Vea las dos filas superiores de esta tabla.

Modelo de objetos de servidor

El conjunto de API de mayor tamaño se encuentra en el modelo de objetos de servidor de las clases administradas. En el nivel de SharePoint Foundation 2013, este modelo de objetos contiene las clases y los miembros que habilitan el control de programación de la estructura básica de la lista y el sitio de SharePoint Foundation. La mayoría de estas clases están en el espacio de nombres Microsoft.SharePoint . Además, puede ampliar casi todos los componentes de SharePoint Foundation mediante el modelo de objetos de servidor, incluidos flujos de trabajo, alertas, elementos web, búsqueda básica y Servicios de conectividad empresarial (BCS) de Microsoft. El modelo de objetos de servidor también incluye un extenso conjunto de API que habilitan las extensiones del sistema de seguridad y administración de SharePoint Foundation, que incluye copias de seguridad, diagnósticos y acciones de mantenimiento de la granja, registros, administración de aplicaciones web y de la granja, actualizaciones, implementaciones, y acciones de almacenamiento en la memoria caché y personalización de Windows PowerShell.

En el nivel de SharePoint, puede agregar muchas otras clases para habilitar la programación de administración de contenido empresarial (ECM, Enterprise Content Management), perfiles de usuario, taxonomía, búsqueda avanzada y otras características de SharePoint.

Puede usar LINQ to Objects para consultar cualquier colección IEnumerable en memoria, pero un proveedor LINQ to SharePoint permite realizar consultas directas de las listas de las bases de datos de contenido de SharePoint. En términos estrictos, este proveedor no está disponible con ningún otro conjunto de API que se describen en este tema; sin embargo, hay maneras de usar la sintaxis LINQ en la mayoría de los demás.

Cuando haga la instalación de SharePoint, se instalarán también en la caché global de ensamblados de cada servidor los ensamblados que definen las clases de servidor integradas. Cuando programe en el modelo de objetos de servidor, los ensamblados se instalarán como soluciones de granja de servidores en la caché global de ensamblados.

Nota:

El desarrollo de nuevas soluciones de espacio aislado en SharePoint está en desuso. En su lugar, se desarrollan complementos de SharePoint, pero aún pueden instalarse soluciones de espacio aislado en las colecciones de sitios en SharePoint. Los ensamblados de estas soluciones permanecen en el paquete, salvo cuando se usan realmente, momento en el cual se instalan de forma temporal en una carpeta del servidor. Para obtener más información, vea ¿Dónde están implementados los ensamblados en soluciones de espacio aislado?.

Limitaciones de uso del modelo de objetos de servidor

La lógica personalizada de los complementos de SharePoint siempre se distribuye "en sentido descendente" al cliente o "en sentido ascendente" a la nube (o "alrededor", hacia algún servidor externo a la granja de servidores de SharePoint). En todos esos modelos de distribución, es necesario usar un modelo de objetos de cliente o los punto de conexión de REST/OData. (No puede usar el modelo de objetos de servidor en un complemento de SharePoint). Por ejemplo, si una aplicación contiene páginas hospedadas en SharePoint, dichas páginas pueden obtener acceso a los datos de SharePoint a través del modelo de objetos de cliente de JavaScript. Estas páginas también podrían exponer aplicaciones de Silverlight que usen el modelo de objetos de cliente de SharePoint Silverlight. Para obtener más información sobre los complementos de SharePoint, vea Aspectos importantes de la arquitectura y el entorno de desarrollo de complementos de SharePoint.

Modelos de objetos de cliente para código controlado

SharePoint dispone de tres modelos de objetos de cliente para código administrado: .NET, Silverlight y móvil.

El modelo de objetos de cliente de .NET

El modelo de objetos de SharePoint para .NET Framework se usa en aplicaciones de .NET Framework que se ejecutan en clientes de Windows que no son teléfonos. Por ejemplo, cualquiera de los siguientes:

  • El PC de un usuario.
  • Un servidor externo a la granja de servidores de SharePoint.
  • Un rol web o de trabajo de Microsoft Azure.

Casi todas las clases del modelo de objetos de servidor de la lista y el sitio principal cuentan con su clase correspondiente en el modelo de objetos de cliente de .NET Framework. Del mismo modo, el modelo de objetos de cliente de .NET Framework también expone un conjunto completo de API para ampliar otras características, incluidas algunas características de SharePoint como ECM, taxonomía, perfiles de usuario, búsqueda avanzada, análisis, BCS, etc.

Para mejorar el rendimiento, las líneas de código escritas en en el modelo de objetos de cliente de .NET Framework se envían al servidor de SharePoint en lotes donde se convierten en código del lado servidor y se ejecutan. Los resultados consultados y el nuevo estado de todas las variables se devuelven al cliente. Usted como desarrollador determina si un lote se ejecuta de forma sincrónica o asincrónica. (En un lote sincrónico, la aplicación .NET Framework espera los resultados devueltos del servidor antes de continuar; en un lote asincrónico, el procesamiento del lado cliente continúa inmediatamente y la interfaz de usuario (UI) del cliente sigue respondiendo).

Para hacer una consulta en cualquier objeto IEnumerable, incluidos los objetos de SharePoint que implementan IEnumerable, puede usar la sintaxis de consulta de LINQ en el código de cliente. Sin embargo, al hacerlo, usa LINQ to Objects, no el proveedor LINQ to SharePoint, por lo que la documentación de este último no es relevante para el código del lado cliente.

Los ensamblados del modelo de objetos de cliente de .NET Framework deben instalarse en el cliente. Se incluyen en un paquete de redistribución que puede obtener en los componentes de cliente de SharePoint.

Para obtener ejemplos de uso del modelo de objetos de .NET Framework, vea Completar operaciones básicas con código de biblioteca cliente de SharePoint.

Nota:

También puede usar los puntos de conexión de REST/OData de SharePoint en una aplicación .NET Framework. Para ver una comparación del modelo de objetos de cliente de .NET Framework con los puntos de conexión REST/OData de SharePoint, vea la sección Puntos de conexión REST/OData más adelante en este artículo.

Modelo de objetos de cliente de Silverlight

El modelo de objetos de SharePoint para Silverlight se usa en las aplicaciones de Silverlight, independientemente de la ubicación del archivo .xap compilado. Puede encontrarse en una biblioteca de activos de un sitio web de SharePoint, en un equipo cliente, en el almacenamiento en nube o en un servidor externo. Normalmente, una aplicación de Silverlight se expone en SharePoint en un objeto SilverlightWebPart . El modelo de objetos de cliente de Silverlight de SharePoint es prácticamente idéntico al modelo de objetos de cliente de .NET Framework, y es compatible con las mismas áreas de extensibilidad. La principal diferencia radica en que, en la versión de Silverlight, todos los lotes de comandos se envían al servidor de forma asincrónica, por lo que la IU de la aplicación permanece activa.

Los ensamblados para el modelo de objetos de cliente de Silverlight se conservan en todos los servidores de SharePoint en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS\ClientBin. Aunque no es necesario, si quiere puede instalarlos en el equipo en el que se ejecuta la aplicación de Silverlight. También puede empaquetarlos en el archivo .xap de la aplicación.

Los archivos .xap de Silverlight también pueden guardarse en los complementos de SharePoint, incluidas las aplicaciones que se hospedan en SharePoint. En este último caso, el archivo .xap se implementa en una biblioteca de la web de la aplicación. (Para obtener más información sobre las webs de aplicaciones, vea Webs de host, webs de complemento y componentes de SharePoint en SharePoint). Esto hace que una aplicación de Silverlight sea una manera útil de incluir código de SharePoint personalizado en una aplicación, ya que el código del lado servidor personalizado no está permitido en complementos de SharePoint. También permite a los desarrolladores de Silverlight usar sus aptitudes existentes para crear aplicaciones de SharePoint con una curva de aprendizaje mínima.

Nota:

También puede usar los puntos de conexión de REST/OData de SharePoint en una aplicación Silverlight. Para ver una comparación del modelo de objetos de cliente de Silverlight con los puntos de conexión REST/OData de SharePoint, consulte la sección Puntos de conexión REST/OData más adelante en este artículo.

Modelo de objetos de móviles

Existe una versión especial del modelo de objetos de cliente de Silverlight disponible para dispositivos Windows Phone. Incluye algunas API adicionales que solo son relevantes para los teléfonos, como las que permiten que las aplicaciones de los teléfonos se registren para recibir las notificaciones del Servicio de notificaciones push de Microsoft. Aunque admite todas las funciones principales de SharePoint, no es compatible con las áreas de extensibilidad que no son principales y sí admiten los otros dos modelos de objetos de cliente de código administrado. Para obtener acceso a esas áreas adicionales, use los puntos de conexión de REST/OData de SharePoint en su aplicación móvil. Vea la sección Extremos REST/OData después en este artículo.

Los ensamblados para el modelo de objetos móviles se conservan en cada servidor de SharePoint en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS\ClientBin. Se empaquetan en el archivo .xap de la aplicación Windows Phone.

Modelo de objetos JavaScript

SharePoint proporciona un modelo de objetos de JavaScript que se puede usar en un script en línea o en archivos .js independientes. Incluye las mismas funciones que los modelos de objetos de cliente de .NET Framework y Silverlight. Al igual que el modelo de objetos de Silverlight, el modelo de objetos de JavaScript permite incluir código de SharePoint personalizado en una aplicación de un modo muy eficaz, dado que no se admite código de servidor personalizado en los complementos de SharePoint. También permite a los desarrolladores web usar sus conocimientos de JavaScript para crear aplicaciones de SharePoint con una curva de aprendizaje mínima.

Tal como ocurre con los modelos de objetos de cliente de código administrado, la infraestructura de JavaScript para SharePoint interactúa con los servidores de la granja de servidores en lotes. Dichos lotes siempre se ejecutan de forma asincrónica. Además, ahora ya puede obtener acceso a los datos de SharePoint a través de los dominios de JavaScript (aunque únicamente podrá obtener acceso a los datos que se encuentren ubicados en la misma colección del sitio primario), algo que no permitían las versiones anteriores de SharePoint. Para obtener más información, vea Obtener acceso a datos de SharePoint desde complementos con la biblioteca entre dominios. El servidor devuelve los datos en notación de objetos JavaScript (JSON).

El modelo de objetos de JavaScript se define en un conjunto de archivos *.js ubicados en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS en cada servidor.

Para obtener ejemplos de uso del modelo de objetos de .NET Framework, vea Completar operaciones básicas con código de biblioteca de JavaScript en SharePoint.

Nota:

También puede usar los puntos de conexión de REST/OData de SharePoint en una aplicación JavaScript. Para ver una comparación del modelo de objetos de cliente de JavaScript con los puntos de conexión REST/OData de SharePoint, vea la sección siguiente, Puntos de conexión REST/OData.

Extremos REST/OData

Para escenarios en los que necesita acceder a entidades de SharePoint desde tecnologías cliente que no usan JavaScript y no se basan en las plataformas .NET Framework o Silverlight, SharePoint proporciona una implementación de un servicio web de transferencia de estado representacional (REST) que usa el protocolo OData para realizar operaciones CRUD en datos de lista de SharePoint. Además, prácticamente todas las API de los modelos de objetos de cliente disponen de su correspondiente punto de conexión de REST. Esto permite al código interactuar directamente con los artefactos de SharePoint a través de cualquier tecnología compatible con las solicitudes y las respuestas HTTP estándar. Para usar las características de REST que se encuentran integradas en SharePoint, el código crea una solicitud HTTP RESTful para un punto de conexión correspondiente a la API deseada del modelo de objetos de cliente. El servicio web de client.svc controla la solicitud HTTP y emite una respuesta en formato Atom o JSON.

Para obtener más información sobre el uso del servicio web REST/OData, vea el nodo Usar operaciones de consulta de OData en solicitudes REST de SharePoint; para obtener ejemplos, vea el tema Complete basic operations using SharePoint REST endpoints (Completar operaciones básicas con puntos de conexión REST de SharePoint).

Comparar la programación REST/OData con la programación de modelos de objetos de cliente

En algunas situaciones, puede resultar mejor usar los extremos REST incluso en aplicaciones para las que se encuentra disponible un modelo de objetos de SharePoint, especialmente para desarrolladores que no tienen experiencia en desarrollo en Windows. En la siguiente tabla, se muestra una comparación de las características principales de estas opciones de programación para un desarrollador que crea una aplicación en una plataforma Windows o con una plataforma que admite JavaScript.

Característica Modelos de objetos de .NET Framework o Silverlight Modelo de objetos JavaScript Extremos REST/OData llamados desde JavaScript o una plataforma Windows
Programación orientada a objetos No
Procesamiento por lotes
API para procesamiento condicional y control de excepciones Yes No No
Disponibilidad de sintaxis de LINQ No No
Combinar datos de lista de diferentes aplicaciones web de SharePoint No
Familiaridad con desarrolladores REST/OData experimentados No No
Similitud con programación que no pertenece a Windows o JavaScript No
Escritura segura para campos de elemento de lista No (excepto con LINQ) No Sí, desde plataforma Windows; No, desde JavaScript
Aprovechar jQuery, Reserva de color y otras bibliotecas JavaScript No No, desde plataforma Windows; Sí, desde JavaScript

Esquema de los Servicios de datos WCF

Si prefiere usar la sintaxis LINQ en aplicaciones cliente de .NET Framework o Silverlight, SharePoint admite WCF Data Services como proveedor LINQ. Puede seleccionar listdata.svc (solo para los datos de lista), como en las versiones anteriores de SharePoint Foundation, o seleccionar client.svc (compatible con la interfaz de OData) para obtener acceso a los datos de lista y también a todas las entidades de SharePoint. Para obtener más información, vea Consultas a SharePoint Foundation con los servicios de datos de ADO.NET.

La figura 2 muestra la relación existente entre las distintas API de cliente, los diversos tipos de aplicaciones cliente y SharePoint. Las varias_apidirecciones están relacionadas con la granja de servidores de puntos finales REST. Para más información, vea el tema Información sobre el servicio REST de SharePoint 15.

Figura 2. Aplicaciones cliente y API en SharePoint

Modelo de programación para aplicaciones para SharePoint

Conjuntos de API obsoletos

Todavía se admiten dos conjuntos de API en el marco de SharePoint para la compatibilidad con versiones anteriores, pero se recomienda no usarlos para nuevos proyectos: los servicios web de ASP.NET (asmx) y las llamadas directas a procedimientos remotos (RPC) al archivo owssvr.dll .

Recursos adicionales