La versione 3.0 di SharePoint introduce il concetto di Content Type, vale a dire una struttura logica di alto livello che consente di raggruppare un insieme di Site Columns (introdotte nello script #990). La funzionalità principale (e sicuramente la più utile) è la possibilità di fornire tipologie di contenuti diversi all'interno della stessa lista o document library, utilizzandola ad esempio per archiviare sia presentazioni PowerPoint che fogli Excel, pur mantenendo differenti strutture di metadati.
Per poter definire la struttura di un Content Type basta creare un file XML in cui si indicano i riferimenti alle singole Site Column che ne devono far parte, specificandone l'identificativo, l'internal name e se tale campo deve essere obbligatorio o meno:
<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType ID="0x01006F0D6E6D90434c239B32A2F049862E0F" Name="$Resources:CT_AspItaliaContentName" Group="$Resources:CT_AspItaliaContentGroup" Description="$Resources:CT_AspItaliaContentDesc" Version="0"> <FieldRefs> <FieldRef ID="{86313240-cf4f-11dd-ad8b-0800200c9a66}" Name="DocumentType" Required="TRUE" /> <FieldRef ID="{804a9380-cf4f-11dd-ad8b-0800200c9a66}" Name="Boss" Required="TRUE" /> <FieldRef ID="{71d28150-cf4f-11dd-ad8b-0800200c9a66}" Name="SourceCodeUrl" Required="TRUE" /> </FieldRefs> </ContentType> </Elements>
Questo file poi deve a sua volta essere referenziato all'interno di Feature.xml, tramite il nodo ElementManifest.
<?xml version="1.0" encoding="utf-8"?> <Feature Id="603c8932-7af7-45d0-a8f2-3fe16c5a56b7" Title="$Resources:FeatureTitle;" Description="$Resources:FeatureDesc;" Creator="$Resources:FeatureAuthor;" Version="1.0.0.0" Scope="Site" Hidden="FALSE" DefaultResourceFile="_Res" xmlns="http://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementManifest Location="SiteColumns\Columns.xml" /> <ElementManifest Location="ContentTypes\ASPItaliaContent.xml" /> </ElementManifests> </Feature>
Ovviamente è necessario che le Site Columns utilizzate dal Content Type siano già installate all'interno della site collection, ed è questa la ragione per cui nell'esempio proposto la Feature include anche il file di definizione di quest'ultime.
Una volta che la Feature sia stata installata ed attivata, il nuovo Content Type apparirà come nella figura seguente:
Un'ultima nota riguarda l'identificativo utilizzato; SharePoint, infatti, offre un meccanismo di ereditarietà che utilizza proprio questo attributo per determinare il tipo padre da cui il Content Type proviene. L'ID del tipo presentato in questo script inizia con i caratteri 0x01 e questo valore, ad esempio, sta ad indicare che il parent type è il tipo "Item"; ecco perché, come si può notare dall'immagine, è presente anche la colonna Title sebbene questa non sia stata menzionata nel file XML. La logica secondo la quale generare l'identificativo esula da questo script, ma chi volesse approfondire l'argomento può utilizzare la documentazione ufficiale al link
http://msdn.microsoft.com/en-us/library/aa543822.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Ricavare path e URL corrente con ASP.NET
- Utilizzare funzioni di istanza con le Azure Function
- #SQLServer #Modeling (codename Oslo) CTP di nov 2009 aggiornato per VS 2010 RC: http://u.aspitalia.com/fi
- Gestione degli eventi del controllo InputPane nella Universal Windows Platform
- Accedere a file XML remoti con ASP.NET
- Recuperare tutte le istanze di un tipo specifico con Entity Framework ed Entity SQL
- Windows Mobile 5.0 in RTM
- Taggare automaticamente un repository con un workflow di GitHub
- Eseguire comandi PowerShell da remoto su una Virtual Machine di Azure