Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porSarita Manriquez Modificado hace 10 años
2
Mario Cortés Flores mcortes@renacimiento.com http://blogs.renacimiento.com/mcortes Consultor SharePoint en Renacimiento Coordinador SUGES Coautor de:
3
LINQ to SharePoint Relaciones entre listas SPMetal Modificación de datos Post-Deployment Extension LINQ To SharePoint fuera de SharePoint!! Limitaciones y rendimiento
4
Permite manejar las listas de SharePoint desde clases de.NET Las listas se convierten en entidades y las columnas en propiedades Se implementa con Microsoft.SharePoint.Linq var clientesDeMadrid = from customer in Customers where customer.City == "Madrid" where customer.City == "Madrid" select customer; select customer;
5
Hasta ahoraBeneficios con LINQ Las consultas CAML son complejas Propenso a errores Realizar consultas cruzadas es complejo Mejor rendimiento Sintaxis de consultas más natural Los datos están fuertemente tipados Es sencillo realizar consultas cruzadas SPList listaDeFacturas = SPContext.Current.Web.Lists["Facturas"]; SPQuery spQuery = new SPQuery(); spQuery.Query = string.Format(@" spQuery.Query = string.Format(@" 1 1 ", listaDeFacturas.Fields["Cliente"].InternalName); ", listaDeFacturas.Fields["Cliente"].InternalName); GridView1.DataSource = listaDeFacturas.GetItems(spQuery); GridView1.DataBind(); ClientesDataContext dxClientes = new ClientesDataContext("http://win- u6irsic8d95/sitios/linq/"); var listaFacturas = from facturas in dxClientes.Facturas where facturas.Cliente.CIF == "11111111H" select new { facturas.Id, facturas.Título, NombreCliente = facturas.Cliente.Título, facturas.Cliente.Ciudad }; GridView1.DataSource = listaFacturas; GridView1.DataBind();
6
Las consultas LINQ se transforman en consultas CAML Podemos seguir trabajando con CAML Se han ampliado las clases: SPQuery SPSiteDataQuery Para construir las entidades de LINQ se utiliza el ejecutable SPMetal
7
Las relaciones entre listas se construyen mediante columnas de tipo Lookup Las columnas Lookup se han mejorado incorporando: Integridad referencial entre listas Projected fields Posibilidad de hacer JOINS Consideraciones de seguridad
8
Se ha modificado CAML para soportar JOINS aunque es más fácil hacerlo desde LINQ Para hacer un JOIN es necesario que al menos una de las columnas sea del tipo Lookup var listaFacturas = from facturas in dxClientes.Facturas join clientes in dxClientes.Clientes join clientes in dxClientes.Clientes on facturas.Cliente.Id equals clientes.Id on facturas.Cliente.Id equals clientes.Id select new { select new { facturas.Id, facturas.Título, NombreCliente = clientes.Título };
9
Construye las entidades y el contexto de LINQ to SharePoint a partir de la estructura de un sitio Se encuentra en …\14\bin\SPMetal.exe Admite un fichero XML para personalizar la generación SPMETAL.EXE /web:http://win-u6irsic8d95/sitios/linq /namespace:Clientes /code:SPClientes.cs
10
Se puede realizar acciones de edición, nuevo y borrado Aconsejable hacer un solo SubmitChanges para todos los cambios Mantiene un control de concurrencia, por defecto optimista Se puede extender la modificación para agregar nuestra propia funcionalidad
11
Extiende la estructura de las listas sin recompilar el assembly original mediante ICustomMapping Podemos mapear nuevas columnas a nuevas propiedades Maneja conflictos producidos en las nuevas columnas
12
LINQ To SharePoint puede ejecutarse fuera del contexto del servidor (Client Side Code) Data Services, utiliza la dll Microsoft.SharPoint.Linq.Dataservices MO cliente, mediante LINQ to Object
13
Cualquier consulta que pueda traducirse directamente a CAML es eficiente Algunas operaciones de LINQ no están soportadas FacturasDocumento factura = dxClientes.Facturas.First( f => f.Cliente.CIF == "11111111H"); FacturasDocumento factura = dxClientes.Facturas. ToList ().First( f => f.Cliente.CIF == "11111111H"); Ineficiente Eficiente
14
Más eficiente si desactivamos el tracking Máximo de 6 projected fields en join Límite en el número de elementos devueltos: Usuario normal: 5.000 elementos Superusuario: 20.000 elementos
15
Mario Cortés Flores mcortes@renacimiento.com http://blogs.renacimiento.com/mcortes
16
©2009 Microsoft, Microsoft Dynamics, the Office logo, and Your potential. Our passion. are trademarks of the Microsoft group of companies. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.