Como faço para integrar as ASP .Net Model View Presenter métodos (MVP) padrão e página estática marcadas como [WebMethod]?

StackOverflow https://stackoverflow.com/questions/141104

  •  02-07-2019
  •  | 
  •  

Pergunta

Em um aplicativo asp.net, gostaria de combinar o uso da Fábrica de Software Webclient (WCSF), e seu padrão Model View Presenter associado (MVP), com método de página, que é métodos estáticos sobre os .aspx Visualizações marcado com o atributo [WebMethod].

No entanto, os métodos estáticos na página aspx parece quebrar o padrão Model View Presenter uma vez um método de instância é necessária na página para ter o contexto do Presenter e controlador necessário para a exibição para conversar.

Como seria estendido do asp .net padrão MVP em WCSF ao apoio [WebMethods] na página, também conhecido como o View?

Foi útil?

Solução

Eu tive um problema semelhante recentemente, quando fazendo um projeto patterene MVP e querendo um monte de integração AJAX. Você é o melhor fora de ter serviços web que estejam em conformidade com o padrão MVP que você chamar.

Tenha em mente que um PageMethod é pouco mais do que um serviço web, apenas na página atual. Ele não tem acesso a quaisquer objetos de nível página para as vantagens de ter lá são mínimas. Na verdade, eu acho que eles estão disadvantagious, eles dão desenvolvedores (que não estão familiarizados com o conceito) a idéia de que eles podem interagir com objetos de nível de página.

O outro lado da moeda da moeda é que o seu PageMethod está fazendo, se o seu método de página não é a necessidade de interagir com o modelo (por exemplo, ele está lidando com cálculos arithmatic complexos que são mais rápidos em C # / VB.NET que JS), em seguida, a operação é realmente uma operação de nível de interface do usuário e muito provavelmente irrelivant se estivesse a transformar o aplicativo em um WinForm (ou algo mais).

Tenha em mente que toda a interação com os dados em um nível UI é específico para que a implementação da interface do usuário. Se você fosse escrever uma interface de usuário diferente para os apresentadores, então as chances são que você vai ter diferentes interação de dados de nível de interface do usuário.

Outras dicas

Eu acho que você poderia chegar perto do que você está procurando usando um AJAX Web Service ASP.Net em vez de métodos de página estática. O serviço web tem a vantagem de não ser estático, e dependendo de como suas opiniões são implementados, (eu não estou familiarizado com as especificidades do padrão WCSF MVP), você poderia fazer o serviço web o "View" layer..or pelo menos, algo relativamente perto.

Eu tenho feito algo semelhante em um projeto que estou trabalhando. Acabei necessidade de criar uma classe só de dados fina que foi serializado para JSON pelo serviço web para transportar os dados do modelo para a "visão", mas o serviço web tinha essencialmente os mesmos métodos que seriam expostos como eventos a vista.

Uma das coisas que eu gostei sobre esta abordagem é que todos os bits, incluindo o serviço web, são testáveis.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top