ASP.NET Dynamic Data 개요

ASP.NET Dynamic Data를 사용하면 런타임에 데이터베이스 스키마에서 데이터 엔터티의 모양과 동작을 유추하고 UI 동작을 파생시켜 확장 가능한 데이터 기반 웹 응용 프로그램을 만들 수 있습니다.

Dynamic Data는 데이터베이스의 각 테이블에 대한 웹 페이지를 자동으로 생성하는 스캐폴딩을 지원합니다. 스캐폴딩을 사용하면 데이터 스키마를 기반으로 데이터를 보고 편집할 수 있는 기능적인 웹 사이트를 만들 수 있습니다. 스캐폴딩 요소를 쉽게 사용자 지정하거나 새 스캐폴딩 요소를 만들어 기본 동작을 재정의할 수 있습니다.

스캐폴딩을 사용하지 않고도 기존 웹 응용 프로그램이나 새 웹 응용 프로그램에서 동적 동작을 설정할 수 있습니다. 이 경우 Dynamic Data에서 전체 웹 사이트에 대해 스캐폴딩을 사용하지 않고 데이터 소스로부터 UI 요소를 유추하는 방법과 해당 경우를 지정합니다.

이 항목에는 다음과 같은 단원이 포함되어 있습니다.

Dynamic Data는 데이터베이스 엔터티를 CLR(공용 언어 런타임) 형식으로 나타내는 데이터 모델에서 데이터 스키마 정보 또는 메타데이터를 가져옵니다. 다음 그림에서는 Dynamic Data 아키텍처를 보여 줍니다. 파선 상자는 CLR로 정의되지만 Dynamic Data에서 사용되는 기술을 나타냅니다.

Dynamic Data 아키텍처

동적 데이터 아키텍처

그림과 같이 Dynamic Data 아키텍처에는 다음과 같은 계층이 포함됩니다.

  • 프레젠테이션 계층 - 데이터 엔터티 표시 및 편집을 위한 UI를 만드는 데 사용되는 요소를 포함합니다.

  • 데이터 계층 - 데이터베이스 엔터티를 CLR 형식으로 나타내는 데이터 모델을 포함합니다.

  • 데이터 소스 매핑 계층 - CLR의 일부이지만 Dynamic Data에서 사용되는 요소를 포함합니다. 이러한 요소는 데이터 모델을 생성하는 데 사용되는 LINQ to SQLADO.NET Entity Framework 같은 기술입니다.

이 단원에서는 데이터 엔터티 표시 및 편집을 위한 UI를 만드는 데 사용되는 Dynamic Data 요소에 대해 간략하게 설명합니다. 자세한 내용은 ASP.NET Dynamic Data 스캐폴딩을 참조하십시오.

페이지 템플릿

페이지 템플릿은 데이터베이스의 테이블에서 데이터를 렌더링하는 웹 페이지입니다. Dynamic Data에는 테이블 나열(목록 뷰), 마스터/세부 테이블 표시(세부 정보 뷰), 데이터 편집(편집 뷰) 등과 같은 다양한 데이터 뷰에 대한 페이지 템플릿이 포함됩니다. 기본적으로 Dynamic Data는 목록 뷰 페이지 템플릿만 사용합니다. Dynamic Data 웹 프로젝트를 만들면 Visual Studio에서 프로젝트에 DynamicData\PageTemplates 폴더를 추가합니다. 이 폴더에는 기본 페이지 템플릿이 들어 있습니다. 기본 템플릿을 수정하거나 새 템플릿을 만들어 테이블이 렌더링되는 방식을 지정할 수 있습니다.

엔터티 템플릿

엔터티 템플릿을 사용하여 행, 테이블 등과 같은 전체 데이터 엔터티에 대한 UI를 사용자 지정할 수 있습니다. 이 템플릿은 개별 데이터 필드를 사용자 지정하는 것보다 높은 유연성을 제공하며 사용자 지정 UI를 만들어 기본 페이지 템플릿이나 사용자 지정 페이지 템플릿에 적용하려는 경우에 유용합니다.

Dynamic Data 웹 프로젝트를 만들면 Visual Studio에서 프로젝트에 DynamicData\EntityTemplates 폴더를 추가합니다. 이 폴더에는 기본 엔터티 템플릿이 들어 있습니다. 표시, 편집 및 삽입 작업을 위한 템플릿이 있습니다. 기본 엔터티 템플릿은 필드 이름에 대한 레이블과 필드 값에 적합한 컨트롤을 사용하여 두 열에 데이터를 표시합니다. 이 기본 엔터티 템플릿을 수정하여 전체 사이트에 대한 데이터 행의 모양과 동작을 변경할 수 있습니다.

