SharePoint 도구 확장의 프로그래밍 모델 개요

업데이트: 2010년 5월

Visual Studio 2010에서 SharePoint 도구의 확장을 만드는 경우 SharePoint 도구에서 노출하는 확장성 인터페이스를 하나 이상 구현하여 시작합니다. 대부분의 경우 SharePoint 도구에서 제공하는 다른 형식을 사용하여 확장에서 기능도 구현합니다. 일부 시나리오에서는 Visual Studio 및 SharePoint에서 제공하는 다른 개체 모델의 형식을 사용할 수도 있습니다. 이러한 각 개체 모델의 용도를 이해하고 이러한 개체 모델을 서로 사용하여 SharePoint 도구의 확장을 만드는 방법을 알아야 합니다.

확장성 인터페이스를 구현하여 SharePoint 도구 확장

Visual Studio에서는 .NET Framework 4의 MEF(Managed Extensibility Framework)를 사용하여 SharePoint 도구에 대한 확장성 모델을 제공합니다. MEF는 System.ComponentModel.Composition 어셈블리에서 구현된 API로, 응용 프로그램에서 확장성 지점을 노출하고 런타임에 확장을 검색하고 로드할 수 있도록 합니다. MEF에 대한 자세한 내용은 Managed Extensibility Framework 개요를 참조하십시오.

SharePoint 도구를 확장하려면 Visual Studio에서 노출하는 확장성 인터페이스를 하나 이상 구현합니다. 또한 System.ComponentModel.Composition.ExportAttribute와 필요에 따라 추가 SharePoint 도구 관련 특성을 인터페이스 구현에 적용해야 합니다. 다음 표에는 SharePoint 도구를 확장하기 위해 구현할 수 있는 인터페이스가 나와 있습니다.

Interface

설명

ISharePointProjectItemTypeProvider

새 형식의 SharePoint 프로젝트 항목을 정의하려면 이 인터페이스를 구현합니다. 예제를 보려면 방법: SharePoint 프로젝트 항목 형식 정의를 참조하십시오.

ISharePointProjectItemTypeExtension

Visual Studio에 이미 설치되어 있는 SharePoint 프로젝트 항목의 형식을 확장하려면 이 인터페이스를 구현합니다. 예제를 보려면 방법: SharePoint 항목 확장 만들기를 참조하십시오.

ISharePointProjectExtension

SharePoint 프로젝트를 확장하려면 이 인터페이스를 구현합니다. 예제를 보려면 방법: SharePoint 프로젝트 확장 만들기를 참조하십시오.

IDeploymentStep

SharePoint 프로젝트 항목이 배포되거나 취소될 때 실행할 수 있는 새로운 배포 단계를 정의하려면 이 인터페이스를 구현합니다. 예제를 보려면 연습: SharePoint 프로젝트용 사용자 지정 배포 단계 만들기를 참조하십시오.

IExplorerNodeTypeExtension

서버 탐색기 창의 SharePoint 연결 노드 아래에 있는 기존 노드를 확장하려면 이 인터페이스를 구현합니다. 예제를 보려면 방법: 서버 탐색기에서 SharePoint 노드 확장을 참조하십시오.

IExplorerNodeTypeProvider

서버 탐색기 창의 SharePoint 연결 노드 아래에 새로운 형식의 노드를 정의하려면 이 인터페이스를 구현합니다. 예제를 보려면 방법: 서버 탐색기에서 SharePoint 노드 확장을 참조하십시오.

IFeatureValidationRule

사용자 지정 기능 유효성 검사 규칙을 정의하려면 이 인터페이스를 구현합니다. 예제를 보려면 방법: SharePoint 솔루션에 대한 사용자 지정 기능 및 패키지 유효성 검사 규칙 만들기를 참조하십시오.

IPackageValidationRule

사용자 지정 패키지 유효성 검사 규칙을 정의하려면 이 인터페이스를 구현합니다. 예제를 보려면 방법: SharePoint 솔루션에 대한 사용자 지정 기능 및 패키지 유효성 검사 규칙 만들기를 참조하십시오.

SharePoint 도구의 확장을 구현한 후에는 VSIX(Visual Studio Extension) 패키지의 확장 어셈블리를 배포하여 Visual Studio에서 확장을 검색하고 로드할 수 있도록 합니다. 자세한 내용은 Visual Studio에서 SharePoint 도구에 대한 확장 배포를 참조하십시오.

SharePoint 도구 확장에서 사용하는 개체 모델 이해

