Buscar..


Observaciones

Jerarquía conceptual

En la jerarquía conceptual de SharePoint, las colecciones de sitios contienen sitios , que a su vez contienen listas . Una colección de sitios ( SPSite ) no tiene una IU explícita, pero siempre contiene un sitio de nivel raíz (accesible a través de la propiedad RootWeb ) y posiblemente subsitios adicionales bajo ese sitio raíz. Un sitio o web ( SPWeb ) tiene una IU y contiene listas / bibliotecas de documentos ( SPList ), páginas con elementos web y elementos / documentos ( SPListItem ).

Advertencias del lado del servidor

  • Para crear una aplicación que use el modelo de objetos del lado del servidor de SharePoint, en su proyecto de Visual Studio, debe agregar una referencia al conjunto Microsoft.SharePoint que se enumera en Ensamblajes de marco.
  • Las aplicaciones que utilizan el Modelo de objetos del lado del servidor (plena confianza) solo pueden ejecutarse en un servidor Windows que hospeda SharePoint.
  • No puede conectarse a un servidor de SharePoint que no sea en el que se está ejecutando la aplicación.

Hola Mundo (obteniendo el título del sitio)

2013

SharePoint 2013 y las versiones más nuevas son solo de 64 bits, por lo que el ensamblaje / programa también debe compilarse para un procesador de 64 bits.

Inmediatamente después de crear su proyecto, es necesario cambiar el objetivo de la Plataforma de Cualquier CPU a x64, de lo contrario se producirá un error.

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

Recorriendo todo el conjunto de SharePoint

Usando PowerShell ejecutado desde un servidor web de 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()
        }
    }
}

Recuperar los elementos de la lista

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

Recuperar elementos utilizando la paginación

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

Obtener la lista por 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);
}

Crear un elemento de lista

Al crear un nuevo elemento de la lista, sus campos se pueden configurar utilizando una sintaxis similar a las matrices de cadenas. Tenga en cuenta que estos campos no se crean sobre la marcha y están definidos por el esquema de la lista. Estos campos (o columnas) deben existir en el servidor, de lo contrario la creación fallará. Todos los elementos de la lista tendrán el campo Título. Algunas listas pueden tener campos obligatorios que deben completarse antes de que el elemento se publique en la lista.

En este ejemplo, la lista está utilizando la plantilla de Anuncios. Además del campo de título, la lista incluye el campo Cuerpo que mostrará el contenido del anuncio en la 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow