sql >> Base de Datos >  >> NoSQL >> MongoDB

Cuándo usar Singleton vs Transient vs Request usando Ninject y MongoDB

En general, en una aplicación web, desea que el estado sea el alcance de la solicitud tanto como sea posible.

Solo en el caso de optimizaciones de muy bajo nivel, es probable que se encuentre con un caso en el que sea apropiado crear objetos únicos (y las posibilidades incluso entonces son que extraerá dicha lógica de almacenamiento en caché/compartir en otra clase que se incorpore como una dependencia de sus otros objetos [request scope] y haga eso alcance único). Recuerde que un singleton en el contexto de una aplicación web significa varios subprocesos que utilizan los mismos objetos. Rara vez son buenas noticias.

Sobre la misma base, el alcance transitorio es el valor predeterminado más directo (y es por eso que Ninject 2 lo hace así):el alcance de la solicitud solo debe entrar en la ecuación cuando es necesario compartir algo por razones de rendimiento, etc. (o porque ese es simplemente el contexto del intercambio [como se menciona en la otra respuesta]).