Microsoft vraker React, begynner med web-komponenter

– Nå som web-komponenter er en del av web-en, er det mindre behov for slike rammeverk, sier Microsoft-utvikler.

Den gamle React-kodebasen til web-versjonen av Microsoft Store er kastet på skraphaugen. 📸: Skjermbilde fra apps.microsoft.com
Den gamle React-kodebasen til web-versjonen av Microsoft Store er kastet på skraphaugen. 📸: Skjermbilde fra apps.microsoft.com Vis mer

Microsoft lager mye i React, som da de tidligere i år annonserte at de byttet ut Angular med React for å lage en helt ny arkitektur for Teams-appen:

Det er imidlertid ikke React for alle penga.

På torsdag lanserte Microsoft en helt ny versjon av app-butikken sin Microsoft Store, der alt sammen er bygget fra bunnen av med web-komponenter og biblioteket Lit.

Web-komponenter er en web-standard som lar deg lage såkalte "custom elements" som kan brukes i HTML-kode. Dette ligner på vanlige HTML-elementer som for eksempel <div>, <article>, og så videre – med den viktige forskjellen at det er du som bestemmer hva elementene skal gjøre.

Lit er et åpen kildekode-bibliotek utviklet av Google som gjør det enklere å jobbe med web-komponenter.

Ut med React

Microsoft-utvikler Judah Gabriel skriver i diskusjonstråden på X/Twitter at de har kuttet ut den gamle React-kodebasen, siden den var basert på et "avlegs" UI-rammeverk.

Det kommer ikke frem hvilket UI-rammeverk Gabriel viser til som skal være "avlegs" – om det faktisk er React han mener, eller et annet rammeverk. Det er for øvrig ingenting i veien for å bruke web-komponenter i for eksempel React, eller lage web-komponenter basert på React, Svelte eller noe annet.

I tillegg til web-komponent-biblioteket Lit har Microsoft også brukt Shoelace, et web-komponent-basert UI-bibliotek, byggeverktøyet Vite.js og PWABuilder. Backenden kjører på C# ASP.NET.

– Mindre behov for React

Enkelte som kommenterer Gabriels tweet spør hvorfor Microsoft ikke har valgt å heller bruke noen av Microsofts egne løsninger, som Microsofts UI-bibliotek Fluent 2 med React.

Judah Gabriel svarer at de ikke trenger React lenger. Han har tidligere bygget SPA-er ("Single Page Applications") i blant annet React, Angular, Vue og Knockout, sier han. Men:

– Det var en gang behov for SPA-rammeverk fordi web-en ikke hadde noe konsept med "self-contained" komponenter med databinding, oppdagelse av endring, og så videre.

– Nå som web-komponenter er en del av web-en, er det mindre behov for slike rammeverk, sier Gabriel.

Han sier også at de heller ikke vurderte Blazor, et annet Microsoft-verktøy, til denne applikasjonen.

– Det fyller en fin nisje: bygge fullstack-web-apper i C#. Det er fantastisk for C#-utviklere som ikke vil lære den ville vesten som web-økosystemet utgjør. Men jeg er en webutvikler nå, og jeg liker TypeScript, sier Gabriel.

«Nå som web-komponenter er en del av web-en, er det mindre behov for slike rammeverk.»

Påvirker ikke Windows-versjonen

Enkelte uttrykte bekymring for at Microsoft nå kom til å bytte ut den native Windows Store-appen som følger med i Windows. Gabriel sier disse ikke har noe å bekymre seg for.

Web-appen de nå har laget med web-komponenter er ment som web-fronten til app-butikken i Windows, og skal altså ikke erstatte denne.

Siden appen er bygget med PWA-builder ville den i utgangspunktet kunne installeres som en PWA også i Windows. Det kunne blitt forvirrende for brukerne, som da ville risikere å installere Microsoft Store-appen fra nettleseren og ende opp med to app-butikker i Windows – en native og en PWA.

Dette har de løst ved å blokkere Chromium-installasjoner ved å sette start_url-feltet i manifestet til null.

Les også om TV 2 som bygger web-komponenter med Svelte: