Desarrollo en SharePoint 2010: Modelo
  de Objetos en Cliente + API REST


                     Goretti Ortigosa
                     http://geeks.ms/blogs/gortigosa
Qué vamos a ver
•   Introducción al MO en Cliente
•   Los «tres sabores» del MO en Cliente
•   Arquitectura
•   Uso del MO en cliente
•   API REST
MO en Cliente: Introducción
Introducción al MO en Cliente
• Proporciona un mecanismo de trabajo remoto con Sitios
  de SharePoint 2010:
   – El acceso es vía API
   – No hay necesidad de recurrir a los servicios web que expone la
     plataforma
   – No tengo que implementar mis servicios web personalizados
• Es una capa de abstracción que permite trabajar con
  objetos de SharePoint
Introducción al MO en Cliente
• Es un subconjunto del MO definido en
  Microsoft.SharePoint.dll
• Objetivo: minimizar el número de roundtrips al servidor:
   – Simplifica Añadir / Devolver / Actualizar y gestionar datos de
     SharePoint de forma remota
   – Los comandos se envían en modo batch al servidor
• SharePoint Designer 2010 lo usa
Introducción al MO en Cliente
• ¿En qué niveles permite desarrollar?
   –   Colecciones de sitios y sitios
   –   Listas, elementos de lista, vistas y esquemas
   –   Archivos y carpetas
   –   Property Bags
   –   WebParts
   –   Seguridad
   –   Tipos de contenido
   –   Plantillas de Sitio y operaciones con Colecciones de sitios
Los tres sabores
Los tres sabores 

• .NET ejecutándose en modo SandBox:
   – Se encuentra localizado en /ISAPI en los ensamblados:
      • Microsoft.SharePoint.Client .dll: MO en sí mismo
      • Microsoft.SharePoint.Client.Runtime.dll: lógica de transporte necesaria
        para procesar las peticiones al servidor
   – Las comunicaciones con el servidor son síncronas
Los tres sabores 
• Silverlight (3.0 o superior), ejecutándose en modo
  SandBox:
  – Se encuentra        localizado     en    LAYOUTSClientBin        en   los
    ensamblados:
     • Microsoft.SharePoint.Client.Silverlight.dll: MO en sí mismo
     • Microsoft.SharePoint.Client.Silverlight.Runtime.dll:      lógica    de
       transporte necesaria para procesar las peticiones al servidor
  – Las comunicaciones con el servidor son asíncronas
Los tres sabores 

• ECMAScript, script que se ejecuta en el navegador:
   – Se encuentra localizado en /LAYOUTS en los archivos:
      • SP.js: MO en sí mismo
      • SP.Runtime.js: lógica de transporte necesaria para procesar las
        peticiones al servidor
   – Las comunicaciones con el servidor son asíncronas
• Sintaxis:


              Servidor      Client OM

        SPContext        ClientContext
        SPSite           Site
        SPWeb            Web
        SPList           List
        SPListItem       ListItem
        SPField          Field
Arquitectura
JavaScript Controls and Logic

Navegador
                           Respuesta JSON
         MO ECMAScript                                         MO en
                           Petición XML                       Servidor
               Proxy

                           Petición XML
                                             Client.svc
               Proxy

                           Respuesta JSON                       BD de
            MO Manejado
                                                              Contenidos
Cliente Manejado

   Lógica y Controles Manejados             SharePoint 2010
Arquitectura

• Silverlight WebPart:
   – De serie en SharePoint 2010, es el hoster natural de aplicaciones
     Silverlight:
      • Basta con desarrollar la aplicación XAP y desplegarla en el servidor
      • La aplicación Silverlight desplegada es una parte + de la página
Uso del MO en Cliente
Implementación .NET
Implementación de Silverlight
Implementación Webpart de Silverlight



               +
               +
               +
Implementación ECMA Javascript
API REST
API REST

• Integración nativa de WCF Data Services:
   – Todas las Lista y Bibliotecas de SharePoint 2010 están expuestas a
     través de un servicio REST
   – http://<servidor>/_vti_bin/ListData.svc
API REST

• Se facilita el acceso a los datos de SharePoint:
   – Mediante el uso de LINQ para operaciones CRUD
   – El trabajo con objetos es fuertemente tipado
API REST

•   //Listado de los elementos de una Lista de Anuncios
•   IntranetDataContext ctx =
•        new IntranetDataContext(
•          new Uri(
•            "http://win-ij3avreuif5/_vti_bin/ListData.svc",
•          UriKind.Absolute));
•     ctx.Credentials =
•        CredentialCache.DefaultCredentials;
•     grdDatos.DataSource = ctx.Anuncios.ToList();
API REST

•   //Creación de un nuevo anuncio
•   IntranetDataContext ctx =
•        new IntranetDataContext(
•          new Uri(
•            "http://win-ij3avreuif5/_vti_bin/ListData.svc",
•          UriKind.Absolute));
•     ctx.Credentials =
•        CredentialCache.DefaultCredentials;
•     AnunciosItem anItem =
•        new AnunciosItem();
•     anItem.Título=txtTitulo.Text;
•     anItem.Cuerpo=txtTitulo.Text;
•     ctx.AddToAnuncios(anItem);
•     ctx.SaveChanges();
SP2010 evolución vs evolución

