¿Reemplazar estrategias inyectadas a través de un contenedor DI es un mecanismo de implementación válido?

Estoy creando una aplicación que usa un Contenedor DI para inyectar estrategias en él. Cuando se implementa, si requiero que esas estrategias cambien, ¿es una estrategia de implementación válida implementar un nuevo ensamblaje con las nuevas estrategias y modificar el file de configuration para instruir al contenedor DI sobre qué estrategia usar?

Mi preocupación es que el control de versiones de la aplicación en una máquina se vuelve un poco borroso, ya que diferentes dlls tendrían diferentes numbers de versión.

Esto es totalmente válido, este es incluso uno de los grandes beneficios de la inyección de Dependencia: permite el desarrollo modular y, por lo tanto, también la implementación: no tiene que implementar toda su aplicación, sino solo el ensamblaje modificado (con las nuevas estrategias). en tu caso).

En cuanto al problema de las versiones: es una práctica común que una aplicación consista en muchos modules de software (vulgo: ensambles), que tienen un número de versión diferente. Esa es la regla, no es algo excepcional. Por lo tanto, una list de numbers de versión para todas las DLL es crucial …

Thomas

Una de las mejores características de un DI es la aplicación modular y la fácil extensión. Lo cual creo que está haciendo correctamente al usar el file de configuration y dejar que el DI cargue sus estrategias.

Para el Problema Versioing, puede pensar en la Implementación de ClickOnce. Que puede networkingucir este problema de versión.