Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Power Fx è il linguaggio a basso codice usato Microsoft Power Platform. Si tratta di un linguaggio di programmazione generico, fortemente tipizzato, dichiarativo e funzionale.
Power Fx è espresso in un testo di facile utilizzo. È un linguaggio a uso limitato di codice con cui i creatori possono lavorare direttamente in una barra della formula simile a Excel o una finestra di testo di Visual Studio Code. Il "basso" in basso codice deriva dalla natura concisa e semplice del linguaggio, che semplifica le attività di programmazione comuni sia per i creatori che per gli sviluppatori. Consente l'intero spettro di sviluppo dal no-code per coloro che non hanno mai programmato prima di "pro-code" per il professionista stagionato, senza imparare o riscrivere scogliere tra di loro. Diversi team possono collaborare e risparmiare tempo e spese.
Nota
- Microsoft Power Fx è il nuovo nome per il linguaggio delle formule per le app canvas in Power Apps. Questa panoramica e gli articoli associati sono in corso mentre Microsoft estrae il linguaggio dalle app canvas, lo integra con altri prodotti Microsoft Power Platform e lo rende disponibile come open source. Per saperne di più e sperimentare il linguaggio oggi, inizia con Iniziare a usare le formule nelle app canvas nella documentazione Power Apps e registrati per una versione di valutazione Power Apps gratuita.
- In questo articolo i creatori fanno riferimento agli utenti che potrebbero usare una funzionalità a una delle estremità dello spettro delle competenze di programmazione. Gli sviluppatori fanno riferimento agli utenti quando la funzionalità è più avanzata e probabilmente non rientra nell'ambito di un utente tipico Excel.
Power Fx associa gli oggetti alle formule dichiarative simili a fogli di calcolo. Si prenda ad esempio la proprietà Visible di un controllo dell'interfaccia utente come cella in un foglio di lavoro di Excel, con una formula associata che ne calcola il valore in base alle proprietà di altri controlli. La logica della formula ricalcola automaticamente il valore, in modo simile a un foglio di calcolo, il che influisce sulla visibilità del controllo.
Anche, Power Fx offre una logica imperativa quando necessario. I fogli di lavoro in genere non hanno pulsanti che possono inviare modifiche a un database, mentre le app spesso li hanno. Lo stesso linguaggio di espressioni viene utilizzato sia per la logica dichiarativa che per quella imperativa.
Microsoft renderà Power Fx disponibile come software open source. È attualmente integrato nelle app canvas e Microsoft è in fase di estrazione da Power Apps per l'uso in altri prodotti Microsoft Power Platform e come open source. Altre informazioni: Microsoft Power Fx su GitHub
Questo articolo è una panoramica del linguaggio e dei suoi principi di progettazione. Per ulteriori informazioni su Power Fx, vedi gli articoli seguenti:
- Tipi di dati
- Operatori e identificatori
- Tabelle
- Variabili
- logica imperativa
- Supporto globale
- Grammatica delle espressioni
- Grammatica della formula YAML
Pensiero del foglio di calcolo
Se potessi creare un'app con la stessa facilità con cui crei un foglio di lavoro in Excel?
E se potessi trarre vantaggio dalle tue conoscenze esistenti sui fogli di calcolo?
Queste domande hanno ispirato la creazione di Power Apps e Power Fx. Centinaia di milioni di persone creano fogli di lavoro con Excel ogni giorno. È possibile portare la creazione di app semplice e usata Excel concetti già noti. Estraendo Power Fx da Power Apps, risponderemo a queste domande per l'automazione della compilazione, un agente virtuale o altri domini.
Tutti i linguaggi di programmazione, incluso Power Fx, hanno le espressioni: un modo per rappresentare un calcolo di numeri, stringhe o altri tipi di dati. Ad esempio, mass * acceleration nella maggior parte dei linguaggi esprime la moltiplicazione di mass e acceleration. È possibile inserire il risultato di un'espressione in una variabile, usarlo come argomento di una routine o annidarlo in un'espressione più grande.
Power Fx fa un ulteriore passo avanti. Un'espressione di per sé non dice nulla su ciò che sta calcolando. Spetta al creatore posizionarla in una variabile o trasmetterla a una funzione. In Power Fx, invece di scrivere solo un'espressione che non ha un significato specifico, scrivi una formula che associa l'espressione a un identificatore. Scrivi force = mass * acceleration come formula per il calcolo di force. Quando mass o acceleration cambia, force viene aggiornato automaticamente a un nuovo valore. L'espressione descriveva un calcolo, una formula assegnava un nome a quel calcolo e lo usava come una ricetta. Per questo ci riferiamo a Power Fx come un linguaggio delle formule.
Ad esempio, questa formula di Stack Overflow cerca una stringa in ordine inverso. In Excel, ha l'aspetto dell'immagine seguente.
Screenshot di una barra della formula in Excel con la formula: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) La cella A1 contiene il testo "Hello, World! È bello conoscerti" La cella A2 contiene il testo "tu!"
Power Fx funziona con questa stessa formula, con i riferimenti di cella sostituiti dai riferimenti alle proprietà di controllo:
Screenshot della barra della formula Power Fx in Power Apps. La formula è =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) Nella casella di input sotto la formula, il testo "Hello, World! È bello conoscerti!" appare, lettera per lettera. Contemporaneamente, nella casella Etichetta, vengono visualizzate le lettere dell'ultima parola. Quando il testo completo viene visualizzato nella casella di input, la parola "tu!" appare nella casella Etichetta.
Quando il valore del Input controllo cambia, il Label controllo ricalcola automaticamente la formula e mostra il nuovo valore. Non ci sono gestori di eventi OnChange qui, come sarebbe il caso di altri linguaggi.
Un altro esempio usa una formula per il Fill colore dello schermo. Quando i dispositivi di scorrimento che controllano rosso, verde e blu cambiano, il colore di sfondo cambia automaticamente man mano che viene ricalcolato.
Non ci sono eventi OnChange per i comandi di scorrimento, come sarebbe il caso di altri linguaggi. Non c'è nessun modo per impostare esplicitamente il valore della proprietà Fill. Se il colore non funziona come previsto, è necessario esaminare questa formula per capire il motivo. Non è necessario cercare nell'app per trovare una parte di codice che imposta la proprietà in un momento imprevisto; non c'è elemento temporale. I valori della formula corretti vengono sempre mantenuti.
Poiché i cursori sono impostati su un colore scuro, le etichette per Rosso, Verde e Blu diventano bianche per compensare. Questa modifica avviene tramite una semplice formula sulla Color proprietà per ogni controllo etichetta.
Ciò che c'è di grande su questa formula è che è isolato da ciò che accade per il Fill colore: 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. Questa struttura li rende più facili da comprendere e consente miglioramenti senza disturbare la logica esistente.
Power Fx è un linguaggio dichiarativo, proprio come lo è Excel. Il creatore definisce il comportamento richiesto, ma è compito del sistema determinare e ottimizzare come e quando realizzarlo. Per praticità, la maggior parte del lavoro viene svolta tramite funzioni che non producono effetti collaterali, rendendo Power Fx un linguaggio funzionale, esattamento come lo è Excel.
Sempre disponibile
Un aspetto determinante dei fogli di lavoro è che sono sempre disponibili e le modifiche si riflettono istantaneamente. Non esiste alcuna modalità di compilazione o esecuzione in un foglio di lavoro. Quando si modifica una formula o si immette un valore, il foglio di lavoro ricalcola immediatamente per riflettere le modifiche. Eventuali errori rilevati vengono rilevati immediatamente e non interferiscono con il resto del foglio di lavoro.
Power Fx implementa la stessa cosa. Usa un compilatore incrementale per mantenere costantemente il programma sincronizzato con i dati su cui opera. Le modifiche vengono propagate automaticamente nel grafico del programma, che influiscono sui risultati dei calcoli dipendenti. Questi calcoli possono guidare le proprietà nei controlli, ad esempio colore o posizione. Il compilatore incrementale fornisce anche una ricca esperienza di modifica delle formule con IntelliSense, suggerimenti, completamento automatico e controllo della digitazione.
Nell'animazione seguente, il numero di ordine viene visualizzato in un controllo etichetta dipendente dal controllo dispositivo di scorrimento, anche se sono presenti due errori nelle etichette sottostanti. L'app è molto disponibile e interattiva. Il primo tentativo di correggere la formula inserendo .InvalidName genera una riga rossa immediata e viene visualizzato un errore, come dovrebbe, ma l'app continua a funzionare.
Quando si immette .Employee, il Data riquadro aggiunge la tabella Employees, recupera i metadati per questa tabella e offre immediatamente suggerimenti per le colonne. È stata appena illustrata una relazione da una tabella a un'altra e il sistema ha apportato le modifiche necessarie ai riferimenti dell'app. La stessa cosa accade quando si aggiunge .Customer.
Dopo ogni modifica, il dispositivo di scorrimento continua con il suo ultimo valore e tutte le variabili mantengono il loro valore. In tutto, il numero di ordine continua a essere visualizzato nell'etichetta superiore come dovrebbe. L'app è in tempo reale, elaborando dati reali, tutto il tempo. È possibile salvarlo, allontanarsi e altri possono aprirlo e usarlo proprio come Excel. Non esiste alcun passaggio di compilazione, nessuna compilazione, esiste solo un passaggio di pubblicazione per determinare quale versione dell'app è pronta per gli utenti.
Basso uso di codice
Power Fx descrive la logica aziendale in formule concise ma efficaci. La maggior parte della logica si riduce a una singola linea, con un sacco di espressività e controllo per esigenze più complesse. L'obiettivo è ridurre al minimo il numero di concetti che un produttore deve comprendere, idealmente non più di quanto un utente di Excel già saprebbe.
Ad esempio, per cercare il nome di un dipendente per un ordine, scrivi la formula Power Fx come mostrato nella seguente animazione. Oltre ai concetti di Excel, l'unico concetto aggiunto utilizzato qui è la notazione "." punto per il drill-down in una struttura di dati, in questo caso .Employee.'First Name'. L'animazione mostra il mapping tra le parti della formula Power Fx e i concetti che devono essere codificati esplicitamente nella formula JavaScript equivalente.
Diamo un'occhiata più approfondita a tutte le cose che Power Fx fa per noi e la libertà che deve ottimizzare perché la formula è dichiarativa:
Asincrono : Tutte le operazioni sui dati in Power Fx sono asincroni. Il creatore non ha bisogno di specificarlo e non deve sincronizzare le operazioni al termine della chiamata. Il creatore non deve essere a conoscenza di questo concetto e non ha bisogno di sapere cosa sia una promessa o una funzione lambda.
Locale e remoto : Power Fx utilizza la stessa sintassi e le stesse funzioni per i dati locali in memoria e per connettersi in remoto a un database o a un servizio. L'utente non ha bisogno di pensare a questa distinzione. Power Fx delega automaticamente tutto quel che può al server per elaborare i filtri e l'ordinamento in modo più efficiente.
Dati relazionali :Ordini e Clienti sono due tabelle diverse, con una relazione molti-a-uno. La query OData richiede un "$expand" con la conoscenza della chiave esterna, simile al comando Join in SQL. La formula non ha nulla di tutto questo; infatti, le chiavi del database sono un altro concetto che il creatore può non conoscere. L'autore può utilizzare una semplice notazione a punti per accedere all'intero grafico di relazioni da un record.
Proiezione :Quando si scrive una query, molti sviluppatori scrivono
select * from table, che restituisce tutte le colonne di dati. Power Fx esegue l'analisi di tutte le colonne usate nell'intera app, anche tra le dipendenze delle formule. La proiezione viene ottimizzata automaticamente e, ancora una volta, un creatore non ha bisogno di sapere cosa significa "proiezione".Recupera solo ciò che ti serve : In questo esempio, il
LookUpLa funzione implica che debba essere recuperato un solo record e questo è tutto ciò che viene restituito. Se vengono richiesti più record utilizzando la funzioneFilter, per cui potrebbero qualificarsi migliaia di record, viene restituita solo una singola pagina di dati alla volta, nell'ordine di 100 record per pagina. L'utente deve eseguire un movimento tramite una raccolta o una tabella di dati per visualizzare più dati e automaticamente inserisce più dati. Il creatore può utilizzare grandi set di dati senza dover pensare a limitare le richieste di dati a blocchi gestibili.Viene eseguito solo quando necessario: si definisce una formula per la
Textproprietà del controllo etichetta. Man mano che la variabile selezionata viene modificata,LookUpviene ricalcolato automaticamente e l'etichetta viene aggiornata. Il creatore non deve scrivere un gestore OnChange per la selezione e neanche ricordarsi che questa etichetta dipende da essa. Questa è una programmazione dichiarativa, come discusso in precedenza: il creatore ha specificato il contenuto richiesto dell'etichetta, non come o quando doveva essere recuperato. Se questa etichetta non è visibile perché si trova su una schermata che non è visibile o la relativaVisibleproprietà è false, è possibile rinviare questo calcolo fino a quando l'etichetta non è visibile ed eliminarla in modo efficace se raramente accade.Excel traduzione della sintassi : molti utenti sanno che la e commerciale (& ) viene usata per la concatenazione di stringhe in Excel. JavaScript utilizza un segno più (+) e altre lingue utilizzano un punto (.).Nomi visualizzati e localizzazione :
First Nameviene utilizzato nel Power Fx formula mentrenwind_firstnameviene utilizzato nell'equivalente JavaScript. In Microsoft Dataverse e SharePoint, è presente un nome visualizzato per colonne e tabelle oltre a un nome logico univoco. I nomi visualizzati sono spesso molto più intuitivi, come in questo caso, ma hanno un'altra importante qualità: possono essere localizzati. Se hai un team multilingue, ogni membro del team può vedere i nomi delle tabelle e dei campi nella propria lingua. Power Fx si assicura che, in qualsiasi caso, il nome logico corretto venga inviato automaticamente al database.
Nessun codice
Non è necessario leggere o scrivere Power Fx per iniziare a esprimere la logica. È possibile esprimere molte personalizzazioni e logica tramite semplici commutatori e generatori di interfaccia utente. Questi strumenti senza codice sono creati per leggere e scrivere Power Fx, quindi c'è un sacco di spazio per qualcuno che lo prenda ulteriormente. Tuttavia, gli strumenti senza codice non offrono mai tutta l'espressività del linguaggio completo. Anche quando si usano generatori senza codice, la barra della formula è anteriore e centrale in Power Apps per informare il creatore di ciò che viene fatto per loro conto in modo che possano iniziare a imparare Power Fx.
Ecco alcuni esempi. In Power Apps, il pannello delle proprietà fornisce interruttori e manopole senza codice per le proprietà dei comandi. In pratica, la maggior parte dei valori delle proprietà sono statici. È possibile utilizzare il compilatore di colori per modificare il colore di sfondo di Gallery. Si noti che la barra della formula riflette questa modifica, aggiornando la formula a una chiamata RGBA diversa. In qualsiasi momento, è possibile passare alla barra della formula e modificare ulteriormente questa modifica, in questo esempio usando ColorFade per regolare il colore. La proprietà del colore appare ancora nel pannello delle proprietà, ma viene visualizzata un'icona fx al passaggio del mouse e si viene indirizzati alla barra della formula. Questo funziona in due modi: la rimozione della chiamata ColorFade riporta il colore a qualcosa che il pannello delle proprietà può capire e puoi usarla di nuovo per impostare un colore.
Ecco un esempio più complicato. La raccolta mostra un elenco di dipendenti da Dataverse. Dataverse fornisce visualizzazioni sui dati della tabella. È possibile selezionare una di queste visualizzazioni e le modifiche della formula per usare la Filter funzione con questo nome di visualizzazione. È possibile utilizzare i due menu a discesa per comporre la tabella e la vista corretta senza toccare la barra della formula. Supponiamo però che tu voglia andare oltre e aggiungere un ordinamento. È possibile aggiungere tale funzione nella barra della formula e il pannello delle proprietà mostra di nuovo un'icona fx e indirizza le modifiche alla barra della formula. E anche in questo caso, se si semplifica la formula a un elemento che il pannello delle proprietà può leggere e scrivere, può essere usato.
Questi esempi sono semplici. Power Fx offre un ottimo linguaggio per descrivere le interazioni senza codice. È conciso, potente e facile da analizzare. Fornisce la sala head che è così spesso necessaria con "nessuna scogliera" fino a poco codice.
Codice per professionisti
I creatori con poco codice talvolta creano soluzioni che richiedono l'aiuto di un esperto o vengono prese in considerazione da uno sviluppatore professionista per mantenere e migliorare. I professionisti apprezzano anche il fatto che lo sviluppo a basso uso di codice può essere più semplice, veloce e meno costoso rispetto alla creazione di uno strumento professionale. Non tutte le situazioni richiedono tutta la potenza di Visual Studio.
I professionisti desiderano utilizzare strumenti professionali per essere più produttivi. È possibile archiviare formule Power Fx nei file di origine YAML, che sono facili da modificare usando Visual Studio Code, Visual Studio o qualsiasi altro editor di testo. L'archiviazione delle formule nei file YAML consente di inserire Power Fx sotto il controllo del codice sorgente usando GitHub, Azure DevOps o qualsiasi altro sistema di controllo del codice sorgente.
Power Fx supporta componenti basati su formule per la condivisione e il riutilizzo. Supporta i parametri per le proprietà dei componenti, consentendo la creazione di funzioni pure definite dall'utente con ulteriori miglioramenti.
Inoltre, Power Fx è ottimo per unire componenti e servizi creati da professionisti. I connettori predefiniti forniscono l'accesso a centinaia di origini dati e servizi Web. I connettori personalizzati consentono a Power Fx di comunicare con qualsiasi servizio Web REST. I componenti di codice consentono a Power Fx di interagire con JavaScript completamente personalizzato nella schermata e nella pagina.
Principi di progettazione
Semplice
Power Fx è progettato per indirizzare il pubblico degli autori, i cui membri non sono sottoposti a training come sviluppatori. Laddove possibile, il linguaggio usa le conoscenze che questo pubblico conosce già o può raccogliere rapidamente. Il numero di concetti necessari per avere successo è ridotto al minimo.
Essere semplici fa bene anche agli sviluppatori. Per i destinatari degli sviluppatori, Power Fx mira a essere un linguaggio a basso codice che riduce il tempo necessario per creare una soluzione.
Coerenza con Excel
Il linguaggio Microsoft Power Fx prende molti elementi in prestito dal linguaggio delle formule di Excel. Sfrutta Excel conoscenza ed esperienza dei molti produttori che usano anche Excel. I tipi, gli operatori e la semantica delle funzioni sono molto simili a Excel.
Se Excel non ha una risposta, Power Fx cerca sql. Dopo Excel, SQL è il successivo linguaggio dichiarativo più comunemente utilizzato e può fornire indicazioni sulle operazioni sui dati e la tipizzazione forte che Excel non prevede.
Dichiarativa
Il creatore descrive cosa vuole che la logica faccia, non esattamente come o quando farlo. Questo approccio consente al compilatore di ottimizzare eseguendo operazioni in parallelo, rinviando il lavoro fino a quando necessario, prelettura e riutilizzo dei dati memorizzati nella cache.
Ad esempio, in un foglio di lavoro Excel, l'autore definisce le relazioni tra le celle, ma Excel decide quando e in quale modo valutare le formule. Analogamente, è possibile considerare le formule in un'app come "ricalcolo" in base alle esigenze in base alle azioni utente, alle modifiche del database o agli eventi timer.
Funzionale
Usare funzioni pure che non hanno effetti collaterali. Questo approccio comporta una logica più semplice da comprendere e offre al compilatore la massima libertà di ottimizzazione.
A differenza di Excel, le app per loro natura cambiano lo stato. Ad esempio, le app dispongono di pulsanti che salvano le modifiche apportate al record in un database. Alcune funzioni, quindi, hanno effetti collaterali, anche se limitare questi effetti collaterali tanto quanto è pratico.
Composizione
Se possibile, aggiungere funzionalità che compongono correttamente le funzionalità esistenti. È possibile scomporre funzioni potenti in parti più piccole che è possibile usare più facilmente in modo indipendente.
Ad esempio, un controllo Raccolta non dispone di proprietà Sort e Filter separate. È invece possibile comporre le Sort funzioni e Filter in una singola Items proprietà. L'interfaccia utente viene a livelli per esprimere Sort e Filter il comportamento sopra la Items proprietà usando un editor bidirezionale per questa proprietà.
Fortemente tipizzato
I tipi di tutti i valori sono noti in fase di compilazione. Questo approccio consente di rilevare in anticipo gli errori e i suggerimenti avanzati durante la creazione.
I tipi polimorfici sono supportati, ma prima di poterli usare, è necessario aggiungere il tipo a un tipo statico e tale tipo deve essere noto in fase di compilazione. Le funzioni IsType e AsType vengono fornite per i tipi di test e casting.
Tipo di inferenza
I tipi sono derivati dal loro utilizzo senza essere dichiarati. Ad esempio, l'impostazione di una variabile su un numero determina la definizione del tipo di variabile come numero.
L'utilizzo del tipo in conflitto genera un errore in fase di compilazione.
Separatori decimali sensibili alle impostazioni internazionali
In alcune aree del mondo viene usato un punto (.) come separatore decimale, mentre in altre una virgola (,). Excel segue questa convenzione regionale. Altri linguaggi di programmazione usano in genere un punto canonico (.) come separatore decimale per tutti gli utenti in tutto il mondo. Per essere il più accessibile possibile per i creatori a tutti i livelli, è importante che 3,14 sia un numero decimale per una persona in Francia che ha utilizzato quella sintassi per tutta la vita.
La scelta del separatore decimale ha un impatto a cascata sul separatore di elenco, utilizzato per gli argomenti della chiamata delle funzioni e sull'operatore di concatenamento.
| Separatore decimale della lingua dell'autore | Separatore decimale Power Fx | Separatore di elenco Power Fx | Operatore di concatenamento Power Fx |
|---|---|---|---|
| . (punto) | . (punto) | , (virgola) | ; (punto e virgola) |
| , (virgola) | , (virgola) | ; (punto e virgola) | ;; (doppio punto e virgola) |
Altre informazioni: Supporto globale
Non orientato agli oggetti
Excel non è orientato agli oggetti e neanche Power Fx. Ad esempio, in alcuni linguaggi, la lunghezza di una stringa è espressa come una proprietà della stringa, come "Hello World".length in JavaScript. Excel e Power Fx si esprimono invece con i termini di una funzione, ad esempio Len( "Hello World" ).
I componenti con proprietà e metodi sono orientati agli oggetti e Power Fx funziona facilmente con loro. Ma, se possibile, preferire un approccio funzionale.
Estensibilità
I creatori possono creare i loro componenti e funzioni utilizzando Power Fx. Gli sviluppatori possono creare i propri componenti e funzioni scrivendo in JavaScript.
Per gli sviluppatori
Anche se i produttori sono la destinazione principale, provare a essere intuitivi per gli sviluppatori laddove possibile. Se non è in conflitto con i principi di progettazione descritti in precedenza, eseguire operazioni in modo che uno sviluppatore apprezzi. Ad esempio, Excel non ha alcuna funzionalità per l'aggiunta di commenti, quindi usare commenti inline e riga simili a C.
Evoluzione del linguaggio
L'evoluzione dei linguaggi di programmazione è necessaria ma al contempo complicata. Tutti sono giustamente preoccupati che una modifica, per quanto ben intenzionata, possa interrompere il codice esistente e richiedere agli utenti di apprendere un nuovo modello. Power Fx prende seriamente in considerazione la compatibilità con le versioni precedenti, ma il team di Power Fx ritiene anche che non sempre lo otterranno la prima volta e che la community possa apprendere collettivamente ciò che è meglio. Un linguaggio di programmazione deve evolversi e Power Fx è stato progettato per supportare l'evoluzione del linguaggio fin dall'inizio.
Ogni documento di Power Fx salvato include un timbro di versione della lingua. Se il team di Power Fx vuole apportare una modifica incompatibile, scrive ciò che chiama un "convertitore di compatibilità indietro" che riscrive automaticamente la formula alla successiva modifica. Se la modifica è qualcosa di importante che il team deve informare l'utente, l'app visualizza un messaggio con un collegamento alla documentazione. Usando questa funzionalità, Power Fx può ancora caricare le app compilate con le versioni di anteprima di Power Apps da molti anni fa, nonostante tutte le modifiche apportate da allora.
Ad esempio, il team di Power Fx ha introdotto la ShowError funzione per visualizzare un banner di errore con uno sfondo rosso.
Gli utenti lo amavano, ma hanno anche chiesto un modo per mostrare un banner di successo (sfondo verde) o un banner informativo (sfondo blu). Il team ha quindi creato una funzione più generica Notify che accetta un secondo argomento per il tipo di notifica. Il team potrebbe aver appena aggiunto Notify e mantenuto ShowError il modo in cui era, ma invece hanno sostituito ShowError con Notify. Hanno rimosso una funzione precedentemente in produzione e sostituita con qualcos'altro. Poiché ci sarebbero stati due modi per fare la stessa cosa, questa modifica avrebbe causato confusione, soprattutto per i nuovi utenti, e, soprattutto, avrebbe aggiunto complessità. Nessuno si è lamentato, tutti hanno apprezzato la modifica e sono passati alla successiva funzionalità di notifica.
Ecco come appare la stessa app quando viene caricata nell'ultima versione di Power Apps. Non è stata richiesta alcuna azione da parte dell'utente per realizzare questa trasformazione, che è avvenuta automaticamente all'apertura dell'app.
Usando questa funzionalità, Power Fx può evolversi più velocemente e in modo più aggressivo rispetto alla maggior parte dei linguaggi di programmazione.
Nessun valore indefinito
Alcuni linguaggi, come JavaScript, utilizzano il concetto di un valore non definito per variabili non inizializzate o proprietà mancanti. Per semplicità, Power Fx evita questo concetto. Le istanze che sarebbero indefinite in altri linguaggi vengono trattate come un errore o come un valore vuoto. Ad esempio, tutte le variabili non inizializzate iniziano con un valore vuoto. Tutti i tipi di dati possono assumere un valore vuoto.
Articoli correlati
Tipi di dati
Operatori e identificatori
Tabelle
Variabili
logica imperativa
Supporto globale
Grammatica delle espressioni
Grammatica della formula YAML
Formule nelle app canvas