Share via


Pregled aplikacij Microsoft Power Fx

Power Fx je jezik z malo kode, ki se bo uporabljal po storitvi Microsoft Power Platform. To je močno tipiziran, deklarativen in funkcionalen programski jezik za splošen namen.

Power Fx je izražen v človeku prijaznem besedilu. To je jezik z malo kode, s katerim lahko ustvarjalci delajo neposredno v vnosni vrstici, podobni kot pri storitvi Excel, ali besedilnem oknu za Visual Studio Code. »Malo« kode pomeni, da je kode malo zaradi strnjene in preproste narave jezika, zaradi česar so pogosta opravila programiranja enostavna za ustvarjalce in razvijalce. Omogoča celoten spekter razvoja, od tistih, ki še niso nikoli programirali in potrebujejo program »brez kode«, do izkušenih profesionalcev in »kode za profesionalce«; tudi ne zahteva vmesnega učenja ali prepisovanja gore podatkov, s čimer omogoča sodelovanje različnih skupin ter prihrani čas in stroške.

opomba,

  • Microsoft Power Fx je novo ime za jezik formule za aplikacije s platnom v Power Apps. Ta pregled in povezani članki so delo v teku, saj izvlečemo jezik iz aplikacij s platnom, ga integriramo z drugimi izdelki Microsoft Power Platform in damo na voljo odprtokodno. Če želite izvedeti več o jeziku in ga preizkusiti še danes, za začetek preberite Seznanjenje s formulami v aplikacijah s platnom v dokumentaciji Power Apps in se prijavite za brezplačno preskusno različico Power Apps.
  • V tem članku omenjamo ustvarjalce, ko opisujemo funkcijo, ki bi lahko bila uporabljena na katerem koli koncu spektra veščin programiranja. Uporabnika imenujemo razvijalec, če je funkcija naprednejša in najverjetneje presega področje uporabe tipičnega uporabnika storitve Excel.

Power Fx veže predmete skupaj z deklarativnimi formulami v obliki preglednic. Na primer, predstavljajte si lastnost Vidno kontrolnika UI kot celico v delovnem listu Excel s povezano formulo, ki izračuna njeno vrednost na podlagi lastnosti drugih kontrolnikov. Logika formule samodejno znova izračunava vrednost, podobno kot se to dogaja pri preglednici, kar vpliva na vidnost kontrolnika.

Power Fx po potrebi nudi možnost imperativne logike. Delovni listi običajno nimajo gumbov, ki lahko pošiljajo spremembe v zbirko podatkov, aplikacije pa jih pogosto imajo. Isti izrazni jezik se uporablja tako za deklarativno kot imperativno logiko.

Power Fx bo na voljo kot odprtokodna programska oprema. Trenutno je integriran v aplikacije s platnom in čakamo, da se izvleče iz Power Apps za uporabo v drugih izdelkih Microsoft Power Platform ter v obliki odprte kode. Več informacij: Microsoft Power Fx v storitvi GitHub

Ta članek nudi pregled jezika in njegovih oblikovnih načel. Za več informacij o jeziku Power Fx si oglejte naslednje članke:

Pametna preglednica

Kaj če bi lahko ustvarili aplikacijo tako enostavno kot ustvarite delovni list v storitvi Excel?

Kaj če bi lahko izkoristili prednosti obstoječega poznavanja preglednic?

To so bila vprašanja, ki so spodbudila nastanek Power Apps in Power Fx. Več sto milijonov ljudi vsak dan ustvari delovne liste s storitvijo Excel; predstavljamo jim ustvarjanje aplikacij, ki je enostavno in uporablja koncepte storitve Excel, ki jih že poznajo. Z ločitvijo rešitve Power Fx iz storitve Power Apps bomo odgovorili na ta vprašanja za izgradnjo avtomatizacije ali virtualnega posrednika ali drugih domen.

Vsi programski jeziki, vključno Power Fx, imajo izraze: način za zastopanje izračuna pri številkah, nizih ali drugih podatkovnih tipih. mass * acceleration na primer v večini jezikov izraža množenje mass in acceleration. Rezultat izraza je mogoče vstaviti v spremenljivko, uporabiti kot argument postopka ali ugnezditi v večji izraz.

