2011-12-05 2 views
1

Entity Framework 데이터 모델과 이러한 엔터티를 사용하여 일반적인 기능을 제공하는 클래스 모음이 포함 된 .NET 4 클래스 라이브러리가 있습니다. 이러한 클래스는 다양한 유형의 응용 프로그램에서 사용됩니다.다른 클라이언트에 Entity Framework 엔터티 노출

내 질문에 클래스 라이브러리에 포함 된 엔터티를 다른 응용 프로그램에 노출시키는 것이 좋습니다.

+0

왜 그렇게되지 않을까요? –

답변

1

당신의 실체가 당신의 지속성 도메인 요구 (또는 외부 응용 프로그램의 요구를) 요구를 충족 할만큼 고급 훨씬 또는 "계층 간 오염"의 낮은 가능성이없는 경우 , 그렇다면 나는 좋은 예라고 말합니다. 또한 민첩한 개발 감각으로 좋은 연습 일 수 있습니다.

더 긴 시간이 주어지면 순수 주의자가 당신의 성향이 더 크다면, 예를 들어 지속성, 유효성 검사를 다루기 위해 속성을 추가하기 시작하면 결합을 증가시키기 때문에 나쁜 습관이되기 시작합니다 , 및 직렬화.

피해야 할 몇 가지 방법은 효과를 최소화하기 위해 AutoMapper, 생성 된 코드 또는 손으로 코딩 한 파사드, 서비스 계층 및/또는 어댑터와 같은 것을 사용하는 것입니다.

+0

대부분의 경우 클래스 등은 내부 프로젝트에서 사용되므로 엔티티 노출은 허용 될 수 있다고 생각합니다. 다른 외부 팀을 위해 api/sdk를 만들 계획이 있습니다. DTO 및 AutoMapper에 대한 좋은 후보가 될 것 같네요. – MotoSV

0

데이터베이스가 변경 될 때마다 엔티티 프레임 워크가 변경되기 때문에 적절한 API를 제공하지 않는다고 생각합니다. 대신 외부 코드와 액세스해야하는 각 엔티티 사이의 중개자 역할을하는 데이터 전송 객체를 만드는 것이 좋습니다. 또한 라이브러리의 내부와 외부 '클라이언트'를 중재하는 Facade 클래스 (서비스 계층)를 만드는 것을 고려해보십시오. DTO들에 대한 좋은 기사 : http://msdn.microsoft.com/en-us/magazine/ee236638.aspx

관련 문제