Osallistuin kesäkuun lopulla Kööpenhaminassa pidettyyn European Power Platform konferenssiin. Esityksiä oli 3 päivän aikana hengästyttävä määrä. Viime vuonna osallistuin pääasiassa Copilot Studiota ja/tai agentteja käsitteleviin esityksiin. Tällä kertaa poimin listalta kaikki code appseja sivuavat esitykset. Tässä jutussa on lyhyet poimintani näistä esityksistä.
Low-code is dead? – Code-first and AI-driven development in Power Apps
Kimmo Koski
Ensimmäinen aihetta käsittelevä esitys oli Kimmo Kosken dramaattisesti nimetty Low-code is dead? Mainio vähemmän tekninen esitys, jossa Kimmo pohti omien kokemustensa pohjalta low-code tekemisen historiaa, ongelmakohtia sekä tulevaisuutta.

Esityksessä käytiin myös läpi alustan nykyiset AI-avusteiset kehitystavat (generative pages, vibe.powerapps, code apps). Luulen että vastaavia läpikäyntejä tulen näkemään täällä vielä useamman.
Kimmon esitteli myös mallin, miltä moderni Power Apps kehitysputki voi näyttää.

Mainio aloitus valitsemalleni teemalle.
Ja vastaus esityksen otsikkoon oli tietenkin ei. Low-codee vain muuttaa muotoaan.
Vibe Code, Real Solutions: Generative Pages & Code Apps for Enterprise-Ready Apps
Vivian Voss, Yannick Reekmans
Usea code apps / generative pages / vibe.powerapps -esitys keskittyy siihen, miten nopeasti näillä työkaluilla voi rakentaa sovelluksen. Tämä esitys keskittyi kaikkeen siihen, mitä tapahtuu sen jälkeen kun sovellus on (AI:n avustamana) tehty.

Esityksessä käytiin läpi myös perusteita miten Dataversen päälle suunnitellaan ja toteutetaan sovelluksia AI-avusteisesti. Missä tekoälyä tyypillisesti pitää vielä hieman auttaa jne. Paljon esimerkkejä siitä miten löysällä ohjeistuksella AI tuottaa hieman sinne päin lopputuloksen.

Lisäksi paljon hyviä vinkkejä! Voit esimerkiksi käyttää Dataverseä kahdella eri tapaa.

Loppuun vielä taulukko helpottamaan suuria valintoja.
| Scenario | Key architectural driver | Failure mode if chosen wrong | Surface |
|---|---|---|---|
| Extend an existing MDA with richer UI | Security model inheritance, solution reuse | Loses native context by forcing a detached app | Generative Page |
| Custom experience needing MDA context | Dataverse first-class, embedded lifecycle | Reimplements MDA behavior outside the MDA boundary | Generative Page |
| Standalone SPA experience, modern dev team, Power Platform governance needed | Full frontend control, React/Vue dev model, managed platform underneath | Team underestimates ops obligations, or over-engineers a solution Canvas would have solved | Code App |
| Highly tailored UI, reusable component architecture, or Canvas hitting structural limits | Engineering maintainability, frontend reuse, structured code ownership | Patchwork Canvas remains — technical debt scales faster than the app | Code App |
| Mixed team (makers + devs), moderate complexity | Maker productivity vs developer control | Over-engineered stack where hybrid would suffice | Canvas + PCF |
| External-facing, URL-based access | Public routing (anonymous) or authenticated external users | Surface cannot meet actual access or routing model | Power Pages (anonymous) / Code App (authenticated only) |
| Simple data capture, power user, low maintenance | Lowest barrier to build and sustain | Unnecessary custom engineering for simple workflows | Standard MDA form |
Power Pages: Bring your own Code!
Nick Doelman

Käytännönläheinen esitys siitä miten Power Pages -tekeminen on muuttunut agenttisen kehittämisen myötä. Pieni sivuhyppy, mutta samaa sovellusten tekemisen muutosta tämäkin esitys käsitteli.
Every Power Platform maker should be learning it (Visual Studio Code) now. This is the new surface for building apps.
Nick demosi muun muassa Dataverse ympäristön ja ratkaisun (solution) luonnin Dataverse skillsin avulla, josta edettiin suunnitelman tekoon plan-moodilla.

Viesti oli sama kuin muissakin esityksissä. Tee agentin kanssa aina ensin suunnitelma, joka sitten lopulta toteutetaan omassa vaiheessaan. Nick kävi esityksessään läpi alusta loppuun, miten Power Pages -sivusto toteutetaan agentin avulla. Työkaluna oli Claude Code + Dataverse / Power Pages skillsit.
Ja kyllä. Power Pages tekeminen näyttää nykyään aivan samalta kuin code apps / canvas app / generative page tekeminen. Työkalut ja prosessi on sama.
Taming the Chance – or: Start Testing your Power Apps with Playwright (… and Copilot)
Tobias Maestrini, Guido Zambardas
Playwright on suosittu työkalu testausautomaatioiden tekemiseen. Sitä voi käyttää model-driven appsien, canvas appsien, code appsien, generative pagesin jne testaamiseen. Power Appsin Test Enginen voi oikeasti unohtaa. Mikäli sitä on oikeasti joku joskus käyttänyt. Playwright on virallinen korvaaja sille.
Playwright ei tue MFA:ta, mutta esityksessä esiteltiin tapa miten sillä voi testata sovelluksia joiden käyttö edellyttää MFA:ta. Se pohjautui tähän blogi-postaukseen: Automate Microsoft MFA login using Playwright – I am GuidoZam.


