Less Framework, no siempre que inventen otros.

Less Framework, no siempre que inventen otros.
Facebook Twitter Flipboard E-mail

Una de las ventajas de ser un editor de GenbetaDev es que estoy permanentemente en búsqueda y generación de información para compartir con los lectores de forma continuada. Y por ello accedo a información que, a menos que la busques específicamente, no es sencillo de encontrar.

Y eso reporta agradables sorpresas como el proyecto Less Framework desarrollado y publicado por Alberto Basalo en su blog Arquitectura Binaria. El cual trata sobre la construcción de un framework sencillo y bastante completo siguiendo la filosofía Less.

Módulos del proyecto

El empezar la serie de post con un listado detallado de herramientas recomendadas para su creación, me parece muy positivo por parte del autor.

Lo primero las herramientas. Idealmente debemos buscarlas gratuitas o baratas, pero siempre eficientes eficientes. Las herramientas deben ahorrar trabajo.

A partir de este artículo me voy encontrando con post completos en donde se realiza una a una las piezas fundamentales del framework. Voy a usar las palabras de Alberto para describir cada uno de ellos,

  • Less Config. El subsistema más básico de una aplicación es aquel que permite controlar cómo se va a ejecutar la aplicación. Debe ser usado por el resto de sistemas para cambiar su comportamiento una vez compilados, para poder personalizar distintas instalaciones, y en definitiva para expulsar de nuestro código las infames cadenas y números mágicos.
  • Less Log. Después de la configuración, el bloque constructivo más importante de un sistema será aquel que nos permita rastrear su funcionamiento, conocer su estado general y claro, especialmente avisarnos de los problemas que puedan surgir.
  • Less Extension Methods. Para los que lo desconozcan os diré que un método extensor no es más que un método estático cuyo primer parámetro indica la clase a la que extenderá. Esto permite agregarle funcionalidad a clases externas, selladas… sin obligarnos a derivarlas.
  • Less Data. Todos los programas trabajan con datos. Y casi todos los persisten entre ejecuciones. El sistema de datos de un framework combina las representaciones de estos datos en memoria, su almacenamiento en el medio físico y las transformaciones necesarias entre ambos. A esto de dedica Less Data.
  • Less Security. Bueno, con este titulo que me ha quedado espero que ningún Administrador de Sistemas me esté leyendo , pero para disipar cualquier duda aclaro que me refiero a la implementación menos invasiva de un imprescindible modelo de seguridad para aplicaciones.
  • Less Services. Esta fina capa de código con apenas tres líneas de espesor por método es la piedra angular en el diseño de sistemas. Tanto desde el punto de vista de infraestructura, pues sus distintas implementaciones resolverán distintas arquitecturas físicas, como desde el funcional, pues en la interfaz definida para esta capa se condensa la interacción y la definición de los casos de uso de un sistema.
  • Less Board. Pues bien, antes de empezar a usar estas herramientas creando funcionalidades por las que los usuarios estarán dispuestos a pagarnos, es el momento de tomarnos una molestia, que cuando los proyectos están lanzados nunca se le dedica suficiente cariño, pero que en el futuro nos gratificará sobradamente. Se trata de tener una herramienta administrativa para que desarrolladores y operadores puedan gestionar el uso de la futura aplicación.
  • Less Exceptions. No hace falta decir que las excepciones ocurren más de lo que deseamos, tanto en nuestro código o en el de terceros, y que cuanto antes tengamos la mejor información posible sobre su existencia, antes podremos corregir su causa o mitigar los daños.
  • Less MVC3. Toca hablar del andamiaje, fontanería y armazón básicos propuestos para hacer aplicaciones web con ASP.NET MVC3. En el anterior artículo ya esbocé cual es la estructura de carpetas y ficheros que por defecto nos propone Visual Studio. Ahora veremos el contenido de alguno de esos ficheros y el enrutamiento que lleva hasta los mismos.
  • Static vs instance. La programación orientada a objetos vive por y para la creación de instancias de clases, los objetos. Pero a veces nos resulta más cómodo juntar una serie de métodos y meterlos en una clase estática para poder llamarlos de manera inmediata, sin tener que declarar en instanciar previamente un objeto. Pero esa comodidad tiene un coste, y no es otro que la dificultad para extender modelos o modificar comportamientos sobre lo ya escrito.
  • LessViews. La vista es el intermediario entre el usuario y el modelo. En ella se definen todos los elementos gráficos y de infraestructura que darán lugar a la página web. Para los que vengan del mundo WebForms, diremos que la vista equivale a la conocida página aspx y esencialmente es un fichero de marcado con una sintaxis especial. ASP.NET no obliga a usar ningún tipo de sintaxis en sus vistas, aunque a mi me convence la que propone por defecto: Razor.

A este listado de post hay que añadirle los dos últimos que tratan sobre la documentación del proyecto, Less Documentation y Less Documentation 2. Y aquí acabaría el núcleo de este framework “ligero”, pero potente.

Por si fuera poco, no solamente puedo acceder al código a través de Codeplex, si no que además lo ha publicado en Nuget para que facilitar su utilización en entornos de desarrollo con Visual Studio.

Conclusiones

Less Framework in Nuget

Es muy de agradecer el encontrar información de este nivel de calidad que no provenga del exterior y, además, en la lengua de Cervantes. La carestía de fuentes de conocimiento en castellano, y más desde España, es un negativo indicador de nuestra industria, en donde miramos más hacia afuera sin percatarnos de la comunidad de gran calidad que tenemos alrededor.

El mero hecho de descargarlo, utilizarlo y ajustarlo a mis necesidades es ya un excelente ejercicio de aprendizaje y mejora el cual estoy dispuesto a continuar. Y tú?

Más información | Arquitectura binaria Código del proyecto | Lee Framework en Codeplex Proyecto en NuGet | NuGet Gallery

Comentarios cerrados
Inicio