SlideShare una empresa de Scribd logo
1 de 29
Desarrollando Soluciones para Microsoft SharePoint Server 2010 Utilizando el Modelo de Objeto de Cliente Andrés Iturralde Senior Consultant - IKOM aiturralde@ikom.cl http://aiturralde.com
Tecnologías de Datos Listasfuertementetipadas Listasdebilmentetipadas Métodos, MOSS ClientOM Web Services REST APIs Cliente Plataforma de Datos Farm Site List Data External Lists ServerOM Listasdebilmentetipadas Servidor LINQ Listasfuertementetipadas Nuevo en 2010 Mejorado
Agenda Modelo de objetos de cliente Lo básico Queries Ámbito de Excepciones Cargacondicional Accesodatos en Silverlight cross-site
Modelo de objetos de cliente: Lo básico Librería de ladoclienteparallamarremotamente a SharePoint Subconjunto de objetos del lado del servidor Usable en JavaScript, .net CLR, Silverlight CLR Requests son encoladosparamejorrendimiento Usadopor  UI de SharePoint UI paraoperacionescomoeliminación en batch
Empezando con el modelo de objetos de cliente .NET CLR:  14SAPI  Silverlight: 14EMPLATEAYOUTSlientBin Empaquetado en .XAP JavaScript:  Usa <ScriptLink>/SP.SOD.executeparaagregararchivos JS
Empezando: 3 cosas a saber 1. ClientContextes el objeto central 2. Antes de leer unapropiedad, debespreguntarporella 3. Todos los request son enviados en un batch clientContext = new ClientContext(“http://MiSitio”); clientContext.Load(list); clientContext.ExecuteQuery();
HolaMundo!  Modelo de objetos JavaScript Modelo de objetos Silverlight
C# private ClientContext context; private Web web; private void TestButton_Click(object sender, RoutedEventArgs e) { 	context = ClientContext.Current; 	web = context.Web;context.Load(web); context.ExecuteQueryAsync(TitleRetrievedContinue, null); } private void TitleRetrievedContinue(object sender, ClientRequestSucceededEventArgsargs) { web.Title = web.Title + " + Silverlight"; web.Update(); context.ExecuteQueryAsync(SayDone, null); }
JavaScript var context; var web; function testButtonClick() { 	context = new SP.ClientContext(); 	web = context.get_web(); context.load(web) context.executeQueryAsync(titleRetrievedContinue); } function titleRetrievedContinue() { web.set_title(web.get_title() + " + JavaScript"); web.update(); context.executeQueryAsync(sayDone); }
Accesando a datos Aplicación Cliente Aplicación Cliente WPF/WinForm/Office Silverlight JavaScript API Cliente Cliente ExecuteQuery() XML JSON Servidor Web Service Client.svc Aplicación Servidor SharePoint API Data SharePoint
Objetosimportantes en Modelo de objetoscliente Site Web ContentType Change List Navigation Form NavigationNode View UserCustomAction Field RoleDefinition ListItem RoleAssignment Folder User Interface WorkflowAssociation Data and Schema File WorkflowTemplate Logic WebPart Security
Items no cubiertospormodelo de objetoscliente ,[object Object]
Personas
Búsqueda
MetadaEmpresarial
Web services REST Excel
Publicación
Administración,[object Object]
Obtención de Consultas Por default, .Load obtendralaspropiedadesmás simples de un objeto Explicitamenteesnecesarioobtenerobjetoscliente o coleccioneshijas PuedesusarLinqparadefinir la forma de tu query Quépropiedadesincluir Que sub-objetosretornar Items de listasaúnnecesitanusar queries CAML
PropiedadesWeb: Operaciones Default boolAllowRssFeeds boolAllowRssFeeds boolAllowRssFeeds Group AssociatedMemberGroup DateTimeCreated DateTimeCreated ContentTypeCollectionContentTypes DateTimeCreated User CurrentUser String Description String Description String Description GuidId GuidId GuidId FieldCollectionFields List Lists boolRecycleBinEnabled List Lists boolRecycleBinEnabled boolRecycleBinEnabled Folder RootFolder String Title Folder RootFolder String Title String Title clientContext.Load(web); clientContext.Load(web.RootFolder); clientContext.Load(web.Lists);
Queries avanzadosusandoLinQ
LinQ var query = from list in clientContext.Web.Lists          where list.Title != null          select list;   var result = clientContext.LoadQuery(query); clientContext.ExecuteQuery();
Método clientContext.Load(oList,list=> list.Fields    .Where(field => field.Hidden == false && field.Filterable== true)); clientContext.ExecuteQuery();
Modos de Consulta: Fill vs. Query “Fill”: context.Load(object, paramsLinqExpression) Llena los objetos en el contexto: in-place “Query”:context.LoadQuery(IQueryable) Usaconsultalinqpararetornarobjetospersonalizados No llenados en el contexto
Lo básico de sintaxistipoMétodo Usa el método.Where para: Filtrar los items retornados en unacolección Usa el método.Includepara: Explicitamenteseleccionarpropiedades u objetoshijos a retornar Usa el método.Take para: Restringir el número de items retornados
Queries y Filtros
Tópicosavanzados del modelo de objetoscliente Manejo de excepciones Sirveparareaccionar a excepciones en un batch Scope Condicional + Retornos Sirveparachequearcondiciones antes de hacercargas, en el servidordentro de un batch Para significarcomo los métodos son filtradosutiliza scopes y sentencias “using” (IDisposable)
Manejo de excepciones y cargascondicionales
Accesodatos cross-site con Silverlight El problema: Quiereshostearaplicacionespoderosassobre SharePoint queusen data en otroservidor Quieresminimizar el impacto en el deploy de SharePoint Silverlight es (generalmente) limitado a llamadassobre un dominio Unasolución: hospeda XAP en el servidorexterno y delega un token de usuario

Más contenido relacionado

Destacado

Top 10 sharepoint interview questions with answers
Top 10 sharepoint interview questions with answersTop 10 sharepoint interview questions with answers
Top 10 sharepoint interview questions with answerswillhoward459
 
Comparison of SharePoint 2010 and SharePoint 2013
Comparison of SharePoint 2010 and SharePoint 2013Comparison of SharePoint 2010 and SharePoint 2013
Comparison of SharePoint 2010 and SharePoint 2013Ian Woodgate
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOMMark Rackley
 
SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)Kashif Imran
 
