by Fabio
20. aprile 2009 17.56
Sviluppando un’applicazione per utilizzo personale in SharePoint 2007 ho toccato con mano la problematica di decidere se utilizzare tabelle su DB o utilizzare le liste di SharePoint 2007.
Le liste possono essere equiparate a un’ insieme di righe e colonne, proprio come le tabelle di un DB relazionale.
Il vantaggio principale delle liste è quello di avere un modo semplice per gestire i dati.
Grazie alle viste e alle web part, è virtualmente possibile creare l’interfaccia di amministrazione senza scrivere una riga di codice.
A differenza invece di un database, dove bisogna realizzare sia la la parte di accesso ai dati che l'UI per amministrarli.
Inoltre, con le liste è possibile registrare sia workflow sia gestori di eventi in modo semplice.
Neo delle liste è quello di non supportare tipi di relazioni complesse come può avvenire con le tabelle su DB ma solo relazioni di tipo lookup.
Per quanto riguarda le tabelle, i vantaggi principali sono le transazioni ACID.
Quindi se la business logic richiede transazioni o comunque il modello dati è complesso, allora un DB è la soluzione.
Altrimenti se il modello non è eccessivamente complesso, non si ha necessità di avere transazioni, ma è richiesto per esempio l’uso di workflow allora le liste sono un’ottima scelta.
Una raccomandazione del team di SharePoint 2007 è quella di non superare il limite di 2000 item per ogni container (dove per container si intende sia la root di una lista che una folder o una sub-folder) per le liste di SharePoint 2007 o meglio, quella di non avere più di 2000 item per vista singola.
A tal proposito questo link torna molto utile.
Questa tabella riassume i principali vantaggi e svantaggi di entrambe le tecnologie.
| Vantaggi | Tabelle | Liste |
| Gestire relazioni di tipo complesso | Si | No |
| Gestire un numero elevato di elementi | Si | No |
| Gestire le transazioni | Si | No |
| Facile da utilizzare | No | Si |
| Supporto nativo ai WorkFlow | No | Si |
| Interfaccia standard di utilizzo | No | Si |
| Facilità di inserimento di dati binari | No | Si |