Recursos para Profissionais de TI > Página Inicial dos Fóruns > Fóruns do Arquitetura > Arquitetura de Soluções > Padrão arquitectónico MVP (Model-View-Presenter) ao desenvolvimento de aplicações com a libOpenMetaverse.
Comecei agora a estudar sobre o padrão arquitetónico MVP e queria saber se alguém tem
informações que possam ser uteis deste tema, quanto a biblioteca libOpenMetaverse.
Ainda não percebo muito bem como juntar os dois conceitos, por isso agradecia se
alguém pudesse debater comigo sobre este tema.
quinta-feira, 9 de fevereiro de 2012 14:07
Forum apropriado (De:C#)
Você já ouviu falar do padrão MVC ?. O padrão mvc é bem mais divulgado e bem documentado. As arquiteturas MVC e MVP são padrões que permitem que você consiga reutilizar, testar e dar manutenção do código de uma forma muito melhor do que se não tiver nenhum padrão.
O padrão MVC ou MVP são baseados na divisão do projeto em 3 partes. Interface com o usuário, Regra de negócio e Banco de dados. O padrão MVC se chama Model, View, Controller. Model é reponsável pela representação dos objetos em forma
de classes. Exemplo Produto, Empresa, Cliente. São classes que tem somente (geralmente, depende do programador) somente os atributos da classe, ou seja, o que ela têm.
O Mvp que você gostaria de saber é muito parecido com o MVC porem ele é mais adaptável a multi-ambientes, ele se chama Model-View-Presenter a interação com o usuário fica separada no Presenter, nela você teria TODAS as ações com o
Exemplo na Presenter teria um método chamado Cadastrar que receberia de 2 formas ou uma model pronta com o usuário ou as variáveis Nome, Tipo, Endereço etc... Que enviaria as informações para uma camada onde trataria as regras de
negocio que em fim cadastraria no Banco.
Se você precisa-se alterar a interface de web para desktop por exemplo, teoricamente você só teria que implementar a camada Presenter e todo o resto funcionaria, alem disso você conseguiria ter testes unitários da interface ou seja
conseguiria testar cada botão (ação com o usuário) já que cada ação corresponde a um método.
Uma nova tela de Cliente deveria ser implementado na tela (exemplo no html do site), teria que criar a model para trafegar entre as camadas, a presenter, seguida da B.L. (projeto com regra de negocio), e ae na D.A.L.(Camada onde fica
os comandos com o banco (select, update etc..).
O que eu estou utilizando que eu gostei se chama IoC (Inversion of Control) que você consegue utilizar os métodos da DAL e na interface com o usuário sem ter necessáriamente que a interface com o usuário tenha que incluir o projeto
da D.A.L. .
sexta-feira, 17 de fevereiro de 2012 10:37
Augusto.Silva, queria agradecer por me ajudar a entender melhor este conceito. Também encontrei alguma coisa sobre a segunda parte da pergunta (em relação ao libOpenMetaverse), está aqui um dos links: http://lib.openmetaverse.org/wiki/How_to_create_a_basic_libopenmv_bot_for_osgrid%3F,
o que sem dúvida já é um ponto de partida.
Existem também exemplos práticos da biblioteca dos mundos virtuais e tutoriais: http://lib.openmetaverse.org/wiki/How_to_create_a_basic_libompenmv_bot%3F que vão servir