수색…


비고

개념적 계층 구조

SharePoint 개념적 계층 구조에서 사이트 모음사이트 를 포함하며 차례로 목록 을 포함 합니다 . 사이트 모음 ( SPSite )에는 명시적인 UI가 없지만 항상 루트 수준 사이트 ( RootWeb 속성을 통해 액세스 할 수 있음)와 해당 루트 사이트 아래에 추가 하위 사이트가 항상 포함되어 있습니다. 사이트 또는 웹 ( SPWeb )에는 UI가 있으며 목록 / 문서 라이브러리 ( SPList ), 웹 파트가있는 페이지 및 항목 / 문서 ( SPListItem )가 포함되어 있습니다.

서버 측주의 사항

  • Visual Studio 프로젝트에서 SharePoint 서버 쪽 개체 모델을 사용하는 응용 프로그램을 만들려면 Framework Assemblies 아래에 나열된 Microsoft.SharePoint 어셈블리에 대한 참조를 추가해야합니다.
  • 서버 측 개체 모델 (완전 신뢰)을 사용하는 응용 프로그램은 SharePoint를 호스팅하는 Windows Server에서만 실행할 수 있습니다.
  • 응용 프로그램이 실행되고있는 SharePoint 서버가 아닌 다른 SharePoint 서버에는 연결할 수 없습니다.

Hello World (사이트 제목 얻기)

2013 년

SharePoint 2013 및 최신 버전은 64 비트 전용이므로 어셈블리 / 프로그램도 64 비트 프로세서 용으로 빌드해야합니다.

프로젝트가 생성 된 직후 플랫폼 대상모든 CPU 에서 x64로 전환해야합니다. 그렇지 않으면 오류가 발생합니다.

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

전체 SharePoint 팜에서 반복

SharePoint 웹 서버에서 실행 된 PowerShell 사용 :

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

목록 항목 검색

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

페이징을 사용하여 항목 검색

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

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

목록 항목 만들기

새 목록 항목을 만들 때 문자열 배열과 비슷한 구문을 사용하여 필드를 설정할 수 있습니다. 이 필드는 즉시 작성되지 않으며 목록 스키마에 의해 정의됩니다. 이 필드 (또는 열)가 서버에 존재해야합니다. 그렇지 않으면 create가 실패합니다. 모든 목록 항목에는 제목 필드가 있습니다. 일부 목록에는 항목이 목록에 게시되기 전에 작성해야하는 필수 입력란이있을 수 있습니다.

이 예에서 목록은 공지 사항 템플릿을 사용하고 있습니다. 제목 필드 외에도 목록에는 발표의 내용을 표시 할 본문 필드가 있습니다.

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
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow