2012-04-13 3 views
2
내가 서비스로 로컬 몇 가지 논리를 노출 할 필요가

...간단한 경량 서비스 계층

개체는 전송/수신의 논리가 매우 큰에서, 정보는 민감하고 논리가 외부에 노출 될 필요하지 않습니다/로컬 서버에서만 사용됩니다.

일부 MVC 개발자는 WEB API 서비스를 사용하여 노출되어야한다고 주장하고 있습니다. 구현할 가치가 있습니까?

웹 API를 사용하면 MVC에 훨씬 더 통합되어 결과 표시가 훨씬 쉬워진다 (나는이 측면에 대해서는 아무것도 모른다). 나의 두려움은 복잡한 인증을 구현하고 성능을 희생해야한다는 것이다.

이 시나리오에 맞는 더 간단한 경량 서비스 계층이 있습니까? WCF 명명 된 파이프는 나에게 논리적으로 보이거나 그냥 클래스 라이브러리로 참조합니다. 예. 설정 파일은 고통이지만 세상의 끝은 아닙니다. 기본적으로 우리는 단지 일부 논리를 로컬로 제공하고자합니다.

답변

4

웹 API는 Microsoft '최고 지금까지의 고급 HTTP 구현입니다. 따라서 이전에는 none처럼 HTTP를 채택하고 정상적인 MVC에서는 불가능했던 많은 유연성을 허용합니다.

콘텐츠 협상과 같은 기능은 내부 또는 외부의 모든 서비스에있어 진정으로 중요합니다.

그러나 WCF는 순수한 RPC 프레임 워크이므로 더 나은 응집력을 제공합니다. 그러나 그것은 확실히 가벼운 무게가 아닙니다. 블로그 here에서이 문제를 논의하고 일부 비교를 수행합니다 (뻔뻔한 플러그!).

개인 환경에서 메서드를 호출하는 것이 좋으면 WCF가 좋습니다. 그러나 named-pipe/TCP는 일부 방화벽 조건에서 작동하지 않을 수도 있음을 기억하십시오.

웹 API로 잃어 버리는 또 다른 사항은 계약입니다. 웹 API 영역에는 WSDL이 없습니다. 당신이 어떻게 보느냐에 따라 좋거나 나쁠 수 있습니다. 귀사가 서비스 계약에 매우 엄격한 경우 WCF가 더 나은 선택입니다.

+0

정보 주셔서 감사합니다.하지만 내가 마스트에 색상을 고정하도록 요청한 경우 어떤 것을 선택하겠습니까? – baileyswalk

+0

개인적으로 웹 API를 선택합니다. 변경 사항을 더 잘 받아들이고 HTTP/REST에 대한 개인적인 열정이 있기 때문입니다. – Aliostad

+0

@baileyswalk 다른 사람들에게 더 많은 코멘트가 올 때까지 기다리십시오. 나는 다른 사람들도 기여하기를 바랍니다. – Aliostad

1

Aliostad는 정말 좋은 점이 있습니다. 나는 개인적인 경험 이외에 추가 할 것이 많지 않다. 나는 최근에 WCF에 심각한 구성 문제를 겪은 후 mvc를 사용하여 웹 서비스를 만들었다. 그리고 그것은 엄청나게 쉬웠다. 귀하의 질문은 가볍고 간단한 구현을 요구합니다 - 그 점에서 WCF를 통한 MVC Web API는 분명히 대답입니다.

1

서비스 계층이 휴식 지향 인 경우 servicestack을 살펴볼 수 있습니다.

이것은 구현하기가 정말 쉽고 성능을 희생시키지 않으며 ASP.NET mvc의 액션 필터와 같은 속성 또는 상속을 사용하여 보안을 쉽게 구현할 수 있습니다.