Power Fx je naredil še korak naprej. Izraz sam po sebi ne pove ničesar o tem, kaj izračunava. Ustvarjalec ga mora umestiti v spremenljivko ali posredovati v funkcijo. V storitvi Power Fx namesto, da bi zapisali izraz, ki nima specifičnega pomena, zapišete formulo, ki poveže izraz z identifikatorjem. Zapišete force = mass * acceleration kot formulo za izračun force. Ko se mass ali acceleration spremeni, se force samodejno posodobi na novo vrednost. Izraz je opisal izračun, formula je dala izračunu ime in ga uporabila kot recept. Zato Power Fx označujemo kot jezik za formule.

Na primer ta formula iz prekoračitve sklada poišče niz v obratnem vrstnem redu. V storitvi Excel je videti kot naslednja slika.

Obrnjeno iskanje

Posnetek zaslona vnosne vrstice v storitvi Excel s formulo: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) Celica A1 vsebuje besedilo »Hello, World! It is great to meet you!« Celica A2 vsebuje besedilo »you!«

Power Fx uporabi to isto formulo, pri čemer so reference celic nadomeščene z referencami kontrolnika lastnosti:

Power Fx Obratno iskanje.

Posnetek zaslona vnosne vrstice Power Fx v storitvi Power Apps. Formula je =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) V vnosnem polju pod formulo se prikaže besedilo »Hello, World! It is great to meet you!« se prikaže črko za črko. Hkrati se v polju oznake prikazujejo črke zadnje besede. Ko je v vnosnem polju prikazano celotno besedilo, je beseda »you!« prikazana v polju oznake.

Ko se spremeni vrednost kontrolnika Input, kontrolnik Label samodejno ponovno izračuna formulo in prikaže novo vrednost. Tu ni rutinskih dogodkov OnChange, kot je običajno v drugih jezikih.

Drug primer, ki uporablja formulo za barvo Fill zaslona. Ko so drsniki, ki nadzorujejo rdečo, zeleno in modro, spremenjeni, se barva ozadja samodejno spreminja, kot se izračunava.

Drsnik za barve.

Ni dogodkov OnChange za drsne kontrolnike, kot je običajno pri drugih jezikih. Sploh ni možnosti izrecne nastavitve lastnosti Fill. Če barva ne deluje kot pričakovano, morate pogledati samo to formulo, da ugotovite, zakaj ne deluje. Ni vam treba iskati po aplikaciji, da bi našli kos kode, ki nastavlja lastnost ob nepričakovanem času; elementa časa ni. Vedno se vzdržujejo pravilne vrednosti formule.

Če so drsniki nastavljeni na temno barvo, se nalepke za rdečo, zeleno in modro spremenijo v belo za kompenzacijo. To je izvedeno z enostavno formulo na lastnosti Color za vsak kontrolnik oznake.

Power Fx barvni drsniki.

Pri tem je odlično, da je to izolirano od dogajanja za barvo Fill: to sta dva čisto drugačna izračuna. Namesto velikih monolitnih postopkov je logika Power Fx običajno sestavljena iz več manjših formul, ki so neodvisne. To olajšuje njihovo razumevanje in omogoča izboljšave brez motenj obstoječe logike.

Power Fx je deklarativni jezik, tako kot Excel. Ustvarjalec opredeli, kakšno vedenje želi, toda sistem določi in optimizira, kako in kdaj se to doseže. Da bi bilo dobro izvedljivo tudi v praksi, večino dela opravimo s čistimi funkcijami brez stranskih učinkov, zaradi česar je Power Fx tudi funkcionalen jezik (spet, podobno kot Excel).

Vedno aktivno

Odločilni vidik delovnih listov je, da so vedno v živo in se spremembe odrazijo v hipu. V delovnem listu ni načina sestavljanja ali izvajanja. Ko je formula spremenjena ali vrednost vnesena, je delovni list takoj znova izračunan, da se odrazijo spremembe. Vse napake, ki so zaznane, so takoj najdene in ne vplivajo na preostanek delovnega lista.

