2010-01-14 4 views
0

질문 후 this 질문을 계속하면 쿼리를 처리하기 위해 클라이언트와 데이터베이스간에 서버 측 WCF 서비스를 배치하는 것이 현명한 생각입니까?SQL 쿼리 처리를위한 WCF 서비스 -

네트워크의 부하를 받고 데이터베이스와 왕복하는 횟수를 줄이는 것이 좋습니다.

나는 Entity Framework를 사용하여 서비스의 데이터베이스를 쿼리하고 네트워크를 통해 요청하는 응용 프로그램에 결과를 보냅니다.

나는 이것이 어리석은 생각인지 궁금한가요?

최대 10 개의 클라이언트와 1 개의 서버가 있습니다. 때때로 1000 개의 레코드를 요청하는 많은 쿼리는 때론 꽤 많은 계산을 필요로합니다.

답변

1

글쎄, 처음에는 정말 똑똑한 생각 같습니다.

하지만 무엇을 돌려 주시겠습니까 ?? WCF 계약은 반환 값에 대해 매우 구체적이어야합니다. 고객 목록인지, 주문 세부 정보가 포함 된 단일 주문인지 여부를 알려줘야합니다.

일반적으로이 기능을 사용하려고하면, SQL 또는 EF/Entity-SQL 쿼리를 실행하려는 모든 종류의 쿼리는 너무 까다 롭습니다. 매우 일반적인 방식으로 작동하려면 거의 List<object> 또는 List<BaseBusinessClass>으로 무언가를 "벙어리"해야합니다.

+0

@marc_s 나는 '저장소'의 의미에 관심이 있습니다 ... 자세히 설명해 주시겠습니까? 그래서, 당신은 서비스를 사용하지 않거나 매우 특정한 것에 대해서만 사용합니까? –

+0

@TOny : Martin Fowler가 정의한 저장소 패턴의 저장소. http://weblogs.asp.net/fredriknormen/archive/2008/04/24/what-purpose-does-the-repository-pattern-have.aspx 또는 Google 또는 Bing에서 "저장소 패턴"을 검색하십시오. –

+1

@ 토니 : 모든 것을 쿼리하고 부엌 싱크대를 쿼리 할 수 ​​있어야하는 "범용 다용도"WCF 서비스가 얼마나 도움이되는지 잘 모르겠습니다. 고객 서비스, LoginService, ProductService 등의 서비스를 특정화하는 것을 선호합니다. - 일이 훨씬 쉬워집니다. IMHO –

2

나는 프로토콜 때문에 효율성이 떨어질 것이라고 생각한다. wcf는 네이티브 SQL 서버 프로토콜보다 앞뒤로 사물을 더 많이 바이트를 필요로 할 것이다.

관련 문제