엔터티 템플릿은 Details.aspx, Insert.aspx 및 Update.aspx 페이지 템플릿과 사용자 지정 페이지에 포함됩니다. 그러면 엔터티 템플릿은 필드 템플릿을 사용하여 실제 데이터를 렌더링합니다.

엔터티 템플릿을 사용하는 방법에 대한 자세한 내용은 Dynamic Data 시나리오 단원에 나열된 관련 항목을 참조하십시오.

필드 템플릿

필드 템플릿은 개별 데이터 필드에 대한 UI를 렌더링하는 사용자 컨트롤입니다. 기본적으로 Dynamic Data는 표시되는 필드의 데이터 형식을 기반으로 필드 템플릿을 선택합니다. 예를 들어 Dynamic Data는 부울 데이터를 표시하기 위해 부울 필드 템플릿을 사용하고 텍스트 데이터를 표시하기 위해 텍스트 필드 템플릿을 사용합니다. 일반적으로 데이터를 표시하는 데 사용되는 필드 템플릿과 필드 값을 입력하거나 편집하는 데 사용되는 다른 템플릿이 있습니다.

Dynamic Data 웹 프로젝트를 만들면 Visual Studio에서 프로젝트에 DynamicData\FieldTemplates 폴더를 추가합니다. 이 폴더에는 기본 필드 템플릿이 들어 있습니다. 기본 필드 템플릿을 수정하거나 새 필드 템플릿을 만들어 개별 데이터 필드가 렌더링되는 방식을 지정할 수 있습니다.

필터 템플릿

필터 템플릿은 열 값을 기반으로 표시할 테이블 행을 선택할 수 있는 데이터 필터링용 UI를 렌더링하는 사용자 컨트롤입니다. 예를 들어 특정 범주를 포함하는 모든 행을 표시할 수 있습니다. 기본적으로 Dynamic Data는 부울, 외래 키 및 열거형 필터 템플릿을 제공합니다.

Dynamic Data에서 페이지 태그를 사용하여 열에 대한 데이터 필터링용 UI를 만들 수 있습니다. Dynamic Data 웹 프로젝트를 만들면 Visual Studio에서 프로젝트에 DynamicData\FilterTemplates 폴더를 추가합니다. 이 폴더에는 기본 필터 템플릿이 들어 있습니다.

해당 열 형식에 대한 필터 템플릿이 없는 경우 사용자 지정 필터 템플릿을 만든 다음 UI를 만들 때 해당 필터 템플릿을 사용하도록 Dynamic Data에 지시할 수 있습니다. Dynamic Data에서 기본 필터 템플릿이 있는 열 형식에 대한 UI를 자동으로 생성하도록 페이지 태그를 만들 수도 있습니다.

ASP.NET Dynamic은 LINQ to SQLADO.NET Entity Framework 데이터 모델을 지원합니다. Dynamic Data는 이러한 형식을 사용하여 데이터베이스를 쿼리하고 데이터 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업을 수행합니다. 데이터 모델을 사용하면 사용자 지정 데이터 유효성 검사 및 비즈니스 논리 규칙을 간편하게 통합할 수 있습니다.

런타임에 Dynamic Data는 데이터 모델에서 데이터 필드 속성과 같은 메타데이터 정보를 자동으로 추출합니다. 이 정보를 통해 Dynamic Data는 데이터를 표시 및 편집하기 위한 UI의 생성 방법을 유추합니다.

Visual Studio 2010에서 새 프로젝트를 만들 때 프로젝트에 사용되는 모델 형식을 선택할 수 있습니다. Dynamic Data 스캐폴딩은 한 프로젝트에서 데이터 모델 형식을 하나만 지원합니다.

Dynamic Data에서 지원하는 디자인 옵션은 다음과 같습니다.

  • 스캐폴딩을 사용하여 웹 사이트를 만듭니다. 최소한의 코드만 작성하거나 코드를 전혀 작성하지 않고 ASP.NET Dynamic Data를 사용하는 기본 웹 응용 프로그램을 만들 수 있습니다. 스캐폴딩이 사용되면 ASP.NET은 데이터 모델을 분석한 후 메타데이터 정보를 기반으로 웹 페이지를 동적으로 생성합니다. 이렇게 자동 생성된 웹 페이지는 각 테이블에 대해 CRUD 기능을 제공합니다. 자세한 내용은 연습: 스캐폴딩을 사용하여 새 Dynamic Data 웹 사이트 만들기를 참조하십시오.

  • 기존 ASP.NET 웹 사이트의 개별 데이터 바인딩된 컨트롤(예: GridViewListView 컨트롤)에 대한 동적 동작을 설정합니다. 이렇게 하면 런타임 데이터 필드 유효성 검사, CRUD 작업을 수행하도록 미리 정의된 페이지, 데이터 필드 사용자 지정 등과 같은 Dynamic Data 기능을 사용할 수 있습니다. 자세한 내용은 연습: ASP.NET 데이터 바인딩된 컨트롤에서 동적 데이터 사용을 참조하십시오.

  • 기존 ASP.NET 웹 사이트 또는 새 ASP.NET 웹 사이트에 Dynamic Data 기능을 추가합니다. 기존 웹 사이트가 있으면 여기에 Dynamic Data 기능과 스캐폴딩 요소를 추가할 수 있습니다. 이 경우 특정 데이터 바인딩된 컨트롤에 대해 Dynamic Data를 사용하는 대신 스캐폴딩 요소를 가져옵니다. 이 방법을 사용하면 개별 컨트롤에 동적 동작을 설정하는 것보다 세부적으로 사용자 지정을 제어할 수 있습니다. 자세한 내용은 연습: 동적 데이터를 사용하는 웹 사이트 만들기를 참조하십시오.

