Ensin Microsoft julkaisi App-skillsin Copilot Coworkiin. Sen avulla kuka tahansa voi tehdä helposti hallittuja sovelluksia (managed apps, lue edeltävä kirjoitukseni). Heti perään Microsoft tuli ulos kaapista hallittujen sovellusten ajoalustan kanssa. Sitä kutsutaan juhlallisesti Microsoft Copilot Managed Runtime:ksi.
Molemmat ovat mielestäni aivan mielettömiä juttuja. Julkistuksia lukiessa saattaa mieleen hiipua ajatus Power Appsien kohtalosta. Eikös nämä hallitut sovellukset aja aivan samaa asiaa kuin Power Apps Code Appsit? Molemmat ovat TypeScript/React sovelluksia, jonka käytännössä koodaa kielimalli. Molemmissa käyttäjä on aina tunnistettu (Entra ID) ja tietolähteitä käytetään hallittujen Power Platform -yhdistimien (connectors) avulla.
No mikä ihmeen ero näillä nyt sitten enää on?
Käydään tällä kertaa lyhyesti läpi näiden kahden eroja.
Huom! Hallitut sovellukset ovat vielä vahvasti preview-tilassa eli kaikki tässä mainittu voi muuttua.
Kelle työkalu on tarkoitettu?
Pidän Power Apps Code Appsia pohjimmiltaan Power Platform kehittäjän / konsultin työkaluna. Sen käyttö vaatii kaikenlaisten kilkkeiden asennusta omalle työasemalle sekä esim. GitHub Copilot / Claude Code -tilausta. Lähdekoodit tulee itse järjestää Git:iin.
Hallittujen sovellusten teko taas onnistuu suoraan Copilot Coworkilla (jatkossa Copilot Code:lla) sekä pian myös Copilot Studiolla. Käyttäjä tarvitsee ainoastaan selaimen, lisenssin ja nipun Copilot Creditejä. Tämä on todellista kansalaiskehittäjän vibe-ohjelmointia.
Mutta hallittuja sovelluksia voi tehdä myös muilla työkaluilla. Lovable oli julkistuksessa oikein erikseen mainittu. Voit siis tehdä sovelluksen Lovablella ja lopuksi tuoda sen Microsoftin ympäristöön käytettäväksi. Jolloin se on kaikkien Microsoftin rakentamien hallintaominaisuuksien piirissä.
Kehittäjät ja konsultit voivat taas tehdä hallittuja sovelluksia esimerkiksi GitHub Copilotilla. He voivat myös jatkokehittää kansalaiskehittäjän Coworkilla tekemää sovellusta vaikkapa GitHub Copilotilla.
Ajoympäristöt
Code Appseja suoritetaan Power Apps host:lla.

Käytännössä osoitteessa apps.powerapps.com/play/e/<environmentid>/app/<appid>?tenantId=<tenantid>

Hallittuja sovelluksia taas suoritetaan tällä uudella Copilot Managed Runtime host:lla

Käytännössä osoitteessa play.managedapps.cloud.microsoft/apps/

