2012-09-11 20 views
15

Después de leer un montón de cosas sobre nodejs, todavía me pregunto a mi mismo:Node.JS VS HttpAsync (asp.net)

¿Cuáles son los beneficios más de ASP.NET solicitudes HttpAsync?

La única limitación (como veo) es el número concurrente de solicitudes que limita IIS.

traté de pintar la forma en la actualidad lo entiendo:

enter image description here

ayuda?

  • ¿Hay algo que las operaciones asincrónicas en .net/ado.net no puedan hacer ese nodejs?

Respuesta

13

IIS limita el número de solicitudes simultáneas a un número alto de forma predeterminada. Sin embargo, el límite puede plantearse arbitrariamente.

Hay dos principales beneficios que se atribuyen a Node.js:

  1. Escalabilidad (! No el rendimiento hay una diferencia) debido a asíncrono IO
  2. Intercambio de Javascript con el cliente

ASP .NET no es compatible con el número 2, por lo que es una ventaja.

Async IO y el código no bloqueado es totalmente compatible con ASP.NET. Además, obtiene la ventaja de rendimiento de un lenguaje JITed estáticamente tipado. Por esa razón ASP.NET generalmente tiene un rendimiento superior a node.js para aplicaciones que no son de juguete (la impresión de "hello world" no es una carga de trabajo real de referencia, ni está durmiendo durante 10 segundos).

node.js se beneficia de la ruta de código extremadamente delgada que tiene. Por esa razón, aplicaciones muy mínimas como "eco" o "hello world" son probablemente más rápidas. Esto no se aplica a las aplicaciones que realmente funcionan.

Así que si quieres saber cuál es "mejor", debes considerar un escenario en particular. Punto de referencia con una carga de trabajo realista (no, calcular un número factorial no es realista. C# va a ganar en gran cantidad. No significa nada). También factor en la madurez de la plataforma, bibliotecas, documentación, soporte, la productividad del desarrollador, ....

+0

Creo que también nodejs admite tcp mientras asp.net doesnt (http requst) –

+0

Ese podría ser el caso. IIS es compatible con TCP. WCF lo usa para ejecutar puntos finales de servicios binarios. – usr

+0

cuando estoy creando un servidor HTTP utilizando Node.js - cada solicitud al servidor está siendo manejado por un hilo regular y no del grupo de subprocesos ... ¿verdad? –

5

La principal diferencia entre Node.js y ASP.NET es el sistema de bibliotecas eco. La mayoría de las bibliotecas de node.js proporcionan una forma asíncrona. Los métodos ASP.NET no, solo algunos de ellos lo hacen. Y si hay algo sincrónico en el camino, el punto de ser asincrónico se pierde.

Ese es el problema que tienen la mayoría de las plataformas en comparación con node.js.

De lo contrario, simplemente usando este método AsyncHTTP, no hay ninguna diferencia entre ASP.NET y node.js.