permalink

1

Cuando los desarrolladores .NET se deciden por Node.js

En el sitio Performance Zone encontramos un artículo que nos llama la atención y nos presenta una comparación entre la implementación de un servidor HTTP Asíncrono desarrollado con tecnología .NET y su equivalente desarrollado con tecnología Node.js

Veamos todas las herramientas necesarias aplicadas en cada implementación para cada una de estas tecnologías.

Este es un pequeño ejemplo .NET de un HttpHandler con manejo asincrónico y para su ejecución se utilizó EasyNetQ.

using System;
using System.Threading;
using System.Threading.Tasks;
using System.Web;

namespace TestHttpHandler
{
    public class TimerHandler : IHttpAsyncHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            throw new InvalidOperationException("This handler cannot be called synchronously");
        }

        public bool IsReusable
        {
            get { return false; }
        }

        public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback callback, object state)
        {
            var taskCompletionSouce = new TaskCompletionSource<bool>(state);
            var task = taskCompletionSouce.Task;

            var timer = new Timer(timerState =>
            {
                context.Response.Write("OK");
                callback(task);
                taskCompletionSouce.SetResult(true);
            });
            timer.Change(1000, Timeout.Infinite);

            return task;
        }

        public void EndProcessRequest(IAsyncResult result)
        {
            // nothing to do
        }
    }
}

De lo que se puede ver nos lleva algún tiempo el poder desarrollar un servidor sin bloqueos lo cual es nativo en una servidor en Node.js

var http = require('http');

http.createServer(function (req, res) {
    setTimeout(function () {
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('OK');
    }, 1000);
}).listen(1338);

console.log('LongRunningServer is at http://localhost:1338/');

Primero en Node.js la implementación necesita menos código y en tiempo de ejecución no es necesario de herramientas de terceros para poder ejecutarlo.

  • hj

    la comparacion es por rutina porque todo el mundo sabe que nodejs es mucho mejor y mas moderna.