Ista stvar je izvedena s Power Fx. Uporabljen je postopni sestavljavec za stalno ohranjanje sinhronizacije programa s podatki, na katerih deluje. Spremembe se samodejno širijo skozi grafikon programa, kar vpliva na rezultate odvisnih izračunov, ki lahko vplivajo na lastnosti kontrolnikov, kot sta barva ali položaj. Postopni prevajalnik zagotavlja tudi obogateno izkušnjo urejanja formul z IntelliSense, predlogi, samodokončanjem in preverjanjem vrste.

V spodnji animaciji je številka naročila prikazana v kontrolniku oznake, ki je odvisen od kontrolnika drsnika, čeprav sta na oznakah pod njim dve napaki. Aplikacija je zelo aktivna in interaktivna. Po prvem poskusu popravljanja formule z vnosom .InvalidName se takoj prikaže rdeča črta in napaka, kot je prav, toda aplikacija se dalje izvaja.

Vedno živite.

Ko je vneseno .Employee, to povzroči, da podokno Data doda tabelo zaposlenih, pridobijo se metapodatki za to tabelo in takoj so ponujeni predlogi za stolpce. Pravkar smo prečkali odnos ene tabele do druge in sistem je ustrezno prilagodil reference aplikacije. Isto se zgodi, ko dodate .Customer.

Po vsaki spremembi drsnik nadaljuje s svojo zadnjo vrednostjo in vse spremenljivke ohranijo svojo vrednost. Številka naročila je bila ves čas prikazana v zgornji oznaki, tako kot je treba. Aplikacija je ves čas aktivna in obdeluje podatke v realnem času. Lahko jo shranimo in odidemo, drugi pa jo lahko odprejo in uporabljajo, tako kot pri Excelu. Ni koraka gradnje, ni sestavljanja, je samo korak objave, da se ugotovi, katera različica aplikacije je pripravljena za uporabnike.

Malo programiranja

Power Fx opisuje poslovno logiko v kratkih, a učinkovitih formulah. Večino logike je za bolj zapletene potrebe mogoče skrajšati v eno vrstico z veliko izraznosti in nadzora. Cilj je omejiti število konceptov, ki jih mora ustvarjalec minimalno razumeti, kar v idealnem primeru pomeni toliko konceptov, kot bi jih že razumel uporabnik Excela.

Na primer, da bi poiskali ime zaposlenega za naročilo, zapišete Power Fx, kot je prikazano v naslednji animaciji. Poleg konceptov Excel je edini dodatni koncept, uporabljen tukaj, zapise pike ».« za prikaz podrobnosti podatkovne strukture, v tem primeru .Employee.'First Name'. Animacija prikazuje preslikavo med deli formule Power Fx in koncepti, ki ji je treba izrecno kodirati v enakovrednem jeziku JavaScript.

JavaScript z malo programiranja.

