와우 와우 와우. 그들은 모두 하나의 DB를 공유합니까? 그럴 경우, 아니, 아니, 아니. DB가 공유되지 않는다면, 확실히 DLL입니다.
올바른 선택은 웹 서비스입니다. 이유는 너무 간단합니다.
1) 도메인 모델과 비즈니스 로직의 일관성. 열에 열거 형을 저장하고 열거 형을 추가하고 하나의 응용 프로그램에 배포한다고 가정 해 보겠습니다. 이제 다른 두 응용 프로그램이 중단됩니다.
2) 쉬운 배치. 하나의 변경 = 하나의 배포. 그것이 dll이라면, 하나의 변경 = 3 배포.
3) DB 트랜잭션 및 동시성 제어. 하나의 앱 도메인에서 더 쉽게 해결할 수 있습니다.
다른 사람들이 제안한 단점에 대해서는 너무 부분적입니다.
1) 앱 도메인에서 디버깅하는 데 어려움이 있습니다. WSDL을 통해 가능한 예외를 오류 예외로 게시해야합니다. 호출 클라이언트는 이러한 오류 예외를 적절하게 처리해야합니다. 호출하는 클라이언트와 서버 모두에서 단위 테스트와 mock을 설정하는 것도 매우 쉽습니다. 중단 점은 분산 응용 프로그램을 디버깅하고 작업하는 올바른 방법이 아닙니다. 할 수 있고, 어렵지도 않습니다. 나는 그것이 올바른 접근이라고 생각하지 않습니다.
2) 성능. WCF를 사용하면 구성을 통해 다른 바인딩을 설정할 수 있습니다.기본 http (디버그하기 쉽습니다)에서 네이티브 호출 성능을 얻기 위해 사용할 수있는 명명 된 파이프까지. 이 결정은 (거의 당신이 고려해야 할 바인딩이 다른 몇 가지 단점이 있습니다.) 개발 후에도 결정할 수 있습니다.
3) 보안. WCF가 보안을 처리하지 않는다고 말하는 것은 재미 있습니다.
마지막으로, 나에게서 실제 죄수 :
1) 더 복잡합니다. 동의했다. 상황이 다르면 응용 프로그램 설계가 더 어려워집니다. 그건 두 가지 방법으로 간다. 이러한 복잡성으로 인해 계층이 명확하게 구분됩니다. 프레젠테이션 컨텍스트는 프레젠테이션 수준에서 그대로 유지해야합니다.
2) 더 많은 계획이 필요합니다. WCF 웹 서비스 계약을 설계하는 것은 그 자체가 예술입니다.
3) 구성을위한 관리 오버 헤드. 더 새로운 개발자들에게는 어려운 일이지만,이 장애물을 빨리 극복 할 수 있기를 바랍니다. WCF 구성은 강력하면서도 복잡한 복잡한 양날 검입니다 (일부의 경우).
내 개인적인 경험은 DB가 공유되고 DLL이 여러 응용 프로그램 도메인에서 사용되는 경우 언제든지 웹 서비스 경로로 갈 수있을만큼 개발자 팀을 해머하지 않았 음을 후회합니다.
그럼 최종 결정은 무엇입니까? 지금은 4 년이되었습니다.
질문이 게시 된 시간입니다. 이 비슷한 질문을 행동 해보십시오. 대답은 웹 서비스입니다. http://stackoverflow.com/questions/7877916/web-service-vs-dll-pros-and-cons –
예 - 그게 괴사예요. 당시 WCF는 문제가되지 않았습니다. DLL은 우리가 간 방법이었고 앱은 4 년 동안 프로덕션에서 행복하게되었습니다! –