Migración de sistemas legados

¿Tu software se ha quedado obsoleto y te abruma el reto de desarrollar un nuevo sistema? Te ayudamos a reducir los plazos de prototipado, implementación y migración de datos

¿Estás familiarizado con el desarrollo de la capa de persistencia mediante ORM? En ese caso, ¿sabías que ciertos sistemas son capaces de realizar ingeniería inversa de la base de datos y generar automáticamente las clases de entidad que representan cada tabla?

Utilizar el mismo modelo de datos para la nueva solución, en la mayoría de casos es una mala idea por múltiples motivos:

  • Puede que la solución esté basada en un sistema de base de datos obsoleta o poco fiable
  • Es posible que se diseñara sin seguir patrones de diseño actuales
  • Habitualmente las soluciones modernas de gestión empresarial basan la capa de persistencia en un ORM por una mera cuestión de productividad en el desarrollo y normalización de datos, y estos sistemas tienen sus propias reglas de diseño

Cualquiera que sea el caso, nuestro consejo es rediseñar la base de datos y usar un ORM. Hemos utilizado en múltiples proyectos el ORM XPO de DevExpress, tanto para implementar la capa de persistencia de la nueva solución, como para generar automáticamente la capa de persistencia de la solución antigua a migrar. A diferencia de una migración basada en sql a bajo nivel, contar con el modelo de datos implementado en código mediante clases de entidad facilita notablemente la migración de datos. Fíjate en la simplicidad del siguiente ejemplo básico:


var oldUow = OldSessionFactory.GetNewUnitOfWork();

foreach(OldCLIENTES oldCliente in oldUow.GetObjects(typeOf(OldCLIENTES)) 
{
	using(var uow = NewSessionFactory.GetNewUnitOfWork())
	{
	   Cliente cliente = new Cliente(uow);
	   cliente.NombreRazonSocial = clienteOld.NOMBRECLIENTE;
	   cliente.Nif = clienteOld.CIFNIF;
	   ...
	   ...
	   cliente.Save();
	   uow.CommitChanges();
	}
}

En el ejemplo anterior nos hemos conectado a la base de datos a migrar con el modelo antiguo, hemos obtenido todos los registros de la tabla 'CLIENTES', y hemos iterado asignando los valores del registro correspondiente al modelo antiguo con el nuevo y lo hemos registrado en la base de datos correspondiente con el nuevo modelo, es decir, hemos migrado los desde la antigua tabla CLIENTES a la nueva tabla "Cliente" del nuevo modelo de datos. Lógicamente hay mucho más trabajo relativo a la validación, transformación y tratamiento de errores, pero el ejemplo pone de manifiesto lo mucho que se simplifica el trabajo respecto a una migración clásica basada en sql.

Implementación del nuevo sistema

Sabes lo que te ha costado desarrollar una solución que con el paso de los años ha quedado obsoleta, y no quieres pasar por lo mismo. Hay un camino mucho más sensato. Es posible implementar una nueva solución basada en un framework que allane el camino. Nuestra propuesta está basada en el framework low-code XAF y el stack tecnológico de Microsoft .NET. No debes renunciar a los siguientes objetivos:

Cuenta con nosotros

Contacta para que analicemos cómo impulsar tu proyecto

Contacto

Solicita información sin compromiso. Contacta con nosotros

Háblanos a cerca de tu proyecto o requerimiento y te diremos con honestidad si podemos ayudarte y de qué forma.

contact

© 2024 - CoreOne - Privacidad