2016-09-22 55 views
1

我一直在使用Node.js。我知道它在內部是如何工作的(eventloop和其他東西),但是ASP.NET Core看起來與Node.js非常相似。ASP.NET Core&Node.js的相似之處

ASP.NET Core - Uses Kestrel (basically a fork of libuv) 
Node.js - Uses libuv 

ASP.NET Core - Tasks (though present in previous ASP.NET versions too) 
Node.js - Promises 

ASP.NET Core - Async/Await (though present in previous ASP.NET versions too) 
Node.js - Async/Await 

那麼,得出以下結論正確:

Node.js的只有執行JavaScript代碼(同步)和許多工作線程異步後臺操作一個單獨的線程。

ASP.NET Core使用多個線程來執行.NET代碼(同步)和許多工作線程用於後臺異步操作。

Node.js強制I/O爲異步,因此您不會阻止事件循環,但在ASP.NET中,用戶也可以同步I/O,因此阻塞線程,但由於它使用多線程整個應用程序不會被阻止。

回答

0

我沒有深入的關於Node JS的信息,但是根據你對kestrel和libuv的比較第一部分,我應該說ASP.NET核心是獨立於服務器的。 (我不是在談論諸如IIS,Apache等前臺Web服務器)。在ASP.NET Core中有一個名爲IServer的接口,它的任何實現都可以是一個asp.net核心應用服務器,Kesterl是您的選擇之一,您可以使用任何Owin Compatible服務器或任何其他服務器,如nowin & Web偵聽器。 ASP.NET核心是獨立於管道的(我不是在談論中間件),例如,您可以使用Owin管道,asp.net核心默認管道,也可以開發自己的管道。

相關問題