Interactive Web Application Development with .NET and WebAssembly

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Master's thesis

Date

2023-01-23

Department

Major/Subject

Web Technologies, Application and Science

Mcode

SCI3042

Degree programme

Master’s Programme in Computer, Communication and Information Sciences

Language

en

Pages

62

Series

Abstract

Traditionally, browsers have supported one programming language: JavaScript. Client-side rendered web application development has thus been limited to JavaScript-only. This changed in 2019, when W3C announced WebAssembly as the fourth language of web. WebAssembly is a portable binary code format supported by majority of browsers. Multiple programming languages can be compiled to WebAssembly, such as C# and C++, increasing language independency of web development. Most of existing research focused on performance and security aspects of WebAssembly. Some results among examined research suggested use scenarios for wasm, but no clear best use cases could be interpreted. Interestingly, the existing research covered in this thesis had minimal results and discussion regarding the software engineering aspect of WebAssembly. This thesis aims to fill the gap in existing research. The results of this research proposed a development process based on WebAssembly, that allows developing client-side web applications with C# and .NET. The designed process also allowed development in other languages, such as C and C++. The process was verified by a proof-of-concept client-side application. The results show, that WebAssembly increases language independency of client-side development and allows new features to be included in .NET web applications.

Selaimessa renderöitävien web-applikaatioiden kehitys on perinteisesti täytynyt tehdä JavaScript:lla, sillä se on ollut ainoa selainten tukema ohjelmointikieli. Tilanne muuttui vuonna 2019, kun W3C julkaisi WebAssemblyn internetin neljänneksi viralliseksi kieleksi. Suurin osa selaimista tukee WebAssemblyn binäärikoodia, jota voidaan kääntää useista ohjelmointikielistä, kuten C# ja C++. Laajalla kielivalikoimalla pystytään vähentämään selaimessa suoritettavien sovellusten JavaScript-riippuvuutta. Diplomityö tarkasteli useita olemassa olevia tutkimuksia WebAssemblyyn liittyen. Suurin osa tutkimuksista käsitteli WebAssemblyn suorituskykyä, turvallisuutta ja käyttökohteita. Tarkastellut tutkimukset eivät kuitenkaan juurikaan esittäneet tuloksia tai keskustelua siitä, miten WebAssembly vaikuttaa itse kehitysprosessiin. Tämä diplomityö käsittelee juuri kehitysprosessia WebAssemblyn kanssa. Tutkimuksen tuloksissa on suunniteltu WebAssemblyyn pohjautuva kehitysprosessi, joka mahdollistaa selainsovellusten kehittämisen .NET-arkkitehtuurilla ja C#:lla. Kehitysprosessi mahdollistaa myös muiden ohjelmointikielien hyödyntämisen, esimerkkinä C ja C++. Kehitysprosessi todennettiin toimivaksi toteuttamalla toimiva selainsovellus. Tulokset osoittavat, että WebAssembly vähentää web-kehityksen kieliriippuvaisuutta, sekä mahdollistaa uusien ominaisuuksien lisäämisen .NET-applikaatioon.

Description

Supervisor

Haaranen, Lassi

Thesis advisor

Kivilaakso, Janne

Keywords

WebAssembly, blazor, interactivity, .NET, in-browser database, language Independency

Other note

Citation