quinta-feira, 5 de maio de 2011

Model-View-Presenter (MVP) no .NET Compact Framework

Ao contrário de padrões de projetos, padrões arquiteturais dão linhas diretrizes muito vagas e nenhuma sugestão concreta de implementação. Ao tentar aplicar o padrão MVP segui o básico do framework apresentado no paper MVP: Model-View-Presenter. The Taligent Programming Model for C++ and Java, no entanto achei o modelo ineficiente para ser utilizado em uma aplicação Windows Forms, já que neste ambiente temos a disposição componentes que podem ser manipulados visualmente durante a programação da solução.

Utilizando o framework supra-citado, não era possível faz uso do ambiente gráfico para gerar automaticamente o código de criação da tela, desta forma passei a me perguntar se um framework que levasse em consideração estas questões já não existia, pois definir visualmente as telas da aplicação é um recurso muito útil para ser desperdiçado pela adoção do MVP.

Encontrei o framework MVC# que apesar de ser antigo, oferece suporte ao MVP, inclusive no .NET Compact Framework. Além do MVP, ele adota uma idéia de tarefas, onde uma tarefa pode englobar vários pares de views/presenters, sendo que a tarefa se torna um lugar para armazenamento de informações necessárias por view/presenter distintos.

O site criado pelo programador é muito bom e contém uma boa descrição de como ele pensou, projetou e implementou a solução. Além disso, são descritos vários exemplos que vão bem além de uma simples tela.

Apesar de estar satisfeito com este framework, ele ainda pode melhorar, porém para as minhas necessidades atuais me atendeu muito bem, já que minha aplicação era simples. Em uma aplicação mais complexa seria necessária ter um controle melhor em relação as visões e das tarefas (criação/destruição). Uma coisa boa é que o código-fonte do framework é aberto, permitindo modificações e melhorias, sendo assim, caso precise delas tenho chances de implementá-las. Viva a influência do software livre!


Nenhum comentário:

Postar um comentário