SlideShare une entreprise Scribd logo
1  sur  25
¡SharePoint 2013 como
plataforma de desarrollo:
      Novedades!
 Juan Carlos González (@jcgm1978)
 MVP SharePoint Server
 http://geeks.ms/blogs/ciin
 jgonzalez@gruposodercan.es
Agenda

 Modelo de Objetos en Cliente (CSOM)
 Programación con el CSOM
 API REST de SharePoint 2013
 Operaciones CRUD con Sitios, Listas y Elementos de
  Lista
Modelo de Objetos en
              Cliente
 En SharePoint 2010:

                                     _vti_bin/client.svc

Servidor
                                             Execute
Cliente                                       Query

                                      Microsoft.SharePoint
                                           Sabor
                                      .Client.Silverlight.dll     Sabor
                Sabor .NET
                                         Silverlight            JavaScript
            Microsoft.SharePoint
                 .Client.dll                                         SP.js

                                   Código personalizado
Modelo de Objetos en
              Cliente
 En SharePoint 2013:
    Se extiende el servicio client.svc con capacidades REST:
        Se soporta acceso directo al servicio desde clients REST
        Acepta peticiones HTTP GET, PUT y POST
        Implementado de acuerdo al protocolo OData
    Nuevas APIs:
        Para interactuar con servicios: Search Taxonomy Feeds Publishing Sharing Workflow E-
         Discovery IRM Analytics Business Data

        Para aplicaciones Windows Phone
Modelo de Objetos en
             Cliente
 Arquitectura de la API remota de SharePoint 2013:



                   _api es un Nuevo alias para _vti_bin/client.svc

Servidor
                                            Execute
Cliente    OData                             Query

                           Sabor            Sabor             Sabor
                            .NET          Silverlight       JavaScript



                               Código personalizado
Modelo de Objetos en
             Cliente
 ¿Qué pasa con ListData.svc?
    Sigue estando disponible
    Se garantiza compatibilidad hacía atrás: para migración de aplicaciones
     en cliente
    Para nuevas aplicaciones, no se debería usar
Programación con el CSOM
            Código JavaScript

Navegador
                                 Respuesta JSON
             MO JavaScript                                         MO
                                 Petición XML                    Servidor
                   Proxy
                                                  Client.svc
                                 Respuesta JSON     (_api)
                   Proxy

                                 Petición XML                       BD
              MO manejado
                                                                 contenidos
Cliente manejado

            Código C# o VB.NET                      SharePoint
Programación con el CSOM
 En SharePoint Foundation
    Sin cambios significativos, más allá del soporte REST
    Se ha añadido el soporte REST a la API existente




 En SharePoint Server
    Se han añadido nuevas APIs para interactuar con servicios
Programación con el CSOM
 Ejemplo – Uso del servicio de traducciones:
    using (MO_Cliente.ClientContext ctx =
             new MO_Cliente.ClientContext( "http://c4431163311/"))
         {
             Console.WriteLine( "Extensiones de archivos soportadas");
             IEnumerable<string> ieFileExtensions =
                MO_TRCliente.TranslationJob.EnumerateSupportedFileExtensions(ctx);
             ctx.ExecuteQuery();
             foreach (string item in ieFileExtensions)
             {
                Console.Write(item + ", ");
             }
             Console.WriteLine();
             Console.WriteLine("Idiomas soportados");
             IEnumerable<string> ieIdiomas=
                MO_TRCliente.TranslationJob.EnumerateSupportedLanguages(ctx);
             ctx.ExecuteQuery();
             foreach (string item in ieIdiomas)
             {
                Console.Write(item + ", ");
             }
           }
Programación con el CSOM
 Ejemplo – Uso del servicio de búsqueda:
    using (ClientContext ctx = new ClientContext("http://spfes"))
           {
             KeywordQuery query = new KeywordQuery(ctx);
             query.QueryText = "SharePoint";
             SearchExecutor searchExecutor = new SearchExecutor(ctx);
             ClientResult<ResultTableCollection> rcc =
         searchExecutor.ExecuteQuery(query);
             ctx.ExecuteQuery();

           foreach (var rccRow in rcc.Value[0].ResultRows)
           {
             Console.WriteLine("Titulo: " + rccRow["Title"] + " - Ruta: " +
   rccRow["Path"] + " - Fecha: " + rccRow["Write"]);
           }
         }
