ASP.NET Coren 3.0 versio toi mukanaan mielenkiintoisen tulokkaan web-kehityksen alati muuttuvaan maailmaan. Hiljattain julkaistu Blazor Server tuo .NET-kehityksen selainpohjaisiin sovelluksiin. Ensi vuoden alkupuoliskolla julkaistaan Blazor WebAssembly, joka vie kehitystä vielä askeleen eteenpäin puhtaasti selaimessa ajettavalla versiolla.
Devaajalle versioiden välillä ei suuria eroja ole. Kyse on ainoastaan hosting-mallista, jonka Server-versiossa renderöinti tapahtuu palvelimella ja WebAssembly-versiota ajetaan puhtaasti selaimessa.
Blazor on web UI framework, kuten React, Angular tai Vue. Se perustuu komponenttipohjaiseen, tapahtumakeskeiseen ja tilalliseen UI-kehitykseen. Kuvauskielenä käytetään Razoria ja koodi kirjoitetaan .NET:llä.
Server-versiossa renderöinti tapahtuu reaaliaikaisesti SignalR-kirjastoa hyödyntäen palvelimella (WebSockets-yhteydellä), kun taas WebAssembly-versio käyttää nimensä mukaisesti hyväkseen kaikkien modernien selaimien tukemaa WebAssembly-tekniikkaa. WebAssemblyn päälle rakennettu runtime ei vaadi koodin transpilointia JavaScriptiksi, vaan selaimessa voidaan ajaa natiivia .NET koodia.
Täyden UI-komponenttimallin lisäksi frameworkiin on sisäänrakennettuna seuraavat ominaisuudet:
WebAssembly-versio ei vaadi taustalleen .NET-palvelinta, vaan se voidaan asentaa mihin tahansa staattiseen tiedostopalvelimeen muiden UI frameworkien tapaan. Server-versiota ajetaan ASP.NET Coren päällä.
Se, mikä tekee Blazorista mainion työkalun full stack -kehitykseen, on koodin jakaminen clientin ja serverin välillä. Tämän mahdollistavat .NET Standard -kirjastot, joita ajetaan Mono-runtimen päällä. Voit esimerkiksi jakaa C#:lla kirjoitetun API SDK:n suoraan UI-projektille, ja HttpClientilla tehdyt kutsut toimivat myös WebAssembly-versiossa aivan kuten palvelinpuolellakin. Ota kuitenkin huomioon, että DLL:t ladataan suoraan selaimeen ja ovat näin kenen tahansa tutkittavissa. Tietoturvan kannalta tämä kannattaa pitää mielessä.
Blazor Server -versio on julkaistu ja tuettu .NET Core 3.0 -version myötä ja siinä mielessä voit ottaa sen tuotantokäyttöön saman tien. Voit käyttää sitä täydentämään MVC- ja Razor Pages -projekteja itsenäisesti toimivilla komponenteilla tai käyttää itsessään kokonaiseen single-page app -projektiin.
Microsoft on julkaissut e-kirjan, jossa kannustetaan Web Forms -kehittäjiä vähintäänkin tutustumaan Blazoriin. Hyvin samankaltaisen tilallisen komponenttimallinsa vuoksi Web Forms -taustaiselle kehittäjälle Blazoriin siirtyminen voikin olla varsin kivutonta.
WebAssembly-versio sen sijaan on vasta beta-vaiheessa ja sen tuotantokäyttöä ei vielä suositella ainakaan kovin bisneskriittisissä sovelluksissa. Ensimmäisen latauksen koko voi olla rajoittava tekijä ympäristöissä, joissa yhteydet ovat huonot, sillä yksinkertaisenkin sovelluksen koko voi nousta useisiin megatavuihin. Tämä on toki asia, johon kehityksessä kiinnitetään aktiivisesti huomiota ja latauskoko tulee varmasti pienenemään tulevaisuudessa.
Blazor WebAssembly -version julkaisun jälkeen ensi toukokuussa tähtäimessä ovat PWA-, Hybrid- ja Native-versiot. Näistä kaksi ensimmäistä web-pohjaisina istuvat hyvin Blazorin nykyiseen renderöintimalliin, kun taas Native-versio vaatii oman renderöinnin natiiveihin kontrolleihin. PWA- ja Hybrid-versioita odotetaan .NET 5:n kylkiäisinä marraskuussa 2020. Native-versiolle ei ole vielä annettu tarkempaa aikataulua, vaikka siihenkin on luvattu panostaa.
Kaikki nämä lupaukset täyttäessään Blazor on hyvin alustariippumaton kehitysympäristö ja mahdollistaa aika lailla kaiken rakentamisen .NET:n päälle.
Tausta: Blazor syntyi kehittäjän omasta projektistaBlazorin ensimmäinen prototyyppi nähtiin NDC Oslo 2017 -tapahtumassa, jossa Microsoftin kehittäjä Steve Sanderson esitteli sitä henkilökohtaisena projektina. ASP.NET Core -tiimi innostui ideasta ja alkuvuodesta 2018 Blazorin kehitys alkoi Microsoftin siipien alla kokeellisena projektina, jolle ei luvattu tukea eikä jatkosta ollut mitään varmuutta. Alkuvuodesta 2019 pienen kehitystiimin projekti oli kuitenkin edennyt vaiheeseen, jossa sen potentiaali tunnistettiin. .NET Core 3.0 Preview 2 oli ensimmäinen julkaisu, jossa Blazor oli osa SDK:ta erillisen kirjaston sijaan. Kokonaisuudessaan siis vain noin puolentoista vuoden kehityksen tuloksena on nyt julkaistu Server-versio uudesta web frameworkista sekä betaversio sen WebAssembly versiosta. |