title: What exactly is "managed" code?
body: <p>I've been writing C / C++ code for almost twenty years, and I know Perl, Python, PHP, and some Java as well, and I'm teaching myself JavaScript. But I've never done any .NET, VB, or C# stuff. What exactly does <strong>managed</strong> code mean?</p>
  
  <p>Wikipedia <a href="http://en.wikipedia.org/wiki/Managed_code" rel="noreferrer">describes it</a> simply as</p>
  
  <blockquote>
    <p>Code that executes under the management of a virtual machine</p>
  </blockquote>
  
  <p>and it specifically says that Java is (usually) managed code, so</p>
  
  <ul>
  <li><strong>why does the term only seem to apply to C# / .NET?</strong></li>
  <li><strong>Can you compile C# into a .exe that contains the VM as well, or do you have to package it up and give it to another .exe (a la java)?</strong></li>
  </ul>
  
  <p>In a similar vein,</p>
  
  <ul>
  <li><strong>is .NET a <em>language</em> or a <em>framework</em>, and what exactly does "framework" mean here?</strong></li>
  </ul>
  
  <p>OK, so that's more than one question, but for someone who's been in the industry as long as I have, I'm feeling rather N00B-ish right now...</p>