SharePoint Services 3.0 - SPQuery Vs SPSiteDataQuery

Fino alla versione 2.0 di SharePoint, l'unico modo per effettuare delle query all'interno delle liste o delle raccolte documenti, era quello di utilizzare la classe SPQuery. Questa classe però soffre di alcuni limiti abbastanza pesanti:

  1. Possibilità di interrogare una sola lista/raccolta documenti.
  2. Possibilità di interrogare una sola cartella all'interno della lista/raccolta documenti.

Il secondo limite in particolare era piuttosto vincolante e costringeva, nel caso fosse necessario effettuare una ricerca su tutta una lista/raccolta documenti esplorando anche le sottocartelle, a creare delle viste personalizzate che esponessero tutto il contenuto senza tener conto delle cartelle.

Con la versione 3.0 questi limiti non sono stati superati ma è stata introdotta la classe SPSiteDataQuery, che offre la possibilità di effettuare delle query su più liste/raccolte documenti che si possono trovare anche su diversi WebSite a condizione che si trovino tutti nella stessa SiteCollection.

Ho provato ad utilizzarla e debbo dire che è molto utile, ci sono però alcune controindicazioni:

  1. Tutta la sintassi per configurare la classe è basata su stringhe XML e, specialmente all'inizio, non è semplicissimo venirne a capo (anche perché gli esempi non sono molti).
  2. I nomi dei campi debbono essere indicati correttamente e debbono essere presenti in tutte le liste interessate (oppure opportunamente marcati come Nullable); se si sbaglia qualcosa, non abbiamo indicazioni, l'unico effetto è quello che la DataTable restituita è priva di righe (stesso comportamento di una query che non da risultati), cosa questa che può far perdere veramente molto tempo prima di venirne a capo.

 

Technorati Tags:
«luglio»
domlunmarmergiovensab
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234