EntitySpaces Studio: cuando limpiar la cocina da tranquilidad

Por Paul Córdova | Mantenedor de EntitySpaces ORM
Después de la importante liberación de todos los paquetes NuGet y de haber probado el ciclo completo (conexión, generación y pruebas) para cada proveedor, había algo que me tenía intranquilo.
El ORM funcionaba, los tests pasaban, los nuevos metadatos se extraían sin problemas… pero en EntitySpaces Studio algo no terminaba de encajar.
Sabía que la base sobre los providers y las plantillas era sólida, pero el Studio arrastraba una deuda técnica evidente: cada cambio de versión exigía demasiados ajustes manuales. Esa acumulación de código duro no era ninguna sorpresa; sabía que estaba ahí y decidí que este era el momento exacto para limpiar de raíz y asegurar la tranquilidad en las próximas etapas de EntitySpaces.
El problema que todos cononcen, pero nadie quiere enfrentar
Este lunes me puse con más calma, desde cero, y ahí estaba el problema: había versiones del Studio escritas en piedra en decenas de archivos.
No exagero: en clases, en controles, en los AssemblyInfo.cs, en las plantillas .est, en el instalador, en el app.config, en el código que maneja el registro de Windows… literalmente, el año y el número de compilación estaban hardcodeados en más de 100 lugares distintos.
El resultado era tan predecible como peligroso:
- Si olvidaba cambiar un solo archivo al preparar una nueva versión, el Studio podía mostrar un número incorrecto, fallar al cargar un proyecto antiguo, o romper la migración de configuraciones.
- Los usuarios veían errores del tipo
"Could not load file or assembly 'EntitySpaces.MetadataEngine, Version=2025.8.0.0'…"sin motivo aparente. - Y lo peor: cada release era una lotería, porque un descuido en un solo archivo podía arruinar la experiencia de instalación.
Manos a la obra (y una IA de apoyo)
Así que me puse manos a la obra. Y sí, confieso que esta vez no trabajé solo; una inteligencia artificial me acompañó en el proceso. Pero ojo: la IA no escribió el código por mí, sino que me ayudó a pensar en estructuras, a encontrar patrones repetidos y a no perder la cabeza con los más de 100 archivos que había que tocar.
El plan era sencillo:
- Centralizar todo en una única clase
VersionConstants(para atributos de ensamblado en tiempo de compilación) y otraVersionInfo(para el resto del código). - Reemplazar cada literal (año, release, versión) por referencias a estas clases.
- Actualizar las plantillas
.estcon un barrido masivo (usando Wingrep) para reflejar la versión correcta en el código generado. - Ajustar el instalador para otorgar permisos de escritura en
ProgramData\EntitySpaces\ES2026, evitando bloqueos. - Ordenar el combo de conexión para que SQL Server aparezca primero (detalles que marcan la diferencia).
En total, fueron dos días de ajustes a ritmo normal, más uno entero de pruebas para asegurar que nada se rompiera.
La prueba de fuego: comer mi propia comida de perro
Esta vez me tocó comer mi propia comida de perro: corregir la parte más legacy de EntitySpaces, esa que arrastraba decisiones de diseño de hace más de 10 años. No fue fácil, pero mereció la pena.
Hoy, cambiar el año o la versión del Studio es un cambio en un solo archivo. El app.config ya no necesita binding redirects manuales y cuando se liberen nuevas versiones, los proyectos anteriores migraran limpiamente.
También la documentación se llevó su cariño
Aprovechando el impulso, he actualizado por completo la guía rápida de EntitySpaces Studio. Ahora incluye:
- Capturas de pantalla actualizadas de todo el ciclo: instalación, configuración, generación de clases
GeneratedyCustom, estructura en Visual Studio, pruebas unitarias con PostgreSQL y la integración con Wisej.NET. - Una tabla de contenido clara y un tono directo para que un desarrollador pueda empezar a generar código en menos de 15 minutos.
La guía está disponible en español y en inglés directamente en el repositorio.
¿Y todo esto para qué?
Porque la confianza en una herramienta empieza por la coherencia interna. No importa lo potente que sea un ORM si cada actualización del Studio te hace dudar.
Ahora, cuando alguien descargue EntitySpaces Studio y vea la versión 2026.7.0030.0, puede estar seguro de que todos los ensamblados, plantillas, rutas y claves de registro están perfectamente alineados.
Y yo, como mantenedor, puedo dormir tranquilo sabiendo que la próxima release no depende de mi memoria, sino de un sistema diseñado para evolucionar sin sobresaltos.

Espero que esta herramienta sirva
Mi objetivo es que este ORM sea un puente confiable entre el pasado y el presente, permitiendo a las empresas modernizar sus aplicaciones LOB (Line Of Business) y sistemas críticos sin tener que reescribir toda su lógica de negocio.
El trabajo sigue y el siguiente paso ya está en marcha. Pero hoy, después de tres días intensos, toca celebrar este pequeño gran logro.
Y tú, ¿tienes alguna herramienta en tu stack que necesite una limpieza similar?
¡Te leo en los comentarios!
Paul Córdova
Mantenedor de EntitySpaces ORM
