.NET Core was announced at connect() sessions. Here are clarification regarding this move.


The challenges with the current architecture of the .NET Framework are:

  • Verticals : We have currently 14 stacks of .NET Framework (Windows Desktop, Windows Store, Windows Phone, …) and for good reasons. Managing files on Windows Desktop mean managing Windows Access Control List, which are not supported on Windows Phone => two different implementations of the API (Application Programming Interface).
  • Backward compatibility : Stack have lot of internal dependencies. Every single change require lot of non-regression testing, which explain the slow pace of release (5 major releases since 2002). “Those are all rare cases but when you have a customer base of 1.8 billion machines being 99.9% compatible can still mean that 1.8 million machines are affected."


.NET Core introduce the concept of Base Class Library (BCL), that will be deployed through NuGet, meaning that the package is part of the application => not a universal stack, not  a vertical stack, but an application level package. This allow developers to use early version (through GitHub), stable package (through NuGet) or Platfom Level package (through Distribution Releases). NuGet packaged will remain responsibilities of every ecosystem. The goal is to provide an XCOPY deployable stack. The pace expected for these NuGet Package is 4 per year (vs one every two year!).


The .NET Core platform is a new .NET stack, and do not replace the current vertical stack. It is ready for Open Source development, and through NuGet allow agile delivery.


An article, with full details is available on MSDN.