BT

.NET Core - Terminology you Need to Know

by Jonathan Allen on Jan 20, 2016 |

A significant problem with the new versions of ASP.NET and Entity Framework is that they aren’t backwards compatible with previous versions. This isn’t just a matter of having slightly different behaviors or APIs; this is essentially a complete rewrite with a significant amount of functionality being dropped.

So the current thought is that calling the frameworks ASP.NET 5.0 and Entity Framework 7.0 gives the false illusion that they are somehow bigger than ASP.NET 4.5 and Entity Framework 6.0 when in fact they are smaller. To eliminate this problem, Microsoft is starting the numbering scheme.

The new versions will be called ASP.NET Core 1.0 and Entity Framework Core 1.0 respectively. Likewise, the new cross-platform version of .NET will be called .NET Core 1.0 to indicate that is isn’t a superset of .NET 4.6.

Likewise, ASP.NET MVC 6 will instead be called ASP.NET MVC Core 1.0. Thus we no longer have the version number mismatch between ASP.NET, MVC, and WebAPI.

So far so good, but when you start assembling the pieces, the picture becomes a little bit more complicated. ASP.NET 4.6 runs on top of .NET 4.6. However, ASP.NET Core 1.0 can run on both .NET 4.6 and .NET Core 1.0. Other terms you need to know:

  • Core FX: This is open source version of the .NET Base Class Library. Essentially this is your System.* classes. Core FX runs on both .NET 4.6 and .NET Core 1.0.
  • Core CLR: This is the open source, cross platform runtime. It based on Silverlight’s CLR, but with significant changes.
  • .NET Native: A runtime/framework and compiler stack that is used for ahead of time compilation of Universal Windows Platform applications.
  • Core RT: This is an ahead of time compilation technology that will be used to support cross platform command line applications. It uses some pieces of .NET Native but isn’t the same thing.
  • LLILC: Another (potentially) ahead of time compiler for .NET that is being developed and is based on the popular LLVM. https://github.com/dotnet/llilc
  • .NET Core CLI: The .NET Command Line Interface, which is billed as the “new command line experience” for building and deploying cross platform .NET applications.

Note: The abbreviation CLI also refers to Common Language Infrastructure, the name of the ECMA/ISO standard that includes the .NET type system, metadata, common language specification, and virtual execution system.

For more information, see this the video ASP.NET Community Hangout - January 19th, 2016 featuring Damian Edwards, Jon Galloway and Scott Hanselman.

Correction: An eariler version incrorrectly stated that .NET Native and Core RT were the same runtime. Our thanks to Matthew Whilden for the clarification.

Rate this Article

Relevance
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss
General Feedback
Bugs
Advertising
Editorial
Marketing
InfoQ.com and all content copyright © 2006-2016 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT