Ir para o conteudo
Falar com um especialista
Falar com um especialista
Desenvolvimento

Power Pages ganha Server Logic no Liquid: o que isso muda na prática

Um problema recorrente nos projetos de Power Pages que a S4R conduz é o momento em que o portal cresce além do que o Liquid, isolado, consegue sustentar com segurança. A regra de negócio que era simples (mostrar ou esconder um campo, calcular um valor) vira uma sequência de templates aninhados, cheia de lógica repetida, sem lugar único para validar dados antes de gravar no Dataverse. É exatamente essa lacuna que a Microsoft está fechando ao estender o Liquid com Server Logic em Power Pages.

O anúncio detalha como desenvolvedores que trabalham com Liquid deixam de estar limitados a um conjunto fixo de objetos fornecidos pela plataforma e passam a poder invocar lógica de servidor customizada diretamente dos templates, mantendo o processamento sensível no back-end em vez de expor regras de negócio no HTML renderizado no navegador.

O problema que o Liquid puro sempre teve

Power Pages usa Liquid como motor de templates desde o início, e isso resolveu bem o caso simples: exibir dados do Dataverse, montar formulários, personalizar a experiência por tipo de usuário. O limite aparecia quando a regra de negócio precisava de algo que o conjunto padrão de objetos Liquid não fornecia, como uma chamada a um serviço externo, um cálculo que envolvia múltiplas tabelas relacionadas ou uma validação que não podia, por segurança, rodar só no navegador.

A saída mais comum, nos projetos que acompanhamos, era espalhar essa lógica entre plugins do Dataverse, Power Automate e JavaScript no lado do cliente. Funciona, mas fragmenta a regra de negócio em três lugares diferentes, dificultando manutenção e, principalmente, auditoria: quando algo quebra, é preciso checar três camadas para entender onde a decisão foi tomada.

Esse tipo de fragmentação também encarece qualquer mudança pequena. Um ajuste que parece trivial, como alterar a regra de desconto exibida num portal de parceiros, pode exigir tocar num plugin C#, revisar um fluxo de Power Automate e testar um trecho de JavaScript, tudo isso para uma mudança que, em teoria, deveria levar minutos. Quanto mais camadas envolvidas, maior a chance de uma delas ser esquecida na hora de testar.

O que a Server Logic muda na prática

Com Server Logic acessível a partir do Liquid, parte dessa lógica que hoje mora em plugins ou fluxos separados pode ser escrita como funções de servidor chamadas diretamente do template, com o processamento sensível permanecendo no back-end. Isso tem três efeitos práticos:

  • Menos superfície de exposição: regras que hoje precisam ser replicadas em JavaScript client-side (e por isso ficam visíveis a qualquer usuário que abra o código-fonte da página) podem ser movidas para o servidor.
  • Reuso entre páginas: a mesma lógica de servidor pode ser chamada por múltiplos templates, em vez de ser copiada e colada, o que reduz divergência entre páginas que deveriam se comportar de forma idêntica.
  • Manutenção mais previsível: uma alteração de regra de negócio passa a ter um lugar único de edição, em vez de exigir revisão em plugin, fluxo e template ao mesmo tempo.

Há ainda um efeito indireto que costuma passar despercebido: times de desenvolvimento que já trabalham com Server Logic em outras partes da solução (fora do Power Pages) podem reaproveitar o mesmo padrão de código, os mesmos testes e, em alguns casos, a mesma lógica que já usam em plugins do Dataverse. Isso reduz a curva de aprendizado para quem já conhece a plataforma e evita reinventar validações que já existem em outro lugar da solução.

Onde isso pesa mais: segurança e auditoria

Para clientes que operam portais expostos publicamente (atendimento, autoatendimento de parceiros, cadastro de fornecedores), a diferença entre lógica no cliente e lógica no servidor não é só estética. Regra de negócio visível no HTML ou no JavaScript do navegador pode ser lida, copiada e, em alguns casos, contornada por quem sabe onde procurar. Mover essa lógica para o servidor reduz esse risco de forma direta.

Do ponto de vista de auditoria, também importa: times de segurança e compliance costumam pedir evidência de onde uma decisão de negócio foi tomada. Ter isso centralizado em Server Logic, em vez de espalhado entre plugin, fluxo e template, encurta esse tipo de levantamento de dias para horas.

Existe também um ganho que só aparece quando o portal já sofreu um incidente de segurança: investigar o que aconteceu fica mais rápido quando a lógica de negócio está concentrada em um único lugar auditável, com log de execução do lado do servidor, em vez de espalhada em código de cliente que pode ter sido alterado ou removido sem deixar rastro.

O que isso exige da equipe técnica

Adotar Server Logic não é só trocar uma linha de código. Exige rever, portal por portal, onde a lógica de negócio está hoje espalhada e decidir, com critério, o que vale migrar primeiro. Nossa recomendação, com base no que aplicamos em sustentação de portais Power Pages, é priorizar:

  • Validações que hoje rodam só no JavaScript do cliente e que protegem dados sensíveis;
  • Lógica duplicada em mais de dois templates, candidata natural a centralização;
  • Regras que mudam com frequência (por sazonalidade, campanha ou política interna), porque são as que mais se beneficiam de um ponto único de manutenção.

Migrações completas, feitas de uma vez, tendem a introduzir regressão em portais que já estão em produção. O caminho mais seguro é migrar por trilha de negócio, testando cada mudança isoladamente antes de seguir para a próxima.

Também vale mapear, antes de começar, quem hoje entende cada trecho de lógica espalhada. Em portais com vários anos de operação, é comum que a pessoa que escreveu o plugin original ou o fluxo de aprovação já não esteja mais na equipe, e a documentação, quando existe, não reflita mudanças feitas depois. Nesses casos, o primeiro passo real da migração não é escrever código novo: é reconstituir, com quem ainda está disponível, o que a lógica atual realmente faz antes de decidir como ela deveria funcionar depois de centralizada.

O que pode esperar

Nem toda lógica precisa migrar agora. Templates simples de exibição, sem dados sensíveis e sem regra de negócio real embutida, continuam funcionando exatamente como antes: a novidade estende o Liquid, não obriga reescrita do que já funciona. O esforço de migração só se justifica onde já existe dor concreta: duplicação, exposição de regra sensível ou dificuldade de manutenção documentada.

Por onde começar

Antes de tocar em código, vale um levantamento de meio dia: listar os templates Liquid ativos no portal, marcar quais contêm lógica de negócio (não só exibição) e, entre esses, quais lidam com dados sensíveis ou são duplicados em mais de uma página. Esse levantamento, sozinho, já mostra por onde a migração deveria começar, sem precisar adivinhar.

Esse mesmo levantamento serve como base para justificar o investimento internamente: ao apresentar, em números, quantos templates concentram lógica duplicada ou dados sensíveis expostos no cliente, fica mais fácil priorizar a migração diante de outras demandas do backlog, em vez de tratá-la como uma tarefa de modernização sem urgência definida.

Se sua empresa mantém um portal Power Pages em produção e quer entender onde a Server Logic reduziria risco real, e não só modernizaria código por modernizar, fale com um especialista da S4R. Ajudamos a mapear essa lógica espalhada e a priorizar a migração pelo que realmente importa: segurança, manutenção e continuidade do que já está no ar.

Continue lendo

Falar no WhatsApp