Você está na página 1de 17

AdvPL utilizando MVC

Ernani Forastieri – junho/2014


HOJE
FALAREMOS
SOBRE
1. INTRODUÇÃO
2. CONCEITO
INTRODUÇÃO
AdvPL utilizando MVC
INTRODUÇÃO

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.
CONCEITO
AdvPL utilizando MVC
NECESSIDADE

Model
Consulta Notifica Muda
estado atualização estado
Seleciona a View

View Controller
Ação do usuário

 O Model representa as informações do domínio do aplicativo e fornece funções para


operar os dados, isto é, ele que expõe as funcionalidade do aplicativo. O Model também
é responsável por notificar a View quando os dados forem alterados.
 A View, objetivamente, deve renderizar o Model e possibilitar a interação do usuário, bem
como consultar ao Model quando este notificá-la de que houve alterações nos dados afim
de manter a consistência entre ambos.
 O Controller, o maestro da orquestra, responde às ações dos usuários, possibilita
mudanças no Model e seleciona a View correspondente.
AdvPL utilizando MVC
MODELO DE
DESENVOLVIMENTO

Framework
Smartclient DHTML Outros front-end

FwFormBrowse FwFormField FwFormGrid FwFormContainer


Browse Enchoice/GetFixo GetDados Toolbar/Painéis

Business Objects

ViewDef
ModelDef Regras de negócio IntegDef
GDP

SchedDef ReportDef MenuDef

Designer Analista
AdvPL utilizando MVC
INTERFACE
VIEW
 Define como o usuário interage com o modelo de dados. Capturando os
dados informados pelo usuário, fornecendo ao BO e apresentando o
resultado.

 A interface pode ser baseada totalmente ou parcialmente em um


metadados, permitindo:

• Reaproveitamento do código da interface


• Simplicidade no desenvolvimento de interfaces complexas
• Agilidade no desenvolvimento
• Personalização de interface sem efeito-colateral.
• Mais de uma interface por BO, poderemos ter interfaces diferentes
para cada variação de um segmento de mercado como o varejo.
AdvPL utilizando MVC
INTERFACE /VIEW
FORMFIELD Modelo1 Modelo 2 Modelo 3

FWFormField
Pergunte LookUp (F3) Modelo X

 Desenvolvido para:
• Substituir todos os componentes de edição de campos
• Possibilitar sua utilização em qualquer container de interface
• Reduzir o tempo de manutenção, em caso de adição de um novo requisito
• Ser independente do ambiente Microsiga Protheus

 Melhorias implementas:
• Novos padrões de agrupamento
• Novo padrão de orientação de títulos dos campos (à esquerda ou acima)
• Padrão de fontes personalizável – Deficiente visual
• Melhor aproveitamento da área de visualização (não estar limitada a duas colunas)
• Novos componentes (Radio e Edição de Imagem)
AdvPL utilizando MVC
INTERFACE /VIEW
FORMFIELD

FWFormField
AdvPL utilizando MVC
INTERFACE /VIEW
FORMGRID

FWFormGrid
Modelo2 Modelo 3 Modelo X

 Desenvolvido para:
• Substituir todos os componentes de edição em grid
• Possibilitar sua utilização em qualquer container de interface
• Utilizar como base as características do componentes FWBrowse

 Melhorias implementas:
• Todas as relacionadas no FWBrowse
AdvPL utilizando MVC
INTERFACE /VIEW
FORMGRID

FwFormField

FwFormGrid
AdvPL utilizando MVC
MODELO DE DADOS
MODEL
 Define o modelo da estrutura e persistência de dados, utilizando o modelo padronizado
de codificação

 Possui as regras de validação definidas pelo analista, independentes dos eventos da


interface. Esta independência permite a reutilização de código, performance e
previsibilidade de comportamento.

 Este modelo de codificação garante que todos os programas de edição tenham os


recursos, abaixo, sem a necessidade adicional de codificação:

• Web Services
• Instânciamento do Modelo - “Rotina automática”
• Ponto de integração, comum, entre as GDPs
• Pontos de entrada – padronizados.
• Importação / Exportação de dados ( XML/XSD ).’
• Ambiente interativo para execução de teste funcional
AdvPL utilizando MVC
MODELO DE DADOS
Programa-fonte
ESTRUTURA comum

MATA010
. . .
dbSelectArea(“SB1”)
RecLock(“SB1”, .T.)
Metadado
SB1->B1_COD := “000001”
SB1->B1_DESC := “Produto A”
(Dicionários)
MSUnlock()
. . .

Programa-fonte
MVC

MATA010
. . .
dbSelectArea(“SB1”)
RecLock(“SB1”, .T.) Metadado
SB1->B1_COD := “000001” Estrutura
SB1->B1_DESC := “Produto A” (Dicionários)
MSUnlock()
. . .
AdvPL utilizando MVC
EXEMPLOS

Vamos ver alguns exemplos de fontes em MVC...


AdvPL utilizando MVC
MATERIAL PARA
CONSULTA Elearning TOTVS
• http://www.totvs.com/lms/

Treinamentos
Sigla: PT-BR-SW-XX-MVC00-MP-115
Nome: Model View Controller - MVC

TDN e demais fontes de consulta


• http://tdn.totvs.com.br/display/mp/Material+de+Apoio+MVC

Exemplos de Fontes:
• Comunidade Desafio da Capacitação no Fluig
Documentos / Desafio da Capacitação 2014 / Fontes AdvPL utilizando MVC.rar

• Comunidade Desafio da Capacitação no Fluig


Documentos / Desafio da Capacitação 2014 / Apresentações
Ernani Forastieri
Segmento Juridíco

ernani@totvs.com.br

Obrigado ;)

Você também pode gostar