Estos días he seguido trabajando en Node.Net. He corregido muchos bugs, haciendo el sistema más estable y le he metido soporte de servicios NT al sistema. Simplemente cualquier programa compilado con Node.Net podrá funcionar como un servicio sin hacer nada especial. Lo único que hay que rodear el código principal del Core.Loop. Y he metido un sistema virtual de archivos asíncrono que se podrá usar en cualquier sitio donde esté Node.Net y también he metido soporte para LESS CSS.

Sistema Virtual de Archivos Asíncrono con File Watching:

He añadido un sistema virtual de archivos asíncrono que permitirá hacer un uso transparente de cualquier implementación del sistema de archivos. Desde un sistema local de archivos, pasando por un archivo zip, una iso, un sftp o ftp… Se podrán servir y leer archivos y directorios desde cualquier sistema de archivos.
Además los sistemas de archivos permiten file watching, que permite saber cuando se ha modificado un archivo. Ideal para evitar polling de cara a saber si un archivo se ha modificado. Así que en cada petición se sirve el archivo cacheado sin hacer ningún acceso a disco y en cuanto se modifica el archivo se borra de la caché. Es óptimo y funciona muy bien tanto en desarrollo como en producción. El sistema virtual de archivos también centraliza en un sitio el tema de rutas relativas, y si se usa no habrá posibilidad de bugs en relación a salirse de una carpeta.

Mejoras:</span>

He añadido soporte para cabeceras ETag, Last-Modified y otras y pronto añadiré soporte para compresión con caché de archivos comprimidos para estáticos.

LESS CSS:</span>

He metido soporte para LESS CSS haciendo uso de la librería DOTLESS. El soporte permite trabajar de forma transparente con archivos .less. Simplemente registrando el módulo LESS y cuando pides un archivo CSS, se mirará si hay un archivo .less con el mismo nombre y si lo hay lo procesará y cacheará el resultado. Si se modifica el archivo .less el File Watching se entera y borra la caché de forma transparente. Además la caché asíncrona que monté hace que si hay dos peticiones concurrentes y se está generando un archivo, la segunda petición se espere a que la primera termine. Con lo que esto también es óptimo.