.Net framework does a lot for memory management, but it is still possible to write bad code that will use costly resources for a long time. I found this post amazingly good describing what is happening.