3

EF 4.3을 사용하여 웹 플랫폼 (CMS의 왕)을 구축하려고합니다. 그래서 저는 전자 상점, 뉴스 레터, 블로그 등과 같은 다른 프로젝트의 모든 작업을 분해하려고합니다. 모델을 포함하는 별도의 ClassLibrary 프로젝트에 추가하십시오 (나중에 NuGet 패키지를 빌드하십시오). 그리고 저는 그것들을 내 custom mvc3 템플릿에 통합하고 컨트롤러와 뷰를위한 고급 스캐 폴딩을 사용할 수 있기를 바랍니다.EF를 사용하여 모듈로 웹 플랫폼 설계 4.3

먼저 인증 모델 (일부 리포지토리와 두 개의 Entity Framework 개체가있는 사용자 지정 공급자 : "BaseDataContext"를 사용하는 사용자 및 역할)이 포함 된 ClassLibrary 프로젝트가있는 MVC3 사용자 지정 템플릿이 있습니다. 두 번째로 내 블로그 (모든 EF POCO, 일부 저장소 및 "BlogDataContext") 모델을 포함하는 Blog라는 또 다른 ClassLibrary 프로젝트가 있습니다. IoC도 사용합니다.

첫 번째 문제는 CircularDependecy였습니다. 내 Blog.Author에서 템플릿을 상속 받기를 원하면 CircularDependecy입니다. 내 블로그에서 내 템플릿으로, 내 템플릿에서 템플릿으로 다시 참조해야합니다. 사용자 및 내 사용자 POCO 내 작성자에 대한 참조를 포함합니다. 인증 및 블로그 모델이 동일한 "레벨"에 있고 동일한 클래스 라이브러리에 있어야하지만 나중에 더 많은 라이브러리가 추가되어야한다는 사실을 명심해야합니다 (예 : "뉴스 레터"라이브러리), 엔티티를 하나의 단일 lib로 제외 할 수 없습니다. 내가 생각하는 두 번째 문제는 여러 DataContexts를 사용하는 것이지만 또 다른 문제입니다.

결론적으로 제 질문은 그다지 구체적이지 않습니다. 그것은 arhitectural design 질문에 더 가깝습니다. 달성하려는 노력이 가능합니까? 또는 CircularDependency 문제에 대한 해결 방법을 찾아 보는 것이 안전합니까? "CMS"를 어떻게 디자인해야합니까? 아니면 내 작업을 재사용 할 수 있도록 간단하게 만들어야합니다. (예 : 전자 상점이 작동하고 클라이언트가 블로그를 추가하도록 요청한 경우) 마이그레이션 기능이 재미있어 보였습니다.

감사합니다.

+0

안녕하세요. 사실이 아닙니다. 동일한 "레벨"이며 동일한 클래스 라이브러리에 있어야합니다. EF 4.3에 대해 이야기 할 경우 엔티티 모델에 대해 다른 클래스 라이브러리를 사용할 수 있습니다. –

답변

1

전체 디자인을 분리하고 모든 논리 단위 (싱글 사인온, CMS, 전자 통신,보고 등)를 서로 독립적으로 만들고 최소한의 양으로 통신하는 방법을 알아 봅니다. 가능한 데이터. 예를 들어 인증 된 사용자의 GUID를 전체 User 객체 대신 CMS로 전달할 수 있습니다. WCFWF을 사용하면 해당 통신을 조정하고 워크 플로를 만들 수 있습니다. 얻을 수있는 가장 큰 이점은 플랫폼이 플러그 형이며 확장 가능하며 필요에 따라 구성 요소를 추가하거나 제거 할 수 있다는 것입니다. 로드에 따라 리소스를 제거하십시오.

관련 문제