2009-10-09 5 views
1

나는 모호하게 정의 된 궁극적 인 요구 사항을 가진 프로젝트에서 일하고 있습니다. "사이트는 다른 클라이언트의 경우 '스킨 가능'이어야합니다."잘 구성된 ASP.NET MVC 다중 사이트 코드베이스는 어떻게 만듭니 까?

우리 모두가 알다시피 거의 모든 UI, 논리 및 모델 변경이 필요합니다.

사이트에 다른 클라이언트를 추가해야하며 새 스킨을 만드는 것만 큼 간단하지는 않다고 설명했습니다. 나는 또한 미지의 것과 정의되지 않은 것을 디자인하는 것이 불가능하다고 설명했다.

내가 말했듯이 지나치게 복잡하지 않으면 서 재사용 가능성에 도움이되는 디자인을 제안하고 싶습니다.

최대한 많은 컨트롤러와보기를 공유하고 싶습니다.

사용자가 사이트에 들어가기 위해 사용하는 URL을 기반으로 다른 경로 집합 (다른 컨트롤러를 가리키는)을로드하려고 생각했습니다. 내 생각에 기본 컨트롤러 세트를 정의하고 각 하위 사이트에 대한 기본 컨트롤러를 상속받을 수있었습니다.

내가하려는 일을하는 더 좋은 방법이 있습니까?

IoC 컨테이너로 수행 할 수 있습니까? 그러한 접근 방식에 이점이 있습니까?

다른 MVC 코드베이스를 공유해야하는 상황과 다른 사이트간에 을 대부분으로 재사용하는 상황은 어떻게됩니까?

조언이나 의견을 보내 주셔서 감사합니다!

답변

3

가장 간단한 시작은 사이트가 다른 서버에있을 경우 쿼리 변수 또는 Web.config 값을 기반으로 마스터 페이지에 다른 CSS 파일을로드하는 것입니다. 이 작업을 수행하는 또 다른 방법은 요청 도메인을 기반으로 CSS 파일을 반환하는 ActionResult에서 상속받은 고유 한 CSSResult를 만드는 것입니다. 표시되는 뷰를보다 잘 제어하고 싶다면 IViewEngine 인터페이스에서 상속받은 클래스를 생성하고 요청한 도메인을 기반으로 다른 뷰를 표시 할 수 있습니다.

관련 문제