javascriptasp.netnode.jsasynchronousihttpasynchandler

Node.Js VS HttpAsync (asp.net)


After reading a lot of stuff about nodejs, I still ask my self :

What are the benefits over asp.net HttpAsync requests ?

The only limitation ( as I see) is the concurrent number of requests which IIS limits.

I tried to paint how I currently understand it :

enter image description here

any help ?


Solution

  • IIS limits the number of concurrent requests to a high number by default. The limit can be raised arbitrarily though.

    There are two main benefits attributed to node.js:

    1. Scalability (not performance! there is a difference) due to async IO
    2. Sharing Javascript with the client

    ASP.NET does not support number 2 so that is an advantage.

    Async IO and non-blocking code is fully supported by ASP.NET. Plus, you get the performance advantage of a JITed statically typed language. For that reason ASP.NET generally has superior performance to node.js for non-toy applications (printing "hello world" is not a real benchmark workload! neither is sleeping for 10 seconds).

    node.js benefits from the extremely slim code-path it has. For that reason very minimal applications like "echo" or "hello world" are probably faster. This does not hold for apps which actually perform work.

    So if you want to know which is "better" you need to consider a particular scenario. Benchmark with a realistic workload (no, calculating a factorial number is not realistic. C# is just going to win by a large amount. Means nothing). Also factor in maturity of the platform, libraries, documentation, support, developer productivity, ....