Dynamic Data 시나리오에 대한 자세한 내용은 ASP.NET Dynamic Data 콘텐츠 맵을 참조하십시오.

Dynamic Data 사용자 지정

Dynamic Data의 중요한 기능은 사용자 지정입니다. 사용자 지정 옵션은 다음과 같은 범주로 그룹화될 수 있습니다.

  • 일반 (프레젠테이션 계층) 동작 사용자 지정. Dynamic Data에서 특정 데이터베이스 스키마를 사용하지 않는 작업을 수행하는 방식을 수정할 수 있습니다. 프레젠테이션 계층에서 데이터베이스를 표시하고 이와 상호 작용하는 기본 템플릿을 수정하거나 사용자 지정 템플릿을 만들어 이러한 작업 방식을 수정할 수 있습니다. 그런 다음 Dynamic Data 프로젝트에서 이 수정된 작업 방식을 사용할 수 있습니다. 자세한 내용은 ASP.NET 동적 데이터 프레젠테이션 레이어 사용자 지정을 참조하십시오.

  • 스키마별 동작 사용자 지정. 데이터 모델 또는 데이터베이스 스키마를 기반으로 개별 테이블이나 필드에 대한 Dynamic Data 동작을 사용자 지정할 수 있습니다. 이 경우 사용자 지정은 데이터 모델의 해당 인스턴스에만 적용됩니다. 예를 들어 개별 데이터 필드에 대한 UI를 사용자 지정할 수도 있고 사용자 지정 페이지 템플릿을 만들거나 엔터티 템플릿을 사용하여 개별 테이블을 렌더링할 수도 있습니다. System.ComponentModel.DataAnnotations 특성을 사용하여 개별 데이터 필드의 모양과 동작을 수정할 수 있습니다. 또한 사용자 지정 유효성 검사를 만들고 데이터 모델의 테이블 또는 필드를 특정 템플릿에 바인딩하도록 응용 프로그램 동작을 사용자 지정할 수 있습니다. 자세한 내용은 ASP.NET 동적 데이터 레이어 사용자 지정을 참조하십시오.

다음 표에서는 Dynamic Data 시나리오와 이를 수행하는 방법을 설명하는 항목을 보여 줍니다.

시나리오

항목

설명 및 예제

기존 웹 사이트에서 데이터 바인딩된 컨트롤의 동적 동작 설정

연습: ASP.NET 데이터 바인딩된 컨트롤에서 동적 데이터 사용

이 방법은 기존 웹 사이트가 있을 때 최소한의 코드만 작성하거나 코드를 전혀 작성하지 않고 Dynamic Data 유효성 검사 및 템플릿을 추가하려는 경우에 유용합니다.

이 항목에 수반되는 Visual Studio 프로젝트 및 소스 코드는 Enabling Dynamic Data에서 다운로드할 수 있습니다.

개별 테이블의 모양과 동작 사용자 지정

방법: 데이터 바인딩된 컨트롤의 데이터 필드 모양 및 동작 사용자 지정

이 방법을 사용하여 특정 테이블의 사용자 지정 페이지를 만들어 개별 테이블을 사용자 지정할 수 있습니다. 이 방법은 스키마별 사용자 지정입니다.

개별 데이터 필드의 모양과 동작 사용자 지정

연습: 데이터 모델의 데이터 필드 모양 및 동작 사용자 지정

이 방법을 사용하여 데이터 모델의 특정 필드가 렌더링되는 방법을 사용자 지정할 수 있습니다. 이 방법은 사용자 지정 필드 템플릿을 만드는 스키마별 사용자 지정입니다.

이 기능을 보여 주는 비디오를 참조하십시오(Customize Data Field Appearance and Behavior 보기).