API REST de SharePoint 2013
 ¿Por qué REST?
    + simple y sencillo de usar:
        vs Servicos Web clásicos (SOAP)
        Mayor productividad cuando se usa JavaScript y jQuery
        Los resultados se pueden devolver en formatos JSON y ATOM
    Minimiza la barrera de entrada a diferentes tipos de clientes potenciales
    Cada consulta se envía con una URL única
API REST de SharePoint 2013
 URLs REST en SharePoint 2013:
    Las URLs para el CSOM pueden ir a través de _api
    Se elimina la referencia a client.svc de la URL
 Se puede reemplazar la URL:
    http://contososerver/_vti_bin/client.svc/web
    Por http://consotoserver/_api/web
API REST de SharePoint 2013
 Mapeo de objetos a recursos:
    Ejemplos de URLs REST apuntando a sitios de SharePoint:
        _api/web/lists
        _api/web/lists/getByTitle(„Announcements‟)
        _api/web/getAvailableWebTemplates(lcid=1033)
    Ejemplos de URLs REST apuntado a servicios de SharePoint:
        Servicio de Traducción:
             http://<servername>/_api/TranslationJob.EnumerateSupportedLanguages
             http://<servername>/_api/TranslationJob.EnumerateSupportedFileEXtensions

        Servicio de búsquedas:
             http://<servername>/_api/search/query?querytext='Test'
API REST de SharePoint 2013
 Consultas REST desde código manejado:
    Usar HttpWebRequest y HttpWebResponse
    Consultar el XML usando XDocument.Descendants
API REST de SharePoint 2013
 Consultas REST desde código manejado:
    Para servicios la misma filosofía
           string sURLConsulta = "http://c4431163311" +
                "/_api/TranslationJob.EnumerateSupportedLanguages";
            Uri uRESTService = new Uri(sURLConsulta);

            //Petición REST
            HttpWebRequest hwrPeticion =
              (HttpWebRequest)WebRequest.Create(uRESTService);
            hwrPeticion.Credentials =
              CredentialCache.DefaultNetworkCredentials;
            hwrPeticion.Accept = "application/atom+xml";

            //Envío de la petición al servidor
            HttpWebResponse hwrRespuesta =
               (HttpWebResponse)hwrPeticion.GetResponse();
            StreamReader srReader =
               new StreamReader(hwrRespuesta.GetResponseStream());

            //Procesando la respuesta
            XDocument xdDoc =
              XDocument.Load(hwrRespuesta.GetResponseStream());
            XNamespace xnEspacioNombres =
              "http://schemas.microsoft.com/ado/2007/08/dataservices";

            Console.WriteLine(xdDoc.ToString());
            var eIdiomas = xdDoc.Descendants(xnEspacioNombres+ "element");
    //….
API REST de SharePoint 2013
 Las operaciones CRUD requieren el uso de Form Digest:
    Es un “valor especial” creado por medio de criptografía
    Se utiliza para proteger contra ataques de tipo “Replay attack”
    Las páginas de SharePoint disponen de un control que mantiene “Form
     Digest”
    Los clientes de servicios web tienen que adquirir de forma separada “Form
     Digest”. Por ejemplo, se puede hacer a través de _vti_bin/sites.asmx
API REST de SharePoint 2013
 Creación de elementos de SharePoint:
    Para crear una lista, es necesario:
        Parsear la URL que apunta a la colección de listas: _api/web/lists
        Añadir una cabecera X-RequestDigest que incluye el valor de “Form Digest”
        Fijar el método HTTP a POST
        Crear el documento XML que contiene la información de la lista a crear
