2011-09-30 3 views
0

WCF 메서드의 반환 형식으로 반환하는 DataSet이 좋은 방법이 아니라고하는 사람들이 들었습니다. 내 메서드의 반환 형식으로 DataSet을 사용하면 어떤 문제가 발생합니까? DataSet 대신 Objects List를 사용하면 어떤 이점이 있습니까?왜 WCF 메서드의 반환 형식으로 DataSet 대신 Object를 사용해야합니까?

상태 개체 (ID, StateCode, StateName) 또는 데이터 집합 목록 보내기?

반환 유형으로 DataSet을 사용하는 것이 이점이 있다고 친구에게 들었습니다. 내일 클라이언트가 말하고있는 경우 (예를 들어 내가 서비스를 게시하고 일부 외부 고객이이를 사용하고 있다고 가정) 고객이 물체에 대한 정보를 추가로 원한다고 말하고 있습니다 (예 : 국가에 대한 "Notes"필드 필요). 내 계약의 서명을 변경해야합니다. 난 그냥 내 데이터 세트에 메모를 추가합니다. 기존 계약이 중단되지 않습니다.

데이터 집합을 사용하면 성능 문제가 있다고 들었습니까? 얼마나 큰 영향입니까? 다른 문제는 무엇입니까? 왜 사람들이 DataSet을 작성하는 것이 나쁜 것입니까?

좋은 코딩 방법으로 전환하여 좋은 개발자로 발전하려고 노력하고 있습니다.

+0

나는이 사이트가 일을 배우기에 좋은 소식통이라고 생각한다. 이 질문이 닫힌 것을보고 놀랐습니다. 어떤 코딩 연습을 사용해야하는지 질문을했습니다. 나는이 웹 사이트의 전체적인 생각이 정보를 공유하고 더 나은 프로그래머가되도록 사람들을 안내하는 것이라고 믿는다. 나는 어떤 사람들이 적절한 대답을 줄 수 있다면이 질문을 끝내기를 바란다. 나는 왜이 질문이 실제로 "유형"또는 "특정한 experitse"유형의 응답이 없는지 이해하지 못한다 !!! 나는 "자신을 바로 잡기위한 전문 지식을 찾고있었습니다. 나는 초보자입니다! – Shyju

답변

1

데이터 집합에 플랫폼 세부 정보가 누출됩니다. 데이터 집합은 마이크로 소프트 구현이며,이를 서비스에 노출하면 노출되는 데이터와 동일한 플랫폼을 사용하는 클라이언트 만 서비스를 사용할 수 있습니다. 이는 기본적으로 서비스의 모든 부분에 대한 Microsoft 플랫폼에서만 서비스를 사용할 수있게합니다. 다른 한가지는 직렬화 될 때 데이터 집합과 같이 데이터 무언가와 같이 클라이언트에 관련없는 데이터가 많이 포함되어 있다는 것입니다.

그리고 "Notes"예제와 관련하여 서비스를 정의 할 때 경계가 명시 적이어야합니다. 따라서 외부 세계는 여러분이 서비스와 구조를 통해 전송하는 데이터 유형이 무엇인지를 알아야합니다.

관련 문제