ASP.NET Dynamic Data 지침
업데이트: 2007년 11월
ASP.NET Dynamic Data를 사용하면 요구 사항에 맞는 사용자 지정 수준을 선택할 수 있습니다. 이 단원에서는 작업 수행에 도움이 되는 지침과 제안 사항을 제공합니다.
Dynamic Data를 사용하면 완전한 동적 기능을 갖춘 완벽한 웹 응용 프로그램을 빠르게 만들 수 있습니다. 또한 데이터베이스를 웹 사이트에 쉽게 통합할 수 있으며 필요한 특정 동적 기능을 선택할 수도 있습니다.
ASP.NET Dynamic Data는 프레젠테이션 계층부터 데이터 계층까지 사용자의 요구 사항에 맞게 웹 사이트를 수정할 수 있는 다양한 사용자 지정 기능을 제공합니다.
스캐폴딩을 사용한 웹 사이트 만들기
데이터 구동 웹 사이트를 빠르게 만들어야 하는 경우 ASP.NET Dynamic Data를 사용하면 완전한 동적 기능을 갖춘 완벽한 웹 응용 프로그램을 쉽게 만들 수 있습니다. 이 작업을 쉽게 수행할 수 있도록 Dynamic Data는 최소한의 코드를 작성하여 데이터 모델에 기반한 응용 프로그램을 실행할 수 있는 웹 스캐폴딩을 지원합니다. 이 웹 스캐폴딩에는 표준 UI가 있지만 테이블에 대한 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업을 수행할 수도 있습니다. 또한 웹 스캐폴딩은 관계에 대한 완전한 지원을 제공합니다. 스캐폴딩을 사용하여 기본 응용 프로그램을 만든 다음 나중에 적절한 사용자 지정을 적용할 수 있습니다. 자세한 내용은 연습: 스캐폴딩을 사용하여 새 Dynamic Data 웹 사이트 만들기를 참조하십시오.
자세한 내용은 ASP.NET Dynamic Data 개요를 참조하십시오.
기존 웹 사이트에 Dynamic Data 추가
ASP.NET Dynamic Data를 사용하면 필요한 특정 동적 기능을 선택할 수 있으므로 기존 웹 사이트에 Dynamic Data 컨트롤 동작을 통합할 수 있습니다. 이렇게 하려면 다음과 같은 단계를 수행해야 합니다.
Dynamic Data 웹 사이트를 만듭니다. 자세한 내용은 연습: 스캐폴딩을 사용하여 새 Dynamic Data 웹 사이트 만들기를 참조하십시오.
필드 템플릿을 만듭니다. 자세한 내용은 ASP.NET Dynamic Data 필드 템플릿 개요를 참조하십시오.
데이터 모델을 사용자 지정합니다. 자세한 내용은 ASP.NET Dynamic Data 모델 개요를 참조하십시오.
테이블을 표시할 사용자 지정 페이지를 만듭니다. 자세한 내용은 ASP.NET Dynamic Data 스캐폴딩 및 페이지 템플릿 개요를 참조하십시오.
동적 동작을 수행하는 데이터 컨트롤을 사용합니다. 자세한 내용은 ASP.NET Dynamic Data 스캐폴딩 및 페이지 템플릿 개요를 참조하십시오.
자세한 내용은 연습: 기존 웹 사이트에 Dynamic Data 추가를 참조하십시오.
유효성 검사 특성 사용
System.ComponentModel.DataAnnotations 특성을 사용하여 데이터 모델의 데이터 필드에 메타데이터를 적용하면 Dynamic Data에 추가 정보를 제공할 수 있습니다. Dynamic Data는 데이터 필드 표시 및 편집을 위해 UI가 렌더링되는 방식을 사용자 지정하는 작업 등에 이 정보를 사용합니다.
유효성 검사 특성 사용
유효성 검사 특성을 적용할 경우 다음과 같은 사용 제약 조건을 준수해야 합니다.
특성은 속성이나 필드에 적용할 수 있습니다.
특성은 한 번만 적용할 수 있습니다.
유효성 검사 특성 적용
다음은 데이터 필드에 System.ComponentModel.DataAnnotations 특성을 적용할 때 따라야 하는 단계입니다.
웹 응용 프로그램의 App_Code 폴더에서 데이터 컨텍스트 partial 클래스를 포함하는 클래스 파일을 구현합니다. 이 클래스는 특성을 적용할 데이터 필드가 들어 있는 테이블을 나타냅니다.
연결된 메타데이터 클래스로 사용할 또 다른 클래스를 만듭니다. 클래스에 임의의 이름을 지정할 수 있지만 다음 단계에서 설명하는 것처럼 이 클래스 이름은 partial 클래스에 적용되는 MetadataTypeAttribute 특성에서 참조하는 이름과 일치해야 합니다. 이 클래스를 앞서 만든 클래스와 동일한 클래스 파일에 배치합니다.
연결된 메타데이터 클래스에서 유효성 검사 특성을 적용해야 하는 데이터 필드의 이름과 동일한 이름을 갖는 public 속성이나 필드를 만듭니다.
MetadataTypeAttribute 특성을 partial 클래스 정의에 적용합니다. 이 특성의 매개 변수는 연결된 메타데이터 클래스의 이름입니다.
유효성 검사 오류 생성
System.ComponentModel.DataAnnotations 특성을 사용하면 유효성 검사가 실패하는 경우 표시할 사용자 지정 오류를 생성하거나 기본 제공 오류를 사용할 수 있습니다. 따라서 유효성 검사 특성에 다음과 같은 이름이 지정된 오류 매개 변수 중 하나를 사용할 수 있습니다.
ErrorMessage. 이 매개 변수는 유효성 검사 컨트롤과 연결되는 오류 메시지를 지정합니다. 이 매개 변수를 사용하여 지역화할 수 없는 사용자 지정 오류 메시지를 지정하고 지역화할 수 있는 기본 메시지를 재정의할 수 있습니다.
ErrorMessageResourceName. 이 매개 변수는 유효성 검사 컨트롤과 연결되는 오류 메시지 리소스를 지정합니다. 이 매개 변수를 사용하여 지역화할 수 있는 오류 메시지가 들어 있는 리소스 파일을 지정합니다.
ErrorMessageResourceType. 이 매개 변수는 유효성 검사 컨트롤과 연결되는 오류 메시지 형식을 지정합니다. 이 매개 변수를 사용하여 리소스 파일에 정의된 오류 메시지를 식별합니다. 리소스 파일은 앞의 매개 변수를 사용하여 지정합니다.
유효성 검사 특성 오류 메시지를 사용할 때 다음과 같은 선택이 가능합니다.
항상 지역화되는 기본 오류 메시지를 사용할 수 있습니다. 이 경우 앞의 매개 변수를 지정할 필요가 없습니다.
ErrorMessage 매개 변수를 사용하여 기본 메시지를 재정의하며 지역화할 수 없는 사용자 지정 오류 메시지를 제공할 수 있습니다.
ErrorMessageResourceName 매개 변수를 사용하면 지역화할 수 있는 리소스 오류 메시지 파일을 제공할 수 있습니다. 그런 다음 ErrorMessageResourceType 매개 변수를 사용하여 오류 메시지가 리소스 파일에 포함되어 있다는 것을 지정합니다.
데이터 모델 선택
LINQ to SQL과 Entity Framework 사이에는 많은 공통점이 있지만 이 두 모델은 서로 다른 시나리오를 대상으로 합니다. LINQ to SQL은 기존 Microsoft SQL Server 스키마를 기반으로 보다 빠르게 응용 프로그램을 개발하는 것이 목표입니다. Entity Framework는 기존 관계형 스키마에 느슨하게 결합되는 융통성 있는 매핑을 통해 Microsoft SQL Server와 타사 데이터베이스에 대한 개체 및 저장소 계층 액세스를 제공합니다.
LINQ to SQL
LINQ to SQL에는 Microsoft SQL Server 데이터베이스를 대상으로 하는 기능이 있습니다. 이러한 기능을 통해 기존 데이터베이스 스키마에 대한 강력한 형식의 뷰를 사용할 수 있습니다.
LINQ to SQL은 기존 데이터베이스 스키마와 .NET Framework 클래스 간의 직접적인 일대일 매핑을 지원합니다. 단일 테이블을 단일 클래스에 매핑할 수 있으며 외래 키를 강력한 형식의 관계로 노출할 수 있습니다.
테이블/뷰/테이블 반환 함수를 기반으로 LINQ 쿼리를 빌드하고 강력한 형식의 개체로 결과를 반환할 수 있으며, 강력한 형식의 메서드를 통해 강력한 형식의 결과를 반환하는 저장 프로시저를 호출할 수 있습니다. LINQ to SQL의 핵심 디자인 원칙은 대부분의 일반적인 상황에서 동작하게 만드는 것입니다. 예를 들어, 고객의 Orders 속성을 통해 주문 컬렉션에 액세스하지만 해당 고객의 주문을 검색한 적이 없다면 LINQ to SQL에서 자동으로 주문 검색을 수행합니다.
ADO.NET Entity Framework
ADO.NET Entity Framework에는 기업 시나리오를 대상으로 하는 기능이 있습니다. 기업에서는 대개 데이터베이스 관리자가 데이터베이스를 관리합니다. 일반적으로 스키마는 뛰어난 응용 프로그램 모델을 제공하는 것보다 저장소 고려 사항(성능, 일관성, 분할)을 중점으로 최적화되며 시간이 지나 사용 데이터와 사용 패턴이 발전함에 따라 스키마가 변경될 수 있습니다.
Entity Framework는 느슨하게 결합되는 응용 프로그램 지향 데이터 모델을 제공하도록 디자인되었으며 기존 데이터베이스 스키마와 상당히 다를 수 있습니다.
예를 들어, 단일 클래스(또는 엔터티)를 다중 테이블/뷰에 매핑하거나 다중 클래스를 동일한 테이블/뷰에 매핑할 수 있습니다. 또한 상속 계층 구조를 단일 테이블/뷰에 매핑하거나(LINQ to SQL과 동일) 다중 테이블/뷰에 매핑할 수 있습니다. 시간이 지나면 데이터베이스 스키마가 변경될 수 있다는 것을 고려하여 응용 프로그램을 다시 컴파일할 필요가 없도록 이러한 유연한 매핑은 선언적으로 지정됩니다.
Entity Framework는 개념 응용 프로그램 데이터 모델에 대해 LINQ to SQL의 기능과 동일한 많은 기능을 제공하는 LINQ to Entities를 포함합니다.
자세한 내용은 Introducing LINQ to Relational Data를 참조하십시오.
참고 항목
작업
개념
ASP.NET Dynamic Data 필드 템플릿 개요
ASP.NET Dynamic Data 스캐폴딩 및 페이지 템플릿 개요
참조
Partial 클래스 및 메서드(C# 프로그래밍 가이드)