Informazioni su Power Fx

Completato

Dopo aver rapidamente illustrato i concetti sullo sviluppo con uso limitato di codice, sono state evidenziate le somiglianze e le differenze tra i linguaggi di programmazione che tradizionalmente si usano per creare applicazioni, come C# e JavaScript, e Power FX usato in Power Apps.

Microsoft Power Fx è il linguaggio con uso limitato di codice per esprimere la logica all'interno di app canvas di Power Apps. Power Fx è ispirato a Microsoft Excel e segue molti dei modelli presenti nelle espressioni di Excel.

Espressioni e formule

In Excel non si scrivono solo espressioni, ma anche formule o ricette su come calcolare il valore di una cella specifica. A1 = B2 * 2 è una formula che definisce sempre il valore di A1 e viene ricalcolata automaticamente quando B2 cambia.

Power Fx segue lo stesso modello di formula. Le celle vengono sostituite con le proprietà di controlli o oggetti. Di seguito è riportato un esempio in cui è presente una formula di Excel presa da Stack Overflow per la ricerca della stringa inversa:

Excel con la formula: =RIGHT(A1,LEN(A1)-FIND(

Da questa è stata creata una formula di Power Fx. La diversità sta nel fatto che i riferimenti alle celle sono stati sostituiti con riferimenti alle proprietà dei controlli:

Power Fx in esecuzione all'interno di Power Apps con la formula: =RIGHT(Input.Text,LEN(Input.Text)-FIND(

In Power Fx non funzionano solo la stessa sintassi e le stesse funzioni, ma anche qualcosa dell'animazione. Man mano che Input.Text cambia (riquadro in alto), Label.Text (riquadro in basso) viene ricalcolato automaticamente. Come un foglio di calcolo, l'app ricalcola continuamente senza che lo sviluppatore dell'app debba aggiungere codice che specifica come eseguire questa operazione.

Modello di app dichiarativo

Molti stack di sviluppo di applicazioni tradizionali sono caratterizzati da un modello imperativo per lo sviluppo nello stack. In altre parole, lo sviluppatore dell'app deve scrivere il codice per tutto ciò che accade nell'app: autenticazione e autorizzazione, logica aziendale, interfaccia utente, configurazione del server o del servizio cloud e così via.

Power Fx è un linguaggio dichiarativo, proprio come Excel. Lo sviluppatore definisce il comportamento desiderato, ma spetta al sistema decidere come e quando realizzarlo. Per praticità, la maggior parte del lavoro viene svolta tramite funzioni che non producono effetti collaterali, rendendo Power Fx anche un linguaggio funzionale.

Di seguito è riportato un altro esempio che usa una formula per il colore di riempimento della schermata. Man mano che i dispositivi di scorrimento che controllano il rosso, il verde e il blu vengono modificati, il colore di sfondo cambia automaticamente perché viene ricalcolato:

Formula Power Fx: Fill = RGBA( RedSlider.Value, GreenSlider.Value, BlueSLider.Value, 100% )

Non ci sono eventi OnChange per i controlli del dispositivo di scorrimento, come sarebbe comune in altri linguaggi. Infatti non esiste alcun modo per impostare in modo esplicito il valore della proprietà Fill. E questo comporta un enorme vantaggio: c'è solo una fonte di verità. Se il colore non funziona correttamente, si esamina una sola formula per capire perché. Non è necessario cercare nell'app per trovare un codice non autorizzato che ha impostato la proprietà in un momento imprevisto. Infatti non esiste un elemento temporale e vengono sempre mantenuti i valori corretti della formula.

Si noti inoltre nell'animazione che poiché i dispositivi di scorrimento sono impostati su un colore scuro, le etichette per rosso, verde e blu cambiano in bianco di conseguenza. Questo comportamento si ottiene tramite una semplice formula della proprietà Color di ogni controllo Label:

If(
    BlueSlider.Value + GreenSlider.Value + RedSlider.Value < 150,
    White,
    Black
)

La logica per impostare il colore delle etichette è isolata da ciò che accade per il colore di riempimento; si tratta di due calcoli completamente diversi. Invece di procedure monolitiche di grandi dimensioni, la logica di Power Fx è in genere composta da molte formule più piccole e indipendenti. È più facile da comprendere e consente l'applicazione di miglioramenti senza disturbare la logica esistente.

Anche la logica imperativa dettagliata è prevista in Power Fx. Le app riscrivono le modifiche nei database e avviano le automazioni con la semplice selezione di un pulsante, mentre i fogli di calcolo non permettono queste operazioni. Quando possibile, per tutti i vantaggi sopra citati e per coerenza con Excel, si consiglia l'approccio dichiarativo.

Nota

Per altre informazioni sull'uso delle tecniche di sviluppo imperativo, vedere Uso di tecniche di sviluppo imperativo per le app canvas in Power Apps.