Microsoft putter .Net i browseren med Webassembly

Var det noget med at skrive webapps i browseren med C#? #dktech Illustration:
Softwarekæmpen smider frameworket på nettet med browser-bytecode.

Microsoft vil have .Net-frameworket til at køre i browseren ved hjælp af Webassembly-teknologien. Det er en standard for byte-kode og en tilhørende virtuel maskine, som kan afvikles lige godt i alle de fire store browsere, og et alternativ til Javascript. Det betyder, at andre sprog end Javascript kan benyttes til at skrive programmer, der kører i browseren

.Net er et afviklingsmiljø for en lang række sprog, som kan sammenlignes med JVM-platformen i Java-verdenen. Kernen i frameworket, .Net Core, er open source og kan afvikles på Windows, Mac og Linux. Og nu skal miljøet altså også afvikles i browsere. Det skriver Infoq.

Læs også: Webassembly kan blive webbets næste revolution og sætte Javascript på porten

Første skridt på vejen består i at tage projektet Blazor under Microsofts vinge. Det er et framework til web-brugerflader. Det skal gøre det muligt at skrive såkaldte ensides-webapplikationer, hvor brugerfladen opdateres med ajax- eller websockets-kald, i stedet for at skubbe en ny side ud fra serveren til browseren, når noget ændres.

Projektet bygger oven på arbejde udført af holdet bag Mono, en open source.udgave af .Net, som er produceret uden for Microsoft, men dog sponsoreret af it-kæmpen. Det går ud på at kompilere sproget C# til Webassembly.

Blazor vil også kunne kalde Javascript-funktionalitet.

Ifølge Mozilla kan indlæsning og udførelse af webassembly-kode ende med at være en størrelsesorden hurtigere, end dagens Javascript, der skrives som kildekode og sendes over nettet, for så at blive fortolket i browseren.

Webassembly er på vej mod standardisering. Der er nedsat en såkaldt ‘Community Group’ under W3-konsortiet med det formål for øje.

Koden kompileres til bytekode-formatet 'Wasm.' Webassembly har også fået sit eget 'decompiler'-sprog, der oversætter de numeriske byte-koder til noget, der er nemmere at læse og forstå.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (10)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Mark Klitgaard

Hvad er der galt med javascript?

Svaret er utroligt mange ting. Dog er det ikke nødvendigvis JS's skyld, der mangler generelt bare bedre sprog til front end development, hvilket også kan ses i den ekstreme mængde af forskellige JS frameworks der popper op for tiden. Denne internet joke opsummerer det meget godt og humoristisk:

http://www.commitstrip.com/en/2018/01/08/new-year-new-frameworks/

At se WebAssembly som et plugin er til gengæld forfejlet da det er som Mads siger, nærmere er næste generation inden for browser standarder.

Med WebAssembly er det ikke kun C# man kan kører i browseren, har allerede læst om C kode der kunne køres vha. WebAssembly i brugerens browser, og lur mig om det stopper der.

Et ret stort problem ved JS som f.eks. C# kan løse er type safety bare for at nævne en ting.

  • 9
  • 0
Christian W. Moesgaard

Hvad er der galt med javascript?


Uhada, sikke dog et spørgsmål!

JavaScript blev oprindeligt bygget til simple små scripts der kunne ændre en website en lille smule. I dag skrives hele applikationer af størrelse og kompleksitet lig med mange desktop applikationer i det, og det kan det slet ikke styre.

Her er nogle eksempler på fuldstændige tåbeligheder i JavaScript, som lige nøgagtigt kan håndteres i små programmer, men som lynhurtigt ødelægger det vi laver nu om dage:
https://medium.com/javascript-non-grata/the-top-10-things-wrong-with-jav...

Den mest kendte er nok den hellige treenighed:
https://images-cdn.9gag.com/photo/a6VKdee_700b.jpg

Det er til at blive fuldstændig vanvittigt af.

Med wasm får vi mulighed for at bruge en stor række af forskellige sprog til at udvikle vores browser applikationer. Det eneste, der er lidt trist, er at vi ikke længere kan se rigtig kildekode i vores browser, men mange hjemmesider bruger allerede minification og obfuscation, så det er essentielt ligemeget nu, desværre.

  • 5
  • 0
Benjamin Kristensen

Det største problem med flash (og java applets) var ikke at de kørte i browseren. Det største problem var at de levede som plugins som skulle have system adgang.

Når WebAssembly bliver implementeret så bliver det implementeret i en SandBox og med definerede browser API, og er på den måde ikke som sådan farligere end JavaScript i den forstand at det kan køre i din browser.

Der hvor den store fordel ved WebAssembly kommer frem er at vi compiler ting i de fleste sprog til assembly (enten pre-compiler eller via JIT ) og disse ting skrevet i disse mange forskellige sprog med mange års udvikling bag kan dermed udnyttes til at skrive mere robuste ting som kan køre i browseren.

Den anden store fordel er at JavaScript er meget svært for maskinen at regne ud før den står med det i hånden fordi det er meget svært at udlede state og lave Garbage Collection, det var bl.a. derfor at Chrome's V8 JS motor var sådan et stort gennembrud da den kom frem fordi den havde en bedre tilgang til disse ting. Ting skrevet i Assembly (eller compilet til assembly) er meget lettere at forudsige og optimere og det er der de snakker om en potentiel faktor 10 performance forbedring fordi vi ikke skal fortolke og håndtere alle de specielle edgecases i JavaScript

(Note: ES6 og ES2016+ har arbejdet en del på at gøre JS mere forudsigeligt bl.a. ved at introducere 'let' keyworded og andre tiltag men der er stadig meget at forbedre, og det kræver at folk faktisk tager sig tid til at lære at bruge det)

  • 8
  • 0
Log ind eller Opret konto for at kommentere