Scegliere il tipo di app è una delle prime decisioni architetturali che un functional consultant affronta in Power Platform. Power Apps offre due modelli distinti — model-driven app e canvas app — che non sono intercambiabili: partono da presupposti diversi su dati, layout e produttività. Capire quando usare l’uno o l’altro è competenza d’esame centrale in PL-200.
Model-driven app: guidate dai dati
Le model-driven app si costruiscono “dall’alto verso il basso”, partendo dal data model in Microsoft Dataverse. L’interfaccia (form, view, chart, dashboard) viene generata automaticamente dai metadati delle table, dalle relationship e dalle business rule. Il risultato è un’applicazione responsive e coerente con il Fluent design, senza dover disegnare manualmente un singolo pixel.
Caratteristiche chiave:
- Native su Dataverse: richiedono obbligatoriamente Dataverse come backend, non possono attingere ad altre origini.
- Componenti pronti: command bar, ricerca, filtri, viste ordinabili, form con tab e sezioni, business process flow e sub-grid relazionali sono forniti out-of-the-box.
- Sitemap: la navigazione si configura tramite l’app designer, che orchestra table, form, view e dashboard in aree e gruppi.
- Sicurezza granulare: rispettano automaticamente security role, column-level security e regole di Dataverse.
Sono la scelta d’elezione per gestionali complessi e data-centric: CRM, case management, dispatch, sales, service — scenari con molte entità correlate, processi guidati e utenti interni.
Canvas app: layout pixel-perfect e multi-source
Le canvas app si costruiscono “dal basso verso l’alto”: si parte da una tela vuota e si compone la UI trascinando controlli, con controllo totale su posizione, colori e comportamento, in stile PowerPoint. La logica si scrive in Power Fx.
Caratteristiche chiave:
- Multi-source: possono connettersi contemporaneamente a Dataverse, SharePoint, SQL, Excel, API custom e centinaia di connector (standard e premium).
- Pixel-perfect: ideali quando serve un’esperienza su misura, brandizzata o task-specific.
- Mobile-first: perfette per uso su smartphone/tablet, scenari sul campo (ispezioni, checklist, foto, firma), spesso combinate con Power Apps mobile.
- Embeddable: si incorporano in Teams, SharePoint, model-driven form (custom page) e altre superfici.
Il rovescio della medaglia: ogni schermata, filtro, form e galleria va costruito a mano. Il layout responsive non è automatico e richiede lavoro esplicito.
Criteri di scelta per scenario
| Fattore | Model-driven | Canvas |
|---|---|---|
| Origine dati | Solo Dataverse | Multi-source |
| Layout | Automatico, responsive | Manuale, pixel-perfect |
| Complessità dati | Alta, molte relazioni | Bassa/media, task mirato |
| Effort UI | Minimo | Elevato |
| Uso tipico | Gestionale interno, desktop | Mobile, sul campo, brandizzato |
Domande guida da porsi:
- I dati sono già in Dataverse e il modello è ricco di relazioni? → propendi per model-driven.
- Devi combinare più origini o serve un layout su misura per mobile? → canvas.
- Serve entrambe le cose? Considera un approccio ibrido con custom page (una canvas app embeddata dentro una model-driven).
App designer e maker portal
Il maker portal (make.powerapps.com) è l’ambiente unico da cui un maker crea entrambi i tipi, seleziona l’environment corretto, gestisce table Dataverse, connection e solution. È buona prassi lavorare sempre dentro una solution per garantire ALM e portabilità tra ambienti.
L’app designer è lo strumento con cui si assembla la model-driven app: vi si aggiungono le page (table con relative view/form), i dashboard e si configura la navigation. Per le canvas app l’editor equivalente è Power Apps Studio, orientato al design della tela e a Power Fx.
Trappole tipiche d’esame
- Gestionale complesso su Dataverse con molte relazioni → model-driven, non canvas. Ricostruire a mano griglie, form relazionali e command bar in una canvas app raddoppia il lavoro di UI che la model-driven fornisce già pronto e responsive.
- Serve unire Dataverse + SharePoint + un connector premium in un’unica app → canvas. La model-driven non supporta origini diverse da Dataverse: se lo scenario cita più data source, la risposta è canvas.
- App mobile brandizzata per operatori sul campo (foto, firma, GPS) → canvas. Il layout pixel-perfect e i connector di device sono terreno delle canvas app, non delle model-driven.
- Serve UI custom dentro un’app data-centric esistente → custom page (canvas embeddata nella model-driven), non due app separate.
- “Quale strumento per assemblare la navigazione di una model-driven app?” → app designer (con la sitemap), non Power Apps Studio, che riguarda le canvas app.