Introducción a Android y conexión con SharePoint
Introducción a Android y conexión con SharePointIntroducción a Android y conexión con SharePoint
Introducción a Android y conexión con SharePointAlbert Lozano Ciller
 
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonCSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonKunaal Kapoor
 

Destacado (7)

Top 10 sharepoint interview questions with answers
Top 10 sharepoint interview questions with answersTop 10 sharepoint interview questions with answers
Top 10 sharepoint interview questions with answers
 
Comparison of SharePoint 2010 and SharePoint 2013
Comparison of SharePoint 2010 and SharePoint 2013Comparison of SharePoint 2010 and SharePoint 2013
Comparison of SharePoint 2010 and SharePoint 2013
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOM
 
SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)
 
Introducción a Android y conexión con SharePoint
Introducción a Android y conexión con SharePointIntroducción a Android y conexión con SharePoint
Introducción a Android y conexión con SharePoint
 
JSOM and java script practices
JSOM and java script practicesJSOM and java script practices
JSOM and java script practices
 
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonCSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
 

Similar a Desarrollando soluciones SharePoint 2010 con ClientOM

Novedades en Desarrollo en SharePoint 2013
Novedades en Desarrollo en SharePoint 2013Novedades en Desarrollo en SharePoint 2013
Novedades en Desarrollo en SharePoint 2013Juan Carlos Gonzalez
 
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
 
Prepara tus apps de SharePoint y Office 365 para el futuro
Prepara tus apps de SharePoint y Office 365 para el futuroPrepara tus apps de SharePoint y Office 365 para el futuro
Prepara tus apps de SharePoint y Office 365 para el futuroMiguel Tabera
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Juan Pablo
 
Dynamics saturday madrid 2019 web api
Dynamics saturday madrid 2019   web apiDynamics saturday madrid 2019   web api
Dynamics saturday madrid 2019 web apiDemian Raschkovan
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014Adrian Diaz Cervera
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHAlejandro Esquiva Rodriguez
 
Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jspdtbadboy0
 
CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010Comunidad SharePoint
 
Introducción a Javascript: Formularios
Introducción a Javascript: FormulariosIntroducción a Javascript: Formularios
Introducción a Javascript: FormulariosHéctor Estigarribia
 
Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......SaulSalinasNeri
 
Modelos de API Para El Diseño de Servicios
Modelos de API Para El Diseño de ServiciosModelos de API Para El Diseño de Servicios
Modelos de API Para El Diseño de ServiciosJavier Vélez Reyes
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con RESTAlex Puig
 
01 Ext Js Introduccion
01 Ext Js   Introduccion01 Ext Js   Introduccion
01 Ext Js IntroduccionMayer Horna
 
