Microsoft Power Fx – yleiskatsaus
Power Fx on low-code-kieli, jota käytetään Microsoft Power Platformissa. Se on yleiskäyttöinen, vahvasti tyypitetty, määrittävä ja toimiva ohjelmointikieli.
Power Fx ilmaistaan helposti ymmärrettävinä lausekkeina. Se on vähän koodia käyttävä kieli, jonka avulla tekijät voivat käsitellä suoraan Excelin tyyppisiä kaavarivejä tai Visual Studio Coden teksti-ikkunaa. Vähän koodia käyttävän kielen vähäinen koodin määrä on mahdollista kielen yhdenmukaisen ja yksinkertaisen luonteen vuoksi. Sen avulla ohjelmointitehtävät ovat helppoja sekä tekijöille että kehittäjille. Sen avulla kaiken tasoinen kehittäminen on mahdollista: henkilö, joka ei ole koskaan ohjelmoinut, voi kehittää täysin ilman koodia, kun taas ammattikehittäjät voivat käyttää ammattimaista koodausta. Koska taitotasojen välillä siirtyminen ei edellytä uudelleenkirjoittamista, monimuotoiset tiimit voivat tehdä yhteistyötä, mikä säästää aikaa ja rahaa.
Muistiinpano
- Microsoft Power Fx on Power Apps -kaaviosovellusten kaavakielen uusi nimi. Tätä yleiskatsausta ja liittyviä artikkeleita päivitetään, koska kieli on poimittu pohjaan perustuvasta sovelluksesta, integroitu toisten Microsoft Power Platform -tuotteiden kanssa ja määritetty käytettäväksi avoimena lähdekoodina. Jos haluat lisätietoja kielestä ja kokeilla sitä, aloita Power Apps -dokumentaation kohdasta Kaaviosovellusten kaavojen käytön aloittaminen ja rekisteröidy maksuttomaan Power Apps -kokeiluun.
- Tässä artikkelissa tekijät mainitaan, kun kuvaillaan ominaisuutta, jota voidaan käyttää ohjelmointitaitojen molemmissa päissä. Käyttäjään viitataan kehittäjänä, jos ominaisuus on kehittynyt ja vaatii enemmän osaamista kuin tyypillisellä Excel-käyttäjällä on.
Power Fx sitoo objekteja yhteen deklaratiivisia laskentataulukkomuotoisia kaavoja käyttäen. Oletetaan esimerkiksi, että käyttöliittymän ohjausobjektin Näkyvä-ominaisuus on Excel-laskentataulukon solu, joka sisältää kaavan, joka laskee sen arvon muiden ohjausobjektien ominaisuuksien perusteella. Kaavan logiikka laskee arvon automaattisesti samalla tavalla kuin laskentataulukko. Tämä vaikuttaa ohjausobjektin näkyvyyteen.
Power Fx sisältää myös tarvittaessa määräävän logiikan. Laskentataulukoissa ei yleensä ole painikkeita, jotka lähettävät muutoksia tietokantaan, mutta sovelluksissa usein on. Samaa lausekekieltä käytetään sekä deklaratiivisessa että imperatiivisessa logiikassa.
Power Fx tuodaan saataville avoimen lähdekoodin ohjelmistona. Se on tällä hetkellä integroitu kaaviosovelluksiin ja sitä ollaan purkamassa Power Appsista käytettäväksi muissa Microsoft Power Platform -tuotteissa avoimen lähdekoodin sovelluksena. Lisätietoja: Microsoft Power Fx GitHubissa
Tässä artikkelissa on kielen ja sen suunnitteluperiaatteiden yleiskatsaus. Lisätietoja Power Fx -kielestä on seuraavissa artikkeleissa:
- Tietotyypit
- Operaattorit ja tunnisteet
- Taulukot
- Muuttujat
- Pakottava logiikka
- Maailmanlaajuinen tuki
- Lausekkeen kielioppi
- YAML-kaavan kielioppi
Laskentataulukkoa muistuttava
Entä jos voisit luoda sovelluksen yhtä helposti kuin laskentataulukon Excelissä?
Entä jos voisit hyödyntää olemassa olevaa laskentataulukkotietämystäsi?
Nämä olivat kysymyksiä, jotka inspiroivat Power Appsin ja Power Fx:n luomiseen. Sadat tuhannet henkilöt luovat laskentataulukoita Excelissä joka päivä. Annetaan heille mahdollisuus luoda sovelluksia helposti Excelin tuttujen käsitteiden avulla. Purkamalla Power Fx:n ulos Power Appsista näihin kysymyksiin vastataan automaation, virtuaaliagentin tai muiden alueiden kehittämisessä.
Kaikissa ohjelmointikielissä, myös Power Fx:ssä on lausekkeita: ne osoittavat lukujen, merkkijonojen tai muiden tietotyyppien laskennan. Esimerkiksi mass * acceleration
ilmaisee useimmissa kielissä ominaisuuksien mass
ja acceleration
kertomista. Lausekkeen tulos voidaan sijoittaa muuttujaan, käyttää argumenttina toimenpiteessä tai sijoittaa isomman lausekkeen sisään.
Power Fx vie tämän askeleen eteenpäin. Lauseke itse ei kerro mitään siitä, mitä lasketaan. Tekijän tehtävä on sijoittaa se muuttujaan tai välittää se funktioon. Power Fx:ssä sen sijaan, että kirjoittaisit vain lausekkeen, jolla ei ole tiettyä merkitystä, kirjoitat kaavan, joka sitoo lausekkeen tunnisteeseen. Kirjoita force = mass * acceleration
kaavaksi, kun lasketaan force
. Kun mass
tai acceleration
muuttuu, force
päivitetään automaattisesti uudeksi arvoksi. Lauseke kuvasi laskutoimituksen, kaava antoi laskutoimitukselle nimen ja käytti sitä valmistusohjeena. Siksi kutsumme Power Fx:ää kaavakieleksi.
Esimerkiksi tämä pinon ylivuodon kaava hakee merkkijonon käänteisessä järjestyksessä. Se näyttää Excelissä samalta kuin seuraavassa kuvassa.
Näyttökuva Excelin kaavarivistä ja kaavasta: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) Solu A1 sisältää tekstin "Hei maailma! Hauska tavata sinut! Solu A2 sisältää tekstin sinut!
Power Fx toimii samalla kaavalla, jossa soluviittaukset korvattu ohjausobjektien ominaisuusviittauksilla:
Näyttökuva Power Fx -kaavarivistä Power Appsissa. Kaava on =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) Kaavan alapuolella syöttökentässä on teksti "Hello, World! Hauska tavata sinut! tulee näkyviin kirjain kerrallaan. Samaan aikaan seliteruudussa viimeisen sanan kirjaimet tulevat näkyviin. Kun koko teksti näkyy syöttökentässä, sana sinut! tulee näkyviin Selite-ruutuun.
Kun Input
-ohjausobjekti arvo muuttuu, Label
-ohjausobjekti laskee kaavan automaattisesti uudelleen ja näyttää uuden arvon. Tapahtumakäsittelijöitä OnChange
ei ole, toisin kuin useissa muissa kielissä.
Toisessa esimerkissä käytetään näytön Fill
-värin kaavaa. Samalla kun ohjausobjektin punainen, vihreä ja sininen muuttuvat, taustaväri muuttuu automaattisesti uudelleenlaskemisen vuoksi.
Liukusäätimen ohjausobjekteissa ei ole tapahtumia OnChange
toisin kuin muissa kielissä. Ominaisuuden Fill
arvoa ei voi määrittää eksplisiittisesti. Jos väri ei toimi odotetulla tavalla, saat lisätietoja katsomalla tätä kaavaa. Sinun ei tarvitse hakea ominaisuuden odottamattomaan aikaan määrittävää koodia sovelluksen kautta, koska aikaelementtiä ei ole. Oikeita kaavan arvoja ylläpidetään aina.
Koska liukusäätimet on määritetty väriltään tummaksi, punaisen, vihreän ja sinisen selitteet kompensoivat sitä muuttumalla valkoisiksi. Tämä tapahtuu yksinkertaisella kaavalla kunkin otsikon ohjausobjektin ominaisuudessa Color
.
Hienoa on se, että tämä ei riipu siitä, mitä värille Fill
tehdään. Nämä ovat kaksi täysin eri laskutoimitusta. Suurten monoliittisten proseduurien sijaan Power Fx -logiikka koostuu yleensä toisistaan riippumattomista pienemmistä kaavoista. Tämä helpottaa kielen ymmärtämistä ja mahdollistaa parannukset ilman olemassa olevan logiikan muuttamista.
Power Fx on deklaratiivinen kieli, kuten Excelkin. Tekijä määrittää haluamansa toiminnan, mutta järjestelmän on itse määritettävä ja optimoitava, miten ja milloin se tehdään. Jotta tämä olisi mahdollisimman käytännöllistä , useimmat työt tehdään ilman sivuvaikutuksia aidoilla funktioilla, mikä tekee Power Fx:stä myös funktionaalisen kielen (kuten Excelkin).
Aina käytettävissä
Laskentataulukoiden tärkeät ominaisuudet ovat kokoaikainen reaaliakaisuus ja muutosten näkyminen välittömästi. Laskentataulukossa ei ole käännös- ja suoritustilaa. Kun kaavaa muokataan tai arvo syötetään, laskentataulukko lasketaan heti uudelleen vastaamaan muutoksia. Havaitut virheet näytetään heti, eivätkä ne vaikuta laskentataulukon muihin osiin.
Sama on toteutettu Power Fx:ssä. Lisäävää kääntäjää käytetään, jotta ohjelma on jatkuvasti synkronoitu käytettävissä olevien tietojen kanssa. Muutokset levitetään automaattisesti ohjelman kaavion kautta. Tämä vaikuttaa riippuvaisten laskelmien tuloksiin, joka puolestaan voi vaikuttaa ohjausobjektien, kuten värin ja sijainnin, ominaisuuksiin. Lisäävä kääntäjä sisältää myös monipuolisen kaavan muokkauskokemuksen, sillä käytössä on IntelliSense, ehdotukset, automaattinen täyttö ja kirjoituksen tarkistus.
Seuraavassa animaatiossa järjestysnumero näkyy selitteen ohjausobjektissa liukusäätimen ohjausobjektin perusteella, vaikka sen alla olevissa selitteissä on kaksi virhettä. Sovellus on erittäin reagoiva ja vuorovaikutteinen. Kun kaava yritetään korjata ensimmäisellä kerralla syöttämällä .InvalidName
, näkyviin tulee punainen viiva ja virhesanoma odotetulla tavalla, mutta sovelluksen suorittamista jatketaan.
Kun syötetään .Employee
, ruutu Data
lisää Työntekijät-taulukon ja tämän taulukon metatiedot haetaan. Sarakkeiden ehdotukset tarjotaan välittömästi. Tällä tavoin siirryttiin yhden taulukon suhteesta toiseen taulukkoon, järjestelmä teki tarvittavat muutokset sovelluksen viittauksiin. Sama tapahtuu lisättäessä .Customer
.
Liukusäädin jatkaa kunkin muutoksen jälkeen viimeisimmällä arvolla, ja mahdolliset muuttujat pitävät arvonsa. Järjestysnumero on näytetty koko ajan ylimmässä selitteessä niin kuin on tarkoituskin. Sovellus on käsitellyt reaaliaikaisesti ja koko ajan todellisia tietoja. Se voidaan tallentaa, käyttö lopettaa ja muut voivat sitten avata ja käyttää sitä aivan kuten Exceliäkin. Koonti- ja käännösvaiheita ei ole. Käytettävissä on vain julkaisuvaihe, joka määrittää, mikä sovelluksen versio on valmis käyttäjille.
Vähän koodia
Power Fx kuvaa liiketoimintalogiikkaa tiiviissä mutta tehokkaissa kaavoissa. Suuri osa logiikkaa voidaan tiivistää yhdeksi riviksi, silti käytössä on runsaasti ilmaisuvoimaa ja hallintaa monimutkaisia tarpeita varten. Tavoitteena on pitää niiden käsitteiden määrä, jotka tekijöiden on ymmärrettävä, mahdollisimman vähäisinä. Parhaassa tapauksessa niitä ei ole enemmän kuin mitä Excel-käyttäjä jo tuntee.
Jos esimerkiksi haluat etsiä työntekijän etunimen tilausta varten, kirjoitat Power Fx-kaavan, joka näkyy seuraavassa animaatiossa. Ainoa käsite, jota Excelissä ei ole, on piste (.) -merkintä tietorakenteeseen porautumista varten. Tässä tapauksessa se on .Employee.'First Name'
. Animaatio näyttää Power Fx -kaavan osien yhdistämismäärityksen ja käsitteet, jotka on koodattava eksplisiittisesti vastaavaan JavaScript-koodiin.
Katsotaanpa tarkemmin kaikkia asioita, joita Power Fx tekee ja sen vapautta optimoida, koska kaava on deklaratiivinen:
Asynkroninen: Kaikki tietotoiminnot ovat Power Fx asynkronisia. Tekijän ei tarvitse määrittää tätä, eikä tekijän tarvitse synkronoida toimintoja tämän kutsun jälkeen. Tekijän ei tarvitse olla lainkaan tietoinen tästä käsitteestä, eikä heidän tarvitsee tietää, mikä promise- tai lambda-funktio on.
Paikallinen ja etäinen: Power Fx käyttää samaa syntaksia ja funktioita tiedoille, jotka ovat paikallisesti muistissa ja muodostavat etäyhteyden tietokantaan tai palveluun. Käyttäjän ei tarvitse miettiä tätä erottelua. Power Fx delegoi palvelimelle automaattisesti kaiken mahdollisen, koska palvelin voi käsitellä suodattimia ja lajitella tietoja siellä tehokkaammin.
Suhteelliset tiedot: Tilaukset ja Asiakkaat ovat kaksi eri taulukkoa, joilla on monta-yhteen-suhde. OData-kyselyyn tarvitaan $expand ja tieto viiteavaimesta, mikä vastaa SQL:n Join-toimintoa. Kaavassa ei käytetä mitään näistä, sillä myös tietokanta-avaimet ovat käsite, josta tekijän ei tarvitse välittää. Tekijä saa käyttöönsä koko tietueen suhdekaavion yksinkertaisesti käyttämällä pistettä merkintätapana.
Projektio: Kun kirjoitat kyselyä, monet kehittäjät kirjoittavat
select * from table
, mikä tuo takaisin kaikki tietosarakkeet. Power Fx analysoi kaikki sovelluksen kautta käytetyt sarakkeet myös kaavariippuvuuksien kautta. Noudettavien tietojen valinta optimoidaan automaattisesti, eikä tekijän tarvitse tietää, mitä noudettavien tietojen valinta tarkoittaa.Hae vain se, mitä tarvitaan: Tässä esimerkissä
LookUp
funktio tarkoittaa, että vain yksi tietue tulisi noutaa ja se on kaikki, mitä palautetaan. Jos pyydetään useita tietueita käyttämälläFilter
-funktiota (jolloin saatetaan saada tuhansia tietueita), kerralla palautetaan vain yksi sivullinen tietoja. Sivulla on 100 tietuetta. Käyttäjän on käytävä valikoima tai tietotaulukko läpi tietojen katselemiseksi. Nämä tuodaan automaattisesti käyttäjän käytettäviksi. Tekijä voi käsitellä suuria tietojoukkoja ilman, että hänen on mietittävä tietopyyntöjen rajoittamista hallittaviksi paloiksi.Suoritetaan vain tarvittaessa: Olemme määrittäneet kaavan otsikko-ohjausobjektin ominaisuudelle
Text
. Kun valittu muuttuja vaihtuu,LookUp
lasketaan automaattisesti uudelleen ja selite päivitetään. Tekijän ei tarvinnut kirjoittaa OnChange-käsittelijää valinnalle eikä muistaa, että tämä otsikko on siitä riippuvainen. Kyse on aiemmin käsitellystä deklaratiivisesta ohjelmoinnista, ja tekijä on määrittänyt, mitä selitteeseen ei halutaan eikä sitä, miten ja milloin se noudetaan. Jos tämä otsikko ei näy, koska se on näytössä joka ei ole näkyvä tai sen ominaisuudenVisible
arvo on Epätosi, tämä laskutoimitus voidaan siirtää ajankohtaan, jolloin otsikko näkyy ja poistaa se tehokkaasti, jos niin tapahtuu tavallisuudesta poiketen.Excel-syntaksin käännös: Exceliä käyttävät monet käyttäjät, joista useimmat tietävät, että et-merkkiä (&) käytetään merkkijonojen ketjutukseen. JavaScript käyttää plusmerkkiä (+). Muissa kielissä käytetään pistettä (.).
Näyttönimet ja lokalisointi:
First Name
käytetään kaavassa, Power Fx kun taasnwind_firstname
sitä käytetään JavaScript-vastineessa. Microsoft Dataversessa ja SharePointissa on näyttönimi sarakkeille ja taulukoille yksilöllisen loogisen nimen lisäksi. Näyttönimet ovat usein paljon käyttäjäystävällisiä, kuten tässä tapauksessa. Toinen näyttönimien tärkeä ominaisuus on, että ne voidaan lokalisoida. Jos sinulla on monikielinen ryhmä, jokainen ryhmän jäsen näkee taulukon ja kentän nimet omalla kielellään. Power Fx varmistaa aina, että oikea looginen nimi lähetetään automaattisesti tietokantaan.
Ei koodausta
Sinun ei tarvitse lukea ja kirjoittaa Power Fx:ää, jotta voisit luoda logiikkaa. Mukautuksia ja logiikkaa voidaan ilmaista myös käyttämällä yksinkertaisia kytkimiä ja käyttöliittymän muodostimia. Nämä no-code-työkalut on luotu lukemaan ja kirjoittamaan Power Fx -kieltä, jotta varmistetaan, että jollekin on mahdollisuus on viedä sitä eteenpäin, mutta samalla on hyvä tietää, että no-code-työkalut eivät tarjoa koko kielen ilmaisuvoimaa. Myös no-code-muodostimissa kaavarivi on Power Appsissa keskiössä, koska se opastaa tekijää siitä, mitä heidän puolestaan tehdään, jotta he voivat aloittaa Power Fx:n oppimisen.
Seuraavaksi käsitellään esimerkkejä. Power Appsin ominaisuuspaneelissa ohjausobjektien ominaisuuksiin liittyviä kytkimiä ja säätimiä, joiden käyttöön ei tarvita koodia. Käytännössä useimmat ominaisuusarvot ovat staattisia. Voit vaihtaa kohteen Gallery
taustavärin värien muodostintyökalun avulla. Huomaa, että kaavarivi reagoi tähän muutokseen ja päivittää kaavan toiseksi kutsuksi, jonka muoto on RGBA
. Voit milloin tahansa palata kaavariville ja tehdä tämän vaiheen – tässä esimerkissä värin muuttamisessa on käytössä ColorFade
. Värin ominaisuus näkyy yhä ominaisuuspaneelissa, muttafx-kuvake näkyy, kun hiiri viedään paneelin yläpuolelle, ja sinut ohjataan kaavariviin. Tämä toimii täysin kahdella eri tavalla: jos kutsu ColorFade
poistetaan, väriksi palautetaan sellainen väri, jota ominaisuuspaneeli ymmärtää, ja voit käyttää sitä uudelleen värin määrittämisessä.
Seuraava on edellistä monimutkaisempi esimerkki. Valikoimassa näkyy Dataversen työntekijäluettelo. Dataversessa on näkymiä taulukon tietoihin. Voidaan valita jokin näistä näkymistä. Kaavaa muutetaan niin, että funktiota Filter
käytetään tämän näkymän nimen kanssa. Kahden avattavan valikon avulla voidaan valita oikea taulukko ja näkymä koskematta kaavariviin. Oletetaan, että haluat lisätä siihen lajittelun. Se voidaan tehdä kaavarivillä, jolloin ominaisuuspaneelissa on taas näkyvissä fx-kuvake ja muokkaukset ohjataan kaavariville. Jos kaava taas yksinkertaistetaan muotoon, jonka ominaisuuspaneeli voi lukea ja kirjoittaa, sitä voi käytätä uudelleen.
Edelliset esimerkit ovat olleet yksinkertaisia. Mielestämme Power Fx-kieli on hyvä, kun kuvataan no-code-vuorovaikutuksia. Se on lyhyt, tehokas ja helposti jäsennettävä, minkä lisäksi siinä on riittävästi tilaa, jota tarvitaan, kun halutaan siirtyä turvallisesti vähän koodia käyttävään kehittämiseen.
Ammattimainen koodaus
Vähäistä koodia käyttävät tekijät tarvitsevat joskus asiantuntijoiden apua toimintojen luomisessa. Joskus ammattimainen kehittäjä ylläpitää ja tehostaa toimintoja heidän puolestaan. Myös ammattilaiset arvostavat sitä, että vähän koodia käyttävä ympäristö voi olla kätevämpi, nopeasti ja edullisempi kuin ammattimaisen työnkalun muodostaminen. Kaikkiin tilanteisiin ei tarvita Visual Studion kaikkia ominaisuuksia.
Ammattilaiset haluavat käyttää ammattilaistyökaluja, koska ne tehostavat toimintaa. -kaavat voidaan tallentaa Power FxYAML-lähdetiedostoihin, joita on helppo muokata Visual Studio Codessa tai Visual Studiossa tai millä tahansa muulla tekstieditorilla ja Power Fx voidaan määrittää lähdekoodin hallintaan GitHubiin, Azure DevOpsiin tai mihin tahansa muuhun lähdekoodin hallintajärjestelmään.
Power Fx tukee kaavapohjaisia osia jakamiseen ja uudelleenkäyttöön. Olemme kertoneet parametrien tuesta komponenttien ominaisuuksia varten, jossa otetaan käyttöön täysin käyttäjän määrittämien funktioiden luominen. Ja lisää parannuksia on luvassa.
Power Fx on myös hyvä kokoamaan yhteen ammattilaisten rakentamat komponentit ja palvelut. Käyttövalmiit yhdistimet mahdollistavat satojen tietolähteiden ja verkkopalveluiden käytön, mukautetut yhdyssovellukset mahdollistavat Power Fx:n yhteyden mihin tahansa REST-verkkopalveluun, ja koodikomponenttien avulla Power Fx voi olla yhteydessä täysin mukautetun JavaScript-koodin kanssa näytössä ja sivulla.
Suunnitteluperiaatteet
Yksinkertaista
Power Fx on suunniteltu tekijäkohdeyleisölle, jonka jäseniä ei ole koulutettu sovelluskehittäjiksi. Mahdollisuuksien mukaan on hyödynnetty sitä tietämystä, joka tällä käyttäjäryhmällä on tai joka heidän on helppo saada. Onnistuneeseen käyttöön tarvittavien käsitteiden määrä on pidetty mahdollisimman pienenä.
Yksinkertaisuus on hyödyllistä myös kehittäjille. Kehittäjäryhmän osalta tarkoitus on toimia vähän koodia käyttävänä kielenä, joka lyhentää ratkaisun muodostamiseen tarvittavaa aikaa.
Yhdenmukaisuus Excelin kanssa
Microsoft Power Fx -kieli lainaa paljon asioita Excelin kaavakielestä. Pyrimme hyödyntämään useiden tekijöiden Excel-tietämystä ja -kokemusta. Tyyppien, operaattorien ja funktioiden semantiikka muistuttaa Exceliä mahdollisimman paljon.
Jos Excel ei sisällä vastausta, sitä etsitään SQL-kielestä. SQL on Excelin jälkeen seuraavaksi yleisin määrittävä kieli. Se voi antaa ohjeita tietojen toiminnoissa ja vahvassa tyypityksessä, jota Excel ei tee.
Deklaratiivinen
Tekijä kuvaa, mitä hän haluaa logiikan tekevän, ei täsmällisesti miten tai milloin se tulisi tehdä. Näin kääntäjä voi optimoida suorittamalla toimintoja rinnakkain, lykkäämällä töitä tarpeen mukaan sekä hakemalla ennalta ja käyttämällä uudelleen välimuistiin tallennettuja tietoja.
Esimerkiksi Excel-laskentataulukossa tekijä määrittää solujen väliset suhteet, mutta Excel päättää, milloin ja missä järjestyksessä kaavat arvioidaan. Samalla tavalla sovelluksen kaavoja voidaan pitää tarvittaessa uudelleenlaskettavina käyttäjän toimintojen, tietokantamuutosten tai ajastimen tapahtumien perusteella.
Funktionaalinen
Suosimme puhtaita toimintoja, joilla ei ole epätoivottuja vaikutuksia. Tämä johtaa logiikkaan, joka on aiempaa helpommin ymmärrettävää ja joka antaa kääntäjälle eniten vapautta optimoinnissa.
Toisin kuin Excel, sovellukset muuttavat tilaa luonnostaan – sovelluksissa on esimerkiksi painikkeita tietokannan tietueen muutosten tallentamista varten. Joillakin funktioilla on siis sivuvaikutuksia, joskin sitä rajoitetaan niin paljon kuin on käytännöllistä.
Yhdistäminen
Aina kun se on mahdollista, pyritään siihen, että lisätyt toimintoja voi käyttää sujuvasti yhdessä olemassa olevien toimintojen kanssa. Tehokkaat funktiot voidaan jakaa pienemmiksi osiksi, sillä näitä itsenäisiä osia on helpompi käyttää.
Esimerkiksi Valikoima-ohjausobjektilla ei ole erillisiä ominaisuuksia Sort
ja Filter
. Sen sijaan Sort
- ja Filter
-funktiot on yhdistetty yhdeksi Items
-ominaisuudeksi. Toiminnan Sort
ja Filter
ilmentämisen käyttöliittymä on määritetty tasoiksi ominaisuuden Items
päälle käyttämällä tämän ominaisuuden kaksisuuntaista editoria.
Vahva tyypitys
Kaikkien arvojen tyypit tiedetään käännösajankohtana. Tällä tavoin voidaan tunnistaa virheet aikaisessa vaiheessa ja tehdä monipuolisia ehdotuksia sisällöntuotannon aikana.
Polymorfisia tyyppejä tuetaan, mutta ennen kuin niitä voidaan käyttää, tyypit on kiinnitettävä staattiseen tyyppiin. Tämän tyypin on oltava tunnettu käännösajankohtana. IsType- ja AsType-funktiot ovat käytettävissä testaus- ja määritystyyppeinä.
Tyyppipäättely
Tyypit johdetaan niiden käytöstä ilman määrittämistä. Jos muuttujan arvoksi määritetään esimerkiksi numero, muuttujan tyypiksi määritetään numero.
Tyypin käytön ristiriidat aiheuttavat käännösaikavirheen.
Aluekohtaiset asetukset huomioon ottavat desimaalierottimet
Pistettä (.) käytetään desimaalierottimena joillain alueilla, kun taas toisilla alueilla käytetään pilkkua (,). Myös Excel toimii tällä tavoin. Tätä ei yleensä tehdä muilla ohjelmointikielillä, jotka käyttävät yleisesti kanonista pistettä (.) desimaalierottimena kaikille käyttäjille maailmanlaajuisesti. Jotta tekijät kaikilla tasoilla voivat käyttää erottimia, on tärkeää, että 3,14
on desimaaliluku ranskalaiselle, joka on käyttänyt tätä syntaksia koko elämänsä ajan.
Desimaalierottimen valita vaikuttaa myös luetteloerottimeen, jota käytetään funktion kutsuargumentissa, ja ketjutusoperaattorissa.
Tekijän kielen desimaalierotin | Power Fx:n desimaalierotin | Power Fx:n luetteloerotin | Power Fx:n ketjutusoperaattori |
---|---|---|---|
. (piste) | . (piste) | , (pilkku) | ; (puolipiste) |
, (pilkku) | , (pilkku) | ; (puolipiste) | ;; (kaksinkertainen puolipiste) |
Lisätietoja: Yleinen tuki
Ei olioperusteinen
Excel ei ole objektipohjainen, eikä ole myöskään Power Fx. Joissakin kielissä esimerkiksi merkkijonon pituus ilmastaan merkkijonon ominaisuutena, kuten "Hello World".length
JavaScriptissä. Excel ja Power Fx ilmaisevat tämän sen sijaan funktiona Len( "Hello World" )
.
Komponentit, joilla on ominaisuuksia ja menetelmiä, ovat objektikeskeisiä, ja Power Fx toimii helposti niiden kanssa. Toimintatapa on kuitenkin funktionaalinen silloin, kun se on mahdollista.
Laajennettava
Tekijät voivat luoda komponentit ja toiminnot Power Fx:n avulla. Kehittäjät voivat luoda komponentteja ja funktioita kirjoittamalla JavaScriptiä.
Kehittäjälle sopiva
Vaikka tekijät ovat ensisijainen kohderyhmä, myös kehittäjät on otettu huomioon mahdollisuuksien mukaan. Toiminnot tehdään kehittäjän toivomalla tavalla, jos se ei ole ristiriidassa edellä kerrottujen suunnitteluperiaatteiden kanssa. Esimerkiksi Excelillä ei ole kapasiteettia lisätä kommentteja, joten käytämme C-kielen kaltaisia rivikommentteja ja tekstiin sidottuja kommentteja.
Kielen kehittyminen
Ohjelmointikielien muuttuminen on sekä välttämätöntä että hankalaa. Kaikki ovat oikeutetusti huolissaan siitä, että muutos – vaikkakin hyvää tarkoittava – voi rikkoa aiemmin luodun koodin ja edellyttää käyttäjiltä uuden mallin oppimista. Power Fx ottaa taaksepäin yhteensopivuuden huomioon, mutta olemme myös sitä mieltä, että aina ei saada toimintoja oikein ensimmäisellä kerralla, ja me yhdessä opimme, mikä on yhteisön mielestä parasta. On kehityttävä ja Power Fx on suunniteltu tukemaan kielen evoluutiota alusta alkaen.
Jokaisen tallennetun Power Fx -tiedoston mukana tulee kieliversion leima. Jos haluamme tehdä yhteensopimattoman muutoksen, kirjoitamme "yhteensopivuus taaksepäin -muuntajan". Se kirjoittaa kaavan automaattisesti uudelleen seuraavalla muokkauskerralla. Jos muutos on tärkeä, ja käyttäjät tarvitsevat sitä koskevaa opetusta, näkyviin tulee myös ohjelinkit sisältävä sanoma. Käyttämällä tätä mahdollisuutta voidaan yhä ladata sovellukset, jotka on luotu Power Appsin esiversioina useita vuosia sitten riippumatta siitä, että tämän jälkeen on tehty paljon muutoksia.
ShowError
-funktio esimerkiksi otettiin käyttöön näyttämään virhepalkki, jolla on punainen tausta.
Vaikka käyttäjät pitivät siitä, he pyysivät myös tavan, jolla onnistumispalkki (vihreä tausta) tai tietopalkki (sininen tausta) voitaisiin näyttää. Loimme yleisemmän funktion Notify
, joka ottaa toisen argumentin tällaisille ilmoituksille. Olisimme voineet vain lisätä funktion Notify
ja pitää funktion ShowError
ennallaan. Sen sijaan korvasimme funktion ShowError
funktiolla Notify
. Poistimme funktion, joka oli aiemmin tuotannossa, ja korvasimme sen toisella. Tämä oltaisiin voitu tehdä kahdella eri tavalla, mutta se olisi voinut aiheuttaa sekaannusta erityisesti uusille käyttäjille ja tehdä toiminnoista aiempaa monimutkaisempia. Kukaan ei valittanut, kaikki arvostivat muutosta ja sitten siirryttiin seuraavan ilmoitustoimintoon.
Saman sovelluksen ulkoasu on seuraavanlainen, kun se ladataan Power Appsin uuteen versioon. Käyttäjältä ei vaadittu toimintoja tämän muutoksen suorituksessa. Se tapahtui automaattisesti sovelluksen avaamisen yhteydessä.
Tämän toiminnon avulla Power Fx voi kehittyä nopeammin ja aggressiivisemmin kuin useimmat ohjelmointikielet.
Ei määrittämätöntä arvo
Joissakin kielissä, kuten JavaScriptissä, käytetään määrittämätön-arvon käsitettä muuttujissa, joita ei ole alustettu, tai puuttuvissa ominaisuuksissa. Olemme välttäneet tätä käsitettä, koska näin kieli pidetään yksinkertaisena. Ilmentymiä, jotka ovat määrittämättömiä muissa kielissä, käsitellään virheinä tai tyhjinä arvoina. Esimerkiksi kaikkien alustamattomien muuttujien alussa on tyhjä arvo. Tyhjää arvoa voi käyttää kaikissa tietotyypeissä.
Liittyvät artikkelit
Tietotyypit
Operaattorit ja tunnisteet
Taulukot
Muuttujat
Pakottava logiikka
Maailmanlaajuinen tuki
Lausekkeen kielioppi
YAML-kaavan kielioppi
Kaavat pohjaan perustuvissa sovelluksissa