2012-02-01 2 views
1

같은 솔루션 내에서 별도의 프로젝트에 비즈니스 레이어와 UI 레이어가 있습니다. 내가 필요한 것은이 UI를 C#으로 코딩 된 비즈니스 계층과 연결하는 것입니다. UI가 MVC3 면도기를 사용하여 생성되었습니다.MVC3을 WCF 연결과 함께 사용하는 방법

MVC 응용 프로그램에서 모델로 사용해야하는 것은 무엇입니까? 내가 프록시를 생성하는 비즈니스 계층에 대한 서비스 참조를 만들 필요가 있습니까?
그런 다음 해당 프록시를 모델로 사용할 수 있습니까? 저를 도와주세요 ..
당신이 좀 자습서 난이 시도하지만 MVC와 더 이상 아이디어를 제공 할 수있는 경우 :
http://www.dotnetfunda.com/articles/article816-understanding-the-basics-of-wcf-service-.aspx

답변

3

프로젝트 (또는 건축가) 요구하지 않는 한이 앱에 액세스하십시오 서비스 계층의 모든 방법 , 나는 WCF를 불필요하게 사용하지 않으려 고 노력할 것이다. (웹 서버와 백엔드 사이의 모든 데이터는 성능, 데이터의 직렬화와 같은 함축적 의미를 가지며 잠재적으로 수명을 제한한다는 것을 의미한다. 데이터베이스 연결 및 트랜잭션, 지연로드 등을 막을 수 있습니다). 동의하는 경우 비즈니스 계층의 모든 액세스 가능한 인터페이스가 인터페이스에 노출되어 있는지 확인한 다음 BLL 인터페이스를 직접 사용하거나 컨트롤러에 주입하는 것이 좋습니다.

"Model" MVC에서주의해야합니다. - ASP NET MVC는보다 논리적 인 도메인 모델을 나타내는 "엔터티"와 달리 표현 계층에 고유하며 뷰와 컨트롤러간에 전달되는 ViewModels를 권장합니다. 비즈니스 논리에서 사용되며 EF 나 NHibernate와 같은 ORM을 사용하여 데이터 지속성에 연결될 수 있습니다. MVC 프로젝트 템플릿은 View 또는 Controller가 아닌 모든 것을 "Model"에 집어 넣습니다. isn't necessary very helpful.

  1. 클라이언트 측에서 백 엔드 엔티티를 공유하거나 작업을 수행할지 여부를 선택합니다 : 당신이 WCF 서비스 계층을 통해 BLL에 액세스하도록 선택하는 경우

    그러나 여전히 할 몇 가지 디자인 결정이 대신 프록시 된 엔티티를 사용하십시오.

  2. 컨트롤러에서 WCF 서비스 프록시를 직접 사용할지 삽입할지 선택하거나 다른 외관 레이어 (예 : CAB에서이 ServiceAgent를 호출)를 생성할지 여부를 선택하십시오. 후자는 인터페이스 변경을 수용하기 위해 SOA 측과 클라이언트 측을 따로 떼어 놓은 팀이나 벤더가있는 경우 의미가 있습니다.
관련 문제