데이터 서비스 만들기(WCF Data Services 퀵 스타트)
이 작업에서는 Northwind 샘플 데이터베이스를 기반으로 하는 Open Data Protocol(OData) 피드를 노출하는 샘플 데이터 서비스를 만듭니다. 작업에 필요한 기본 단계는 다음과 같습니다.
ASP.NET 웹 응용 프로그램을 만듭니다.
엔터티 데이터 모델 도구를 사용하여 데이터 모델을 정의합니다.
웹 응용 프로그램에 데이터 서비스를 추가합니다.
데이터 서비스에 액세스할 수 있도록 설정합니다.
참고: |
---|
이 작업을 완료할 때 만드는 ASP.NET 웹 응용 프로그램은 Visual Studio에서 제공하는 ASP.NET Development Server에서 실행됩니다.개발 중에 보다 쉽게 데이터 서비스를 테스트하고 관련 문제를 해결하려면 IIS(인터넷 정보 서비스)를 사용하여 데이터 서비스를 호스팅하는 응용 프로그램을 실행하는 것이 좋습니다.자세한 내용은 방법: IIS에서 실행되는 WCF Data Services 개발을 참조하십시오. |
ASP.NET 웹 응용 프로그램을 만들려면
Visual Studio의 파일 메뉴에서 새로 만들기를 선택한 다음 프로젝트를 선택합니다.
새 프로젝트 대화 상자에서 Visual Basic 또는 Visual C#을 프로그래밍 언어로 선택합니다.
템플릿 창에서 ASP.NET 웹 응용 프로그램을 선택합니다. 참고: Visual Studio Web Developer를 사용하는 경우 새 웹 응용 프로그램 대신 새 웹 사이트를 만들어야 합니다.
프로젝트 이름으로 NorthwindService를 입력합니다.
확인을 클릭합니다.
(선택 사항) 웹 응용 프로그램의 특정 포트 번호를 지정합니다. 참고: 포트 번호
12345
가 퀵 스타트의 나머지 부분에서 사용됩니다.솔루션 탐색기에서 방금 만든 ASP.NET 프로젝트의 이름을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.
웹 탭을 선택하고 특정 포트 텍스트 상자의 값을
12345
로 설정합니다.
데이터 모델을 정의하려면
솔루션 탐색기에서 ASP.NET 프로젝트의 이름을 마우스 오른쪽 단추로 클릭하고 새 항목 추가를 클릭합니다.
새 항목 추가 대화 상자에서 ADO.NET 엔터티 데이터 모델을 선택합니다.
데이터 모델의 이름으로 Northwind.edmx를 입력합니다.
엔터티 데이터 모델 마법사에서 데이터베이스에서 생성을 선택하고 다음을 클릭합니다.
다음 단계 중 하나를 수행하여 데이터 모델을 데이터베이스에 연결하고 다음을 클릭합니다.
데이터베이스 연결이 구성되어 있지 않은 경우 새 연결을 클릭하고 새 연결을 만듭니다. 자세한 내용은 방법: SQL Server 데이터베이스에 대한 연결 만들기를 참조하십시오. 이 SQL Server 인스턴스에는 Northwind 샘플 데이터베이스가 연결되어 있어야 합니다.
-또는-
Northwind 데이터베이스에 연결할 수 있도록 데이터베이스 연결이 이미 구성되어 있는 경우 연결 목록에서 해당 연결을 선택합니다.
마법사의 마지막 페이지에서 데이터베이스에 있는 모든 테이블의 확인란을 선택하고 뷰 및 저장 프로시저 확인란의 선택을 취소합니다.
마침을 클릭하여 마법사를 닫습니다.
참고: 생성된 이 데이터 모델은 엔터티 형식의 외래 키 속성을 노출합니다.Visual Studio 2008을 사용하여 만들어진 데이터 모델에는 이러한 외래 키 속성이 포함되지 않습니다.이 때문에 이 버전의 Northwind 데이터 서비스에 액세스하기 전에 Visual Studio 2008을 사용하여 만들어진 Northwind 데이터 서비스에 액세스하기 위해 만들어진 모든 클라이언트 응용 프로그램의 클라이언트 데이터 서비스 클래스를 업데이트해야 합니다.
데이터 서비스를 만들려면
솔루션 탐색기에서 ASP.NET 프로젝트 이름을 마우스 오른쪽 단추로 클릭하고 새 항목 추가를 클릭합니다.
새 항목 추가 대화 상자에서 ADO.NET Data Services를 선택합니다.
서비스 이름으로 Northwind를 입력합니다.
Visual Studio에서 새 서비스의 XML 태그와 코드 파일을 만듭니다. 기본적으로 코드 편집기 창이 열립니다. 솔루션 탐색기에서 이 서비스의 이름은 Northwind.svc.cs 또는 Northwind.svc.vb로 나타납니다.
데이터 서비스 코드에서 데이터 서비스를 정의하는 클래스 정의의
/* TODO: put your data source class name here */
주석을 데이터 모델의 엔터티 컨테이너인 형식(이 경우NorthwindEntities
)으로 바꿉니다. 클래스 정의는 다음과 같이 나타납니다.Public Class Northwind Inherits DataService(Of NorthwindEntities)
public class Northwind : DataService<NorthwindEntities>
데이터 서비스 리소스에 액세스할 수 있도록 설정하려면
데이터 서비스 코드에서
InitializeService
함수의 자리 표시자 코드를 다음 코드로 바꿉니다.' Grant only the rights needed to support the client application. config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead _ Or EntitySetRights.WriteMerge _ Or EntitySetRights.WriteReplace) config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead _ Or EntitySetRights.AllWrite) config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead)
// Grant only the rights needed to support the client application. config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead | EntitySetRights.WriteMerge | EntitySetRights.WriteReplace ); config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead | EntitySetRights.AllWrite); config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead);
이렇게 하면 권한 있는 클라이언트가 지정된 엔터티 집합의 리소스에 대한 읽기 및 쓰기 액세스 권한을 가질 수 있습니다.
참고: ASP.NET 응용 프로그램에 액세스할 수 있는 클라이언트는 데이터 서비스에 의해 노출되는 리소스에도 액세스할 수 있습니다.리소스에 무단으로 액세스할 수 없도록 하려면 프로덕션 데이터 서비스에서 응용 프로그램 자체에도 보안을 설정해야 합니다.자세한 내용은 Securing ASP.NET Web Sites을 참조하십시오.
다음 단계
Northwind 샘플 데이터베이스를 기반으로 하는 OData 피드를 노출하는 새 데이터 서비스를 성공적으로 만들었으며 ASP.NET 웹 응용 프로그램에 대한 사용 권한이 있는 클라이언트의 피드에 액세스할 수 있도록 설정했습니다. 다음에는 Visual Studio에서 데이터 서비스를 시작하고 웹 브라우저를 통해 HTTP GET 요청을 전송하여 OData 피드에 액세스합니다.