2017-11-18 10 views
0

.NET WFC 이중 엔드 포인트를 gRPC로 대체 할 것을 고려하고 있습니다. 대부분의 프레임 워크와 마찬가지로 WCF는 데이터를 단순한 계약 오브젝트로만 사용할 수 있으므로 전산 코드를 사용하는 것은 처리 코드에서 사용할 수있는 것입니다 (해당 커플 링을 사용해도 괜찮은 경우). 하지만 gRPC와 GPB에서는 그렇게 할 수없는 것처럼 보였고 두 가지 옵션이 있습니다. 하나는 통신의 양 끝에서 기존 .NET 객체를 변환하는 것이므로 추가 노동력/복잡성이 추가됩니다. 다른 하나는 비즈니스 코드를 전송 기술에 연결하는 비즈니스 버퍼에 프로토콜 버퍼 메시지를 축 어적으로 사용하는 것입니다.Google 프로토콜 버퍼를 일반 객체로 변환하는 방법

내 질문은 .. gRPC를 사용하고 비즈니스 코드에서 버퍼의 직접 사용을 피하는 가장 좋은 해결책은 무엇입니까?

답변

0

둘 다 유효한 옵션 일 수 있습니다 : 복사 또는 직접 사용.

더 크고 더 깊은 시스템에서는 클라이언트를 손상시키지 않고 시스템에 더 많은 필드와 변형을 줄 수있는 "내부"개체로 변환하는 것이 좋습니다. 그 "내부"객체는 메시지가 될 수도 있습니다. 이 경우 복제가 기능입니다.

작고 얕은 시스템에서는 복사하지 않고 프로토콜 버퍼를 직접 사용하기 쉽습니다. 언젠가는 이 proto의 다른 버전으로 변환하거나 POJO 또는 이와 유사한 것을 만들 필요가 있다는 것을 알아야합니다. 그러나 그 날이 결코 오지 않을 수도 있습니다.

그래서 문제는 실제로 "비즈니스 코드에서 프로토콜 버퍼를 사용해도 괜찮습니까?" 그러나 실제로 질문은 "시스템 내부가 API와 별도로 개발되도록 허용하는 것이 가치가 있습니까?"