데이터 필드 형식의 모양과 동작 사용자 지정

방법: ASP.NET Dynamic Data 기본 필드 템플릿 사용자 지정

이 방법을 사용하여 전체 응용 프로그램의 데이터 필드 형식에 대한 UI를 사용자 지정할 수 있습니다. 이 방법은 기본 필드 템플릿을 사용자 지정하는 프레젠테이션 계층의 일반 동작 사용자 지정입니다.

이 기능을 보여 주는 비디오를 참조하십시오(Customize Default Field Templates 보기).

기본 형식이 아닌 데이터 필드 형식의 모양과 동작 사용자 지정

방법: 데이터 모델의 내장 형식이 아닌 데이터 형식에 대한 데이터 필드 모양 및 동작 사용자 지정

이 방법을 사용하여 개별 데이터 필드에 대한 UI를 사용자 지정할 수 있습니다. 이 방법은 데이터 형식에 대한 기본 템플릿보다 더 구체적인 필드 템플릿에 필드를 매핑하는 스키마별 사용자 지정입니다. 예를 들어 전자 메일 주소를 포함하는 텍스트 필드를 전자 메일 형식으로 표시할 수 있습니다.

사용자 지정 페이지 템플릿을 사용하여 개별 테이블의 모양과 동작 사용자 지정

방법: 사용자 지정 페이지 템플릿을 사용하여 개별 테이블의 레이아웃 사용자 지정

이 방법에서는 특정 데이터 테이블에 대한 기본 템플릿(예: List.aspx)을 수정하여 개별 테이블을 사용자 지정할 수 있습니다. 이 방법은 스키마별 사용자 지정입니다.

사용자 지정 엔터티 템플릿을 사용하여 개별 테이블의 모양과 동작 사용자 지정

연습: 엔터티 템플릿을 사용하여 테이블 레이아웃 사용자 지정

이 방법을 사용하여 개별 테이블을 사용자 지정할 수 있습니다. 이 방법은 사용자 지정 엔터티 템플릿을 만드는 일반 동작 사용자 지정입니다. 사용자 지정 페이지 템플릿 방법 대신 사용되며 테이블 레이아웃을 보다 세부적으로 제어할 수 있습니다.

이 항목에 수반되는 Visual Studio 프로젝트 및 소스 코드는 Dynamic Data Templates에서 다운로드할 수 있습니다.

특성을 사용하거나, 필드 변경을 처리하는 메서드를 사용자 지정하거나, 유효성 검사 이벤트 처리기를 사용자 지정하여 데이터 필드 유효성 검사 사용자 지정

방법: 데이터 모델의 데이터 필드 유효성 검사 사용자 지정

이 방법을 사용하여 개별 데이터 필드에 대한 유효성 검사를 사용자 지정할 수 있습니다. 이 방법은 OnValidate 이벤트 처리기 재정의 등과 같은 작업을 통해 수행하는 스키마별 사용자 지정입니다.

이 기능의 온라인 예제를 실행해 보십시오.

사용자 지정 유효성 검사 특성을 사용하여 데이터 필드 유효성 검사 사용자 지정

방법: 사용자 지정 특성을 사용하여 데이터 모델의 데이터 필드 유효성 검사 사용자 지정

이 방법을 사용하여 개별 데이터 필드에 대한 유효성 검사를 사용자 지정할 수 있습니다. 이 방법은 데이터 모델의 데이터 필드에 사용자 지정 유효성 검사 특성을 적용하는 스키마별 사용자 지정입니다. 사용 가능한 데이터 유효성 검사 특성이 요구 사항을 충족하지 않는 경우에 이 방법을 사용합니다.

이 기능의 런타임 코드 예제를 참조하십시오(실행).

부모 테이블의 외래 키 값을 사용하여 자식 테이블에 표시할 테이블 행 필터링

연습: 표에서 부모-자식 관계에 있는 행 필터링

이 방법을 사용하여 부모 테이블의 외래 키 값을 기반으로 표시할 테이블 행을 필터링할 수 있습니다.

이 항목에 수반되는 Visual Studio 프로젝트 및 소스 코드는 Scaffolding Dynamic Data에서 다운로드할 수 있습니다. .

다음과 같은 제안을 따르는 것이 좋습니다.

  • URL 라우팅에 대해 배웁니다. 자세한 내용은 ASP.NET 라우팅을 참조하십시오.

  • LINQ-to-SQL 개체 관계형 매핑에 대해 배웁니다. 자세한 내용은 LINQ to SQL을 참조하십시오.

  • ADO.NET Entity Framework에 대해 배웁니다. 자세한 내용은 ADO.NET Entity Framework를 참조하십시오.

맨 위로 이동

표시: