Your SlideShare is downloading. ×
Novedades en Desarrollo en SharePoint 2013
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Novedades en Desarrollo en SharePoint 2013

608
views

Published on

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

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


1 Comment
1 Like
Statistics
Notes
  • 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
No Downloads
Views
Total Views
608
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ¡SharePoint 2013 comoplataforma 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.svcServidor ExecuteCliente 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.svcServidor ExecuteCliente 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 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. 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 RESTde SharePoint 2013
  • 20. Aprende de los expertos Descárgate CompartiMOSS:  http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
  • 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. 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. GRACIAS POR SU ATENCIÓN

×