Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
¡SharePoint 2013 comoplataforma de desarrollo:      Novedades! Juan Carlos González (@jcgm1978) MVP SharePoint Server http...
Agenda Modelo de Objetos en Cliente (CSOM) Programación con el CSOM API REST de SharePoint 2013 Operaciones CRUD con S...
Modelo de Objetos en              Cliente En SharePoint 2010:                                     _vti_bin/client.svcServ...
Modelo de Objetos en              Cliente En SharePoint 2013:    Se extiende el servicio client.svc con capacidades REST...
Modelo de Objetos en             Cliente Arquitectura de la API remota de SharePoint 2013:                   _api es un N...
Modelo de Objetos en             Cliente ¿Qué pasa con ListData.svc?    Sigue estando disponible    Se garantiza compat...
Programación con el CSOM            Código JavaScriptNavegador                                 Respuesta JSON             ...
Programación con el CSOM En SharePoint Foundation    Sin cambios significativos, más allá del soporte REST    Se ha aña...
Programación con el CSOM Ejemplo – Uso del servicio de traducciones:    using (MO_Cliente.ClientContext ctx =            ...
Programación con el CSOM Ejemplo – Uso del servicio de búsqueda:    using (ClientContext ctx = new ClientContext("http://...
API REST de SharePoint 2013 ¿Por qué REST?    + simple y sencillo de usar:        vs Servicos Web clásicos (SOAP)      ...
API REST de SharePoint 2013 URLs REST en SharePoint 2013:    Las URLs para el CSOM pueden ir a través de _api    Se eli...
API REST de SharePoint 2013 Mapeo de objetos a recursos:    Ejemplos de URLs REST apuntando a sitios de SharePoint:     ...
API REST de SharePoint 2013 Consultas REST desde código manejado:    Usar HttpWebRequest y HttpWebResponse    Consultar...
API REST de SharePoint 2013 Consultas REST desde código manejado:    Para servicios la misma filosofía           string ...
API REST de SharePoint 2013 Las operaciones CRUD requieren el uso de Form Digest:    Es un “valor especial” creado por m...
API REST de SharePoint 2013 Creación de elementos de SharePoint:    Para crear una lista, es necesario:        Parsear ...
API REST de SharePoint 2013 Creación de elementos de SharePoint:  //The body of the REST request is ASCII encoded and ins...
Uso de la API RESTde SharePoint 2013
Aprende de los expertos Descárgate CompartiMOSS:    http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
Descuentos Campus MVP10% de descuentoen todos nuestros cursos y libros hasta el 31 dediciembreIntroduce el cupón PECIIN12S...
Prueba SharePoint a tope CloudShare:    http://www.cloudshare.com/    Disponen de varias plantillas de SharePoint 2013 ...
Nos vemos en los foros Foro de desarrollo:     http://social.msdn.microsoft.com/Forums/es-es/mossdeves/threads Foro de ...
GRACIAS POR SU ATENCIÓN
Novedades en Desarrollo en SharePoint 2013
Upcoming SlideShare
Loading in …5
×

Novedades en Desarrollo en SharePoint 2013

1,008 views

Published on

Presentación del webcast sobre novedades en desarrollo en SharePoint 2013 realizado en octubre de 2012.

  • Hola que tal Juan carlos yo tengo una pregunta,ahora que tenemos la version sharepoint 2013 online,¿cual seria la manera mas eficiente de generar reportes de las listas o bibliotecas?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Novedades en Desarrollo en SharePoint 2013

  1. 1. ¡SharePoint 2013 comoplataforma de desarrollo: Novedades! Juan Carlos González (@jcgm1978) MVP SharePoint Server http://geeks.ms/blogs/ciin jgonzalez@gruposodercan.es
  2. 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. 3. Modelo de Objetos en Cliente En SharePoint 2010: _vti_bin/client.svcServidor ExecuteCliente Query Microsoft.SharePoint Sabor .Client.Silverlight.dll Sabor Sabor .NET Silverlight JavaScript Microsoft.SharePoint .Client.dll SP.js Código personalizado
  4. 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. 5. Modelo de Objetos en Cliente Arquitectura de la API remota de SharePoint 2013: _api es un Nuevo alias para _vti_bin/client.svcServidor ExecuteCliente OData Query Sabor Sabor Sabor .NET Silverlight JavaScript Código personalizado
  6. 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. 7. Programación con el CSOM Código JavaScriptNavegador Respuesta JSON MO JavaScript MO Petición XML Servidor Proxy Client.svc Respuesta JSON (_api) Proxy Petición XML BD MO manejado contenidosCliente manejado Código C# o VB.NET SharePoint
  8. 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. 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. 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. 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. 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. 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. 14. API REST de SharePoint 2013 Consultas REST desde código manejado:  Usar HttpWebRequest y HttpWebResponse  Consultar el XML usando XDocument.Descendants
  15. 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. 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. 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. 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. 19. Uso de la API RESTde SharePoint 2013
  20. 20. Aprende de los expertos Descárgate CompartiMOSS:  http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
  21. 21. Descuentos Campus MVP10% de descuentoen todos nuestros cursos y libros hasta el 31 dediciembreIntroduce el cupón PECIIN12SN al realizar tucompraen nuestra tienda online.
  22. 22. Prueba SharePoint a tope CloudShare:  http://www.cloudshare.com/  Disponen de varias plantillas de SharePoint 2013 listas para probar 
  23. 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. 24. GRACIAS POR SU ATENCIÓN

×