여기에 몇 가지 용어가 혼란스럽고 .Net 3.5 SP1에서 수정 된 알려진 결함을 언급 한 것 같습니다.
런타임시 값 비싼 작업이었던 WCF 프록시를 다시 만드는 작업이있었습니다. 이것은 .Net 3.5에서 프록시 객체를 투명하게 캐시하기 위해 개선되었습니다 MSDN Blog.
프록시의 "코드 유지 관리"를 말하는 경우에는 클라이언트에서 인터페이스를 구현하는 것이 전부입니다. 인터페이스를 유지해야하는 경우 기본 SOA로 돌아갑니다. 서비스가 액세스 및 가능한 한 많은 정보를 제공하는 경우, 사용자의 서비스가 아직 고려되지 않은 목적으로 사용된다고 가정하면 인터페이스를 작성한 후에 인터페이스를 수정할 필요가 없을 것입니다. 또한 업그레이드 경로도 고려해야합니다.
Juval Lowy는 자신의 저서에서이 문제에 대해 좋은 토론을하고 있습니다.이 책은 약간 고밀도이지만 약간의 좋은 정보가 있습니다.
조언 : WCF는 코드를 매우 간단하고 우아하게 만들 수있는 많은 기능을 제공합니다. 유지 관리가 걱정되면 인터페이스를 작성하십시오.
string ServiceMethod(string xml) //returns XML
이렇게하지 마십시오. 좋은 유지 보수가 가능한 인터페이스와 좋은 데이터/메시지 계약을 설계 할 시간을 가지십시오. 그러면 WCF는 상호 작용을 위해 서비스를 호스팅 할 때 무료로 얻을 수있는 모든 추가 기능을 제공합니다.
+1 : 계약을 확장해도 이전 버전과의 호환성이 깨지지 않습니다. 클라이언트가 계약에서 새 메소드를 사용하지 않는 경우 프록시를 재생성 할 필요가 없습니다. –