PowerApps – Model-driven e Canvas Apps


Olá pessoal,

Neste post irei falar um pouco sobre os dois tipos de apps que podemos criar utilizando PowerApps: Model-driven e Canvas!

 

Primeiramente, o que são Canvas e Model-driven apps…

  • Canvas

São aplicações que se proporcionam uma grande simplicidade e autonomia tanto em relação a fonte de dados como com a apresentação (design) das apps.

Embora funcionem muito bem com CDS (veja este post para mais detalhes), podem utilizar diversas outras fontes de dados para armazenamento (atualmente mais de 200 fonte diferentes!) como por exemplo SharePoint e Excel.

São muito simples de serem construídas ou modificadas, podemos criar apps baseados na nossa fonte de dados, facilitando e muito a customização. Além disso, os controles são adicionados de forma visual (drag and drop), quando as validações, formulas muito parecidas com as dos Excel criam regras de negócio.

 

  • Model-driven

Como o próprio nome sugere (Model-driven), são aplicações baseadas em modelos, mas especificamente em componentes. Desta forma, temos o oposto do que acontece com apps em Canvas, pois não precisamos “cuidar” da renderização de nossos dados, pois uma rica camada de apresentação será responsável por isso. Assim, existe um padrão de apresentação que será seguido em toda sua aplicação de forma automática.

Se você está se perguntando: “o que seria esta rica cama de apresentação”? Adivinhe a resposta? Como já havia dito anteriormente aqui (recordar é viver! rs), o núcleo central do PowerApps, mas especificamente as apps em model-driven usam o motor do Dynamics 365 Customer Engagement (CE). Assim, está mais do que claro que o nosso Dynamics 365 CE foi a primeira Model-driven app da história!

 

Qual a melhor app Canvas ou Model-driven?

Na verdade o conceito de melhor vai depender do que você precisa, podemos por exemplo usar apps feitas em Canvas e Model-driven ao mesmo tempo. Uma área da empresa pode utilizar Canvas e a outra Model-driven. E mais, mesmo que decida utilizar uma das apps e no futuro queira mudar para a outra, na maioria das vezes isso pode ser feito sem grandes problemas. Assim, o melhor pode sempre mudar! Mas vamos aos fatos…

Bom, para ajudar na decisão, criei uma tabela que contém as principais diferenças entres as apps, vamos lá:

Canvas

Model-driven

Requer CDS?

Não. Podemos user CDS e mais de 200 outras fontes de dados Sim, uma app em Model-driven requer CDS como fonte de dados

Complexidade para integrar com dados/sistemas externos ao CDS

Baixa, podemos ter dados de diversos diferentes sistemas na app sem nenhuma programação Média/Alta, integrações precisam ser desenvolvidas caso a caso, com exceção das entidades virtuais, onde já possuímos componentes para renderizá-las

Tipo de licença requerido para o funcionamento

No mínimo o Plano 1, porém para obter todas as funcionalidades (que nem sempre é preciso) é requerido ao Plano 2, que é 4 vezes mais barato do que Plano 1 Plano 2

Facilidade na criação e manutenção de apps com grande quantidade de entidades, atributos, visualizações

Média/Alta, quase sempre quando temos grande flexibilidade visual, temos como contraponto a dificuldade de adotar um padrão para toda app. Assim, cada tela de sua app precisará ser minimamente construída e ajustada Fácil, por utilizarmos sempre modelos e componentes pre-definidos, o trabalho quase não muda se temos uma app de apenas uma tela ou com 100 telas

Recomendada para processos simples?

Sim, por possibilitar um alto nível de customização, automaticamente aumentamos a experiência do usuário na execução de pequenos processos Não, é como aquela velha frase “utilizar uma bazuca para matar uma formiga”. Podemos utilizar, mas será mais caro que uma app em Canvas e terá muito mais recursos do que realmente precisamos

Requer um desenvolvedor para efetuar as customizações?

Não e caso seja necessária a criação de alguma validação/regra de negócio, utilizamos formulas muito parecidas com as que usamos no Excel Não necessariamente, mas em algumas circunstâncias será necessário um desenvolvedor para efetuar a extensão

Executa apps que utilizam entidades com plug-ins (código customizado)?

Não se utilizar o Plano 1. Sim se utilizar o Plano 2 Sim

Executa apps que utilizam entidades com workflows de tempo real?

Não se utilizar o Plano 1. Sim se utilizar o Plano 2 Sim

Visualização responsiva

Não, os componentes são posicionados estaticamente Sim, não importa o seu dispositivo, a aplicação irá se ajustar a ele

 

Bom como eu disse anteriormente, nenhuma das apps veio para tirar o lugar da outra, cada uma possui seu propósito, cabendo a você tomar a melhor decisão, porém a escolha de uma não inviabiliza a outra e sempre teremos a possibilidade de mudar no futuro normalmente com poucos problemas.

Links úteis:

https://docs.microsoft.com/pt-br/powerapps/maker/canvas-apps/getting-started

https://docs.microsoft.com/pt-br/powerapps/maker/model-driven-apps/model-driven-app-overview

 

Este post fica por aqui, volto em breve com alguns exemplos!

[]’s,

Tiago

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.