Quiero usar Ninject en mi aplicación de Windows y quiero saber si hay mejores prácticas que puedo hacer; estrategias para encontrar un equilibrio entre rendimiento y mantenimiento. El problema con la aplicación de Windows y la aplicación web es que en la aplicación web, hay un ámbito fácil de definir que es el contexto, pero con la aplicación de Windows, no tiene un ámbito fácil de usar formulario tras formulario.Ninject con la aplicación de Windows
Como ejemplo, tengo un servicio que consulta la base de datos. Este servicio tiene un constructor y recibió un UnitOfWork. Con Ninject, puedo crear una propiedad marcada para ser inyectada, pero si lo hago, cada vez que crearé este servicio, se creará una nueva conexión a la base de datos.
Por esta razón, debo crear mis servicios manualmente para controlar la cantidad de conexiones creadas y no se puede usar ningún inyector de dependencia.
He encontrado que puede llamar al método Inject después de haber creado el servicio para inyectar dependencias pero estoy seguro de que puedo usar una mejor estrategia.
+1 y enlace relacionado http://kohari.org/2009/03/06/cache-and-collect-lifecycle-management-in-ninject-20/ es una lectura obligatoria para entender los alcances de Ninject 2.0 –
Después de leer artículos vinculados, ahora entiendo mejor cómo puedo controlar la vida útil de los objetos dependientes inyectados. Esto es bueno, pero sin una gran arquitectura, puede ser difícil de mantener. Parece que muy poca gente en la web da trucos acerca de cómo diseñar una buena aplicación de Windows y cómo iniciar el alcance del objeto en winform siempre teniendo en cuenta que muchas otras formas pueden funcionar juntas. Utilizo LightSpeed of Mindscape y la memoria caché de uso de UnitOfWork y cuando tiene muchas formas de inversión que funcionan juntas, los datos a menudo deben compartirse. Cualquier cuerpo tiene una muestra concreta del proyecto? – Samuel
@Samuel, para ser sincero, no he visto mucho en el camino de las aplicaciones de muestras de concreto que muestran Windows Forms con ORM y UnitOfWork empleadas en una aplicación bien diseñada. Ciertamente me gustaría verlos yo mismo si pudiera encontrar alguno. –