title: What are the platforms in the .NET Platform Standard?
body: <p>Currently trying to learn about the .NET Platform Standard I've found myself quite confused about the idea of "different platforms". </p>
  
  <p>I'll try to make my point clear. What I currently now about the .NET Framework is that .NET is roughly speaking made up of the CLR, the BCL and supporting software to boot the CLR and provide the interface between the virtual machine and the underlying OS.</p>
  
  <p>So when we code using the .NET Framework we indeed target some version of the framework because the types we are using from the BCL come with the framework and so depend on the specific version.</p>
  
  <p>Now, .NET Core is quite different as I understood. It is not all packed together like that. We have the CoreCLR which is a lightweight VM to run the IL, the CoreFX which are the libraries properly organized as NuGet packages and we had up to now the DNX/DNVM/DNU which provided the supporting stuff like booting the CoreCLR and interfacing with the OS.</p>
  
  <p>Anyway, despite if we install the framework on Windows 7, Windows 8 or Windows 10, we code <em>against the framework</em>.</p>
  
  <p>Now, on the .NET Platform Standard spec we see the following definition:</p>
  
  <blockquote>
    <p>Platform - e.g. .NET Framework 4.5, .NET Framework 4.6, Windows Phone 8.1, MonoTouch, UWP, etc.</p>
  </blockquote>
  
  <p>Also we see after that a list of platforms, which includes </p>
  
  <ul>
  <li>.NET Framework 2.0 - 4.6</li>
  <li>Windows 8</li>
  <li>Windows Phone 8.1</li>
  <li>Silverlight 4, 5</li>
  <li>DNX on .NET Framework 4.5.1 - 4.6</li>
  <li>DNX on .NET Core 5.0</li>
  </ul>
  
  <p>Now this confuses me completely. I always though: we code against the .NET Framework and the framework is the framework no matter what. </p>
  
  <p>But here we have these platforms which includes the .NET framework as just <em>one of many platforms</em>. We have for example Windows 8, but wait a minute, running .NET on Windows 8 is not just the same thing as running .NET on any other OS? Why it is separate from the .NET Framework 2.0 - 4.6 platform?</p>
  
  <p>We also have DNX as a specific platform. This makes me wonder: the platform is that "supporting stuff" related to booting the Virtual Machine and providing the interface with the OS? Or the platform includes the Virtual Machine?</p>
  
  <p>Anyway, as can be seen I'm quite confused. What are those platforms indeed and how this relates to my current understanding of the .NET Framework? Also, why .NET Framework 2.0 - 4.6 is described separetely? Isn't <em>everything</em> described here some version of .NET Framework unless .NET Core?</p>