Introduzione

CAML (Collaborative Application Markup Language) è il linguaggio absato su XML scelto per la famiglia SharePoint per definire e/o visualizzare i dati. Esitono dei set di tag che permettono di definire elementi come Liste e Content Type, e set di tag per visualizzare i dati creando il necessario codice HTML.

Utilizzo

Sviluppando soluzioni per SharePoint, è spesso necessario andare ad agire direttamente sui file di definizione degli elementi del sito, i file Elements.xml. Ecco un esempio di codice CAML per una lista:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ListTemplate
		Name="vocibudget"
		DisplayName="$Resources:vocibudget_ListTemplateDisplayName;"
		Description="$Resources:vocibudget_ListTemplateDescription;"
		Type="100"
		BaseType="0"
		Default="False"
		OnQuickLaunch="False"
		Category="Custom Lists"
		DisableAttachments="True"
		DisallowContentTypes="True"
		VersioningEnabled="False"
		FolderCreation="False"
		EnableModeration="False"
		SecurityBits="22"
		Sequence="1000"
		Image="/_layouts/images/itgen.png"
		Hidden="False"
		HiddenList="False"
		FeatureId="f2e3812d-2ea9-45dc-a68a-b1d0669403f9" />
</Elements>

Il problema maggiore per gli sviluppatori, sta nel fatto che non esiste (nativamente) intellisense, e sapere a memoria tutti i tag e tutti gli attributi è un vero problemino.

Abilitazione di Intellisense

Vecchia soluzione

Per risolvere si può importare in Visual Studio lo schema per SharPoint presente nel file wss.xsd.

Ecco la procedura per effetuare l’operazione:

  1. Creare un file xml (scegliete voi il nome) con il seguente codice:
    <?xml version="1.0" encoding="utf-8" ?>
    <SchemaCatalog xmlns="http://schemas.microsoft.com/xsd/catalog">
      <Schema href="%VSInstallDir%/xml/schemas/wss.xsd"
              targetNamespace="http://schemas.microsoft.com/sharepoint" />
    </SchemaCatalog>
    
  2. Mettete questo file nella cartella %VSInstallDir%\Xml\Schemas\
  3. Prendete il file wss.xsd dalla cartella di SharePoint
    %SPInstallDir%\14\TEMPLATE\XML e copiatelo nella cartella di prima
  4. Riavviate VisualStudio

%VSInstallDir% è la cartella di installazione di Visual Sudio.
(Es.: “C:\Program Files (x86)\Microsoft Visual Studio 10.0”)

%SPInstallDir% è la cartella di installazione di SharePoint.
(Es.: “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions” sul server)

Ecco il risultato:

Standard Intellisense

Standar Intellisense



Come potere notare è il normalissimo Intellisense dell’ambiente di sviluppo, che però non fornisce molto aiuto rigurado il significato dei molti attributi dei tag.


Nuova soluzione: CAML.NET Intellisense

SharePoint Architects, Inc. ha rilasciato questa extension completamente free, che permette di avere un intellisense avanzato per Visual Studio 2010. Sia per scrivere query per ercuerare i dati di SharePoint, che per costruire componenti personalizzati, con CAML.NET la scrittura del codice sarà molto più veloce.
Ecco una schermata di esempio:

CAML.NET Intellisense ScreenShot

CAML.NET Intellisense ScreenShot

Consiglio vivamente di scaricare questo tool, che potete farlo da VisualStudioGallery di MSDN, o anche direttamente da Visual Studio utilizzando “Gestione Estensioni” dal menù “Srumenti”