SP2010 evolución vs evolución

  • 1.
    Desarrollo en SharePoint2010: Modelo de Objetos en Cliente + API REST Goretti Ortigosa http://geeks.ms/blogs/gortigosa
  • 2.
    Qué vamos aver • Introducción al MO en Cliente • Los «tres sabores» del MO en Cliente • Arquitectura • Uso del MO en cliente • API REST
  • 3.
    MO en Cliente:Introducción
  • 5.
    Introducción al MOen Cliente • Proporciona un mecanismo de trabajo remoto con Sitios de SharePoint 2010: – El acceso es vía API – No hay necesidad de recurrir a los servicios web que expone la plataforma – No tengo que implementar mis servicios web personalizados • Es una capa de abstracción que permite trabajar con objetos de SharePoint
  • 6.
    Introducción al MOen Cliente • Es un subconjunto del MO definido en Microsoft.SharePoint.dll • Objetivo: minimizar el número de roundtrips al servidor: – Simplifica Añadir / Devolver / Actualizar y gestionar datos de SharePoint de forma remota – Los comandos se envían en modo batch al servidor • SharePoint Designer 2010 lo usa
  • 7.
    Introducción al MOen Cliente • ¿En qué niveles permite desarrollar? – Colecciones de sitios y sitios – Listas, elementos de lista, vistas y esquemas – Archivos y carpetas – Property Bags – WebParts – Seguridad – Tipos de contenido – Plantillas de Sitio y operaciones con Colecciones de sitios
  • 8.
  • 10.
    Los tres sabores • .NET ejecutándose en modo SandBox: – Se encuentra localizado en /ISAPI en los ensamblados: • Microsoft.SharePoint.Client .dll: MO en sí mismo • Microsoft.SharePoint.Client.Runtime.dll: lógica de transporte necesaria para procesar las peticiones al servidor – Las comunicaciones con el servidor son síncronas
  • 11.
    Los tres sabores • Silverlight (3.0 o superior), ejecutándose en modo SandBox: – Se encuentra localizado en LAYOUTSClientBin en los ensamblados: • Microsoft.SharePoint.Client.Silverlight.dll: MO en sí mismo • Microsoft.SharePoint.Client.Silverlight.Runtime.dll: lógica de transporte necesaria para procesar las peticiones al servidor – Las comunicaciones con el servidor son asíncronas
  • 12.
    Los tres sabores • ECMAScript, script que se ejecuta en el navegador: – Se encuentra localizado en /LAYOUTS en los archivos: • SP.js: MO en sí mismo • SP.Runtime.js: lógica de transporte necesaria para procesar las peticiones al servidor – Las comunicaciones con el servidor son asíncronas
  • 13.
    • Sintaxis: Servidor Client OM SPContext ClientContext SPSite Site SPWeb Web SPList List SPListItem ListItem SPField Field
  • 14.
  • 15.
    JavaScript Controls andLogic Navegador Respuesta JSON MO ECMAScript MO en Petición XML Servidor Proxy Petición XML Client.svc Proxy Respuesta JSON BD de MO Manejado Contenidos Cliente Manejado Lógica y Controles Manejados SharePoint 2010
  • 16.
    Arquitectura • Silverlight WebPart: – De serie en SharePoint 2010, es el hoster natural de aplicaciones Silverlight: • Basta con desarrollar la aplicación XAP y desplegarla en el servidor • La aplicación Silverlight desplegada es una parte + de la página
  • 17.
    Uso del MOen Cliente
  • 18.
  • 20.
  • 22.
    Implementación Webpart deSilverlight + + +
  • 24.
  • 26.
  • 27.
    API REST • Integraciónnativa de WCF Data Services: – Todas las Lista y Bibliotecas de SharePoint 2010 están expuestas a través de un servicio REST – http://<servidor>/_vti_bin/ListData.svc
  • 28.
    API REST • Sefacilita el acceso a los datos de SharePoint: – Mediante el uso de LINQ para operaciones CRUD – El trabajo con objetos es fuertemente tipado
  • 29.
    API REST • //Listado de los elementos de una Lista de Anuncios • IntranetDataContext ctx = • new IntranetDataContext( • new Uri( • "http://win-ij3avreuif5/_vti_bin/ListData.svc", • UriKind.Absolute)); • ctx.Credentials = • CredentialCache.DefaultCredentials; • grdDatos.DataSource = ctx.Anuncios.ToList();
  • 30.
    API REST • //Creación de un nuevo anuncio • IntranetDataContext ctx = • new IntranetDataContext( • new Uri( • "http://win-ij3avreuif5/_vti_bin/ListData.svc", • UriKind.Absolute)); • ctx.Credentials = • CredentialCache.DefaultCredentials; • AnunciosItem anItem = • new AnunciosItem(); • anItem.Título=txtTitulo.Text; • anItem.Cuerpo=txtTitulo.Text; • ctx.AddToAnuncios(anItem); • ctx.SaveChanges();