This chapter was focused on memory management. We learned some best practices and the actual underlying process of how memory management is done in .NET. We explored the debugging tool, which can be used by developers to investigate an object's memory allocation on the heap. We also learned about memory fragmentation, finalizers, and how to implement a dispose pattern to clean up resources by implementing the IDisposable interface.
In the next chapter, we will be creating an application following a microservices architecture. A microservice architecture is a highly performant and scalable architecture that helps the application to scale out easily. The following chapter provides you with a complete understanding of how an application can be developed following the best practices and principles.