Microsoft putter .Net i browseren med Webassembly

15. februar 2018 kl. 11:2710
Microsoft putter .Net i browseren med Webassembly
Illustration: Bigstock.
Softwarekæmpen smider frameworket på nettet med browser-bytecode.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

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.

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.

Artiklen fortsætter efter annoncen

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

10 kommentarer.  Hop til debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
10
15. februar 2018 kl. 19:07

IE != Edge

8
15. februar 2018 kl. 17:10

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)

7
15. februar 2018 kl. 16:38

.. for det kan jo meget nemt ende med at blive en ny sikkerhedsmæssig gyser på linje med Flash, som vi endelig er ved at slippe af med.

6
15. februar 2018 kl. 16:18

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-javascript-58f440d6b3d8

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.

4
15. februar 2018 kl. 15:09

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.

3
15. februar 2018 kl. 15:01

Det bliver det jo sådan set ikke bedre af..

1
15. februar 2018 kl. 14:41

Til at fravælge Internet Explorer.

Jeg troede vi var ovre de fede plugin til browseren..

Hvad er der galt med javascript?