Acceso a datos con Sharepoint Rubén Toribio https://twitter.com/Rtoribiog es.linkedin.com/in/rubentg/ rtoribiogallardo@gmail.com
Indice Modelo Servidor vs Modelo Cliente Modelo Cliente : CSOM , JSOM , REST , ODATA Customizaciones por defecto Herramientas de desarrollo Preguntas
Sharepoint y su Modelo de desarrollo Acceso a datos modelo Servidor Acceso a datos modelo Cliente Cual escogemos ?
Modelo Servidor Pros Contras La representación se realiza en el servidor garantiza los mismos resultados en todos los navegadores Rendimiento de la representación se puede controlar como organización gestiona la infraestructura de servidor Todas las funcionalidades del modelo de Objetos Requiere recopilación y redistribución de paquetes de soluciones (WSP), cuando los cambios de código que puede retrasar los resultados que se suban en la Producción. Exceso de carga en la pagina al ir a buscar los datos a servidor
Modelo Cliente Pros Contras Se puede agregar un script a la página como contenido y ejecutado sin compilación Se puede modificar el DOM por defecto de Sharepoint Reduce la carga del servidor llevando la carga al cliente Se pueden realizar modificaciones rapidas en entornos empresariales Se pueden enriquecer la interfaz usuario con Jquery u otras librerias Confiar en el navegador del usuario sera compatible o permitido usar codigo cliente Complicado reproducir bugs , porque cada navegador puede producir diferentes resultados Hay limitaciones de funcionalidades comparadas con el modelo servidor Perdida de soporte cuando se migra a una nueva versión
CSOM : Client Side object Model .Net Client Object Model Silverlight Client Object Model Javascript Object Model Rest/Odata endpoints Ejemplos
CSOM : Client Side object Model
CSOM – Client Side Object Model Nuevas mejoras Agregando acceso a todas estas características: Business Data Search User Profile Publishing Taxonomy Workflow
.Net Client Object Model Se programa en C# Usamos las librerias Microsoft.SharePoint.Client.Runtime.dll y Microsoft.SharePoint.Client.dll
.Net Client Object Model Diferencias en la nomenclatura Client Server ClientContext SPContext Site SPSite Web SPWeb List SPList ListItem SPListItem Field SPField
.Net Client Object Model Funcionamiento Metodos Load() ExecuteQuery() ExecuteQueryAsync() El método Load no carga nada , solo informa la propiedad que vas a cargar al ejecutar el ExecuteQuery Antes de llamar al ExecuteQuery solo regisra las llamadas pero aún no hay trafico El ExecuteQuery se encarga de hacer la llamada y recibir la respuesta de servidor
.Net Client Object Model Ejemplo
.Net Client Object Model Aplicación de consola ejemplo
Silverlight Client Object Model Modelo de objetos muy similar a .Net Orientado a Silverlight Publicaciones del archivo .xap Visualizador de Silverlight incorporado
Javascript Object Model Se programa en Javascript Librerias necesarias SP.js , SP.Core.js , SP.Runtime.js <script type="text/ecmascript" src="/_layouts/15/SP.core.debug.js" /> <script type="text/ecmascript" src="/_layouts/15/SP.runtime.debug.js" /> <script type="text/ecmascript" src="/_layouts/15/SP.debug.js" /> SP.SOD.RegisterSod("SP.js", "\_layouts\SP.js"); En caso de no estar en context
Javascript object Model Nomenclaturas Habilitar Intellisense /// <reference name="MicrosoftAjax.js" /> /// <reference path="~/_layouts/15/init.js" /> /// <reference path="~/_layouts/15/SP.Core.js" /> /// <reference path="~/_layouts/15/SP.Runtime.js" /> /// <reference path="~/_layouts/15/SP.UI.Dialog.js" /> /// <reference path="~/_layouts/15/SP.js" />
Javascript Object Model Ejemplo
Rest/Odata Ejemplo Representational State Transfer Open Data Protocol Protocolo de Acceso a datos definido por Microsoft , no limitado a bases de datos sino a otros servicios o conectores
Rest/Odata endpoints Servicio Web se puede accede desde Javascript y C# Operaciones : Get / Post / Merge , Put / Delete
Rest/Odata endpoints C# JavaScript
Rest/Odata endpoints Estructura
Rest/Odata endpoints Puntos de Acceso
Rest/Odata Endpoints Especificar valores en query string Algunas columnas no soportadas
Operaciones: Seleccionar Ordenar Paginar Omitir Filtrar Comienza por Contiene Dia/Mes/Año/Hora/Minuto/Segundos Expandir
Rest/Odata Endpoints Ejemplo
Rest/Odata Endpoint JSON XML
Elección de Framework JSOM : Operaciones CRUD Rest : Operaciones Get
Core API Referencia de API de programación http://msdn.microsoft.com/en-us/library/office/dn268594(v=office.15).aspx
Developer Code Samples Ejemplos http://code.msdn.microsoft.com/site/search?f%5B0%5D.Type=SearchText&f% 5B0%5D.Value=sharepoint&pageIndex=1 http://msdn.microsoft.com/en-us/library/office/jj901637(v=office.15).aspx
Customizaciones Opciones de customización de la información del Producto Display Templates Ej : http://en.share-gate.com/blog/image-slider-with-sharepoint-2013- search-results JSLink Ej: http://www.sharepointnutsandbolts.com/2013/01/using-jslink-to- change-ui-of-sharepoint_20.html
Herramientas de desarrollo Google Chrome Debug Fiddler Postman Visual studio Addons Javascript Parser /Jslint JsonViewer SPRemoteAPIExplorer 2.0