2013-04-01 4 views
0

나는 세 가지 프로젝트가 있습니다WCF 비즈니스 오브젝트 또는 DataContracts는

이 가
  • WCF 서비스 프로젝트는
  • 클래스 라이브러리 프로젝트 WCF 서비스를 소비 (인터페이스 및 구현)
  • 영문 웹 프로젝트 (클라이언트) 내 보유 비즈니스 객체 (WCF 프로젝트와 클라이언트 모두 공유)

나는 WCF 서비스 구현 클래스 파일에 SQL에서 데이터의 일반적인 목록을 검색하는 메소드를 가지고있다. 프로젝트)를 만들고, System.Web.Script.Serialization.JavaScriptSerializer를 사용하여 데이터를 serialize하고 결과를 문자열로 반환합니다.

는 웹 클라이언트는이 문자열을 사용하고이 인트라넷 응용 프로그램입니다

(비즈니스 오브젝트를 보유하고 프로젝트를 참조) 적절한 비즈니스 오브젝트로 직렬화 복원하고 내가 제대로이 일을하고 있는지 확인하려면.

내 질문은 :

  • 내가 대신 비즈니스 오브젝트의 DataContracts를 사용 하는가? DataContracts를 사용할시기와 비즈니스 개체를 사용하는시기를 잘 모릅니다.
  • DataContracts를 사용하는 경우 System.Web.Script.Serialization.JavaScriptSerializer를 사용하지 않아야합니까?

어떤 설명도 가능합니다.

답변

0

물론 하나의 대답은 없습니다. 나는 질문이 당신이 처음에 비즈니스 객체를 사용하기를 원하는지 아닌지, 그렇지 않으면 나의 네 번째 요점은 그것을 거의 다루고 있다고 생각한다.

은 데이터 계약처럼 보이는 경우 비즈니스 오브젝트를 사용하십니까 것, 그들은 공용 속성의 무리하고 자녀/손자 등의 컬렉션을 포함하지 않는, 즉

경우 비즈니스 오브젝트를 사용하지 마십시오 그들은 필요없는 데이터가 많이 들어 있습니다. 예를 들어, 수백 개의 도면 요소로 그리드를 채우는 것은 해당 그리드에 특정한 데이터 계약을 요구합니다.

웹 서비스에 복제해야하는 유효성 검증 논리 등이 포함 된 비즈니스 객체를 사용하십시오.

어쨌든 데이터 계약을 사용하여 비즈니스 개체를 완전히 팽창 시키려면 비즈니스 개체를 사용하십시오.

.net 코드가 아닌 서비스 인터페이스를 사용하려는 경우 비즈니스 개체를 사용하지 마십시오.

일괄 처리를 대규모로 구성해야하는 경우 비즈니스 개체를 사용하지 마십시오.

그들이 (웹 서버 또는 애플리케이션 서버)

하지 귀하의 케이스하지만 여기서 "알고"해야하는 경우 비즈니스 오브젝트를 사용하지 마십시오 : 당신이 리치 클라이언트를 구축하는 경우 비즈니스 오브젝트를 사용하십니까 데이터 입력.

지금 당장은 그 이상이 나에게 발생하는지 확인합니다.:)

+0

응답 해 주셔서 감사합니다. 귀하의 답변에 대한 몇 가지 질문 : – alpha

+0

"직렬화를 대규모로 구성해야하는 경우 비즈니스 개체 사용 금지"- 필자는 시스템에서 직렬화하는 서비스 클래스가 아닌 다른 유형의 직렬화로 클래스를 꾸미지 않습니다. Web.Script.Serialization.JavaScriptSerializer. "대량으로 직렬화를 구성"한다는 것은 무엇을 의미합니까? – alpha

+0

또한 비즈니스 개체가 datacontracts처럼 보이고 비즈니스 개체를 완전히 팽창시키는 데 사용되기 때문에이 경우 비즈니스 개체를 사용할 수있는 것처럼 보입니다. 나는 DataContracts를 사용하지 않을 것이다. 확인하고 싶습니다. 필자는 비즈니스 개체와 datacontract를 모두 사용하고 두 가지를 매핑하는 데 automapper를 사용하는 것이 좋습니다 사이트를 보았습니다. – alpha