Hallittujen sovellusten koko idea on, että niitä voi rakentaa useilla eri tavoilla. Myös Microsoftin ekosysteemin ulkopuolella, jolloin ne voidaan tuoda tähän Microsoftin hallittuun ympäristöön organisaation käyttäjien käytettäväksi. Tällöin niiden käyttö edellyttää Entra ID -tunnistautumista ja tietolähteitä käytetään Power Platformista tuttujen yhdistimien avulla. IT:lle tarjotaan sovelluksiin täysi näkyvyys, sekä niiden tekoon ja käyttöön erilaisia kontrollimekanismeja.
Sovellusten löydettävyys
Löydän kaikki tekemäni ja minulle jaetut hallitut sovellukset yhdestä paikasta (https://managedapps.cloud.microsoft/)

Power Appseille vastaavaa paikkaa ei ole. Ne julkaistaan tyypillisesti useisiin eri ympäristöihin ja niissäkin niitä pääsee listaamaan (https://make.powerapps.com/environments/<environmentid>/apps) ainoastaan mikäli sinulla on ympäristöön vähintään maker oikeudet. Puhelimella asiat ovat toisin. Kaikki Code Appsit löytyvät (muiden Power Appsien tapaan) puhelimen Power Apps -sovelluksesta.
ALM (Application Lifecycle Management)
Power Apps Code Appsien ALM nojaa Power Platformin ALM:iin. Sovellus tehdään omalla työasemalla, jonka jälkeen se tuodaan Power Platformiin kehitysympäristöön ja siitä edelleen testiympäristöön testattavaksi. Kun kaikki on todettu toimivaksi se viedään tuotantoympäristöön kaikkien käytettäväksi.
Putki voi olla luonnollisesti lyhyempi
oma kone -> testi -> tuotanto
tai pidempi
oma kone -> kehitys -> integraatiotesti -> testi -> hyväksyntä -> koulutus -> tuotanto
Täysin tarpeiden mukaan.
Versionhallinta tulee hoitaa itse. Eli omalla koneella majaileva Code Apps -projekti on syytä viedä Git:iin. Ja muistaa tehdä commitit jne.
Miten tämä toimii hallituissa sovelluksissa?
No enpäs oikein tiedä (vielä). Kovin tarkkoja kuvauksia toiminnasta ei ole. Mutta alla omia havaintojani.
Hallittua sovellusta tehtäessä se hyödyntää oletusarvoisesti käyttäjän henkilökohtaista Power Platform -kehitysympäristöä. Tarvittavat Power Platform -yhteydet (connections) syntyvät sinne. Mikäli sovelluksesi käyttää Dataverseä, se käyttää henkilökohtaisen ympäristösi Dataverseä.
Toistaiseksi hallittu sovellus käyttää aina tätä luonnin aikana linkitettyä Dataverseä tietovarastonaan. Tai sitä SharePoint-sivustoa jne, joka sille on kehityksen aikana asetettu. Alusta ei (vielä) tarjoa tapaa asettaa tietovarastoksi jotain toista julkaisun yhteydessä. Olisi ihan kiva kehittää sovellusta kehityskantaa vasten ja tuotannossa oleva sovellus käyttäisi sitten tuotantokantaa…
Alusta ei myöskään (vielä) tarjoa tapaa jakaa (julkaisemattomia) muutoksia jollekin käyttäjäryhmälle testiin. Eikä ainakaan siten, että testattava versio käyttäisi tietovarastonaan jotain muuta kuin mitä tuotannossa käytössä oleva sovellus käyttää. Käytännössä testaaminen käyttäen testikantaa on vielä mahdotonta.
Mutta eiköhän tämä ole pian mahdollista. Jokainen hallittu sovellus on nimittäin alusta asti automaattisesti kiinni Microsoftin tarjoamassa Git:ssä. Eli kaikki Gitin ominaisuudet ovat käytössämme. Tämä mahdollistaa myös sen, että Microsoft suorittaa omatoimisesti erilaisia tarkastuksia tuotettuun koodiin.
Usea kehittäjä?
Code Appseja voi luonnollisesti työstää samaan aikaan usea kehittäjä. Kunhan ne lähdekoodit on asianmukaisesti siellä Git:ssä…
Hallittujen sovellusten kanssa on sama. Ja koska lähdekoodit ovat aina automaattisesti Git:ssä, on tämä käytännössä helpompaa. Pyydät vain kielimallia jakamaan tämän sovelluksen muokkausoikeuksin kollegallesi ja tämän jälkeen hän pääsee tekemään siihen muutoksia.

Lisensointi
Viimeisin ja ehkäpä se kiinnostavin ero on kuitenkin näiden lisensointi. Code Appsien käyttäminen edellyttää aina Power Apps Premium -lisenssiä. Niitä voi käyttää myös Pay-as-you-go mallilla, mutta käytännössä se on harvoin mahdollista (=taloudellisesti houkuttelevaa). 10$/käyttäjä/kk mikäli käyttäjä avaa sovelluksen yhden kerran kuukaudessa.
Power Apps Premium -lisenssi kattaa myös hallittujen sovellusten käytön (tiettyihin rajoihin saakka). Mutta mikäli käyttäjällä ei ole Power Apps Premium -lisenssiä, on käyttö puhtaasti kulutuspohjaista. Ja se kuluttaa Copilot Creditejä. Käytännössä jokainen sovelluksen tekemä API-kutsu kulutaa 0.1 Copilot Creditiä. Kun yksi Copilot Credit on noin 0.01$, niin sehän on sitten 0.001$.

Voit vihdoinkin rakentaa koko organisaation käyttöön harvakseltaan käytettävän hallitun sovelluksen, jonka tietovarastona on Dataverse ja jonka lisenssikustannukset ovat hyvin maltilliset. Tilanteessa jossa organisaatiolla ei kaikilla käyttäjillä ole Power Apps Premium -lisenssiä.
Yhteenveto
Onhan näissä paljon samaa. Mutta myös eroja. Code Appsit ovat varmasti vielä pitkään Power Platform -konsulttien työkalupakissa. Niitä voi liikutella kätevästi ympäristöstä toiseen muiden Power Platform -artifaktien mukana. Puhumattakaan Generative Pagesista, joka on hyvin samantyylistä tekemistä, mutta jota voi käyttää natiivisti model-driven appsissa dialogina, upottaa lomakkeelle jne. Jotain mihin hallitut sovellukset tuskin tulevat taipumaan.
Mikäli et työskentele Power Platformin parissa laisinkaan, ovat hallitut sovellukset todennäköisesti valintasi. Mikäli pystyt elämään niiden rajoitusten kanssa.
Organisaation omien henkilöiden helppokäyttöisenä vibe-koodausalustana hallitut sovellukset ovat ehdottomasti parasta mitä (Microsoftilla) on tarjolla.
Ja onhan koko tämä hallittujen sovellusten konsepti takuulla IT:n mieleen.