Asp.Net Core 2 – ASP.NET Core metapackage
As you might already be aware Asp.net core is a platform made of nuget packages. There are different packages targeting different version of frameworks available say .net 4.6, Asp.net core 1.0,1.1 and 2.0. We generally classify frameworks into 2 categories:
- Traditional framework e.g. .net 4.6 which includes .Net framework where most of things are predefined and need not be configured
- Package-based frameworks which are created entirely from scratch by choosing packages as and when required
Package based frameworks are not easy to use and required a different/higher level of understanding of all required packages and most of the .net developers are used to work with predefined templates provided by visual studio.
This problem has been work around by introducing the concept of metapackages which are a collection of commonly used packages required by apps.
In older versions of .net core tools (both project.json and csproj-based tools) by default specified both a framework and a metapackage but in later versions metapackages were tied to specific frameworks . Depending on targeted framework appropriate metapackage is already added to project. This feature is also called as implicit referencing of metapackages. For example