none
What are differences between .Net Framwork, .Net Standard and .Net Core?

    Question

  • Please help me to differentiate the differences between them with architectural diagram.
    Monday, December 26, 2016 11:58 AM

All replies

  • Hi Suresh Kumar Kaushik,

    >>What are differences between .Net Framwork, .Net Standard and .Net Core?

    Here is a good picture that Microsoft explains

    .NET Framework is the "full" or "traditional" flavor of .NET that's distributed with Windows. Use this when you are building a desktop Windows app or working with ASP.NET 4.5/4.6.

    .NET Core is cross-platform .NET that can run on Windows, Mac, and Linux. Use this when you want to build applications that can run on any platform, including ASP.NET Core (cross-platform web applications).

    Xamarin (Mono) is used for building mobile apps that can run on iOS, Android, or Windows Phone devices.

    .NET Standard solves the code sharing problem for .NET developers across all platforms by bringing all the APIs that you expect and love across the environments that you need: desktop applications, mobile apps & games, and cloud services:

    • .NET Standard is a set of APIs that all .NET platforms have to implement. This unifies the .NET platforms and prevents future fragmentation.
    • .NET Standard 2.0 will be implemented by .NET Framework, .NET Core, and Xamarin. For .NET Core, this will add many of the existing APIs that have been requested.
    • .NET Standard 2.0 includes a compatibility shim for .NET Framework binaries, significantly increasing the set of libraries that you can reference from your .NET Standard libraries.
    • .NET Standard will replace Portable Class Libraries (PCLs) as the tooling story for building multi-platform .NET libraries.
    • You can see the .NET Standard API definition in the dotnet/standard repo on GitHub.

     .NET Standard comes in:

    For more details, please refer to Immo Landwerth's blog

    Introducing .NET Standard

    Best regards,

    Kristin


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    • Edited by Kristin Xie Tuesday, December 27, 2016 2:19 AM
    • Proposed as answer by Rich_MS Tuesday, July 18, 2017 1:43 PM
    Tuesday, December 27, 2016 2:18 AM
  • Thanks, clearly understood.

    Wednesday, October 4, 2017 2:27 PM
  • A .Net Core Class Library is built upon the .Net Standard. If you want to implement a library that is portable to the .Net Framework, .Net Core and Xamarin, choose a.Net Standard Library

    .Net Core will ultimately implement .Net Standard 2 (as will Xamarin and .Net Framework)

    .Net Core, Xamarin and .Net Framework can, therefore, be identified as flavors of .Net Standard

    To future-proof your applications for code sharing and reuse, you would rather implement .Net Standard libraries.

    Microsoft also recommends that you use .NET Standard instead of Portable Class Libraries.

    To quote MSDN as an authoritative source, .Net Standard is intended to be One Library to Rule Them All. As pictures are worth a thousand words, the following will make things very clear:

    1. Your current application scenario (fragmented)

    Like most of us, you are probably in the situation below: (.Net Framework, Xamarin and now .Net Core flavoured applications)

    2. What the .Net Standard Library will enable for you (cross-framework compatibility) Implementing a .Net Standard Library allows code sharing across all these different flavours:

    For the impatient:

    .NET Standard solves the code sharing problem for .NET developers across all platforms by bringing all the APIs that you expect and love across the environments that you need: desktop applications, mobile apps & games, and cloud services:

    .NET Standard is a set of APIs that all .NET platforms have to implement. This unifies the .NET platforms and prevents future fragmentation.

    .NET Standard 2.0 will be implemented by .NET Framework, .NET Core, and Xamarin. For .NET Core, this will add many of the existing APIs that have been requested.

    .NET Standard 2.0 includes a compatibility shim for .NET Framework binaries, significantly increasing the set of libraries that you can reference from your .NET Standard libraries.

    .NET Standard will replace Portable Class Libraries (PCLs) as the tooling story for building multi-platform .NET libraries.

    For a table to help understand what the highest version of .NET Standard that you can target, based on which .NET platforms you intend to run on, head over here.

    Sources: MSDN: Introducing.Net Standard


    Friday, November 16, 2018 5:31 AM