Monday, November 16, 2009

Guida SharePoint – I content type. Cosa sono e come utilizzarli.

Precedenti post:
 
I Content Type (CT) sono un’altra caratteristica nata con SharePoint 2007.
Come il nome suggerisce, definiscono il tipo contenuto dalle librerie presenti sui nostri SharePoint site.
Aiutandoci con le definizioni trovate nelle msdn possiamo dire che: I Content Types fanno parte dei nuovi concetti chiave di Windows SharePoint Service 3.0 utilizzati per tutte le funzionalità e i servizi offerti.

Il concetto dietro i content type è la creazione di collezioni di settaggi riusabili i quali permettono di lavorare sui metadati e il comportamento dei documenti/item in un modo centralizzato e riusabile.
I content type tornano utili quando vogliamo salvare/visualizzare nella stessa list o document library più tipi differenti.
Fate riferimento a questo link: http://office.microsoft.com/en-us/sharepointtechnology/HA100974931033.aspx per la creazione di un nuovo Content Type.
Una delle capacità dei CT è l’ereditarietà.
Potremmo creare un nuovo CT ereditando, ad esempio, dal tipo Folder in modo da aggiungere i settaggi che ci tornano utili per la nostra lista.
Possiamo fare riferimento alla seguente pagina Creating Content Types Based on Other Content Types.


Il nuovo tipo creato, il quale ha ereditato il CT Folder, potrebbe dividere gli items all’interno della lista per folders cliente.
Nel qual caso per ottenere gli items all’interno della folder faremo:
namespace ConsoleApplication1
{
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;

class Program
{
static void Main(string[] args)
{
SPSite site = new SPSite(args[0]);
SPWeb web = site.AllWebs["Web Test"];
SPList parentList = web.Lists["Clienti"];

foreach (SPListItem order in parentList.Folders)
{
Console.WriteLine("Ordine : {0}", order["Nome"]);
Console.WriteLine("Numero : {0}", order["Numero ordine"]);

SPQuery orderItemsQuery = new SPQuery();
orderItemsQuery.Folder = order.Folder;
SPListItemCollection orderItems = parentList.GetItems(orderItemsQuery);

foreach (SPListItem orderItem in orderItems)
{
Console.WriteLine("Item {0}: {1} {2}", orderItem["OrderItem"], orderItem["SKU"], orderItem["Title"]);
}
}
Console.ReadLine();
}
}
}
Enjoy

No comments:

Post a Comment