Poglejmo bolj poglobljeno na to, kaj vse lahko Power Fx stori za nas in na svobodo, ki jo ima za optimizacijo postopkov, saj je bila formula deklarativna:

  • Asinhrono: vse podatkovne operacije v jeziku Power Fx so asinhrone. Ustvarjalcu tega ni treba navesti niti mu ni treba sinhronizirati postopkov, ko je klic končan. Ustvarjalcu se tega koncepta sploh ni treba zavedati, ni mu treba vedeti, kaj je obljuba ali funkcija lambda.

  • Lokalno in oddaljeno: Power Fx uporablja isto sintakso in funkcije za podatke, ki so v lokalno v pomnilniku in oddaljeno v podatkovni zbirki ali storitvi. Uporabniku ni treba razmišljati o tej razliki. Power Fx samodejno prenese v strežnik vse, kar lahko, saj s tem zagotovi učinkovitejšo obdelavo filtrov in razvrščanje.

  • Relacijski podatki: Naročila in Stranke sta dve različni tabeli z odnosom »mnogo proti ena«. Poizvedba OData zahteva »$expand« z znanjem tujega ključa, podobno kot »Pridružitev« v SQL. Formula nima nič od tega, pravzaprav so ključi zbirke podatkov še en koncept, o katerem ustvarjalcu ni treba vedeti ničesar. Ustvarjalec lahko preprosto uporabi zapis s pikami za dostop do celotnega grafa odnosov iz zapisa.

  • Projekcija: Pri zapisovanju poizvedbe veliko razvijalcev zapiše select * from table, kar privede nazaj vse stolpce podatkov. Power Fx analizira vse stolpce, ki se uporabljajo v celotni aplikaciji, tudi med odvisnostmi formul. Projekcija je samodejno optimizirana in, znova, ustvarjalcu ni treba vedeti, kaj »projekcija« pomeni.

  • Pridobi samo, kar je potrebno: V tem primeru funkcija LookUp pomeni, da je treba pridobiti samo en zapis in to je vse, kar je vrnjeno. Če je zahtevanih več zapisov z uporabo funkcije Filter – do česar je lahko upravičeno več tisoč zapisov – je hkrati vrnjena samo ena stran podatkov na naročilu 100 zapisov na stran. Uporabnik se mora s potezami pomikati skozi galerijo ali podatkovno tabelo, da vidi več podatkov, ti pa mu bodo samodejno privedeni. Ustvarjalec lahko razlaga o velikih naborih podatkov, ne da bi moral razmišljati o omejevanju podatkovnih zahtev za obvladljive kose.

  • Izvaja se samo, ko je potrebno: Določili smo formulo za lastnost Text kontrolnika oznake. Ko se izbrana spremenljivka spremeni, se LookUp samodejno preračuna in oznaka posodobi. Ustvarjalcu ni bilo treba zapisati rutine OnChange za izbiro in ni se mu bilo treba zapomniti, da je ta oznaka odvisna od nje. Kot smo že omenili, je to deklarativno programiranje, kjer je ustvarjalec določil, kaj želi imeti v oznaki, ne pa, kako in kdaj naj bo pridobljena. Če ta oznaka ni vidna, ker je na zaslonu, ki ni viden, ali je njena lastnost Visible napačna, lahko ta izračun odložimo, dokler ni oznaka vidna in ga efektivno eliminiramo, če se to redko zgodi.

  • Excelov prevod sintakse: Excel uporabljajo številni uporabniki, ki večinoma vedo, da se znak »in« (&) uporablja za spajanje nizov. JavaScript uporablja znak plus (+) in drugi jeziki uporabljajo piko (.).

  • Prikazna imena in lokalizacija: First Name se uporablja v formuli Power Fx, medtem ko se v enakovrednem JavaScriptu uporablja nwind_firstname. V storitvi Microsoft Dataverse in SharePoint, je prikazno ime za stolpce in tabele pogled enoličnega logičnega imena. Prikazna imena so pogosto veliko bolj uporabniku prijazna kot v tem primeru, toda imajo še eno pomembno lastnost, in sicer jih je mogoče lokalizirati. Če imate večjezično ekipo, lahko vsak član ekipe vidi imena tabel in polj v svojem jeziku. V vseh primerih uporabe Power Fx zagotovi, da je pravilno logično ime samodejno poslano v zbirko podatkov.

Brez programiranja

Ni vam treba brati in zapisovati Power Fx, da bi začeli izražati logiko. Obstaja veliko prilagoditev in logičnih primerov, ki jih lahko izrazimo s preprostimi stikali in gradniki uporabniškega vmesnika. Ta orodja brez kode so bila izdelana za branje in zapisovanje jezika Power Fx, da se zagotovi, da je dovolj prostora, da lahko kdor gre dalje, ob priznavanju, da orodja brez koda nikoli ne bodo ponujala vse izraznosti celotnega jezika. Tudi pri uporabi z graditelji brez kode je vnosna vrstica na prvem in osrednjem mestu v storitvi Power Apps, da izobražuje ustvarjalca o tem, kaj se izvaja zanj, da se lahko začne učiti jezika Power Fx.

Oglejmo si nekaj primerov. Aplikacija Power Apps ima v plošči lastnosti stikala in gumbe brez kode za lastnosti kontrolnikov. V praksi je večina vrednosti lastnosti statičnih. Z graditeljem barv lahko spremenite barvo ozadja za Gallery. Upoštevajte, da vnosna vrstica odraža to spremembo in posodobi formulo na drug klic RGBA. Kadar koli lahko greste v vnosno vrstico in greste korak dalje – v tem primeru uporabite ColorFade za prilagajanje barve. Lastnost barve je še vedno prikazana v podoknu lastnosti, toda ob lebdenju se prikaže ikona fx in usmerjeni ste na vnosno vrstico. To popolnoma deluje na dva načina: odstranitev klica ColorFade vrne barvo na nekaj, kar lahko podokno lastnosti razume in vi to lahko znova uporabite za nastavitev barve.

Barva brez kode.

Spodaj je še bolj zapleten primer. Galerija prikazuje seznam zaposlenih za Dataverse. Dataverse zagotavlja ogled podatkov tabele. Izberete lahko enega od teh pogledov in formula se spremeni na uporabo funkcije Filter s tem imenom pogleda. Dva spustna menija lahko uporabite za izbiranje pravilne tabele in pogleda, ne da bi se dotaknili vnosne vrstice. Recimo, da želite iti dlje in dodati razvrščanje. To lahko storimo v vnosni vrstici in plošča lastnosti znova prikaže ikono fx in usmeri spremembe v vnosno vrstico. In spet velja – če lahko formulo poenostavimo na nekaj, kar lahko plošča lastnosti bere in piše, jo lahko uporabimo.

Razvrščanje brez kode.

To so bili preprosti primeri. Menimo, da je Power Fx odličen jezik za opisovanje interakcij brez kode. Je jedrnat, zmogljiv in enostaven za razčlenitev ter zagotavlja dovolj potrebnega prostora za profesionalno programiranje do uporabe, ki ne zahteva kode.

Profesionalno programiranje

Ustvarjalci brez kode včasih izdelajo stvari, pri katerih je potrebna pomoč strokovnjaka ali pa te za vzdrževanje in izboljšave prevzame profesionalni razvijalec. Strokovnjaki prav tako odobravajo dejstvo, da je lahko razvoj z malo programiranja enostavnejši, hitrejši in cenejši od izdelave profesionalnega orodja. Vsaka situacija ne zahteva polne zmogljivosti programa Visual Studio.

Strokovnjaki uporabljajo profesionalna orodja, ker želijo biti kar najbolj učinkoviti. Formule Power Fx je mogoče shraniti v izvornih datotekah YAML, ki so enostavne za urejanje s Visual Studio Code, Visual Studio ali drugim urejevalnikom besedila in omogočajo, da je Power Fx dan pod nadzor izvorne kode s storitvijo GitHub, Azure DevOps ali drugim nadzornim sistemom izvorne kode.

Koda Visual Studio Pro.

Pro koda GitHub.

Power Fx podpira komponente na podlagi formule za skupno rabo in ponovno uporabo. Oznanili smo podporo za parametre lastnosti komponent, kar omogoča ustvarjanje čisto uporabniško definiranih funkcij z več izboljšavami na poti.

Power Fx je tudi odličen pri združevanju komponent in storitev, ki so jih ustvarili profesionalci. Vnaprej pripravljeni povezovalniki zagotavljajo dostop do na stotine virov podatkov in spletnih storitev, povezovalniki po meri omogočajo jeziku Power Fx, da se pogovarja s katero koli spletno storitvijo REST, komponente kode pa omogočajo jeziku Power Fx interakcijo s popolnoma prilagojenim jezikom JavaScript na zaslonu in strani.

Oblikovna načela

Enostavno

Power Fx je zasnovan, da cilja na občinstvo ustvarjalcev, katerega člani niso bili usposobljeni kot ustvarjalci. Kjer je le mogoče, uporabljamo znanje, ki bi ga ta ciljna publika lahko že imela ali se ga hitro priučila. Število konceptov, ki jih je treba poznati za uspešno uporabo, je minimalno.

Preprostost je dobra tudi za razvijalce. Za ciljno publiko razvijalcev želimo postati jezik z malo programiranja, ki skrajša potreben čas za izdelavo rešitve.

Doslednost Excela

Jezik Microsoft Power Fx si močno izposoja od jezike formul Excel. Želimo izkoristiti poznavanje in izkušnje s storitvijo Excel veliko ustvarjalcev, ki uporabljajo tudi Excel. Vrste, operatorji in semantika funkcij so izjemno podobni Excelovim.

