|
|
|
|
|
by BatteryMountain
188 days ago
|
|
In C#'s dependency injector you basically have to choose from 3 lifetimes for a class/service: scoped, transient or singletons. Scoped & transient lifetimes along with the new GC will make the runtime much leaner. Some application are singleton heavy or misuse the MemoryCache (or wrap it as a singleton... facepalm) - these will still mess the GC situation up. If you build web/api project it pays dividends to educate yourself on the 3 life times, how the GC works, how async/await/cancellation tokens/disposables work, how MemoryCache work (and when to go out-of-process / other machine aka Redis), how the built-in mechanisms in aspnet works to cache html outputs etc. A lot of developers just wing it and then wonder why they have memory issues. And for for the dinosaurs: yes we can use the dependency injector in Windows Form, WPF, Console Apps and so on - those packages aren't limited to web projects alone. |
|