2010-07-05 6 views
3

내 새로운 과제는 기존 웹 응용 프로그램의 두 번째 버전을 만드는 것입니다. 현재 우리의 응용 프로그램은 풀 타임 브로커 만 지원하지만, 이제는 파트 타임 브로커 전용 두 번째 사이트를 시작했습니다.ASP.NET : 동일한 웹 사이트 버전 만들기

새로운 사이트는 다음과 같은 예외가 기존의 사이트와 거의 동일합니다 :

  • 은 그것이 자신의 브랜드입니다해야합니다.
  • 정보를 표시하는 데 사용되는 몇 가지 사용자 정의 컨트롤은 다를 수 있지만 페이지가 다를 수는 없습니다.
  • 기존 사용자는 새 사이트에 액세스 할 수 없으며 반대의 경우도 마찬가지입니다.
  • Visual Studio 내에서 두 버전의 웹 사이트를 쉽게 테스트 할 수 있어야합니다.
  • 기존 코드를 가능한 한 많이 재사용하고 싶습니다.
  • 2 주 정도 소요됩니다.

나는 이것이 일반적인 시나리오이고 거기에있는 누군가가 이것을 수행하는 방법에 대한 조언이 필요하다고 생각합니다.

답변

4

등, 앞으로 모든 사용자 지정은 사이트별로에있을 것입니다, 사이트에서 액세스 할 수 없습니다 두 사이트 사이의 명확한 분리를 줄입니다 브랜딩 및 권한 부여를 제외하고는 본질적으로 동일한 코드를 복사하는 것과 관련된 분기 프로젝트 나 다른 경로는 권장하지 않습니다. 그것은 분명히 단기간에 쉬울 것이지만, 당신이 말했듯이, 거의 동일한 코드 기반을 유지하려고 애쓰는 악몽이 될 것입니다.

귀하의 페이지는 누가 로그인했는지 또는 전체적으로 설정했는지에 따라 어떤 컨트롤을 표시할지 결정할 수 있습니다. 이는 이것이 프로그램의 파트 타임 브로커 버전임을 나타냅니다. 풀 타임 브로커와 파트 타임을 처리 할 수있는 뷰 및 라이트 로직 집합을 가질 수 있습니다. 사이트가 별도로 배포되므로 설정을 간단하게 지정할 수 있습니다. 동일한 사이트의 다른 버전을 사용하고 있다면 다른 유사 콘텐츠와도 동일하게 적용될 수 있도록 약간의 생각을해야 할 수도 있습니다.

클레임 기반 (선호) 또는 역할 기반 권한 부여 등을 사용하여 적절한 데이터를 분리 할 수있는 한 동일한 데이터베이스를 사용합니다.

이 모든 내용은 동일한 코드 기반을 사용하지 않으려 고하는 큰 이유가없는 것으로 보입니다.

+0

Errr, MVC를 사용하지 않고 일반 ASP.NET 만 사용합니다. –

+0

죄송합니다. 그러나 동일한 통보가 더 고통 스러울 것이며 사용자 컨트롤을 교환하게 될 것입니다. MVC 이건 아니건, 내가 취할 수있는 길이다. MVC는 그것을 테스트하는 것이 훨씬 쉽고 쉽다. 나는 내 대답을 편집했다. – captaintom

1

나는 당신의 코드의 한 부분을 생성하고 그것을 반대한다. 이것은 물론 버전 제어를 사용하고 있다고 가정합니다. 너 너니?

+0

문제는 우리의 코드베이스가 정적이 아니며 끊임없이 변화하고 있기 때문에 우리는 두 사이트 모두에 변경 사항을 적용하고자하므로 코드를 분기하는 것은 우리를위한 유지 보수의 악몽이 될 것입니다. –

+0

다른 기능의 분리를 유지하는 것이 유일한 방법 일 것입니다. 나는 당신이 당신의 지점에 트렁크의 야간 병합을했다면 당신은 괜찮을 것이라고 생각합니다. 유일한 어려움은 브랜치에서 다시 트렁크에 넣고 싶은 코드를 변경할 수 없다는 것입니다. 두 코드 모두에 있어야하는 코드를 변경해야 할 경우 트렁크로 만들고이를 지점에 병합해야합니다. 그것 또는 분산 소스 제어를 조사하십시오. – spinon

0

내 첫번째 생각은

  1. (새 웹 사이트에 대한 새로운 시작)
  2. 가 된 UserControls에 필요한 조정을 다른 데이터베이스로 통해 다른 IIS 웹 사이트에
  3. 스크립트 데이터베이스를 전체 소스 코드를 복사

    하는 것 그리고 당신이 할 수있는, Visual Studio에서

(베타 버전으로) 새 사이트에서

  • 롤 브랜딩 같은 솔루션 안에 새 프로젝트를 만들어 두 프로젝트에 동시에 액세스 할 수 있습니다.

    버전 관리를 사용하는 경우 ... 지점을 만들고 여기에서 사용자 정의를 시작하십시오.

    무엇이 당신을 위해 할 것입니다 것은 정말 ... 어떤 사용자가 정말

  • +0

    문제는 우리의 코드베이스가 정적이 아니며 끊임없이 변화하기 때문에 우리는 두 사이트 모두에 변경 사항을 적용하고자하므로 코드를 분기하는 것은 우리를위한 유지 보수의 악몽이 될 것입니다. –

    +0

    하지만 그건 정확히 당신이하고있는 일입니다 ... 두 사이트 유지. –

    +0

    내 편집 참조 .... –

    0

    캡틴 톰 (CaptainTom)이 로직의 나머지 부분에서 응용 프로그램의 디스플레이 레이어를 해체하고 나머지 코드를 공유하면서 새로운 사용자 경험을 구현하는 새 프로젝트를 만드는 또 다른 솔루션을 게시 한 것이 좋았지 만

    즉, 공통 브로커 프로젝트에서 로직을 구현하는 FillTimeBrokers 프로젝트와 PartTimeBrokers 프로젝트.