Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Object Lifetime in C#: the Garbage Collector, IDisposable and using
When using cleans up, the garbage collector's generations and limits, implementing IDisposable correctly, why finalizers are rarely written, and the dispose pattern.
Partial, Nested Types, Anonymous Types and Tuples in C#
Equality and limits of anonymous types, returning several values with tuples, why tuple names exist only for the compiler, partial classes and methods, nested types, and when to pick which.
A Few Design Patterns in C#: Factory, Strategy and Observer
What design patterns are for, static factory methods and a switch-based factory, strategy with Func and interfaces, observer with events, isolating a broken subscriber, and subscription leaks.
An Object-Oriented Mini Project in C#: the OOP Bookstore
A small bookstore built from every piece of the series: record struct value objects, inheritance, indexers, stock notifications with events, checkout with composition, strategy and factory, a disposable log, and a bridge to the collections series.