Obecně ve webové aplikaci chcete, aby byl stav co možná nejvíce rozsahem požadavku.
Pouze v případě optimalizací na velmi nízké úrovni je pravděpodobné, že narazíte na případ, kdy je vhodné vytvořit jednotlivé objekty (a i tehdy je šance, že takovou logiku ukládání do mezipaměti/sdílení vytáhnete do jiné třídy, která bude vtažena jako závislost na vašich dalších objektech [rozsah požadavku] a vytvořte to singletonový dalekohled). Pamatujte, že singleton v kontextu webové aplikace znamená více vláken používajících stejné objekty. To je zřídka dobrá zpráva.
Na stejném základě je přechodný rozsah nejpřímější výchozí (a proto to tak Ninject 2 dělá) – rozsah požadavku by měl do rovnice vstupovat pouze tehdy, když je třeba něco sdílet z důvodů výkonu atd. (nebo protože to je prostě kontext sdílení [jak je uvedeno v druhé odpovědi]).