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.

ScenarioKey architectural
driver
Failure mode
if chosen wrong
Surface
Extend an existing MDA with richer UISecurity model inheritance, solution reuseLoses native context by forcing a detached appGenerative Page
Custom experience needing MDA contextDataverse first-class, embedded lifecycleReimplements MDA behavior outside the MDA boundaryGenerative Page
Standalone SPA experience, modern dev team, Power Platform governance neededFull frontend control, React/Vue dev model, managed platform underneathTeam underestimates ops obligations, or over-engineers a solution Canvas would have solvedCode App
Highly tailored UI, reusable component architecture, or Canvas hitting structural limitsEngineering maintainability, frontend reuse, structured code ownershipPatchwork Canvas remains — technical debt scales faster than the appCode App
Mixed team (makers + devs), moderate complexityMaker productivity vs developer controlOver-engineered stack where hybrid would sufficeCanvas + PCF
External-facing, URL-based accessPublic routing (anonymous) or authenticated external usersSurface cannot meet actual access or routing modelPower Pages (anonymous) / Code App (authenticated only)
Simple data capture, power user, low maintenanceLowest barrier to build and sustainUnnecessary custom engineering for simple workflowsStandard 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ä:

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ä.