SharePoint 2010: Alternativas para acceder a datos (I)!

Hace un tiempo comentaba en este artículo sobre cuando se debería usar SPQuery y cuando LINQ  To SharePoint a la hora de acceder a los datos de una lista de un sitio de SharePoint. Yendo un poco más allá, además de estas dos opciones disponemos de una serie de alternativas para el acceso a datos en listas de SharePoint que incluye a ambas:

  • Mediante consultas CAML que utilicemos en objetos de tipo SPQuery y SPSiteDataQuery. El uso de CAML introduce los inconvenientes ya conocidos de que las consultas no son fáciles de construir, de que dichas consultas las definimos “pegándolas” en código lo que dificulta la depuración,etc. Ahora bien, el mayor punto a favor de CAML es que sigue siendo el corazón para realizar operaciones de acceso a datos que en SharePoint 2010 incorpora novedades ya vistas en este blog como el soporte de Joins o la posibilidad de acceder a datos externos a través de consultar listas externas. En cuanto a la diferencia entre usar SPQuery y SPSiteDataQuery, la fundamental es que con el primero sólo podremos realizar consultas a listas del sitio actual mientras que con SPSiteDataQuery podremos realizar consultas a listas de varios sitios.
  • Mediante consultas LINQ To SharePoint, que nos permite definir consultas LINQ para realizar operaciones de datos contra listas de SharePoint y que incluye soporte de Joins además de la ya consabida ventaja de que tenemos tipado fuerte en la definición de las consultas, de que disponemos de la utilidad SPMetal para generar las entidades a consultar, etc. Internamente, las consultas LINQ To SharePoint se traducen al correspondiente CAML.
  • Mediante el modelo de objetos de BCS que facilita la interacción con datos externos permitiendo de forma programática navegar entre entidades y asociaciones definidas en los modelos de BDC.

Aparte de estos tres tipos de alternativas, tenemos otras para el acceso a datos como:

  • El uso del modelo de objetos de SharePoint (en servidor y en cliente).
  • El uso de los servicios web de SharePoint.
  • El uso de la API REST de SharePoint.
  • La clase ContentIterator, que permite iterar en bloque con sitios, listas y elementos de lista superando los umbrales fijados en la consulta de listas
  • La clase ContentByQueryWebPart  que forma parte de la infraestructura de publicación de SharePoint 2010 y permite realizar consutas CAML a listas y sitios de una cierta colección de sitios.
  • La clase PortalSiteMapProvider también perteneciente a la infraestructura de publicación de SharePoint 2010 y que permite consultas objetos cacheados a nivel de colección de sitios.

Volviendo a las tres opciones iniciales, ¿Cuáles son los escenarios de uso? Pues tal y como podéis leer en la SharePoint Guidance tenemos los siguientes escenarios:

image

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *