Ricerca…


Osservazioni

Gerarchia concettuale

Nella gerarchia concettuale di SharePoint, le raccolte siti contengono siti , che a loro volta contengono elenchi . Una raccolta siti ( SPSite ) non ha RootWeb utente esplicita, ma contiene sempre un sito di livello principale (accessibile tramite la proprietà RootWeb ) ed eventualmente altri siti secondari in tale sito radice. Un sito o web ( SPWeb ) ha un'interfaccia utente e contiene elenchi / raccolte documenti ( SPList ), pagine con webparts e articoli / documenti ( SPListItem ).

Avvertenze sul lato server

  • Per creare un'applicazione che utilizza il modello di oggetti lato server di SharePoint, nel progetto di Visual Studio è necessario aggiungere un riferimento all'assembly Microsoft.SharePoint che è elencato in Framework Assembly.
  • Le applicazioni che utilizzano il modello Server Side Object (full-trust) possono essere eseguite solo su un server Windows che ospita SharePoint.
  • Non è possibile connettersi a un server SharePoint diverso da quello su cui è in esecuzione l'applicazione.

Hello World (ottenere il titolo del sito)

2013

SharePoint 2013 e le versioni più recenti sono solo a 64 bit e quindi l'assembly / programma deve essere creato anche per il processore a 64 bit.

Subito dopo la creazione del progetto, è necessario spostare il target della piattaforma da Any CPU a x64 altrimenti si verificherà un errore.

using System;
using Microsoft.SharePoint;

namespace StackOverflow
{
    class Samples
    {
        static void Main()
        {    
            using (SPSite site = new SPSite("http://server/sites/siteCollection"))
            using (SPWeb web = site.OpenWeb())
            {  
                Console.WriteLine("Title: {0} Description: {1}", web.Title, web.Description);
            }
        }
    }
}

Ciclo continuo attraverso l'intera farm di SharePoint

Utilizzo di PowerShell eseguito da un server Web di SharePoint:

$wacoll = get-spwebapplication
foreach($wa in $wacoll){
    if($wa.IsAdministrationWebApplication -eq $false){
        foreach($site in $wa.Sites){
            foreach($web in $site.AllWebs){
                # your code here
                $web.Dispose()
            }
            $site.Dispose()
        }
    }
}

Recupera elementi di elenco

using (SPSite site = new SPSite("http://server/sites/siteCollection"))
using (SPWeb web = site.OpenWeb())
{
    SPList list = web.Lists["Some list"];

    // It is always better and faster to query list items with GetItems method with
    // empty SPQuery object than to use Items property
    SPListItemCollection items = list.GetItems(new SPQuery());
    foreach (SPListItem item in items)
    {
        // Do some operation with item
    }
}

Recupera elementi usando il paging

using (SPSite site = new SPSite("http://server/sites/siteCollection"))
using (SPWeb web = site.OpenWeb())
{
    SPList list = web.Lists["Some list"];
    SPQuery query = new SPQuery()
    {
        RowLimit = 100
    };

    do
    {
        SPListItemCollection items = list.GetItems(query);
        foreach (SPListItem item in items)
        {
            // Do some operation with item
        }

        // Assign current position to SPQuery object
        query.ListItemCollectionPosition = items.ListItemCollectionPosition;
    } while (query.ListItemCollectionPosition != null);
}

Ottieni la lista per url

using (SPSite site = new SPSite("http://server/sites/siteCollection"))
using (SPWeb web = site.OpenWeb())
{
    string listUrl = string.Format("{0}{1}", web.ServerRelativeUrl, "Lists/SomeList");
    SPList list = web.GetList(listUrl);
}

Creazione di una voce di elenco

Quando si crea un nuovo elemento di lista, i suoi campi possono essere impostati usando la sintassi simile agli array di stringhe. Nota che questi campi non sono creati al volo e sono definiti dallo schema della lista. Questi campi (o colonne) devono esistere sul server altrimenti la creazione fallirà. Tutte le voci dell'elenco avranno il campo Titolo. Alcuni elenchi possono avere campi obbligatori che devono essere compilati prima che l'articolo venga pubblicato nell'elenco.

In questo esempio, la lista sta usando il modello degli annunci. Oltre al campo del titolo, l'elenco include il campo Corpo che visualizzerà il contenuto dell'annuncio nella lista.

using (SPSite site = new SPSite("http://server/sites/siteCollection"))
using (SPWeb web = site.OpenWeb())
{
    SPList list = web.Lists["Announcements"];

    SPListItem item = list.AddItem();
    item[SPBuiltInFieldId.Title] = "My new item";
    item[SPBuiltInFieldId.Body] = "Hello World!";
    item.Update();
}


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow