@DevilKeeper Si no te van a pagar específicamente para que hagas una refactorización de ese calibre, yo no lo haría.
Si te lo han pedido, ya es otro tema.
Por lo que dices, necesitas utilizar una arquitectura DDD y microservicios, utilizando patrón CQRS.
Yo lo que haría, si tienes que repetir o compartir mucha lógica de aplicación, en encapsular en microservicios cada cosa que se repita más de 2 veces y se idéntico.
Por ejemplo nosotros tenemos el servicio de mails como algo común, no? Pues lo que hacemos es enviar un evento al microservicio de mail, con los parámetros que se requieren y el microservicio se encarga de esa parte.
Podrías hacer lo mismo para las entidades que quieras y no solo enviando eventos, si no peticiones directas como si de una API se tratara.
Web lo puedes hacer con .Net, con Python o con lo que quieras, pero para poder reutilizar código y tener 1 única entidad usuario unificada, necesitas un modo de comunicar una aplicación con otra. Lo más sencillo es una API, en el idioma que sea.
Puedes implementar servicios WCF en .NET para que la aplicación pueda recibir peticiones si prefieres no montar una API de 0.
Hay varias soluciones, pero yo lo que montaría, son microservicios y APIs. Más que nada para que todo sea modular y si en algún momento .NET se queda obsoleto (no creo que pase, se actualizarán versiones) puedes sustituir el servicio que quieras, por otro con el lenguaje que quieras, porque la forma de comunicarse, es con JSON.
Esto es super escalable, porque te permite utilizar servicios con diferentes lenguajes y por ejemplo para servicios con cálculos complejos que con un aprendizaje automático en Python, puede ser más eficiente que en .NET.
Contra más modular sea una aplicación, el mantenimiento también es más simple y requiere menos trabajo, porque puedes mantener la compatibilidad de las versiones de una forma simple, todo encapsulado en su microservicio.