Share via


Cómo desarrollar aplicaciones de Node.js en Visual Studio

Node.js (Wikipedia) se ha convertido en un lenguaje de programación muy famoso para crear aplicaciones de servidor con Javascript. Dada la popularidad de este lenguaje en las aplicaciones web y lo extendido que están los navegadores no es de extrañar.

De hecho hay soporte nativo de Node.js en Azure Web Sites, donde puedes tener subida una aplicación hecha en Node.js con el fichero de package.js que contenga una lista de dependencias de paquetes de npm y se resolverán automáticamente en Azure.

Node.js Tools for Visual Studio

En este artículo se va a utilizar esta extensión de Visual Studio que permite a los desarrolladores de Node.js tener soporte de este lenguaje dentro de Visual Studio. Esto significa que se puede crear un nuevo proyecto basado en Node.js incluso utilizando un código existente o creando una aplicación de Express.js.

clip_image002

Nuevo proyecto

A la hora de crear un nuevo proyecto de Node.js en Visual Studio se puede utilizar una de las diferentes plantillas. Se puede crear una aplicación de consola en Node.js, una aplicación web vacía, basada en Express y además especificar que se puede subir a Azure.clip_image004

Intellisense

Hay dos tipos de Intellisense incluido en las Node.js Tools, uno que permite sugerir código de la aplicación que está desarrollando, es decir, del propio código Javascript y otro intellisense de los require.

clip_image006clip_image007

Depuración

Las Node.js Tools incluyen soporte de depuración con total integración de las características de depuración de Visual Studio. Para poder empezar a depurar solamente hay que establecer un punto de ruptura (breakpoint) en alguna línea de código y partir de ese instante se puede pulsar F5 o Start Debugging. En ese momento se lanza el runtime de Node.js basado en la configuración del proyecto y empieza la depuración.

clip_image009

Los punto de ruptura además soportan características avanzadas como por ejemplo establecer el número de veces que el código se ejecuta por ese punto antes de que se pare (Hit Count). También soportan el When Hit, que permite establecer un filtro para decidir cuándo se activa el punto de ruptura en basa a un pequeño código.

clip_image011

Si estas depurando tu aplicación pero no has establecido ningún punto de ruptura el depurador se parará cuando se produzca una excepción en el código. Esto se puede configurar en el menú de excepciones de Visual Studio.

clip_image013

Otra característica muy interesante del depurador de Visual Studio es el soporte del inspector de variables, que también está disponible en Node.js. De esa manera se puede explorar todas las propiedades de los objeto de Javascript que se tengan en ese instante en la pila.

clip_image014

clip_image015

Además se puede utilizar también la ventana del inmediato que permite ejecutar trozos de código contra la aplicación que está ahora mismo parada. Permitiendo volver a ejecutar alguna función o evaluar de nuevo alguna expresión.

clip_image017

Para finalizar la depuración dos cosas más, la posibilidad de ver la pila de llamadas en Javascript y poder explorar en todo momento el código fuente de la solución.

clip_image019

Y para terminar comentar que se permite la posibilidad de tener depuración remota en máquinas Linux y Mac desde Visual Studio.

NPM

NPM es el gestor de paquetes de Node.js que está perfectamente integrado en Visual Studio y permite agregar paquetes de Node.js desde una interfaz de usuario en la que se puede buscar.

clip_image021

Una vez que se ha instalado el paquete se puede ver como dependencia dentro del proyecto y ver el estado del mismo:

clip_image022

Como los paquetes no se pueden tener instalados localmente hay un estado para cada uno de ellos:

Package status:

  • clip_image023 Instalado y referenciado desde package.json
  • clip_image024 Externo (instanado pero no referenciado desde package.json)
  • clip_image025 No disponible (sin instalar, pero referenciado desde package.json)

Profiling

Conforme las aplicaciones van creciendo en complejidad y tamaño pueden hacerse pesadas y lentas, es importante tener una herramienta para poder hacer profiling del código e identificar donde se están produciendo el mayor gasto de cpu o memoria.

Para iniciar una sesión de profiling desde el menú analizar:

clip_image026

Aparece una ventana donde se puede seleccionar que aplicación se desea hacer el profiling.

clip_image027

Se ejecuta la aplicación, se navega a través de páginas para generar tráfico y una vez que se termina la sesión se cierra el runtime de Node.js y aparecerá una ventana dentro de Visual Studio con el resultado del profiling.

clip_image028clip_image029

Conclusión

Si estas desarrollando una aplicación de Node.js o estás pensando en hacerlo puedes tener toda la potencia de Visual Studio durante el desarrollo, y además tener la posibilidad de publicar el código en Azure directamente desde VS. Junto con Visual Studio Online se puede gestionar las tareas de trabajo, el código fuente y todo lo relacionado con el ciclo de vida de proyecto.

Luis Guerrero

Technical Evangelist Microsoft Azure

@guerrerotook