SP2010 evolución vs evolución
SP2010 evolución vs evoluciónSP2010 evolución vs evolución
SP2010 evolución vs evolucióngoreorti
 
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
 

Similar a Desarrollando soluciones SharePoint 2010 con ClientOM (20)

Novedades en Desarrollo en SharePoint 2013
Novedades en Desarrollo en SharePoint 2013Novedades en Desarrollo en SharePoint 2013
Novedades en Desarrollo en SharePoint 2013
 
Novedades en BCS en SharePoint 2013
Novedades en BCS en SharePoint 2013Novedades en BCS en SharePoint 2013
Novedades en BCS en SharePoint 2013
 
Prepara tus apps de SharePoint y Office 365 para el futuro
Prepara tus apps de SharePoint y Office 365 para el futuroPrepara tus apps de SharePoint y Office 365 para el futuro
Prepara tus apps de SharePoint y Office 365 para el futuro
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010
 
Presentacion ajax
Presentacion   ajaxPresentacion   ajax
Presentacion ajax
 
Dynamics saturday madrid 2019 web api
Dynamics saturday madrid 2019   web apiDynamics saturday madrid 2019   web api
Dynamics saturday madrid 2019 web api
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014
 
Ajax Huancayo
Ajax HuancayoAjax Huancayo
Ajax Huancayo
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSH
 
Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jsp
 
CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010
 
Introducción a Javascript: Formularios
Introducción a Javascript: FormulariosIntroducción a Javascript: Formularios
Introducción a Javascript: Formularios
 
Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......
 
Google apps engine
Google apps engineGoogle apps engine
Google apps engine
 
introduccion a Ajax
introduccion a Ajaxintroduccion a Ajax
introduccion a Ajax
 
Modelos de API Para El Diseño de Servicios
Modelos de API Para El Diseño de ServiciosModelos de API Para El Diseño de Servicios
Modelos de API Para El Diseño de Servicios
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con REST
 
01 Ext Js Introduccion
01 Ext Js   Introduccion01 Ext Js   Introduccion
01 Ext Js Introduccion
 
SP2010 evolución vs evolución
SP2010 evolución vs evoluciónSP2010 evolución vs evolución
SP2010 evolución vs evolución
 
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
 

Más de Andrés Iturralde

Msdn optimizando la performance en la web
Msdn   optimizando la performance en la webMsdn   optimizando la performance en la web
Msdn optimizando la performance en la webAndrés Iturralde
 
Asincronía en la web: Conociendo las novedades de ASP .NET 4.5
Asincronía en la web: Conociendo las novedades de ASP .NET 4.5Asincronía en la web: Conociendo las novedades de ASP .NET 4.5
Asincronía en la web: Conociendo las novedades de ASP .NET 4.5Andrés Iturralde
 
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Andrés Iturralde
 
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
 
Maraton SharePoint 2010, nuevas características para desarrolladores
Maraton SharePoint 2010, nuevas características para desarrolladoresMaraton SharePoint 2010, nuevas características para desarrolladores
Maraton SharePoint 2010, nuevas características para desarrolladoresAndrés Iturralde
 
Hasta donde vas a llegar con SharePoint 2010
Hasta donde vas a llegar con SharePoint 2010Hasta donde vas a llegar con SharePoint 2010
Hasta donde vas a llegar con SharePoint 2010Andrés Iturralde
 
Una mirada en 360° a SharePoint 2010
Una mirada en 360° a SharePoint 2010Una mirada en 360° a SharePoint 2010
Una mirada en 360° a SharePoint 2010Andrés Iturralde
 
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...André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
 
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
 
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010Andrés Iturralde
 
Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...
Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...
Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...Andrés Iturralde
 
SharePoint 2007 Para Desarrolladores
SharePoint 2007 Para DesarrolladoresSharePoint 2007 Para Desarrolladores
SharePoint 2007 Para DesarrolladoresAndrés Iturralde
 
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Andrés Iturralde
 
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
 

Más de Andrés Iturralde (18)

Msdn optimizando la performance en la web
Msdn   optimizando la performance en la webMsdn   optimizando la performance en la web
Msdn optimizando la performance en la web
 
Asincronía en la web: Conociendo las novedades de ASP .NET 4.5
Asincronía en la web: Conociendo las novedades de ASP .NET 4.5Asincronía en la web: Conociendo las novedades de ASP .NET 4.5
Asincronía en la web: Conociendo las novedades de ASP .NET 4.5
 
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
 
