title: why does visual studio 2012 automatically use nuget packages in an mvc project?
body: <p>I know Visual Studio 2010 a lot, and when I started using Visual Studio 2012, I noticed that it automatically uses Nuget, which I haven't used before, I only know that it's a package manager that fetches libraries from the internet. For example, when I create an empty ASP.NET MVC 4 project, the project will contain a packages.config file with 11 entries, and there will be a packages directory under the solution folder with 11 libraries.</p>
  
  <p>Here are the things that I don't get.</p>
  
  <p>The first may be a rhetorical question, but why? Even an empty project contains 10+ MB of packages, even if I don't use any, it seems very silly.</p>
  
  <p>There is, for example, a System.Web.Mvc.dll under packages. But it is also in my GAC, it's an integral part of the .NET framework I think. Both are the exact same version (4.0.20710.0), but the files are different. Why does my project use this DLL from Nuget and not .NET/GAC? Why are the files different? If I deploy my project to an IIS server, there will also be a copy of this DLL, so having these DLL's as part of the project seems completely useless. Not to mention that it makes my deployment package bloated.</p>
  
  <p>By the way bloat. There is a reference to Newtonsoft.Json.4.5.11, which is 8+ MB in itself, because it contains .NET 2, 3.5, 4, Silverlight and whatever versions of the same thing, 9 in total. When I create my project, I specify that I want to use .NET 4.5, so I'm very confused why all that stuff is on my hard drive at all.</p>
  
  <p>Finally, how is this Nuget thing related to my project or solution? I cannot see the packages folder in VS, I cannot see any mention of it in the .sln file. The project does contain the file packages.config, but it's not related to the build process in any way, it seems like dead weight. I ask this because if there was some reference to Nuget, I could easily remove it, but there is no reference, so I feel confused.</p>