Esitys oli aika tekninen läpikäynti aiheeseen. Playwright:iin tutustuminen oli jo aiemmin omalla todo-listallani, eikä se tämän esityksen jälkeen sieltä mihinkään pudonnut. Agenttisessa kehityksessä automaattitestit ovat entistäkin tärkeämpiä.
Onneksi testejäkin voi tehdä AI:n avulla.
Aloita esim näistä:
- https://learn.microsoft.com/en-us/power-platform/developer/playwright-samples/overview
- https://playwright.dev/docs/intro#installing-playwright
- https://playwright.dev/docs/getting-started-vscode
- https://github.com/microsoft/power-platform-playwright-samples
- https://playwright.dev/docs/test-agents
- https://learn.microsoft.com/en-us/power-platform/developer/playwright-samples/ai-mcp
Code Apps ♥️ Full React Power ♥️Vibe Coding
Diana Birkelbach

Dianan esitys oli erinomainen tekninen code apps läpikäynti. Mitä ne ovat ja miten niitä käytännössä tehdään.

Lähestyminen oli enemmän kehittäjän, kuin konsultin näkökulmasta. Hyödyllistä sisältöä kuitenkin myös kaltaiselleni kaverille, joka ei osaa (enää) koodata itse vaan käyttää AI:ta kehittämiseen.
Ja näin vihdoin miten Visual Studio Codeen lisätään Power Platform skills agentin käyttöön! Samoin miten code appsia voi ajaa iFramessa model-driven appsin sisällä.
Diana veti hyvän demon jossa code apps rakennettiin alusta loppuun. Oli hupaisaa huomata että se eteni kuten moni minunkin projekti. Ensimmäisellä yrityksellä sovellus ei koskaan löydä Dataversestä yhtään riviä…
Esitys eteni nopeasti Reactin, Fluentin, Griffelin jne salojen esittelyyn ja miten niitä voi hyödyntää code apps -kehityksessä.
Toisaalta miten paljon tästä kaikesta tarvitsee nykyään konsultin ymmärtää kevyitä sovelluksia tehdessä? Huomaat että navigointi ei toimi kuten pitää tai lista renderöityy hitaasti päivityksen jälkeen. Kerrot tämän agentille ja se muuttaa käyttämäänsä toteutuspatternia. Itse ehkä naivisti oletan että kielimallit osaavat nämä jutut. Ainakin riittävällä tasolla.
Building Our Own Field Manager Solution: What Were We Thinking?
Timo Pertilä

Oma esitykseni oli case-kuvaus oman field service -järjestelmän rakentamisesta. Mukavasti yleisiöä ja kivasti kysymyksiä!
Harmikseni oman esityksen kanssa päällekkäin oli kaksi kiinnostavaa esitystä.
Vibe Apps and Code Apps: The Future of Power Platform Development (Charles Sexton) ja Code Apps for Canvas Makers: Your Next Step in Power Apps (Thomas van der Waard ja Felix Verduin).
No, aina ei voi voittaa.
Build Your Own (Code) App – with the Power Platform’s «code-first» approach
Tobias Maestrini, Guido Zambardas

Esitys oli (jälleen) yleistason läpikäynti code appsista.

Yleisesti arkkitehtuurista, miten pääsee alkuun (asennukset) ja simppelin sovelluksen teko. Demossa käytiin läpi miten code appsissa käytetään kontekstia (esim. käyttäjän nimi), ympäristömuuttujia työnkuluja (cloud flow) ja yhdistimen (connector) avulla SharePointia ja valmista hyväksyntä-toimintoa (approvals).
Yhteenveto
Tämänvuotinen EPPC oli mainio. Mutta niin nämä ovat aina. Code apps -esitykset (kuten muutkin esitykset) olivat hyviä. Niiden sisällöt olivat lopulta kuitenkin hyvin samankaltaiset. Minkä tahansa niistä katsomalla olisi saanut hyvän yleiskuvan aiheesta.
Code apps esitykset erotti toisistaan niiden yleinen lähestyminen AI-avusteiseen kehittämiseen. Toisissa ajatus oli se, ettei tekijän tarvitse Reactista ymmärtää mitään. Kovaa ajoa vain. Toisissa koko code apps -kehitys tehtiin itse ilman agentteja. Itse olen lähempänä tuota ensin mainittua leiriä.