8

저는 며칠 동안이 작업을 수행하는 가장 좋은 방법에 대해 궁금해했으며 다른 모든 사람들이 생각한 것을 궁금해했습니다.ASP.NET MVC 3 - 여러 도메인 처리 및 단일 코드베이스 공유

우리 회사의 모든 웹 사이트를 다시 빌드하여 ASP.NET MVC 3으로 업그레이드하고 모두 (대부분) 공통 템플릿을 사용하고자합니다. 우리는 이미 MVC 3에 다른 사이트의 기증자 사이트가 될 하나의 사이트를 가지고 있습니다.

처음에는 프로젝트를 복사/붙여 넣기하고 모든 내용을 각 사이트와 관련된 내용으로 바꾸고 끝내려고했으나 앞으로 템플릿/스타일 시트/도우미를 업데이트하는 것이 더 어려워 질 것입니다. 소수의 웹 사이트를 가지고 있으므로 큰 문제는 아닙니다.

아이디어 1

나는 아마도 웹 사이트를 모두 포함하는 단일 프로젝트를하는 것입니다 할 분리를 유지하고에 요청을 보낼 라우팅을 사용하는 지역에서 물적 분할하고 싶은 생각은 무엇 다양한 도메인을 올바른 위치에 배치하고 올바른 도메인을 가리키는 링크를 구축 할 수 있습니다.

이것은 우리가 모든 웹 사이트를 함께 연결하는 방법에 맞을 것입니다 - 본질적으로 다양한 회사를 나열하는 모든 웹 사이트에 공통적 인 메뉴로, 이는 해당 특정과 관련된 항목의 하위 메뉴를 포함하는 회사 도메인에 연결됩니다 회사.

도메인 수준에서 라우팅해야하므로 까다로워집니다. 따라서 현재 도메인 (예 : http://www.groupcompany.ex/company2)의 company2 컨트롤러로 라우팅하지 않고 company2의 자체 도메인 (http://www.company2.ex/{controller}/{action}/{id})을 라우팅하려고합니다.

아이디어 2 또는

나는 하나의 솔루션으로 각 사이트에 대한 프로젝트를 생성하고 헬퍼, CSS 및 자바 스크립트 등

어떤 생각을 호스팅하는 공통의 프로젝트를 가질 수있는 방법 내가해야에 이 일을하고, 내 제안이 완전히 미친 지 아닌지? (가능성이 높습니다).

+1

여기에서 우리는 다음과 같은 특정 제약 조건 집합에 대해이 작업을 수행합니다. http://stackoverflow.com/questions/490963/can-have-part-of-the-domain-name-as-a-parameter-in-my -routing-rules/499688 # 499688 – schmidty

답변

7

이것은 일반적인 요청입니다. 당신이 요구하는 것은 다중 임대라고합니다. 지금까지 MVC에서 멀티 테넌시 (multi-tenancy)를 달성하는 방법에 대한 합의에 대해서는 전혀 모른다. 아마도 그것에 대한 질문이있는만큼 많은 해결책이있을 것입니다.

나는이 문제를 만족스럽게 해결하지 못했습니다. 그러나이를 다루는 많은 블로그 항목이 있습니다. 예는 다음과 같습니다

http://weblogs.asp.net/zowens/archive/2010/05/26/multi-tenant-asp-net-mvc-introduction.aspx

http://codeofrob.com/archive/2010/02/01/multi-tenancy-in-asp.net-mvc-why-do-we-want-to.aspx

이 내가 요구 사항이 어떤 점에서 프레임 워크에 내장 할 생각 뭔가입니다. 다행히도 그런 일이 일어나거나, 적어도 누군가 우아한 해결책이 나오기를 바랍니다.

+0

답변 해 주셔서 감사합니다. 멀티 입주는 내가이 문제를 조사 할 때 많이 발생합니다.두 번째 링크를 읽으면서 문제는 거의 해결되는 것처럼 보입니다.하지만 완전히 완료되었는지는 확실하지 않습니다. 다양한 사용자를 위해 단일 제품을 맞춤 설정하는 데 주로 집중해야하는 것처럼 보입니다. 그러나 우리는 대부분 완전히 별개의 사이트를 원하지만, (연락처 양식 등의 공통적 인 기능) 하위 도메인 수준에서 라우팅에 대해 많은 질문을하지만 전체 도메인 수준에서는 그렇지 않습니다. 검색이 계속됩니다. – akiller

+0

@akiller "검색"에 도움이 되셨습니까? 첫 번째 링크는 오래된 것입니다 (MVC1/MVC2에 초점을 맞 춥니 다 - MVC3으로 변환하기는 어렵지 않습니다). 블로그 작성자가 다른 프레임 워크를 위해 포기한 것으로 보이는 두 번째 링크 (자신의 솔루션 및/또는 필요가 의심 스러울 수 있음) – REMESQ

+0

@REMESQ 필자는 결국 포기하고 유틸리티 기능을위한 공통 MVC 도우미 프로젝트를 추가하고 메인 도메인에 공유 CSS/이미지 파일을 추가하고 각 사이트 레이아웃 페이지에서 링크했습니다. 레이아웃 파일과 함께 꽤 많은 반복이 있지만 유지 관리가 많이 필요합니다. 내 원래의 질문에 schmidty의 코멘트를 한 번 보셨나요? – akiller