Decisión: Usar Sharp Architecture para desarrollo en MVC
Al comenzar a crear una aplicación web, sea esta en webforms o en mvc, una de las primeros requisitos a cumplir es la implementación de una arquitectura base que nos permita construir una aplicación web mantenible y escalable. Además, como expliqué en el post anterior el implementar mvc nos presenta otras consideraciones: IOC, Dependency Injection, y en este sentido entra en juego Sharp Architecture.
Qué es Sharp Architecture?
Me limito a citar lo expuesto por el equipo de sharp:
Architectural foundation for building maintainable web applications with ASP.NET MVC
Sharp nos brinda mediante una Plantilla de Proyecto de Visual Studio, la creación de una solución lista con mapeo de base datos utilizando Nhibernate, Inversion of Control (IoC) utilizando Castle Windsor, adiciones y helpers para MVC basadas en MVC Contrib que nos permiten desde ya tener un punto de partida para organizar y arquitecturar nuestra aplicación.
Qué ventajas tiene Sharp Architecture?
- En primer lugar una guía de mejores prácticas para la implementación de Aplicaciones realmente mantenibles y escalables.
- Mapeo de Base de Datos: la utilización de Nhibernate junto con Fluent-Nhibernate, un ORM Mapper realmente maduro, manejando de forma rápida y muchas veces automática (con AutoPersistance) la interacción con la base de datos.
- NUnit como framework de pruebas: El proyecto de pruebas está basado en Nunit, con scripts listo para la compilación en un servidor de integración.
- Generación automática de código basado en plantillas T4. Las cuales generan los modelos (clases), controladores, vistas de CRUD, mapeo de base datos y pruebas básicas para poder comenzar el desarrollo "en serio"
Cómo obtengo Sharp y comienzo a trabajar?
1. Descargar la plantilla o el código fuente: En Google Code puedes encontrar los últimos releases o hacer "checkout" del trunk para tener la última versión desde el repositorio Subversion.
2. Leer la Documentación de uso de la plantilla: Dentro del release existe documentación de 50 páginas de cómo comenzar, exponiendo conceptos básicos de TDD, DDD, Nhibernate y mvc, junto con directivas básicas para el desarrollo utilizando Sharp. Adicionalmente puedes empezar leyendo este excelente artículo en TheCodeProject que guía al uso de NHibernate.
3. Crea tu primera aplicación con Sharp Architecture.
El trabajo realizado por el equipo de Sharp es espectacular y en el grupo de Google puedes encontrar mucha información y soporte. Este foro tiene mucho movimiento, lo que indica la madurez y compromiso. Un buen trabajo sin dudar.
Mientras tanto preparo el material para desde nuestro siguiente encuentro comenzar "manos en la masa" con el desarrollo en Sharp.
Happy Coding & testing.










