Usina BRAdvPL Guia
Entrar
← Todos os tópicos
FUNDAMENTOEm revisão

MVC (Model View Controller)

ModelDef -> Model; ViewDef -> View; MenuDef -> actions

Separa regras de dados, interface e ações da aplicação.

MVC (Model View Controller)AdvPL
01 · VISÃO GERAL

Visão geral

ModelDef define o modelo e suas regras; ViewDef associa campos e grids a esse modelo; MenuDef fornece ações e operações. MPFormModel facilita o padrão Protheus com tratamento de Help, variáveis de memória e persistência padrão. A interface não deve concentrar a regra que também será necessária em execução automática. Definir, ativar, validar, gravar e cancelar são etapas distintas. O exemplo comunitário de uma entidade mostra essa separação em funções próprias; o quadro abaixo resume responsabilidades, sem abrir tabelas ou janelas. (Fontes: refs. 1–4.)

02 · SINTAXE

Sintaxe

ModelDef -> Model; ViewDef -> View; MenuDef -> actions
03 · EXEMPLO PRÁTICO

Exemplo comentado

#Include "Protheus.ch"

User Function Ed552()
    Local aCamadas := {{"ModelDef","Regras e dados"},{"ViewDef","Interface"},{"MenuDef","Acoes"}}
    Local nI
    // Mapa de responsabilidades; nenhuma rotina MVC e ativada.
    For nI := 1 To Len(aCamadas)
        ConOut(aCamadas[nI,1]+" -> "+aCamadas[nI,2])
    Next
Return Nil
Resultado esperado

Imprime três linhas de responsabilidades. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

BOAS PRÁTICAS
  • Manter IDs consistentes entre modelo e view, separar validação de persistência e conferir permissões das ações. Ao usar User Function, não repetir seu nome como ID de Model sem observar a regra oficial de geração de PEs.
  • Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. MPFormModel. TDN. Consulta em 2026-10-27.
  2. TOTVS. FWFormModel. TDN. Consulta em 2026-10-27.
  3. TOTVS. FWFormView. TDN. Consulta em 2026-10-27.
  4. Atilio. zMVCMd1.prw, exemplo comunitário completo; commit 7d275a7. Consulta em 2026-10-27.
Situação
Em revisão
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha