2008-09-26 3 views
4

asp.net 응용 프로그램에서 WebClient 소프트웨어 팩토리 (WCSF)와 관련 모델보기 발표자 패턴 (MVP)을 페이지 메서드와 결합하는 것이 좋습니다. 즉, .aspx에 정적 메서드가 표시되어 있습니다. [WebMethod] 특성을 사용하십시오.ASP .Net Model View Presenter (MVP) 패턴과 [WebMethod]로 표시된 정적 페이지 메서드를 어떻게 통합합니까?

그러나 aspx 페이지의 정적 메서드는 모델 뷰 발표자 패턴을 손상시키는 것처럼 보입니다. 인스턴스 메서드가 페이지에서 발표자와 컨트롤러의 컨텍스트에서 뷰와 대화하는 데 필요하기 때문입니다.

페이지에서 [WebMethods]를 지원하기 위해 WCSF에서 asp. net의 MVP 패턴을 확장하는 방법은 무엇입니까?

+0

태그 asp 및 .net을 제거하고 단일 태그 asp.net으로 대체하십시오. – AnthonyWJones

답변

4

최근에 MVP patterened 프로젝트를 수행하고 많은 AJAX 통합을 원할 때 비슷한 문제가있었습니다. 사용자가 호출하는 MVP 패턴을 따르는 웹 서비스가 가장 좋습니다.

PageMethod는 현재 페이지에있는 웹 서비스 그 이상입니다. 모든 페이지 수준 개체에 대한 액세스 권한이 없으므로 페이지 수준 개체의 이점이 최소화됩니다. 나는 그들이 실제로 불만족 스럽다고 생각하고 개발자들 (개념에 익숙하지 않은)에게 페이지 수준의 객체와 상호 작용할 수있는 아이디어를 제공한다.

페이지 메서드가 모델과 상호 작용할 필요가없는 경우 (JS보다 C#/VB.NET에서 더 빠른 복잡한 연산 계산을 처리하는 경우) 동전의 플립면이 PageMethod에서 수행하는 작업입니다. 이 작업은 UI 수준의 작업이며 실제로 응용 프로그램을 WinForm (또는 다른 것)으로 바꾸려면 irrelivant입니다.

UI 수준에서 데이터와의 모든 상호 작용은 해당 UI 구현에 따라 다릅니다. 발표자를위한 다른 UI를 작성한다면 다른 UI 레벨 데이터 상호 작용이있을 가능성이 있습니다.

+0

Page Methods의 이점과 단점에 대한 설명과 웹 서비스와의 비교를 좋아합니다. 다른 사람이 언급하는지보고 싶습니다. – eniac

+0

그래서 페이지 메소드 대신 웹 서비스를 통합 할 수 있지만 웹 서비스 호출이 MVP 패턴에 들어 맞는 위치를 확인하지 못한다고 생각합니다. 브라우저의 페이지 인 뷰가 웹 서비스에 대한 비동기 요청으로 데이터 서비스를 호출 할 때 어떤 기준을 결정해야합니까? – eniac

+0

웹 서비스가 필요한 이유는 UI 수준 작업을 수행하기 때문입니다. 각 UI 구현은 조작을 처리하는 다양한 방법을 가지며, 웹폼은 웹 서비스를 사용하고, winform은 Windows 서비스 또는 다른 것을 가질 수 있습니다 –

2

정적 페이지 방법 대신 ASP.Net AJAX 웹 서비스를 사용하면 원하는 결과를 얻을 수 있다고 생각합니다. 웹 서비스는 정적이지 않은 장점이 있습니다. 뷰가 구현되는 방식에 따라 (저는 WCSF MVP 패턴의 특성에 익숙하지 않습니다) 잠재적으로 웹 서비스를 "보기"계층으로 만들 수 있습니다. 또는 적어도 아주 가까운 곳에서.

저는 작업중인 프로젝트에서 비슷한 것을했습니다. 웹 서비스가 모델에서 "보기"로 데이터를 전달하기 위해 JSON에 직렬화 된 씬 데이터 전용 클래스를 만들 필요가 있었지만 웹 서비스는 본질적으로 보기.

내가이 접근법에 대해 좋아하는 점 중 하나는 웹 서비스를 포함하여 모든 비트를 테스트 할 수 있다는 것입니다.

관련 문제