.NET 프로그램은 관리 환경(managed enviroment)에서 수행되기 때문에 C# 프로그램의 설계에 적지
않은 영향을 미친다. 관리 환경의 장점을 온전히 활용하려면 다른 수행 환경에서 익숙해진 생각의
틀을 .NET 공용 언어 런타임(Common Language Runtime, CLR)에 맞게 근본적으로 변경해야 한다.
객체의 생명주기를 이해하려면 .NET의 가비지 수집기(Garbage Collector, GC)의 동작 방식을 잘 알아
야 하고, 비관리 리소스를 어떻게 다룰지에 대해서도 정확히 이해해야 한다.