API REST de SharePoint 2013
 Creación de elementos de SharePoint:
  //The body of the REST request is ASCII encoded and inserted into the request stream.
          string listPostBody = "{'__metadata':{'type':'SP.List'}, 'Title':'" + newListName + "', 'BaseTemplate': 100}";
          byte[] listPostData = System.Text.Encoding.ASCII.GetBytes(listPostBody);

           HttpWebRequest listRequest =
               (HttpWebRequest)HttpWebRequest.Create(sharepointUrl.ToString() + "/_api/lists");
           listRequest.Method = "POST";
           listRequest.ContentLength = listPostBody.Length;
           listRequest.ContentType = "application/json;odata=verbose";
           listRequest.Accept = "application/json;odata=verbose";
           listRequest.Headers.Add("Authorization", "Bearer " + accessToken);
           listRequest.Headers.Add("X-RequestDigest", formDigest);
           Stream listRequestStream = listRequest.GetRequestStream();
           listRequestStream.Write(listPostData, 0, listPostData.Length);
           listRequestStream.Close();
           HttpWebResponse listResponse = (HttpWebResponse)listRequest.GetResponse();
Uso de la API REST
de SharePoint 2013
Aprende de los expertos
 Descárgate CompartiMOSS:
    http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
Descuentos Campus MVP



10% de descuento
en todos nuestros cursos y libros hasta el 31 de
diciembre

Introduce el cupón PECIIN12SN al realizar tu
compra
en nuestra tienda online.
Prueba SharePoint a tope
 CloudShare:
    http://www.cloudshare.com/
    Disponen de varias plantillas de SharePoint 2013 listas para probar 
Nos vemos en los foros
 Foro de desarrollo:
     http://social.msdn.microsoft.com/Forums/es-es/mossdeves/threads
 Foro de IT
     http://social.technet.microsoft.com/Forums/es-ES/mosses/threads
 Foro de Office 365:
     http://community.office365.com/es-es/default.aspx
GRACIAS POR SU ATENCIÓN

Contenu connexe

Similaire à Novedades en Desarrollo en SharePoint 2013

Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...Andrés Iturralde
 
Novedades en BCS en SharePoint 2013
Novedades en BCS en SharePoint 2013Novedades en BCS en SharePoint 2013
Novedades en BCS en SharePoint 2013Juan Carlos Gonzalez
 
SharePoint 2010 Introducción para Desarrolladores
SharePoint 2010 Introducción para DesarrolladoresSharePoint 2010 Introducción para Desarrolladores
SharePoint 2010 Introducción para DesarrolladoresAndrés Iturralde
 
Sharepoint server 2010 - La nueva colaboración
Sharepoint server 2010  - La nueva colaboraciónSharepoint server 2010  - La nueva colaboración
Sharepoint server 2010 - La nueva colaboraciónAndrés Iturralde
 
¿Es posible extender a SharePoint 2013? Probablemente en más de una forma…
¿Es posible extender a SharePoint 2013? Probablemente en más de una forma…¿Es posible extender a SharePoint 2013? Probablemente en más de una forma…
¿Es posible extender a SharePoint 2013? Probablemente en más de una forma…Fabian Imaz
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con RESTAlex Puig
 
144 Rest Web Services
144 Rest Web Services144 Rest Web Services
144 Rest Web ServicesGeneXus
 
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint onlineAplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint onlineMario Cortés Flores
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NETwilliamsm
 
CLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptxCLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptxDiseoGrfico14
 
SharePoint 2010 Client Object Model
SharePoint 2010 Client Object ModelSharePoint 2010 Client Object Model
SharePoint 2010 Client Object ModelAndrés Iturralde
 
Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4SolidQ
 
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxXavierNavia
 
Integración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxIntegración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxLuisTenorio42
 
Como crear add ins hibridas para share point y office
Como crear add ins hibridas para share point y officeComo crear add ins hibridas para share point y office
Como crear add ins hibridas para share point y officeFabian Imaz
 

Similaire à Novedades en Desarrollo en SharePoint 2013 (20)

Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
 
Novedades en BCS en SharePoint 2013
Novedades en BCS en SharePoint 2013Novedades en BCS en SharePoint 2013
Novedades en BCS en SharePoint 2013
 
SharePoint 2010 Introducción para Desarrolladores
SharePoint 2010 Introducción para DesarrolladoresSharePoint 2010 Introducción para Desarrolladores
SharePoint 2010 Introducción para Desarrolladores
 
Sharepoint server 2010 - La nueva colaboración
Sharepoint server 2010  - La nueva colaboraciónSharepoint server 2010  - La nueva colaboración
Sharepoint server 2010 - La nueva colaboración
 
