Suche…


Bemerkungen

Konzeptionelle Hierarchie

In der Sharepoint - konzeptuellen Hierarchie enthalten Websitesammlungen Websites, die wiederum Listen enthalten. Eine SPSite ( SPSite ) hat keine explizite Benutzeroberfläche, enthält jedoch immer eine Site auf Stammebene (auf die über die Eigenschaft RootWeb ) und möglicherweise zusätzliche Unterwebsites unter dieser Root-Site. Eine Site oder Web ( SPWeb ) hat eine Benutzeroberfläche und enthält Listen / Dokumentbibliotheken ( SPList ), Seiten mit Webparts und Elemente / Dokumente ( SPListItem ).

Vorsichtsmaßnahmen auf dem Server

  • Um eine Anwendung zu erstellen, die das serverseitige SharePoint-Objektmodell verwendet, müssen Sie in Ihrem Visual Studio-Projekt einen Verweis auf die Microsoft.SharePoint-Assembly hinzufügen, die unter Framework Assemblies aufgeführt ist.
  • Anwendungen, die das serverseitige Objektmodell (vollständig vertrauenswürdig) verwenden, können nur auf einem Windows Server ausgeführt werden, der SharePoint hostet.
  • Sie können keine Verbindung zu einem anderen SharePoint-Server als dem herstellen, auf dem die Anwendung ausgeführt wird.

Hallo Welt (Website-Titel erhalten)

2013

SharePoint 2013 und neuere Versionen sind nur 64-Bit, daher muss die Assembly / das Programm auch für einen 64-Bit-Prozessor erstellt werden.

Direkt nach der Erstellung Ihres Projekts müssen Sie das Plattformziel von Any CPU auf x64 umstellen, andernfalls tritt ein Fehler auf.

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);
            }
        }
    }
}

Durchlaufen der gesamten SharePoint-Farm

Verwenden von PowerShell, das von einem SharePoint-Webserver ausgeführt wird:

$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()
        }
    }
}

Listenelemente abrufen

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
    }
}

Rufen Sie Elemente mit Paging ab

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);
}

Liste per URL abrufen

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);
}

Listenelement erstellen

Beim Erstellen eines neuen Listenelements können die Felder mit einer Syntax ähnlich der String-Arrays festgelegt werden. Beachten Sie, dass diese Felder nicht direkt erstellt werden und vom Schema der Liste definiert werden. Diese Felder (oder Spalten) müssen auf dem Server vorhanden sein, andernfalls schlägt die Erstellung fehl. Alle Listenelemente haben das Titelfeld. Einige Listen enthalten möglicherweise erforderliche Felder, die ausgefüllt werden müssen, bevor das Element in der Liste veröffentlicht wird.

In diesem Beispiel verwendet die Liste die Ankündigungsvorlage. Neben dem Titelfeld enthält die Liste das Textfeld, in dem der Inhalt der Ankündigung in der Liste angezeigt wird.

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow