Canvas Power Appseissa on tekijältä pyritty häivyttämään kaikki perinteiseen sovelluskehitykseen viittaava. Appsia ei käsitellä kuten kasaa koodia, vaan enemmänkin kuin yhtä PowerPoint-dokumenttia. Tämä on tietenkin kansalaiskehittäjien näkökulmasta mahtavaa.

Entä jos haluaisimme viedä Power Apps -kehityksemme pykälää ammattimaisempaan suuntaan? Ensimmäinen askel on ryhtyä käyttämään versionhallintaa. Tämä mahdollistaa mm. muutosten vertailun kooditasolla eri (versionhallintaan tallennettujen) versioiden välillä.

Käydään lyhyesti miten tämä onnistuu. Ennen aloittamista tarvitset kuitenkin.

Ja sitten rohkeasti kokeilemaan!

GitHub säilön (repository) luominen

Käytetään esimerkissämme versionhallintatyökaluna GitHub:ia. Luodaan sinne Power Appsiamme varten oma säilö (repository).

Säilölle annetaan nimi ja kuvaus, sekä määritellään onko se julkinen (public) vai yksityinen (private).

Projektin työskentelykansio

Luodaan omalle työasemalle säilöä vastaava kansio ja avataan se Visual Studio Codella (Open folder).

Tyhjältä näyttää.

Avataan Codessa terminaali, alustetaan (init) avaamamme kansio sekä kytketään (remote add) se GitHubiin luomaamme säilöön.

git init
git remote add origin https://github.com/MyAccount/MyGitHubRepository.git

Seuraavaksi projektimme kaipaa jotain sisältöä.

Power Apps -tiedoston purkaminen luettavaan muotoon

Käytetään esimerkkinä aiemmasta kirjoituksesta tuttua Power Appsia.

Tallennetaan se omalle työasemalle (File -> Save as – > This computer).

Lopputuloksena meillä on msapp-tiedosto. Siirretään se projektin työkansioon.

Ladattu msapp-tiedosto ei sellaisenaan ole kovin hyödyllinen. Haluamme purkaa sen luettavaan muotoon. Tähän käytämme uutta PASopa (Power Apps Source File Pack and Unpack Utility) -työkalua.

pasopa -unpack "Editable grid vol 6.msapp"

Ja näin meillä on Power Apps koko komeudessaan purettuna työskentely kansiossamme! Kiinnostava osuus on src-kansion alta löytyvät yaml-tiedostot. Alla avattuna ProjectAllocationsScreen-näyttöä vastaava yaml-tiedost. Kaikki näytön kontrollit ja niihin liitetyt kaavat ovat luettavissa selkokielisenä.

Voimme esimerkiksi etsiä kaikki paikat, jossa käsittelemme muuttujaa varShowPreloader.

Tämähän on mukavaa.

Koodin vienti versionhallintaan

Meillä on nyt kansiossa kasa tiedostoja, joista Git ei ole vielä mitenkään tietoinen. Lisätään ne kyytiin Add-komennolla.

git add --all 

Näin uudet tiedostot ovat mukana.

Merkitään muutokset valmiiksi commit-komennolla, jonka jälkeen kaikki on kunnossa omalla työasemalla.

git commit -m "Add first version"

Lopuksi tiedosto viedään GitHubin säilöön push-komennolla.

git push -u origin master

Vasta tämän jälkeen Power Appsimme koodi näkyy GitHub-palvelussa.

Uuden version tekeminen

Power Appsistamme on valmiina uusi versio (Version2.0). Luodaan sitä varten uusi haara (branch) ja siirrytään työskentelemään siihen (checkout) .

git branch Version2.0
git checkout Version2.0

Tallennetaan uusi versio Power Appista (se msapp-tiedosto) työskentelykansioon vanhan päälle. Näemme heti VS Codessa yhden tiedoston on päivittyneen.

Puretaan ladattu msapp-tiedosto PASopa-työkalulla. Aivan kuten teimme ensimmäiselläkin kerralla.

Mikä uudessa versiossa on sitten muuttunut verrattuna edelliseen? Näemme kaikki muutokset ymmärrettävässä muodossa VS Codessa.

Siistiä!

Uusi versio liitetään lopuksi master-haaraan ja viedään GitHubiin.

git commit -a
git checkout master
git merge Version2.0
git push -u origin master

Ja siellähän se möllöttää.

Muutosten tekeminen VS Codella

Tehdään vielä lopuksi muutama muutos Power Appsiimme suoraan VS Codella. Villiä!

Tehdään tätä varten oma haaransa.

git branch Version3.0
git checkout Version3.0

Vaihdetaan kaikkialta sovelluksessa punainen väri siniseksi. Toisin kuin Power Apps -editoissa, VS Codessa tämä on helppoa. Yksi etsi ja korvaa -komento.

Tämän jälkeen luomme työkansioomme puretusta ja muokatusta koodista uudelleen msapp-tiedoston.

pasopa -pack "Editable grid vol 6.msapp" pathToEditableGridSourceCode

Avataan muodostunut tiedosto Power Appsissa.

Ja kyllä. Kaikki punaiset elementit on korvattu sinisillä!

Yhteenveto

Vaikka kaikki edellä esitetty on todella siistiä (ainakin minusta), huomaa nopeasti mikä tässä on vielä pielessä.

Kyllä. Aivan liikaa manuaalisia toimenpiteitä.

Mutta tämä onkin vasta alkusoittoa. Kevyttä lämmittelyä. Hiljattain julkaistu PowerOps kertoo suunnan mihin olemme menossa. Tulemme pian näkemään päivän, jolloin yhtä nappia painamalla kehitysympäristössä omassa ratkaisupaketissaan oleva canvas Power Apps

  1. Puretaan luettavaan muotoon
  2. Koodit siirretään versionhallintaan omaan haaraansa
  3. Ratkaisupaketti siirtyy testiympäristöön testattavaksi
  4. Testissä oleva paketti hyväksytään
  5. Ratkaisupaketti siirtyy tuotantoon
  6. Paketin koodit yhdistetään versionhallinnassa projektin päähaaraan

Ja sama koskee luonnollisesti Dataversen tietomallia, flow’ta, model-driven appseja, virtual agentteja. Kaikkea mitä nyt ratkaisupakettiin saakaan sisällytettyä.

Hyvä tästä tulee.