2012-09-03 1 views
1

클라이언트마다 내 전체 사이트의 다른 버전을 제공 할 수 있어야합니다. 물론 베타 vs 프로덕션이지만 하나 또는 두 개의 이전 프로덕션 버전을 제공하는 것이 좋습니다. 클라이언트 사용자 정의가 권장되며 모든 클라이언트가 (예상되는) 개발 단계를 따르도록 강요하지 않으려합니다.MVC3 다른 버전의 사이트를 제공하는 방법

제공 할 버전이 db에 저장됩니다.

필자가 지금까지 읽은 것 중에서 사용자 지정보기 엔진이이를 수행하는 가장 간단한 방법 일 수 있지만이 길로 향하기 전에 모든 조언과 의견을 환영합니다.

통찰력을 가져 주셔서 감사합니다! Eric

EDIT : 다른보기가 아닙니다. 컨트롤러, 마스터 페이지, 이미지, CSS 등 ...

+1

사용자보기 엔진 경로가 다운되었습니다 : http://stackoverflow.com/questions/9838766/implementing-a-custom-razorviewengine – Liam

+0

왜 두 개의 서로 다른 사이트를 배포하지 않는 것이 좋습니까? –

+0

@TomasJansson 왜냐하면 고객의 고객에게는 보이지 않기를 바랍니다. 그렇지 않으면 내가 생각하는 여러 사이트가 더 간단해질 수 있습니다. –

답변

1

어떤 버전의 사용자가 표시되는지에 관한 규칙이 있으면 먼저 인증해야한다고 생각합니다. 그렇다면 사용자에게 쿠키를 설정할 수있는 기회가 주어집니다.

사용자를 표시 할 버전을 결정한 다음 IIRF와 같은 URL Rewriter를 사용하여 해당 쿠키가있는 사이트로 요청을 보내려면 인증시 쿠키를 설정해야합니다.

베타에 문제가있는 사용자는 프로덕션 사이트로 되돌릴 수있는 이점이 있습니다.

+0

DB에 어떤 버전을 저장할지 알았습니다. 쿠키를 사용하면 이점이 있습니까? –

+0

이점은 사이트의 두 버전을 배포 할 수 있고 모든 사용자가 한 사이트에서 인증을받으며 한 번 로그인하면 어떤 사이트를 제공해야하는지, 그리고 URL 재 작성자가 쿠키를 읽을 수 있으므로 사용자가 쿠키를 읽을 수 있다는 것입니다. 보이지 않는 프로세스가있는 정확한 페이지가 제공됩니다. – joocer

+0

사용자가 쿠키를 사용할 수 없어도이 작업을 수행 할 수있는 방법이 있습니까? 예를 들어, URL 재 작성자가 사용자의 신원을 확인하고 어떤 버전을 검색 할 수 있습니까? –

1

내가보기 엔진 경로

How do I implement a custom RazorViewEngine to find views in non-standard locations? 기본적으로 앞으로 꽤 stright의 추락, 우리는 모든 코드가 공유되는 등 같은 컨트롤러 모델을 가지고있다. 뷰 렌더링은 "브랜드"를 기반으로합니다. 따라서 뷰 엔진은 내가 브랜드 A라면 뷰가 {표준 뷰 위치}/브랜드/뷰 이름에 살 수 있다고 말하기에 충분히 똑똑합니다.

보기가 브랜드 폴더에있는 경우보기를 사용하면 해당 폴더가 사용되고 다른 폴더는 기본 위치로 돌아갑니다. 이것은 기본적으로 뷰 소스의 위치를 ​​찾기 위해 MVC에서 사용하는 표준 모델의 확장입니다.

관련 문제