오늘이 문제로 고생하고 있습니다.API 디자인 : 데이터 영역 개체를 사용하거나 복사/복제 하시겠습니까?
웹 기반 응용 프로그램 다시 작성; 나는 그런 방법으로이 작업을 수행하고 싶습니다 :
- 모든 거래는 웹 서비스 API를 통해 이동 (같은 것을 http://api.myapplication.com) 고객은 데이터로 작업 할 수 있도록 우리가 제공하는 것과 동일한 방식으로/제공되는 웹 인터페이스를 통해 수행 할 수있는 모든 작업은 프로그래밍 방식으로도 수행 할 수 있습니다.
- 이 질문과 관련이없는 몇 가지 설계상의 이유로 클래스 라이브러리는 데이터 계층 (SQL + Entity Framework)의 역할을합니다.
문제는 내가 Entity Framework 객체를 노출하지 않기로 결정한 경우입니다. 웹 서비스 인 을 사용하면 Entity Framework 객체의 "API"버전을 다시 만든 다음 속성을 앞뒤로 복사하는 모든 "프록시"코드를 쓸 수 있습니다..
여기에서 가장 좋은 방법은 무엇입니까? 그것을 빨아 들이고 각 객체에 대한 API 모델 클래스를 만들거나 Entity Framework 버전 만 사용합니까?
이 길 아래에 있었고 버전/하위 호환성, 다른 두통을 다루는 여러분의 바로 가기가 여기 있습니까?
는 편집 : 피드백 후, 무슨 일이 더 의미가있을 수 있습니다 :
- 데이터/서비스 레이어 - 공개 웹 인터페이스를 직접뿐만 아니라 웹 서비스 API
- 웹에서 사용하는 DLL 서비스 API - API 특정 객체 및 프록시 코드가 포함 된 거의 모든 서비스 계층 메소드/객체의 복제본
"고객 서비스에 영향을 미칠만한 결정을 내릴 때 우리는 고통을 느낄 수 있습니다." – Brandon
고객에게 제공하는 것과 동일한 서비스 계층을 사용하는 것이 좋지만 WCF 전송없이 직접 사용해야합니다 (직접 서비스 메서드 호출). –
조금만 설명하면 : WCF는 각 요청 주위에 엄청난 양의 추가 "래핑"을 추가합니다. 웹 사이트가 끊임없이이 랩핑을 작성하고 유선을 통해 전송하면 내부 네트워크 트래픽이 급격히 증가 할 수 있으므로 인위적으로 시스템의 가용성을 저하시킬 수 있습니다. 그것은 의미가 없으며 일반적으로 눈살을 찌푸리게됩니다. – NotMe