연습: 사용자 지정 필드, 콘텐츠 형식, 목록 정의 및 목록 인스턴스 만들기

다음 절차에서는 SharePoint에서 Patient Name이라는 사용자 지정 필드 및 이 필드를 사용하는 콘텐츠 형식을 만드는 방법을 보여 줍니다. 또한 목록 정의를 기반으로 하는 목록 인스턴스와 함께 새 콘텐츠 형식과 필드를 사용하는 목록 정의를 프로젝트에 추가하는 방법을 보여 줍니다.

이 연습에서는 다음 작업을 수행합니다.

  • 필드 만들기 및 사용자 지정

  • 필드를 사용하는 콘텐츠 형식 만들기 및 사용자 지정

  • 목록 정의 만들기 및 사용자 지정

  • 목록 정의의 목록 인스턴스 만들기 및 사용자 지정

  • 콘텐츠 형식 및 목록 인스턴스에서 새 필드 보기

참고

다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

사전 요구 사항

이 연습을 완료하려면 다음 구성 요소가 필요합니다.

사용자 지정 필드 항목 만들기

먼저 Visual Studio에서 Patient Name이라는 사용자 지정 필드 항목을 SharePoint 프로젝트로 만듭니다.

사용자 지정 필드 항목을 만들려면

  1. 파일 메뉴에서 새로 만들기를 가리킨 다음 새 프로젝트를 클릭하여 새 프로젝트 대화 상자를 표시합니다.

  2. Visual C# 또는 Visual Basic 아래의 SharePoint 노드를 확장한 다음 2010을 클릭합니다.

  3. 템플릿 창에서 빈 SharePoint 프로젝트를 클릭하고 프로젝트 이름을 CustomField1로 변경한 다음 확인을 클릭합니다.

    SharePoint 사용자 지정 마법사가 나타납니다. 사용자 지정 필드 항목에는 템플릿이 없으므로 빈 프로젝트 템플릿이 사용됩니다.

  4. 디버깅에 사용할 사이트 및 보안 수준 지정 페이지에서 새 사용자 지정 필드 항목을 추가할 SharePoint 서버 사이트의 URL을 입력하거나 기본 위치(http://<system name>/)를 사용합니다.

  5. 이 SharePoint 솔루션의 신뢰 수준을 선택하십시오. 섹션에서 기본값인 샌드박스가 적용된 솔루션으로 배포를 사용합니다.

    샌드박스가 적용된 솔루션과 팜 솔루션에 대한 자세한 내용은 샌드박스가 적용된 솔루션 고려 사항을 참조하십시오.

  6. 마침을 클릭합니다. 솔루션 탐색기에 해당 프로젝트가 표시됩니다.

  7. 프로젝트에 빈 요소 프로젝트 항목을 추가합니다. 이렇게 하려면 솔루션 탐색기에서 필드의 프로젝트 노드(CustomField1)를 클릭한 다음 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

  8. Visual C# 또는 Visual Basic 아래의 SharePoint 노드를 확장한 다음 2010을 클릭합니다.

  9. 템플릿 창에서 빈 요소를 선택하고 기본 이름인 EmptyElement1을 그대로 둔 채 추가를 클릭합니다.

  10. EmptyElement1 아래에 있는 Elements.xml 파일에서 <Elements> 태그 뒤에 다음 코드를 추가합니다.

    <Field ID="{5744d18c-305e-4632-8bd1-09d134f4830d}" 
        Type="Note" 
        Name="PatientName" 
        DisplayName="Patient Name" 
        Group="A Custom Group">
    </Field>
    

    이렇게 하면 Patient Name이라는 필드가 추가됩니다.

    중요

    사용자 지정 필드를 추가하는 경우 필드가 에서 올바르게 나타나도록 하려면 ID, Type, Name, DisplayName 및 Group 특성을 지정해야 합니다. 실제로는 5개 특성이 모두 필요하지만 문 완성 기능은 이 중 처음 3개 특성만 필요한 것으로 사용자에게 잘못 알려 주고 있습니다.

  11. F5 키를 눌러 프로젝트를 실행하고 SharePoint에 배포합니다.

    스크립트 디버깅을 사용할 수 없다는 메시지가 나타나면 를 클릭하여 디버깅을 계속합니다.

  12. Visual Studio에서 처음으로 웹 응용 프로그램을 디버깅하는 경우 디버깅을 사용하도록 웹 구성 파일을 수정할지 여부를 묻는 메시지가 표시됩니다. 를 선택합니다.

  13. SharePoint 웹 페이지의 맨 위에서 사이트 작업 단추를 클릭한 다음 사이트 설정을 클릭합니다.

  14. 사이트 설정 페이지의 갤러리 섹션에서 사이트 열 링크를 클릭합니다.

  15. 사이트 열 갤러리 페이지에서 사용자 지정 열 제목까지 페이지 아래로 스크롤하여 Patient Name이라는 새 필드 항목이 추가된 것을 확인합니다.

  16. 브라우저를 닫습니다.

사용자 지정 콘텐츠 형식 만들기

다음으로, SharePoint 연락처 목록을 기반으로 하여 이전 절차에서 만든 새 필드를 사용하는 콘텐츠 형식을 만듭니다.

사용자 지정 콘텐츠 형식을 만들려면

  1. 프로젝트에 콘텐츠 형식을 추가합니다. 이렇게 하려면 솔루션 탐색기에서 프로젝트 노드를 클릭한 다음 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

  2. Visual C# 또는 Visual Basic 아래의 SharePoint 노드를 확장한 다음 2010을 클릭합니다.

  3. 템플릿 창에서 콘텐츠 형식을 선택하고 기본 이름인 ContentType1을 사용합니다.

  4. SharePoint 사용자 지정 마법사에서 새 항목의 기반이 되는 콘텐츠 형식으로 연락처를 선택하고 마침을 클릭합니다.

    콘텐츠 형식의 Elements.xml 파일이 편집을 위해 열립니다.

  5. Elements.xml의 <FieldRefs> 섹션에서 다음 코드를 복사하여 붙여 넣습니다.

    <FieldRef ID="{5744d18c-305e-4632-8bd1-09d134f4830d}" 
        Name="PatientName" 
        DisplayName="Patient Name" 
        Required="TRUE"/>
    

    여기에 사용된 FieldRef ID는 사용자 지정 필드에 대해 만든 필드 ID를 나타냅니다.

  6. F5 키를 눌러 프로젝트를 실행하고 배포합니다.

  7. SharePoint 웹 페이지의 맨 위에서 사이트 작업 단추를 클릭한 다음 사이트 설정을 클릭합니다.

  8. 사이트 설정 페이지의 갤러리 섹션에서 사이트 콘텐츠 형식 링크를 클릭합니다.

  9. 사이트 콘텐츠 형식 갤러리 페이지에서 방금 만든 새 콘텐츠 형식인 CustomField1 - ContentType1을 확인합니다. 이 콘텐츠 형식을 클릭하여 해당 필드를 봅니다. CustomField1 - ContentType1의 필드 목록에 Patient Name 필드가 추가되었습니다.

  10. 브라우저를 닫습니다.

목록 정의 및 목록 인스턴스 만들기

이제 새 콘텐츠 형식과 필드를 사용할 목록 정의와 목록 인스턴스를 만듭니다. 방금 만든 콘텐츠 형식을 기반으로 하여 목록 정의를 만들려고 하므로 콘텐츠 형식에서의 목록 정의 프로젝트 항목 템플릿을 사용합니다.

목록 정의와 목록 인스턴스를 만들려면

  1. 프로젝트에 목록 정의를 추가합니다. 이렇게 하려면 솔루션 탐색기에서 프로젝트 노드를 클릭한 다음 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

  2. Visual C# 또는 Visual Basic 아래의 SharePoint 노드를 확장한 다음 2010을 클릭합니다.

  3. 템플릿 창에서 콘텐츠 형식에서의 목록 정의를 선택하고 기본 이름인 ListDefinition1을 사용합니다.

  4. 목록 정의의 표시 이름을 선택하십시오. 상자에서 기본값인 CustomField1 - ListDefinition1을 그대로 유지합니다.

  5. 목록 정의에 사용할 콘텐츠 형식을 선택하십시오. 목록에서 유일한 기본값인 CustomField1 - ContentType1을 사용합니다.

    수정된 새 연락처 목록을 기반으로 하여 사용자 지정 가능한 목록 정의가 만들어집니다.

  6. 이 목록 정의에 대해 목록 인스턴스 추가 상자를 선택하여 프로젝트에 목록 인스턴스 프로젝트 항목을 추가합니다. 이 목록 인스턴스가 새 목록 정의의 인스턴스가 됩니다.

  7. 마침을 클릭합니다. 솔루션 탐색기에 해당 목록 정의가 표시됩니다.

목록 정의 사용자 지정

마지막으로, 새 필드인 Patient Name을 추가하여 목록 정의를 사용자 지정합니다.

중요

목록 정의의 Elements.xml에 있는 Name 특성 값이 목록 정의 프로젝트 항목의 폴더 이름과 일치해야 하며, 그렇지 않으면 프로젝트를 실행할 때 오류가 발생합니다. Name 특성이 폴더 이름과 일치하도록 대체 매개 변수(또는 토큰) $ProjectItemName$가 사용됩니다. SharePoint 프로젝트를 패키징 및 배포하면 이 토큰이 목록 정의의 실제 폴더 이름으로 변환됩니다. Name 특성 값을 이 토큰 이외의 값으로 변경하면 응용 프로그램이 제대로 실행되지 않을 수 있습니다. 자세한 내용은 대체 가능 매개 변수를 참조하십시오.

목록 정의에 필드를 추가하려면

  1. 솔루션 탐색기에서 ListDefinition1 아래에 있는 Schema.xml을 두 번 클릭하여 이 파일을 표시합니다.

    Schema.xml에서는 이름 및 주소와 같은 목록 정의의 모든 필드와 기타 요소를 정의합니다. 파일 상단에 있는 <Fields> 요소 아래 다음과 같은 필드 정의가 콘텐츠 형식으로 추가된 것을 알 수 있습니다.

    <FieldRef ID="{5744d18c-305e-4632-8bd1-09d134f4830d}" 
        Name="PatientName" 
        DisplayName="Patient Name" 
        Required="TRUE" />
    
  2. F5 키를 눌러 프로젝트를 실행하고 배포합니다.

  3. SharePoint 빠른 실행 모음의 목록 섹션에서 CustomField1 - ListInstance1 링크를 클릭합니다.

    이 링크는 새 목록 정의의 목록 인스턴스입니다. 새 Patient Name 필드는 아직 목록 인스턴스의 열로 표시되지 않습니다.

  4. 페이지 맨 위의 목록 도구 메뉴 탭에서 목록을 클릭한 다음 리본 메뉴 모음에서 보기 수정 단추를 클릭합니다.

  5. 사용 가능한 열 이름 목록에서 Patient Name을 선택한 다음 확인을 클릭합니다. 이제 Patient Name 필드가 목록 인스턴스에 표시됩니다.

참고 항목

기타 리소스

SharePoint 솔루션 개발

How to: Create a Custom Field Type

Content Types

Columns