novedades en desarrollo en sharepoint 2013

Post on 11-May-2015

632 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

¡SharePoint 2013 como plataforma de desarrollo:

Novedades!

Juan Carlos González (@jcgm1978)MVP SharePoint Serverhttp://geeks.ms/blogs/ciinjgonzalez@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:

Sabor JavaScript

Sabor Silverlight

Sabor .NET

Código personalizado

Cliente

Servidor

_vti_bin/client.svc

Execute Query

Microsoft.SharePoint.Client.dll

Microsoft.SharePoint.Client.Silverl

ight.dll

SP.js

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:

Cliente

Servidor

_api es un Nuevo alias para _vti_bin/client.svc

OData

Sabor JavaScript

Sabor Silverligh

t

Sabor .NET

Código personalizado

Execute Query

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

Client.svc

(_api)

MO Servidor

BD contenido

s

MO JavaScript

Proxy

MO manejado

Proxy

Código C# o VB.NET

Código JavaScript

Petición XML

Respuesta JSON

Respuesta JSON

Petición XML

Navegador

Cliente manejado

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 descuentoen todos nuestros cursos y libros hasta el 31 de diciembre

Introduce el cupón PECIIN12SN al realizar tu compraen 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

top related