Če Excel nima odgovora, se zgledujemo po SQL. Po storitvi Excel je SQL naslednji najbolj pogosto uporabljani deklarativni jezik in lahko zagotovi smernice glede podatkovnih operacij in močni tipizaciji, ki jih Excel ne.

Deklarativno

Ustvarjalec opiše kaj naj logika naredi, ne pa točno kako ali kdaj naj naredi. To omogoča optimizacijo sestavljavca z vzporedno izvedbo operacij, odložitvijo dela, dokler ni potrebno, ter vnaprejšnje pridobivanje in ponovno uporabo predpomnjenih podatkov.

Na primer, v delovnem listu Excel avtor opredeli odnose med celicami, toda Excel določa, kdaj in v katerem vrstnem redu so formule ocenjevanje. Podobno je mogoče formule v aplikaciji videti kot »preračunavajoče«, kot je potrebno na podlagi uporabniških dejanj, sprememb zbirke podatkov ali dogodkov časovnika.

Funkcionalno

Naklonjeni smo čistim funkcijam, ki nimajo stranskih učinkov. Zaradi tega je logiko lažje razumeti in ima sestavljavec največ svobode za optimizacijo.

Za razliko od storitve Excel aplikacije po naravi spreminjajo stanje – aplikacije imajo na primer gumbe, ki shranjujejo spremembe zapisa v zbirki podatkov. Nekatere funkcije imajo zato neželene učinke, čeprav to omejujemo, kolikor v praksi lahko.

Sestava

Kadar je mogoče, se dodana funkcionalnost dobro sestavlja z obstoječo funkcionalnostjo. Zmogljive funkcije je mogoče razstaviti na manjše dele, ki jih je lažje samostojno uporabljati.

Na primer kontrolnik Galerija nima ločenih lastnosti Sort in Filter. Namesto tega sta funkciji Sort in Filter združeni v eno samo lastnost Items. Uporabniški vmesnik za izražanje vedenja Sort in Filter je kot plast dodan nad lastnostjo Items z uporabo dvosmernega urejevalnika za to lastnost.

Zanesljivo razvrščene

Vrste vseh vrednosti so znane v času prevajanja. To omogoča zgodnje odkrivanje napak in obogatenih predlogov med ustvarjanjem vsebine.

Polimorfni tipi so podprti, toda preden jih je mogoče uporabiti, mora biti njihov tip pripet na statični tip in ta tip mora biti znan ob času sestavljanja. Funkciji IsType in AsType sta na voljo za preskušanje in oblikovanje vrst.

Navezovanje vrst

Vrste izhajajo iz njihove uporabe in niso določene. Na primer, nastavitev spremenljivke na številko privede do tega, da je tip spremenljivke vzpostavljen kot številka.

Uporaba različnih vrst privede do spora in napake pri prevajanju.

Jezikovno občutljiva decimalna ločila

Nekatere regije sveta uporabljajo piko (.) kot decimalno ločilo, druge pa uporabljajo vejico (,). To počne tudi Excel. To se običajno ne počne v drugih programskih jezikih, ki običajno kot decimalno ločilo uporabljajo kanonično piko (.) za vse uporabnike po vsem svetu. Za čim večjo dostopnost ustvarjalcem na vseh ravneh je pomembno, da je 3,14 decimalna številka za osebo v Franciji, ki že vso življenje uporablja to sintakso.

Izbira decimalnega ločila kaskadno vpliva na ločilo seznama, ki se uporablja za argumente funkcijskih klicev in operatorja veriženja.

Decimalno ločilo v jeziku avtorja Decimalno ločilo v Power Fx Ločilo za seznam v Power Fx Operator veriženja v Power Fx
, (pika) , (pika) , (vejica) ; (podpičje)
, (vejica) , (vejica) ; (podpičje) ;; (dvojno podpičje)

Več informacij: Globalna podpora

Ni usmerjen na predmete

Excel ni usmerjen na predmete in Power Fx prav tako ne. V nekaterih jezikih je na primer dolžina niza izražena kot lastnost niza, kot je "Hello World".length v jeziku JavaScript. Excel in Power Fx pa to izrazita kot funkcijo v obliki Len( "Hello World" ).

Komponente z lastnostmi in metodami so usmerjene v predmete in Power Fx jih enostavno obdeluje. Toda raje imamo funkcionalen pristop, kadar je to mogoče.