¿Es posible extender a SharePoint 2013? Probablemente en más de una forma…
¿Es posible extender a SharePoint 2013? Probablemente en más de una forma…¿Es posible extender a SharePoint 2013? Probablemente en más de una forma…
¿Es posible extender a SharePoint 2013? Probablemente en más de una forma…
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con REST
 
144 Rest Web Services
144 Rest Web Services144 Rest Web Services
144 Rest Web Services
 
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint onlineAplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint online
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NET
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
CLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptxCLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptx
 
SharePoint 2010 Client Object Model
SharePoint 2010 Client Object ModelSharePoint 2010 Client Object Model
SharePoint 2010 Client Object Model
 
introduccion a Ajax
introduccion a Ajaxintroduccion a Ajax
introduccion a Ajax
 
Introducción a ASP.NET Web API
Introducción a ASP.NET Web APIIntroducción a ASP.NET Web API
Introducción a ASP.NET Web API
 
Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4
 
Aplicaciones Web
Aplicaciones WebAplicaciones Web
Aplicaciones Web
 
Novedades en SharePoint 2013
Novedades en SharePoint 2013Novedades en SharePoint 2013
Novedades en SharePoint 2013
 
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
 
Integración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxIntegración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptx
 
Como crear add ins hibridas para share point y office
Como crear add ins hibridas para share point y officeComo crear add ins hibridas para share point y office
Como crear add ins hibridas para share point y office
 

Plus de Juan Carlos Gonzalez

Governance in SharePoint Premium:What's in the box?
Governance in SharePoint Premium:What's in the box?Governance in SharePoint Premium:What's in the box?
Governance in SharePoint Premium:What's in the box?Juan Carlos Gonzalez
 
Seguridad en Power Platform - Que opciones tengo
Seguridad en Power Platform - Que opciones tengoSeguridad en Power Platform - Que opciones tengo
Seguridad en Power Platform - Que opciones tengoJuan Carlos Gonzalez
 
Boost your Teams Meetings to the next level with Teams Premium
Boost your Teams Meetings to the next level with Teams PremiumBoost your Teams Meetings to the next level with Teams Premium
Boost your Teams Meetings to the next level with Teams PremiumJuan Carlos Gonzalez
 
Power Platform y Teams: ¿Qué platos tengo en mi menú?
Power Platform y Teams: ¿Qué platos tengo en mi menú?Power Platform y Teams: ¿Qué platos tengo en mi menú?
Power Platform y Teams: ¿Qué platos tengo en mi menú?Juan Carlos Gonzalez
 
Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...
Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...
Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...Juan Carlos Gonzalez
 
Stream on SharePoint, an overview - JcGonzalez.pptx
Stream on SharePoint, an overview - JcGonzalez.pptxStream on SharePoint, an overview - JcGonzalez.pptx
Stream on SharePoint, an overview - JcGonzalez.pptxJuan Carlos Gonzalez
 
Shared channels in Microsoft Teams, an overview
Shared channels in Microsoft Teams, an overview Shared channels in Microsoft Teams, an overview
Shared channels in Microsoft Teams, an overview Juan Carlos Gonzalez
 
Canales Compartidos en Microsoft Teams al detalle
Canales Compartidos en Microsoft Teams al detalleCanales Compartidos en Microsoft Teams al detalle
Canales Compartidos en Microsoft Teams al detalleJuan Carlos Gonzalez
 
Digitaliza tus Aprobaciones con Approvals en Teams - JcGonzalez .pptx
Digitaliza tus Aprobaciones con Approvals en Teams - JcGonzalez .pptxDigitaliza tus Aprobaciones con Approvals en Teams - JcGonzalez .pptx
Digitaliza tus Aprobaciones con Approvals en Teams - JcGonzalez .pptxJuan Carlos Gonzalez
 
Power Platform Analytics: ¿Qué opciones tengo?
Power Platform Analytics: ¿Qué opciones tengo?Power Platform Analytics: ¿Qué opciones tengo?
Power Platform Analytics: ¿Qué opciones tengo?Juan Carlos Gonzalez
 
