2011-10-04 4 views
0

MVC 3에서 면도기로 웹 응용 프로그램을 만들었습니다. 내 솔루션 구조는 다음과 같습니다.3 티어 MVC 응용 프로그램 배포

IIS의 3 개 서버에 3 개의 계층을 별도로 배포해야합니다. 누구든지 진행 방법을 조언 할 수 있습니까?

+1

비즈니스 계층이 별도의 실제 컴퓨터에 배포되도록 설계 되었습니까? 서비스가 있습니까? 원격? 별도의 물리적 계층에 배포하기 전에 많은 전제 조건이 있습니다. 아키텍처에 대한 자세한 내용을 제공해야합니다. –

+0

@Anas Karkoukli : 방금 배포 문제를 알게되었습니다. 코딩하는 동안 Remoting 또는 서비스를 고려하지 않았습니다. – Vipul

+0

@Anas Karkoukli : 친절한 제안 추가 – Vipul

답변

1

edmx 파일을 배포 할 위치가 염려되기 때문에 비즈니스 계층을 자세히 설명 할 것입니다.

먼저 계층과 계층의 구분을 반복합니다. 비즈니스 로직을위한 별도의 물리적 서버를 언급하면 ​​따라서 내 대답은 물리적으로 분리 된 비즈니스 계층으로 가정합니다. 그리고 앞으로는 계층으로 언급 될 것입니다.

EDMX 파일은 데이터베이스 스키마와 결합되어 있지만 비즈니스 계층 아티팩트입니다. IT 부서는 다른 비즈니스 클래스 (엔티티, 데이터 액세스 배관 등)와 동일한 실제 위치에 있어야합니다.

가장 큰 장애물은 B 구성 요소입니다. 별도의 물리적 계층에 A 및 C (각각 웹 응용 프로그램 및 데이터베이스)를 배포하는 것은 그리 어렵지 않습니다.

다른 서버에있는 MVC 웹 사이트에 기능을 공개하려면 비즈니스 로직 클래스 위에 WCF 서비스 Facade를 빌드해야합니다. Facade 패턴을 상세히 다루는 기사가 풍부하지만, 아키텍처에 최소한의 변화가있는 직접적인 접근 방식입니다.

+0

제안 해 주셔서 감사합니다. 배치 패턴을 찾고 있습니다. – Vipul

1

B가 필요

감사는 웹 서비스 호출에 의해 포장된다.

C는 데이터베이스 서버입니까? 별도의 서버에 설치하기 만하면됩니다. 이것은 당신의 ASP.NET MVC 응용 프로그램이

C를 소모합니다 이것은 서버 B에서 호스팅되는 WCF 서비스로 전환 ServerA가

B)에 ASP.NET MVC 응용 프로그램에 간다

+0

조언 해 주셔서 감사합니다. "C"는 EDMX 파일에 넣었습니다 (Entity Framework 4를 사용하고 있습니다). B & C를 함께 배포해야합니까? – Vipul

+0

예. 그러면 B와 C는 두 번째 계층의 두 계층입니다. 실제 데이터베이스 SqlServer는 세 번째 계층입니다. – jgauffin

+0

비즈니스 레이어에서 메소드를 호출하기 위해 Unity 프레임 워크를 사용하고 있습니다. 이는 Inversion of Control을 통해 수행됩니다. WCF 서비스에서 비즈니스 계층을 래핑하고 웹 계층에서 비즈니스 계층의 메서드를 호출하려면 어떻게해야합니까? – Vipul

1

A)) 이것은이다 SQL Server 또는 웹 서비스에서 요청할 웹 서비스에 의해 요청 될 것입니다. ServerC

+0

조언 해 주셔서 감사합니다. "C"는 EDMX 파일에 넣었습니다 (Entity Framework 4를 사용하고 있습니다). B & C를 함께 배포해야합니까? – Vipul

+0

@Vipul, 나는 당신이 뭔가를 오해 한 것 같아요.물리적 경계 (계층)와 논리적 경계 (계층)가 있습니다. 그래서 당신이 논리적 경계에 대해 이야기하고있는 것처럼 보입니다. 귀하의 질문에 당신이 다른 서버를 언급하더라도 실제 아닙니다. 응용 프로그램에서 데이터 액세스 계층, 비즈니스 계층 및 UI가 될 수있는 3 가지 논리적 경계를 정의 할 수 있습니다. 이들 모두는 단일 ASP.NET MVC 응용 프로그램 내의 단일 서버에 배포됩니다. EDMX 파일은 데이터 액세스 계층의 일부가됩니다. –

+0

고마워. :). 나는 너의 요점을 이해한다. 데이터 액세스 계층, 비즈니스 계층 및 UI를 모두 다른 3 대의 컴퓨터에 배포해야합니다. 친절하게 조언하십시오. – Vipul