ASP.NET Core - Framtiden för Microsoft's webbplattform

den 22 januari 2017

I Juni 2016 släppte Microsoft asp.net core 1.0, den största förändringen av deras ramverk för webbutveckling sedan 2002 - året då microsoft gick från klassiska asp och vbscript till asp.net och C# och Visual Basic dot net.

asp.net core 1.0 är ett helt omskrivet ramverk, men man använder sig fortfarande av C# och .net - Visual Basic kommer troligtvis inte att stödjas längre. Omskrivningen var nödvändigt då ramverket hade problem med:

  • Dålig Prestanda
  • Ej portabelt till andra Operativ system som Mac och Linux
  • Fungerade enbart med webservern IIS, om den skall vara portabel så måste den fungera med andra webbservrar, exempelvis nginx och appache

 

Prestandaproblematiken i gamla asp.net

Prestandan var för dålig i ramverket jämfört med konkurrerande ramverk. Språket C# och dess .net runtime var inte flaskhalsen utan problemet var hur man byggt upp ramverket asp.net. Med omskrivningen till asp.net core 1.0 förbättrades prestandan - här är en gammal bild som visar hur prestanda förbättringar under utvecklingstiden, från ca 40.000 request / sekund till över 1.1 Miljoner request / sekund.  De nyaste siffrorna jag sätt är på 6 Miljoner request / sekund, dvs. 150 gånger snabbare!


Idag har asp.net core prestanda kommit i kapp konkurrenterna och ibland även passerat dessa. Nedan är ett testcase testar prestandapå webbramverk. 

https://www.techempower.com/benchmarks/#section=data-r13&hw=ph&test=plaintext

 

I ovanstående diagram kommer asp.net core på 10 plats. man bör dock tänka på att de snabbaste ramverken troligtvis är nichade ramverk för specialområdenwebben. Jämför man asp.net core med andra vanliga ramverk på marknaden så får man dessa siffor:

NamnPrestanda
asp.net Core48.9%
django2.3%
php1.2%
Ruby On Rail26.6%
Spring (Java)3.5%
Node.js12.5%