SharePoint 2010 offre molte nuove opportunità per gli sviluppatori che usano Visual Studioi 2010. Spicca,sia per lati positivi che per lati negativi, LINQ to SharePoint.
Non fatevi prendere troppo dall'entusiasmo e soprattutto non pensate di poterci sostituire CAML. l'implementazione di LINQ non è al livello di quella di LINQ to SQL per cui scordatevi operazioni complesse come JOIN arbitrari dato che il JOIN supportato è quello fra le liste che hanno dei campi lookup e nemmento tanti. Oltre a tante altre limitazioni una da tenere ben presente è che lo scope di un datacontext è la site collection. Come al solito si fanno le cose a metà...Su questo fatto delle cose a metà in SharePoint credo che ritornerò abbastanza spesso in futuro.
LINQ to SharePoint semplifica notevolmente la vita al programmatore SharePoint dato che lo esenta (con le limitazioni del caso) dal dover costruire complessi frammenti CAML per interrogare le liste ma una sintassi in-line simile all'SQL e soprattutto gli evita di dover interagire con degli oggetti (i valori delle colonne della lista) che l'Object Model SharePoint nativo restituisce come semplico oggetti non tipizzati dato che LINQ lavora su di una entità mappata sulla lista SharePoint. Ovviamente la mappatura (una classe a tutti gli effetti) deve essere generata a partire dalla lista SharePoint e LINQ to SharePoint fornisce un apposito tool denominato SPMETAL.EXE. Purtroppo (anche qui cose sempre a metà) SPMETAL non è di fabbrica integrato in Visual Studio 2010.
Fortunatamente è da qualche tempo disponibile nella sezione di codice di MSDN un Add-In per Visual Studio 2010 che copre questa lacuna
LINQ to SharePoint DSL Extension per Visual Studio 2010 permette di avere direttamente in Visual Studio 2010 permette di generare direttamente le classi necessarie a LINQ to SharePoint rendendo disponibile un nuovo elemento inseribile in un progetto SharePoint.
In dettaglio il tool offre queste funzionalità:
- Visual Studio 2010 Extension per gestire i files di schema *.l2sp e generare il codice relativo
- "SharePoint Data Model" Visual Studio item type
- Un Wizard per costruire il mapping model
- Template di sito predefiniti: blank model, team site, publishing site, enterprise wiki, blog, document workspace, ...
- Un Wizard per caricicare automaticamente i modelli da un web site SharePoint 2010
- Visual LINQ to SharePoint entities designer
- Generazione automatica di codice basata su T4 text templating
- Supporta C# e VB.net