Pragiva — Tecnologia na prática

PO UI ou MVC: critérios de escolha para uma tela nova no Protheus

PO UI ou MVC: MVC entrega tela e gravação no Protheus; PO UI é biblioteca Angular e precisa de API. Matriz por tarefa, integração, manutenção e equipe.

Desenvolvimento Guia de processo 3 min de leitura

Assista o vídeo

Resposta rápida

Pergunta
para uma tela nova, PO UI ou MVC?
Resposta curta
se a tela é um cadastro ou manutenção de tabela usada pelo usuário dentro do Protheus, comece pelo MVC. Se a tela precisa de fluxo próprio, de outro público ou de rodar fora do Protheus, PO UI entra, mas com uma API por trás.
Atenção
os dois não são alternativas do mesmo nível. Um é framework do próprio Protheus; o outro é uma biblioteca de interface.
Nesta página5 seções

Não são a mesma coisa

O MVC do Protheus é escrito em ADVPL/TLPP e cobre menu, regra e tela. O ModelDef cuida da gravação, então você não escreve o RecLock.

O PO UI, segundo o README do repositório oficial, é uma biblioteca de componentes de UI para Angular, com licença MIT. Componentes de template, como página de login e tabela dinâmica, ficam num pacote separado. O README não menciona Protheus.

Consequência prática: PO UI desenha a tela e não grava nada sozinho. Os dados vêm de uma API, por exemplo uma API REST em TLPP, e a regra de negócio e a gravação continuam no lado Protheus. Escolher PO UI é escolher também escrever e manter essa API.

Matriz de decisão

Esta matriz é critério do autor, não posição da TOTVS nem fato medido. Serve para organizar a conversa com a equipe.

CritérioMVC tende a servir quando…PO UI tende a servir quando…
Tarefa do usuárioCadastro, manutenção de tabela, pai e filho, validação de campoPainel, fluxo em passos, tela com interação que o browse padrão não dá
Onde o usuário trabalhaDentro do menu do ProtheusFora do Protheus ou embutido numa experiência própria
IntegraçãoA tela e a regra falam com o dicionário e com os eventos do modeloA tela consome API; o mesmo backend pode atender outros clientes
GravaçãoVocê quer que o framework grave (MPFormModel)Você aceita escrever a API de gravação, o tratamento de erro e a autenticação
ManutençãoSó ADVPL/TLPP; um fonte, um deployDois projetos (front e API), dois ciclos de deploy, dependências de Node a acompanhar
EquipeQuem já programa ProtheusExiste quem mantenha Angular e TypeScript, e não só quem o escreveu
Ponto de entrada de terceirosSó vale se você reaproveitar uma rotina padrão: várias rotinas padrão, inclusive com modelo MVC, chamam PEsEm geral, uma tela e uma API novas só passam por PE se a API chamar a rotina padrão; a confirmar no seu caso

Como ler a matriz

  • Um “sim” para PO UI não basta. A linha de manutenção pesa: uma tela PO UI muda quando a API muda, e o contrário. No MVC, alterar o modelo altera a tela que o consome.
  • Regra fora do dicionário cabe nos dois lados, mas de formas diferentes. No MVC entra como evento do modelo; no PO UI, na API.
  • Tela de cadastro simples em PO UI costuma ser mais trabalho do que o equivalente em MVC, porque a tela, a API e a gravação passam a ser peças separadas. Esta é uma avaliação editorial, não medição.
  • Pai e filho já têm caminho pronto no MVC: cabeçalho e itens.

Uma regra para decidir

  1. Descreva a tarefa em uma frase. Se a frase é “manter o cadastro de X”, vá de MVC: primeiro cadastro do zero.
  2. Se a frase inclui “fora do Protheus” ou “para quem não usa o menu”, PO UI é candidato.
  3. Antes de aprovar PO UI, responda: quem mantém o front daqui a um ano, e onde a API roda e como autentica? Sem resposta, o custo real ainda não foi estimado.

O que este artigo não afirma

Não há aqui versão de Angular, de PO UI ou de Protheus recomendada, nem descrição de como o app é publicado dentro do Protheus ou de como autentica. Nada disso foi verificado para este texto; veja o README do projeto para os requisitos vigentes.

Referências

  1. Outrogithub.com

    GitHub — po-ui/po-angularREADME: biblioteca de componentes de UI para Angular, licença MIT, pacote de templates à parte.

Continue por aqui