SharePoint 도구의 확장을 만들 때 사용할 수 있는 몇 가지 개체 모델은 다음과 같습니다.

  • SharePoint 도구 개체 모델. 이 개체 모델에서는 SharePoint 도구 확장과 기타 관련 형식을 만들기 위해 구현하는 확장성 인터페이스를 제공합니다.

  • Visual Studio 자동화 및 통합 개체 모델. 이러한 개체 모델을 사용하여 SharePoint 도구 개체 모델의 범위를 벗어나는 Visual Studio 기능에 액세스할 수 있습니다.

    참고

    SharePoint 프로젝트 서비스를 사용하여 SharePoint 도구 개체 모델의 일부 개체를 Visual Studio 자동화 및 통합 개체 모델의 개체로 변환하거나 그 반대로 변환할 수 있습니다. 자세한 내용은 SharePoint 프로젝트 시스템 형식과 기타 Visual Studio 프로젝트 형식 간의 변환을 참조하십시오.

  • SharePoint 서버 및 클라이언트 개체 모델. 이러한 개체 모델을 사용하여 SharePoint 사이트를 수정하여 SharePoint 도구 확장의 컨텍스트에서 SharePoint 사이트의 데이터를 검색할 수 있습니다.

SharePoint 도구 개체 모델

각 SharePoint 도구 확장에서는 SharePoint 도구 개체 모델의 형식을 사용하여 확장의 핵심 동작 및 기능을 정의합니다. 다음 표에서는 이 개체 모델에 포함된 네임스페이스에 대해 설명합니다.

어셈블리

Namespace

설명

Microsoft.VisualStudio.SharePoint.dll

Microsoft.VisualStudio.SharePoint

SharePoint 프로젝트 시스템을 확장하고 자동화하는 데 사용하는 형식을 포함합니다. 예를 들어 기본 제공 SharePoint 프로젝트 및 프로젝트 항목을 확장하거나, 고유한 프로젝트 항목을 만들 수 있습니다. 자세한 내용은 SharePoint 프로젝트 시스템 확장을 참조하십시오.

Microsoft.VisualStudio.SharePoint.Deployment

사용자 고유의 배포 단계 및 배포 구성을 만드는 등의 SharePoint 프로젝트에 대한 배포 프로세스를 확장하는 데 사용하는 형식을 포함합니다. 자세한 내용은 SharePoint 패키징 및 배포 확장을 참조하십시오.

Microsoft.VisualStudio.SharePoint.Explorer

서버 탐색기 창의 SharePoint 연결 노드 아래에 있는 노드를 확장하고 새로운 형식의 노드를 정의하는 데 사용하는 형식을 포함합니다. 자세한 내용은 서버 탐색기에서 SharePoint 연결 노드 확장을 참조하십시오.

Microsoft.VisualStudio.SharePoint.Features

SharePoint 프로젝트의 기능 정의에 액세스하는 데 사용하는 형식을 포함합니다.

Microsoft.VisualStudio.SharePoint.Packages

SharePoint 솔루션의 패키지 정의에 액세스하는 데 사용하는 형식을 포함합니다.

Microsoft.VisualStudio.SharePoint.Validation

SharePoint 프로젝트에 대한 기능 및 패키지 유효성 검사 동작을 사용자 지정하는 데 사용하는 형식을 포함합니다. 자세한 내용은 방법: SharePoint 솔루션에 대한 사용자 지정 기능 및 패키지 유효성 검사 규칙 만들기를 참조하십시오.

Microsoft.VisualStudio.SharePoint.Commands.dll

Microsoft.VisualStudio.SharePoint.Commands

사용자 지정 SharePoint 명령을 만드는 데 사용할 수 있는 형식을 포함합니다. SharePoint 명령은 SharePoint 도구 확장에서 SharePoint 서버 개체 모델을 호출하는 메서드입니다. 자세한 내용은 SharePoint 개체 모델 호출을 참조하십시오.

Microsoft.VisualStudio.SharePoint.Explorer.Extensions.dll

Microsoft.VisualStudio.SharePoint.Explorer.Extensions

SharePoint 사이트의 개별 구성 요소를 나타내는 기본 제공 서버 탐색기 노드(예: 목록, 필드 또는 콘텐츠 형식을 나타내는 노드)에 대한 정보를 가져오는 데 사용할 수 있는 형식을 포함합니다. 자세한 내용은 서버 탐색기에서 SharePoint 연결 노드 확장을 참조하십시오.

Visual Studio 자동화 개체 모델

Visual Studio 자동화 개체 모델은 Visual Studio 프로젝트와 IDE를 자동화하는 데 사용할 수 있는 API를 제공합니다. Visual Studio 개체 모델을 사용하면 SharePoint 프로젝트에 한정되지 않는 프로젝트 관련 작업을 수행하거나 Visual Studio에서 기타 일반적인 자동화 작업을 수행할 수 있습니다. 이 개체 모델은 일반적으로 Visual Studio 추가 기능 및 매크로에 많이 사용하지만 Sharepoint 도구 확장에 사용할 수도 있습니다.

Visual Studio 자동화 개체 모델의 주요 부분은 EnvDTE.dll 어셈블리에서 정의됩니다. Visual Studio 2005, Visual Studio 2008 및 Visual Studio 2010에 소개된 추가 기능은 EnvDTE80.dll, EnvDTE90.dll 및 EnvDTE100.dll 어셈블리에서 제공됩니다. Visual Studio 2010에는 이러한 어셈블리가 포함되어 있습니다.

자동화 개체 모델에 대한 자세한 내용은 Visual Studio 환경 확장자동화 및 확장성 참조를 참조하십시오.

Visual Studio 통합 개체 모델

통합 개체 모델에서는 VSPackage를 만들어 Visual Studio에 기능을 추가하는 데 사용할 수 있는 API를 제공합니다. VSPackage는 도구 창, 편집기, 디자이너, 서비스, 프로젝트 등의 사용자 지정 기능을 제공하여 Visual Studio IDE를 확장하는 모듈입니다.

기본 제공 SharePoint 도구와 함께 사용할 새 Visual Studio 기능을 추가하려는 경우 통합 개체 모델을 사용할 수 있습니다. 예를 들어 SharePoint 사이트에 대한 사용자 지정 작업을 나타내는 사용자 지정 SharePoint 프로젝트 항목을 만드는 경우 사용자 지정 작업용 디자이너를 구현하는 VSPackage를 만들 수도 있습니다. 솔루션 탐색기에서 사용자 지정 작업을 나타내는 프로젝트 항목에 상황에 맞는 메뉴 항목을 추가하여 디자이너를 사용자 지정 작업에 연결할 수 있습니다. 개발자는 사용자 지정 작업 프로젝트 항목을 마우스 오른쪽 단추로 클릭하여 디자이너를 열 수 있습니다.

이 개체 모델은 Visual Studio SDK에 포함된 어셈블리 집합에서 정의됩니다. 이 개체 모델의 주요 어셈블리로는 Microsoft.VisualStudio.Shell.dll, Microsoft.VisualStudio.Shell.Interop.dll, Microsoft.VisualStudio.OLE.Interop.dll 등이 있습니다.

통합 개체 모델에 대한 자세한 내용은 Visual Studio Development Environment ModelVisual Studio SDK Reference를 참조하십시오.

SharePoint 개체 모델

SharePoint 도구 확장에서는 SharePoint API를 사용하여 SharePoint 사이트를 수정하거나 SharePoint 사이트에서 데이터를 검색할 수 있습니다. Microsoft SharePoint Foundation 2010 및 Microsoft SharePoint Server 2010에서는 두 가지 개체 모델인 서버 개체 모델과 클라이언트 개체 모델을 제공합니다.

SharePoint 도구 확장에서 두 개체 모델의 API를 모두 사용할 수 있지만 SharePoint 도구 확장의 컨텍스트에서 각 개체 모델에 장단점이 있습니다. 자세한 내용은 SharePoint 개체 모델 호출을 참조하십시오.

개체 모델

설명

서버 개체 모델

서버 개체 모델을 사용하면 Microsoft SharePoint Foundation 2010 및 Microsoft SharePoint Server 2010에 표시되는 모든 기능을 프로그래밍 방식으로 액세스할 수 있습니다. 이 개체 모델은 SharePoint 서버에서 실행되는 SharePoint 솔루션에 사용됩니다. 이 개체 모델은 대부분 Microsoft.SharePoint.dll 어셈블리에서 정의됩니다. 서버 개체 모델에 대한 자세한 내용은 Using the SharePoint Foundation Server-Side Object Model을 참조하십시오.

클라이언트 개체 모델

클라이언트 개체 모델은 원격 클라이언트나 서버의 SharePoint 데이터와 상호 작용하는 데 사용할 수 있는 서버 개체 모델의 하위 집합입니다. 이 모델은 일반적인 작업을 수행하기 위해 실행해야 하는 왕복 수를 최소화하도록 디자인되었습니다. 클라이언트 개체 모델은 대부분 Microsoft.SharePoint.Client.dll 및 Microsoft.SharePoint.Client.Runtime.dll 어셈블리에서 정의됩니다. 클라이언트 개체 모델에 대한 자세한 내용은 Managed Client Object Model을 참조하십시오.

참고 항목

개념

SharePoint 개체 모델 호출

Visual Studio Development Environment Model

SharePoint 프로젝트 서비스 사용

기타 리소스

Visual Studio에서 SharePoint 도구 확장

변경 기록

날짜

변경 내용

이유

2010년 5월

SharePoint 도구 개체 모델에서 노출하는 MEF 인터페이스에 대한 새로운 정보가 추가되었습니다.

향상된 기능 관련 정보