none
.NET Standard - Demystifying .NET Core and .NET Standard RRS feed

  • General discussion

  • As the newest members of the .NET family, there is a lot of confusion about the differences between .NET Framework, .NET Core, and .NET Standard. Immo Landwerth explains exactly what each of these are, and looks at when you should choose to use each one.

    Read this article in the September 2017 issue of MSDN Magazine

    Friday, September 1, 2017 5:45 PM
    Owner

All replies

  • Lucid article, thanks.
    Saturday, September 2, 2017 9:01 AM
  • https://msdn.microsoft.com/en-us/magazine/mt842506

    (...) Xamarin, which you can use for building mobile apps for iOS and Android, as well as macOS desktop applications (...)
    Xamarin has always supported the Windows platform, from Windows Phone and Windows 8 to currently the UWP. Why do you "forget" to mention Windows near the word Xamarin? If you visit the Xamarin website (https://www.xamarin.com/), you may read this: "XAMARIN Deliver native Android, iOS, and Windows apps, using existing skills, teams, and code." And obviously, you may develop Windows apps with Visual Studio and Xamarin, indeed. Even they are working on supporting WPF (https://visualstudiomagazine.com/articles/2017/08/01/xamarinforms3_0.aspx).

    Monday, September 4, 2017 8:08 AM
  • Hey guys.  Good article. Thanks.  However, as mentioned by Hinojosa, UWP is missing from the article.  Win8 Universal is also missing, but I suspect MSFT is looking to let Win8 Universal fade into history in preference to focusing on UWP.  Would somebody be so kind as to update the article and inject UWP into it?  Thanks!

    UWP can have pitfalls for developers and there are some other MSFT articles that might be cross-referenced.  In particular, UWP Debug builds want to use .NET Standard(?) (or is it Core?) because the tool chain is dramatically faster because it does a whole lot less optimization work.  However UWP Release needs to be .NET Core? (Native?) using the native tool chain before submission to the Store.  Clarification of which .NET is used for UWP Debug versus UWP Release, along with links to other MSFT articles that discussion the UWP Debug versus Release cautions would be greatly appreciated.


    -- kburgoyne

    Thursday, September 7, 2017 12:09 AM
  • dotnet new console -o hello cd hello dotnet run

    C:\Program Files\dotnet\sdk\1.0.0\Sdks\Microsoft.NET.Sdk\build\Microsoft.Package
    DependencyResolution.targets(154,5): error : Assets file 'C:\DVT\.NET\core\hello
    \obj\project.assets.json' not found. Run a NuGet package restore to generate thi
    s file. [C:\DVT\.NET\core\hello\hello.csproj]


    ftorres

    Thursday, September 7, 2017 12:34 AM
  • Hi Frederic,

    I had the same issue. 

    In the hello folder before the dotnet run command run dotnet restore.

    Johan

    Thursday, September 7, 2017 7:36 AM
  • Great article. Thanks.

    Orney

    Thursday, September 7, 2017 10:07 AM
  • Is the intention of .NET Standard to replace PCL's?  They seem very similar and I don't see many mentions of PCL's anymore.
    Thursday, September 7, 2017 11:55 AM
  • About:
    "... not all .NET Framework libraries will work on all .NET implementations. For example, they might use Windows Forms or WPF APIs. NuGet has no way of knowing that, so it gives you a warning message "
    - wouldn't be possible to verify the API/libraries that are used/called, at compile-time, using some kind of static analyzer, to make sure no calls are made to APIs that are not part of .NET Standard?
    (of course, that can't cover everything, like calls that are using reflection, but it would be a step forward..)
    Friday, September 8, 2017 8:32 AM
  • Not a good article. 
    Monday, September 11, 2017 2:20 PM
  • Hi Frederic Torres if you use .Net Core 2.0 the restore happens automatically when you do dotnet run
    • Edited by DTiago Wednesday, September 13, 2017 9:01 AM corrected username
    Wednesday, September 13, 2017 8:54 AM
  • This is wrong on OSX:

    dotnet new sln -n HelloWorld $ ls -fi *.csproj -rec | % { dotnet sln add $_.FullName }

    The ls -fi does not dp deep search.... 

    Thursday, September 14, 2017 7:40 AM
  •  I completely disagree with the "Lucid" tag, especially with regards to following the code example. This article should not have taken more than 10-15 minutes but it took me much more than that as I tried to make the code work. It is nice to find out answers yourself but getting stuck at each stage gets annoying pretty fast. The assumptions the author is making should be clearly updated on the page.


    Thursday, September 21, 2017 5:01 PM
  • I tend to agree with KoalaPandaSloth and Yuriy Geller. If .NET Standard is something that can be explained (or even visualized) simply to avoid confusion (which seems to me the goal of the article), then it should not have taken this much to describe or discuss it. The fact that there are still questions at the end of the article underscore the fact that this article did not succeed. 

    My simple-minded goal is to visualize it this way. That is assuming this is indeed the way to visualize it.

    Is this the correct visualization of .NET Standard?



    • Edited by Noli SJ Friday, September 22, 2017 2:03 AM
    Friday, September 22, 2017 1:41 AM
  • Anyway, here's my stab at how I would have edited the article if I were to review it.

    https://drive.google.com/file/d/0B35Pbx6TXSBtWWtEOHZjNHowTUE/view?usp=sharing



    • Edited by Noli SJ Saturday, September 23, 2017 7:44 AM
    Friday, September 22, 2017 2:52 AM
  • Have you upgraded .net core to 2.0 ?
    • Edited by AndThink Friday, September 22, 2017 10:23 AM Spelling mistake :(
    Friday, September 22, 2017 10:22 AM
  • It was pretty straightforward IMHO.

    Other than having to upgrade to .net core 2.0 from 1.1 it worked as prescribed. Zero issues. Pretty lucid really.

    Friday, September 22, 2017 10:24 AM
  • AndThink,

    Thanks for the feedback. My point of view when I commented on the article was more from a perspective of conciseness and clarity. From my perspective the sample code is actually unnecessary since the goal, at least the way I understood it, is to show the conceptual framework of the three implementation stack (.NET Framework, .NET Core, Xamarin) as compared against the specification (.NET Standard). Those should not have taken that much explanation if the article were structured a little bit tighter and edited to remove unnecessary repetitions. Again, that is my perspective.

    Saturday, September 23, 2017 7:43 AM