SharePoint 2010 - Introducción para Desarrolladores
SharePoint 2010 - Introducción para DesarrolladoresSharePoint 2010 - Introducción para Desarrolladores
SharePoint 2010 - Introducción para Desarrolladores
 
Maraton SharePoint 2010, nuevas características para desarrolladores
Maraton SharePoint 2010, nuevas características para desarrolladoresMaraton SharePoint 2010, nuevas características para desarrolladores
Maraton SharePoint 2010, nuevas características para desarrolladores
 
Hasta donde vas a llegar con SharePoint 2010
Hasta donde vas a llegar con SharePoint 2010Hasta donde vas a llegar con SharePoint 2010
Hasta donde vas a llegar con SharePoint 2010
 
Una mirada en 360° a SharePoint 2010
Una mirada en 360° a SharePoint 2010Una mirada en 360° a SharePoint 2010
Una mirada en 360° a SharePoint 2010
 
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...
 
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
 
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...
 
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010
 
Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...
Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...
Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...
 
SharePoint 2007 Para Desarrolladores
SharePoint 2007 Para DesarrolladoresSharePoint 2007 Para Desarrolladores
SharePoint 2007 Para Desarrolladores
 
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
 
SharePoint 2010 Introducción para Desarrolladores
SharePoint 2010 Introducción para DesarrolladoresSharePoint 2010 Introducción para Desarrolladores
SharePoint 2010 Introducción para Desarrolladores
 
Windows 7 Gadget
Windows 7 GadgetWindows 7 Gadget
Windows 7 Gadget
 
Computacion Paralela Vs2010
Computacion Paralela Vs2010Computacion Paralela Vs2010
Computacion Paralela Vs2010
 
Charla Desarrollo Ocs
Charla Desarrollo OcsCharla Desarrollo Ocs
Charla Desarrollo Ocs
 

