3

ADO.NET/WCF DataService를 구현하고 싶습니다.이 목적으로 VS2008 SP1에서 프로젝트를 설정하는 가장 좋은 방법이 무엇인지 궁금합니다.ADO.NET/WCF DataService에 대한 프로젝트 설정

현재 ASP.NET 웹 응용 프로그램 프로젝트 ("WebSite"프로젝트 유형이 아님)가 있습니다. 데이터 액세스 계층은 SQL Server 데이터베이스가있는 Entity 모델 (EF 버전 1)입니다. 엔티티 모델은 별도의 DLL 프로젝트에 있고 웹 응용 프로그램 프로젝트는 모든 데이터 액세스를 위해이 어셈블리를 참조합니다.

ADO.NET/WCF DataService는 Entity 모델/데이터베이스와도 통신해야합니다. 웹 응용 프로그램과 함께 동일한 웹 서버 (IIS 7.5)에서 호스팅되어야합니다.

DataService는 특정 웹 응용 프로그램과 직접 관련이 없으므로 (웹 응용 프로그램이 사용하는 동일한 데이터베이스에서 데이터를 제공하고 수정하지만) 내 기본 아이디어는 자체 새 프로젝트에서 DataService를 분리하는 것이 었습니다 (또한 Entity Model DLL을 참조).

이제 VS2008 SP1에는 "ADO.NET/WCF DataService"프로젝트 유형이 없다는 것을 보았습니다. DataService를 다른 기존 프로젝트 (예 : Web Application 프로젝트)에 요소로 추가하는 것만 가능합니다.

별도의 DataService 프로젝트 유형이없는 이유는 무엇입니까? 이제 DataService를 웹 응용 프로그램 프로젝트의 요소로 추가해야한다는 의미입니까? 아니면 새로운 웹 애플리케이션 프로젝트를 만들고 그것에 DataService를 추가해야합니까? (나는이 프로젝트에서 어떤 웹 페이지도 필요 없기 때문에 미리 생성 된 default.aspx를 삭제할 수있다.) 가장 좋은 방법은 무엇인가?

미리 감사드립니다.

답변

1

WCF 서비스를 호스팅하고 있으므로 웹 응용 프로그램 프로젝트를 사용해야합니다. 다른 웹 응용 프로그램을 사용하여 연결할 수있는 IIS의 별도 사이트에서 호스팅 할 수 있습니다. 별도의 WCF DataService 프로젝트 템플릿이 필요하지 않습니다.

당신이 얻을이 같은 다음 참조 :

웹 사이트 -> WCF 서비스 웹 사이트 -> (모델 용) EM
프로젝트
WCF 서비스 -> EM 프로젝트

+0

답장을 보내 주셔서 감사합니다, Rody! 그동안 나는 질문에 대한 정보를 찾았습니다. (제 대답을보십시오). 편의상 WCF DataService를 웹 응용 프로그램 프로젝트에 추가하기 시작했습니다. – Slauma

0

나는이 기사 (http://msdn.microsoft.com/en-US/library/cc668805.aspx)가 질문에 대한 중요한 힌트를 제공한다고 믿는다. 특히 다음 인용문은 WCF DataServices에 대한 별도의 프로젝트 템플릿이없는 이유를 설명 할 수 있습니다.

ADO.NET 데이터 서비스는 독립 실행 형 네트워크 서비스가 아닙니다. ADO.NET 데이터 서비스는 REST (Representational State Transfer) 진입 점에 대한 수신 요청에 대해 네트워크 소켓에 바인딩하고 수신 대기하지 않습니다. 대신 ADO.NET 데이터 서비스는 핵심 서버 네트워킹 기능을 제공하는 Windows Communication Foundation (WCF)과 같은 환경에서 호스팅되는 구성 요소입니다. 호스트는 네트워크와의 직접적인 상호 작용을 처리하고 캐싱, 확장 성 및 인증 모듈을 지원합니다.

그리고 프로젝트에서 WCF DataService의를 개최 할 수있는 옵션 는 것 같다 :

  • ASP.NET 응용 프로그램
ADO.NET 데이터 서비스는 ASP.NET 응용 프로그램 내에서 WCF 끝점으로 호스팅 할 수 있습니다. 이 구현에서 WCF와 ASP.NET은 ADO.NET 데이터 서비스에 대한 네트워크 상호 작용을 처리합니다.
  • 또는 WCF ServiceHost를 또는 WebServiceHost
ADO.NET 데이터 서비스는 WCF ServiceHost를 또는 WebServiceHost 클래스를 사용하여 호스팅 할 수 있습니다.