Analytics in Power Platform: What are my options?
Analytics in Power Platform: What are my options?Analytics in Power Platform: What are my options?
Analytics in Power Platform: What are my options?Juan Carlos Gonzalez
 
Microsoft 365 Chicago - Governing Microsoft Teams Meetings
Microsoft 365 Chicago - Governing Microsoft Teams MeetingsMicrosoft 365 Chicago - Governing Microsoft Teams Meetings
Microsoft 365 Chicago - Governing Microsoft Teams MeetingsJuan Carlos Gonzalez
 
Solicita y comparte actualizaciones con Updates en Teams
Solicita y comparte actualizaciones con Updates en TeamsSolicita y comparte actualizaciones con Updates en Teams
Solicita y comparte actualizaciones con Updates en TeamsJuan Carlos Gonzalez
 
Canales compartidos en Microsoft Teams de principio a fin
Canales compartidos en Microsoft Teams de principio a finCanales compartidos en Microsoft Teams de principio a fin
Canales compartidos en Microsoft Teams de principio a finJuan Carlos Gonzalez
 
Analytics en Power Platform: ¿Qué opciones tengo?
Analytics en Power Platform: ¿Qué opciones tengo?Analytics en Power Platform: ¿Qué opciones tengo?
Analytics en Power Platform: ¿Qué opciones tengo?Juan Carlos Gonzalez
 
Shared channels in Microsoft Teams, an overview - JcGonzalez.pptx
Shared channels in Microsoft Teams, an overview - JcGonzalez.pptxShared channels in Microsoft Teams, an overview - JcGonzalez.pptx
Shared channels in Microsoft Teams, an overview - JcGonzalez.pptxJuan Carlos Gonzalez
 
Governing Microsoft Teams Meetings: What are my options?
Governing Microsoft Teams Meetings: What are my options?Governing Microsoft Teams Meetings: What are my options?
Governing Microsoft Teams Meetings: What are my options?Juan Carlos Gonzalez
 
Power Platform y Teams: ¿Qué platos tengo en mi menú?
Power Platform y Teams: ¿Qué platos tengo en mi menú?Power Platform y Teams: ¿Qué platos tengo en mi menú?
Power Platform y Teams: ¿Qué platos tengo en mi menú?Juan Carlos Gonzalez
 
Digitalize your Approval processes with approvals in Microsoft Teams
Digitalize your Approval processes with approvals in Microsoft TeamsDigitalize your Approval processes with approvals in Microsoft Teams
Digitalize your Approval processes with approvals in Microsoft TeamsJuan Carlos Gonzalez
 

Plus de Juan Carlos Gonzalez (20)

Governance in SharePoint Premium:What's in the box?
Governance in SharePoint Premium:What's in the box?Governance in SharePoint Premium:What's in the box?
Governance in SharePoint Premium:What's in the box?
 
Seguridad en Power Platform - Que opciones tengo
Seguridad en Power Platform - Que opciones tengoSeguridad en Power Platform - Que opciones tengo
Seguridad en Power Platform - Que opciones tengo
 
Boost your Teams Meetings to the next level with Teams Premium
Boost your Teams Meetings to the next level with Teams PremiumBoost your Teams Meetings to the next level with Teams Premium
Boost your Teams Meetings to the next level with Teams Premium
 
Stream en SharePoint en detalle
Stream en SharePoint en detalle Stream en SharePoint en detalle
Stream en SharePoint en detalle
 
Power Platform y Teams: ¿Qué platos tengo en mi menú?
Power Platform y Teams: ¿Qué platos tengo en mi menú?Power Platform y Teams: ¿Qué platos tengo en mi menú?
Power Platform y Teams: ¿Qué platos tengo en mi menú?
 
Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...
Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...
Digitaliza tus procesos de Aprobación con Approvals en Teams: ¿Qué hay de nue...
 
Stream on SharePoint, an overview - JcGonzalez.pptx
Stream on SharePoint, an overview - JcGonzalez.pptxStream on SharePoint, an overview - JcGonzalez.pptx
Stream on SharePoint, an overview - JcGonzalez.pptx
 
Shared channels in Microsoft Teams, an overview
Shared channels in Microsoft Teams, an overview Shared channels in Microsoft Teams, an overview
Shared channels in Microsoft Teams, an overview
 
