2011-09-07 3 views
1

.NET 응용 프로그램을 만들 때마다 DAL (데이터 액세스 계층) 또는 BL (비즈니스 계층)과 같은 여러 아키텍처를 고려해야합니다. 이 계층에서는 일반적으로 데이터베이스와 상호 작용하는 코드를 작성합니다. 이러한 레이어에 작성된 이러한 메소드와 상호 작용하기 위해 몇 가지 옵션이 있습니다. 여기에 초점은 프로젝트 참조 및 서비스 참조입니다..NET에서 프로젝트 참조와 서비스 참조 간의 차이점

먼저 하나입니다 - 오른쪽 두 번째는 프로젝트 탭에서 참조 < < 선택 프로젝트입니다 추가 프로젝트 < < 클릭 - ASMX/WCF 서비스 프로젝트에서 그들을 호스트 만듭니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭 < < 서비스 참조 < < 상호 작용할 서비스를 선택하십시오.

성능 또는 다른 매개 변수의 측면에서이 두 옵션의 차이점은 무엇입니까?

답변

1

성능면에서 차이가 있지만 서비스와 직접 프로젝트 참조가 모두 동등하게 비교 가능한 시스템에서 정확히 동일한 계산을 수행하는 경우 일반적으로 프로젝트 참조는 성능 저하를 줄입니다.

당신은 사과와 사과를 비교하지 않습니다.

프로젝트을 참조하면 Visual Studio에서 참조 된 프로젝트를 컴파일하고 기본 프로젝트에 출력 (대개 .dll)을 포함시킵니다. 즉, 응용 프로그램과 함께 올바르게 컴파일 된 (바이트 코드로) 코드가 있음을 의미합니다. 프로젝트를 참조하는 것은 응용 프로그램 내에있는 약간의 코드에 대한 참조로 끝나기 때문에 a, .dll 또는 com 구성 요소를 직접 참조하는 것과 유사합니다. 발생하는 모든 처리가 코드와 동일한 시스템에서 발생합니다.

서비스에 대한 참조는 Visual Studio에서 서비스 구성 방법에 따라 HTTP, TCP 또는 다른 유효한 메서드를 통해 네트워크를 통해 서비스를 호출하는 프록시 클라이언트 클래스를 생성합니다. 서비스가 귀하의 컴퓨터에있을 수도 있고 전세계 중서부에 살 수도 있습니다. 해당 서비스에서 수행 된 처리가 해당 시스템에서 수행되고 있습니다.

정확히 동일한 계산을 수행하는 경우 프로젝트 참조가 프로젝트 참조보다 성능이 더 우수하다고 말한 이유는 서비스가 계산을 수행하고 네트워크 연결을 설정하고 네트워크를 처리하는 오버 헤드가 있기 때문입니다 트래픽 등.

물론 다른 요인이 성능에 영향을 줄 수 있습니다. 서비스는 성능 문제가있는 구형의 오래된 컴퓨터에서 호스팅 될 수 있습니다.이 경우 서비스 시나리오에서 성능이 더욱 악화 될 수 있습니다.

반면에 프로그램이 느린 PC에서 실행 중이지만 서비스가 과급 된 서버에서 실행 중이면 빠른 서버에서 처리가 수행되고 있다는 사실이 네트워크 트래픽의 성능에 영향을 미칠 수 있습니다.

덧붙여 말하면 서비스 참조 (서비스 참조를 추가 할 때 얻을 수있는 것)는 SOA (서비스 지향 아키텍처)의 교리입니다. 기본 설명, 이점 및 용도는 Wikipedia : http://en.wikipedia.org/wiki/Service-oriented_architecture에서 다룹니다. 그것은 어느 곳에서도 좋은 출발점입니다. 더 자세한 정보가 필요하면 웹 서비스 (SOAP 및 REST 종류 - Visual Studio에서 SOAP 웹 서비스를 멋지게 처리 함)를 살펴보고 SOA 세계에서 Microsoft의 최신 제품인 WCF를 살펴볼 수 있습니다.