From 8dacdc8ee139fc725b05b86302c610cd887ef446 Mon Sep 17 00:00:00 2001 From: rick-anderson Date: Mon, 23 Apr 2018 17:48:49 -1000 Subject: [PATCH 01/11] Microsoft.AspNetCore.App metapackage --- aspnetcore/fundamentals/metapackage-app.md | 57 ++++++++++++++++++++++ aspnetcore/fundamentals/metapackage.md | 31 +++++++++++- 2 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 aspnetcore/fundamentals/metapackage-app.md diff --git a/aspnetcore/fundamentals/metapackage-app.md b/aspnetcore/fundamentals/metapackage-app.md new file mode 100644 index 000000000000..77d5d99f9705 --- /dev/null +++ b/aspnetcore/fundamentals/metapackage-app.md @@ -0,0 +1,57 @@ +--- +title: Microsoft.AspNetCore.App metapackage for ASP.NET Core 2.x and later +author: Rick-Anderson +description: The Microsoft.AspNetCore.App metapackage includes all supported ASP.NET Core and Entity Framework Core packages, along with their dependencies. +manager: wpickett +monikerRange: '>= aspnetcore-2.1' +ms.author: riande +ms.date: 09/20/2017 +ms.prod: asp.net-core +ms.technology: aspnet +ms.topic: article +uid: fundamentals/metapackage-all +--- + +# Microsoft.AspNetCore.App metapackage for ASP.NET Core 2.1 + +This feature requires ASP.NET Core 2.1 and later targeting .NET Core 2.1 and later. + +The [Microsoft.AspNetCore.App](https://www.nuget.org/packages/Microsoft.AspNetCore.App) metapackage for ASP.NET Core includes: + +* All supported packages by the ASP.NET Core team. +* All supported packages by the Entity Framework Core. +* Internal dependencies used by ASP.NET Core and Entity Framework Core. +* 3rd-party dependencies used by ASP.NET Core and Entity Framework Core deemed necessary to ensure the major frameworks features function. + +All the features of ASP.NET Core 2.1 and later and Entity Framework Core 2.1 and later are included in the `Microsoft.AspNetCore.App` package. The default project templates targeting ASP.NET Core 2.1 and later use this package. We recommend applications targeting ASP.NET Core 2.1+ and Entity Framework Core 2.1+ use the `Microsoft.AspNetCore.App` package. + +The version number of the `Microsoft.AspNetCore.App` metapackage represents the ASP.NET Core version and Entity Framework Core version (aligned with the .NET Core version). + +Using the the `Microsoft.AspNetCore.App` metapackage provides version restrictions that protect your app: + +* Other packages added to your app cannot change the version of packages included in `Microsoft.AspNetCore.App`. +* Version consistency ensures a reliable experience. `Microsoft.AspNetCore.App` was designed to prevent untested version combinations of related bits being used together in the same app. + +Applications that use the `Microsoft.AspNetCore.App` metapackage automatically take advantage of the .NET Core shared framework. When you use the `Microsoft.AspNetCore.App` metapackage, **no** assets from the referenced ASP.NET Core NuGet packages are deployed with the application — the .NET Core shared framework contains these assets. The assets in the shared framework are precompiled to improve application startup time. For more information, see "shared framework" in [.NET Core distribution packaging](/dotnet/core/build/distribution-packaging). + +You can use the package trimming process to remove packages that you don't use. Trimmed packages are excluded in published application output. + +The following *.csproj* file references the `Microsoft.AspNetCore.App` metapackage for ASP.NET Core: + +```xml + + + + netcoreapp2.1 + + + + + + + + + +``` + +If your application previously used `Migrating from Microsoft.AspNetCore.All`, see [Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App](xref:fundamentals/metapackage#migrate). \ No newline at end of file diff --git a/aspnetcore/fundamentals/metapackage.md b/aspnetcore/fundamentals/metapackage.md index 213a224f0127..f292c614ca11 100644 --- a/aspnetcore/fundamentals/metapackage.md +++ b/aspnetcore/fundamentals/metapackage.md @@ -1,5 +1,5 @@ --- -title: Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.x and later +title: Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0 author: Rick-Anderson description: The Microsoft.AspNetCore.All metapackage includes all supported ASP.NET Core and Entity Framework Core packages, along with their dependencies. manager: wpickett @@ -12,7 +12,10 @@ ms.topic: article uid: fundamentals/metapackage --- -# Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.x +# Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0 + +> [!NOTE] +> We recommend applications targeting ASP.NET Core 2.1 and later use the Microsoft.AspNetCore.App](xref:fundamentals/metapackage-all) rather than this package. See [Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App](#migrate) in this article. This feature requires ASP.NET Core 2.x targeting .NET Core 2.x. @@ -33,3 +36,27 @@ You can use the package trimming process to remove packages that you don't use. The following *.csproj* file references the `Microsoft.AspNetCore.All` metapackage for ASP.NET Core: [!code-xml[](../mvc/views/view-compilation/sample/MvcRazorCompileOnPublish2.csproj?highlight=9)] + + +## Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App + +The following packages are direct dependencies of `Microsoft.AspNetCore.All` but not the `Microsoft.AspNetCore.App` package. + +* Microsoft.Data.Sqlite +* Microsoft.Data.Sqlite.Core +* Microsoft.EntityFrameworkCore.Sqlite +* Microsoft.EntityFrameworkCore.Sqlite.Core +* Microsoft.Extensions.Caching.Redis +* Microsoft.AspNetCore.DataProtection.AzureStorage +* Microsoft.Extensions.Configuration.AzureKeyVault +* Microsoft.AspNetCore.DataProtection.AzureKeyVault +* Microsoft.AspNetCore.Identity.Service.AzureKeyVault +* Microsoft.AspNetCore.AzureKeyVault.HostingStartup +* Microsoft.AspNetCore.ApplicationInsights.HostingStartup + +To move from `Microsoft.AspNetCore.All` to `Microsoft.AspNetCore.App`, if your app uses any APIs from the above packages, or packages brought in by those packages, add references to those packages in your project. + +Any dependencies of the preceding packages that otherwise aren't dependencies of `Microsoft.AspNetCore.App` are not included implicitly. For example: + +* `StackExchange.Redis` as a dependency of `Microsoft.Extensions.Caching.Redis` +* `Microsoft.ApplicationInsights` as a dependency of `Microsoft.AspNetCore.ApplicationInsights.HostingStartup` \ No newline at end of file From 4de23eba13953b0908430da390f6e69d409f74e4 Mon Sep 17 00:00:00 2001 From: rick-anderson Date: Mon, 23 Apr 2018 18:08:15 -1000 Subject: [PATCH 02/11] work --- aspnetcore/fundamentals/metapackage-app.md | 2 +- aspnetcore/fundamentals/metapackage.md | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/aspnetcore/fundamentals/metapackage-app.md b/aspnetcore/fundamentals/metapackage-app.md index 77d5d99f9705..9a82b7039b91 100644 --- a/aspnetcore/fundamentals/metapackage-app.md +++ b/aspnetcore/fundamentals/metapackage-app.md @@ -34,7 +34,7 @@ Using the the `Microsoft.AspNetCore.App` metapackage provides version restrictio Applications that use the `Microsoft.AspNetCore.App` metapackage automatically take advantage of the .NET Core shared framework. When you use the `Microsoft.AspNetCore.App` metapackage, **no** assets from the referenced ASP.NET Core NuGet packages are deployed with the application — the .NET Core shared framework contains these assets. The assets in the shared framework are precompiled to improve application startup time. For more information, see "shared framework" in [.NET Core distribution packaging](/dotnet/core/build/distribution-packaging). -You can use the package trimming process to remove packages that you don't use. Trimmed packages are excluded in published application output. +Packages in the .NET Core shared framework are excluded in published application output. The following *.csproj* file references the `Microsoft.AspNetCore.App` metapackage for ASP.NET Core: diff --git a/aspnetcore/fundamentals/metapackage.md b/aspnetcore/fundamentals/metapackage.md index f292c614ca11..b804617a9394 100644 --- a/aspnetcore/fundamentals/metapackage.md +++ b/aspnetcore/fundamentals/metapackage.md @@ -3,7 +3,7 @@ title: Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0 author: Rick-Anderson description: The Microsoft.AspNetCore.All metapackage includes all supported ASP.NET Core and Entity Framework Core packages, along with their dependencies. manager: wpickett -monikerRange: '= aspnetcore-2.0' +monikerRange: '>= aspnetcore-2.0' ms.author: riande ms.date: 09/20/2017 ms.prod: asp.net-core @@ -37,6 +37,14 @@ The following *.csproj* file references the `Microsoft.AspNetCore.All` metapacka [!code-xml[](../mvc/views/view-compilation/sample/MvcRazorCompileOnPublish2.csproj?highlight=9)] +::: moniker range=">= aspnetcore-2.1" +# Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.1 and later version range locking + +`Microsoft.AspNetCore.All` 2.1 and later specifies package dependency ranges. The package dependency ranges ensure that only the excact version specified for each dependency is allowed. Any other dependency that attempts to lift a version for a component beyond what is specified in the meta-package will result in a NuGet warning, which the Microsoft.NET.Sdk will elevate to an error by default. + +::: moniker-end + + ## Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App From 2eb4ed253b190551d7dd2e857c4eeffdd3ec4455 Mon Sep 17 00:00:00 2001 From: rick-anderson Date: Mon, 23 Apr 2018 18:17:35 -1000 Subject: [PATCH 03/11] work --- aspnetcore/fundamentals/metapackage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aspnetcore/fundamentals/metapackage.md b/aspnetcore/fundamentals/metapackage.md index b804617a9394..cf3e968bf466 100644 --- a/aspnetcore/fundamentals/metapackage.md +++ b/aspnetcore/fundamentals/metapackage.md @@ -15,7 +15,7 @@ uid: fundamentals/metapackage # Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0 > [!NOTE] -> We recommend applications targeting ASP.NET Core 2.1 and later use the Microsoft.AspNetCore.App](xref:fundamentals/metapackage-all) rather than this package. See [Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App](#migrate) in this article. +> We recommend applications targeting ASP.NET Core 2.1 and later use the [Microsoft.AspNetCore.App](xref:fundamentals/metapackage-all) rather than this package. See [Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App](#migrate) in this article. This feature requires ASP.NET Core 2.x targeting .NET Core 2.x. From 352f1e08a13026da70e54b0ec40ff31490cd399a Mon Sep 17 00:00:00 2001 From: rick-anderson Date: Wed, 9 May 2018 17:37:03 -1000 Subject: [PATCH 04/11] version number --- aspnetcore/fundamentals/metapackage-app.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/aspnetcore/fundamentals/metapackage-app.md b/aspnetcore/fundamentals/metapackage-app.md index 9a82b7039b91..33ca9c708e3e 100644 --- a/aspnetcore/fundamentals/metapackage-app.md +++ b/aspnetcore/fundamentals/metapackage-app.md @@ -47,11 +47,13 @@ The following *.csproj* file references the `Microsoft.AspNetCore.App` metapacka - + ``` +The preceding markup doesn't specify a version number for the `Microsoft.AspNetCore.App` NuGet package. The ASP.NET Core 2.1+ templates generate this markup without a version number. Not specifying a version is convent early in development when you want the latest version. Most teams will add a version number when deploying the app to ensure that development, test, and production are all using the same version. With a fixed version number, updates to the host will not cause the app to use a newer version of the NuGet package. + If your application previously used `Migrating from Microsoft.AspNetCore.All`, see [Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App](xref:fundamentals/metapackage#migrate). \ No newline at end of file From b6a6e753f8e3f09b8884a5b792494ffeb8f2152e Mon Sep 17 00:00:00 2001 From: rick-anderson Date: Mon, 14 May 2018 08:23:42 -1000 Subject: [PATCH 05/11] work --- aspnetcore/fundamentals/metapackage-app.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/aspnetcore/fundamentals/metapackage-app.md b/aspnetcore/fundamentals/metapackage-app.md index 33ca9c708e3e..ba2bd1b0a287 100644 --- a/aspnetcore/fundamentals/metapackage-app.md +++ b/aspnetcore/fundamentals/metapackage-app.md @@ -9,7 +9,7 @@ ms.date: 09/20/2017 ms.prod: asp.net-core ms.technology: aspnet ms.topic: article -uid: fundamentals/metapackage-all +uid: fundamentals/metapackage-app --- # Microsoft.AspNetCore.App metapackage for ASP.NET Core 2.1 @@ -45,7 +45,6 @@ The following *.csproj* file references the `Microsoft.AspNetCore.App` metapacka netcoreapp2.1 - From d91b3e5d410db96b558d2ab11749d6823d7cd35b Mon Sep 17 00:00:00 2001 From: rick-anderson Date: Mon, 14 May 2018 11:05:19 -1000 Subject: [PATCH 06/11] react to feedback --- aspnetcore/fundamentals/metapackage-app.md | 14 +++++--- aspnetcore/fundamentals/metapackage.md | 40 ++++++++++------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/aspnetcore/fundamentals/metapackage-app.md b/aspnetcore/fundamentals/metapackage-app.md index ba2bd1b0a287..c144a5862c5c 100644 --- a/aspnetcore/fundamentals/metapackage-app.md +++ b/aspnetcore/fundamentals/metapackage-app.md @@ -1,7 +1,7 @@ --- -title: Microsoft.AspNetCore.App metapackage for ASP.NET Core 2.x and later +title: Microsoft.AspNetCore.App metapackage for ASP.NET Core 2.1 and later author: Rick-Anderson -description: The Microsoft.AspNetCore.App metapackage includes all supported ASP.NET Core and Entity Framework Core packages, along with their dependencies. +description: The Microsoft.AspNetCore.App metapackage includes all supported ASP.NET Core and Entity Framework Core packages. manager: wpickett monikerRange: '>= aspnetcore-2.1' ms.author: riande @@ -25,14 +25,14 @@ The [Microsoft.AspNetCore.App](https://www.nuget.org/packages/Microsoft.AspNetCo All the features of ASP.NET Core 2.1 and later and Entity Framework Core 2.1 and later are included in the `Microsoft.AspNetCore.App` package. The default project templates targeting ASP.NET Core 2.1 and later use this package. We recommend applications targeting ASP.NET Core 2.1+ and Entity Framework Core 2.1+ use the `Microsoft.AspNetCore.App` package. -The version number of the `Microsoft.AspNetCore.App` metapackage represents the ASP.NET Core version and Entity Framework Core version (aligned with the .NET Core version). +The version number of the `Microsoft.AspNetCore.App` metapackage represents the ASP.NET Core version and Entity Framework Core version. The ASP.NET Core version is currently aligned with the .NET Core version, and we hope to continue version alignment in the future. Using the the `Microsoft.AspNetCore.App` metapackage provides version restrictions that protect your app: * Other packages added to your app cannot change the version of packages included in `Microsoft.AspNetCore.App`. * Version consistency ensures a reliable experience. `Microsoft.AspNetCore.App` was designed to prevent untested version combinations of related bits being used together in the same app. -Applications that use the `Microsoft.AspNetCore.App` metapackage automatically take advantage of the .NET Core shared framework. When you use the `Microsoft.AspNetCore.App` metapackage, **no** assets from the referenced ASP.NET Core NuGet packages are deployed with the application — the .NET Core shared framework contains these assets. The assets in the shared framework are precompiled to improve application startup time. For more information, see "shared framework" in [.NET Core distribution packaging](/dotnet/core/build/distribution-packaging). +Applications that use the `Microsoft.AspNetCore.App` metapackage automatically take advantage of the ASP.NET Core shared framework. When you use the `Microsoft.AspNetCore.App` metapackage, **no** assets from the referenced ASP.NET Core NuGet packages are deployed with the application — the ASP.NET Core shared framework contains these assets. The assets in the shared framework are precompiled to improve application startup time. For more information, see "shared framework" in [.NET Core distribution packaging](/dotnet/core/build/distribution-packaging). Packages in the .NET Core shared framework are excluded in published application output. @@ -53,6 +53,10 @@ The following *.csproj* file references the `Microsoft.AspNetCore.App` metapacka ``` -The preceding markup doesn't specify a version number for the `Microsoft.AspNetCore.App` NuGet package. The ASP.NET Core 2.1+ templates generate this markup without a version number. Not specifying a version is convent early in development when you want the latest version. Most teams will add a version number when deploying the app to ensure that development, test, and production are all using the same version. With a fixed version number, updates to the host will not cause the app to use a newer version of the NuGet package. +The preceding markup doesn't specify a version number for the `Microsoft.AspNetCore.App` NuGet package. The ASP.NET Core 2.1+ templates generate this markup without a version number. When the version is not specified, the version used depends on the package source. On servers and in Azure, the package source is generally the ASP.NET Core shared framework. On development machines, it's generally `https://api.nuget.org/v3/index.json`. + +We recommend not specifying the version number. By not specifying the version, the shared framework roll forward mechanism will run the app on the latest version of the installed shared framework. To guarantee the same version is used in development, test, and production, ensure the same version of the shared framework is installed in all environments. + +Developers can choose to specify a version number to guarantee the same version is used in development, test, and production. With a fixed version number, updates to the hosts shared framework will not cause the app to use a newer version of the `Microsoft.AspNetCore.App` package. If your application previously used `Migrating from Microsoft.AspNetCore.All`, see [Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App](xref:fundamentals/metapackage#migrate). \ No newline at end of file diff --git a/aspnetcore/fundamentals/metapackage.md b/aspnetcore/fundamentals/metapackage.md index cf3e968bf466..5eac14f338e1 100644 --- a/aspnetcore/fundamentals/metapackage.md +++ b/aspnetcore/fundamentals/metapackage.md @@ -1,5 +1,5 @@ --- -title: Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0 +title: Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0 and later author: Rick-Anderson description: The Microsoft.AspNetCore.All metapackage includes all supported ASP.NET Core and Entity Framework Core packages, along with their dependencies. manager: wpickett @@ -37,30 +37,26 @@ The following *.csproj* file references the `Microsoft.AspNetCore.All` metapacka [!code-xml[](../mvc/views/view-compilation/sample/MvcRazorCompileOnPublish2.csproj?highlight=9)] -::: moniker range=">= aspnetcore-2.1" -# Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.1 and later version range locking - -`Microsoft.AspNetCore.All` 2.1 and later specifies package dependency ranges. The package dependency ranges ensure that only the excact version specified for each dependency is allowed. Any other dependency that attempts to lift a version for a component beyond what is specified in the meta-package will result in a NuGet warning, which the Microsoft.NET.Sdk will elevate to an error by default. - -::: moniker-end - - ## Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App -The following packages are direct dependencies of `Microsoft.AspNetCore.All` but not the `Microsoft.AspNetCore.App` package. - -* Microsoft.Data.Sqlite -* Microsoft.Data.Sqlite.Core -* Microsoft.EntityFrameworkCore.Sqlite -* Microsoft.EntityFrameworkCore.Sqlite.Core -* Microsoft.Extensions.Caching.Redis -* Microsoft.AspNetCore.DataProtection.AzureStorage -* Microsoft.Extensions.Configuration.AzureKeyVault -* Microsoft.AspNetCore.DataProtection.AzureKeyVault -* Microsoft.AspNetCore.Identity.Service.AzureKeyVault -* Microsoft.AspNetCore.AzureKeyVault.HostingStartup -* Microsoft.AspNetCore.ApplicationInsights.HostingStartup +The following packages included in `Microsoft.AspNetCore.All` but not the `Microsoft.AspNetCore.App` package. + +* `Microsoft.AspNetCore.ApplicationInsights.HostingStartup` +* `Microsoft.AspNetCore.AzureAppServices.HostingStartup` +* `Microsoft.AspNetCore.AzureAppServicesIntegration` +* `Microsoft.AspNetCore.DataProtection.AzureKeyVault` +* `Microsoft.AspNetCore.DataProtection.AzureStorage` +* `Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv` +* `Microsoft.AspNetCore.SignalR.Redis` +* `Microsoft.Data.Sqlite` +* `Microsoft.Data.Sqlite.Core` +* `Microsoft.EntityFrameworkCore.Sqlite` +* `Microsoft.EntityFrameworkCore.Sqlite.Core` +* `Microsoft.Extensions.Caching.Redis` +* `Microsoft.Extensions.Configuration.AzureKeyVault` +* `Microsoft.Extensions.Logging.AzureAppServices` +* `Microsoft.VisualStudio.Web.BrowserLink` To move from `Microsoft.AspNetCore.All` to `Microsoft.AspNetCore.App`, if your app uses any APIs from the above packages, or packages brought in by those packages, add references to those packages in your project. From 958bba04360e00d18009c2a8b194db76126ed9ad Mon Sep 17 00:00:00 2001 From: rick-anderson Date: Mon, 14 May 2018 11:08:47 -1000 Subject: [PATCH 07/11] react to feedback --- aspnetcore/fundamentals/metapackage-app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aspnetcore/fundamentals/metapackage-app.md b/aspnetcore/fundamentals/metapackage-app.md index c144a5862c5c..99cf3695b128 100644 --- a/aspnetcore/fundamentals/metapackage-app.md +++ b/aspnetcore/fundamentals/metapackage-app.md @@ -18,7 +18,7 @@ This feature requires ASP.NET Core 2.1 and later targeting .NET Core 2.1 and lat The [Microsoft.AspNetCore.App](https://www.nuget.org/packages/Microsoft.AspNetCore.App) metapackage for ASP.NET Core includes: -* All supported packages by the ASP.NET Core team. +* All supported packages by the ASP.NET Core team except a few that that contain third party dependencies like Redis. * All supported packages by the Entity Framework Core. * Internal dependencies used by ASP.NET Core and Entity Framework Core. * 3rd-party dependencies used by ASP.NET Core and Entity Framework Core deemed necessary to ensure the major frameworks features function. From 8f25b6573b428a3fff4c9b24ff83fcf3c2fd1ea8 Mon Sep 17 00:00:00 2001 From: rick-anderson Date: Mon, 14 May 2018 11:12:33 -1000 Subject: [PATCH 08/11] react to feedback --- aspnetcore/fundamentals/metapackage-app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aspnetcore/fundamentals/metapackage-app.md b/aspnetcore/fundamentals/metapackage-app.md index 99cf3695b128..5bde8def560b 100644 --- a/aspnetcore/fundamentals/metapackage-app.md +++ b/aspnetcore/fundamentals/metapackage-app.md @@ -18,7 +18,7 @@ This feature requires ASP.NET Core 2.1 and later targeting .NET Core 2.1 and lat The [Microsoft.AspNetCore.App](https://www.nuget.org/packages/Microsoft.AspNetCore.App) metapackage for ASP.NET Core includes: -* All supported packages by the ASP.NET Core team except a few that that contain third party dependencies like Redis. +* All supported packages by the ASP.NET Core team except those that contain third party dependencies. * All supported packages by the Entity Framework Core. * Internal dependencies used by ASP.NET Core and Entity Framework Core. * 3rd-party dependencies used by ASP.NET Core and Entity Framework Core deemed necessary to ensure the major frameworks features function. From b94502a655f2cd1b641a4a0fd5ae4a7f21a8394f Mon Sep 17 00:00:00 2001 From: rick-anderson Date: Mon, 14 May 2018 18:12:11 -1000 Subject: [PATCH 09/11] react to feedback --- aspnetcore/fundamentals/metapackage-app.md | 42 ++++++++++++++-------- aspnetcore/fundamentals/metapackage.md | 4 +-- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/aspnetcore/fundamentals/metapackage-app.md b/aspnetcore/fundamentals/metapackage-app.md index 5bde8def560b..c45cd820fd47 100644 --- a/aspnetcore/fundamentals/metapackage-app.md +++ b/aspnetcore/fundamentals/metapackage-app.md @@ -16,27 +16,32 @@ uid: fundamentals/metapackage-app This feature requires ASP.NET Core 2.1 and later targeting .NET Core 2.1 and later. -The [Microsoft.AspNetCore.App](https://www.nuget.org/packages/Microsoft.AspNetCore.App) metapackage for ASP.NET Core includes: + -* All supported packages by the ASP.NET Core team except those that contain third party dependencies. -* All supported packages by the Entity Framework Core. -* Internal dependencies used by ASP.NET Core and Entity Framework Core. -* 3rd-party dependencies used by ASP.NET Core and Entity Framework Core deemed necessary to ensure the major frameworks features function. +The [Microsoft.AspNetCore.App](https://www.nuget.org/packages/Microsoft.AspNetCore.App) metapackage for ASP.NET Core: -All the features of ASP.NET Core 2.1 and later and Entity Framework Core 2.1 and later are included in the `Microsoft.AspNetCore.App` package. The default project templates targeting ASP.NET Core 2.1 and later use this package. We recommend applications targeting ASP.NET Core 2.1+ and Entity Framework Core 2.1+ use the `Microsoft.AspNetCore.App` package. +* Does not include third-party dependencies except for [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/), [Remotion.Linq, and [IX-Async](https://www.nuget.org/packages/System.Interactive.Async/). These 3rd-party dependencies are deemed necessary to ensure the major frameworks features function. +* Includes all supported packages by the ASP.NET Core team except those that contain third-party dependencies (other than those previously mentioned). +* All supported packages by the Entity Framework Core team except those that contain third-party dependencies (other than those previously mentioned). + +All the features of ASP.NET Core 2.1 and later and Entity Framework Core 2.1 and later are included in the `Microsoft.AspNetCore.App` package. The default project templates targeting ASP.NET Core 2.1 and later use this package. We recommend applications targeting ASP.NET Core 2.1 and later and Entity Framework Core 2.1 and later use the `Microsoft.AspNetCore.App` package. -The version number of the `Microsoft.AspNetCore.App` metapackage represents the ASP.NET Core version and Entity Framework Core version. The ASP.NET Core version is currently aligned with the .NET Core version, and we hope to continue version alignment in the future. +The version number of the `Microsoft.AspNetCore.App` metapackage represents the ASP.NET Core version and Entity Framework Core version. -Using the the `Microsoft.AspNetCore.App` metapackage provides version restrictions that protect your app: +Using the `Microsoft.AspNetCore.App` metapackage provides version restrictions that protect your app: +* If a package is included that has a transitive (not direct) dependency on a package in `Microsoft.AspNetCore.App`, and those version numbers differ, NuGet will generate an error. * Other packages added to your app cannot change the version of packages included in `Microsoft.AspNetCore.App`. * Version consistency ensures a reliable experience. `Microsoft.AspNetCore.App` was designed to prevent untested version combinations of related bits being used together in the same app. Applications that use the `Microsoft.AspNetCore.App` metapackage automatically take advantage of the ASP.NET Core shared framework. When you use the `Microsoft.AspNetCore.App` metapackage, **no** assets from the referenced ASP.NET Core NuGet packages are deployed with the application — the ASP.NET Core shared framework contains these assets. The assets in the shared framework are precompiled to improve application startup time. For more information, see "shared framework" in [.NET Core distribution packaging](/dotnet/core/build/distribution-packaging). -Packages in the .NET Core shared framework are excluded in published application output. - -The following *.csproj* file references the `Microsoft.AspNetCore.App` metapackage for ASP.NET Core: +The following *.csproj* project file references the `Microsoft.AspNetCore.App` metapackage for ASP.NET Core: ```xml @@ -53,10 +58,17 @@ The following *.csproj* file references the `Microsoft.AspNetCore.App` metapacka ``` -The preceding markup doesn't specify a version number for the `Microsoft.AspNetCore.App` NuGet package. The ASP.NET Core 2.1+ templates generate this markup without a version number. When the version is not specified, the version used depends on the package source. On servers and in Azure, the package source is generally the ASP.NET Core shared framework. On development machines, it's generally `https://api.nuget.org/v3/index.json`. +The preceding markup doesn't specify a version number for the `Microsoft.AspNetCore.App` NuGet package. The ASP.NET Core 2.1 and later templates generate this markup without a version number. When the version is not specified, the implicit version is used: + +* On development machines, the version of the .NET Core SDK installed. +* On servers and in Azure, the version of the ASP.NET Core shared framework. + +The implicit version number is set to the latest bundled `major.minor.patch` of the shared framework for standalone apps. + +We recommend not specifying the version number. The shared framework roll-forward mechanism will run the app on the latest version of the installed shared framework. To guarantee the same version is used in development, test, and production, ensure the same version of the shared framework is installed in all environments. -We recommend not specifying the version number. By not specifying the version, the shared framework roll forward mechanism will run the app on the latest version of the installed shared framework. To guarantee the same version is used in development, test, and production, ensure the same version of the shared framework is installed in all environments. +The version is implicitly specified by the SDK, that is, `Microsoft.NET.Sdk.Web`. However the implicit version is usually set to `major.minor.0` for portable apps. The framework roll-forward mechanism of the dotnet host chooses the most appropriate shared framework installed to run the app with. In most cases that means the latest installed `major.minor.patch` where the `major.minor` matches the implicit version number set by the SDK. -Developers can choose to specify a version number to guarantee the same version is used in development, test, and production. With a fixed version number, updates to the hosts shared framework will not cause the app to use a newer version of the `Microsoft.AspNetCore.App` package. +Using a version number with `Microsoft.AspNetCore.App` does **not** force that version to be used. For example, suppose version "2.1.1" is specified, but "2.1.3" is installed. In that case, the app will use "2.1.3". Although not recommended, you can disable roll forward (patch and/or minor). To disable roll forward, specify the options on the dotnet host. For more information, see [Settings to control behavior](https://github.com/dotnet/core-setup/blob/master/Documentation/design-docs/roll-forward-on-no-candidate-fx.md#settings-to-control-behavior). -If your application previously used `Migrating from Microsoft.AspNetCore.All`, see [Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App](xref:fundamentals/metapackage#migrate). \ No newline at end of file +If your application previously used `Microsoft.AspNetCore.All`, see [Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App](xref:fundamentals/metapackage#migrate). \ No newline at end of file diff --git a/aspnetcore/fundamentals/metapackage.md b/aspnetcore/fundamentals/metapackage.md index 5eac14f338e1..928b909209c9 100644 --- a/aspnetcore/fundamentals/metapackage.md +++ b/aspnetcore/fundamentals/metapackage.md @@ -27,7 +27,7 @@ The [Microsoft.AspNetCore.All](https://www.nuget.org/packages/Microsoft.AspNetCo All the features of ASP.NET Core 2.x and Entity Framework Core 2.x are included in the `Microsoft.AspNetCore.All` package. The default project templates targeting ASP.NET Core 2.0 use this package. -The version number of the `Microsoft.AspNetCore.All` metapackage represents the ASP.NET Core version and Entity Framework Core version (aligned with the .NET Core version). +The version number of the `Microsoft.AspNetCore.All` metapackage represents the ASP.NET Core version and Entity Framework Core version. Applications that use the `Microsoft.AspNetCore.All` metapackage automatically take advantage of the [.NET Core Runtime Store](https://docs.microsoft.com/dotnet/core/deploying/runtime-store). The Runtime Store contains all the runtime assets needed to run ASP.NET Core 2.x applications. When you use the `Microsoft.AspNetCore.All` metapackage, **no** assets from the referenced ASP.NET Core NuGet packages are deployed with the application — the .NET Core Runtime Store contains these assets. The assets in the Runtime Store are precompiled to improve application startup time. @@ -40,7 +40,7 @@ The following *.csproj* file references the `Microsoft.AspNetCore.All` metapacka ## Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App -The following packages included in `Microsoft.AspNetCore.All` but not the `Microsoft.AspNetCore.App` package. +The following packages are included in `Microsoft.AspNetCore.All` but not the `Microsoft.AspNetCore.App` package. * `Microsoft.AspNetCore.ApplicationInsights.HostingStartup` * `Microsoft.AspNetCore.AzureAppServices.HostingStartup` From b15d20fdc500a91e5a3c413e56b42dfcd1b6afbd Mon Sep 17 00:00:00 2001 From: rick-anderson Date: Tue, 15 May 2018 13:35:31 -1000 Subject: [PATCH 10/11] react to feedback --- aspnetcore/fundamentals/metapackage-app.md | 27 +++++----------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/aspnetcore/fundamentals/metapackage-app.md b/aspnetcore/fundamentals/metapackage-app.md index c45cd820fd47..e889fa80a8e0 100644 --- a/aspnetcore/fundamentals/metapackage-app.md +++ b/aspnetcore/fundamentals/metapackage-app.md @@ -11,24 +11,16 @@ ms.technology: aspnet ms.topic: article uid: fundamentals/metapackage-app --- - # Microsoft.AspNetCore.App metapackage for ASP.NET Core 2.1 This feature requires ASP.NET Core 2.1 and later targeting .NET Core 2.1 and later. - - The [Microsoft.AspNetCore.App](https://www.nuget.org/packages/Microsoft.AspNetCore.App) metapackage for ASP.NET Core: -* Does not include third-party dependencies except for [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/), [Remotion.Linq, and [IX-Async](https://www.nuget.org/packages/System.Interactive.Async/). These 3rd-party dependencies are deemed necessary to ensure the major frameworks features function. +* Does not include third-party dependencies except for [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/), [Remotion.Linq](https://www.nuget.org/packages/Remotion.Linq/), and [IX-Async](https://www.nuget.org/packages/System.Interactive.Async/). These 3rd-party dependencies are deemed necessary to ensure the major frameworks features function. * Includes all supported packages by the ASP.NET Core team except those that contain third-party dependencies (other than those previously mentioned). -* All supported packages by the Entity Framework Core team except those that contain third-party dependencies (other than those previously mentioned). - +* Includes all supported packages by the Entity Framework Core team except those that contain third-party dependencies (other than those previously mentioned). + All the features of ASP.NET Core 2.1 and later and Entity Framework Core 2.1 and later are included in the `Microsoft.AspNetCore.App` package. The default project templates targeting ASP.NET Core 2.1 and later use this package. We recommend applications targeting ASP.NET Core 2.1 and later and Entity Framework Core 2.1 and later use the `Microsoft.AspNetCore.App` package. The version number of the `Microsoft.AspNetCore.App` metapackage represents the ASP.NET Core version and Entity Framework Core version. @@ -58,17 +50,10 @@ The following *.csproj* project file references the `Microsoft.AspNetCore.App` m ``` -The preceding markup doesn't specify a version number for the `Microsoft.AspNetCore.App` NuGet package. The ASP.NET Core 2.1 and later templates generate this markup without a version number. When the version is not specified, the implicit version is used: - -* On development machines, the version of the .NET Core SDK installed. -* On servers and in Azure, the version of the ASP.NET Core shared framework. - -The implicit version number is set to the latest bundled `major.minor.patch` of the shared framework for standalone apps. - -We recommend not specifying the version number. The shared framework roll-forward mechanism will run the app on the latest version of the installed shared framework. To guarantee the same version is used in development, test, and production, ensure the same version of the shared framework is installed in all environments. +The preceding markup represents a typical ASP.NET Core 2.1 and later template. It doesn't specify a version number for the `Microsoft.AspNetCore.App` package reference. When the version is not specified, an implicit version is specified by the SDK, that is, `Microsoft.NET.Sdk.Web`. We recommend relying on the implicit version specified by the SDK and not explicitly setting the version number on the package reference. -The version is implicitly specified by the SDK, that is, `Microsoft.NET.Sdk.Web`. However the implicit version is usually set to `major.minor.0` for portable apps. The framework roll-forward mechanism of the dotnet host chooses the most appropriate shared framework installed to run the app with. In most cases that means the latest installed `major.minor.patch` where the `major.minor` matches the implicit version number set by the SDK. +The implicit version is set to `major.minor.0` for portable apps. The shared framework roll-forward mechanism will run the app on the latest compatible version among the installed shared frameworks. To guarantee the same version is used in development, test, and production, ensure the same version of the shared framework is installed in all environments. For self contained apps, the implicit version number is set to the `major.minor.patch` of the shared framework bundled in the installed SDK. -Using a version number with `Microsoft.AspNetCore.App` does **not** force that version to be used. For example, suppose version "2.1.1" is specified, but "2.1.3" is installed. In that case, the app will use "2.1.3". Although not recommended, you can disable roll forward (patch and/or minor). To disable roll forward, specify the options on the dotnet host. For more information, see [Settings to control behavior](https://github.com/dotnet/core-setup/blob/master/Documentation/design-docs/roll-forward-on-no-candidate-fx.md#settings-to-control-behavior). +Specifying a version number on the `Microsoft.AspNetCore.App` reference does **not** guarantee that version of the shared framework will be chosen. For example, suppose version "2.1.1" is specified, but "2.1.3" is installed. In that case, the app will use "2.1.3". Although not recommended, you can disable roll forward (patch and/or minor). For more information regarding dotnet host roll-forward and how to configure its behavior, see [dotnet host roll forward](https://github.com/dotnet/core-setup/blob/master/Documentation/design-docs/roll-forward-on-no-candidate-fx.md). If your application previously used `Microsoft.AspNetCore.All`, see [Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App](xref:fundamentals/metapackage#migrate). \ No newline at end of file From f7407445c5653211baf9fff995922aaa3349301f Mon Sep 17 00:00:00 2001 From: rick-anderson Date: Tue, 15 May 2018 16:40:02 -1000 Subject: [PATCH 11/11] react to feedback --- aspnetcore/fundamentals/metapackage-app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aspnetcore/fundamentals/metapackage-app.md b/aspnetcore/fundamentals/metapackage-app.md index e889fa80a8e0..cdf5a00ea755 100644 --- a/aspnetcore/fundamentals/metapackage-app.md +++ b/aspnetcore/fundamentals/metapackage-app.md @@ -50,7 +50,7 @@ The following *.csproj* project file references the `Microsoft.AspNetCore.App` m ``` -The preceding markup represents a typical ASP.NET Core 2.1 and later template. It doesn't specify a version number for the `Microsoft.AspNetCore.App` package reference. When the version is not specified, an implicit version is specified by the SDK, that is, `Microsoft.NET.Sdk.Web`. We recommend relying on the implicit version specified by the SDK and not explicitly setting the version number on the package reference. +The preceding markup represents a typical ASP.NET Core 2.1 and later template. It doesn't specify a version number for the `Microsoft.AspNetCore.App` package reference. When the version is not specified, an implicit version is specified by the SDK, that is, `Microsoft.NET.Sdk.Web`. We recommend relying on the implicit version specified by the SDK and not explicitly setting the version number on the package reference. You can leave a GitHub comment at [Discussion for the Microsoft.AspNetCore.App implicit version](https://github.com/aspnet/Docs/issues/6430). The implicit version is set to `major.minor.0` for portable apps. The shared framework roll-forward mechanism will run the app on the latest compatible version among the installed shared frameworks. To guarantee the same version is used in development, test, and production, ensure the same version of the shared framework is installed in all environments. For self contained apps, the implicit version number is set to the `major.minor.patch` of the shared framework bundled in the installed SDK.