Simular Node.js con C#

Iniciado por Alexei77, 18 Junio 2014, 20:47 PM

0 Miembros y 1 Visitante están viendo este tema.

Alexei77

Buenos días.

Hoy he descubierto Node.js (http://www.ibm.com/developerworks/ssa/opensource/library/os-nodejs/) y yo, aunque aún estoy aprendiendo C# (sé programar en otros lenguajes), tenía pensado hacer mi web con C#, aprovechando que han liberado la tecnología ASP.NET, además de que una programación orientada a controles es muy muuy cómoda.
Pero bueno, vayamos al grano, por lo visto un servidor web que lo controla todo + la programación con eventos es mucho más rápida. Entonces podría hacer toda mi web en C# con un único ejecutable y manejando todo el procesamiento, además de que C# es muy poderoso y en JS no se pueden ni crear clases (abstracción, etc.).

La pregunta es, y siguiendo la cabecera que he puesto en el código que pongo a continuación, en C#, ¿Cómo se podría programar con eventos de una manera simple al estilo de JS utilizando Node.js?

Este código sería del ejecutable que lo manejaría todo, y las páginas las recibiría mediante URLs amigables:
Código (c#) [Seleccionar]
/* An example web done with Node.js:
*
* do_a( function()
* {
*    do_b( function()
*    {
*      do_c( function()
*      {
*        do_d( function()
*        {
*          ...
*        });
*      });
*    });
*  });
*  
*
* My intention is do a Node.js with C#, named NodeSharp
*/

using System;

namespace NodeSharp
{
   class Program
   {
       static void Main(string[] args)
       {
           // Start OWIN host
           using (WebApp.Start<Startup>(url: "http://localhost:8000"))
           {
               // Runs until a key is pressed
               Console.ReadKey();
           }
       }

       /// <summary>
       /// This code configures the OWIN web app. The Startup class is specified as a type parameter in the WebApp.Start method.
       /// </summary>
       private class Startup
       {
           /// <summary>
           /// Configures the web app.
           /// </summary>
           /// <param name="app">The app builder.</param>
           public void Configuration(IAppBuilder app)
           {
               // We ignore any rules here and just return the same response for any request
               app.Run(context =>
               {
                   context.Response.ContentType = "text/plain";
                   return context.Response.WriteAsync("Hello World\n");
               });
           }
       }
   }
}



Fuentes
http://www.haneycodes.net/to-node-js-or-not-to-node-js/
http://dreamerslab.com/blog/en/node-js-events/
http://vimeo.com/84677180