Canales Compartidos en Microsoft Teams al detalle
Canales Compartidos en Microsoft Teams al detalleCanales Compartidos en Microsoft Teams al detalle
Canales Compartidos en Microsoft Teams al detalle
 
Digitaliza tus Aprobaciones con Approvals en Teams - JcGonzalez .pptx
Digitaliza tus Aprobaciones con Approvals en Teams - JcGonzalez .pptxDigitaliza tus Aprobaciones con Approvals en Teams - JcGonzalez .pptx
Digitaliza tus Aprobaciones con Approvals en Teams - JcGonzalez .pptx
 
Power Platform Analytics: ¿Qué opciones tengo?
Power Platform Analytics: ¿Qué opciones tengo?Power Platform Analytics: ¿Qué opciones tengo?
Power Platform Analytics: ¿Qué opciones tengo?
 
Analytics in Power Platform: What are my options?
Analytics in Power Platform: What are my options?Analytics in Power Platform: What are my options?
Analytics in Power Platform: What are my options?
 
Microsoft 365 Chicago - Governing Microsoft Teams Meetings
Microsoft 365 Chicago - Governing Microsoft Teams MeetingsMicrosoft 365 Chicago - Governing Microsoft Teams Meetings
Microsoft 365 Chicago - Governing Microsoft Teams Meetings
 
Solicita y comparte actualizaciones con Updates en Teams
Solicita y comparte actualizaciones con Updates en TeamsSolicita y comparte actualizaciones con Updates en Teams
Solicita y comparte actualizaciones con Updates en Teams
 
Canales compartidos en Microsoft Teams de principio a fin
Canales compartidos en Microsoft Teams de principio a finCanales compartidos en Microsoft Teams de principio a fin
Canales compartidos en Microsoft Teams de principio a fin
 
Analytics en Power Platform: ¿Qué opciones tengo?
Analytics en Power Platform: ¿Qué opciones tengo?Analytics en Power Platform: ¿Qué opciones tengo?
Analytics en Power Platform: ¿Qué opciones tengo?
 
Shared channels in Microsoft Teams, an overview - JcGonzalez.pptx
Shared channels in Microsoft Teams, an overview - JcGonzalez.pptxShared channels in Microsoft Teams, an overview - JcGonzalez.pptx
Shared channels in Microsoft Teams, an overview - JcGonzalez.pptx
 
Governing Microsoft Teams Meetings: What are my options?
Governing Microsoft Teams Meetings: What are my options?Governing Microsoft Teams Meetings: What are my options?
Governing Microsoft Teams Meetings: What are my options?
 
Power Platform y Teams: ¿Qué platos tengo en mi menú?
Power Platform y Teams: ¿Qué platos tengo en mi menú?Power Platform y Teams: ¿Qué platos tengo en mi menú?
Power Platform y Teams: ¿Qué platos tengo en mi menú?
 
Digitalize your Approval processes with approvals in Microsoft Teams
Digitalize your Approval processes with approvals in Microsoft TeamsDigitalize your Approval processes with approvals in Microsoft Teams
Digitalize your Approval processes with approvals in Microsoft Teams
 

