Caso de Estudio

Migración de un ERP

Migración de un ERP a una solución web moderna para una multinacional tecnológica

Introducción

Una empresa tecnológica líder en el sector de la seguridad desarrolló un gestor de personal especializado en la gestión de recursos humanos. Se trata de una herramienta de gestión tipo ERP con una gran cantidad de funcionalidades y de líneas de código. 

Este sistema, concebido hace más de dos décadas, fue creado utilizando un lenguaje de programación propio. Además, se diseñó un transpilador para convertir el código a C# y un conjunto de herramientas de desarrollo para garantizar su mantenimiento y evolución.

Con el paso del tiempo, el panorama tecnológico ha evolucionado rápidamente, ofreciendo una amplia gama de herramientas que podrían mejorar aún más la funcionalidad y adaptabilidad de la plataforma. Además, han ido surgiendo nuevos competidores, que con herramientas de software más modernas, toman relevancia en el mercado del cliente.

Objetivos

1

Reducción de costes en licencias

Minimizar los costes estructurales y operativos asociados al uso de licencias por usuario.
Migrar a un sistema que no requiera el uso de licencias de pago, basado en costes computacionales y de almacenamiento.
2

Deprecación del lenguaje de programación propio

Superar las limitaciones del lenguaje propio al no evolucionar al mismo ritmo que otros lenguajes y frameworks tecnológicos.
Atraer y retener talento al adoptar tecnologías más actuales y populares entre los ingenieros de software.
3

Migración del proyecto a una solución web moderna

Mejorar la operabilidad y accesibilidad del sistema en múltiples dispositivos.
Reforzar la reducción de coseos operativos y de mantenimiento, adoptando tecnologías más actualizadas.
Mejorar la experiencia del usuario, la seguridad y la integración con sistemas de terceros mediante actualizaciones automáticas y una mayor interoperabilidad.

Qué Hicimos

1

Análisis y Definición Inicial

Ya existía un proceso de transpilación parcial hacia C#, lenguaje con el que el equipo del cliente tiene experiencia en producción.
Al inicio, hay una dificultad en la gestión del estado de la plataforma. Como consecuencia, se hace difícil separar completamente el frontend del backend en dos bases de código con independencia de ejecución.

Después del análisis se optó por descartar la estrategia de utilizar una SPA (Single Page Application) debido a varios motivos como:
- Mayores costes y tiempo de desarrollo. El desarrollo de SPA implica más codebase (+1 repositorio), desarrollo de una API para dar servicio al frontend y en general más boilerplate.
- Limitaciones de la plataforma actual para ser migrada en primera instancia hacia una SPA vs un Server MVC
- Aumenta la dificultad para captar talento y formar al equipo interno al añadir más tecnologías en el ecosistema.

2

Análisis de las alternativas

Se analizaron dos alternativas para el nuevo stack tecnológico:
.NET Core + Blazor
.NET Core + MVC
3

Solución escogida

La solución elegida después de evaluar ambas opciones es seguir la estrategia tecnológica basada en .NET Core + Blazor en modo Blazor Server.
Blazor, programado en C#, ofrece coherencia y reutilización del código tanto en el lado del cliente como en el del servidor. Su arquitectura basada en Componentes facilita la reutilización modular de las diferentes partes de la vista, asegurando una experiencia de desarrollo y usuario sólida.

Con Blazor Server, se logra una interactividad en tiempo real entre el cliente y el servidor, permitiendo actualizaciones instantáneas de datos. Además, en este modo, se gestionan fácilmente los problemas con el "Dominio" y con las vistas bloqueantes.

Por otro lado, .NET MVC, también programado en C#, es una tecnología más madura y utilizada, lo que garantiza un mayor acceso a recursos y a ingenieros con experiencia.
El cliente tiene una plataforma tipo ERP con múltiples módulos y componentes, por lo tanto se beneficiará de la arquitectura basada en componentes de Blazor para una migración eficiente. Además, el modo Server de Blazor simplificará la gestión del "Dominio".

¡Colaboremos!

¿Quieres trabajar con nosotros?

¿Quieres que colaboremos?

¿Quieres subirte a bordo?