Desarrollando soluciones SharePoint 2010 con ClientOM

  • 1. Desarrollando Soluciones para Microsoft SharePoint Server 2010 Utilizando el Modelo de Objeto de Cliente Andrés Iturralde Senior Consultant - IKOM aiturralde@ikom.cl http://aiturralde.com
  • 2. Tecnologías de Datos Listasfuertementetipadas Listasdebilmentetipadas Métodos, MOSS ClientOM Web Services REST APIs Cliente Plataforma de Datos Farm Site List Data External Lists ServerOM Listasdebilmentetipadas Servidor LINQ Listasfuertementetipadas Nuevo en 2010 Mejorado
  • 3. Agenda Modelo de objetos de cliente Lo básico Queries Ámbito de Excepciones Cargacondicional Accesodatos en Silverlight cross-site
  • 4. Modelo de objetos de cliente: Lo básico Librería de ladoclienteparallamarremotamente a SharePoint Subconjunto de objetos del lado del servidor Usable en JavaScript, .net CLR, Silverlight CLR Requests son encoladosparamejorrendimiento Usadopor UI de SharePoint UI paraoperacionescomoeliminación en batch
  • 5. Empezando con el modelo de objetos de cliente .NET CLR: 14SAPI Silverlight: 14EMPLATEAYOUTSlientBin Empaquetado en .XAP JavaScript: Usa <ScriptLink>/SP.SOD.executeparaagregararchivos JS
  • 6. Empezando: 3 cosas a saber 1. ClientContextes el objeto central 2. Antes de leer unapropiedad, debespreguntarporella 3. Todos los request son enviados en un batch clientContext = new ClientContext(“http://MiSitio”); clientContext.Load(list); clientContext.ExecuteQuery();
  • 7. HolaMundo! Modelo de objetos JavaScript Modelo de objetos Silverlight
  • 8. C# private ClientContext context; private Web web; private void TestButton_Click(object sender, RoutedEventArgs e) { context = ClientContext.Current; web = context.Web;context.Load(web); context.ExecuteQueryAsync(TitleRetrievedContinue, null); } private void TitleRetrievedContinue(object sender, ClientRequestSucceededEventArgsargs) { web.Title = web.Title + " + Silverlight"; web.Update(); context.ExecuteQueryAsync(SayDone, null); }
  • 9. JavaScript var context; var web; function testButtonClick() { context = new SP.ClientContext(); web = context.get_web(); context.load(web) context.executeQueryAsync(titleRetrievedContinue); } function titleRetrievedContinue() { web.set_title(web.get_title() + " + JavaScript"); web.update(); context.executeQueryAsync(sayDone); }
  • 10. Accesando a datos Aplicación Cliente Aplicación Cliente WPF/WinForm/Office Silverlight JavaScript API Cliente Cliente ExecuteQuery() XML JSON Servidor Web Service Client.svc Aplicación Servidor SharePoint API Data SharePoint
  • 11. Objetosimportantes en Modelo de objetoscliente Site Web ContentType Change List Navigation Form NavigationNode View UserCustomAction Field RoleDefinition ListItem RoleAssignment Folder User Interface WorkflowAssociation Data and Schema File WorkflowTemplate Logic WebPart Security
  • 12.
  • 18.
  • 19. Obtención de Consultas Por default, .Load obtendralaspropiedadesmás simples de un objeto Explicitamenteesnecesarioobtenerobjetoscliente o coleccioneshijas PuedesusarLinqparadefinir la forma de tu query Quépropiedadesincluir Que sub-objetosretornar Items de listasaúnnecesitanusar queries CAML
  • 20. PropiedadesWeb: Operaciones Default boolAllowRssFeeds boolAllowRssFeeds boolAllowRssFeeds Group AssociatedMemberGroup DateTimeCreated DateTimeCreated ContentTypeCollectionContentTypes DateTimeCreated User CurrentUser String Description String Description String Description GuidId GuidId GuidId FieldCollectionFields List Lists boolRecycleBinEnabled List Lists boolRecycleBinEnabled boolRecycleBinEnabled Folder RootFolder String Title Folder RootFolder String Title String Title clientContext.Load(web); clientContext.Load(web.RootFolder); clientContext.Load(web.Lists);
  • 22. LinQ var query = from list in clientContext.Web.Lists          where list.Title != null          select list;   var result = clientContext.LoadQuery(query); clientContext.ExecuteQuery();
  • 23. Método clientContext.Load(oList,list=> list.Fields .Where(field => field.Hidden == false && field.Filterable== true)); clientContext.ExecuteQuery();
  • 24. Modos de Consulta: Fill vs. Query “Fill”: context.Load(object, paramsLinqExpression) Llena los objetos en el contexto: in-place “Query”:context.LoadQuery(IQueryable) Usaconsultalinqpararetornarobjetospersonalizados No llenados en el contexto
  • 25. Lo básico de sintaxistipoMétodo Usa el método.Where para: Filtrar los items retornados en unacolección Usa el método.Includepara: Explicitamenteseleccionarpropiedades u objetoshijos a retornar Usa el método.Take para: Restringir el número de items retornados
  • 27. Tópicosavanzados del modelo de objetoscliente Manejo de excepciones Sirveparareaccionar a excepciones en un batch Scope Condicional + Retornos Sirveparachequearcondiciones antes de hacercargas, en el servidordentro de un batch Para significarcomo los métodos son filtradosutiliza scopes y sentencias “using” (IDisposable)
  • 28. Manejo de excepciones y cargascondicionales
  • 29. Accesodatos cross-site con Silverlight El problema: Quiereshostearaplicacionespoderosassobre SharePoint queusen data en otroservidor Quieresminimizar el impacto en el deploy de SharePoint Silverlight es (generalmente) limitado a llamadassobre un dominio Unasolución: hospeda XAP en el servidorexterno y delega un token de usuario
  • 30. Página en el navegador (http://sharepoint/page.aspx) 2. Páginaesinstanciada con un token especial Silverlight XAP (http://scrum/myscrum.xap) 3. XAP llama a un Web Service personalizado en el servidorhuesped con el Token Cliente Servidor http://sharepoint http://scrum 1. Web Part esinsertado en la página con markup queindicaque el server huéspedes http://scrum 4. Servidor de aplicacionespuededireccionar request al modelo de objeto de cliente de parte del usuario
  • 31. Acceso a datos cross-site: conceptosprincipales Aplicaciónprincipal SPUserquerepresenta la cuenta con el request entrante Permisosefectivos de Silverlight con Modelo de objetocliente = Permisos de la aplicación principal y usuarioiniciador XML de la aplicación Contieneinformación del servidor de alojamiento Proveedor de aplicacionesexternas Puedeserinstalado en el servidoralojadorparaproveerexperienciapersonalizada al agregaraplicaciones Redireccionador de request Códigoinstalado en el servidorremotopararedireccionar requests
  • 32. Tecnologías de Datos Listasfuertementetipadas Listasdebilmentetipadas Métodos, MOSS ClientOM Web Services REST APIs Cliente Plataforma de Datos Farm Site List Data External Lists ServerOM Listasdebilmentetipadas Servidor LINQ Listasfuertementetipadas Nuevo en 2010 Mejorado
  • 33.