Meu primeiro fonte MVC

Blog Advpl - Share knowledge

Meu primeiro fonte MVC

23 de outubro de 2014 Geral 3

A arquitetura Model-View-Controller ou MVC, como é mais conhecida, é um padrão de arquitetura de software que visa separar a lógica de negócio da lógica de apresentação, permitindo desenvolvimento, teste e manutenção isolados.Aqueles que já desenvolveram uma aplicação em AdvPL vão perceber, que justamente a diferença mais importante entre a forma de construir uma aplicação em MVC e a forma tradicional é essa separação, que permitirá usar a regra de negócio em aplicações que tenham ou não interfaces, como WebServices e aplicação automática e seu reuso em outras aplicações.

As funções de uma aplicação MVC são.

  • ModelDef: Contém a regra de negocio;
  • ViewDef: Contém a interface;
  • MenuDef: Opções do menu (aRotina).

Conhecendo bem MVC, na verdade a Totvs está quase chegando lá, de certa forma usando o Desenhador de MVC facilitou e muito, apesar de ainda não termos muito material disponível para fazermos coisas bem mais complexas, mas já está bem tranquilo desenvolver nossos fontes como por exemplo o Modelo 2 e o Modelo 3.

Irei postar vários artigos demonstrando como desenvolver vários tipo de rotinas, lembrando que assim como você e outras centenas de profissionais, estou aprendendo a utilizar esta nova forma. E vamos nessa…

Neste primeiro exemplo, irei demonstrar como abrir um browser com a tabela SX5, eu poderia está fazendo com qualquer outra, mas achei mais interessante usar esta para poder fazer algumas validaçõesinhas. Será algo simples, nos próximos artigos irei colocar exemplos mais complexos.

Irei montar o browser usando as funções Incluir, Alterar, Excluir, Copiar, Imprimir e Visualizar padrão do Protheus. Usando a tabela SX5, irei montar um browser filtrando pela sub tabela 21.

A função ViewDef define como o será a interface e portanto como o usuário interage com o modelo de dados (Model) recebendo os dados informados pelo usuário, fornecendo ao modelo de dados (definido na ModelDef) e apresentando o resultado.

A interface pode ser baseada totalmente ou parcialmente em um metadado (dicionário), permitindo:

Reaproveitamento do código da interface, pois uma interface básica pode ser acrescida de novos componentes;

Simplicidade no desenvolvimento de interfaces complexas. Um exemplo disso são aquelas aplicações onde uma GRID depende de outra. No MVC a construção de aplicações que tem GRIDs dependentes é extremamente fácil;

Agilidade no desenvolvimento, a criação e a manutenção se tornam muito mais ágeis;

Mais de uma interface por Bussiness Object. Poderemos ter interfaces diferentes para cada variação de um segmento de mercado, como o varejo.

A ViewDef deve ser uma Static Function dentro da aplicação.

A função ModelDef define a regra de negócios propriamente dita onde são definidas:

Todas as entidades (tabelas) que farão parte do modelo de dados (Model);

Regras de dependência entre as entidades;

Validações (de campos e aplicação);

Persistência dos dados (gravação).

Como pode ver, não é tão difícil começar a desenvolver em MVC.

 

 

3 comentários

  1. silfar@gmail.com disse:

    Olá, muito bom seu arquivo. Mas tô com uma dificuldade aqui, como mostrar os valores de campos virtuais no grid da tabela detalhe ?

    “Browse inic.” não fuciona

  2. […] no primeiro exemplo postado em Meu primeiro fonte MVC , iremos mostrar como montar uma tela onde iremos separar os campos por grupos e incluiremos um […]

Deixe uma resposta