title: Why is there need for an explicit Dispose() method in asp.net MVC Controllers? Can anyone explain its intricacies? (asp.net specific)
body: <p>I know C# can manage resource pretty well with its garbage collector. But since it has that, what exactly is this for and why is it needed? </p>
  
  <p>Can anyone explain why <code>.Dispose()</code> is needed in asp.net mvc?</p>
  
  <p>Also, what does it mean to Dispose a connection? Why is it needed? Anyone know the intricacies of why it's important to dispose a database connection like in <code>db.Dispose()</code>? Is this EF-related, or SQL Server-related? I'm trying to understand exactly why.</p>
  
  <pre><code>protected override void Dispose(bool disposing)
  {
     db.Dispose();
     base.Dispose(disposing);
  }
  </code></pre>