0

VS 2010/C#리포지토리 용 인터페이스가있는 프로젝트 솔루션 구성

솔루션을 구성하고 리포지토리 용 인터페이스를 호스팅 할 프로젝트의 이름을 지정하는 옵션을 찾으려고합니다.

나는이 : MyProject.Domain

MyProject.WebUI

MyProject.Repositories

MyProject.Interfaces?

"인터페이스"는 내가 지금까지 생각해 낸 최고의 이름이지만 지금은 마음에 들지 않습니다. 어떤 아이디어/제안?

답변

1

리포지토리 인터페이스가 도메인 개체와 같은 어셈블리에 배치 된 것을 보는 것은 너무 드물지 않습니다. 이것은 그의 시리즈에서 제프리 팔레 모가 The Onion Architecture에 대해 이야기하는 것입니다. 개인적으로, 나는 똑같이한다.

그 이유에 관해서는 도메인 객체와 관련하여 저장소가 수행하는 작업을 정의하는 것이 완전히 논리적이라고 생각합니다. 저장소의 동작에 대한 고려 사항은 도메인 자체만큼 심하게 가중됩니다. 도메인 모델에서 작업하고 도메인 전문가와 작업 한 후 저장소 인터페이스를 정의하는 팀 또는 개발자가 있다고 가정합니다. 도메인이 리포지토리와 어떻게 관련되어 있는지에 대한 정보가 전송되지만 리포지토리와 반드시 관련이 있는지를 확인하는 것은 그/그녀/그녀의 역할입니다.

이렇게하면이 어셈블리를 팀원 중 누구에게 넘겨 주어도 UoK (지식 단위 : 내 자신의 용어)가 어셈블리에 구속됩니다. 리포지토리의 구현을 작성하는 사람들은 어셈블리에서 전달 된 지식을 코드화합니다. 이 UoK는 데이터 액세스 관점에서 리포지토리가 구현되는 방식에 따라 변하지 않기 때문에 논리적으로 다른 어셈블리로 이동합니다.