2011-03-07 6 views
0

그래서 개념을 이해하려고 정말로 애를 썼지 만 진전을 이루고 있습니다.NDD 디자인 질문이있는 DDD/SoC?

어쨋든 저는 POCOS 접근 방식의 Service/Repository/UnitOfWork/EF 4 접근법을 사용하고 있습니다.

내 MVC 응용 프로그램은 참조 저장소 인 System.Data.Entity를 참조하여 Ninject의 바인딩을 거기에있는 구체적인 클래스에 설정할 수 있으며 인터페이스 구동 디자인을 사용하는 한 EF에 MVC 응용 프로그램. 옳은?

System.Data.Entity를 참조하는 어셈블리를 참조하는 것만으로 MVC 응용 프로그램을 EF에 묶지 않을 수 있습니까?

내가 틀렸다면 누군가 MVC 응용 프로그램의 Ninject 모듈에서 저장소 및 단위 모음의 구체적인 클래스에 인터페이스를 바인딩하는 방법을 알려주십시오.

의미가 있습니까?

+0

종속성 트리로 생각합니다. 귀하의 경우, 루트는 mvc 응용 프로그램입니다. 루트는 자식 (저장소 계층) 만 말할 수 있습니다. 그러나 모든 것이 작동하려면 루트의 모든 자손이 있어야합니다. – driushkin

답변

3

System.Data.Entity를 참조하는 어셈블리를 참조하는 것만으로 MVC 응용 프로그램을 EF에 묶지 않을 수 있습니까?

예, 당신은 묶어 놓았지만 신경 쓰지 않아야합니다. MVC 응용 프로그램은 호스트 응용 프로그램입니다. 모든 레이어와 어셈블리를 웹 서버에 배포되고 작동하는 최종 제품으로 집계해야하는 곳입니다. 제프리 팔레르모 (Jeffrey Palermo)는 양파 건축에 대해 nice blog post을 보았습니다. 이 패턴에서 양파의 바깥 레이어는 내적 레이어를 알지만 반대가 아닙니다 (안쪽 레이어는 바깥 레이어를 알 수 없습니다). ASP.NET MVC 애플리케이션은 가장 바깥 쪽 레이어입니다. 그런 다음 다른 호스트 응용 프로그램 (예 : WPF)을 사용하여 외부 레이어를 변경하고 내부 레이어를 다시 사용할 수 있습니다.

+0

네, 어니언 아키텍처를 보았습니다. 믿거 나 말거나, 완전히 감각적이었습니다. IoC를 유지하기 위해 내 머리 속에도 계속 머물러 있었고, MVC 앱은 다른 것을 알 수 없었습니다. 레이어 바로 아래에 있지만, 양파 아키텍처에서는 정확히 반대입니다. 실제로는 아래의 모든 레이어를 참조 할 수 있습니다. 이야기의 도덕적 인면에서, MVC 앱에서 저장소 계층을 참조하는 것이 좋습니다. 실제로는해야합니까? – Sam

+1

@Sam Striano, 어셈블리 참조시 참조해야합니다. 물론 컨트롤러는 그것에 대해 전혀 알지 못하고 추상화 작업 만하면됩니다. –

+0

드디어 클릭했다고 생각합니다 !! 모든 도움을 주셔서 감사합니다, 당신은 신사와 학자입니다! – Sam

관련 문제