Novedades en Desarrollo en SharePoint 2013

  • 1. ¡SharePoint 2013 como plataforma de desarrollo: Novedades! Juan Carlos González (@jcgm1978) MVP SharePoint Server http://geeks.ms/blogs/ciin jgonzalez@gruposodercan.es
  • 2. Agenda  Modelo de Objetos en Cliente (CSOM)  Programación con el CSOM  API REST de SharePoint 2013  Operaciones CRUD con Sitios, Listas y Elementos de Lista
  • 3. Modelo de Objetos en Cliente  En SharePoint 2010: _vti_bin/client.svc Servidor Execute Cliente Query Microsoft.SharePoint Sabor .Client.Silverlight.dll Sabor Sabor .NET Silverlight JavaScript Microsoft.SharePoint .Client.dll SP.js Código personalizado
  • 4. Modelo de Objetos en Cliente  En SharePoint 2013:  Se extiende el servicio client.svc con capacidades REST:  Se soporta acceso directo al servicio desde clients REST  Acepta peticiones HTTP GET, PUT y POST  Implementado de acuerdo al protocolo OData  Nuevas APIs:  Para interactuar con servicios: Search Taxonomy Feeds Publishing Sharing Workflow E- Discovery IRM Analytics Business Data  Para aplicaciones Windows Phone
  • 5. Modelo de Objetos en Cliente  Arquitectura de la API remota de SharePoint 2013: _api es un Nuevo alias para _vti_bin/client.svc Servidor Execute Cliente OData Query Sabor Sabor Sabor .NET Silverlight JavaScript Código personalizado
  • 6. Modelo de Objetos en Cliente  ¿Qué pasa con ListData.svc?  Sigue estando disponible  Se garantiza compatibilidad hacía atrás: para migración de aplicaciones en cliente  Para nuevas aplicaciones, no se debería usar
  • 7. Programación con el CSOM Código JavaScript Navegador Respuesta JSON MO JavaScript MO Petición XML Servidor Proxy Client.svc Respuesta JSON (_api) Proxy Petición XML BD MO manejado contenidos Cliente manejado Código C# o VB.NET SharePoint
  • 8. Programación con el CSOM  En SharePoint Foundation  Sin cambios significativos, más allá del soporte REST  Se ha añadido el soporte REST a la API existente  En SharePoint Server  Se han añadido nuevas APIs para interactuar con servicios
  • 9. Programación con el CSOM  Ejemplo – Uso del servicio de traducciones: using (MO_Cliente.ClientContext ctx = new MO_Cliente.ClientContext( "http://c4431163311/")) { Console.WriteLine( "Extensiones de archivos soportadas"); IEnumerable<string> ieFileExtensions = MO_TRCliente.TranslationJob.EnumerateSupportedFileExtensions(ctx); ctx.ExecuteQuery(); foreach (string item in ieFileExtensions) { Console.Write(item + ", "); } Console.WriteLine(); Console.WriteLine("Idiomas soportados"); IEnumerable<string> ieIdiomas= MO_TRCliente.TranslationJob.EnumerateSupportedLanguages(ctx); ctx.ExecuteQuery(); foreach (string item in ieIdiomas) { Console.Write(item + ", "); } }
  • 10. Programación con el CSOM  Ejemplo – Uso del servicio de búsqueda: using (ClientContext ctx = new ClientContext("http://spfes")) { KeywordQuery query = new KeywordQuery(ctx); query.QueryText = "SharePoint"; SearchExecutor searchExecutor = new SearchExecutor(ctx); ClientResult<ResultTableCollection> rcc = searchExecutor.ExecuteQuery(query); ctx.ExecuteQuery(); foreach (var rccRow in rcc.Value[0].ResultRows) { Console.WriteLine("Titulo: " + rccRow["Title"] + " - Ruta: " + rccRow["Path"] + " - Fecha: " + rccRow["Write"]); } }
  • 11. API REST de SharePoint 2013  ¿Por qué REST?  + simple y sencillo de usar:  vs Servicos Web clásicos (SOAP)  Mayor productividad cuando se usa JavaScript y jQuery  Los resultados se pueden devolver en formatos JSON y ATOM  Minimiza la barrera de entrada a diferentes tipos de clientes potenciales  Cada consulta se envía con una URL única
  • 12. API REST de SharePoint 2013  URLs REST en SharePoint 2013:  Las URLs para el CSOM pueden ir a través de _api  Se elimina la referencia a client.svc de la URL  Se puede reemplazar la URL:  http://contososerver/_vti_bin/client.svc/web  Por http://consotoserver/_api/web
  • 13. API REST de SharePoint 2013  Mapeo de objetos a recursos:  Ejemplos de URLs REST apuntando a sitios de SharePoint:  _api/web/lists  _api/web/lists/getByTitle(„Announcements‟)  _api/web/getAvailableWebTemplates(lcid=1033)  Ejemplos de URLs REST apuntado a servicios de SharePoint:  Servicio de Traducción:  http://<servername>/_api/TranslationJob.EnumerateSupportedLanguages  http://<servername>/_api/TranslationJob.EnumerateSupportedFileEXtensions  Servicio de búsquedas:  http://<servername>/_api/search/query?querytext='Test'
  • 14. API REST de SharePoint 2013  Consultas REST desde código manejado:  Usar HttpWebRequest y HttpWebResponse  Consultar el XML usando XDocument.Descendants
  • 15. API REST de SharePoint 2013  Consultas REST desde código manejado:  Para servicios la misma filosofía string sURLConsulta = "http://c4431163311" + "/_api/TranslationJob.EnumerateSupportedLanguages"; Uri uRESTService = new Uri(sURLConsulta); //Petición REST HttpWebRequest hwrPeticion = (HttpWebRequest)WebRequest.Create(uRESTService); hwrPeticion.Credentials = CredentialCache.DefaultNetworkCredentials; hwrPeticion.Accept = "application/atom+xml"; //Envío de la petición al servidor HttpWebResponse hwrRespuesta = (HttpWebResponse)hwrPeticion.GetResponse(); StreamReader srReader = new StreamReader(hwrRespuesta.GetResponseStream()); //Procesando la respuesta XDocument xdDoc = XDocument.Load(hwrRespuesta.GetResponseStream()); XNamespace xnEspacioNombres = "http://schemas.microsoft.com/ado/2007/08/dataservices"; Console.WriteLine(xdDoc.ToString()); var eIdiomas = xdDoc.Descendants(xnEspacioNombres+ "element"); //….
  • 16. API REST de SharePoint 2013  Las operaciones CRUD requieren el uso de Form Digest:  Es un “valor especial” creado por medio de criptografía  Se utiliza para proteger contra ataques de tipo “Replay attack”  Las páginas de SharePoint disponen de un control que mantiene “Form Digest”  Los clientes de servicios web tienen que adquirir de forma separada “Form Digest”. Por ejemplo, se puede hacer a través de _vti_bin/sites.asmx
  • 17. API REST de SharePoint 2013  Creación de elementos de SharePoint:  Para crear una lista, es necesario:  Parsear la URL que apunta a la colección de listas: _api/web/lists  Añadir una cabecera X-RequestDigest que incluye el valor de “Form Digest”  Fijar el método HTTP a POST  Crear el documento XML que contiene la información de la lista a crear
  • 18. API REST de SharePoint 2013  Creación de elementos de SharePoint: //The body of the REST request is ASCII encoded and inserted into the request stream. string listPostBody = "{'__metadata':{'type':'SP.List'}, 'Title':'" + newListName + "', 'BaseTemplate': 100}"; byte[] listPostData = System.Text.Encoding.ASCII.GetBytes(listPostBody); HttpWebRequest listRequest = (HttpWebRequest)HttpWebRequest.Create(sharepointUrl.ToString() + "/_api/lists"); listRequest.Method = "POST"; listRequest.ContentLength = listPostBody.Length; listRequest.ContentType = "application/json;odata=verbose"; listRequest.Accept = "application/json;odata=verbose"; listRequest.Headers.Add("Authorization", "Bearer " + accessToken); listRequest.Headers.Add("X-RequestDigest", formDigest); Stream listRequestStream = listRequest.GetRequestStream(); listRequestStream.Write(listPostData, 0, listPostData.Length); listRequestStream.Close(); HttpWebResponse listResponse = (HttpWebResponse)listRequest.GetResponse();
  • 19. Uso de la API REST de SharePoint 2013
  • 20. Aprende de los expertos  Descárgate CompartiMOSS:  http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
  • 21. Descuentos Campus MVP 10% de descuento en todos nuestros cursos y libros hasta el 31 de diciembre Introduce el cupón PECIIN12SN al realizar tu compra en nuestra tienda online.
  • 22. Prueba SharePoint a tope  CloudShare:  http://www.cloudshare.com/  Disponen de varias plantillas de SharePoint 2013 listas para probar 
  • 23. Nos vemos en los foros  Foro de desarrollo:  http://social.msdn.microsoft.com/Forums/es-es/mossdeves/threads  Foro de IT  http://social.technet.microsoft.com/Forums/es-ES/mosses/threads  Foro de Office 365:  http://community.office365.com/es-es/default.aspx
  • 24.
  • 25. GRACIAS POR SU ATENCIÓN