저는 약 1 년 동안 웹 서비스를 작성해 왔으며 데이터베이스에서 데이터를 가져 와서 사용자에게 표시하고 다시 사용하는 프로세스가 비효율적이라고 생각됩니다 .웹 서비스의 데이터 변환에서 비효율적 인 것으로 나타남
이 질문의 목적은 내가 모범 사례를 다음과 그냥 추가 작업을 추가하지하고 있는지 확인하는 것입니다. 여기에
는 최종 사용자와 백업하려면 DB에서 데이터에 대한 경로입니다.- 서비스는 데이터 액세스 계층 (DAL) 객체로 데이터베이스에서 가져옵니다.
- 서비스 DataContract로 변환하여 클라이언트에 보냅니다.
- 클라이언트는 DataContract를 얻고/객체가
- 클라이언트가 DataContact에 클라이언트 측 객체를 변환 추가
- 클라이언트/사용자가 변경을 수행 객체를 표시하는 클라이언트 측 객체로 변환하고 서비스 로 전송
- 서비스는 DataContract를 받아서 데이터 액세스 계층 개체로 변환합니다.
- 서비스는 데이터베이스를 변경/새 오브젝트로 업데이트합니다.
개체를 추적하는 경우 개체가 4 번 변환됩니다 (DAL-> 계약 -> 클라이언트 개체 -> 계약 -> DAL). 앱이 데이터를 수평 확장하기 시작하면 많은 전환이 발생하는 것 같습니다.
이렇게하는 것이 최선의 방법입니까? 내가 놓친 게 있니?
중요한 경우 Visual Studio 2008, WCF, LinqToSQL 및 Windows Mobile 5.0 (NETCF)을 사용하고 있습니다.
클라이언트가 DataContract를 직접 사용할 수없는 이유는 무엇입니까? –
@ 존 손더스 : 그렇게 할 수있을 것 같습니다. (또는 적어도 그것의 자손을 사용하십시오.) 웹 서비스를 시작했을 때, 그렇지 않다면 더 좋다고 들었습니다.그것은이 질문의 목적의 종류입니다. 어떤 전환이 필요하며 어느 전환이 필요하지 않습니다. – Vaccano
몇 가지 번호를 추가 할 수 있습니까? 일부 메모리 내 변환은 성능에 현저한 영향을 미치지 않아야합니다 (데이터베이스에서 데이터를 가져 와서 와이어를 통해 전송하는 경우, 심지어는 XML로 직렬화 할 수도 있음) – Alex