Razširljivo

Ustvarjalci lahko ustvarijo svoje komponente in funkcije z uporabo samega jezika Power Fx. Razvijalci lahko ustvarijo svoje komponente in funkcije s pisanjem v JavaScript-u.

Razvijalcem prijazno

Čeprav so naša ciljna publika ustvarjalci, se trudimo biti razvijalcem prijazni, če je le mogoče. Če to ni v nasprotju s predhodno opisanimi načeli oblikovanja, delamo stvari na način, ki ga bo razvijalec cenil. Na primer, Excel nima zmožnosti za dodajanje komentarjev, zato uporabljamo komentarje vrstice, podobne C, in komentarje v vrstici.

Razvoj jezika

Razvoj programskih jezikov je tako nujen kot zapleten. Vsi so – upravičeno – zaskrbljeni, da bi lahko sprememba, ne glede na dobre namene, pokvarila obstoječo kodo in od uporabnikov zahtevala, da se naučijo novega vzorca. Power Fx resno jemlje povratno združljivost, močno pa verjamemo tudi, da nam ne bo vedno uspelo v prvem poskusu in se bomo kolektivno naučili, kaj je najboljše, kot skupnost. Moramo se razvijati in Power Fx je že od samega začetka oblikoval podporo za jezikovni razvoj.

Z vsakim shranjenim dokumentom Power Fx je vključen žig različice jezika. Če želimo narediti nezdružljivo spremembo, bomo zapisali, kar imenujemo »pretvornik povratne združljivosti«, ki samodejno prepiše formulo, ko je naslednjič urejena. Če je sprememba nekaj velikega, o čemer je treba izobraziti uporabnika, bomo prikazali tudi sporočilo s povezavo do dokumentov. Z uporabo tega prostora lahko še vedno nalagamo aplikacije, ki so bile izdelane s predoglednimi različicami storitve Power Apps izpred mnogo let, kljub vsem spremembam, ki so se zgodile od takrat.

Uvedli smo na primer funkcijo ShowError za prikaz pasice za napako z rdečim ozadjem.

Pokaži napako.

Uporabnikom je bilo to všeč, prosili pa so nas tudi za uvedbo načina prikazovanja pasice za uspeh (zeleno ozadje) ali informativne pasice (modro ozadje). Zato smo se domislili bolj generične funkcije Notify, ki vzame drug argument za vrsto obvestila. Lahko bi samo dodali Notify in ohranili ShowError, kot je bilo, namesto tega pa smo ShowError zamenjali z Notify. Odstranili smo funkcijo, ki je bila prej v produkciji, in jo zamenjali z nečim drugim. Ker bi bila dva načina, kako storiti isto stvar, bi to povzročilo zmedo – zlasti za nove uporabnike – in, najpomembneje, dodalo bi zapletenost. Nihče se ni pritožil, vsi so pozdravili spremembo in nato prešli na naslednjo funkcijo »Obvesti«.

Tako izgleda ista aplikacija, ko je naložena v najnovejšo različico Power Apps. Za izvedbo te preobrazbe od uporabnika ni bilo zahtevano nobeno dejanje, zgodilo se je samodejno, ko je bila aplikacija odprta.

Funkcija obveščanja nadomešča funkcijo ShowError.

S tem prostorom se lahko Power Fx razvija hitreje in bolj agresivno kot večina programskih jezikov.

Ni opredeljene vrednosti

Nekateri jeziki, kot je JavaScript, uporabljajo koncept nedoločene vrednosti za neinicializirane spremenljivke ali manjkajoče lastnosti. Zaradi enostavnosti smo se temu konceptu izognili. Primerki, ki bi bili v drugih jezikih nedoločeni, so obravnavani kot napaka ali prazna vrednost. Vse neopredeljene spremenljivke se na primer začnejo s prazno vrednostjo. Vse vrste podatkov lahko prevzamejo prazno vrednost.

Vrste podatkov
Operatorji in identifikatorji
Tabele
Spremenljivke
Imperativna logika
Globalna podpora
Slovnica izrazov
Slovnica formule YAML
Komponente v aplikacijah delovnega območja