2012-10-21 2 views
0

프로젝트에서 EF 및 LINQ를 사용하기 시작했으며 사용할 최적의 방법/패턴을 결정하려고합니다. 지금까지는 DataSets 및 XML 구성을 기반으로하는 사용자 지정 지속성 프레임 워크를 사용했습니다. 기본적으로 XML 구성 파일과 DataSets을 읽고 모든 필요한 속성/연결/메서드가있는 객체 지향 클래스를 생성하는 VS 사용자 지정 도구였습니다. 이 자동 생성 클래스는 UI에서 사용되었으며 UI에 필요한 것만 표시 할 수있는 유연성이있었습니다.Entity Framework, LINQ 및 패턴

이제는 EF 및 LINQ를 사용하여 UI에서 자동 생성 클래스 및 모든 LINQ 항목을 직접 사용할 수 있다는 생각에 만족하지 않습니다. 이 접근 방식은 UI와 데이터베이스간에 매우 긴밀한 통합이 필요합니다.

그래서 모든 EF 및 LINQ 기능을 숨기고 UI가 할 수있는 일을 기본적으로 제한하는 패턴을 찾고 있습니다. 이 작업을 수행하는 표준 방법이 있습니까?

답변

0

찾고있는 패턴은 일반적으로 Model-View-ViewModel 또는 MVVM입니다. http://csharperimage.jeremylikness.com/2010/04/model-view-viewmodel-mvvm-explained.html

+0

MVVM은 UI에서 데이터 영역을 분리하는 것과 아무 관련이 없습니다. MVC와 유사하지만 Controller를 ViewModel로 대체 한 UI 패턴입니다. 데이터 변경 사항을 관찰하고 변경 사항을 다른 옵저버에게 복제하는 것에 관한 것입니다. 일반적으로 MVVM은 Silverlight 또는 WPF (때때로 자바 스크립트)와 같은 것으로 만 사용됩니다.이 질문의 맥락에서는 의미가 없습니다. –

+0

MVVM에 대한 최소한의 이해는 사용자의 UI와 모델 (모델이 데이터베이스,이 경우 또는 서비스 호출 또는 XML 문서 등)에서 분리되는지 여부와 관련이 있습니다. UI는 ViewModel 뒤에 실제 모델이 있는지 전혀 모릅니다. ViewModel 만 UI에 관심을 가져야합니다. 나는 이것이 그가이 경우에 따라야 할 적절한 패턴이라고 생각한다. – Thebigcheeze

+0

올바르지 않습니다. ViewModel은 여전히 ​​UI의 응집 된 부분입니다. 책임을 자신의 구성 요소로 분리합니다. 이 모델은 UI에 매우 많이 알려져 있습니다 (그렇지 않으면 UI가 UI에 액세스 할 수 없게됩니다). MVVM의 ViewModel을 데이터 모델의 "캐시"라고 생각하면 실제 데이터 액세스는 다른 계층이나 계층에서 수행되어야합니다. –

1

은 무엇 당신이 찾고있는 것은 n 계층 응용 프로그램입니다 :

다음은 디자인 패턴의 높은 포인트를 칠 것 같다 튜토리얼입니다. 아키텍처와 같은 패턴이 아닙니다. 앱을 두 개 이상의 부분으로 나눕니다. 일반적으로 UI, 비즈니스 및 데이터로 구성됩니다. 당신은 Facade 나 Repository 패턴과 같은 다른 패턴을 통해이를 구현할 수 있습니다.

또한 서비스 레이어를 사용할 수도 있습니다.이 서비스 레이어는 파사드 또는 웹 서비스로 구현할 수 있습니다.

당신은 이상적으로, DTO의 또는 데이터 전송 개체라는 개체를 통해 데이터를 전달하는 것입니다, 당신은 당신의 UI에 뷰 모델을 사용하여 이러한 DTO에의 적응 수 (또 다른 포스터가 잘못 언급 MVVM와 혼동하지.)

그 외에도, 당신이 만드는 앱의 유형에 따라 그 부분이 다릅니다. 데스크톱 응용 프로그램, 서버 응용 프로그램, 웹 응용 프로그램 등.